
@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(--primary-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(--primary-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(--primary-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(--primary-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(--card-colour);
}

/* Right properties panel */
#sld-props-sidebar {
  width: 220px;
  min-width: 220px;
  background: var(--primary-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(--primary-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(--primary-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;
}

.da-stage-panel.blocked .da-action {
  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);
}

.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: flex-end;
  gap: 6px;
  height: 190px;
  width: 100%;
}
.orientation-curve .curve-col {
  flex: 1 1 0;
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
}
.orientation-curve .curve-value {
  font-size: 0.68rem;
  opacity: 0.65;
  font-variant-numeric: tabular-nums;
}
.orientation-curve .curve-bar {
  width: 100%;
  max-width: 44px;
  background: #f47424;
  border-radius: 4px 4px 0 0;
  min-height: 2px;
}
.orientation-curve .curve-label {
  font-size: 0.7rem;
  font-weight: 700;
  opacity: 0.7;
}

.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;
}
.season-row .season-bar {
  width: 100%;
  max-width: 26px;
  background: #f47424;
  opacity: 0.8;
  border-radius: 3px 3px 0 0;
  min-height: 1px;
}
.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;
}
.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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bXBvcnQgdXJsKFwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1RdWlja3NhbmQ6d2dodEA0MDA7NTAwOzYwMDs3MDAmZGlzcGxheT1zd2FwXCIpO1xuQGltcG9ydCB1cmwoXCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/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+ICNlZGl0LXBvbHlnb24tc2VjdGlvbixcbiNwb2x5Z29uLWNvbnRyb2xzID4gI3BhbmVsLW1vZGUtc2VjdGlvbixcbiNwb2x5Z29uLWNvbnRyb2xzID4gI29ic3RydWN0aW9uLW1vZGUtc2VjdGlvbixcbiN0cmVlLWNvbnRyb2xzID4gI3RyZWUtbm8tc2VsZWN0aW9uLFxuI3RyZWUtY29udHJvbHMgPiAjdHJlZS1zZWxlY3Rpb24tY29udHJvbHMge1xuICBwYWRkaW5nLWxlZnQ6IDE0cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE0cHg7XG59XG5cbi8qIFRyZWUgaW5zdHJ1Y3Rpb24gY2FsbG91dCDigJQgc29mdGVuIHRoZSBzb2xpZCBpbmZvIGJsb2NrIGludG8gYSB0aW50ZWRcbiAgIHN1cmZhY2Ugc28gaXQgcmVhZHMgYXMgcGFydCBvZiB0aGUgcmVmaW5lZCBjYXJkICovXG4jdHJlZS1jb250cm9scyAudHJlZS1pbnN0cnVjdGlvbi1ib3gge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbm90aWZpY2F0aW9uLWluZm8pIDEyJSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbm90aWZpY2F0aW9uLWluZm8pIDM1JSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBtYXJnaW4tdG9wOiAxMnB4O1xufVxuXG4jdHJlZS1jb250cm9scyAudHJlZS1pbnN0cnVjdGlvbi1ib3ggaSB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuI3RyZWUtY29udHJvbHMgPiAjdHJlZS1zZWxlY3Rpb24tY29udHJvbHMge1xuICBwYWRkaW5nLXRvcDogMTJweDtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLmluZm8tcGFuZWwge1xuICBtYXJnaW46IDEycHggMDtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgI3BvbHlnb24tZGltZW5zaW9ucyAuaW5mby1zZWN0aW9uIHtcbiAgcGFkZGluZzogNnB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA1JSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLmRlZmF1bHQtbWVzc2FnZSB7XG4gIG9wYWNpdHk6IDAuNjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiA2cHggMDtcbn1cblxuLm9mZmNhbnZhcy1oZWFkZXIge1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm9mZmNhbnZhcy1ib2R5IHtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuLmNvbnRyb2wtZ3JvdXAge1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG5cbi5jb250cm9sLWdyb3VwIGxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLnBpdGNoLXNsaWRlciB7XG4gIG1heC13aWR0aDogMTAwcHg7XG59XG5cbi5waXRjaC1mcmFjdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgbWluLXdpZHRoOiAxMDBweDtcbn1cblxuLnBpdGNoLWZyYWN0aW9uIGlucHV0IHtcbiAgd2lkdGg6IDUwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5waXRjaC1mcmFjdGlvbiBzcGFuIHtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cblxuLmNsb3NlLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmRlbGV0ZS1idXR0b24ge1xuICB3aWR0aDogODAlO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBtYXJnaW4tdG9wOiAycmVtO1xufVxuXG4uZGVsZXRlLWJ1dHRvbjpob3ZlciB7XG4gIGNvbG9yOiAjYjkxYzFjO1xufVxuXG4jc2hhZG93LWNvbnRyb2xzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDEwcHg7XG4gIGxlZnQ6IDEwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBwYWRkaW5nOiAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICB6LWluZGV4OiA5MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbiNzaGFkb3ctaW5mbyB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uY29udHJvbHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgbGVmdDogMTBweDtcbiAgLyogVXNlIHRoZSB2YXJpYWJsZSBwbHVzIG1hcmdpbiAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEwcHg7XG4gIHotaW5kZXg6IDkwMDtcbn1cblxuLnNoYWRvdy1jb250cm9scyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEwcHg7XG4gIHotaW5kZXg6IDkwMDtcbn1cblxuLyogSW1hZ2VyeSBTb3VyY2UgQ29udHJvbHMgKi9cbi5pbWFnZXJ5LXNvdXJjZS1jb250cm9scyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLyogSW1hZ2VyeSBTZWxlY3Rpb24gTW9kYWwgKi9cbiNpbWFnZXJ5LXNlbGVjdGlvbi1tb2RhbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG4gIHotaW5kZXg6IDEwMDAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XG59XG5cbiNpbWFnZXJ5LXNlbGVjdGlvbi1tb2RhbCAubW9kYWwtZGlhbG9nIHtcbiAgbWF4LXdpZHRoOiA3MDBweDtcbiAgd2lkdGg6IDkwJTtcbiAgbWFyZ2luOiAwO1xufVxuXG4jaW1hZ2VyeS1zZWxlY3Rpb24tbW9kYWwgLm1vZGFsLWNvbnRlbnQge1xuICBtYXgtaGVpZ2h0OiA5MHZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4jaW1hZ2VyeS1zZWxlY3Rpb24tbW9kYWwgLmZvcm0tc2VsZWN0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW5wdXQtYmFja2dyb3VuZCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0taW5wdXQtYm9yZGVyKTtcbiAgY29sb3I6IHZhcigtLWlucHV0LXRleHQpO1xufVxuXG4jaW1hZ2VyeS1zZWxlY3Rpb24tbW9kYWwgLmZvcm0tc2VsZWN0OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnB1dC1mb2N1cy1ib3JkZXIpO1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWlucHV0LWZvY3VzLWJvcmRlcikgMjUlLCB0cmFuc3BhcmVudCk7XG59XG5cbiNpbWFnZXJ5LXNlbGVjdGlvbi1tb2RhbCAuZm9ybS1zZWxlY3Qgb3B0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4uaW1hZ2VyeS1wYW4tY29udHJvbHMge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuI2ltYWdlcnktcHJldmlldy1jb250YWluZXIge1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuI2ltYWdlcnktbG9hZGluZyB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbiNpbWFnZXJ5LWVtcHR5LXN0YXRlIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLmJ1dHRvbi1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC41cmVtO1xuICBtYXJnaW46IDFyZW0gMDtcbn1cblxuLmJ1dHRvbi1ncm91cCAuYnV0dG9uIHtcbiAgZmxleDogMTtcbn1cblxuLmluZm8tcGFuZWwge1xuICBwYWRkaW5nOiAwLjI1cmVtO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG5cbi5zZWN0aW9uLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjJyZW07XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgbWFyZ2luOiAxLjVyZW0gMCAxcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbi5zZWN0aW9uLWNvbnRlbnQge1xuICBwYWRkaW5nOiAwLjFyZW0gMDtcbn1cblxuLmFjdGlvbi1idXR0b25zIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEwcHg7XG59XG5cbi5hY3Rpb24tYnV0dG9ucyBidXR0b24ge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnNvbGFyLXBhbmVsLWNvbnRyb2xzIHtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgcGFkZGluZy10b3A6IDIwcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuLnNvbGFyLXBhbmVsLWNvbnRyb2xzIGgzIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxuLnNvbGFyLXBhbmVsLWJ1dHRvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEwcHg7XG59XG5cbi5zb2xhci1wYW5lbC1idXR0b25zIGJ1dHRvbiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uc29sYXItcGFuZWwtYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpO1xufVxuXG4uc29sYXItcGFuZWwtYWN0aXZlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyKTtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlci10ZXh0KTtcbn1cblxuLm9ic3RydWN0aW9uLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyKTtcbn1cblxuLm9ic3RydWN0aW9uLWFjdGl2ZTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCk7XG59XG5cbi5wYW5lbC1jb25maWctZ3JpZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTBweDtcbn1cblxuLnBhbmVsLWNvbmZpZy1pdGVtIHtcbiAgZmxleDogMTtcbn1cblxuLnBhbmVsLWJ1dHRvbiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ucGFuZWwtZGVsZXRlIHtcbiAgYmFja2dyb3VuZDogI2RjMjYyNjtcbn1cblxuLnBhbmVsLWRlbGV0ZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICNiOTFjMWM7XG59XG5cbi8qIE5ldyBzdHlsZXMgZm9yIHBvbHlnb24gaW5mb3JtYXRpb24gKi9cbi5pbmZvLXNlY3Rpb24ge1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5pbmZvLXNlY3Rpb24gaDQge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbi5pbmZvLXNlY3Rpb24gcCB7XG4gIG1hcmdpbjogNXB4IDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmRpbWVuc2lvbnMtbGlzdCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5kaW1lbnNpb25zLWxpc3QgbGkge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi8qIFNlZ21lbnRlZCBtb2RlL3RhYiBiYXIg4oCUIFN1cmZhY2UgwrcgUGFuZWxzIMK3IE9ic3RydWN0aW9ucyAqL1xuI3BvbHlnb24tY29udHJvbHMgLm1vZGUtdG9nZ2xlLWJ1dHRvbnMsXG4jdHJlZS1jb250cm9scyAubW9kZS10b2dnbGUtYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogNHB4O1xuICBtYXJnaW46IDEycHggMCA4cHg7XG4gIHBhZGRpbmc6IDRweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA3JSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzIC5tb2RlLXRvZ2dsZS1idXR0b25zIC5idXR0b24sXG4jdHJlZS1jb250cm9scyAubW9kZS10b2dnbGUtYnV0dG9ucyAuYnV0dG9uIHtcbiAgZmxleDogMTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDhweCA2cHg7XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzIC5tb2RlLWJ1dHRvbixcbiN0cmVlLWNvbnRyb2xzIC5tb2RlLWJ1dHRvbiB7XG4gIGdhcDogNnB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXdlaWdodDogNTAwO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzLCBjb2xvciAwLjE1cywgYm94LXNoYWRvdyAwLjE1cztcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLm1vZGUtYnV0dG9uOmhvdmVyLFxuI3RyZWUtY29udHJvbHMgLm1vZGUtYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA4JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4jcG9seWdvbi1jb250cm9scyAubW9kZS1idXR0b24uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cik7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTgpO1xufVxuXG4jZWRpdC1wb2x5Z29uLXNlY3Rpb24gLmRlbGV0ZS1idXR0b24ge1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vKiBTb2xhciBwcm9kdWN0aW9uIGluZm8gc3R5bGVzICovXG4jc29sYXItcHJvZHVjdGlvbi1pbmZvIGg0IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4ubG9zc2VzLWluZm8ge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGhlaWdodDogMTI1cHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5sb3NzLWl0ZW0ge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi8qIFBWIFdhdHRzIEluZm8gU3R5bGVzICovXG4ucHYtd2F0dHMtaW5mbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyMCU7XG4gIGxlZnQ6IDEwcHg7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXR5cGUpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY2FyZC1jb2xvdXIpIDg1JSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgcGFkZGluZzogMTBweCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIHotaW5kZXg6IDk5MDtcbn1cblxuLnB2LXdhdHRzLWluZm8gaDQge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5lbGVjdHJpY2FsLXJlYWRpbmVzcyB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLyogUmVzdWx0cyByb3cgc2hvd2luZyBvbmx5IHRoZSBhY3RpdmUtbW9kZSBjaGlwIChubyBwYW5lbHMgeWV0KSDigJQgZHJvcCB0aGVcbiAgIGNoaXAtcm93IHRvcCBtYXJnaW4gc28gdGhlIGxvbmUgYmFkZ2UgaXNuJ3Qgc3RyYW5kZWQuICovXG4uZGEtcmVzdWx0cy5tb2RlLW9ubHkgLmVsZWN0cmljYWwtcmVhZGluZXNzIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLmVsZWN0cmljYWwtcmVhZGluZXNzLWNoaXAge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA1cHg7XG4gIG1pbi13aWR0aDogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAzcHggN3B4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jYXJkLWNvbG91cikgNzIlLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uZWxlY3RyaWNhbC1yZWFkaW5lc3MtY2hpcDpob3ZlciB7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygxLjEyKTtcbn1cblxuLmVsZWN0cmljYWwtcmVhZGluZXNzLWNoaXA6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbn1cblxuLmVsZWN0cmljYWwtcmVhZGluZXNzLWNoaXAgc3BhbiB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uZWxlY3RyaWNhbC1yZWFkaW5lc3MtY2hpcC5yZWFkeSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLXN1Y2Nlc3MpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDQ2LCAyMDQsIDExMywgMC4xNCk7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tc3VjY2Vzcyk7XG59XG5cbi5lbGVjdHJpY2FsLXJlYWRpbmVzcy1jaGlwLndhcm4ge1xuICBib3JkZXItY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi13YXJuaW5nKTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNDMsIDE1NiwgMTgsIDAuMTQpO1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLXdhcm5pbmcpO1xufVxuXG4uZWxlY3RyaWNhbC1yZWFkaW5lc3MtY2hpcC5lbXB0eSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTIyLCAxMzAsIDE0NSwgMC4xMik7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbn1cblxuLyogT3J0aG8gQ29udGV4dCBNZW51IFN0eWxlcyAqL1xuLm9ydGhvLWNvbnRleHQtbWVudSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3gtc2hhZG93OiAwIDJweCAxMHB4IHZhcigtLWJveHNoYWRvdyk7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHBhZGRpbmc6IDhweCAwO1xuICBtaW4td2lkdGg6IDE4MHB4O1xuICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7XG59XG5cbi8qIFR3by1jb2x1bW4gY29tcGFjdCBncmlkIGZvciBhY3Rpb24gYnV0dG9ucyAqL1xuLm9ydGhvLWNvbnRleHQtbWVudS1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICBnYXA6IDFweDtcbiAgcGFkZGluZzogNHB4IDRweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4ub3J0aG8tY29udGV4dC1tZW51LWdyaWQgLm9ydGhvLWNvbnRleHQtbWVudS1pdGVtIHtcbiAgcGFkZGluZzogNnB4IDhweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtaGVhZGVyIHtcbiAgcGFkZGluZzogNHB4IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLyogUHJldmVudCB0ZXh0IHNlbGVjdGlvbiBkdXJpbmcgZHJhZyAqL1xufVxuXG4ub3J0aG8tY29udGV4dC1tZW51LWhlYWRlci5kcmFnZ2luZyB7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4ub3J0aG8tY29udGV4dC1tZW51LWNsb3NlLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtY2xvc2UtYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4ub3J0aG8tY29udGV4dC1tZW51LWl0ZW0ge1xuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbn1cblxuLm9ydGhvLWNvbnRleHQtbWVudS1pdGVtLWhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xufVxuXG4ub3J0aG8tY29udGV4dC1tZW51LWljb24ge1xuICB3aWR0aDogMTZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKiBTdHlsZXMgZm9yIHRoZSBzbGlkZXIgc2VjdGlvbiBpbiBvcnRobyBjb250ZXh0IG1lbnUgKi9cbi5vcnRoby1jb250ZXh0LW1lbnUtc2xpZGVyLXNlY3Rpb24ge1xuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4ub3J0aG8tY29udGV4dC1tZW51LXNsaWRlci1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4ub3J0aG8tY29udGV4dC1tZW51LXNsaWRlci1jb250YWluZXIge1xuICBwYWRkaW5nOiAwIDJweDtcbn1cblxuLm9ydGhvLWNvbnRleHQtbWVudS1zbGlkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiA1cHggMDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBoZWlnaHQ6IDZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLm9ydGhvLWNvbnRleHQtbWVudS1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtc2xpZGVyOjotbW96LXJhbmdlLXRodW1iIHtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi8qIE9ydGhvIGNvbnRleHQgbWVudSBwaXRjaCBpbnB1dHMgKi9cbi5vcnRoby1jb250ZXh0LW1lbnUtcGl0Y2gtaW5wdXRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDVweDtcbiAgbWluLXdpZHRoOiAxNDBweDtcbiAgbWFyZ2luLXRvcDogNXB4O1xufVxuXG4ub3J0aG8tY29udGV4dC1tZW51LXBpdGNoLXNsaWRlciB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogNjBweDtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBoZWlnaHQ6IDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLm9ydGhvLWNvbnRleHQtbWVudS1waXRjaC1zbGlkZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTJweDtcbiAgaGVpZ2h0OiAxMnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtcGl0Y2gtc2xpZGVyOjotbW96LXJhbmdlLXRodW1iIHtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtcGl0Y2gtZnJhY3Rpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHBhZGRpbmc6IDFweCAzcHg7XG4gIG1pbi13aWR0aDogODBweDtcbn1cblxuLm9ydGhvLWNvbnRleHQtbWVudS1waXRjaC1mcmFjdGlvbiBpbnB1dCB7XG4gIHdpZHRoOiA1MHB4O1xuICBib3JkZXI6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtcGl0Y2gtZnJhY3Rpb24gc3BhbiB7XG4gIG1hcmdpbi1sZWZ0OiAycHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm9ydGhvLWNvbnRleHQtbWVudS1kZWdyZWVzLWlucHV0IHtcbiAgd2lkdGg6IDQycHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtaW5wdXQtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogc29saWQgMXB4IHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBwYWRkaW5nOiAxcHggM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cik7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtaW5wdXQtZ3JvdXAtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBtYXJnaW4tbGVmdDogMXB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtc3VibGFiZWwge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNjtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4ub3J0aG8tY29udGV4dC1tZW51LXN0YWNrLW5hdiB7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtbmF2LWJ0biB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAwO1xufVxuLm9ydGhvLWNvbnRleHQtbWVudS1uYXYtYnRuIGkge1xuICBmb250LXNpemU6IDEwcHg7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtc3RhY2stbGFiZWwge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNjtcbiAgZmxleDogMTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKiBFZGdlIGxlbmd0aCBtZW51IOKAlCBpbmZvIGNoaXBzLCBmbGF0L3N1cmZhY2UgZW50cnksIGNvbXBhY3QgYWN0aW9ucyAqL1xuLmVkZ2UtaW5mby1jaGlwcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogNHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi5lZGdlLWluZm8tY2hpcCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDNweCA3cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmVkZ2Utc2xvcGUtY2hpcCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi8qIEZsYXQvU3VyZmFjZSBlbnRyeSBzZWxlY3RvciDigJQgc2lkZXMgc2hvdyB0aGVpciBjdXJyZW50IHZhbHVlOyB0aGVcbiAgIGFjdGl2ZSBzaWRlIChzd2l0Y2ggcG9zaXRpb24pIGlzIHRoZSBmcmFtZSB0aGUgaW5wdXQgZWRpdHMuICovXG4uZWRnZS1sZW5ndGgtbW9kZS1yb3cge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogOHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi5lZGdlLW1vZGUtc2lkZSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjQ1O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnB4O1xufVxuLmVkZ2UtbW9kZS1zaWRlIC5lZGdlLW1vZGUtdmFsdWUge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbn1cblxuLmVkZ2UtbW9kZS1zaWRlLmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5lZGdlLWxlbmd0aC1pbnB1dC1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogOHB4O1xufVxuXG4vKiBIaWRlIG51bWJlciBzcGlubmVycyBvbiB0aGUgY29tcGFjdCBtZW51IGlucHV0cyAqL1xuLm9ydGhvLWNvbnRleHQtbWVudS1kZWdyZWVzLWlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxuLm9ydGhvLWNvbnRleHQtbWVudS1kZWdyZWVzLWlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IDA7XG59XG5cbi5vcnRoby1jb250ZXh0LW1lbnUtZGVncmVlcy1pbnB1dCB7XG4gIGFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbn1cblxuLmVkZ2UtYWN0aW9uLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogNnB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuLmVkZ2UtYWN0aW9uLXJvdyAuYnV0dG9uLTEzLW91dGxpbmUge1xuICBmbGV4OiAxO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuXG4jZWRnZS13YWxsLXRvZ2dsZS1idG4uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI2U3NGMzYztcbiAgYm9yZGVyLWNvbG9yOiAjZTc0YzNjO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLnNjZW5lLW5vdGlmaWNhdGlvbiB7XG4gIHBhZGRpbmc6IDE1cHggMjVweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC10eXBlKTtcbn1cblxuLnNjZW5lLW5vdGlmaWNhdGlvbi1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBjb2xvcjogIzI4YTc0NTtcbiAgYm9yZGVyOiAxcHggc29saWQgIzI4YTc0NTtcbn1cblxuLnNjZW5lLW5vdGlmaWNhdGlvbi1lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgY29sb3I6ICNkYzM1NDU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkYzM1NDU7XG59XG5cbi8qIEZlZWRiYWNrIHRvYXN0IOKAlCBhbmNob3JlZCB0byB0aGUgRGVzaWduIEFzc2lzdGFudCAocG9zaXRpb25lZCBpbiBKUyBieVxuICAgVUlIZWxwZXIuc2hvd05vdGlmaWNhdGlvbikgc28gbWVzc2FnZXMgYXBwZWFyIHdoZXJlIHRoZSB1c2VyIGlzIGxvb2tpbmcuXG4gICBTdHlsZWQgdG8gbWF0Y2ggdGhlIGFzc2lzdGFudDsgdGhlIHR5cGUgYWNjZW50ICsgaWNvbiBjYXJyeSBzZXZlcml0eS4gKi9cbi5kZXNpZ24tdG9vbC1ub3RpZmljYXRpb24ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDIwcHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgcGFkZGluZzogMTFweCAxNHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLW5vdGlmaWNhdGlvbi1pbmZvKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gIHotaW5kZXg6IDk5OTk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yMnMgZWFzZSwgdHJhbnNmb3JtIDAuMjJzIGN1YmljLWJlemllcigwLjM0LCAxLjU2LCAwLjY0LCAxKTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCkgc2NhbGUoMC45OCk7XG4gIGZvbnQtc2l6ZTogMTIuNXB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIG92ZXJmbG93OiBoaWRkZW47IC8qIGNsaXAgdGhlIGNvdW50ZG93biBiYXIgdG8gdGhlIHJvdW5kZWQgY29ybmVycyAqL1xuICAvKiBIaWRkZW4gKG9wYWNpdHk6MCkgdG9hc3QgbXVzdCBub3QgaW50ZXJjZXB0IGNsaWNrcyDigJQgaXQgc3RheXMgbW91bnRlZCBhbmRcbiAgICAgZml4ZWQtcG9zaXRpb25lZCBvdmVyIHRoZSBhc3Npc3RhbnQuIEludGVyYWN0aXZpdHkgaXMgZW5hYmxlZCBvbmx5IGluIHRoZVxuICAgICAudmlzaWJsZSBzdGF0ZSBiZWxvdy4gKi9cbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5kZXNpZ24tdG9vbC1ub3RpZmljYXRpb24udmlzaWJsZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtcbiAgYW5pbWF0aW9uOiBkdG4tcHVsc2UgMS4xcyBlYXNlLW91dCAxO1xuICBwb2ludGVyLWV2ZW50czogYXV0bzsgLyogaG92ZXItdG8tcGF1c2UgKyBjbG9zZSBidXR0b24gd2hpbGUgc2hvd24gKi9cbn1cblxuLmRlc2lnbi10b29sLW5vdGlmaWNhdGlvbiAuZHRuLWljb24ge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWluZm8pO1xufVxuXG4uZGVzaWduLXRvb2wtbm90aWZpY2F0aW9uIC5kdG4tbXNnIHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4vKiBEaXNtaXNzIGJ1dHRvbiDigJQgc2l0cyB0byB0aGUgcmlnaHQgb2YgdGhlIG1lc3NhZ2UgKi9cbi5kZXNpZ24tdG9vbC1ub3RpZmljYXRpb24gLmR0bi1jbG9zZSB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA2MCUsIHRyYW5zcGFyZW50KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBtYXJnaW46IC0ycHggLTZweCAtMnB4IDA7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZSwgYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xufVxuXG4uZGVzaWduLXRvb2wtbm90aWZpY2F0aW9uIC5kdG4tY2xvc2U6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuXG4vKiBDb3VudGRvd24gYmFyIOKAlCBzaHJpbmtzIHRvIGVtcHR5IG92ZXIgdGhlIHRvYXN0J3MgbGlmZXRpbWUgKEpTLWRyaXZlbixcbiAgIHBhdXNlcyBvbiBob3ZlcikuIEFjY2VudCBjb2xvdXIgdHJhY2tzIHRoZSBzZXZlcml0eSB0eXBlLiAqL1xuLmRlc2lnbi10b29sLW5vdGlmaWNhdGlvbiAuZHRuLXByb2dyZXNzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIGhlaWdodDogM3B4O1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tbm90aWZpY2F0aW9uLWluZm8pO1xuICBvcGFjaXR5OiAwLjg1O1xufVxuXG4vKiBGYWxsYmFjayBkb2NrZWQgcG9zaXRpb24gd2hlbiB0aGUgYXNzaXN0YW50IGlzbid0IG9uIHNjcmVlbiAqL1xuLmRlc2lnbi10b29sLW5vdGlmaWNhdGlvbi5kdG4tZmxvYXRpbmcge1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogMjBweDtcbiAgYm90dG9tOiAyMHB4O1xuICB0b3A6IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBtYXgtd2lkdGg6IDMyMHB4O1xufVxuXG4vKiBBIG9uZS1zaG90IHJpbmcgcHVsc2UgdG8gY2F0Y2ggdGhlIGV5ZSBvbiBhcHBlYXJhbmNlICovXG5Aa2V5ZnJhbWVzIGR0bi1wdWxzZSB7XG4gIDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDAsIDAsIDAsIDAuNSksIDAgMCAwIDAgdmFyKC0tZHRuLWdsb3csIHJnYmEoOTIsIDE1OCwgMjU1LCAwLjUpKTtcbiAgfVxuICAxMDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDAsIDAsIDAsIDAuNSksIDAgMCAwIDlweCByZ2JhKDAsIDAsIDAsIDApO1xuICB9XG59XG4vKiBUeXBlIGFjY2VudHMg4oCUIGxlZnQgc3RyaXBlLCBpY29uIGNvbG91ciwgYW5kIHB1bHNlIGdsb3cgKi9cbi5ub3RpZmljYXRpb24taW5mbyB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24taW5mbyk7XG4gIC0tZHRuLWdsb3c6IHJnYmEoOTIsIDE1OCwgMjU1LCAwLjUpO1xufVxuLm5vdGlmaWNhdGlvbi1pbmZvIC5kdG4taWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24taW5mbyk7XG59XG4ubm90aWZpY2F0aW9uLWluZm8gLmR0bi1wcm9ncmVzcyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdGlmaWNhdGlvbi1pbmZvKTtcbn1cblxuLm5vdGlmaWNhdGlvbi1zdWNjZXNzIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1zdWNjZXNzKTtcbiAgLS1kdG4tZ2xvdzogcmdiYSgxMDIsIDE4NywgMTA2LCAwLjUpO1xufVxuLm5vdGlmaWNhdGlvbi1zdWNjZXNzIC5kdG4taWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tc3VjY2Vzcyk7XG59XG4ubm90aWZpY2F0aW9uLXN1Y2Nlc3MgLmR0bi1wcm9ncmVzcyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdGlmaWNhdGlvbi1zdWNjZXNzKTtcbn1cblxuLm5vdGlmaWNhdGlvbi13YXJuaW5nIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi13YXJuaW5nKTtcbiAgLS1kdG4tZ2xvdzogcmdiYSgyNTUsIDE2NywgMzgsIDAuNTUpO1xufVxuLm5vdGlmaWNhdGlvbi13YXJuaW5nIC5kdG4taWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24td2FybmluZyk7XG59XG4ubm90aWZpY2F0aW9uLXdhcm5pbmcgLmR0bi1wcm9ncmVzcyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdGlmaWNhdGlvbi13YXJuaW5nKTtcbn1cblxuLyogVGhlIGRlc2lnbiB0b29sIGVtaXRzIHRoZSAnZXJyb3InIHR5cGU7IHBvd2VybGlseSdzIHRoZW1lIG5hbWVzIHRoaXMgY29sb3VyXG4gICAtLW5vdGlmaWNhdGlvbi1kYW5nZXIgKG1hdGNoaW5nIGl0cyBvd24gLnRvYXN0LW5vdGljZS0tZGFuZ2VyKS4gKi9cbi5ub3RpZmljYXRpb24tZXJyb3Ige1xuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlcik7XG4gIC0tZHRuLWdsb3c6IHJnYmEoMjM5LCA4MywgODAsIDAuNTUpO1xufVxuLm5vdGlmaWNhdGlvbi1lcnJvciAuZHRuLWljb24ge1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlcik7XG59XG4ubm90aWZpY2F0aW9uLWVycm9yIC5kdG4tcHJvZ3Jlc3Mge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyKTtcbn1cblxuLyogR2xvYmFsIGJ1c3kgbG9hZGVyIOKAlCBzYW1lIHRvYXN0IGNocm9tZSwgc3Bpbm5pbmcgaWNvbiwgbm8gY291bnRkb3duICovXG4uZGVzaWduLXRvb2wtbm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvbi1sb2FkaW5nIHtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1pbmZvKTtcbiAgLS1kdG4tZ2xvdzogcmdiYSg5MiwgMTU4LCAyNTUsIDAuNSk7XG59XG4uZGVzaWduLXRvb2wtbm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvbi1sb2FkaW5nIC5kdG4taWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24taW5mbyk7XG4gIGFuaW1hdGlvbjogZHRuLXNwaW4gMC45cyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgZHRuLXNwaW4ge1xuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuLyogUGFuZWwgbW9kZSBzdGF0dXMgc3R5bGluZyAqL1xuLnBhbmVsLW1vZGUtc3RhdHVzIHtcbiAgcGFkZGluZzogOHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qIFRvb2xiYXIgdmFyaWFudCBvZiBwYW5lbCBtb2RlIHN0YXR1cyAqL1xuI3BhbmVsLW1vZGUtaW5kaWNhdG9yIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDZweCA2cHg7XG4gIG1hcmdpbjogMCAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgZ2FwOiA2cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5wYW5lbC1tb2RlLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMGUyYzQ7XG4gIC8qIEdyZWVuIGZvciBwYW5lbCBtb2RlICovXG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLnRyZWUtbW9kZS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmQ4YTRlO1xuICAvKiBHcmVlbi10aW50ZWQgZm9yIHRyZWUgbW9kZSAqL1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5zdHJpbmdpbmctbW9kZS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiO1xuICAvKiBCbHVlIGZvciBzdHJpbmdpbmcgbW9kZSAqL1xuICBjb2xvcjogd2hpdGU7XG4gIGFuaW1hdGlvbjogc3RyaW5naW5nLXB1bHNlIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbi5wYW5lbC1tb2RlLWluYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZDdkYTtcbiAgY29sb3I6ICM3MjFjMjQ7XG59XG5cbi5vYnN0cnVjdGlvbi1tb2RlLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZDdlMTQ7XG4gIC8qIE9yYW5nZSBmb3Igb2JzdHJ1Y3Rpb24gbW9kZSAqL1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi8qIFN0cmluZ2luZyBtb2RlIHVzZXMgdGhlIHNoYXJlZCBwYW5lbC1tb2RlLWluZGljYXRvciAqL1xuLnN0cmluZ2luZy1tb2RlLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzNDk4ZGI7XG4gIC8qIEJsdWUgZm9yIHN0cmluZ2luZyBtb2RlICovXG4gIGNvbG9yOiB3aGl0ZTtcbiAgYW5pbWF0aW9uOiBzdHJpbmdpbmctcHVsc2UgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLyogVGFiIHN0eWxlcyAqL1xuLyogUmVmaW5lZCB1bmRlcmxpbmUgdGFicyDigJQgY29tcGFjdCB0ZXh0IHdpdGggYW4gYWNjZW50IHVuZGVybGluZSBvbiB0aGUgYWN0aXZlXG4gICBvbmUsIHNoYXJpbmcgdGhlIERBJ3MgdHlwZSBzY2FsZSBpbnN0ZWFkIG9mIGNodW5reSBmaWxsZWQgYnV0dG9ucy4gKi9cbi5wdi13YXR0cy10YWJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDJweCAxNHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICBwYWRkaW5nOiAwIDJweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4ucHYtd2F0dHMtdGFiIHtcbiAgcGFkZGluZzogNnB4IDA7XG4gIG1hcmdpbi1ib3R0b206IC0xcHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7XG59XG5cbi5wdi13YXR0cy10YWI6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4ucHYtd2F0dHMtdGFiLmFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4vKiBTdGF0IGNhcmRzIGdyaWQgKi9cbi5vdmVydmlldy1zdGF0cy1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICBnYXA6IDZweDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4ub3ZlcnZpZXctc3RhdC1jYXJkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogNHB4O1xuICBwYWRkaW5nOiAxMHB4IDExcHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIpIDYlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuLm92ZXJ2aWV3LXN0YXQtY2FyZCAuc3RhdC1sYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNXB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbn1cbi5vdmVydmlldy1zdGF0LWNhcmQgLnN0YXQtbGFiZWwgaSB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgb3BhY2l0eTogMC44NTtcbn1cbi5vdmVydmlldy1zdGF0LWNhcmQgLnN0YXQtdmFsdWUtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBnYXA6IDRweDtcbn1cbi5vdmVydmlldy1zdGF0LWNhcmQgLnN0YXQtdmFsdWUge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG4ub3ZlcnZpZXctc3RhdC1jYXJkIC5zdGF0LXVuaXQge1xuICBmb250LXNpemU6IDExcHg7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLm92ZXJ2aWV3LXN0YXQtY2FyZC0td2lkZSB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiA2cHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cbi5vdmVydmlldy1zdGF0LWNhcmQtLXdpZGUgLnN0YXQtdmFsdWUge1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi8qIE9mZnNldCBnYXVnZSAqL1xuLm9mZnNldC1nYXVnZSB7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLm9mZnNldC1nYXVnZS1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5vZmZzZXQtZ2F1Z2UtbGFiZWwge1xuICBmb250LXdlaWdodDogNTAwO1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi5vZmZzZXQtZ2F1Z2UtdmFsdWUge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5vZmZzZXQtZ2F1Z2UtdmFsdWUgLnN0YXQtdmFsdWUge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi5vZmZzZXQtZ2F1Z2UtdmFsdWUgLnN0YXQtdW5pdCB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLm9mZnNldC1iYXItdHJhY2sge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ub2Zmc2V0LWJhci1maWxsIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2VmNjQ2MSwgI2Y1YTYyMyA0MCUsICM0ZWNkYzQgNzUlLCAjMmVjYzcxKTtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC40cyBlYXNlO1xufVxuXG4ub2Zmc2V0LWVtcHR5IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiA2cHggOHB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuLm9mZnNldC1lbXB0eS10ZXh0IHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbi8qIEFycmF5IGRldGFpbCBzdHlsaW5nICovXG4uYXJyYXktZGV0YWlsIHtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5hcnJheS1kZXRhaWwgc3BhbiB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi8qIEFycmF5IGl0ZW0gc3R5bGVzICovXG4ucG9seWdvbi1hcnJheS1pdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xufVxuXG4ucG9seWdvbi1hcnJheS1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4ucG9seWdvbi1hcnJheS1pdGVtIGg1IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5jbGljay1oaW50IHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi8qIE1ha2UgdGhlIGFycmF5cyBsaXN0IHNjcm9sbGFibGUgaWYgdGhlcmUgYXJlIG1hbnkgYXJyYXlzICovXG4jYXJyYXlzLXRhYiB7XG4gIG1heC1oZWlnaHQ6IDQwMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4jcG9seWdvbi1hcnJheXMtbGlzdCB7XG4gIG1heC1oZWlnaHQ6IDM1MHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4vKiBCb3R0b20gb2ZmY2FudmFzIOKAlCBzaGFyZWQgYnkgdGhlIG1vYmlsZSBtZW51IChzaGFyZWQvX21vYmlsZV9ib3R0b21fbmF2KSAqL1xuLm9mZmNhbnZhcy1ib3R0b20ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogLTMwMHB4O1xuICAvKiBTdGFydCBvZmYtc2NyZWVuIGF0IHRoZSBib3R0b20gKi9cbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzAwcHg7XG4gIC8qIEFkanVzdCBoZWlnaHQgYXMgbmVlZGVkICovXG4gIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgdHJhbnNpdGlvbjogYm90dG9tIDAuM3MgZWFzZTtcbiAgei1pbmRleDogMTAwMDtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5vZmZjYW52YXMtYm90dG9tLnNob3cge1xuICBib3R0b206IDA7XG59XG5cbi8qIE1vZGFsIFN0eWxlcyAqL1xuLmhlbHAtdGV4dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4vKiBNb250aGx5IGlucHV0cyBncmlkIGxheW91dCAqL1xuLm1vbnRobHktaW5wdXRzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgZ2FwOiAxMHB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4ubW9udGgtaW5wdXQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ubW9udGgtaW5wdXQgbGFiZWwge1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuXG4ubW9udGgtaW5wdXQgaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogOHB4O1xufVxuXG4vKiBQViBXYXR0cyBtb2RhbCDigJQgYmFja2Ryb3AgKyBjZW50ZXJpbmcgKGJ1bmRsZSBvcGVucyB2aWEgcmF3IGRpc3BsYXk6YmxvY2ssIG5vdCBCb290c3RyYXAncyBtb2RhbCBBUEkpICovXG4jcHZ3YXR0cy1zZXR0aW5ncy1tb2RhbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG4gIHotaW5kZXg6IDEwMDAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XG59XG5cbi8qIENhcCBtb2RhbCBoZWlnaHQgYW5kIHNjcm9sbCB0aGUgYm9keS4gUG9wb3ZlcnMgbGl2ZSBvdXRzaWRlIC5tb2RhbC1ib2R5XG4gKiAoc2libGluZ3Mgb2YgaXQgdW5kZXIgLm1vZGFsLWNvbnRlbnQpIHNvIHRoZXkgc3RheSBwaW5uZWQgdG8gdGhlIHRyaWdnZXJcbiAqIGNvb3JkcyBhbmQgZG9uJ3Qgc2Nyb2xsIHdpdGggdGhlIGNvbnRlbnQgdW5kZXJuZWF0aCB0aGVtLiAqL1xuI3B2d2F0dHMtc2V0dGluZ3MtbW9kYWwgLm1vZGFsLWNvbnRlbnQge1xuICBtYXgtaGVpZ2h0OiA5MHZoO1xufVxuXG4jcHZ3YXR0cy1zZXR0aW5ncy1tb2RhbCAubW9kYWwtYm9keSB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbiNwdndhdHRzLXNldHRpbmdzLW1vZGFsIC5wdndhdHRzLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBnYXA6IDEycHg7XG4gIG1hcmdpbi10b3A6IDRweDtcbn1cblxuI3B2d2F0dHMtc2V0dGluZ3MtbW9kYWwgLnB2d2F0dHMtaWNvbi1idG4ge1xuICBmbGV4OiAwIDAgMzhweDtcbiAgd2lkdGg6IDM4cHg7XG4gIG1pbi1oZWlnaHQ6IDM4cHg7XG4gIGhlaWdodDogMzhweDtcbiAgcGFkZGluZzogMDtcbn1cblxuI3B2d2F0dHMtc2V0dGluZ3MtbW9kYWwgLnB2d2F0dHMtc2lkZS10b2dnbGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgZmxleDogMCAwIGF1dG87XG59XG5cbiNwdndhdHRzLXNldHRpbmdzLW1vZGFsIC5wdndhdHRzLXRvZ2dsZS1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0taW5wdXQtcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNhcmQtY29sb3VyKSA2MCUsIHRyYW5zcGFyZW50KTtcbn1cblxuI3B2d2F0dHMtc2V0dGluZ3MtbW9kYWwgLnB2d2F0dHMtdG9nZ2xlLXJvdyAuY29tcGFjdC10b2dnbGUge1xuICBmbGV4LXNocmluazogMDtcbn1cblxuI3B2d2F0dHMtc2V0dGluZ3MtbW9kYWwgLnB2d2F0dHMtdG9nZ2xlLXRleHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDJweDtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbn1cblxuI3B2d2F0dHMtc2V0dGluZ3MtbW9kYWwgLnB2d2F0dHMtdG9nZ2xlLXRleHQgLmhlbHAtdGV4dCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi8qIFBWIFdhdHRzIG1vZGFsIOKAlCBwb3BvdmVycyAoYWxiZWRvIHByZXNldHMsIGxvc3MgY2FsY3VsYXRvcikgKi9cbiNwdndhdHRzLXNldHRpbmdzLW1vZGFsIC5wdndhdHRzLXBvcG92ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDk5OTk7XG4gIG1pbi13aWR0aDogMjU1cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYm94LXNoYWRvdzogMCA4cHggMjRweCB2YXIoLS1ib3hzaGFkb3cpO1xuICBwYWRkaW5nOiAxMHB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4jcHZ3YXR0cy1zZXR0aW5ncy1tb2RhbCAucHJlc2V0LXRpdGxlIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4jcHZ3YXR0cy1zZXR0aW5ncy1tb2RhbCAucHJlc2V0LXNlY3Rpb24ge1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbWFyZ2luOiAxMHB4IDAgNHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIHBhZGRpbmctdG9wOiA2cHg7XG59XG5cbiNwdndhdHRzLXNldHRpbmdzLW1vZGFsIC5wcmVzZXQtc2VjdGlvbjpmaXJzdC1vZi10eXBlIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbiAgcGFkZGluZy10b3A6IDA7XG59XG5cbiNwdndhdHRzLXNldHRpbmdzLW1vZGFsIC5hbGJlZG8tcHJlc2V0LW9wdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogNnB4IDhweDtcbiAgbWFyZ2luOiAycHggMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlO1xufVxuXG4jcHZ3YXR0cy1zZXR0aW5ncy1tb2RhbCAuYWxiZWRvLXByZXNldC1vcHRpb246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIpO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyLXRleHQpO1xufVxuXG4jcHZ3YXR0cy1zZXR0aW5ncy1tb2RhbCAubG9zcy1jYWxjLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIGdhcDogOHB4O1xufVxuXG4jcHZ3YXR0cy1zZXR0aW5ncy1tb2RhbCAubG9zcy1jYWxjLWdyaWQgbGFiZWwge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNHB4O1xufVxuXG4jcHZ3YXR0cy1zZXR0aW5ncy1tb2RhbCAubG9zcy1jYWxjLXRvdGFsIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4udGFiLXNwYWNlciB7XG4gIGZsZXgtZ3JvdzogMTtcbn1cblxuLyogTWFwIHZpZXcgY29udGFpbmVyIHN0eWxlcyAqL1xuI21hcC12aWV3LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA2MHB4O1xuICByaWdodDogMTBweDtcbiAgd2lkdGg6IDQwMHB4O1xuICBoZWlnaHQ6IDMwMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHotaW5kZXg6IDgwMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm94LXNoYWRvdzogMCA0cHggMjBweCB2YXIoLS1ib3hzaGFkb3cpO1xuICBkaXNwbGF5OiBub25lO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzLCBoZWlnaHQgMC4zcztcbn1cblxuI21hcC12aWV3LWNvbnRhaW5lci5leHBhbmRlZCB7XG4gIHdpZHRoOiA2MDBweDtcbiAgaGVpZ2h0OiA0NTBweDtcbn1cblxuI21hcC12aWV3LWNvbnRhaW5lciAuY2xvc2UtYnV0dG9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDVweDtcbiAgcmlnaHQ6IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB3aWR0aDogMjVweDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogODAxO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7XG59XG5cbiNtYXAtdmlldy1jb250YWluZXIgLmNsb3NlLWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCk7XG59XG5cbiNtYXAtdmlldy1jb250YWluZXIgLm1hcC12aWV3LWJ1dHRvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogODAxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7XG59XG5cbiNtYXAtdmlldy1jb250YWluZXIgLm1hcC12aWV3LWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCk7XG59XG5cbiN0b2dnbGUtdmlldy1idXR0b24ge1xuICB0b3A6IDVweDtcbiAgbGVmdDogNXB4O1xufVxuXG4jZ29vZ2xlLW1hcCB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbiNzdHJlZXQtdmlldy1wYW5vcmFtYSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbmNhbnZhcy5jYWxpYnJhdGlvbi1tb2RlIHtcbiAgY3Vyc29yOiBjcm9zc2hhaXIgIWltcG9ydGFudDtcbiAgLyogQ3Vyc29yIGZvciBjYWxpYnJhdGlvbiBtb2RlIC0gd2l0aCAhaW1wb3J0YW50ICovXG59XG5cbi5tcHAtZGlzcGxheSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDAuOWVtO1xufVxuXG4vKiBTdHlsaW5nIGZvciB0aGUgTVBQIHdhcm5pbmcgaWNvbiAqL1xuI21wcC13YXJuaW5nLWljb24ge1xuICBhbmltYXRpb246IHB1bHNlIDEuNXMgaW5maW5pdGU7XG4gIHRleHQtc2hhZG93OiAwIDAgNXB4IHJnYmEoMjU1LCAxOTMsIDcsIDAuNik7XG59XG5cbkBrZXlmcmFtZXMgcHVsc2Uge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG4vKiBEaXN0YW5jZSBMYWJlbCBTdHlsZXMgKi9cbi5kaXN0YW5jZS1sYWJlbCB7XG4gIGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZFwiLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgei1pbmRleDogMTAwMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG59XG5cbi5kaXN0YW5jZS1sYWJlbC1jb250ZW50IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgwLCAwLCAwLCAwLjgxKSAwJSwgcmdiYSgyMCwgMjAsIDIwLCAwLjgxKSAxMDAlKTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIHBhZGRpbmc6IDNweCA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICBib3gtc2hhZG93OiAwIDNweCAxNHB4IHJnYmEoMCwgMCwgMCwgMC40KSwgMCAycHggN3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1pbi13aWR0aDogMzBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4uZGlzdGFuY2UtbGFiZWwtY29udGVudDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpLCB0cmFuc3BhcmVudCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uZGlzdGFuY2UtdGV4dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuM3B4O1xufVxuXG4uZGlzdGFuY2UtbGFiZWwgKyBzdmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDk5OTtcbn1cblxuLmRpc3RhbmNlLWxhYmVsICsgc3ZnIHBhdGgge1xuICBzdHJva2U6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbiAgc3Ryb2tlLXdpZHRoOiAyO1xuICBmaWxsOiBub25lO1xuICBzdHJva2UtZGFzaGFycmF5OiA2LCA0O1xuICBzdHJva2UtbGluZWNhcDogcm91bmQ7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4zKSk7XG4gIGFuaW1hdGlvbjogZGFzaE1vdmUgMnMgbGluZWFyIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIGRhc2hNb3ZlIHtcbiAgdG8ge1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMTA7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuZGlzdGFuY2UtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgfVxuICAuZGlzdGFuY2UtbGFiZWwtY29udGVudCB7XG4gICAgcGFkZGluZzogMnB4IDRweDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgbWluLXdpZHRoOiAyNnB4O1xuICB9XG59XG4uZGltZW5zaW9uLWNvbnRyb2xzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA1cHg7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLmNvbG9yLW9wdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEwcHg7XG59XG5cbi5jb2xvci1vcHRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAxMnB4O1xuICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5cbi5jb2xvci1vcHRpb246aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG59XG5cbi5jb2xvci1vcHRpb24uc2VsZWN0ZWQge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5LWNvbG91cik7XG59XG5cbi5jb2xvci1wcmV2aWV3IHtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4jcGFuZWwtY29sb3JzLW1vZGFsIC5wYW5lbC1jb2xvcnMtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gIGdhcDogMTZweDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG4jcGFuZWwtY29sb3JzLW1vZGFsIC5wYW5lbC1jb2xvcnMtc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTJweDtcbiAgcGFkZGluZzogMTZweDtcbiAgbWFyZ2luOiAwO1xufVxuI3BhbmVsLWNvbG9ycy1tb2RhbCAucGFuZWwtY29sb3JzLXNlY3Rpb25fX2hlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbn1cbiNwYW5lbC1jb2xvcnMtbW9kYWwgLnBhbmVsLWNvbG9ycy1zZWN0aW9uX19pY29uIHtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuI3BhbmVsLWNvbG9ycy1tb2RhbCAucGFuZWwtY29sb3JzLXNlY3Rpb25fX3RleHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDJweDtcbiAgbWluLXdpZHRoOiAwO1xufVxuI3BhbmVsLWNvbG9ycy1tb2RhbCAucGFuZWwtY29sb3JzLXNlY3Rpb25fX3RpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuI3BhbmVsLWNvbG9ycy1tb2RhbCAucGFuZWwtY29sb3JzLXNlY3Rpb25fX3N1YnRpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cbiNwYW5lbC1jb2xvcnMtbW9kYWwgLnBhbmVsLWNvbG9ycy1zd2F0Y2hlcyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIGdhcDogOHB4O1xufVxuI3BhbmVsLWNvbG9ycy1tb2RhbCAucGFuZWwtY29sb3JzLXN3YXRjaGVzIC5jb2xvci1vcHRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiAxMHB4IDhweDtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLCB0cmFuc2Zvcm0gMC4xNXMgZWFzZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuI3BhbmVsLWNvbG9ycy1tb2RhbCAucGFuZWwtY29sb3JzLXN3YXRjaGVzIC5jb2xvci1vcHRpb246aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cbiNwYW5lbC1jb2xvcnMtbW9kYWwgLnBhbmVsLWNvbG9ycy1zd2F0Y2hlcyAuY29sb3Itb3B0aW9uLnNlbGVjdGVkIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgaW5zZXQ7XG59XG4jcGFuZWwtY29sb3JzLW1vZGFsIC5wYW5lbC1jb2xvcnMtc3dhdGNoZXMgLmNvbG9yLXByZXZpZXcge1xuICB3aWR0aDogNDRweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG4jcGFuZWwtY29sb3JzLW1vZGFsIC5wYW5lbC1jb2xvcnMtc3dhdGNoZXMgLmNvbG9yLW9wdGlvbiBzcGFuIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgI3BhbmVsLWNvbG9ycy1tb2RhbCAucGFuZWwtY29sb3JzLWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG59XG5cbi8qIEZ1biBMb2FkaW5nIEFuaW1hdGlvbiBTdHlsZXMgKi9cbi5mdW4tbG9hZGluZy1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44NSk7XG4gIHotaW5kZXg6IDMwMDA7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTtcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIHNhbnMtc2VyaWY7XG59XG5cbi5mdW4tbG9hZGluZy1jb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgcGFkZGluZzogMzJweDtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJveC1zaGFkb3c6IDAgMjBweCA2MHB4IHJnYmEoMCwgMCwgMCwgMC40KTtcbiAgd2lkdGg6IDkwJTtcbiAgbWF4LXdpZHRoOiA1MDBweDtcbiAgbWluLXdpZHRoOiAzNTBweDtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xufVxuXG4uZnVuLWxvYWRpbmctaGVhZGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAzMnB4O1xufVxuXG4uZnVuLWxvYWRpbmctaWNvbiB7XG4gIGZvbnQtc2l6ZTogNDBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgYW5pbWF0aW9uOiBzcGluIDNzIGxpbmVhciBpbmZpbml0ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uZnVuLWxvYWRpbmctdGl0bGUge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xufVxuXG4uZnVuLWxvYWRpbmctY2hlY2tsaXN0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuLmZ1bi1sb2FkaW5nLXN0ZXAge1xuICBwYWRkaW5nOiA0cHggMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcbn1cblxuLmZ1bi1sb2FkaW5nLXN0ZXAtdGV4dCB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNHMgZWFzZTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuLmZ1bi1sb2FkaW5nLXN0ZXAuY29tcGxldGVkIC5mdW4tbG9hZGluZy1zdGVwLXRleHQge1xuICBjb2xvcjogI2M1MzAyMjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC1zaGFkb3c6IDAgMCA4cHggcmdiYSgzNCwgMTk3LCA5NCwgMC4zKTtcbn1cblxuQGtleWZyYW1lcyBzcGluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi8qIEFubm90YXRpb24gQ29udGV4dCBNZW51IFN0eWxlcyAqL1xuLmFubm90YXRpb24tY29udGV4dC1tZW51IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggdmFyKC0tYm94c2hhZG93KTtcbiAgei1pbmRleDogMTAwMDE7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXR5cGUpO1xuICBtaW4td2lkdGg6IDEyMHB4O1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uYW5ub3RhdGlvbi1jb250ZXh0LW1lbnUtaXRlbSB7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnM7XG59XG5cbi5hbm5vdGF0aW9uLWNvbnRleHQtbWVudS1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xufVxuXG4uYW5ub3RhdGlvbi1jb250ZXh0LW1lbnUtaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4uYW5ub3RhdGlvbi1jb250ZXh0LW1lbnUtaXRlbS5kZWxldGUge1xuICBjb2xvcjogI2RjMzU0NTtcbn1cblxuLmFubm90YXRpb24tY29udGV4dC1tZW51LWl0ZW0uZGVsZXRlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZWJlZTtcbn1cblxuLmFubm90YXRpb24tdG9vbGJhci1jb2xvciB7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLmFubm90YXRpb24tdG9vbGJhci1jb2xvcjo6LXdlYmtpdC1jb2xvci1zd2F0Y2gtd3JhcHBlciB7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG4uYW5ub3RhdGlvbi10b29sYmFyLWNvbG9yOjotd2Via2l0LWNvbG9yLXN3YXRjaCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG5Aa2V5ZnJhbWVzIHNwaW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyBsb2FkaW5nLXByb2dyZXNzIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgfVxufVxuLyogQ2FudmFzL0ltYWdlIFRvcCBJbmRpY2F0b3IgLSBGaXhlZCBwb3NpdGlvbiBzaG93aW5nIGltYWdlIG9yaWVudGF0aW9uICovXG4uY29tcGFzcy1jYW52YXMtaW5kaWNhdG9yIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDVweDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGNvbG9yOiByZ2JhKDEwMCwgMjAwLCAyNTUsIDAuOSk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIDAgM3B4IHJnYmEoMCwgMCwgMCwgMC44KSwgMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogNTtcbn1cblxuI3NsZC1jYW52YXMtY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbiNzbGQtdG9vbGJhciB7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5LWNvbG91cik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTBweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBmbGV4LXNocmluazogMDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHotaW5kZXg6IDkwMDtcbn1cblxuI3NsZC10b29sYmFyIC5idXR0b246aG92ZXIsXG4jc2xkLXRvb2xiYXIgLmJ1dHRvbjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCk7XG59XG5cbiNzbGQtdG9vbGJhciAudG9vbGJhci1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbiNzbGQtdG9vbGJhciAudG9vbGJhci1ncm91cDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbiNzbGQtdG9vbGJhciAudG9vbGJhci1ncm91cDpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy1yaWdodDogMDtcbn1cblxuI3NsZC1wcm9wcy1zaWRlYmFyIC5zcC1wYWlyIGlucHV0W3R5cGU9Y2hlY2tib3hdLFxuI3BsYW5zZXQtcHJvcHMtc2lkZWJhciAuc3AtcGFpciBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGFjY2VudC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbiNzbGQtcHJvcHMtc2lkZWJhciAuc3AtcGFpciBpbnB1dFt0eXBlPXJhbmdlXTpkaXNhYmxlZCxcbiNwbGFuc2V0LXByb3BzLXNpZGViYXIgLnNwLXBhaXIgaW5wdXRbdHlwZT1yYW5nZV06ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbmRpdi5teFBvcHVwTWVudSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMDAwNjtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuZGl2Lm14UG9wdXBNZW51IHRhYmxlLm14UG9wdXBNZW51IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJveC1zaGFkb3c6IHZhcigtLWgtb2Zmc2V0KSB2YXIoLS12LW9mZnNldCkgdmFyKC0tYmx1ci1yYWRpdXMpIHZhcigtLWJveHNoYWRvdyk7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogNHB4IDA7XG4gIG1pbi13aWR0aDogMTYwcHg7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuZGl2Lm14UG9wdXBNZW51IHRhYmxlLm14UG9wdXBNZW51IHRib2R5IHRyLFxuZGl2Lm14UG9wdXBNZW51IHRhYmxlLm14UG9wdXBNZW51IHRib2R5IHRyOm50aC1jaGlsZChvZGQpLFxuZGl2Lm14UG9wdXBNZW51IHRhYmxlLm14UG9wdXBNZW51IHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xufVxuZGl2Lm14UG9wdXBNZW51IHRhYmxlLm14UG9wdXBNZW51IHRib2R5IHRkIHtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG59XG5kaXYubXhQb3B1cE1lbnUgdGFibGUubXhQb3B1cE1lbnUgdGQubXhQb3B1cE1lbnVJY29uIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbmRpdi5teFBvcHVwTWVudSB0YWJsZS5teFBvcHVwTWVudSB0ci5teFBvcHVwTWVudUl0ZW0gdGQsXG5kaXYubXhQb3B1cE1lbnUgdGFibGUubXhQb3B1cE1lbnUgdHIubXhQb3B1cE1lbnVJdGVtSG92ZXIgdGQge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDEzcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbmRpdi5teFBvcHVwTWVudSB0YWJsZS5teFBvcHVwTWVudSB0ci5teFBvcHVwTWVudUl0ZW06aG92ZXIsXG5kaXYubXhQb3B1cE1lbnUgdGFibGUubXhQb3B1cE1lbnUgdHIubXhQb3B1cE1lbnVJdGVtSG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIpICFpbXBvcnRhbnQ7XG59XG5kaXYubXhQb3B1cE1lbnUgdGFibGUubXhQb3B1cE1lbnUgdHIubXhQb3B1cE1lbnVJdGVtOmhvdmVyIHRkLFxuZGl2Lm14UG9wdXBNZW51IHRhYmxlLm14UG9wdXBNZW51IHRyLm14UG9wdXBNZW51SXRlbUhvdmVyIHRkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWhvdmVyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyLXRleHQpICFpbXBvcnRhbnQ7XG59XG5kaXYubXhQb3B1cE1lbnUgdGFibGUubXhQb3B1cE1lbnUgdHI6bm90KC5teFBvcHVwTWVudUl0ZW0pOm5vdCgubXhQb3B1cE1lbnVJdGVtSG92ZXIpIHRkIHtcbiAgcGFkZGluZzogMDtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIGZvbnQtc2l6ZTogMDtcbn1cbmRpdi5teFBvcHVwTWVudSB0YWJsZS5teFBvcHVwTWVudSBociB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBtYXJnaW46IDRweCA4cHg7XG4gIGhlaWdodDogMDtcbn1cblxuLyogU0xEIENvbnRleHQgaWNvbnMgb24gc2VsZWN0ZWQgdmVydGV4ICovXG4jc2xkLWNvbnRleHQtaWNvbnMge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG59XG5cbi5zbGQtY3R4LWljb24ge1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcywgYmFja2dyb3VuZCAwLjFzO1xuICB6LWluZGV4OiA1MDtcbn1cbi5zbGQtY3R4LWljb246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpO1xufVxuXG4vKiBQbGFuc2V0IFNMRCBwYWdlIGVkaXQgYnV0dG9uICovXG4ucGxhbnNldC1zbGQtZWRpdC1idG4ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTJweDtcbiAgcmlnaHQ6IDEycHg7XG4gIHotaW5kZXg6IDEwO1xuICBwYWRkaW5nOiA2cHggMTRweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1idXR0b24taG92ZXIpO1xuICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4ucGxhbnNldC1zbGQtZWRpdC1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIpO1xufVxuXG4vKiBTTEQgc2hhcGUgcGlja2VyIHBvcG92ZXIgKHNob3duIHdoZW4gY2xpY2tpbmcgKyBidXR0b25zIG9uIHNlbGVjdGVkIHZlcnRleCkgKi9cbiNzbGQtc2hhcGUtcGlja2VyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggdmFyKC0tYm94c2hhZG93KTtcbiAgcGFkZGluZzogNHB4IDA7XG4gIG1pbi13aWR0aDogMTMwcHg7XG4gIHotaW5kZXg6IDIwMDtcbn1cblxuLnNsZC1waWNrZXItaXRlbSB7XG4gIHBhZGRpbmc6IDVweCAxMnB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDEycHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnNsZC1waWNrZXItaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLm14UnViYmVyYmFuZCB7XG4gIGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYmFja2dyb3VuZDogcmdiYSg3NCwgMTU4LCAyNTUsIDAuMSk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cblxuLyogU0xEIE1pbmltYXAgKi9cbiNzbGQtbWluaW1hcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAzMHB4O1xuICByaWdodDogMjMwcHg7XG4gIHdpZHRoOiAxNjBweDtcbiAgaGVpZ2h0OiAxMTBweDtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgei1pbmRleDogMTAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4jc2xkLW1pbmltYXAgc3ZnIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLyogU0xEIFN0YXR1cyBCYXIgKi9cbiNzbGQtc3RhdHVzLWJhciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktY29sb3VyKTtcbiAgcGFkZGluZzogMnB4IDEycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTZweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vKiBTTEQgU2lkZWJhciAqL1xuI3NsZC1zaWRlYmFyIHtcbiAgd2lkdGg6IDIwMHB4O1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5LWNvbG91cik7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiAxMDA7XG59XG5cbi5zbGQtc2lkZWJhci1ib2R5IHtcbiAgZmxleDogMTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcGFkZGluZzogOHB4O1xufVxuXG4uc2xkLXNpZGViYXItc2VhcmNoIHtcbiAgcGFkZGluZzogNnB4IDhweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnNsZC1zaWRlYmFyLXNlYXJjaCBpbnB1dCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA1cHggOHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLnNsZC1zaWRlYmFyLXNlYXJjaCBpbnB1dDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5zbGQtZHJhZy1pdGVtIHtcbiAgcGFkZGluZzogOHB4IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDEycHg7XG4gIGN1cnNvcjogZ3JhYjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMsIGJvcmRlci1jb2xvciAwLjE1cztcbn1cblxuLnNsZC1kcmFnLWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyLXRleHQpO1xufVxuXG4uc2xkLXNoYXBlLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbn1cblxuLnNsZC1zaGFwZS1wcmV2aWV3IHtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5zbGQtc2hhcGUtY2F0IHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC44cHg7XG4gIGNvbG9yOiAjNjY2O1xuICBwYWRkaW5nOiAxMHB4IDAgNHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbn1cblxuLnNsZC1zaGFwZS1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbn1cblxuLnNsZC1zaWRlYmFyLXRvZ2dsZS1idG4ge1xuICB3aWR0aDogMjBweDtcbiAgbWluLXdpZHRoOiAyMHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5LWNvbG91cik7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uc2xkLXNpZGViYXItdG9nZ2xlLWJ0bjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbn1cblxuLyogUmlnaHQgcHJvcGVydGllcyBwYW5lbCAqL1xuI3NsZC1wcm9wcy1zaWRlYmFyIHtcbiAgd2lkdGg6IDIyMHB4O1xuICBtaW4td2lkdGg6IDIyMHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5LWNvbG91cik7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5zbGQtcHJvcHMtaGVhZGVyIHtcbiAgcGFkZGluZzogOHB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuOHB4O1xuICBjb2xvcjogIzg4ODtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuI3NsZC1wcm9wcy1zaWRlYmFyIC5zbGQtcGFuZWwge1xuICBmbGV4OiAxO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiA4cHg7XG59XG5cbi5zbGQtcHJvcHMtZW1wdHkge1xuICBjb2xvcjogIzY2NjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDI0cHggOHB4O1xufVxuXG4jc2xkLXByb3BzLXNpZGViYXIgLnNwLXJvdyxcbiNwbGFuc2V0LXByb3BzLXNpZGViYXIgLnNwLXJvdyB7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cbiNzbGQtcHJvcHMtc2lkZWJhciAuc3AtbGFiZWwsXG4jcGxhbnNldC1wcm9wcy1zaWRlYmFyIC5zcC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIG1hcmdpbi1ib3R0b206IDNweDtcbn1cbiNzbGQtcHJvcHMtc2lkZWJhciAuc3AtdmFsdWUsXG4jcGxhbnNldC1wcm9wcy1zaWRlYmFyIC5zcC12YWx1ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4jc2xkLXByb3BzLXNpZGViYXIgLnNwLWlucHV0LFxuI3BsYW5zZXQtcHJvcHMtc2lkZWJhciAuc3AtaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogNHB4IDZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0taW5wdXQtYmFja2dyb3VuZCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWlucHV0LXJhZGl1cyk7XG4gIGNvbG9yOiB2YXIoLS1pbnB1dC10ZXh0KTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuI3NsZC1wcm9wcy1zaWRlYmFyIC5zcC1pbnB1dDpmb2N1cyxcbiNwbGFuc2V0LXByb3BzLXNpZGViYXIgLnNwLWlucHV0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnB1dC1mb2N1cy1ib3JkZXIpO1xufVxuI3NsZC1wcm9wcy1zaWRlYmFyIC5zcC1wYWlyLFxuI3BsYW5zZXQtcHJvcHMtc2lkZWJhciAuc3AtcGFpciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBtaW4td2lkdGg6IDA7XG59XG4jc2xkLXByb3BzLXNpZGViYXIgLnNwLXBhaXIgbGFiZWwsXG4jcGxhbnNldC1wcm9wcy1zaWRlYmFyIC5zcC1wYWlyIGxhYmVsIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIHdpZHRoOiAxNHB4O1xuICBmbGV4LXNocmluazogMDtcbn1cbiNzbGQtcHJvcHMtc2lkZWJhciAuc3AtbnVtLFxuI3BsYW5zZXQtcHJvcHMtc2lkZWJhciAuc3AtbnVtIHtcbiAgd2lkdGg6IDU2cHg7XG4gIHBhZGRpbmc6IDNweCA0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWJhY2tncm91bmQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1pbnB1dC1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0taW5wdXQtdGV4dCk7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cbiNzbGQtcHJvcHMtc2lkZWJhciAuc3AtbnVtOmZvY3VzLFxuI3BsYW5zZXQtcHJvcHMtc2lkZWJhciAuc3AtbnVtOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnB1dC1mb2N1cy1ib3JkZXIpO1xufVxuI3NsZC1wcm9wcy1zaWRlYmFyIC5zcC1jb2xvcixcbiNwbGFuc2V0LXByb3BzLXNpZGViYXIgLnNwLWNvbG9yIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0taW5wdXQtcmFkaXVzKTtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbGV4LXNocmluazogMDtcbn1cbiNzbGQtcHJvcHMtc2lkZWJhciAuc3Atc2VsZWN0LFxuI3BsYW5zZXQtcHJvcHMtc2lkZWJhciAuc3Atc2VsZWN0IHtcbiAgcGFkZGluZzogM3B4IDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0taW5wdXQtYmFja2dyb3VuZCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWlucHV0LXJhZGl1cyk7XG4gIGNvbG9yOiB2YXIoLS1pbnB1dC10ZXh0KTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4jc2xkLXByb3BzLXNpZGViYXIgLnNwLXNlbGVjdDpmb2N1cyxcbiNwbGFuc2V0LXByb3BzLXNpZGViYXIgLnNwLXNlbGVjdDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0taW5wdXQtZm9jdXMtYm9yZGVyKTtcbn1cbiNzbGQtcHJvcHMtc2lkZWJhciAuc3Atd2lkZSxcbiNwbGFuc2V0LXByb3BzLXNpZGViYXIgLnNwLXdpZGUge1xuICB3aWR0aDogMTAwJTtcbn1cbiNzbGQtcHJvcHMtc2lkZWJhciAuc3AtcmFuZ2UsXG4jcGxhbnNldC1wcm9wcy1zaWRlYmFyIC5zcC1yYW5nZSB7XG4gIGZsZXg6IDEgMSAwO1xuICBtaW4td2lkdGg6IDA7XG4gIGhlaWdodDogNHB4O1xuICBhY2NlbnQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuI3NsZC1wcm9wcy1zaWRlYmFyIC5zcC1yYW5nZS12YWwsXG4jcGxhbnNldC1wcm9wcy1zaWRlYmFyIC5zcC1yYW5nZS12YWwge1xuICBmb250LXNpemU6IDEwcHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgd2lkdGg6IDMycHg7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLyogRHJhdyBUb29scyBDb250ZXh0IE1lbnUgKi9cbi5kcmF3LXRvb2xzLWNvbnRleHQtbWVudSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3gtc2hhZG93OiAwIDhweCAzMnB4IHJnYmEoMCwgMCwgMCwgMC40KSwgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSBpbnNldDtcbiAgei1pbmRleDogMTAwMDE7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXR5cGUpO1xuICBtaW4td2lkdGg6IDE4MHB4O1xuICBkaXNwbGF5OiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZHJhdy10b29scy1jb250ZXh0LW1lbnUtaGVhZGVyIHtcbiAgcGFkZGluZzogMTBweCAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDExcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5kcmF3LXRvb2xzLWNvbnRleHQtbWVudS1jbG9zZSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDAgMnB4O1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLmRyYXctdG9vbHMtY29udGV4dC1tZW51LWNsb3NlOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xufVxuXG4uZHJhdy10b29scy1jb250ZXh0LW1lbnUtaXRlbSB7XG4gIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5kcmF3LXRvb2xzLWNvbnRleHQtbWVudS1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWhvdmVyKTtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlci10ZXh0KTtcbn1cblxuLmRyYXctdG9vbHMtY29udGV4dC1tZW51LWl0ZW0uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpO1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBwYWRkaW5nLWxlZnQ6IDExcHg7XG59XG5cbi5kcmF3LXRvb2xzLWNvbnRleHQtbWVudS1pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbn1cblxuLmRyYXctdG9vbHMtY29udGV4dC1tZW51LWljb24ge1xuICB3aWR0aDogMjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDE2cHg7XG4gIG9wYWNpdHk6IDAuOTtcbn1cblxuLmRyYXctdG9vbHMtY29udGV4dC1tZW51LWxhYmVsIHtcbiAgZmxleDogMTtcbn1cblxuLyogUGxhbnNldCBlZGl0b3IgdG9vbGJhciAobWF4R3JhcGgtYmFzZWQgV1lTSVdZRyBlZGl0b3IpICovXG4jcGxhbnNldC1lZGl0b3ItdG9vbGJhciB7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5LWNvbG91cik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTBweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICB6LWluZGV4OiA5MDA7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCB2YXIoLS1ib3hzaGFkb3cpO1xufVxuXG4jcGxhbnNldC1lZGl0b3ItdG9vbGJhciAuYnV0dG9uIHtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbWluLXdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDMycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xufVxuXG4jcGxhbnNldC1lZGl0b3ItdG9vbGJhciAuYnV0dG9uIGkge1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbiNwbGFuc2V0LWVkaXRvci10b29sYmFyIC50b29sYmFyLWdyb3VwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4jcGxhbnNldC1lZGl0b3ItdG9vbGJhciAudG9vbGJhci1ncm91cDpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbi8qIOKUgOKUgOKUgCBNb2RlIFN3aXRjaGVyIChzaGFyZWQgYmV0d2VlbiBTTEQgYW5kIHBsYW5zZXQgZWRpdG9yIHRvb2xiYXJzKSDilIDilIDilIAgKi9cbiNwbGFuc2V0LWVkaXRvci10b29sYmFyIC50b29sYmFyLWdyb3VwLm1vZGUtc3dpdGNoZXIsXG4jc2xkLXRvb2xiYXIgLnRvb2xiYXItZ3JvdXAubW9kZS1zd2l0Y2hlciB7XG4gIGdhcDogMnB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuI3BsYW5zZXQtZWRpdG9yLXRvb2xiYXIgLm1vZGUtc3dpdGNoZXIgLmJ1dHRvbixcbiNzbGQtdG9vbGJhciAubW9kZS1zd2l0Y2hlciAuYnV0dG9uIHtcbiAgb3BhY2l0eTogMC43NTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuI3BsYW5zZXQtZWRpdG9yLXRvb2xiYXIgLm1vZGUtc3dpdGNoZXIgLmJ1dHRvbjpob3ZlcixcbiNzbGQtdG9vbGJhciAubW9kZS1zd2l0Y2hlciAuYnV0dG9uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuI3BsYW5zZXQtZWRpdG9yLXRvb2xiYXIgLm1vZGUtc3dpdGNoZXIgLmJ1dHRvbi5hY3RpdmUsXG4jc2xkLXRvb2xiYXIgLm1vZGUtc3dpdGNoZXIgLmJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS10ZXh0KTtcbiAgb3BhY2l0eTogMTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4jcGxhbnNldC1lZGl0b3ItdG9vbGJhciAubW9kZS1zd2l0Y2hlciAuYnV0dG9uLmFjdGl2ZTpob3ZlcixcbiNzbGQtdG9vbGJhciAubW9kZS1zd2l0Y2hlciAuYnV0dG9uLmFjdGl2ZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4vKiDilIDilIDilIAgUGxhbnNldCBwYWdlIHNpZGViYXIgKG11bHRpLXBhZ2UgdGh1bWJuYWlsIG5hdmlnYXRpb24pIOKUgOKUgOKUgCAqL1xuI3BsYW5zZXQtcGFnZS1zaWRlYmFyIHtcbiAgd2lkdGg6IDE0MHB4O1xuICBmbGV4LXNocmluazogMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcGFkZGluZzogMTJweCA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTJweDtcbn1cblxuLnBsYW5zZXQtcGFnZS10aHVtYiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogNHB4O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMsIGJhY2tncm91bmQgMC4xNXM7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xufVxuXG4ucGxhbnNldC1wYWdlLXRodW1iOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWhvdmVyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuLnBsYW5zZXQtcGFnZS10aHVtYi5hY3RpdmUge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLXNlY29uZGFyeS1jb2xvdXItcmdiKSwgMC4xMik7XG59XG5cbi5wbGFuc2V0LXBhZ2UtdGh1bWIgY2FudmFzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3gtc2hhZG93OiAwIDFweCA0cHggdmFyKC0tYm94c2hhZG93KTtcbn1cblxuLnBsYW5zZXQtcGFnZS10aHVtYi1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5wbGFuc2V0LXBhZ2UtdGh1bWIuYWN0aXZlIC5wbGFuc2V0LXBhZ2UtdGh1bWItbGFiZWwge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi8qIFBsYW5zZXQgcGFnZXMgY29udGFpbmVyICovXG4jcGxhbnNldC1wYWdlcy1jb250YWluZXIge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnBsYW5zZXQtcGFnZS1jYW52YXMge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbn1cblxuLyogUGxhbnNldCByaWdodCBzaWRlYmFyIOKAlCBwcm9wZXJ0eSBlZGl0b3IgKyBzaGFwZXMgcGFsZXR0ZSAqL1xuI3BsYW5zZXQtcHJvcHMtc2lkZWJhciB7XG4gIHdpZHRoOiAyMjBweDtcbiAgbWluLXdpZHRoOiAyMjBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ucGxhbnNldC1wcm9wcy1oZWFkZXIge1xuICBwYWRkaW5nOiA4cHggMTBweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC44cHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnBsYW5zZXQtcHJvcHMtYm9keSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBvdmVyZmxvdy14OiBoaWRkZW47XG4gIHBhZGRpbmc6IDhweDtcbiAgbWluLWhlaWdodDogMDtcbn1cblxuLnBsYW5zZXQtcHJvcHMtZW1wdHkge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAyNHB4IDhweDtcbn1cblxuLnBsYW5zZXQtc2hhcGVzLXBhbGV0dGUge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgbWF4LWhlaWdodDogMjgwcHg7XG59XG5cbi8qIFNoYXBlcyBwYWxldHRlICovXG4ucGxhbnNldC1zaGFwZXMtaGludCB7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBsaW5lLWhlaWdodDogMS4zNTtcbiAgcGFkZGluZzogNnB4IDEwcHggNHB4O1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5wbGFuc2V0LXNoYXBlLWl0ZW0ge1xuICBwYWRkaW5nOiA2cHggOHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGN1cnNvcjogZ3JhYjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMsIGJvcmRlci1jb2xvciAwLjFzO1xufVxuXG4ucGxhbnNldC1zaGFwZS1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWhvdmVyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuLnBsYW5zZXQtc2hhcGUtaXRlbTphY3RpdmUge1xuICBjdXJzb3I6IGdyYWJiaW5nO1xuICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLXNlY29uZGFyeS1jb2xvdXItcmdiKSwgMC4xNSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi8qIOKUgOKUgOKUgCBQbGFuIFNldCBXaXphcmQgTW9kYWwg4pSA4pSA4pSAICovXG4jcGxhbnNldC13aXphcmQtbW9kYWwgLnBsYW5zZXQtd2l6YXJkLW1vZGFsLWNvbnRlbnQge1xuICBtYXgtd2lkdGg6IDc2MHB4O1xuICBtYXgtaGVpZ2h0OiA4NXZoO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4jcGxhbnNldC13aXphcmQtbW9kYWwgLm1vZGFsLWJvZHkge1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4jcGxhbnNldC13aXphcmQtbW9kYWwgLnBsYW5zZXQtdGFiLXN0cmlwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAycHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4jcGxhbnNldC13aXphcmQtbW9kYWwgLnBsYW5zZXQtdGFiIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIHBhZGRpbmc6IDhweCAxNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cykgdmFyKC0tYnV0dG9uLXJhZGl1cykgMCAwO1xuICBtYXJnaW4tYm90dG9tOiAtMXB4O1xufVxuXG4jcGxhbnNldC13aXphcmQtbW9kYWwgLnBsYW5zZXQtdGFiOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xufVxuXG4jcGxhbnNldC13aXphcmQtbW9kYWwgLnBsYW5zZXQtdGFiLmFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xufVxuXG4jcGxhbnNldC13aXphcmQtbW9kYWwgLnBsYW5zZXQtdGFiLXBhbmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuI3BsYW5zZXQtd2l6YXJkLW1vZGFsIC5wbGFuc2V0LXRhYi1wYW5lbC5hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuI3BsYW5zZXQtd2l6YXJkLW1vZGFsIC5wbGFuc2V0LXNoZWV0LXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbiAgcGFkZGluZzogOHB4IDZweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuI3BsYW5zZXQtd2l6YXJkLW1vZGFsIC5wbGFuc2V0LXNoZWV0LXJvdzpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuI3BsYW5zZXQtd2l6YXJkLW1vZGFsIC5wbGFuc2V0LXNoZWV0LXJvdy5kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNDU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbiNwbGFuc2V0LXdpemFyZC1tb2RhbCAucGxhbnNldC1zaGVldC1yb3cgaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICBtYXJnaW46IDA7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4jcGxhbnNldC13aXphcmQtbW9kYWwgLnBsYW5zZXQtc2hlZXQtcm93IC5wcy1jb2RlIHtcbiAgZmxleDogMCAwIDQ4cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4jcGxhbnNldC13aXphcmQtbW9kYWwgLnBsYW5zZXQtc2hlZXQtcm93IC5wcy10aXRsZSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xufVxuXG4jcGxhbnNldC13aXphcmQtbW9kYWwgLnBsYW5zZXQtc2hlZXQtcm93IC5wcy1ub3RlIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXNpemU6IDExcHg7XG59XG5cbiNwbGFuc2V0LXdpemFyZC1tb2RhbCAucGxhbnNldC1yZXYtaGVhZGVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1MHB4IDExMHB4IDFmciAzMnB4O1xuICBnYXA6IDhweDtcbiAgcGFkZGluZzogMCAwIDRweCAwO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbiNwbGFuc2V0LXdpemFyZC1tb2RhbCAucGxhbnNldC1yZXYtcm93IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1MHB4IDExMHB4IDFmciAzMnB4O1xuICBnYXA6IDhweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogNHB4IDA7XG59XG5cbiNwbGFuc2V0LXdpemFyZC1tb2RhbCAucGxhbnNldC1yZXYtcm93IGlucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWJhY2tncm91bmQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1pbnB1dC1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0taW5wdXQtdGV4dCk7XG4gIHBhZGRpbmc6IDRweCA2cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuI3BsYW5zZXQtd2l6YXJkLW1vZGFsIC5wbGFuc2V0LXJldi1yb3cgLnBsYW5zZXQtcmV2LXJlbW92ZSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgcGFkZGluZzogMnB4IDZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4jcGxhbnNldC13aXphcmQtbW9kYWwgLnBsYW5zZXQtcmV2LXJvdyAucGxhbnNldC1yZXYtcmVtb3ZlOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1kYW5nZXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1kYW5nZXIpO1xufVxuXG4vKiBGbHlvdXQgcGFuZWxzIOKAlCBhbmNob3JlZCB0byB0aGUgcmlnaHQgb2YgdGhlIERlc2lnbiBBc3Npc3RhbnQgYnlcbiAgIFVJSGVscGVyLnRvZ2dsZUJvdHRvbUJhclBhbmVsKCk7IHRoZSB0b3AvbGVmdCBoZXJlIGFyZSBKUy1vdmVycmlkZGVuXG4gICBmYWxsYmFja3MgKHVzZWQgaWYgc2NyaXB0aW5nIGhhc24ndCBwb3NpdGlvbmVkIHRoZSBwYW5lbCB5ZXQpLiAqL1xuLmJvdHRvbS1iYXItcGFuZWwge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMjBweDtcbiAgbGVmdDogMjk4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHBhZGRpbmc6IDE2cHggMjBweDtcbiAgei1pbmRleDogMTAwMDtcbiAgYm94LXNoYWRvdzogMCA4cHggMjhweCByZ2JhKDAsIDAsIDAsIDAuNDUpO1xuICBkaXNwbGF5OiBub25lO1xuICAvKiBGaXhlZCB3aWR0aDogY29udGVudCAoZS5nLiB3ZWF0aGVyIHRleHQpIG11c3QgbmV2ZXIgcmVzaXplIHRoZVxuICAgICBwYW5lIOKAlCBhIHdpZHRoIGNoYW5nZSBtaWQtZHJhZyBtYWtlcyBzbGlkZXIgdGh1bWJzIGp1bXAuICovXG4gIHdpZHRoOiA0MjBweDtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMjRweCk7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAyNHB4KTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLmJvdHRvbS1iYXItcGFuZWwuc2hvdyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uYm90dG9tLWJhci1wYW5lbC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG4gIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuLmJvdHRvbS1iYXItcGFuZWwtdGl0bGUge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbjogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG59XG5cbi5ib3R0b20tYmFyLXBhbmVsLXRpdGxlIGkge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5ib3R0b20tYmFyLXBhbmVsLWNsb3NlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDE4cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2U7XG59XG5cbi5ib3R0b20tYmFyLXBhbmVsLWNsb3NlOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLmJvdHRvbS1iYXItc2xpZGVyLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbn1cblxuLmJvdHRvbS1iYXItc2xpZGVyLXJvdzpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmJvdHRvbS1iYXItc2xpZGVyLWxhYmVsIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBtaW4td2lkdGg6IDgwcHg7XG59XG5cbi8qIEZpeGVkIGxhYmVsIHdpZHRoIGluIHRoZSBzaGFkb3cgcGFuZSBzbyB0aGUgc2xpZGVyIHRyYWNrIG5ldmVyXG4gICByZXNpemVzICh0aHVtYiBqdW1waW5nIG1pZC1kcmFnKSBhcyBcIlNlYXNvbjogU3VtbWVyIChKdW4gMjEpXCJcbiAgIGNoYW5nZXMgbGVuZ3RoOyBhbHNvIGtlZXBzIGJvdGggc2xpZGVycyB0aGUgc2FtZSBsZW5ndGguICovXG4jc2hhZG93LXBhbmVsIC5ib3R0b20tYmFyLXNsaWRlci1sYWJlbCB7XG4gIHdpZHRoOiAxNTBweDtcbiAgZmxleDogbm9uZTtcbn1cblxuLmJvdHRvbS1iYXItc2xpZGVyLWxhYmVsIHNwYW4ge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4uYm90dG9tLWJhci1zbGlkZXIge1xuICBmbGV4OiAxO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGhlaWdodDogNHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5ib3R0b20tYmFyLXNsaWRlcjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmJvdHRvbS1iYXItc2xpZGVyOjotbW96LXJhbmdlLXRodW1iIHtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5ib3R0b20tYmFyLXBsYXktYnRuIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7XG59XG5cbi5ib3R0b20tYmFyLXBsYXktYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWhvdmVyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLyogU2VjdGlvbiBjYXJkICYgdGl0bGUgZm9yIGxpZGFyIHBhbmVsICovXG4uYm90dG9tLWJhci1zZWN0aW9uLXRpdGxlIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gIG1hcmdpbjogMTJweCAwIDZweDtcbn1cblxuLmJvdHRvbS1iYXItc2VjdGlvbi1jYXJkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5ib3R0b20tYmFyLWNvbnRyb2xzLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xufVxuLmJvdHRvbS1iYXItY29udHJvbHMtcm93ID4gYnV0dG9uIHtcbiAgbWluLXdpZHRoOiAyOHB4O1xuICBmbGV4LXNocmluazogMDtcbn1cbi5ib3R0b20tYmFyLWNvbnRyb2xzLXJvdyA+IHNlbGVjdCxcbi5ib3R0b20tYmFyLWNvbnRyb2xzLXJvdyA+IGRpdiB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLyogZm9ybS1jb250cm9sIG92ZXJyaWRlcyBpbnNpZGUgYm90dG9tLWJhciBwYW5lbHMgKi9cbi5ib3R0b20tYmFyLXBhbmVsIC5mb3JtLWNvbnRyb2wge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cbi5ib3R0b20tYmFyLXBhbmVsIC5mb3JtLWNvbnRyb2w6Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSh2YXIoLS1zZWNvbmRhcnktY29sb3VyLXJnYiksIDAuMTUpO1xufVxuLmJvdHRvbS1iYXItcGFuZWwgLmZvcm0tY29udHJvbCBvcHRpb24ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi8qIEQtcGFkIGxheW91dCBmb3IgbGlkYXIgcG9zaXRpb24gKi9cbi5ib3R0b20tYmFyLWRwYWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5ib3R0b20tYmFyLWRwYWQtdmVydGljYWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDRweDtcbn1cblxuLmJvdHRvbS1iYXItZGl2aWRlci12ZXJ0aWNhbCB7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMjRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIG1hcmdpbjogMCA0cHg7XG59XG5cbi5ib3R0b20tYmFyLW9mZnNldC1kaXNwbGF5IHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDZweDtcbn1cblxuLyogTm9ydGggUm90YXRpb24gQ29udHJvbCBTdHlsZXMgLSBpbnNpZGUgdGhlIE5vcnRoIGZseW91dCBwYW5lbCAqL1xuLm5vcnRoLW9mZnNldC1zZWN0aW9uIHtcbiAgbWFyZ2luLXRvcDogMTVweDtcbiAgcGFkZGluZy10b3A6IDE1cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuLm5vcnRoLW9mZnNldC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogNXB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2U7XG59XG5cbi5ub3J0aC1vZmZzZXQtaGVhZGVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyKTtcbn1cblxuLm5vcnRoLW9mZnNldC10aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDA7XG59XG5cbi5ub3J0aC1vZmZzZXQtdG9nZ2xlLWljb24ge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDEycHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG59XG5cbi5ub3J0aC1vZmZzZXQtdG9nZ2xlLWljb24uZXhwYW5kZWQge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuXG4ubm9ydGgtb2Zmc2V0LWNvbnRyb2xzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIG1hcmdpbi10b3A6IDhweDtcbn1cblxuLyogQm90dG9tIGJhciBwYW5lbCBub3J0aCBjb250cm9scyByb3cgKi9cbi5ub3J0aC1jb250cm9scy1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbn1cblxuLm5vcnRoLWJ0biB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDZweCAxMHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5cbi5ub3J0aC1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyLXRleHQpO1xufVxuXG4ubm9ydGgtYnRuOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG59XG5cbi5ub3J0aC12YWx1ZSB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LWZhbWlseTogXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWluLXdpZHRoOiA1MHB4O1xuICBwYWRkaW5nOiA2cHggOHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLXNlY29uZGFyeS1jb2xvdXItcmdiKSwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLm5vcnRoLXJvdGF0aW9uLWJ0biB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDZweCAxMHB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4ubm9ydGgtcm90YXRpb24tYnRuLXNtYWxsIHtcbiAgcGFkZGluZzogNnB4IDhweDtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuXG4ubm9ydGgtcm90YXRpb24tYnRuLWxhcmdlIHtcbiAgcGFkZGluZzogNnB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMTVweDtcbn1cblxuLm5vcnRoLXJvdGF0aW9uLWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG59XG5cbi5ub3J0aC1yb3RhdGlvbi1idG46YWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcbn1cblxuLm5vcnRoLXJvdGF0aW9uLXZhbHVlIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LWZhbWlseTogXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWluLXdpZHRoOiA0MHB4O1xufVxuXG4ubm9ydGgtcm90YXRpb24tcmVzZXQge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cblxuLm5vcnRoLXJvdGF0aW9uLXJlc2V0OmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDc3LCA3NywgMC4yKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgNzcsIDc3LCAwLjYpO1xuICBjb2xvcjogI2ZmNmI2Yjtcbn1cblxuLyogU3RyaW5naW5nIFVJIE92ZXJsYXkgUGFuZWwgU3R5bGVzICovXG4uc3RyaW5naW5nLW92ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogODBweDtcbiAgcmlnaHQ6IDIwcHg7XG4gIHotaW5kZXg6IDEwMDAwO1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc3RyaW5naW5nLXBhbmVsIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgbWluLXdpZHRoOiAzMDBweDtcbiAgbWF4LXdpZHRoOiAzNDBweDtcbiAgbWF4LWhlaWdodDogODB2aDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgYm94LXNoYWRvdzogMCA0cHggMjBweCB2YXIoLS1ib3hzaGFkb3cpO1xufVxuXG4uc3RyaW5naW5nLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIHBhZGRpbmctYm90dG9tOiA2cHg7XG59XG5cbi5zdHJpbmdpbmctaGVhZGVyIGg1IHtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4uc3RyaW5naW5nLXNlY3Rpb24ge1xuICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gIHBhZGRpbmctYm90dG9tOiA2cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuLnN0cmluZ2luZy1oZWFkZXItYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xufVxuXG4uc3RyaW5naW5nLWhlYWRlci1idG4ge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgcGFkZGluZzogM3B4IDZweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzLCBib3JkZXItY29sb3IgMC4xNXM7XG59XG5cbi5zdHJpbmdpbmctaGVhZGVyLWJ0bjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbmF2LXRleHQtaG92ZXIpO1xufVxuXG4uaW52ZXJ0ZXItbW9kZS10YWJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luOiAtMTBweCAtMTJweCAxMHB4IC0xMnB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbi5pbnZlcnRlci1tb2RlLXRhYiB7XG4gIGZsZXg6IDE7XG4gIHBhZGRpbmc6IDEycHggMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzLCBib3JkZXItY29sb3IgMC4xNXM7XG59XG5cbi5pbnZlcnRlci1tb2RlLXRhYjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5pbnZlcnRlci1tb2RlLXRhYi5hY3RpdmUge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5pbnZlcnRlci1tb2RlLXRhYjpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci1yYWRpdXM6IDhweCAwIDAgMDtcbn1cblxuLmludmVydGVyLW1vZGUtdGFiOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwIDhweCAwIDA7XG59XG5cbi5zdHJpbmdpbmctc2VsZWN0b3JzIHtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICBwYWRkaW5nLWJvdHRvbTogNnB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbi5zdHJpbmdpbmctY2hpcC1ncm91cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDZweDtcbn1cblxuLnN0cmluZ2luZy1jaGlwLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiA0cHg7XG4gIG1hcmdpbi1ib3R0b206IDNweDtcbiAgZmxleDogMTtcbn1cblxuLnN0cmluZ2luZy1jaGlwLXJvdzplbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zdHJpbmdpbmctY2hpcCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgcGFkZGluZzogM3B4IDhweDtcbiAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMsIGJhY2tncm91bmQgMC4xNXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5zdHJpbmdpbmctY2hpcDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbmF2LXRleHQtaG92ZXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG59XG5cbi5zdHJpbmdpbmctY2hpcC5hY3RpdmUge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5zdHJpbmdpbmctY2hpcCAuY2hpcC1jb3VudCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBwYWRkaW5nOiAwIDVweDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG59XG5cbi5zdHJpbmdpbmctY2hpcC5hY3RpdmUgLmNoaXAtY291bnQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4uc3RyaW5naW5nLWNoaXAgLmNoaXAtY29sb3Ige1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnN0cmluZ2luZy1jaGlwLWRlbGV0ZSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIHBhZGRpbmc6IDRweCA3cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cywgYm9yZGVyLWNvbG9yIDAuMTVzO1xuICBmbGV4LXNocmluazogMDtcbiAgbWFyZ2luLXRvcDogMXB4O1xufVxuXG4uc3RyaW5naW5nLWNoaXAtZGVsZXRlOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1kYW5nZXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1kYW5nZXIpO1xufVxuXG4uc3RyaW5naW5nLWNoaXAtYWRkIHtcbiAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuXG4uc3RyaW5naW5nLWNoaXAtYWRkOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLXNlY29uZGFyeS1jb2xvdXIpLCAwLjEpO1xufVxuXG4uYnJhbmNoaW5nLWNoaXAge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIHBhZGRpbmc6IDNweCA4cHg7XG4gIG1hcmdpbjogMnB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzLCBiYWNrZ3JvdW5kIDAuMTVzLCBjb2xvciAwLjE1cztcbn1cblxuLmJyYW5jaGluZy1jaGlwOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1uYXYtdGV4dC1ob3Zlcik7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XG59XG5cbi5icmFuY2hpbmctY2hpcC5hY3RpdmUge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoaXAtY29sb3IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpKTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LXRleHQpO1xufVxuXG4uYnJhbmNoaW5nLWNoaXAub3ZlcmxvYWRlZCB7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyKTtcbiAgYmFja2dyb3VuZDogcmdiYSgyMzEsIDc2LCA2MCwgMC4xMik7XG59XG5cbi5icmFuY2hpbmctY2hpcC1kZWxldGUge1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBtYXJnaW4tbGVmdDogLTRweDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyKTtcbiAgb3BhY2l0eTogMC43O1xufVxuXG4uYnJhbmNoaW5nLWNoaXAtZGVsZXRlOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLyogU3RyaW5naW5nIGludmVydGVyIHBhbmVzIOKAlCBwb3NpdGlvbmVkIGJlc2lkZSBwYW5lbCBjbHVzdGVycyBpbiBvcnRobyAqL1xuLnN0cmluZ2luZy1pbnYtcGFuZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIHBhZGRpbmc6IDZweCAwO1xuICBtaW4td2lkdGg6IDEzMHB4O1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cih2YXIoLS1ibHVyLXJhZGl1cykpO1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggdmFyKC0tYm94c2hhZG93KTtcbn1cblxuLnNpcC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgcGFkZGluZzogMDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIG1hcmdpbi1ib3R0b206IDJweDtcbiAgY3Vyc29yOiBtb3ZlO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLnNpcC1oZWFkZXIuZHJhZ2dpbmcge1xuICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLXNlY29uZGFyeS1jb2xvdXIpLCAwLjE1KTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5zaXAtaGVhZGVyLW1ldGEge1xuICBmbGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogNHB4IDZweDtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4uc2lwLWhlYWRlci1jb3VudGVyIHtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uc2lwLWhlYWRlci10ZXh0IHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDE2MHB4O1xufVxuXG4uc2lwLW5hdiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZzogMCAxMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xMnMsIGNvbG9yIDAuMTJzO1xufVxuXG4uc2lwLW5hdjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5zaXAtbmF2OmRpc2FibGVkIHtcbiAgY29sb3I6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5zaXAtbXBwdCB7XG4gIHBhZGRpbmc6IDNweCAxMHB4IDFweDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjNweDtcbn1cblxuLnNpcC1zdHJpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgcGFkZGluZzogM3B4IDEwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjEycztcbn1cblxuLnNpcC1zdHJpbmc6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpO1xufVxuXG4uc2lwLXN0cmluZy5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLXNlY29uZGFyeS1jb2xvdXIpLCAwLjE4KTtcbn1cblxuLnNpcC1jb2xvciB7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogOHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uc2lwLW5hbWUge1xuICBmbGV4OiAxO1xufVxuXG4uc2lwLWNvdW50IHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG59XG5cbi5zaXAtc3RyaW5nLmFjdGl2ZSAuc2lwLWNvdW50IHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLyogU3RyaW5naW5nIHByb2dyZXNzIGJhciAqL1xuLnN0cmluZ2luZy1wcm9ncmVzcy1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDJweDtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuXG4uc3RyaW5naW5nLXByb2dyZXNzLWxhYmVsIHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xufVxuXG4uc3RyaW5naW5nLXByb2dyZXNzLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgaGVpZ2h0OiA0cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5zdHJpbmdpbmctcHJvZ3Jlc3MtZmlsbCB7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgZWFzZTtcbn1cblxuLnN0cmluZ2luZy1wcm9ncmVzcy1jb3VudHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi10b3A6IDJweDtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICBmb250LXNpemU6IDEwcHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbn1cblxuLyogQXV0by1zdHJpbmcgc2VjdGlvbiAqL1xuLnN0cmluZ2luZy1hdXRvLXN1bW1hcnkge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBwYWRkaW5nOiAycHggMDtcbn1cblxuLnN0cmluZ2luZy1hdXRvLWJvZHkge1xuICBwYWRkaW5nOiA0cHggMCAycHg7XG59XG5cbi5zdHJpbmdpbmctYXV0by1ub3RlIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLXdhcm5pbmcpO1xuICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zdHJpbmdpbmctYXV0by1jb250cm9scyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBtYXJnaW4tYm90dG9tOiA2cHg7XG59XG5cbi5zdHJpbmdpbmctYXV0by1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uc3RyaW5naW5nLWF1dG8tdG9nZ2xlIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uc3RyaW5naW5nLWF1dG8tYnRuIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgcGFkZGluZzogNXB4O1xufVxuXG4uc3RyaW5naW5nLWF1dG8tY2FwYWNpdHkge1xuICBmb250LXNpemU6IDEwcHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgbWFyZ2luLXRvcDogM3B4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5zdHJpbmdpbmctZG9uZS1idG4ge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnN0cmluZ2luZy1zZWxlY3Rvci1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuXG4uc3RyaW5naW5nLXNlbGVjdG9yLXJvdyBsYWJlbCB7XG4gIG1pbi13aWR0aDogNjBweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4uc3RyaW5naW5nLXNlbGVjdG9yLXJvdyBzZWxlY3Qge1xuICBmbGV4OiAxO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgcGFkZGluZzogNXB4IDhweDtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uc3RyaW5naW5nLXNlbGVjdG9yLXJvdyBzZWxlY3Q6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4uc3RyaW5naW5nLWluZm8ge1xuICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIHBhZGRpbmc6IDZweCAxMHB4O1xufVxuXG4uc3RyaW5naW5nLWluZm8tcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG5cbi5zdHJpbmdpbmctaW5mby1yb3c6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5zdHJpbmdpbmctcmF0aW8ge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIHBhZGRpbmctdG9wOiA0cHg7XG4gIG1hcmdpbi10b3A6IDRweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5zdHJpbmdpbmctcmF0aW8gc3BhbjpsYXN0LWNoaWxkIHtcbiAgY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1zdWNjZXNzKTtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG4uc3RyaW5naW5nLWluc3RydWN0aW9ucyB7XG4gIGJhY2tncm91bmQ6IHJnYmEodmFyKC0tc2Vjb25kYXJ5LWNvbG91ci1yZ2IpLCAwLjEpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnN0cmluZ2luZy1pbnN0cnVjdGlvbnMgcCB7XG4gIG1hcmdpbjogNXB4IDA7XG59XG5cbi5zdHJpbmdpbmctaW5zdHJ1Y3Rpb25zIGtiZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgcGFkZGluZzogMnB4IDZweDtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbn1cblxuLnN0cmluZ2luZy1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxMHB4O1xufVxuXG4uc3RyaW5naW5nLWFjdGlvbnMgYnV0dG9uIHtcbiAgZmxleDogMTtcbn1cblxuLnN0cmluZ2luZy13YXJuaW5ncyB7XG4gIG1hcmdpbi10b3A6IDZweDtcbiAgcGFkZGluZzogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBmb250LXNpemU6IDExcHg7XG59XG5cbi5zdHJpbmdpbmctd2FybmluZ3MtaGVhZGVyIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24td2FybmluZyk7XG4gIG1hcmdpbi1ib3R0b206IDZweDtcbiAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4uc3RyaW5naW5nLXdhcm5pbmctaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmc6IDRweCA2cHg7XG4gIG1hcmdpbjogNHB4IDA7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgZ2FwOiAycHg7XG59XG5cbi5zdHJpbmdpbmctd2FybmluZy1kYW5nZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIzMSwgNzYsIDYwLCAwLjIpO1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLW5vdGlmaWNhdGlvbi1kYW5nZXIpO1xufVxuXG4uc3RyaW5naW5nLXdhcm5pbmctd2FybmluZyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjQzLCAxNTYsIDE4LCAwLjIpO1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLW5vdGlmaWNhdGlvbi13YXJuaW5nKTtcbn1cblxuLnN0cmluZ2luZy13YXJuaW5nLWluZm8ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLXNlY29uZGFyeS1jb2xvdXItcmdiKSwgMC4yKTtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLnN0cmluZ2luZy13YXJuaW5nLWxldmVsIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuLnN0cmluZ2luZy13YXJuaW5nLW1lc3NhZ2Uge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4vKiBTdHJpbmdpbmcgcHJvZ3Jlc3MgYnV0dG9uIHN0eWxlcyAqL1xuI3N0cmluZ2luZy1wcm9ncmVzcy1jb250YWluZXIgLmJ1dHRvbi0xMyB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTA7XG59XG5cbiNzdHJpbmdpbmctcHJvZ3Jlc3MtY29udGFpbmVyIC5idXR0b24tMTM6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi8qIFN0cmluZ2luZyBpY29uIGJ1dHRvbiBzdHlsZXMgKGlubGluZSB3aXRoIHRpdGxlKSAqL1xuLnN0cmluZ2luZy1pY29uLWJ0biB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgcGFkZGluZzogMDtcbn1cblxuLnN0cmluZ2luZy1pY29uLWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyKTtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlci10ZXh0KTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xufVxuXG4uc3RyaW5naW5nLWljb24tYnRuOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG59XG5cbi5zdHJpbmdpbmctaWNvbi1idG4gaSB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKiBDb21wYWN0IHRoZW1lLWF3YXJlIHRvZ2dsZSAqL1xuLmNvbXBhY3QtdG9nZ2xlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uY29tcGFjdC10b2dnbGUgaW5wdXQge1xuICBvcGFjaXR5OiAwO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG5cbi5jb21wYWN0LXRvZ2dsZS1zbGlkZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbi5jb21wYWN0LXRvZ2dsZS1zbGlkZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgbGVmdDogMnB4O1xuICB0b3A6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICBib3gtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbn1cblxuLmNvbXBhY3QtdG9nZ2xlIGlucHV0OmNoZWNrZWQgKyAuY29tcGFjdC10b2dnbGUtc2xpZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5jb21wYWN0LXRvZ2dsZSBpbnB1dDpjaGVja2VkICsgLmNvbXBhY3QtdG9nZ2xlLXNsaWRlcjo6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEycHgpO1xufVxuXG4uY29tcGFjdC10b2dnbGUgaW5wdXQ6Zm9jdXMtdmlzaWJsZSArIC5jb21wYWN0LXRvZ2dsZS1zbGlkZXIge1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi8qIFRoZW1lZCByYWRpbyDigJQgdGhlIHJvdW5kIHNpYmxpbmcgb2YgLmNvbXBhY3QtdG9nZ2xlLiBSZXBsYWNlcyB0aGUgYnJvd3NlclxuICAgZGVmYXVsdCAod2hpdGUgZGlzYyBvbiBkYXJrIGNhcmRzKSBhbnl3aGVyZSBhIGZvcm0gb2ZmZXJzIGEgcmFkaW8gY2hvaWNlLiAqL1xuLnBsLXJhZGlvIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBtYXJnaW46IDA7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xufVxuXG4ucGwtcmFkaW86Y2hlY2tlZCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4ucGwtcmFkaW86Y2hlY2tlZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogM3B4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cik7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xufVxuXG4ucGwtcmFkaW86Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLyogRHJhdyBCdXR0b24gSG92ZXIgRmx5b3V0ICovXG4uZHJhdy1idXR0b24td3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmRyYXctY2FyZXQge1xuICBmb250LXNpemU6IDEwcHg7XG4gIG9wYWNpdHk6IDAuNjtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cblxuLmRyYXctaG92ZXItZmx5b3V0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIG1hcmdpbi10b3A6IDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3gtc2hhZG93OiAwIDhweCAzMnB4IHZhcigtLWJveHNoYWRvdyk7XG4gIG1pbi13aWR0aDogMTcwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXR5cGUpO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlLCB2aXNpYmlsaXR5IDAuMTVzIGVhc2UsIHRyYW5zZm9ybSAwLjE1cyBlYXNlO1xuICB6LWluZGV4OiAxMDAwMDA7XG59XG5cbi5kcmF3LWJ1dHRvbi13cmFwcGVyOmhvdmVyIC5kcmF3LWhvdmVyLWZseW91dCB7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbn1cblxuLmRyYXctaG92ZXItZmx5b3V0LWl0ZW0ge1xuICBwYWRkaW5nOiA5cHggMTRweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5kcmF3LWhvdmVyLWZseW91dC1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWhvdmVyKTtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlci10ZXh0KTtcbn1cblxuLmRyYXctaG92ZXItZmx5b3V0LWl0ZW0uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpO1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBwYWRkaW5nLWxlZnQ6IDExcHg7XG59XG5cbi5kcmF3LWhvdmVyLWZseW91dC1pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcbn1cblxuLmRyYXctaG92ZXItZmx5b3V0LWljb24ge1xuICB3aWR0aDogMjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDE0cHg7XG4gIG9wYWNpdHk6IDAuOTtcbn1cblxuLmRyYXctaG92ZXItZmx5b3V0LWxhYmVsIHtcbiAgZmxleDogMTtcbn1cblxuLyogTW9udGhseSBQcm9kdWN0aW9uIENoYXJ0ICovXG4ubW9udGhseS1jaGFydC1zZWN0aW9uIHtcbiAgbWFyZ2luLXRvcDogMTJweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm1vbnRobHktY2hhcnQtdG9nZ2xlIHtcbiAgcGFkZGluZzogOHB4IDEycHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5tb250aGx5LWNoYXJ0LXRvZ2dsZTo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tb250aGx5LWNoYXJ0LXRvZ2dsZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCk7XG59XG5cbi5tb250aGx5LWNoYXJ0LWNoZXZyb24ge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuXG4ubW9udGhseS1jaGFydC1zZWN0aW9uW29wZW5dIC5tb250aGx5LWNoYXJ0LWNoZXZyb24ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuXG4ubW9udGhseS1jaGFydC1jb250YWluZXIge1xuICBwYWRkaW5nOiAxMnB4IDEwcHggOHB4IDEwcHg7XG59XG5cbi5tb250aGx5LWNoYXJ0LWxlZ2VuZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDE0cHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4ubW9udGhseS1jaGFydC1sZWdlbmQtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xufVxuXG4ubW9udGhseS1jaGFydC1sZWdlbmQtc3dhdGNoIHtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuXG4ubW9udGhseS1jaGFydC1iYXJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBnYXA6IDJweDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgcGFkZGluZzogMCAycHg7XG59XG5cbi5tb250aGx5LWJhci1ncm91cCB7XG4gIGZsZXg6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgZ2FwOiAxcHg7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLm1vbnRobHktYmFyLXdyYXBwZXIge1xuICBmbGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi5tb250aGx5LWJhciB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAycHg7XG4gIGJvcmRlci1yYWRpdXM6IDJweCAycHggMCAwO1xuICB0cmFuc2l0aW9uOiBoZWlnaHQgMC4zcyBlYXNlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5tb250aGx5LWJhcjpob3ZlciB7XG4gIG9wYWNpdHk6IDAuODtcbn1cblxuLm1vbnRobHktYmFyLXRvb2x0aXAge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogY2FsYygxMDAlICsgNHB4KTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHBhZGRpbmc6IDNweCA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB6LWluZGV4OiAxMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5tb250aGx5LWJhcjpob3ZlciAubW9udGhseS1iYXItdG9vbHRpcCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubW9udGhseS1jaGFydC1sYWJlbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDJweDtcbiAgcGFkZGluZzogNHB4IDJweCAwIDJweDtcbn1cblxuLm1vbnRobHktY2hhcnQtbGFiZWwge1xuICBmbGV4OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4ubW9udGhseS1jaGFydC10b3RhbCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgcGFkZGluZy10b3A6IDZweDtcbn1cblxuLyogQmFzZWxpbmUgV2lkZ2V0IChjZW50ZXJlZCBwb2x5Z29uIFVJIGluIG9ydGhvIG1vZGUpICovXG4uYmFzZWxpbmUtd2lkZ2V0IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiA4MDA7XG59XG5cbi5iYXNlbGluZS13aWRnZXQtYXJyb3cge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDExcHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiAwIDAgMTFweCAxMXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDNweCB2YXIoLS1ib3hzaGFkb3cpO1xuICBvcGFjaXR5OiAwLjU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMsIGJhY2tncm91bmQgMC4ycywgYm9yZGVyLWNvbG9yIDAuMnMsIGJveC1zaGFkb3cgMC4ycztcbn1cblxuLmJhc2VsaW5lLXdpZGdldC1hcnJvdy5uZWFyYnkge1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgb3BhY2l0eTogMC45O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbi5iYXNlbGluZS13aWRnZXQtYXJyb3c6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlci10ZXh0KTtcbiAgYm94LXNoYWRvdzogMCAxcHggNnB4IHZhcigtLWJveHNoYWRvdyk7XG59XG5cbi5iYXNlbGluZS13aWRnZXQtYXJyb3cuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWhvdmVyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuLmJhc2VsaW5lLXdpZGdldC1hcnJvdyBzdmcge1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbn1cblxuLmJhc2VsaW5lLXdpZGdldC1hcnJvdyBzdmcgcGF0aCB7XG4gIGZpbGw6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLmJhc2VsaW5lLXdpZGdldC1hcnJvdy5hY3RpdmUgc3ZnIHBhdGgge1xuICBmaWxsOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCk7XG59XG5cbi5iYXNlbGluZS13aWRnZXQtYXJyb3c6aG92ZXIgc3ZnIHBhdGgge1xuICBmaWxsOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCk7XG59XG5cbi5iYXNlbGluZS13aWRnZXQtYXJyb3cuYWN0aXZlOmhvdmVyIHN2ZyBwYXRoIHtcbiAgZmlsbDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5iYXNlbGluZS13aWRnZXQtbWVudS1idG4ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGhlaWdodDogMjJweDtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAzcHg7XG4gIHBhZGRpbmc6IDAgN3B4O1xuICBib3JkZXItcmFkaXVzOiAxMXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3gtc2hhZG93OiAwIDFweCA0cHggdmFyKC0tYm94c2hhZG93KTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC10eXBlKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjEycywgYm9yZGVyLWNvbG9yIDAuMTJzLCBib3gtc2hhZG93IDAuMTJzO1xufVxuXG4vKiBRdWljay1hY3Rpb24gc2hvcnRjdXQgYnV0dG9ucyAocGFuZWxzIC8gb2JzdHJ1Y3Rpb25zKSAqL1xuLmJhc2VsaW5lLXdpZGdldC1xdWljay1idG4ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm94LXNoYWRvdzogdmFyKC0taC1vZmZzZXQpIHZhcigtLXYtb2Zmc2V0KSB2YXIoLS1ibHVyLXJhZGl1cykgdmFyKC0tYm94c2hhZG93KTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBvcGFjaXR5OiAwLjg7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMsIGJhY2tncm91bmQgMC4xNXMsIGJvcmRlci1jb2xvciAwLjE1cywgY29sb3IgMC4xNXMsIGJveC1zaGFkb3cgMC4xNXM7XG59XG5cbi5iYXNlbGluZS13aWRnZXQtcXVpY2stYnRuOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpO1xuICBib3gtc2hhZG93OiAwIDFweCA2cHggcmdiYSgwLCAxNzAsIDI1NSwgMC4zKTtcbn1cblxuLmJhc2VsaW5lLXdpZGdldC1xdWljay1idG4uZGVsZXRlOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyKTtcbiAgY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1kYW5nZXIpO1xuICBib3gtc2hhZG93OiAwIDFweCA2cHggcmdiYSgyNTUsIDc3LCA3OSwgMC4zKTtcbn1cblxuLyogSW5mbyBsYWJlbCAoc2xvcGUgKyBkaXJlY3Rpb24gdGV4dCkgKi9cbi5idy1pbmZvLWxhYmVsIHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAtMC4ycHg7XG59XG5cbi8qIEludmVydGVkIHNsb3BlIGluZGljYXRvciDigJQgb25seSBzaG93biB3aGVuIGludmVydGVkICovXG4uYnctaW52ZXJ0LWljb24ge1xuICBkaXNwbGF5OiBub25lO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tbGVmdDogLTFweDtcbn1cblxuLmJ3LWludmVydC1pY29uIHN2ZyB7XG4gIHdpZHRoOiA3cHg7XG4gIGhlaWdodDogN3B4O1xufVxuXG4uYnctaW52ZXJ0LWljb24gc3ZnIHBhdGgge1xuICBmaWxsOiAjMDBhYWZmO1xufVxuXG4uYmFzZWxpbmUtd2lkZ2V0LW1lbnUtYnRuLnNtYXJ0IC5idy1pbnZlcnQtaWNvbiBzdmcgcGF0aCB7XG4gIGZpbGw6ICNiMDg4Zjk7XG59XG5cbi8qIENoZXZyb24gaW5kaWNhdGluZyBjbGlja2FibGUgbWVudSAqL1xuLmJ3LWNoZXZyb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tbGVmdDogMXB4O1xuICBvcGFjaXR5OiAwLjQ7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xMnM7XG59XG5cbi5idy1jaGV2cm9uIHN2ZyB7XG4gIHdpZHRoOiA0cHg7XG4gIGhlaWdodDogMTBweDtcbn1cblxuLmJhc2VsaW5lLXdpZGdldC1tZW51LWJ0bjpob3ZlciAuYnctY2hldnJvbiB7XG4gIG9wYWNpdHk6IDAuODtcbn1cblxuLmJhc2VsaW5lLXdpZGdldC1tZW51LWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCk7XG59XG5cbi8qIENvbXBhY3QgdGllciDigJQgc21hbGwgcG9seWdvbjogc2xpbW1lciBwaWxsLCBjaGV2cm9uIGhpZGRlbiAqL1xuLmJhc2VsaW5lLXdpZGdldC1tZW51LWJ0bi5jb21wYWN0IHtcbiAgaGVpZ2h0OiAxNnB4O1xuICBwYWRkaW5nOiAwIDVweDtcbiAgZ2FwOiAycHg7XG4gIGZvbnQtc2l6ZTogOXB4O1xufVxuXG4uYmFzZWxpbmUtd2lkZ2V0LW1lbnUtYnRuLmNvbXBhY3QgLmJ3LWNoZXZyb24ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBNaW5pIHRpZXIg4oCUIHRpbnkgcG9seWdvbjogZG90LW1lbnUgYnV0dG9uIG9ubHksIGxhYmVsIGhpZGRlbiAqL1xuLmJhc2VsaW5lLXdpZGdldC1tZW51LWJ0bi5taW5pIHtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgcGFkZGluZzogMDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5iYXNlbGluZS13aWRnZXQtbWVudS1idG4ubWluaSAuYnctaW5mby1sYWJlbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5iYXNlbGluZS13aWRnZXQtbWVudS1idG4ubWluaSAuYnctY2hldnJvbiB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbi8qIFBvbHlnb24gTXVsdGktU2VsZWN0IFVJICovXG4jcG9seWdvbi1tdWx0aS1zZWxlY3QtdWkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogODBweDtcbiAgcmlnaHQ6IDIwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHotaW5kZXg6IDEwMDAxO1xuICBmb250LXNpemU6IDE0cHg7XG4gIG1pbi13aWR0aDogMzIwcHg7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggdmFyKC0tYm94c2hhZG93KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xufVxuXG4ucG9seWdvbi1tdWx0aS1zZWxlY3QtaGVhZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4ucG9seWdvbi1tdWx0aS1zZWxlY3QtaGVhZGVyIGkuZmEtZHJhdy1wb2x5Z29uIHtcbiAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLnBvbHlnb24tbXVsdGktc2VsZWN0LWhlYWRlciBidXR0b24ge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDE2cHg7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5wb2x5Z29uLW11bHRpLXNlbGVjdC1zZWN0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbn1cblxuLnBvbHlnb24tbXVsdGktc2VsZWN0LWhlaWdodC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbn1cblxuLnBvbHlnb24tbXVsdGktc2VsZWN0LWhlaWdodC1oZWFkZXIgPiBsYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmhlaWdodC1tb2RlLXRvZ2dsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogNHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5LWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBwYWRkaW5nOiAycHg7XG59XG5cbi5oZWlnaHQtbW9kZS1idG4ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC42O1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDNweCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLmhlaWdodC1tb2RlLWJ0bi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cik7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5wb2x5Z29uLW11bHRpLXNlbGVjdC1zbGlkZXItcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA2cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5wb2x5Z29uLW11bHRpLXNlbGVjdC1zbGlkZXItcm93IGlucHV0W3R5cGU9cmFuZ2VdIHtcbiAgZmxleDogMTtcbiAgaGVpZ2h0OiA0cHg7XG59XG5cbi5wb2x5Z29uLW11bHRpLXNlbGVjdC1zbGlkZXItcm93IGlucHV0W3R5cGU9bnVtYmVyXSB7XG4gIHdpZHRoOiA2MHB4O1xuICBwYWRkaW5nOiA0cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbiNoZWlnaHQtbW9kZS1pbmZvIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjU7XG4gIG1hcmdpbi10b3A6IDRweDtcbn1cblxuLnBvbHlnb24tbXVsdGktc2VsZWN0LWFsaWduIHtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuXG4ucG9seWdvbi1tdWx0aS1zZWxlY3QtYWxpZ24gbGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuODtcbn1cblxuLnBvbHlnb24tbXVsdGktc2VsZWN0LWFsaWduIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcbiAgbWFyZ2luOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5wb2x5Z29uLW11bHRpLXNlbGVjdC1zZWN0aW9uID4gbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5wb2x5Z29uLW11bHRpLXNlbGVjdC1waXRjaC1pbnB1dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnB4O1xufVxuXG4ucG9seWdvbi1tdWx0aS1zZWxlY3QtcGl0Y2gtaW5wdXQgaW5wdXRbdHlwZT1udW1iZXJdIHtcbiAgd2lkdGg6IDQwcHg7XG4gIHBhZGRpbmc6IDRweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ucG9seWdvbi1tdWx0aS1zZWxlY3QtcGl0Y2gtaW5wdXQgc3BhbiB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC42O1xufVxuXG4jbXVsdGktcG9seWdvbi1zbG9wZSB7XG4gIHdpZHRoOiA1NXB4O1xufVxuXG4ucG9seWdvbi1tdWx0aS1zZWxlY3QtYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMnB4O1xufVxuXG4ucG9seWdvbi1tdWx0aS1zZWxlY3QtYWN0aW9ucyBidXR0b24ge1xuICBmbGV4OiAxO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgcGFkZGluZzogOHB4IDEwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLyogS2V5Ym9hcmQgSGludHMgaW4gU2hhZG93IENvbnRyb2xzICovXG4vKiBEZXNpZ24gQXNzaXN0YW50IOKAlCB1bmlmaWVkIGd1aWRlZCBzdGVwcGVyICsgY29udGV4dHVhbCBoZWxwZXIgKGJvdHRvbS1sZWZ0KSAqL1xuLyogVGhlIHRvb2xiYXIgaXMgcmV0aXJlZCDigJQgZXZlcnl0aGluZyBsaXZlcyBpbiB0aGUgRGVzaWduIEFzc2lzdGFudC4gSXQgc3RheXNcbiAgIGluIHRoZSBET00gYXMgYSBzZXQgb2YgcHJveHkgdGFyZ2V0cyB0aGUgYnVuZGxlIGNsaWNrcyBieSBpZC5cbiAgICFpbXBvcnRhbnQgb3ZlcnJpZGVzIHRoZSBpbmxpbmUgZGlzcGxheSB0b2dnbGVzIGluIHRoZSBTTEQvcGxhbnNldCBjb250cm9sbGVycy4gKi9cbiN0b29sYmFyIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBEZXNpZ24gQXNzaXN0YW50IOKAlCB0b3AtbGVmdCwgdHVja2VkIHVuZGVyIHRoZSBjb21wYXNzLCBvcGVucyBkb3dud2FyZCAqL1xuI2Rlc2lnbi1hc3Npc3RhbnQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMjBweDtcbiAgbGVmdDogMTBweDtcbiAgd2lkdGg6IDI4NnB4O1xuICAvKiBIYXJkLWNhcCB0aGUgd2hvbGUgcGFuZSB0byB0aGUgdmlld3BvcnQgc28gaXQgY2FuIG5ldmVyIHJ1biBvZmYgdGhlIGJvdHRvbVxuICAgICAodG9wIG9mZnNldCArIGEgc21hbGwgbWFyZ2luKS4gVGhlIGJvZHkgZmxleGVzL3Njcm9sbHMgd2l0aGluLiAqL1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDBweCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgei1pbmRleDogOTAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLmRhLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBwYWRkaW5nOiAxMHB4IDEwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIC8qIFN1YnRsZSB0aGVtZWQgZGl2aWRlciBzZXBhcmF0aW5nIHRoZSBoZWFkZXIgZnJvbSB0aGUgdG9vbHMvc3RlcHMgYmVsb3cgKi9cbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4vKiBDb21wYXNzIGN1YmUg4oCUIGVtYmVkZGVkIGZsdXNoIGluIHRoZSBoZWFkZXIsIGxlYWRpbmcgdGhlIHZpZXcgYnV0dG9ucy4gVGhlXG4gICBjdWJlICsgcmluZyBjYW52YXNlcyBhcmUgaW5qZWN0ZWQgYnkgVGhyZWVEQ29tcGFzczsgbm8gY2hyb21lIHNvIHRoZSBwYW5lbFxuICAgcmVhZHMgdGhyb3VnaCBpdC4gKi9cbi5kYS1oZWFkZXItY29tcGFzcyB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbn1cblxuLmRhLXRpdGxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA3cHg7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmRhLXRpdGxlIGkge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vKiBQcm9tb3RlZCBkZWRpY2F0ZWQtdmlldyBidXR0b25zIChTTEQsIFBsYW4gU2V0KSBzaXQgd2hlcmUgdGhlIHRpdGxlIHdhcy4gKi9cbi5kYS1oZWFkZXItdmlld3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgLyogZmxleC1zaHJpbms6MCBzbyBTTEQvUGxhbiBTZXQgaWNvbnMgbmV2ZXIgc2hyaW5rIGJlbG93IHRoZWlyIGJveCBhbmQgc3BpbGxcbiAgICAgb3ZlciB0aGUgYWN0aW9uIGljb25zOyBoZWFkZXIgY29tcGFjdGlvbiBrZWVwcyB0aGUgbmFycm93IHJvdyBmaXR0aW5nLiAqL1xuICBmbGV4LXNocmluazogMDtcbn1cbi5kYS1oZWFkZXItdmlld3MgLmRhLWFjdGlvbiB7XG4gIHBhZGRpbmc6IDRweCA2cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmRhLWNvbGxhcHNlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuOTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDE1cHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UsIGJhY2tncm91bmQgMC4xNXMgZWFzZSwgb3BhY2l0eSAwLjE1cyBlYXNlO1xufVxuXG4uZGEtY29sbGFwc2U6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIpO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyLXRleHQpO1xufVxuXG4jZGVzaWduLWFzc2lzdGFudC5jb2xsYXBzZWQgLmRhLWNvbGxhcHNlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbn1cblxuI2Rlc2lnbi1hc3Npc3RhbnQuY29sbGFwc2VkIC5kYS1ib2R5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyog4pSA4pSAIEJhciBsYXlvdXQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICBEcmFnZ2luZyB0aGUgd2lkdGggaGFuZGxlIHBhc3QgdGhlIGRvY2sgdGhyZXNob2xkIHNuYXBzIHRoZSBwYW5lIGludG8gYVxuICAgc2luZ2xlLXJvdyB0b29sYmFyIHNwYW5uaW5nIHRoZSB0b3Agb2YgdGhlIGNhbnZhcyAoc2FtZSBET00sIHJvd1xuICAgZGlyZWN0aW9uKS4gQ2xpY2tpbmcgdGhlIGhlYWRlci9jaGV2cm9uIHVuZG9ja3MgYmFjayB0byB0aGUgZXhwYW5kZWRcbiAgIHBhbmVsOyBkcmFnZ2luZyB0aGUgaGFuZGxlIGxlZnQgdW5kb2NrcyBjb2xsYXBzZWQuIFJvdyBvcmRlcjogaGVhZGVyXG4gICBibG9jayDCtyBxdWljayBtb2RlcyDCtyBzdW1tYXJ5L2NoaXBzOyB0aGUgc2NhbGUgcnVsZXIgaGFuZ3MgY2VudGVyZWRcbiAgIGJlbG93OyB0aGUgZG9jayBnaG9zdCBwcmV2aWV3cyB0aGUgbGF5b3V0IGEgcmVsZWFzZSBjb21taXRzIHRvLiAqL1xuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtYmFyIHtcbiAgcmlnaHQ6IDEwcHg7XG4gIHdpZHRoOiBhdXRvO1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAvKiBUaGUgc2NhbGUgcnVsZXIgaGFuZ3MgYmVsb3cgdGhlIGJhciBhcyBhIHRhYiDigJQgZG9uJ3QgY2xpcCBpdC4gKFRoZVxuICAgICBzY3JvbGxhYmxlIGJvZHkgaXMgZGlzcGxheTpub25lIGhlcmUsIHNvIG5vdGhpbmcgZWxzZSBjYW4gc3BpbGwuKSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjhzIGN1YmljLWJlemllcigwLjIsIDAuOCwgMC4yLCAxKTtcbn1cblxuLyogV2hpbGUgYSB0b3AtYW5jaG9yZWQgZWRpdG9yIHBhbmUgKHBvbHlnb24vdHJlZSBwcm9wZXJ0aWVzLCBzdHJpbmdpbmcsXG4gICBicmFuY2hpbmcpIGlzIG9wZW4sIHRoZSBiYXIgdHVja3MgdXAgZmx1c2ggd2l0aCB0aGUgY2FudmFzIGVkZ2Ug4oCUIHN0aWxsXG4gICBmdWxseSB2aXNpYmxlIGFuZCBjbGlja2FibGUg4oCUIGFuZCB0aGUgcGFuZXMgYmVsb3cgc3RhcnQgYmVuZWF0aCBpdHNcbiAgIHR1Y2tlZCBib3R0b20gZWRnZS4gKi9cbiNkZXNpZ24tYXNzaXN0YW50LmRhLWJhci5kYS1iYXIteWllbGQge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE2cHgpO1xufVxuXG4vKiBJbiBiYXIgbGF5b3V0IHRoZSBlZGl0b3IgcGFuZXMgb3BlbiBiZWxvdyB0aGUgKHR1Y2tlZCkgYmFyIGluc3RlYWQgb2ZcbiAgIG92ZXJsYXBwaW5nIGl0cyByaWdodCBlbmQuIFRoZSBkcmF3M2QgY2FudmFzIGlzIGZ1bGwtYmxlZWQgKDEwMHZoLCB0b3AgMCksXG4gICBzbyB0aGUgdHVja2VkIGJhciBib3R0b20gaXMg4omIIDcycHggdmlld3BvcnQg4oCUIHNhbWUgYmFuZCBhcyB0aGUgaGFybmVzcy4gKi9cbmJvZHk6aGFzKCNkZXNpZ24tYXNzaXN0YW50LmRhLWJhcikgI2NhbnZhcy1jb250YWluZXIgLm9mZmNhbnZhcyB7XG4gIHRvcDogODBweDtcbiAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDEwMHB4KTtcbn1cblxuYm9keTpoYXMoI2Rlc2lnbi1hc3Npc3RhbnQuZGEtYmFyKSAuc3RyaW5naW5nLW92ZXJsYXkge1xuICB0b3A6IDgwcHg7XG59XG5cbi8qIFNuYXAgbW9tZW50IG9ubHkg4oCUIGxpdmUgd2lkdGggZHJhZ3Mgc3RheSAxOjEgd2l0aCB0aGUgY3Vyc29yLiAqL1xuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtc25hcCB7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuMjhzIGN1YmljLWJlemllcigwLjIsIDAuOCwgMC4yLCAxKSwgdHJhbnNmb3JtIDAuMjhzIGN1YmljLWJlemllcigwLjIsIDAuOCwgMC4yLCAxKTtcbn1cblxuLyogRHJhZy1naG9zdDogd2hpbGUgYSBoYW5kbGUgZHJhZyBpcyBoZWxkIHBhc3QgdGhlIGRvY2svdW5kb2NrIGFybVxuICAgZGlzdGFuY2UsIHRoaXMgb3V0bGluZSAoY3JlYXRlZCBieSB0aGUgYnVuZGxlIG9uIGRvY3VtZW50LmJvZHkpXG4gICBwcmV2aWV3cyB0aGUgbGF5b3V0IGEgcmVsZWFzZSBjb21taXRzIHRvLiAqL1xuLmRhLWRvY2stZ2hvc3Qge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlcjogMS41cHggZGFzaGVkIHJnYmEodmFyKC0tc2Vjb25kYXJ5LWNvbG91ci1yZ2IpLCAwLjY1KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cywgMTJweCk7XG4gIGJhY2tncm91bmQ6IHJnYmEodmFyKC0tc2Vjb25kYXJ5LWNvbG91ci1yZ2IpLCAwLjA3KTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gIC8qIEFib3ZlIHRoZSBwYW5lICg5MDApOiB0aGUgdW5kb2NrIHByZXZpZXcgb3ZlcmxhcHMgdGhlIGJhciwgYW5kIHRoZVxuICAgICBkYXNoZWQgb3V0bGluZSBtdXN0IHN0YXkgcmVhZGFibGUgb24gdG9wIG9mIGl0LiAqL1xuICB6LWluZGV4OiA5MDE7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7XG59XG5cbi5kYS1kb2NrLWdob3N0LnZpc2libGUge1xuICBvcGFjaXR5OiAxO1xufVxuXG4jZGVzaWduLWFzc2lzdGFudC5kYS1iYXIgLmRhLXRvb2xzIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cblxuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtYmFyIC5kYS1xdWljay1tb2RlcyB7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBwYWRkaW5nOiA4cHggMTJweDtcbn1cblxuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtYmFyIC5kYS1yZXN1bHRzIHtcbiAgb3JkZXI6IDI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbi8qIEEgY2xvc2VkIHJlc3VsdHMgcm93IG11c3QgZnJlZSBpdHMgaG9yaXpvbnRhbCBzcGFjZSBpbiB0aGUgYmFyIOKAlCB0aGVcbiAgIHBhbmVsJ3MgbWF4LWhlaWdodCBjb2xsYXBzZSBvbmx5IGZyZWVzIHZlcnRpY2FsIHNwYWNlLiAqL1xuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtYmFyIC5kYS1yZXN1bHRzOm5vdCguaXMtb3Blbikge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4jZGVzaWduLWFzc2lzdGFudC5kYS1iYXIgLmRhLXJlc3VsdHMuaXMtb3BlbiB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIHBhZGRpbmc6IDAgMTJweDtcbn1cblxuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtYmFyIC5kYS1yZXN1bHRzLXRvZ2dsZSB7XG4gIHdpZHRoOiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4jZGVzaWduLWFzc2lzdGFudC5kYS1iYXIgLmVsZWN0cmljYWwtcmVhZGluZXNzIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG59XG5cbi8qIFRoZSBydWxlciBsZWF2ZXMgdGhlIHJvdyBhbmQgaGFuZ3MgY2VudGVyZWQgdW5kZXIgdGhlIGJhciDigJQgcm93IHdpZHRoIGlzXG4gICB0aGUgYmFyJ3Mgc2NhcmNlc3QgcmVzb3VyY2UsIG9mZmNhbnZhcyBlZGl0b3JzIG93biB0aGUgcmlnaHQgYmFuZCBiZWxvd1xuICAgaXQsIGFuZCB0aGUgbm90aWZpY2F0aW9uIHRvYXN0IG93bnMgdGhlIGxlZnQuICovXG4jZGVzaWduLWFzc2lzdGFudC5kYS1iYXIgLnNjYWxlLXJ1bGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSArIDZweCk7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBib3JkZXItdG9wOiBub25lO1xuICBwYWRkaW5nOiA2cHggMTBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi8qIFRoZSBhY3RpdmUgcXVpY2stbW9kZSBidXR0b24gaW4gdGhlIHNhbWUgcm93IGFscmVhZHkgY2FycmllcyB0aGUgbW9kZVxuICAgaGlnaGxpZ2h0LCBzbyB0aGUgYmFkZ2Ugc2xpbXMgdG8gaXRzIGNvbG9yZWQgaWNvbiBjaGlwLiAqL1xuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtYmFyIC5kYS1tb2RlLWluZGljYXRvciAuZGEtbW9kZS1sYWJlbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIEJhciBzcGFjZSBwcm92aXNpb25zOiBhcyB0aGUgdmlld3BvcnQgdGlnaHRlbnMsIHNoZWQgd29yZHMgYmVmb3JlXG4gICBjaHJvbWUg4oCUIHF1aWNrLW1vZGUgd29yZHMgYW5kIHRoZSBsb25nIHN1bW1hcnkgc2VnbWVudHMgZ28gZmlyc3QsIHRoZW5cbiAgIHNob3J0Y3V0IGtleXMgYW5kIHJlYWRpbmVzcy1jaGlwIHRleHQuIFVudGlsIHBhbmVscyBleGlzdFxuICAgKGBkYS1uby1wYW5lbHNgKSB0aGUgc3VtbWFyeS9jaGlwcy9TTEQvUGxhbi1TZXQgYXJlIGFsbCBoaWRkZW4sIHNvIHRoZVxuICAgcm93IGhhcyByb29tIHRvIGtlZXAgZnVsbCBsYWJlbHMgbXVjaCBsb25nZXIg4oCUIG9ubHkgdGhlIHNtYWxsIGZpbmFsXG4gICB0aWVyIGFwcGxpZXMgdG8gYW4gZW1wdHkgc2NlbmUuICovXG5AbWVkaWEgKG1heC13aWR0aDogMTUwMHB4KSB7XG4gICNkZXNpZ24tYXNzaXN0YW50LmRhLWJhcjpub3QoLmRhLW5vLXBhbmVscykgLmRhLXF1aWNrLW1vZGVzIC5kYS1nbG9iYWwtd29yZCxcbiAgI2Rlc2lnbi1hc3Npc3RhbnQuZGEtYmFyOm5vdCguZGEtbm8tcGFuZWxzKSAuZGEtc3VtLXdpZGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjgwcHgpIHtcbiAgI2Rlc2lnbi1hc3Npc3RhbnQuZGEtYmFyOm5vdCguZGEtbm8tcGFuZWxzKSAuZGEtc3VtLW1pZCxcbiAgI2Rlc2lnbi1hc3Npc3RhbnQuZGEtYmFyOm5vdCguZGEtbm8tcGFuZWxzKSAuZGEtcXVpY2stbW9kZXMgLmRhLWdsb2JhbC1sYWJlbCxcbiAgI2Rlc2lnbi1hc3Npc3RhbnQuZGEtYmFyOm5vdCguZGEtbm8tcGFuZWxzKSAuZWxlY3RyaWNhbC1yZWFkaW5lc3MtY2hpcCBzcGFuIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNkZXNpZ24tYXNzaXN0YW50LmRhLWJhcjpub3QoLmRhLW5vLXBhbmVscykgLmRhLXF1aWNrLW1vZGVzIC5kYS1nbG9iYWwtYnRuIHtcbiAgICB3aWR0aDogMjhweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgI2Rlc2lnbi1hc3Npc3RhbnQuZGEtYmFyIC5kYS1xdWljay1tb2RlcyAuZGEtZ2xvYmFsLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICNkZXNpZ24tYXNzaXN0YW50LmRhLWJhciAuZGEtcXVpY2stbW9kZXMgLmRhLWdsb2JhbC1idG4ge1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbn1cbi5kYS1ib2R5IHtcbiAgLyogU21hbGwgdG9wIGdhcCBzbyB0aGUgZmlyc3Qgc3RlcCBpc24ndCBmbHVzaCBhZ2FpbnN0IHRoZSB0b29scyBkaXZpZGVyICovXG4gIHBhZGRpbmc6IDEwcHggMTJweCAxMnB4O1xuICAvKiBDb250ZW50LWhlaWdodCBub3JtYWxseTsgc2hyaW5rcyArIHNjcm9sbHMgb25seSB3aGVuIHRoZSBjYXBwZWQgcGFuZSB3b3VsZFxuICAgICBvdGhlcndpc2Ugb3ZlcmZsb3cg4oCUIHNvIG5vIHdhc3RlZCBlbXB0eSBzcGFjZSBlaXRoZXIuICovXG4gIGZsZXg6IDAgMSBhdXRvO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLmRhLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDZweDtcbn1cbi5kYS1ib2R5Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5kYS1ib2R5Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuXG4uZGEtc3RlcHMge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDAgMCA4cHg7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5kYS1zdGVwIHtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5kYS1zdGVwLWhlYWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgcGFkZGluZzogNXB4IDZweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmRhLXN0ZXAtaGVhZDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG59XG5cbi5kYS1zdGVwLW51bSB7XG4gIGZsZXg6IDAgMCAxOHB4O1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBsaW5lLWhlaWdodDogMThweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uZGEtc3RlcC1sYWJlbCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjg7XG59XG5cbi5kYS1zdGVwLXRpY2sge1xuICBjb2xvcjogdmFyKC0tcHJvZHVjdGlvbi1jb2xvdXIpO1xuICBmb250LXNpemU6IDExcHg7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5kYS1zdGVwLmFjdGl2ZSB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLmRhLXN0ZXAuYWN0aXZlIC5kYS1zdGVwLWhlYWQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLXNlY29uZGFyeS1jb2xvdXItcmdiKSwgMC4xMik7XG59XG5cbi5kYS1zdGVwLmFjdGl2ZSAuZGEtc3RlcC1udW0ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS10ZXh0KTtcbn1cblxuLmRhLXN0ZXAuYWN0aXZlIC5kYS1zdGVwLWxhYmVsIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmRhLXN0ZXAuZG9uZSAuZGEtc3RlcC1udW0ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9kdWN0aW9uLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1wcm9kdWN0aW9uLXRleHQpO1xufVxuXG4uZGEtc3RlcC5kb25lIC5kYS1zdGVwLXRpY2sge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZGEtc3RlcC5zdWdnZXN0ZWQgLmRhLXN0ZXAtbnVtIHtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEodmFyKC0tc2Vjb25kYXJ5LWNvbG91ci1yZ2IpLCAwLjUpO1xufVxuXG4uZGEtc3RlcC5zdWdnZXN0ZWQgLmRhLXN0ZXAtbGFiZWwge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5kYS1zdGFnZS1wYW5lbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmc6IDRweCA2cHggOHB4IDlweDtcbn1cblxuLmRhLXN0YWdlLXBhbmVsLmFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZGEtaW5zdHJ1Y3Rpb24ge1xuICBtYXJnaW46IDAgMCA4cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNztcbiAgbGluZS1oZWlnaHQ6IDEuNDU7XG59XG5cbi5kYS1pbnN0cnVjdGlvbiBzdHJvbmcge1xuICBvcGFjaXR5OiAxO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uZGEtbGVnZW5kIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA3cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNztcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4uZGEtc3dhdGNoIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxuLmRhLXN3YXRjaC5iYXNlbGluZSB7XG4gIGJhY2tncm91bmQ6ICNmZjhjMDA7XG59XG5cbi5kYS1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDZweDtcbn1cblxuLmRhLWFjdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDVweDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDExcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBib3JkZXItY29sb3IgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZTtcbn1cblxuLmRhLWFjdGlvbjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi8qIEFjdGlvbiBidXR0b25zIGNvbGxhcHNlIHRvIGljb25zIChvbmUgcm93KTsgbGFiZWwgKyBzaG9ydGN1dCBhcHBlYXIgd2hlbiB3aWRlICovXG4uZGEtYWN0aW9uLWxhYmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmRhLXdpZGUgLmRhLWFjdGlvbi1sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLyogU2hvcnRjdXQgaGludCBvbiBhY3Rpb24gYnV0dG9ucyDigJQgcmV2ZWFsZWQgb25seSB3aGVuIHRoZSBwYW5lIGlzIHdpZGUgKi9cbi5kYS1hY3Rpb24ta2V5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmRhLW1pZCAuZGEtYWN0aW9uIC5kYS1hY3Rpb24ta2V5IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogNnB4O1xuICBwYWRkaW5nOiAwIDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0ta2JkLWJnKTtcbiAgY29sb3I6IHZhcigtLWtiZC10ZXh0KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0ta2JkLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogdmFyKC0ta2JkLXNoYWRvdyk7XG4gIGZvbnQtc2l6ZTogOXB4O1xufVxuXG4vKiBEZWRpY2F0ZWQgdmlld3MgKFNMRCwgUGxhbiBTZXQpIOKAlCBhY2NlbnRlZCAodGhleSBvcGVuIGZ1bGwtc2NyZWVuXG4gICBkZXN0aW5hdGlvbnMgcmF0aGVyIHRoYW4gZmlyaW5nIGEgcXVpY2sgYWN0aW9uKTsgbGFiZWxzIGZvbGxvdyB3aWR0aCB0aWVyLiAqL1xuLmRhLWFjdGlvbi12aWV3IHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKHZhcigtLXNlY29uZGFyeS1jb2xvdXItcmdiKSwgMC40NSk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG4uZGEtYWN0aW9uLXZpZXcgaSB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cbi5kYS1hY3Rpb24tdmlldzpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgMTAlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG4uZGEtYWN0aW9uLXZpZXc6aG92ZXIgaSB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cbi5kYS1hY3Rpb24tdmlldyAuZGEtYWN0aW9uLWxhYmVsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogU0xEIC8gUGxhbiBTZXQgcmV2ZWFsIHRoZWlyIHdvcmRzIG9ubHkgYXQgdGhlIHdpZGUgdGllci4gV2l0aCB0aGUgY29tcGFzcyBpblxuICAgdGhlIGhlYWRlciwgbmFycm93ZXIgd2lkdGhzIG5lZWQgdGhlIHJvb20gZm9yIHRoZSBhY3Rpb24gaWNvbnMsIHNvIGtlZXAgdGhlc2VcbiAgIGljb24tb25seSAodGhleSBjYXJyeSB0b29sdGlwcykgdW50aWwgdGhlcmUncyBzcGFjZS4gKi9cbi5kYS13aWRlIC5kYS1hY3Rpb24tdmlldyAuZGEtYWN0aW9uLWxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG4vKiBcIkRvY3VtZW50c1wiIGV4cG9ydCBkcm9wZG93biB0cmlnZ2VyIChSZXBvcnQgLyBCT00gLyBDQUQgbGl2ZSBpbnNpZGUgaXQpICovXG4uZGEtZXhwb3J0LW1lbnUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuXG4uZGEtZXhwb3J0LW1lbnUgLmRhLWFjdGlvbi1leHBvcnQge1xuICBmbGV4OiAxO1xufVxuXG4uZGEtZXhwb3J0LWNhcmV0IHtcbiAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7XG59XG5cbi5kYS1leHBvcnQtbWVudS5vcGVuIC5kYS1leHBvcnQtY2FyZXQge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuXG4uZGEtbmVlZHMtc2VsZWN0aW9uLW1zZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIG1hcmdpbjogOHB4IDAgMDtcbiAgY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi13YXJuaW5nKTtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuXG4uZGEtc3RhZ2UtcGFuZWwuYmxvY2tlZCAuZGEtbmVlZHMtc2VsZWN0aW9uLW1zZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZGEtc3RhZ2UtcGFuZWwuYmxvY2tlZCAuZGEtYWN0aW9uIHtcbiAgb3BhY2l0eTogMC41O1xufVxuXG4vKiBQZXItc3RhZ2UgdGlwcywgZ3JvdXBlZCBpbiBvbmUgYm9yZGVyZWQgYm94IHdpdGggYSBkb21lZCBidWxiIHRhYi4gKi9cbi5kYS1oaW50cyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA1cHg7XG4gIG1hcmdpbjogMThweCAwIDZweDtcbiAgcGFkZGluZzogMTBweCA5cHggN3B4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG59XG5cbi8qIEEgZG9tZWQgdGFiIG9uIHRoZSB0b3AtbGVmdDogaXRzIHRvcCArIHNpZGUgYm9yZGVycyBjb250aW51ZSB0aGUgYm94IGZyYW1lIHVwXG4gICBhbmQgb3ZlciB0aGUgYnVsYiwgdGhlbiBiYWNrIGRvd24gdG8gdGhlIHRvcCBlZGdlLiBJdHMgY2FyZC1jb2xvdXJlZCBmaWxsIG1hc2tzXG4gICB0aGUgc3RyYWlnaHQgdG9wIGJvcmRlciBydW5uaW5nIGJlbmVhdGggaXQuICovXG4uZGEtaGludHMtdGFiIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0xNHB4O1xuICBsZWZ0OiA5cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMTZweCAxNnB4IDAgMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBjb2xvcjogI2Y2YzQ1MztcbiAgZm9udC1zaXplOiAxMXB4O1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLmRhLXRpcCB7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgNjIlLCB0cmFuc3BhcmVudCk7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuLmRhLXRpcCBzdHJvbmcge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4vKiBIb3N0LXN3YXBwYWJsZSBjb3B5OiBzaG93biBvbmx5IHdoaWxlIG5vIExpZGFyL0RTTSBpcyBsb2FkZWQuICovXG4uZGEtdGlwLW5vbGlkYXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4jZGVzaWduLWFzc2lzdGFudC5kYS1uby1kc20gLmRhLXRpcC1ub2xpZGFyIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIEludmVyc2U6IGEgdGlwIHJlbGV2YW50IG9ubHkgd2hlbiBMaWRhciBJUyBsb2FkZWQg4oCUIGhpZGRlbiB3aXRob3V0IGl0LiAqL1xuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtbm8tZHNtIC5kYS10aXAtbGlkYXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZGEtd2FybmluZyB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBtYXJnaW46IDAgMCAxMHB4O1xuICBwYWRkaW5nOiA4cHggMTBweDtcbiAgLyogU2xpZ2h0IHRyYW5zcGFyZW5jeSBzb2Z0ZW5zIHRoZSBmaWxsIHdpdGhvdXQgZHJvcHBpbmcgZW5vdWdoIGNvbnRyYXN0XG4gICAgIHRvIG1ha2UgdGhlIHBhaXJlZCB0ZXh0IGNvbHVtbiBoYXJkIHRvIHJlYWQuICovXG4gIGJhY2tncm91bmQ6IHJnYmEodmFyKC0tbm90aWZpY2F0aW9uLXdhcm5pbmctcmdiKSwgMC45KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSh2YXIoLS1ub3RpZmljYXRpb24td2FybmluZy1yZ2IpLCAwLjkpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIC8qIFBhaXJlZCB0ZXh0IGNvbHVtbiBmcm9tIHRoZSB0aGVtZSBzbyBjb3B5IHN0YXlzIHJlYWRhYmxlIG9uIHRoZSBmaWxsLiAqL1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLXdhcm5pbmctdGV4dCk7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuLmRhLXdhcm5pbmcgPiBpIHtcbiAgY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi13YXJuaW5nLXRleHQpO1xufVxuXG4vKiBDcmVhc2VkIGdlb21ldHJ5IGlzIG1vcmUgc2V2ZXJlIHRoYW4gYSBtaXNwbGFjZWQgYmFzZWxpbmUg4oCUIGRhbmdlciBjb2xvdXIuICovXG4uZGEtd2FybmluZy5jcmVhc2Uge1xuICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLW5vdGlmaWNhdGlvbi1kYW5nZXItcmdiKSwgMC43KTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKHZhcigtLW5vdGlmaWNhdGlvbi1kYW5nZXItcmdiKSwgMC45KTtcbiAgY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1kYW5nZXItdGV4dCk7XG59XG5cbi5kYS13YXJuaW5nLmNyZWFzZSA+IGkge1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlci10ZXh0KTtcbn1cblxuLmRhLXdhcm5pbmcuY3JlYXNlIC5kYS13YXJuaW5nLWJ0biB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlci10ZXh0KTtcbiAgY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1kYW5nZXItdGV4dCk7XG59XG5cbi5kYS13YXJuaW5nLmNyZWFzZSAuZGEtd2FybmluZy1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMjgpO1xufVxuXG4uZGEtd2FybmluZyBzcGFuIHtcbiAgZmxleDogMTtcbn1cblxuLmRhLXdhcm5pbmcgc3Ryb25nIHtcbiAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5kYS13YXJuaW5nLWJ0biB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBwYWRkaW5nOiAzcHggOHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ub3RpZmljYXRpb24td2FybmluZy10ZXh0KTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLXdhcm5pbmctdGV4dCk7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZGEtd2FybmluZy1idG46aG92ZXIge1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMS4xMik7XG59XG5cbi5kYS1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5kYS1nbG9iYWxzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDZweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgcGFkZGluZy10b3A6IDhweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4uZGEtaGVhZGVyLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDNweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4uZGEtaGVhZGVyLWFjdGlvbnMgLmRhLWdsb2JhbC1idG4ge1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xufVxuXG4vKiBHcm91cCBicmVhayBhZnRlciB0aGUgZGVzdHJ1Y3RpdmUgbGVhZCBidXR0b24g4oCUIHRoZSBnYXAga2VlcHMgdGhlXG4gICB0cmFzaCB2aXN1YWxseSAoYW5kIHBoeXNpY2FsbHkpIGFwYXJ0IGZyb20gdGhlIHNhdmUgY2x1c3Rlci4gKi9cbi5kYS1oZWFkZXItYWN0aW9ucyAuZGEtZGFuZ2VyIHtcbiAgbWFyZ2luLXJpZ2h0OiA5cHg7XG59XG5cbi8qIEF1dG8tc2F2ZSBzbmFwc2hvdCBkb3Qg4oCUIHRoZSBidW5kbGUgZmxhc2hlcyAjdW5kby1zbmFwc2hvdC1mbGFzaCAobGF6eVxuICAgZ2V0RWxlbWVudEJ5SWQpIHdoZW5ldmVyIGEgc2NlbmUgc25hcHNob3QgaXMgc2F2ZWQ7IGl0IGxpdmVzIGluc2lkZSB0aGVcbiAgIERlc2lnbiBBc3Npc3RhbnQncyBoZWFkZXIgdW5kbyBidXR0b24uICovXG4uZGEtaGVhZGVyLWFjdGlvbnMgLmRhLWdsb2JhbC1idG5bZGF0YS1hY3Rpb249dW5kb10ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbiN1bmRvLXNuYXBzaG90LWZsYXNoIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDFweDtcbiAgcmlnaHQ6IDFweDtcbiAgd2lkdGg6IDVweDtcbiAgaGVpZ2h0OiA1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogcmdiYSgxMDAsIDE4MCwgMjU1LCAwKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbiN1bmRvLXNuYXBzaG90LWZsYXNoLmZsYXNoIHtcbiAgYW5pbWF0aW9uOiB1bmRvRG90IDAuOHMgZWFzZS1vdXQgZm9yd2FyZHM7XG59XG5cbkBrZXlmcmFtZXMgdW5kb0RvdCB7XG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDEwMCwgMTgwLCAyNTUsIDAuOSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMDAsIDE4MCwgMjU1LCAwKTtcbiAgfVxufVxuLyogQWN0aXZlLW1vZGUgYmFkZ2UgaW4gdGhlIGhlYWRlciAoaWNvbiBhbHdheXM7IGxhYmVsIHdoZW4gd2lkZSkgKi9cbi8qIEFjdGl2ZS1tb2RlIGJhZGdlIOKAlCBzaXRzIGluIHRoZSBlbGVjdHJpY2FsLXJlYWRpbmVzcyByb3cgYXMgYSBzb2xpZCBhY2NlbnQgY2hpcFxuICAgKG1hdGNoZXMgdGhlIGNoaXAgcGlsbCBzaGFwZTsgaXRzIGNvbG91ciBtYXJrcyB0aGUgbGl2ZSBtb2RlKS4gKi9cbi5kYS1tb2RlLWluZGljYXRvciB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNXB4O1xuICBwYWRkaW5nOiAzcHggOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uZGEtbW9kZS1sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLmRhLWdsb2JhbC1idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMgZWFzZTtcbn1cblxuLmRhLWdsb2JhbC1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIpIDEwJSwgdHJhbnNwYXJlbnQpO1xufVxuXG4vKiBEcmFnLXRvLXJlc2l6ZSBoYW5kbGUgb24gdGhlIHJpZ2h0IGVkZ2UgKi9cbi5kYS1yZXNpemUtaGFuZGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogN3B4O1xuICBoZWlnaHQ6IDEwMCU7XG4gIGN1cnNvcjogZXctcmVzaXplO1xufVxuXG4uZGEtcmVzaXplLWhhbmRsZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEodmFyKC0tc2Vjb25kYXJ5LWNvbG91ci1yZ2IpLCAwLjI1KTtcbn1cblxuLyogV2lkZSBtb2RlIChkcmFnZ2VkIHBhc3QgdGhyZXNob2xkKTogaWNvbi1vbmx5IGdsb2JhbHMgcmV2ZWFsIGxhYmVscyArIGtleXMgKi9cbi5kYS1nbG9iYWwtbGFiZWwge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZGEtZ2xvYmFsLWxhYmVsIGtiZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWtiZC1iZyk7XG4gIGNvbG9yOiB2YXIoLS1rYmQtdGV4dCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWtiZC1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IHZhcigtLWtiZC1zaGFkb3cpO1xuICBwYWRkaW5nOiAwIDRweDtcbiAgZm9udC1zaXplOiA5cHg7XG59XG5cbi8qIEdsb2JhbHM6IGljb24g4oaSIGljb24gKyBrYmQgKG1pZCwgb25seSB0aG9zZSB3aXRoIGEgc2hvcnRjdXQpIOKGkiBpY29uICsgd29yZCArIGtiZCAod2lkZSkgKi9cbi5kYS1taWQgLmRhLWdsb2JhbHMgLmRhLWdsb2JhbC1idG46aGFzKGtiZCkge1xuICB3aWR0aDogYXV0bztcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBwYWRkaW5nOiAwIDlweDtcbiAgZ2FwOiA2cHg7XG4gIGhlaWdodDogMjhweDtcbn1cblxuLmRhLW1pZCAuZGEtZ2xvYmFscyAuZGEtZ2xvYmFsLWJ0bjpoYXMoa2JkKSAuZGEtZ2xvYmFsLWxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNXB4O1xuICBmb250LXNpemU6IDExcHg7XG59XG5cbi8qIEluIHRoZSBwdXJlIG1pZGRsZSB0aWVyLCB0aGUgc2hvcnRjdXQgc2hvd3MgYnV0IHRoZSB3b3JkIGlzIGhpZGRlbiAqL1xuLmRhLW1pZDpub3QoLmRhLXdpZGUpIC5kYS1nbG9iYWxzIC5kYS1nbG9iYWwtYnRuOmhhcyhrYmQpIC5kYS1nbG9iYWwtd29yZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5kYS13aWRlIC5kYS1nbG9iYWxzIC5kYS1nbG9iYWwtYnRuIHtcbiAgd2lkdGg6IGF1dG87XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgcGFkZGluZzogMCA5cHg7XG4gIGdhcDogNnB4O1xuICBoZWlnaHQ6IDI4cHg7XG59XG5cbi5kYS13aWRlIC5kYS1nbG9iYWxzIC5kYS1nbG9iYWwtbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA1cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbn1cblxuLyogVG9vbCBidXR0b25zIChtaW5pLXRvb2xiYXIpIOKAlCBzaG93biBpbiBCT1RIIHRoZSBjb2xsYXBzZWQgYW5kIHRoZSBleHBhbmRlZFxuICAgcGFuZSwgcGlubmVkIG5lYXIgdGhlIHRvcC4gTGFiZWxlZCBidXR0b25zIGJ5IGRlZmF1bHQ7IHRoZSBjb250YWluZXIgcXVlcnlcbiAgIGJlbG93IGNvbGxhcHNlcyB0aGVtIHRvIGljb24tb25seSB3aGVuZXZlciB0aGUgcGFuZSBpcyB0b28gbmFycm93IHRvIGtlZXAgdGhlXG4gICB3aG9sZSByb3cgb24gYSBzaW5nbGUgbGluZS4gKi9cbi5kYS10b29scyB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbi5kYS1xdWljay1tb2RlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBnYXA6IDZweDtcbiAgcGFkZGluZzogMTBweCAxMnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBNb2RlIHRvZ2dsZXM6IGljb24gKG5hcnJvdykg4oaSIGljb24gKyBrYmQgKG1pZCkg4oaSIGljb24gKyB3b3JkICsga2JkICh3aWRlKSAqL1xuLmRhLXF1aWNrLW1vZGVzIC5kYS1nbG9iYWwtYnRuIHtcbiAgd2lkdGg6IDI4cHg7XG4gIG1pbi13aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBwYWRkaW5nOiAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmRhLXF1aWNrLW1vZGVzIC5kYS1nbG9iYWwtbGFiZWwge1xuICBkaXNwbGF5OiBub25lO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDVweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uZGEtcXVpY2stbW9kZXMgLmRhLWdsb2JhbC1idG4uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSh2YXIoLS1zZWNvbmRhcnktY29sb3VyLXJnYiksIDAuMTgpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4uZGEtbWlkIC5kYS1xdWljay1tb2RlcyAuZGEtZ2xvYmFsLWJ0biB7XG4gIHdpZHRoOiBhdXRvO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIHBhZGRpbmc6IDAgOXB4O1xuICBnYXA6IDZweDtcbn1cblxuLmRhLW1pZCAuZGEtcXVpY2stbW9kZXMgLmRhLWdsb2JhbC1sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xufVxuXG4uZGEtbWlkOm5vdCguZGEtd2lkZSkgLmRhLXF1aWNrLW1vZGVzIC5kYS1nbG9iYWwtd29yZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIFdpZGUgZW5vdWdoIGZvciB3b3JkcyDigJQgbGV0IHRoZSByb3cgd3JhcCByYXRoZXIgdGhhbiBjbGlwICovXG4uZGEtd2lkZSAuZGEtcXVpY2stbW9kZXMge1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKiBPdmVyZmxvdyAo4ouvKSBtZW51IOKAlCBmaXhlZC1wb3NpdGlvbmVkIGluIEpTIHNvIG92ZXJmbG93OmhpZGRlbiB3b24ndCBjbGlwIGl0ICovXG4uZGEtbW9yZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmRhLW1vcmUtbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAycHg7XG4gIG1pbi13aWR0aDogMTcwcHg7XG4gIHBhZGRpbmc6IDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3gtc2hhZG93OiAwIDRweCAxOHB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgei1pbmRleDogOTA1O1xufVxuXG4uZGEtbW9yZS5vcGVuIC5kYS1tb3JlLW1lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4uZGEtbWVudS1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA2cHggOHB4O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5kYS1tZW51LWl0ZW0gaSB7XG4gIHdpZHRoOiAxNnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLmRhLW1lbnUtaXRlbSBrYmQge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgYmFja2dyb3VuZDogdmFyKC0ta2JkLWJnKTtcbiAgY29sb3I6IHZhcigtLWtiZC10ZXh0KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0ta2JkLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogdmFyKC0ta2JkLXNoYWRvdyk7XG4gIHBhZGRpbmc6IDAgNHB4O1xuICBmb250LXNpemU6IDlweDtcbn1cblxuLmRhLW1lbnUtaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG59XG5cbi8qIENvbGxhcHNpYmxlIHJvdywgYW5pbWF0ZWQgcmF0aGVyIHRoYW4gZGlzcGxheS10b2dnbGVkIHNvIGl0IGRvZXNuJ3QgZmxhdC1qaXR0ZXJcbiAgIGFzIHRoZSBtb2RlIGNoaXAgcmV2ZWFscy9oaWRlcyBiZXR3ZWVuIHRvb2wgc3dhcHMgYmVmb3JlIHBhbmVscyBleGlzdC4gQmFzZSBzdGF0ZVxuICAgaXMgY29sbGFwc2VkIChubyBmaXJzdC1wYWludCBmbGFzaCk7IC5pcy1vcGVuIGV4cGFuZHMgaXQuIEZhc3QsIHdpdGggb3BhY2l0eVxuICAgZWFzaW5nIHRoZSBoZWlnaHQgY2hhbmdlLiAqL1xuLmRhLXJlc3VsdHMge1xuICAvKiBGaXhlZCBjaHJvbWUgYWJvdmUgdGhlIHNjcm9sbGFibGUgLmRhLWJvZHkg4oCUIG5ldmVyIGxldCB0aGUgZmxleCBjb2x1bW5cbiAgICAgc2hyaW5rIGl0LCBvciBpdHMgb3ZlcmZsb3c6aGlkZGVuIHNoYXZlcyB0aGUgY2hpcCBib3R0b21zLiAqL1xuICBmbGV4LXNocmluazogMDtcbiAgbWF4LWhlaWdodDogMDtcbiAgb3BhY2l0eTogMDtcbiAgcGFkZGluZzogMCAxMnB4O1xuICBib3JkZXItYm90dG9tOiAwIHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjE2cyBlYXNlLCBvcGFjaXR5IDAuMTNzIGVhc2UsIHBhZGRpbmctdG9wIDAuMTZzIGVhc2UsIHBhZGRpbmctYm90dG9tIDAuMTZzIGVhc2UsIGJvcmRlci1ib3R0b20td2lkdGggMC4xNnMgZWFzZTtcbn1cblxuLmRhLXJlc3VsdHMuaXMtb3BlbiB7XG4gIG1heC1oZWlnaHQ6IDE2MHB4O1xuICBvcGFjaXR5OiAxO1xuICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi5kYS1nbG9iYWwtYnRuLmRhLWRhbmdlcjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlcik7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyKTtcbn1cblxuLmRhLXJlc3VsdHMtdG9nZ2xlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB3aWR0aDogMTAwJTtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDZweCA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ob3Zlcik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5kYS1yZXN1bHRzLXRvZ2dsZTpob3ZlciB7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygxLjEyKTtcbn1cblxuLmRhLXJlc3VsdHMtc3VtbWFyeSBzdHJvbmcge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4vKiBTdW1tYXJ5IHJldmVhbHMgbW9yZSB2YWx1ZXMgYXMgdGhlIHBhbmUgd2lkZW5zIChwYW5lbHMgKyBvZmZzZXQgYWx3YXlzKSAqL1xuLmRhLXN1bS1taWQsXG4uZGEtc3VtLXdpZGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uZGEtbWlkIC5kYS1zdW0tbWlkIHtcbiAgZGlzcGxheTogaW5saW5lO1xufVxuXG4uZGEtd2lkZSAuZGEtc3VtLXdpZGUge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5kYS1yZXN1bHRzLWNoZXZyb24ge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjY7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG59XG5cbi8qIFVuZm9sZGVkIGludG8gdGhlIFByb2R1Y3Rpb24gdmlldzogY2hldnJvbiBwb2ludHMgYmFjayAobGVmdCkg4oCUIGNsaWNrIHRoZVxuICAgc3VtbWFyeSBhZ2FpbiB0byByZXR1cm4gdG8gdGhlIGRlc2lnbiBzdGVwcGVyLiAqL1xuLmRhLXJlc3VsdHMtdG9nZ2xlLm9wZW4gLmRhLXJlc3VsdHMtY2hldnJvbiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG5cbi8qIOKUgOKUgCBCb2R5IHZpZXdzOiBEZXNpZ24g4oeEIFByb2R1Y3Rpb24gc3dhcCBpbiBwbGFjZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgIFRoZSBoZWFkZXIsIHN1bW1hcnkvdG9nZ2xlLCBhbmQgcmVzaXplIGhhbmRsZSBzdGF5IG1vdW50ZWQgYWNyb3NzIGJvdGgsXG4gICBzbyBTYXZlL1VuZG8vUmVkbyBhbmQgcmVzaXppbmcgd29yayB3aGlsZSB2aWV3aW5nIHByb2R1Y3Rpb24uICovXG4uZGEtdmlldyB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNkZXNpZ24tYXNzaXN0YW50LmRhLXZpZXctZGVzaWduIC5kYS12aWV3LWRlc2lnbixcbiNkZXNpZ24tYXNzaXN0YW50LmRhLXZpZXctcHJvZHVjdGlvbiAuZGEtdmlldy1wcm9kdWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIFF1aWNrLW1vZGUgdG9vbGJhciBiZWxvbmdzIHRvIHRoZSBkZXNpZ24gd29ya2Zsb3cg4oCUIGhpZGUgaXQgd2hpbGUgYnJvd3NpbmdcbiAgIHByb2R1Y3Rpb24gKHVubGVzcyBjb2xsYXBzZWQsIHdoZXJlIGl0IHN0YXlzIGEgZ2xhbmNlYWJsZSBxdWljay1hY3Rpb24gc3RyaXApLiAqL1xuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtdmlldy1wcm9kdWN0aW9uOm5vdCguY29sbGFwc2VkKSAuZGEtdG9vbHMge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiAjcHYtd2F0dHMtaW5mbyBpcyBhYnNvbHV0ZS1wb3NpdGlvbmVkIGFzIGEgc3RhbmRhbG9uZSBwYW5lbCBieSBkZWZhdWx0O1xuICAgbmV1dHJhbGlzZSB0aGF0IG5vdyB0aGF0IGl0J3MgZG9ja2VkIGluc2lkZSB0aGUgYXNzaXN0YW50IGJvZHkuICovXG4uZGEtdmlldy1wcm9kdWN0aW9uIC5wdi13YXR0cy1pbmZvIHtcbiAgcG9zaXRpb246IHN0YXRpYztcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJhY2tkcm9wLWZpbHRlcjogbm9uZTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4vKiBSZWFkLW9ubHkgdmlld2VyOiB0aGUgYXNzaXN0YW50IGJlY29tZXMgYSBwbGFpbiBwcm9kdWN0aW9uIHBhbmVsIChubyBlZGl0b3JcbiAgIGNocm9tZSksIHJlcGxhY2luZyB0aGUgb2xkIHN0YW5kYWxvbmUgZmx5b3V0LiBUaGUgU3lzdGVtIHN1Yi10YWIgKHJlbmRlcmVkXG4gICBvbmx5IGJ5IHRoZSBlZGl0b3IncyBEZXNpZ25Bc3Npc3RhbnQpIGhhcyBubyBtZWFuaW5nIHRoZXJlLCBzbyBkcm9wIGl0IHRvby4gKi9cbiNkZXNpZ24tYXNzaXN0YW50LmRhLXJlYWRvbmx5IC5kYS1oZWFkZXIsXG4jZGVzaWduLWFzc2lzdGFudC5kYS1yZWFkb25seSAuZGEtcmVzdWx0cyxcbiNkZXNpZ24tYXNzaXN0YW50LmRhLXJlYWRvbmx5IC5kYS10b29scyxcbiNkZXNpZ24tYXNzaXN0YW50LmRhLXJlYWRvbmx5IC5kYS1yZXNpemUtaGFuZGxlLFxuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtcmVhZG9ubHkgLnB2LXdhdHRzLXRhYltkYXRhLXRhYj1iYXR0ZXJ5XSxcbiNkZXNpZ24tYXNzaXN0YW50LmRhLXJlYWRvbmx5IC5wdi13YXR0cy10YWJbZGF0YS10YWI9Ym9zXSxcbiNkZXNpZ24tYXNzaXN0YW50LmRhLXJlYWRvbmx5ICNtYXAtc2NhbGUtcnVsZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiDilIDilIAgU3lzdGVtIHN1Yi10YWI6IEJPTSArIGJhdHRlcnkgc3VtbWFyeSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5kYS1zeXN0ZW0ge1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5kYS1zeXMtc2VjdGlvbiB7XG4gIG1hcmdpbi10b3A6IDE0cHg7XG59XG5cbi5kYS1zeXMtc2VjdGlvbjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDJweDtcbn1cblxuLmRhLXN5cy10aXRsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBtYXJnaW46IDAgMCA4cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLmRhLXN5cy10aXRsZSBpIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4uZGEtc3lzLXRpdGxlIC5kYS1zeXMtc3JjIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogOXB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG59XG5cbi5kYS1zeXMtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIGdhcDogNnB4O1xufVxuXG4jZGVzaWduLWFzc2lzdGFudC5kYS1taWQgLmRhLXN5cy1ncmlkLFxuI2Rlc2lnbi1hc3Npc3RhbnQuZGEtd2lkZSAuZGEtc3lzLWdyaWQge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xufVxuXG4uZGEtc3lzLXN0YXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDdweCA4cHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgNiUsIHRyYW5zcGFyZW50KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xufVxuXG4vKiBSYWlsLXBpZWNlcyBjYXJkOiBzdGFjayBiYWRnZSArIGhvdmVyIHBvcG92ZXIgd2l0aCB0aGUgcGVyLWxlbmd0aCBzcGxpdCAqL1xuLmRhLXN5cy1zdGF0LS1wb3Age1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5kYS1zeXMtYmFkZ2Uge1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmRhLXN5cy1wb3Age1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxMDAlICsgNHB4KTtcbiAgbGVmdDogMDtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiA1O1xuICBwYWRkaW5nOiA2cHggOHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgYm94LXNoYWRvdzogMCA2cHggMThweCByZ2JhKDAsIDAsIDAsIDAuNDUpO1xufVxuXG4uZGEtc3lzLXN0YXQtLXBvcDpob3ZlciAuZGEtc3lzLXBvcCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZGEtc3lzLXBvcC1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMTJweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4uZGEtc3lzLXN0YXQgLnYge1xuICBmb250LXNpemU6IDE1cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xufVxuXG4uZGEtc3lzLXN0YXQgLnYgc21hbGwge1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbn1cblxuLmRhLXN5cy1zdGF0IC5rIHtcbiAgbWFyZ2luLXRvcDogMnB4O1xuICBmb250LXNpemU6IDEwcHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbn1cblxuLmRhLXN5cy1jaGFydCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgZ2FwOiA4cHg7XG4gIGhlaWdodDogODZweDtcbiAgbWFyZ2luLXRvcDogMTJweDtcbiAgcGFkZGluZy10b3A6IDZweDtcbn1cblxuLmRhLXN5cy1jaGFydCAuY29sIHtcbiAgZmxleDogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZ2FwOiA0cHg7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmRhLXN5cy1jaGFydCAuYmFyIHtcbiAgd2lkdGg6IDY4JTtcbiAgbWluLWhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogM3B4IDNweCAwIDA7XG59XG5cbi5kYS1zeXMtY2hhcnQgLmNvbC12YWwge1xuICBmb250LXNpemU6IDlweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLmRhLXN5cy1jaGFydCAuY29sLWxibCB7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG59XG5cbi5kYS1zeXMtY2FwIHtcbiAgbWFyZ2luLXRvcDogNnB4O1xuICBmb250LXNpemU6IDEwcHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZGEtc3lzLWJhbmtzIHtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDRweDtcbn1cblxuLmRhLXN5cy1iYW5rIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDhweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4uZGEtc3lzLWJhbmsgLm11dGVkIHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xufVxuXG4uZGEtc3lzLWVtcHR5IHtcbiAgcGFkZGluZzogOHB4IDA7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xufVxuXG4uZGEtc3lzLWJ0biB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIHBhZGRpbmc6IDdweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA3JSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uZGEtc3lzLWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgMTMlLCB0cmFuc3BhcmVudCk7XG59XG5cbi8qIElubGluZSByYWNraW5nIGNvbmZpZyAoQmFsYW5jZSBvZiBTeXN0ZW0gdGFiKSAqL1xuLmRhLWJvcy1jb25maWcge1xuICBtYXJnaW4tdG9wOiAxNnB4O1xuICBwYWRkaW5nLXRvcDogMTJweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4uZGEtYm9zLWZpZWxkIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLmRhLWJvcy1ncmlkMiB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgZ2FwOiAxMHB4O1xufVxuXG4uZGEtYm9zLWZpZWxkIGxhYmVsLFxuLmRhLWJvcy1mbGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbn1cblxuLmRhLWJvbS1pbnB1dCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiA2cHggOHB4O1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIpIDYlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uZGEtYm9tLWlucHV0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLmRhLWJvcy1mbGFiZWwgc21hbGwge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuLyogUmFpbC1sZW5ndGggdG9nZ2xlIGNoaXBzIOKAlCBlbmFibGVkIGxlbmd0aHMgdGhlIG9wdGltaXplciBtaXhlcy4gKi9cbi5kYS1ib20tY2hpcHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogNnB4O1xufVxuXG4uZGEtYm9tLWNoaXAge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBnYXA6IDRweDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgNCUsIHRyYW5zcGFyZW50KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDEycHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmRhLWJvbS1jaGlwIHNtYWxsIHtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbn1cblxuLmRhLWJvbS1jaGlwOmhvdmVyIHtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDEuMTUpO1xufVxuXG4uZGEtYm9tLWNoaXAuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDE2JSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4uZGEtYm9tLWNoaXAuYWN0aXZlIHNtYWxsIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4ja2V5Ym9hcmQtaGludHMge1xuICBwYWRkaW5nOiA1cHg7XG59XG5cbi5rYmQtaGludHMtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiA2cHg7XG59XG5cbi5rYmQtaGludHMtdGl0bGUge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xufVxuXG4ua2JkLXRhYi1iYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDJweDtcbn1cblxuLmtiZC10YWIge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC40O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDJweCA2cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzLCBiYWNrZ3JvdW5kIDAuMTVzLCBvcGFjaXR5IDAuMTVzO1xufVxuXG4ua2JkLXRhYjpob3ZlciB7XG4gIG9wYWNpdHk6IDAuODtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWhvdmVyKTtcbn1cblxuLmtiZC10YWIuYWN0aXZlIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBvcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLXNlY29uZGFyeS1jb2xvdXItcmdiKSwgMC4xMik7XG4gIGJvcmRlci1jb2xvcjogcmdiYSh2YXIoLS1zZWNvbmRhcnktY29sb3VyLXJnYiksIDAuMjUpO1xufVxuXG4ua2JkLWhpbnQtdGV4dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDZweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjY7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5rYmQtaGludC10ZXh0IGkge1xuICBjb2xvcjogdmFyKC0tcHJvZHVjdGlvbi1jb2xvdXIpO1xuICBmb250LXNpemU6IDlweDtcbiAgbWFyZ2luLXRvcDogM3B4O1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLmtiZC1oaW50cy1saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAzcHg7XG4gIC8qIENvbXBhY3QgYnkgZGVmYXVsdDsgc2lsa3ktZXhwYW5kcyBvbiBob3Zlciwgc2Nyb2xsYWJsZSBmb3IgbW9yZSB0aXBzICovXG4gIG1heC1oZWlnaHQ6IDkycHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC40cyBjdWJpYy1iZXppZXIoMC4yMiwgMSwgMC4zNiwgMSk7XG59XG4ua2JkLWhpbnRzLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDZweDtcbn1cbi5rYmQtaGludHMtbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4ua2JkLWhpbnRzLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5kYS1sb3dlci5oaW50cy1vcGVuIC5rYmQtaGludHMtbGlzdCB7XG4gIG1heC1oZWlnaHQ6IDMyMHB4O1xufVxuXG4ua2JkLWhpbnQtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuODtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuLmtiZC1oaW50LWtleXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDJweDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1pbi13aWR0aDogNzBweDtcbn1cblxuLmtiZC1rZXkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLW5hdi10ZXh0KTtcbiAgcGFkZGluZzogMXB4IDVweDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdHlwZSk7XG4gIG1pbi13aWR0aDogMThweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmtiZC1wbHVzIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC40O1xuICBmb250LXNpemU6IDlweDtcbn1cblxuLmtiZC1kZXNjIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC42O1xuICBmbGV4OiAxO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vKiBUcmVlIE11bHRpLVNlbGVjdCBVSSAqL1xuI3RyZWUtbXVsdGlzZWxlY3QtcGFuZWwge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogODBweDtcbiAgcmlnaHQ6IDIwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHotaW5kZXg6IDEwMDAxO1xuICBmb250LXNpemU6IDE0cHg7XG4gIG1pbi13aWR0aDogMzIwcHg7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggdmFyKC0tYm94c2hhZG93KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xufVxuXG4udHJlZS1tdWx0aS1zZWxlY3QtaGVhZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4udHJlZS1tdWx0aS1zZWxlY3QtaGVhZGVyIGRpdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi50cmVlLW11bHRpLXNlbGVjdC1oZWFkZXIgaS5mYS10cmVlIHtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi50cmVlLW11bHRpLXNlbGVjdC1oZWFkZXIgYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBwYWRkaW5nOiA1cHg7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcbn1cblxuLnRyZWUtbXVsdGktc2VsZWN0LXNlY3Rpb24ge1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuXG4udHJlZS1tdWx0aS1zZWxlY3Qtc2VjdGlvbiA+IGxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4udHJlZS1tdWx0aS1zZWxlY3Qtc2VjdGlvbiBpbnB1dFt0eXBlPXJhbmdlXSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgb3V0bGluZTogbm9uZTtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4udHJlZS1tdWx0aS1zZWxlY3Qtc2VjdGlvbiBpbnB1dFt0eXBlPW51bWJlcl0ge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4udHJlZS1tdWx0aS1zZWxlY3Qtc2VjdGlvbiBzZWxlY3Qge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi50cmVlLW11bHRpLXNlbGVjdC1zZWN0aW9uIHNlbGVjdCBvcHRpb24ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi50cmVlLW11bHRpLXNlbGVjdC12YXJpYW5jZSB7XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLXNlY29uZGFyeS1jb2xvdXItcmdiKSwgMC4wOCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEodmFyKC0tc2Vjb25kYXJ5LWNvbG91ci1yZ2IpLCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbn1cblxuLnRyZWUtdmFyaWFuY2UtdG9nZ2xlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi50cmVlLXZhcmlhbmNlLXRvZ2dsZSBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIG1hcmdpbi1yaWdodDogNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi50cmVlLXZhcmlhbmNlLXRvZ2dsZSBzcGFuIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuI3RyZWUtdmFyaWFuY2UtY29udHJvbHMge1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbn1cblxuLnRyZWUtdmFyaWFuY2Utc2xpZGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogNnB4O1xufVxuXG4udHJlZS12YXJpYW5jZS1zbGlkZXI6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi50cmVlLXZhcmlhbmNlLXNsaWRlciBsYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC44O1xufVxuXG4udHJlZS12YXJpYW5jZS1zbGlkZXIgaW5wdXRbdHlwZT1yYW5nZV0ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi50cmVlLW11bHRpLXNlbGVjdC1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA4cHg7XG59XG5cbi50cmVlLW11bHRpLXNlbGVjdC1hY3Rpb25zIGJ1dHRvbiB7XG4gIGZsZXg6IDE7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyKTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXdlaWdodDogNTAwO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7XG59XG5cbi50cmVlLWluc3RydWN0aW9uLWJveCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdGlmaWNhdGlvbi1pbmZvKTtcbiAgYm9yZGVyOiB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1pbmZvLXRleHQpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBhZGRpbmc6IDE2cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogOHB4O1xufVxuXG4udHJlZS1iYWNrLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDEzcHg7XG4gIHBhZGRpbmc6IDRweCAwO1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbn1cblxuLnRyZWUtYmFjay1idXR0b246aG92ZXIge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG59XG5cbi5iYXNlbGluZS13aWRnZXQtbWVudS1idG4uc21hcnQge1xuICBib3JkZXItY29sb3I6ICNiMDg4Zjk7XG4gIGNvbG9yOiAjN2M1Y2JmO1xufVxuXG4uYmFzZWxpbmUtd2lkZ2V0LW1lbnUtYnRuLnNtYXJ0OmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjOTk2NmZmO1xuICBjb2xvcjogIzVhM2Q5ZTtcbn1cblxuLnNuYXAtZ3VpZGUtbWFya2VyLWFsaWduIC5zbmFwLWd1aWRlLWxhYmVsLWNvbnRlbnQge1xuICBib3JkZXI6IDJweCBzb2xpZCAjZTgzOWYwO1xuICAvKiBNYWdlbnRhIGZvciBtYXJrZXIgYWxpZ25tZW50IHNuYXBzICovXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjMyLCA1NywgMjQwLCAwLjE1KSAwJSwgcmdiYSgyMCwgMjAsIDIwLCAwLjgxKSAxMDAlKTtcbn1cblxuLyogRG9ja2VkIHRvIHRoZSBib3R0b20gb2YgdGhlIERlc2lnbiBBc3Npc3RhbnQ7IHNjYWxlUnVsZXIuanMgZmxpcHMgZGlzcGxheSBpbiBvcnRobyAqL1xuLnNjYWxlLXJ1bGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC10eXBlKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgcGFkZGluZzogOHB4IDEycHg7XG59XG5cbi5ydWxlci1iYXIge1xuICB3aWR0aDogMTUwcHg7XG4gIGhlaWdodDogM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDFweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ucnVsZXItYmFyOjpiZWZvcmUsXG4ucnVsZXItYmFyOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDJweDtcbiAgaGVpZ2h0OiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuLnJ1bGVyLWJhcjo6YmVmb3JlIHtcbiAgbGVmdDogMDtcbn1cblxuLnJ1bGVyLWJhcjo6YWZ0ZXIge1xuICByaWdodDogMDtcbn1cblxuLnJ1bGVyLWxhYmVsIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ucnVsZXItbGFiZWwgLmZlZXQge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBtYXJnaW4tbGVmdDogNnB4O1xufVxuXG4vKiBUcmVlIEJ1dHRvbiBIb3ZlciBGbHlvdXQgKi9cbi50cmVlLWJ1dHRvbi13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4udHJlZS1jYXJldCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgb3BhY2l0eTogMC42O1xuICBtYXJnaW4tbGVmdDogMnB4O1xufVxuXG4udHJlZS1ob3Zlci1mbHlvdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgbWFyZ2luLXRvcDogNHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDMycHggdmFyKC0tYm94c2hhZG93KTtcbiAgbWluLXdpZHRoOiAxNzBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdHlwZSk7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2UsIHZpc2liaWxpdHkgMC4xNXMgZWFzZSwgdHJhbnNmb3JtIDAuMTVzIGVhc2U7XG4gIHotaW5kZXg6IDEwMDAwMDtcbn1cblxuLnRyZWUtYnV0dG9uLXdyYXBwZXI6aG92ZXIgLnRyZWUtaG92ZXItZmx5b3V0IHtcbiAgb3BhY2l0eTogMTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4udHJlZS1ob3Zlci1mbHlvdXQtaXRlbSB7XG4gIHBhZGRpbmc6IDlweCAxNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gIGZvbnQtc2l6ZTogMTNweDtcbn1cblxuLnRyZWUtaG92ZXItZmx5b3V0LWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24taG92ZXIpO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyLXRleHQpO1xufVxuXG4udHJlZS1ob3Zlci1mbHlvdXQtaXRlbS5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cik7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIHBhZGRpbmctbGVmdDogMTFweDtcbn1cblxuLnRyZWUtaG92ZXItZmx5b3V0LWl0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xufVxuXG4udHJlZS1ob3Zlci1mbHlvdXQtaWNvbiB7XG4gIHdpZHRoOiAyMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgb3BhY2l0eTogMC45O1xufVxuXG4udHJlZS1ob3Zlci1mbHlvdXQtbGFiZWwge1xuICBmbGV4OiAxO1xufVxuXG4udHJlZS1ob3Zlci1mbHlvdXQtZGl2aWRlciB7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIG1hcmdpbjogNHB4IDA7XG59XG5cbi8qIE9wdGlvbnMgcGFuZWwgc3R5bGVzICovXG4ub3B0aW9ucy10b2dnbGUtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAycHggMDtcbn1cblxuLm9wdGlvbnMtdG9nZ2xlLWxhYmVsIHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5vcHRpb25zLXByZXNldC1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDZweDtcbn1cblxuLm9wdGlvbnMtcHJlc2V0LWJ0biB7XG4gIGZsZXg6IDE7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cyk7XG4gIHBhZGRpbmc6IDVweCA4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4ub3B0aW9ucy1wcmVzZXQtYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWhvdmVyKTtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlci10ZXh0KTtcbn1cblxuLm9wdGlvbnMtcHJlc2V0LWJ0bi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKHZhcigtLXNlY29uZGFyeS1jb2xvdXItcmdiKSwgMC4xOCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi8qIOKUgOKUgCBTb2xhciBNZXRyaWNzIEN1cnNvciBUb29sdGlwIOKUgOKUgCAqL1xuLnNvbGFyLW1ldHJpY3MtdG9vbHRpcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMTAwMjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44OCk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMS43O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIG1pbi13aWR0aDogMjQwcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5zbXQtaGVhZGVyIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xufVxuXG4uc210LXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAyMHB4O1xufVxuXG4uc210LWxhYmVsIHtcbiAgY29sb3I6ICM5OTk7XG59XG5cbi5zbXQtdmFsdWUge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uc210LWRpdmlkZXIge1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgbWFyZ2luOiA1cHggMDtcbn1cblxuLnNtdC1ncmFkZS1leGNlbGxlbnQge1xuICBjb2xvcjogIzRhZGU4MDtcbn1cblxuLnNtdC1ncmFkZS1nb29kIHtcbiAgY29sb3I6ICNhM2U2MzU7XG59XG5cbi5zbXQtZ3JhZGUtZmFpciB7XG4gIGNvbG9yOiAjZmJiZjI0O1xufVxuXG4uc210LWdyYWRlLXBvb3Ige1xuICBjb2xvcjogI2Y4NzE3MTtcbn1cblxuLnNtdC1zb3VyY2Uge1xuICBmb250LXNpemU6IDEwcHg7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xufVxuXG4uc210LWRvdWdobnV0cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICBnYXA6IDZweDtcbiAgbWFyZ2luOiA2cHggMCA0cHg7XG59XG5cbi5zbXQtZG91Z2hudXQtY29sIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuLnNtdC1kb3VnaG51dC1rZXkge1xuICBmb250LXNpemU6IDEwcHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiAjZWVlO1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbn1cblxuLnNtdC1kb3VnaG51dC1kZXNjIHtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGNvbG9yOiAjODg4O1xufVxuXG4vKiDilIDilIAgV2VhdGhlciBpbmZvIHJvdyBpbiBzaGFkb3cgcGFuZWwg4pSA4pSAICovXG4uYm90dG9tLWJhci13ZWF0aGVyLXJvdyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgbWFyZ2luOiA4cHggMCAxMnB4IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNnB4O1xufVxuXG4vKiBDb25kaXRpb24gYW5kIHN0YXRzIHN0YWNrIGluIGZpeGVkIHJvd3Mg4oCUIGEgc2lkZS1ieS1zaWRlIGxheW91dFxuICAgcmUtd3JhcHMgYXMgbGFiZWwgbGVuZ3RocyBjaGFuZ2UgcGVyIGRheSwgam9sdGluZyB0aGUgcGFuZSBoZWlnaHQuICovXG4ud2VhdGhlci1pbmZvLWNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA2cHg7XG59XG5cbi53ZWF0aGVyLWljb24tc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi53ZWF0aGVyLWljb24tc2VjdGlvbiBpIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICB3aWR0aDogMjRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ud2VhdGhlci1zdGF0cy1zZWN0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxMnB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi53ZWF0aGVyLXN0YXQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgcGFkZGluZzogM3B4IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4ud2VhdGhlci1zdGF0IGkge1xuICBmb250LXNpemU6IDEwcHg7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLndlYXRoZXItaGludCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgY29sb3I6ICM4ODg7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMS4zO1xuICAvKiBSZXNlcnZlIHR3byBsaW5lcyBzbyBoaW50IGxlbmd0aCBjYW4ndCBjaGFuZ2UgdGhlIHBhbmUgaGVpZ2h0ICovXG4gIG1pbi1oZWlnaHQ6IDI2cHg7XG59XG5cbi8qIFdlYXRoZXIgc3VtbWFyeSBncmlkIChpcnJhZGlhbmNlIHBhbmVsKSAqL1xuLndlYXRoZXItZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgZ2FwOiA4cHggMTZweDtcbn1cblxuLndlYXRoZXItc2VjdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDRweDtcbn1cblxuLndlYXRoZXItc2VjdGlvbi10aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICBtYXJnaW4tYm90dG9tOiA0cHg7XG59XG5cbi53ZWF0aGVyLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMnB4IDA7XG59XG5cbi53ZWF0aGVyLXJvdyBzcGFuOmxhc3QtY2hpbGQge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4vKiDilIDilIAgQ29uZmlnIG1vZGFsIHRhYnMvY2FyZHMgKFNMRCArIEJhdHRlcnkgZGlhbG9ncykg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uY2ZnLXRhYnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDRweDtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4uY2ZnLXRhYiB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiA4cHggMTRweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDAuNjU7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4uY2ZnLXRhYi5hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmNmZy1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyODBweCwgMWZyKSk7XG4gIGdhcDogMTRweDtcbiAgYWxpZ24taXRlbXM6IHN0YXJ0O1xufVxuXG4uY2ZnLWNhcmQge1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgcGFkZGluZzogMTRweCAxNnB4O1xufVxuXG4uY2ZnLWNhcmQgPiBoMyB7XG4gIG1hcmdpbjogMCAwIDJweDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uY2ZnLWNhcmQtaGludCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDExcHg7XG4gIG9wYWNpdHk6IDAuNjtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuLmNmZy1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMTJweDtcbiAgbWFyZ2luOiAxMHB4IDA7XG59XG5cbi5jZmctcm93LXRleHQge1xuICBmbGV4OiAxO1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5jZmctcm93LXRleHQgLmhlbHAtdGV4dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uYmF0LXNwZWMtY2FyZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnI7XG4gIGdhcDogNHB4IDE0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgbWFyZ2luOiAxMHB4IDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmJhdC1zcGVjLWNhcmQgLnNwZWMtbGFiZWwge1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbi5iYXQtc3BlYy1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDE0cHg7XG59XG5cbi5iYXQtc3BlYy1yb3cgLmJhdC1zcGVjLWNhcmQge1xuICBmbGV4OiAxIDEgNTAlO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5iYXQtc3BlYy1yb3cgLmZvcm0tZ3JvdXAge1xuICBmbGV4OiAxIDEgNTAlO1xuICBtaW4td2lkdGg6IDA7XG4gIG1hcmdpbjogMTBweCAwO1xufVxuXG4uY2ZnLXN1bW1hcnkge1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBtYXJnaW46IDE0cHggMCAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDc0LCAxNTgsIDI1NSwgMC4wOCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNzQsIDE1OCwgMjU1LCAwLjMpO1xufVxuXG4uY2ZnLXN1bW1hcnkud2FybiB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjMwLCAxNjcsIDAsIDAuMSk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyMzAsIDE2NywgMCwgMC41KTtcbn1cblxuLyogQWR2YW5jZWQgZGlzY2xvc3VyZSBpbnNpZGUgYSBjYXJkIOKAlCB0dWNrcyBzY2FyeSBjb2RlLWRldGFpbCBmaWVsZHMgYXdheSAqL1xuLmNmZy1hZHZhbmNlZCB7XG4gIG1hcmdpbi10b3A6IDEycHg7XG59XG5cbi5jZmctYWR2YW5jZWQgPiBzdW1tYXJ5IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDEycHg7XG4gIG9wYWNpdHk6IDAuNjU7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLmNmZy1hZHZhbmNlZCA+IHN1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uY2ZnLWFkdmFuY2VkID4gc3VtbWFyeTo6YmVmb3JlIHtcbiAgY29udGVudDogXCLilrhcIjtcbiAgZm9udC1zaXplOiAxMHB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZTtcbn1cblxuLmNmZy1hZHZhbmNlZFtvcGVuXSA+IHN1bW1hcnkge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4uY2ZnLWFkdmFuY2VkW29wZW5dID4gc3VtbWFyeTo6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xufVxuXG4uY2ZnLWFkdmFuY2VkID4gc3VtbWFyeTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8qIEEgd2hvbGUgY2ZnLWNhcmQgbWFkZSBjb2xsYXBzaWJsZTogdGhlIHN1bW1hcnkgc3RhbmRzIGluIGZvciB0aGUgaDMgKi9cbmRldGFpbHMuY2ZnLWNhcmQgPiBzdW1tYXJ5IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuXG5kZXRhaWxzLmNmZy1jYXJkID4gc3VtbWFyeTo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmRldGFpbHMuY2ZnLWNhcmQgPiBzdW1tYXJ5OjpiZWZvcmUge1xuICBjb250ZW50OiBcIuKWuFwiO1xuICBmb250LXNpemU6IDExcHg7XG4gIG9wYWNpdHk6IDAuNjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7XG59XG5cbmRldGFpbHMuY2ZnLWNhcmRbb3Blbl0gPiBzdW1tYXJ5OjpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG59XG5cbi8qIEJhdHRlcnkgYmFuayByb3dzIGluIHRoZSBCYXR0ZXJ5IFN0b3JhZ2UgZGlhbG9nICovXG4uYmF0LWJhbmstcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA4cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLmJhdC1iYW5rLXJvdyBzZWxlY3Qge1xuICBmbGV4OiAyO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5iYXQtYmFuay1yb3cgaW5wdXRbdHlwZT1udW1iZXJdIHtcbiAgZmxleDogMCAwIDY0cHg7XG59XG5cbi5iYXQtYmFuay1yb3cgLmJ1dHRvbiB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBwYWRkaW5nOiA0cHggMTBweDtcbn1cblxuLmJhdC1hbmFseXNpcy1wYW5lbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBhZGRpbmc6IDEycHg7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAzKTtcbn1cblxuLmJhdC1hbmFseXNpcy1oZXJvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDEycHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5iYXQtYW5hbHlzaXMtaGVybyBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG9wYWNpdHk6IDAuNjU7XG59XG5cbi5iYXQtYW5hbHlzaXMtaGVybyBzdHJvbmcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4uYmF0LWFuYWx5c2lzLXNvdXJjZSB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuMzUpO1xufVxuXG4uYmF0LWFuYWx5c2lzLXNvdXJjZS5ob3VybHkge1xuICBjb2xvcjogIzBmN2EzYjtcbiAgYmFja2dyb3VuZDogcmdiYSg0NywgMTY0LCA5MiwgMC4xMik7XG4gIGJvcmRlci1jb2xvcjogcmdiYSg0NywgMTY0LCA5MiwgMC4zKTtcbn1cblxuLmJhdC1hbmFseXNpcy1zb3VyY2UubW9udGhseSB7XG4gIGNvbG9yOiAjOWE2YTAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIzMCwgMTY3LCAwLCAwLjEyKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDIzMCwgMTY3LCAwLCAwLjM1KTtcbn1cblxuLmJhdC1hbmFseXNpcy1zdGF0cyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKTtcbiAgZ2FwOiA4cHg7XG59XG5cbi5iYXQtYW5hbHlzaXMtc3RhdCB7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZDogcmdiYSg3NCwgMTU4LCAyNTUsIDAuMDgpO1xuICBwYWRkaW5nOiA4cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmJhdC1hbmFseXNpcy1zdGF0IHN0cm9uZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDE1cHg7XG59XG5cbi5iYXQtYW5hbHlzaXMtc3RhdCBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG9wYWNpdHk6IDAuNjU7XG4gIG1hcmdpbi10b3A6IDJweDtcbn1cblxuLmJhdC1yZWFkaW5lc3MtY2hpcHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogNnB4O1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uYmF0LXJlYWRpbmVzcy1jaGlwIHtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgYmFja2dyb3VuZDogcmdiYSgxMjgsIDEyOCwgMTI4LCAwLjEyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjgsIDEyOCwgMTI4LCAwLjI1KTtcbn1cblxuLmJhdC1yZWFkaW5lc3MtY2hpcC5yZWFkeSB7XG4gIGNvbG9yOiAjMGY3YTNiO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDQ3LCAxNjQsIDkyLCAwLjEyKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDQ3LCAxNjQsIDkyLCAwLjMpO1xufVxuXG4uYmF0LXJlYWRpbmVzcy1jaGlwLndhcm4ge1xuICBjb2xvcjogIzlhNmEwMDtcbiAgYmFja2dyb3VuZDogcmdiYSgyMzAsIDE2NywgMCwgMC4xMik7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyMzAsIDE2NywgMCwgMC4zNSk7XG59XG5cbi5iYXQtYW5hbHlzaXMtYmFja3VwIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpO1xuICBnYXA6IDEwcHg7XG4gIG1hcmdpbi10b3A6IDEycHg7XG59XG5cbi5iYXQtYW5hbHlzaXMtYmFja3VwIGRpdiB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLmJhdC1hbmFseXNpcy1iYWNrdXAgc3BhbiwgLmJhdC1hbmFseXNpcy1iYWNrdXAgc21hbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3BhY2l0eTogMC42NTtcbn1cblxuLmJhdC1hbmFseXNpcy1iYWNrdXAgc3Ryb25nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbWFyZ2luOiAycHggMDtcbn1cblxuLmJhdC12YWx1ZS1wYW5lbCB7XG4gIG1hcmdpbi10b3A6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNDcsIDE2NCwgOTIsIDAuMjgpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoNDcsIDE2NCwgOTIsIDAuMDgpO1xufVxuXG4uYmF0LXZhbHVlLXRpdGxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLmJhdC12YWx1ZS10aXRsZSBzcGFuIHtcbiAgb3BhY2l0eTogMC43O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uYmF0LXZhbHVlLXRpdGxlIHN0cm9uZyB7XG4gIGZvbnQtc2l6ZTogMTdweDtcbn1cblxuLmJhdC12YWx1ZS1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpO1xuICBnYXA6IDhweDtcbn1cblxuLmJhdC12YWx1ZS1ncmlkIGRpdiB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDQ3LCAxNjQsIDkyLCAwLjIpO1xuICBwYWRkaW5nLXRvcDogN3B4O1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5iYXQtdmFsdWUtZ3JpZCBzdHJvbmcsIC5iYXQtdmFsdWUtZ3JpZCBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5iYXQtdmFsdWUtZ3JpZCBzcGFuIHtcbiAgb3BhY2l0eTogMC42NTtcbiAgbWFyZ2luLXRvcDogMnB4O1xufVxuXG4uYmF0LWJhbmstY2FyZHMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE4MHB4LCAxZnIpKTtcbiAgZ2FwOiA4cHg7XG4gIG1hcmdpbi10b3A6IDEycHg7XG59XG5cbi5iYXQtYmFuay1jYXJkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjgsIDEyOCwgMTI4LCAwLjI1KTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBwYWRkaW5nOiA4cHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTI4LCAxMjgsIDEyOCwgMC4wNik7XG59XG5cbi5iYXQtYmFuay1jYXJkIHN0cm9uZywgLmJhdC1iYW5rLWNhcmQgc3BhbiwgLmJhdC1iYW5rLWNhcmQgc21hbGwge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmJhdC1iYW5rLWNhcmQgc3BhbiwgLmJhdC1iYW5rLWNhcmQgc21hbGwge1xuICBvcGFjaXR5OiAwLjY1O1xuICBtYXJnaW4tdG9wOiAycHg7XG59XG5cbi5iYXQtc2Vhc29uLXRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIG1hcmdpbi10b3A6IDEycHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmJhdC1zZWFzb24tdGFibGUgdGgsIC5iYXQtc2Vhc29uLXRhYmxlIHRkIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBwYWRkaW5nOiA2cHggNHB4O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmJhdC1zZWFzb24tdGFibGUgdGg6Zmlyc3QtY2hpbGQsIC5iYXQtc2Vhc29uLXRhYmxlIHRkOmZpcnN0LWNoaWxkIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmJhdC1hbmFseXNpcy1ub3RlIHtcbiAgbWFyZ2luOiAxMHB4IDAgMDtcbiAgb3BhY2l0eTogMC43O1xufVxuXG4uYmF0LWFuYWx5c2lzLXdhcm5pbmdzIHtcbiAgbWFyZ2luOiAxMHB4IDAgMDtcbiAgcGFkZGluZy1sZWZ0OiAxOHB4O1xuICBjb2xvcjogI2I1NzkwMDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gIC5iYXQtYW5hbHlzaXMtc3RhdHMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcbiAgfVxuICAuYmF0LWFuYWx5c2lzLWJhY2t1cCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cbiAgLmJhdC12YWx1ZS1ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gIH1cbiAgLmJhdC1hbmFseXNpcy1oZXJvIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG59XG4vKiDilIDilIAgRGVzaWduIEFzc2lzdGFudCBjb250cmFzdCB0dW5pbmcg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICBUaGUgYnJhbmQgLS1idXR0b24taG92ZXIgYW5kIHRoZSBmaXhlZCAtLXNlY29uZGFyeS1jb2xvdXIgdGludCByZW5kZXJcbiAgIGFzIGxpZ2h0IHBlYWNoL3Bpbmsgd2FzaGVzIG9uIHRoZSBkYXJrIGFzc2lzdGFudCBjYXJkLCBzbyB0aGUgbGlnaHRcbiAgIC0tdGV4dC1jb2xvdXIgb24gdG9wIHJlYWRzIGxvdy1jb250cmFzdCAod29yc3Qgb24gdGhlIHByb2R1Y3Rpb24gc3VtbWFyeVxuICAgYmFyIOKAlCBpdHMgOmhvdmVyIGJyaWdodG5lc3MgZmlsdGVyIG1hZGUgaXQgbGlnaHRlciBzdGlsbCDigJQgYW5kIHRoZVxuICAgYWN0aXZlIHN0ZXApLiBUaGVzZSBkYS0qIHN1cmZhY2VzIGFyZSBzdWJ0bGUgZWxldmF0aW9ucywgbm90IGJyYW5kXG4gICBidXR0b25zLCBzbyBwYWludCB0aGVtIHdpdGggYSBuZXV0cmFsIHRpbnQgZGVyaXZlZCBmcm9tIC0tdGV4dC1jb2xvdXI6XG4gICBpdCBhbHdheXMgc2l0cyBvbmUgc3RlcCBvZmYgdGhlIGNhcmQgYW5kIGtlZXBzIHRleHQgbGVnaWJsZSB1bmRlciBhbnlcbiAgIHRoZW1lLiBBcHBlbmRlZCBsYXN0IHNvIGl0IHdpbnMgb3ZlciB0aGUgYmFzZSAuZGEtKiBydWxlcy4gKi9cbi5kYS1yZXN1bHRzLXRvZ2dsZSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgNyUsIHRyYW5zcGFyZW50KTtcbn1cblxuLmRhLXJlc3VsdHMtdG9nZ2xlOmhvdmVyIHtcbiAgZmlsdGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIpIDEzJSwgdHJhbnNwYXJlbnQpO1xufVxuXG4uZGEtc3RlcC1oZWFkOmhvdmVyLFxuLmRhLWFjdGlvbjpob3Zlcixcbi5kYS1nbG9iYWwtYnRuOmhvdmVyLFxuLmRhLW1lbnUtaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgMTAlLCB0cmFuc3BhcmVudCk7XG59XG5cbi8qIEFjdGl2ZSBzdGVwOiBrZWVwIHRoZSBhY2NlbnQgbGVmdC1ib3JkZXIgYXMgdGhlIGN1ZSwgZHJvcCB0aGUgcGluayB3YXNoICovXG4uZGEtc3RlcC5hY3RpdmUgLmRhLXN0ZXAtaGVhZCB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgOSUsIHRyYW5zcGFyZW50KTtcbn1cblxuLyogRmFjZXQgcXVpY2stYWN0aW9ucyAoUm90YXRlIMK3IEF1dG8gwrcgQ2Fub3B5IMK3IERlbGV0ZSkg4oCUIG9uZSBmdWxsLXdpZHRoXG4gICByb3cgb2YgY29tcGFjdCwgdW5pZm9ybSBpY29uIHRpbGVzIGluc3RlYWQgb2YgbG91ZCBzb2xpZC1wZWFjaCBidXR0b25zICovXG4jcG9seWdvbi1jb250cm9scyAuZmFjZXQtYWN0aW9uLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogNnB4O1xuICBtYXJnaW46IDEycHg7XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzIC5mYWNldC1hY3Rpb24tYnRuIHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiA1cHg7XG4gIHBhZGRpbmc6IDlweCA0cHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgNiUsIHRyYW5zcGFyZW50KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDEwLjVweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlLCBib3JkZXItY29sb3IgMC4xNXMgZWFzZSwgY29sb3IgMC4xNXMgZWFzZTtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLmZhY2V0LWFjdGlvbi1idG4gaSB7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgb3BhY2l0eTogMC45O1xufVxuXG4jcG9seWdvbi1jb250cm9scyAuZmFjZXQtYWN0aW9uLWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgMTIlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzIC5mYWNldC1hY3Rpb24tYnRuLS1kYW5nZXI6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1kYW5nZXIpO1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlcik7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyKSAxMiUsIHRyYW5zcGFyZW50KTtcbn1cblxuLyogUGxhY2UgcGFuZWxzL29ic3RydWN0aW9ucyB0b2dnbGVzIGludG8gYW4gYWN0aXZlIFwicGxhY2luZ1wiIHN0YXRlICh0aGUgYnVuZGxlXG4gICBhZGRzIC5zb2xhci1wYW5lbC1hY3RpdmUgLyAub2JzdHJ1Y3Rpb24tYWN0aXZlIGFuZCBzd2FwcyB0aGUgbGFiZWwgdG9cbiAgIFwiRXhpdCAoZXNjKVwiKSDigJQgc2hvdyBpdCBhcyBhIGZpbGxlZCBhY2NlbnQgdGlsZSB3aXRoIHByb3BlciBjb250cmFzdCB0ZXh0XG4gICBpbnN0ZWFkIG9mIHRoZSBnbG9iYWwgcGVhY2gtb24td2hpdGUgdHJlYXRtZW50ICovXG4jcG9seWdvbi1jb250cm9scyAuZmFjZXQtYWN0aW9uLWJ0bi5zb2xhci1wYW5lbC1hY3RpdmUsXG4jcG9seWdvbi1jb250cm9scyAuZmFjZXQtYWN0aW9uLWJ0bi5vYnN0cnVjdGlvbi1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS10ZXh0KTtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLmZhY2V0LWFjdGlvbi1idG4uc29sYXItcGFuZWwtYWN0aXZlOmhvdmVyLFxuI3BvbHlnb24tY29udHJvbHMgLmZhY2V0LWFjdGlvbi1idG4ub2JzdHJ1Y3Rpb24tYWN0aXZlOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygwLjk2KTtcbn1cblxuLyogVGhlIGZhY2V0LWRpbWVuc2lvbnMgYmxvY2sgaXMgaGlkZGVuIG9uIHRoZSBQYW5lbHMvT2JzdHJ1Y3Rpb25zIHRhYnMsIHdoaWNoXG4gICBsZWZ0IGl0cyB3cmFwcGVyICsgc3RhY2tlZCBtYXJnaW5zIGFzIGEgd2lkZSBlbXB0eSBnYXAgYWJvdmUgdGhlIGFjdGlvbiByb3cuXG4gICBDb2xsYXBzZSB0aGUgZW1wdHkgd3JhcHBlciBhbmQgdGlnaHRlbiB0aGUgYWN0aW9uIHJvdydzIHRvcCBtYXJnaW4gdGhlcmUuICovXG4jcG9seWdvbi1jb250cm9scyA+IC5zZWN0aW9uLWNvbnRlbnQ6aGFzKD4gI3BvbHlnb24tZGltZW5zaW9ucykge1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzICNwYW5lbC1tb2RlLXNlY3Rpb24gLmZhY2V0LWFjdGlvbi1yb3csXG4jcG9seWdvbi1jb250cm9scyAjb2JzdHJ1Y3Rpb24tbW9kZS1zZWN0aW9uIC5mYWNldC1hY3Rpb24tcm93IHtcbiAgbWFyZ2luLXRvcDogOHB4O1xufVxuXG4vKiBQYW5lbHMgdGFiIOKAlCBwcm9kdWN0aW9uIHN1bW1hcnkgY2FyZCAobWF0Y2hlcyB0aGUgU3VyZmFjZSB0YWIncyBjYXJkIHNvXG4gICB0aGUgdGFicyByZWFkIGFzIG9uZSBmYW1pbHk7IHJlcGxhY2VzIHRoZSBjcmFtcGVkIGJhZGdlIGZsZXgtd3JhcCkgKi9cbiNwb2x5Z29uLWNvbnRyb2xzIC5wcm9kLWNhcmQge1xuICBtYXJnaW46IDA7XG4gIG1hcmdpbi10b3A6IDE0cHg7XG4gIHBhZGRpbmc6IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIpIDUlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4jcG9seWdvbi1jb250cm9scyAucHJvZC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzIC5wcm9kLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC42cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzIC5wcm9kLXNldHRpbmdzLWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDI2cHg7XG4gIGhlaWdodDogMjZweDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIGJvcmRlci1jb2xvciAwLjE1cyBlYXNlO1xufVxuXG4jcG9seWdvbi1jb250cm9scyAucHJvZC1zZXR0aW5ncy1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIpIDEwJSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4jcG9seWdvbi1jb250cm9scyAucHJvZC1zdGF0cyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgZ2FwOiA4cHg7XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzIC5wcm9kLXN0YXQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDJweDtcbiAgcGFkZGluZzogOHB4IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIpIDklLCB0cmFuc3BhcmVudCk7XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzIC5wcm9kLXN0YXQtbGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDVweDtcbiAgZm9udC1zaXplOiAxMC41cHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLnByb2Qtc3RhdC12YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLnByb2QtZHVhbC10aWx0IHtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLnByb2QtbWV0YSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiA2cHggMTZweDtcbiAgbWFyZ2luLXRvcDogMTBweDtcbiAgZm9udC1zaXplOiAxMS41cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzIC5wcm9kLW1ldGEtaXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDVweDtcbn1cblxuI3BvbHlnb24tY29udHJvbHMgLnByb2QtbWV0YS1pdGVtID4gaSB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgb3BhY2l0eTogMC44NTtcbn1cblxuLyogQ29sbGFwc2libGUgYW5hbHl0aWNzICovXG4jcG9seWdvbi1jb250cm9scyAucHJvZC1hbmFseXRpY3Mge1xuICBtYXJnaW4tdG9wOiAxMnB4O1xuICBwYWRkaW5nLXRvcDogMTBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4jcG9seWdvbi1jb250cm9scyAucHJvZC1hbmFseXRpY3MtdG9nZ2xlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4jcG9seWdvbi1jb250cm9scyAucHJvZC1hbmFseXRpY3MtY2hldiB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzIC5wcm9kLWFuYWx5dGljcy10b2dnbGVbYXJpYS1leHBhbmRlZD10cnVlXSAucHJvZC1hbmFseXRpY3MtY2hldiB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG5cbiNwb2x5Z29uLWNvbnRyb2xzIC5wcm9kLWRpdmlkZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIG1hcmdpbjogOHB4IDA7XG59XG5cbi8qIOKUgOKUgCBQcmltYXJ5LXN1cmZhY2UgdGV4dCByZXR1bmluZyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgIFRoZXNlIGNvbnRhaW5lcnMgc2l0IG9uIHZhcigtLXByaW1hcnktY29sb3VyKSwgdGhlIG5hdmlnYXRpb24gc3VyZmFjZS5cbiAgIC0tdGV4dC1jb2xvdXIgYW5kIC0tbXV0ZWQtdGV4dCBhcmUgdHVuZWQgYWdhaW5zdCB0aGUgUEFHRSBhbmQgQ0FSRFxuICAgYmFja2dyb3VuZHMsIHNvIG9uIHRoZSBuYXYgc3VyZmFjZSB0aGV5IHJlYWQgZGltIG9yIHVucmVhZGFibGUgd2hlbmV2ZXJcbiAgIGEgY29tcGFueSdzIG5hdiBkaWZmZXJzIGZyb20gaXRzIHBhZ2UgcGFsZXR0ZS4gUmVtYXBwaW5nIHRoZSB2YXJpYWJsZXNcbiAgIGhlcmUgcmV0dW5lcyBldmVyeSBkZXNjZW5kYW50OiBwcmltYXJ5IHRleHQgYmVjb21lcyBuYXZfdGV4dCAodGhlIHBhaXJcbiAgIHRoZSBUaGVtZSBtb2RlbCB2YWxpZGF0ZXMgZm9yIGNvbnRyYXN0KSBhbmQgbXV0ZWQgdGV4dCBiZWNvbWVzIGEgZGltbWVkXG4gICBuYXZfdGV4dCBkZXJpdmVkIGZyb20gdGhlIHNhbWUgYmFzZSwgc28gaXQgdHJhY2tzIGV2ZXJ5IHRoZW1lLiBDYXJkXG4gICBzdXJmYWNlcyBpbnNpZGUgdGhlIERlc2lnbiBBc3Npc3RhbnQgKGZseW91dHMsIHBhbmVscyBvblxuICAgdmFyKC0tY2FyZC1jb2xvdXIpKSBpbnRlbnRpb25hbGx5IGtlZXAgdGhlIHBhZ2UtdHVuZWQgdmFyaWFibGVzLiAqL1xuI3Rvb2xiYXIsXG4jY2FudmFzLWNvbnRhaW5lciAub2ZmY2FudmFzLFxuLm9mZmNhbnZhcy1ib3R0b20sXG4jaW1hZ2VyeS1zZWxlY3Rpb24tbW9kYWwgLmZvcm0tc2VsZWN0IG9wdGlvbixcbiNzbGQtdG9vbGJhcixcbiNzbGQtc3RhdHVzLWJhcixcbiNzbGQtc2lkZWJhcixcbiNzbGQtcHJvcHMtc2lkZWJhcixcbi5zbGQtc2lkZWJhci10b2dnbGUtYnRuLFxuLmRyYXctdG9vbHMtY29udGV4dC1tZW51LWhlYWRlcixcbiNwbGFuc2V0LWVkaXRvci10b29sYmFyLFxuI3BsYW5zZXQtcGFnZS1zaWRlYmFyLFxuLmJvdHRvbS1iYXItcGxheS1idG4sXG4ubm9ydGgtYnRuLFxuLnN0cmluZ2luZy1jaGlwLmFjdGl2ZSxcbi5oZWlnaHQtbW9kZS10b2dnbGUsXG4jdHJlZS1tdWx0aXNlbGVjdC1wYW5lbCB7XG4gIC0tdGV4dC1jb2xvdXI6IHZhcigtLW5hdi10ZXh0KTtcbiAgLS1tdXRlZC10ZXh0OiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbmF2LXRleHQpIDY1JSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4vKiBDYXJkIHN1Yi1zdXJmYWNlcyBuZXN0ZWQgaW5zaWRlIHRoZSByZW1hcHBlZCBwcmltYXJ5IHBhbmVscyByZXR1cm4gdG8gdGhlXG4gICBwYWdlLXR1bmVkIHRleHQgY29sb3VycyAoYSBuby1vcCB3aGVyZXZlciB0aGUgcGFyZW50IHdhc24ndCByZW1hcHBlZCkuICovXG4jdHJlZS1jb250cm9scyAub2ZmY2FudmFzLWhlYWRlcixcbiNzbGQtc2hhcGUtcGlja2VyLFxuLnNsZC1zaWRlYmFyLXNlYXJjaCxcbi5zbGQtZHJhZy1pdGVtLFxuI3BsYW5zZXQtcHJvcHMtc2lkZWJhcixcbi5zdHJpbmdpbmctcGFuZWwsXG4uc3RyaW5naW5nLWNoaXAsXG4uc3RyaW5naW5nLWludi1wYW5lLFxuLnN0cmluZ2luZy1pbmZvLFxuLnN0cmluZ2luZy13YXJuaW5ncyxcbi5zdHJpbmdpbmctaW5zdHJ1Y3Rpb25zIGtiZCxcbi5zdHJpbmdpbmctc2VsZWN0b3Itcm93IHNlbGVjdCxcbi50cmVlLW11bHRpLXNlbGVjdC1zZWN0aW9uIGlucHV0LFxuLnRyZWUtbXVsdGktc2VsZWN0LXNlY3Rpb24gc2VsZWN0IHtcbiAgLS10ZXh0LWNvbG91cjogdmFyKC0tcGFnZS10ZXh0LWNvbG91cik7XG4gIC0tbXV0ZWQtdGV4dDogdmFyKC0tcGFnZS1tdXRlZC10ZXh0KTtcbn1cblxuLyogPT09PT0gV0FUVFNBUFAtT05MWSAobm90IGluIHBvd2VybGlseSDigJQgcmUtYWRkIGFmdGVyIGFueSB3aG9sZXNhbGUgY29weSkgPT09PT1cbiAgIFRoZSBnbG9iYWwgYC5kb25lOjphZnRlciB7IGNvbnRlbnQ6IFwiRG9uZSFcIiB9YCAvIGAubG9hZGluZzo6YWZ0ZXJgXG4gICBsb2FkaW5nLWluZGljYXRvciB1dGlsaXR5IGluIGN1c3RvbS5zY3NzIGxlYWtzIGludG8gdGhlIGFzc2lzdGFudCBiZWNhdXNlXG4gICBjb21wbGV0ZWQgc3RlcHMgdXNlIGAuZG9uZWAsIGFuZCB0aGUgdW5wb3NpdGlvbmVkIHN0ZXAgbGV0cyB0aGF0IGFic29sdXRlXG4gICBwc2V1ZG8gZXNjYXBlIHRvIHRoZSBwYW5lbCdzIGJvdHRvbS1yaWdodCBjb3JuZXIuIFN1cHByZXNzIGl0IOKAlCB0aGVcbiAgIHN0ZXBwZXIgc2hvd3MgaXRzIG93biBncmVlbiB0aWNrLiAqL1xuI2Rlc2lnbi1hc3Npc3RhbnQgLmRvbmU6OmFmdGVyLFxuI2Rlc2lnbi1hc3Npc3RhbnQgLmxvYWRpbmc6OmFmdGVyIHtcbiAgY29udGVudDogbm9uZTtcbn1cblxuLyogUmVkZGl0LXN0eWxlIFRocmVhZGVkIENvbW1lbnRzICovXG4uY29tbWVudC10aHJlYWQge1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG5cbi5jb21tZW50LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMC43NXJlbSAwO1xufVxuXG4uY29tbWVudC1jb250ZW50IHtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLmNvbW1lbnQtbWV0YWRhdGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgZ2FwOiAwLjVyZW07XG59XG5cbi5jb21tZW50LWF1dGhvciB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiAjMWExYTFiO1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbn1cblxuLmNvbW1lbnQtdGltZSB7XG4gIGNvbG9yOiAjNzg3YzdlO1xufVxuXG4uY29tbWVudC1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjc1cmVtO1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG59XG5cbi5jb21tZW50LWFjdGlvbiB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6ICM4NzhhOGM7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMDtcbn1cblxuLmNvbW1lbnQtYWN0aW9uOmhvdmVyIHtcbiAgY29sb3I6ICMwMDc5ZDM7XG59XG5cbi5jb21tZW50LWFjdGlvbiBpIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xufVxuXG4vKiBOZXN0ZWQgY29tbWVudHMgKi9cbi5yZXBsaWVzIHtcbiAgbWFyZ2luLWxlZnQ6IDJyZW07XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgI2VkZWZmMTtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xufVxuXG4vKiBJbmRlbnRhdGlvbiBsZXZlbHMgZm9yIGRlZXAgbmVzdGluZyAqL1xuLnJlcGxpZXMgLnJlcGxpZXMge1xuICBtYXJnaW4tbGVmdDogMS41cmVtO1xufVxuXG4ucmVwbGllcyAucmVwbGllcyAucmVwbGllcyB7XG4gIG1hcmdpbi1sZWZ0OiAxcmVtO1xufVxuXG4ucmVwbGllcyAucmVwbGllcyAucmVwbGllcyAucmVwbGllcyB7XG4gIG1hcmdpbi1sZWZ0OiAwLjc1cmVtO1xufVxuXG4vKiBSZXBseSBmb3JtICovXG4ucmVwbHktZm9ybSB7XG4gIG1hcmdpbi10b3A6IDAuNzVyZW07XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogMnJlbTtcbn1cblxuLnJlcGx5LWZvcm0uYWN0aXZlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qIENvbW1lbnQgZm9ybSBhdCB0aGUgdG9wIGxldmVsICovXG4uY29tbWVudC1mb3JtLWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBwYWRkaW5nOiAxcmVtO1xufVxuXG4ucHJvZmlsZS1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNzVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG59XG5cbi5wcm9maWxlLXBpYyB7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi8qIENvbW1lbnQgYnViYmxlIHJlbW92ZWQgYXMgd2UncmUgdXNpbmcgYSBtb3JlIFJlZGRpdC1saWtlIGZsYXQgc3R5bGUgKi9cbi8qIFRocmVhZGVkIENvbW1lbnRzICovXG4ucmVwbGllcyB7XG4gIG1hcmdpbi1sZWZ0OiAycmVtO1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgI2UwZTBlMDtcbn1cblxuLnJlcGx5LWZvcm0ge1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5jb21tZW50LWNvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi8qIE1lbnRpb25zICovXG4uc3VnZ2VzdGlvbi1saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIG1heC1oZWlnaHQ6IDIwMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4uc3VnZ2VzdGlvbi1pdGVtIHtcbiAgcGFkZGluZzogOHB4IDEycHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnN1Z2dlc3Rpb24taXRlbTpob3Zlcixcbi5zdWdnZXN0aW9uLWl0ZW0uaGlnaGxpZ2h0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xufVxuXG5Aa2V5ZnJhbWVzIHNoaW1tZXIge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKSBza2V3WCgtMjBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMDAlKSBza2V3WCgtMjBkZWcpO1xuICB9XG59XG4vKiBTdW4gU2hpbW1lciBFZmZlY3QgZm9yIEhlcm8gU2VjdGlvbnMgKi9cbkBrZXlmcmFtZXMgc3VuU2hpbW1lciB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbiAgICBvcGFjaXR5OiAwLjg7XG4gIH1cbiAgOTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG4uc3VuLXNoaW1tZXItb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAtMTAwJTtcbiAgd2lkdGg6IDMwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIG9wYWNpdHk6IDA7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnN1bi1zaGltbWVyLW92ZXJsYXkge1xuICAgIGxlZnQ6IC01MCU7XG4gICAgd2lkdGg6IDIwMCU7XG4gIH1cbn1cblxuLnN1bi1zaGltbWVyLW92ZXJsYXkucHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMTBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMzUlLCByZ2JhKDI1NSwgMjIzLCAwLCAwLjE1KSA0NSUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSA1MCUsIHJnYmEoMjU1LCAyMjMsIDAsIDAuMTUpIDU1JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSA2NSUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJSk7XG4gIGFuaW1hdGlvbjogc3VuU2hpbW1lciAxMnMgaW5maW5pdGUgZWFzZS1pbi1vdXQgMnM7XG4gIG1peC1ibGVuZC1tb2RlOiBvdmVybGF5O1xufVxuXG4uc3VuLXNoaW1tZXItb3ZlcmxheS5zZWNvbmRhcnkge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTEwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDQwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSA2MCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJSk7XG4gIGFuaW1hdGlvbjogc3VuU2hpbW1lciAxMnMgaW5maW5pdGUgZWFzZS1pbi1vdXQgOHM7XG4gIG1peC1ibGVuZC1tb2RlOiBzb2Z0LWxpZ2h0O1xufVxuXG4ucmF0ZS1zY2hlZHVsZS1idWlsZGVyIHtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5yYXRlLXBhbGV0dGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDhweDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4ucmF0ZS1wYWxldHRlLWNhcmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBtaW4td2lkdGg6IDE2MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5yYXRlLXBhbGV0dGUtY2FyZDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xufVxuXG4ucmF0ZS1wYWxldHRlLWNhcmQuYWN0aXZlIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjIpO1xufVxuXG4ucmF0ZS1wYWxldHRlLWNvbG9yIHtcbiAgd2lkdGg6IDhweDtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5yYXRlLXBhbGV0dGUtZmllbGRzIHtcbiAgcGFkZGluZzogNnB4IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA0cHg7XG4gIGZsZXgtZ3JvdzogMTtcbn1cblxuLnJhdGUtcGFsZXR0ZS1uYW1lIHtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLnJhdGUtcGFsZXR0ZS1uYW1lOmZvY3VzIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4ucmF0ZS1wYWxldHRlLXJhdGVzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA4cHg7XG59XG5cbi5yYXRlLXBhbGV0dGUtcmF0ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnB4O1xufVxuXG4ucmF0ZS1wYWxldHRlLXJhdGUgLnJhdGUtbGFiZWwge1xuICBmb250LXNpemU6IDlweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgb3BhY2l0eTogMC41O1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5yYXRlLXBhbGV0dGUtcmF0ZSAucmF0ZS1kb2xsYXIge1xuICBmb250LXNpemU6IDEwcHg7XG4gIG9wYWNpdHk6IDAuNTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLnJhdGUtcGFsZXR0ZS1pbnB1dCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgd2lkdGg6IDU1cHg7XG4gIHBhZGRpbmc6IDA7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5yYXRlLXBhbGV0dGUtaW5wdXQ6Zm9jdXMge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5yYXRlLXBhbGV0dGUtaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG4ucmF0ZS1wYWxldHRlLWlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IDA7XG59XG5cbi5yYXRlLXBhbGV0dGUtaW5wdXRbdHlwZT1udW1iZXJdIHtcbiAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG59XG5cbi5yYXRlLXBhbGV0dGUtcmVtb3ZlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDJweDtcbiAgcmlnaHQ6IDJweDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC4zO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDJweCA1cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cztcbn1cblxuLnJhdGUtcGFsZXR0ZS1yZW1vdmU6aG92ZXIge1xuICBvcGFjaXR5OiAwLjg7XG4gIGNvbG9yOiAjZWY0NDQ0O1xufVxuXG4ucmF0ZS1wYWxldHRlLWFkZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXI6IDJweCBkYXNoZWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgbWluLXdpZHRoOiA3MHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBnYXA6IDJweDtcbn1cblxuLnJhdGUtcGFsZXR0ZS1hZGQ6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5yYXRlLWdyaWQge1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuXG4ucmF0ZS1ncmlkLXJvdyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNzBweCByZXBlYXQoMjQsIDFmcik7XG59XG5cbi5yYXRlLWdyaWQtaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5yYXRlLWdyaWQtaGVhZGVyIC5yYXRlLWdyaWQtaG91ci1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDRweCAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjU7XG59XG5cbi5yYXRlLWdyaWQtbGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwIDhweDtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbi5yYXRlLWdyaWQtY2VsbCB7XG4gIGhlaWdodDogMjhweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci13aWR0aDogMCAxcHggMXB4IDA7XG4gIGN1cnNvcjogY3Jvc3NoYWlyO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXM7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbn1cblxuLnJhdGUtZ3JpZC1jZWxsOmhvdmVyIHtcbiAgb3BhY2l0eTogMC43NTtcbn1cblxuLnJhdGUtZ3JpZC1jZWxsLmZpbGxlZCB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbn1cblxuLnJhdGUtZXJhc2VyLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLmZsb2F0aW5nLWlucHV0LWdyb3VwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIHotaW5kZXg6IDE7XG59XG5cbi5mbG9hdGluZy1pbnB1dCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxcmVtIDFyZW0gMC43NXJlbSAxcmVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZFwiLCBzYW5zLXNlcmlmO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICBib3JkZXI6IDJweCBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgb3V0bGluZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cbi5mbG9hdGluZy1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uZmxvYXRpbmctaW5wdXQ6Zm9jdXMge1xuICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHZhcigtLWNhcmQtY29sb3VyKSwgdmFyKC0tY2FyZC1jb2xvdXIpKSBwYWRkaW5nLWJveCwgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzg5QjRGQSwgI0YzOEJBOCwgI0E2RTNBMSkgYm9yZGVyLWJveDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuLmZsb2F0aW5nLWlucHV0OnZhbGlkLCAuZmxvYXRpbmctaW5wdXQ6bm90KDpwbGFjZWhvbGRlci1zaG93bikge1xuICBwYWRkaW5nLXRvcDogMS40cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC42cmVtO1xufVxuXG4uZmxvYXRpbmctbGFiZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDFyZW07XG4gIHRvcDogMXJlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICB6LWluZGV4OiAzO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMCAwLjI1cmVtO1xufVxuLmZsb2F0aW5nLWlucHV0OmZvY3VzICsgLmZsb2F0aW5nLWxhYmVsLCAuZmxvYXRpbmctaW5wdXQ6dmFsaWQgKyAuZmxvYXRpbmctbGFiZWwsIC5mbG9hdGluZy1pbnB1dDpub3QoOnBsYWNlaG9sZGVyLXNob3duKSArIC5mbG9hdGluZy1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC41cmVtKSBzY2FsZSgwLjg1KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzg5QjRGQSwgI0YzOEJBOCk7XG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgcGFkZGluZzogMCAwLjVyZW07XG59XG5cbi5mbG9hdGluZy1pbnB1dC1zZWxlY3Qge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBmaWxsPSdub25lJyB2aWV3Qm94PScwIDAgMjAgMjAnJTNlJTNjcGF0aCBzdHJva2U9JyUyMzljYTNhZicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzEuNScgZD0nbTYgOCA0IDQgNC00Jy8lM2UlM2Mvc3ZnJTNlXCIpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAxcmVtIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAxLjI1cmVtIDEuMjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDNyZW07XG59XG4uZmxvYXRpbmctaW5wdXQtc2VsZWN0OmZvY3VzIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGZpbGw9J25vbmUnIHZpZXdCb3g9JzAgMCAyMCAyMCclM2UlM2NwYXRoIHN0cm9rZT0nJTIzODlCNEZBJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS13aWR0aD0nMicgZD0nbTYgOCA0IDQgNC00Jy8lM2UlM2Mvc3ZnJTNlXCIpO1xufVxuXG4uZmxvYXRpbmctaW5wdXQtbnVtYmVyOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLCAuZmxvYXRpbmctaW5wdXQtbnVtYmVyOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IDA7XG59XG4uZmxvYXRpbmctaW5wdXQtbnVtYmVyW3R5cGU9bnVtYmVyXSB7XG4gIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xufVxuXG4uZmxvYXRpbmctaW5wdXQtaGVscGVyIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWY7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBvcGFjaXR5OiAwO1xuICBtYXgtaGVpZ2h0OiAwO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuNXJlbSk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG4uZmxvYXRpbmctaW5wdXQtaGVscGVyLnNob3cge1xuICBvcGFjaXR5OiAxO1xuICBtYXgtaGVpZ2h0OiAxMDBweDtcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbn1cbi5mbG9hdGluZy1pbnB1dC1oZWxwZXIuZHluYW1pYyB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTM3LCAxODAsIDI1MCwgMC4wOCksIHJnYmEoMjQzLCAxMzksIDE2OCwgMC4wOCkpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNXB4KTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoNXB4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMzcsIDE4MCwgMjUwLCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG4gIG1hcmdpbi10b3A6IDAuNzVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG4gIG1heC1oZWlnaHQ6IDE1MHB4O1xuICBhbmltYXRpb246IHNsaWRlSW5VcCAwLjRzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG4uZmxvYXRpbmctaW5wdXQtaGVscGVyLmR5bmFtaWMgc3BhbiB7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4uZmxvYXRpbmctaW5wdXQtaGVscGVyLmR5bmFtaWMgc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1jb2xvciwgIzg5QjRGQSk7XG59XG4uZmxvYXRpbmctaW5wdXQtaGVscGVyLmR5bmFtaWMgaSB7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICBtaW4td2lkdGg6IDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5mbG9hdGluZy1pbnB1dC1oZWxwZXIuc3VjY2Vzcy5keW5hbWljIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgxNjYsIDIyNywgMTYxLCAwLjEpLCByZ2JhKDEzNywgMTgwLCAyNTAsIDAuMSkpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMTY2LCAyMjcsIDE2MSwgMC4zKTtcbn1cbi5mbG9hdGluZy1pbnB1dC1oZWxwZXIuc3VjY2Vzcy5keW5hbWljIHN0cm9uZyB7XG4gIGNvbG9yOiB2YXIoLS1zdWNjZXNzLWNvbG9yLCAjQTZFM0ExKTtcbn1cblxuLmZsb2F0aW5nLWlucHV0LXdpdGgtaWNvbiAuZmxvYXRpbmctaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IDNyZW07XG59XG4uZmxvYXRpbmctaW5wdXQtd2l0aC1pY29uIC5mbG9hdGluZy1sYWJlbCB7XG4gIGxlZnQ6IDNyZW07XG59XG4uZmxvYXRpbmctaW5wdXQtd2l0aC1pY29uIC5mbG9hdGluZy1pbnB1dC1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxcmVtO1xuICB0b3A6IDFyZW07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgei1pbmRleDogNDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmZsb2F0aW5nLWlucHV0LXdpdGgtaWNvbiAuZmxvYXRpbmctaW5wdXQ6Zm9jdXMgfiAuZmxvYXRpbmctaW5wdXQtaWNvbiB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbn1cblxuLmZsb2F0aW5nLWlucHV0LXdpdGgtaWNvbi1yaWdodCAuZmxvYXRpbmctaW5wdXQge1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDNyZW07XG59XG4uZmxvYXRpbmctaW5wdXQtd2l0aC1pY29uLXJpZ2h0IC5mbG9hdGluZy1sYWJlbCB7XG4gIGxlZnQ6IDFyZW07XG59XG4uZmxvYXRpbmctaW5wdXQtd2l0aC1pY29uLXJpZ2h0IC5mbG9hdGluZy1pbnB1dC1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMXJlbTtcbiAgbGVmdDogYXV0bztcbiAgdG9wOiAxcmVtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIHotaW5kZXg6IDQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGhlaWdodDogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cbi5mbG9hdGluZy1pbnB1dC13aXRoLWljb24tcmlnaHQgLmZsb2F0aW5nLWlucHV0OmZvY3VzIH4gLmZsb2F0aW5nLWlucHV0LWljb24ge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG59XG5cbi5mbG9hdGluZy1pbnB1dC1ncm91cC5zbWFsbCAuZmxvYXRpbmctaW5wdXQge1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW0gMC41cmVtIDFyZW07XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG59XG4uZmxvYXRpbmctaW5wdXQtZ3JvdXAuc21hbGwgLmZsb2F0aW5nLWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgdG9wOiAwLjc1cmVtO1xufVxuLmZsb2F0aW5nLWlucHV0LWdyb3VwLnNtYWxsIC5mbG9hdGluZy1pbnB1dDpmb2N1cyArIC5mbG9hdGluZy1sYWJlbCxcbi5mbG9hdGluZy1pbnB1dC1ncm91cC5zbWFsbCAuZmxvYXRpbmctaW5wdXQ6dmFsaWQgKyAuZmxvYXRpbmctbGFiZWwsXG4uZmxvYXRpbmctaW5wdXQtZ3JvdXAuc21hbGwgLmZsb2F0aW5nLWlucHV0Om5vdCg6cGxhY2Vob2xkZXItc2hvd24pICsgLmZsb2F0aW5nLWxhYmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjRyZW0pIHNjYWxlKDAuOCk7XG59XG4uZmxvYXRpbmctaW5wdXQtZ3JvdXAuc21hbGwuZmxvYXRpbmctaW5wdXQtd2l0aC1pY29uIC5mbG9hdGluZy1pbnB1dC1pY29uIHtcbiAgdG9wOiAwLjc1cmVtO1xuICBoZWlnaHQ6IDEuMjVyZW07XG59XG4uZmxvYXRpbmctaW5wdXQtZ3JvdXAuc21hbGwuZmxvYXRpbmctaW5wdXQtd2l0aC1pY29uLXJpZ2h0IC5mbG9hdGluZy1pbnB1dC1pY29uIHtcbiAgdG9wOiAwLjc1cmVtO1xuICBoZWlnaHQ6IDEuMjVyZW07XG59XG5cbi5mbG9hdGluZy1pbnB1dC1ncm91cC5sYXJnZSAuZmxvYXRpbmctaW5wdXQge1xuICBwYWRkaW5nOiAxLjI1cmVtIDEuMjVyZW0gMXJlbSAxLjI1cmVtO1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xufVxuLmZsb2F0aW5nLWlucHV0LWdyb3VwLmxhcmdlIC5mbG9hdGluZy1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIHRvcDogMS4yNXJlbTtcbiAgbGVmdDogMS4yNXJlbTtcbn1cbi5mbG9hdGluZy1pbnB1dC1ncm91cC5sYXJnZSAuZmxvYXRpbmctaW5wdXQ6Zm9jdXMgKyAuZmxvYXRpbmctbGFiZWwsXG4uZmxvYXRpbmctaW5wdXQtZ3JvdXAubGFyZ2UgLmZsb2F0aW5nLWlucHV0OnZhbGlkICsgLmZsb2F0aW5nLWxhYmVsLFxuLmZsb2F0aW5nLWlucHV0LWdyb3VwLmxhcmdlIC5mbG9hdGluZy1pbnB1dDpub3QoOnBsYWNlaG9sZGVyLXNob3duKSArIC5mbG9hdGluZy1sYWJlbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC42cmVtKSBzY2FsZSgwLjg1KTtcbn1cbi5mbG9hdGluZy1pbnB1dC1ncm91cC5sYXJnZS5mbG9hdGluZy1pbnB1dC13aXRoLWljb24gLmZsb2F0aW5nLWlucHV0LWljb24ge1xuICB0b3A6IDEuMjVyZW07XG4gIGxlZnQ6IDEuMjVyZW07XG4gIGhlaWdodDogMS43NXJlbTtcbn1cbi5mbG9hdGluZy1pbnB1dC1ncm91cC5sYXJnZS5mbG9hdGluZy1pbnB1dC13aXRoLWljb24gLmZsb2F0aW5nLWlucHV0IHtcbiAgcGFkZGluZy1sZWZ0OiAzLjVyZW07XG59XG4uZmxvYXRpbmctaW5wdXQtZ3JvdXAubGFyZ2UuZmxvYXRpbmctaW5wdXQtd2l0aC1pY29uIC5mbG9hdGluZy1sYWJlbCB7XG4gIGxlZnQ6IDMuNXJlbTtcbn1cbi5mbG9hdGluZy1pbnB1dC1ncm91cC5sYXJnZS5mbG9hdGluZy1pbnB1dC13aXRoLWljb24tcmlnaHQgLmZsb2F0aW5nLWlucHV0LWljb24ge1xuICB0b3A6IDEuMjVyZW07XG4gIHJpZ2h0OiAxLjI1cmVtO1xuICBsZWZ0OiBhdXRvO1xuICBoZWlnaHQ6IDEuNzVyZW07XG59XG4uZmxvYXRpbmctaW5wdXQtZ3JvdXAubGFyZ2UuZmxvYXRpbmctaW5wdXQtd2l0aC1pY29uLXJpZ2h0IC5mbG9hdGluZy1pbnB1dCB7XG4gIHBhZGRpbmctcmlnaHQ6IDMuNXJlbTtcbn1cbi5mbG9hdGluZy1pbnB1dC1ncm91cC5sYXJnZS5mbG9hdGluZy1pbnB1dC13aXRoLWljb24tcmlnaHQgLmZsb2F0aW5nLWxhYmVsIHtcbiAgbGVmdDogMS4yNXJlbTtcbn1cblxuLmZsb2F0aW5nLWlucHV0LWxvYWRpbmcgLmZsb2F0aW5nLWlucHV0IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpIDI1JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpIDUwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KSA3NSUpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgYW5pbWF0aW9uOiBzaGltbWVyIDJzIGluZmluaXRlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuQGtleWZyYW1lcyBzaGltbWVyIHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0yMDAlIDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMjAwJSAwO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGdyYWRpZW50U2hpZnQge1xuICAwJSwgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCUgNTAlO1xuICB9XG4gIDUwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA1MCU7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc2xpZGVJblVwIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCk7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG4uZmxvYXRpbmctaW5wdXQtZ3JvdXA6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgcmdiYSgxMzcsIDE4MCwgMjUwLCAwLjMpIDAlLCB0cmFuc3BhcmVudCA3MCUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC42cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMTtcbn1cblxuLmZsb2F0aW5nLWlucHV0OmZvY3VzIH4gLmZsb2F0aW5nLWlucHV0LWdyb3VwOjpiZWZvcmUsXG4uZmxvYXRpbmctaW5wdXQtZ3JvdXA6Zm9jdXMtd2l0aGluOjpiZWZvcmUge1xuICB3aWR0aDogMTIwJTtcbiAgaGVpZ2h0OiAxMjAlO1xuICBvcGFjaXR5OiAwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmZsb2F0aW5nLWlucHV0LWdyb3VwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xuICB9XG4gIC5mbG9hdGluZy1pbnB1dCB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuZmxvYXRpbmctaW5wdXQsXG4gIC5mbG9hdGluZy1sYWJlbCxcbiAgLmZsb2F0aW5nLWlucHV0LWhlbHBlcixcbiAgLmZsb2F0aW5nLWlucHV0LWljb24ge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbiAgLmZsb2F0aW5nLWlucHV0LWdyb3VwOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5wYWMtY29udGFpbmVyIHtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi10b3A6IDhweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiA4cHggIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgei1pbmRleDogMTAwMCAhaW1wb3J0YW50O1xufVxuLnBhYy1jb250YWluZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAycHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgIzg5QjRGQSwgI0YzOEJBOCwgI0E2RTNBMSwgIzg5QjRGQSk7XG4gIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xuICBhbmltYXRpb246IGdyYWRpZW50U2hpZnQgM3MgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIHotaW5kZXg6IDE7XG59XG5cbi5wYWMtaXRlbSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogNHB4IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMTJweCAxNnB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZFwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMC45NXJlbSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG59XG4ucGFjLWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEzNywgMTgwLCAyNTAsIDAuMDgpICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0cHgpICFpbXBvcnRhbnQ7XG59XG4ucGFjLWl0ZW0ucGFjLWl0ZW0tc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDEzNywgMTgwLCAyNTAsIDAuMTUpLCByZ2JhKDI0MywgMTM5LCAxNjgsIDAuMTUpKSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNnB4KSAhaW1wb3J0YW50O1xufVxuXG4ucGFjLWljb24ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAyMHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMjBweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tcmlnaHQ6IDEycHggIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogMnB4ICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xufVxuLnBhYy1pY29uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIvCfk41cIjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgwLjMpO1xufVxuXG4ucGFjLWl0ZW06aG92ZXIgLnBhYy1pY29uOjpiZWZvcmUsXG4ucGFjLWl0ZW0tc2VsZWN0ZWQgLnBhYy1pY29uOjpiZWZvcmUge1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgwKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4ucGFjLW1hdGNoZWQge1xuICBjb2xvcjogIzg5QjRGQSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG59XG5cbi5wYWMtaXRlbS1xdWVyeSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5wYWMtY29udGFpbmVyIHtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXRvcDogNHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnBhYy1pdGVtIHtcbiAgICBwYWRkaW5nOiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5wYWMtaXRlbSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5wYWMtaXRlbTpob3ZlciwgLnBhYy1pdGVtLnBhYy1pdGVtLXNlbGVjdGVkIHtcbiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAucGFjLWNvbnRhaW5lcjo6YmVmb3JlIHtcbiAgICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLyogU0VMRUNUMiBTVFlMSU5HIC0gQm9vdHN0cmFwIGZvcm0tY29udHJvbCBtYXRjaGluZyAqL1xuLnNlbGVjdDItY29udGFpbmVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50O1xufVxuXG4vKiBQcmV2ZW50IGhvcml6b250YWwgc2Nyb2xsIGZyb20gc2VsZWN0MiBkcm9wZG93bnMgKi9cbi5zZWxlY3QyLWNvbnRhaW5lci0tb3BlbiArIC5zZWxlY3QyLWNvbnRhaW5lci0tZHJvcGRvd24ge1xuICBtYXgtd2lkdGg6IDEwMHZ3ICFpbXBvcnRhbnQ7XG59XG5cbi8qIEVuc3VyZSBkcm9wZG93bnMgaW5zaWRlIG1vZGFscyBhbmQgY29udGFpbmVycyByZXNwZWN0IGJvdW5kYXJpZXMgKi9cbi5tb2RhbCAuc2VsZWN0Mi1jb250YWluZXIsXG4uY2FyZCAuc2VsZWN0Mi1jb250YWluZXIsXG4ubGlnaHRjYXJkIC5zZWxlY3QyLWNvbnRhaW5lcixcbi5saWdodGNhcmRuYiAuc2VsZWN0Mi1jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbn1cblxuLm1vZGFsIC5zZWxlY3QyLWRyb3Bkb3duLFxuLmNhcmQgLnNlbGVjdDItZHJvcGRvd24sXG4ubGlnaHRjYXJkIC5zZWxlY3QyLWRyb3Bkb3duLFxuLmxpZ2h0Y2FyZG5iIC5zZWxlY3QyLWRyb3Bkb3duIHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpYyAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGNhbGMoMS41ZW0gKyAwLjc1cmVtICsgMnB4KSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLyogT3ZlcnJpZGUgU2VsZWN0MidzIGRlZmF1bHQgd2hpdGUgYmFja2dyb3VuZCBhbmQgc3R5bGluZyAqL1xuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlLFxuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQsXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGU6YmVmb3JlLFxuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWltYWdlOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qIEVuc3VyZSBubyB3ZWlyZCBTZWxlY3QyIGRlZmF1bHQgc3R5bGluZyAqL1xuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbm9uZSAhaW1wb3J0YW50O1xuICBmaWx0ZXI6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDIuNXJlbSAwLjM3NXJlbSAwLjc1cmVtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjUgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgZmxleDogMSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cblxuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3cge1xuICBoZWlnaHQ6IGNhbGMoMS41ZW0gKyAwLjc1cmVtKSAhaW1wb3J0YW50O1xuICByaWdodDogMC43NXJlbSAhaW1wb3J0YW50O1xuICB0b3A6IDAgIWltcG9ydGFudDtcbiAgd2lkdGg6IDIwcHggIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpYyAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93IGIge1xuICBib3JkZXItY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXItc3R5bGU6IHNvbGlkICFpbXBvcnRhbnQ7XG4gIGJvcmRlci13aWR0aDogNHB4IDRweCAwIDRweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgd2lkdGg6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpYy5zZWxlY3QyLWNvbnRhaW5lci0tZm9jdXMgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG91dGxpbmU6IDAgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogdmFyKC0taC1vZmZzZXQpIHZhcigtLXYtb2Zmc2V0KSB2YXIoLS1ibHVyLXJhZGl1cykgdmFyKC0tYm94c2hhZG93KSAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1kcm9wZG93biB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiB2YXIoLS1oLW9mZnNldCkgdmFyKC0tdi1vZmZzZXQpIHZhcigtLWJsdXItcmFkaXVzKSB2YXIoLS1ib3hzaGFkb3cpICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDEwNjAgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMnJlbSkgIWltcG9ydGFudDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdy14OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLyogRW5zdXJlIGRyb3Bkb3duIGNvbnRhaW5lciBoYXMgcHJvcGVyIHotaW5kZXggLSBmb3JjZSBsb3dlciB0aGFuIG9mZi1jYW52YXMgKi9cbi5zZWxlY3QyLWNvbnRhaW5lci0tb3BlbiB7XG4gIHotaW5kZXg6IDEwNjAgIWltcG9ydGFudDtcbn1cblxuLnNlbGVjdDItY29udGFpbmVyLS1vcGVuIC5zZWxlY3QyLWRyb3Bkb3duIHtcbiAgei1pbmRleDogMTA2MCAhaW1wb3J0YW50O1xufVxuXG4vKiBGb3JjZSB6LWluZGV4IGV2ZW4gd2hlbiBTZWxlY3QyIGFkZHMgaW5saW5lIHN0eWxlcyAqL1xuLnNlbGVjdDItZHJvcGRvd25bc3R5bGUqPXotaW5kZXhdIHtcbiAgei1pbmRleDogMTA2MCAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1jb250YWluZXJbc3R5bGUqPXotaW5kZXhdIHtcbiAgei1pbmRleDogMTA2MCAhaW1wb3J0YW50O1xufVxuXG4vKiBUYXJnZXQgYW55IFNlbGVjdDIgZWxlbWVudHMgdGhhdCBtaWdodCBnZXQgaGlnaGVyIHotaW5kZXggKi9cbi5zZWxlY3QyLWRyb3Bkb3duLFxuLnNlbGVjdDItZHJvcGRvd24tLWJlbG93LFxuLnNlbGVjdDItZHJvcGRvd24tLWFib3ZlIHtcbiAgei1pbmRleDogMTA2MCAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24ge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjM3NXJlbSAwLjc1cmVtICFpbXBvcnRhbnQ7XG4gIGNsZWFyOiBib3RoICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1yZXN1bHRzX19vcHRpb246aG92ZXIsXG4uc2VsZWN0Mi1yZXN1bHRzX19vcHRpb246Zm9jdXMge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uLS1oaWdobGlnaHRlZCB7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1yZXN1bHRzX19vcHRpb25bYXJpYS1zZWxlY3RlZD10cnVlXSB7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLXJlc3VsdHMge1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3ggIWltcG9ydGFudDtcbn1cblxuLnNlbGVjdDItcmVzdWx0c19fb3B0aW9ucyB7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdy14OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1zZWFyY2gge1xuICBwYWRkaW5nOiA4cHggIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLXNlYXJjaF9fZmllbGQge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjM3NXJlbSAwLjc1cmVtICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNDAwICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjUgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UtaW4tb3V0ICFpbXBvcnRhbnQ7XG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnNlbGVjdDItc2VhcmNoX19maWVsZDpmb2N1cyB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3V0bGluZTogMCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSh2YXIoLS1zZWNvbmRhcnktY29sb3VyLXJnYiksIDAuMjUpICFpbXBvcnRhbnQ7XG59XG5cbi8qIEVuc3VyZSBzZWFyY2ggZmllbGQgaXMgYWNjZXNzaWJsZSBhbmQgbm90IGJsb2NrZWQgKi9cbi5zZWxlY3QyLXNlYXJjaF9fZmllbGQge1xuICBwb2ludGVyLWV2ZW50czogYXV0byAhaW1wb3J0YW50O1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiB0ZXh0ICFpbXBvcnRhbnQ7XG4gIC1tb3otdXNlci1zZWxlY3Q6IHRleHQgIWltcG9ydGFudDtcbiAgLW1zLXVzZXItc2VsZWN0OiB0ZXh0ICFpbXBvcnRhbnQ7XG4gIHVzZXItc2VsZWN0OiB0ZXh0ICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogdGV4dCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgei1pbmRleDogMTA2MCAhaW1wb3J0YW50O1xufVxuXG4vKiBFbnN1cmUgc2VhcmNoIGRyb3Bkb3duIGNvbnRhaW5lciBpcyBhY2Nlc3NpYmxlICovXG4uc2VsZWN0Mi1zZWFyY2gtLWRyb3Bkb3duIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDEwNjAgIWltcG9ydGFudDtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLnNlbGVjdDItc2VhcmNoLS1kcm9wZG93biAuc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkIHtcbiAgbWluLWhlaWdodDogMzBweCAhaW1wb3J0YW50O1xuICBwb2ludGVyLWV2ZW50czogYXV0byAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHRleHQgIWltcG9ydGFudDtcbn1cblxuLyogQ2xlYXIvZGVzZWxlY3QgYnV0dG9uIHN0eWxpbmcgKi9cbi5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpYyAuc2VsZWN0Mi1zZWxlY3Rpb25fX2NsZWFyIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMTBweCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgcmlnaHQ6IDI1cHggIWltcG9ydGFudDtcbiAgdG9wOiA1MCUgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjYgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UgIWltcG9ydGFudDtcbn1cblxuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljIC5zZWxlY3QyLXNlbGVjdGlvbl9fY2xlYXI6aG92ZXIge1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZGMzNTQ1ICFpbXBvcnRhbnQ7XG59XG5cbi8qIE1VTFRJLVNFTEVDVCBTVFlMSU5HICovXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiBjYWxjKDEuNWVtICsgMC43NXJlbSArIDJweCkgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UtaW4tb3V0LCBib3gtc2hhZG93IDAuMTVzIGVhc2UtaW4tb3V0ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDAuNzVyZW0gIWltcG9ydGFudDtcbiAgY3Vyc29yOiB0ZXh0ICFpbXBvcnRhbnQ7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3ggIWltcG9ydGFudDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpYy5zZWxlY3QyLWNvbnRhaW5lci0tZm9jdXMgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3V0bGluZTogMCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiB2YXIoLS1oLW9mZnNldCkgdmFyKC0tdi1vZmZzZXQpIHZhcigtLWJsdXItcmFkaXVzKSB2YXIoLS1ib3hzaGFkb3cpICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpYyAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICBsaXN0LXN0eWxlOiBub25lICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93LXg6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4vKiBDaG9pY2UgaXRlbXMgKHNlbGVjdGVkIHBpbGxzIHdpdGggZ3JhZGllbnQpICovXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Nob2ljZSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXByaW1hcnktY29sb3VyKSwgcmdiYSh2YXIoLS1wcmltYXJ5LWNvbG91ci1yZ2IsIDY2LCAxNjUsIDI0NSksIDAuOCkpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXByaW1hcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLWJvcmRlci1yYWRpdXMpICogMC43NSkgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgY3Vyc29yOiBkZWZhdWx0ICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgdmVydGljYWwtYWxpZ246IHRvcCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAuMTI1cmVtIDAuMjVyZW0gMC4xMjVyZW0gMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDAuODc1cmVtICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDEuMiAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpICFpbXBvcnRhbnQ7XG4gIGdhcDogMC4yNXJlbSAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Nob2ljZV9fZGlzcGxheSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXAgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcyAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Nob2ljZV9fcmVtb3ZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDAuNzVyZW0gIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC44ICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcmVtICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMXJlbSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMSAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1jb250YWluZXItLWNsYXNzaWMgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Nob2ljZV9fcmVtb3ZlOmhvdmVyIHtcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIyMCwgNTMsIDY5LCAwLjgpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSkgIWltcG9ydGFudDtcbn1cblxuLyogSW5saW5lIHNlYXJjaCBmaWVsZCAtIGNvbXBsZXRlbHkgaW52aXNpYmxlLCBibGVuZCB3aXRoIGNvbnRhaW5lciAqL1xuLnNlbGVjdDItY29udGFpbmVyLS1jbGFzc2ljIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUgLnNlbGVjdDItc2VhcmNoLS1pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgdmVydGljYWwtYWxpZ246IHRvcCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLWNvbnRhaW5lci0tY2xhc3NpYyAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIC5zZWxlY3QyLXNlYXJjaC0taW5saW5lIC5zZWxlY3QyLXNlYXJjaF9fZmllbGQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIG91dGxpbmU6IDAgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMXJlbSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IDVlbSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgcmVzaXplOiBub25lICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG59XG5cbmRpdltkYXRhLWNvbnRyb2xsZXIqPWF1dG9jb21wbGV0ZV0ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5uYXZiYXItc2VhcmNoLWlucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMi43NXJlbTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSAhaW1wb3J0YW50O1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCkgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCkgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDUwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAzcmVtIDAgMXJlbSAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDAuOTVyZW0gIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDUwMCAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50O1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5uYXZiYXItc2VhcmNoLWlucHV0OjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjggIWltcG9ydGFudDtcbn1cbi5uYXZiYXItc2VhcmNoLWlucHV0OmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHJnYmEoMTM3LCAxODAsIDI1MCwgMC40KSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xNSkgIWltcG9ydGFudDtcbn1cbi5uYXZiYXItc2VhcmNoLWlucHV0OmZvY3VzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxMzcsIDE4MCwgMjUwLCAwLjE1KSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHJnYmEoMTM3LCAxODAsIDI1MCwgMC42KSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCA2cHggMTJweCByZ2JhKDEzNywgMTgwLCAyNTAsIDAuMikgIWltcG9ydGFudDtcbn1cblxuLnNlYXJjaC1rYmQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA0MHB4O1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAycHg7XG4gIHBhZGRpbmc6IDRweCA4cHg7XG4gIGZvbnQtZmFtaWx5OiBcIlNGIE1vbm9cIiwgXCJNb25hY29cIiwgXCJNZW5sb1wiLCBcIkNvbnNvbGFzXCIsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMC43O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcbn1cbi5zZWFyY2gta2JkIC5zZWFyY2gta2JkLW1vZGlmaWVyIHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ubmF2YmFyLXNlYXJjaC1pbnB1dDpob3ZlciB+IC5zZWFyY2gta2JkIHtcbiAgb3BhY2l0eTogMC45O1xufVxuXG4ubmF2YmFyLXNlYXJjaC1pbnB1dCArIC5zZWFyY2gtaWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDAuNzVyZW07XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIHdpZHRoOiAxLjI1cmVtO1xuICBoZWlnaHQ6IDEuMjVyZW07XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBmaWxsPSdub25lJyB2aWV3Qm94PScwIDAgMjQgMjQnIHN0cm9rZT0nJTIzOWNhM2FmJyUzZSUzY3BhdGggc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzInIGQ9J00yMSAyMWwtNi02bTItNWE3IDcgMCAxMS0xNCAwIDcgNyAwIDAxMTQgMHonLyUzZSUzYy9zdmclM2VcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLm5hdmJhci1zZWFyY2gtaW5wdXQ6aG92ZXIgKyAuc2VhcmNoLWljb24sXG4ubmF2YmFyLXNlYXJjaC1pbnB1dDpmb2N1cyArIC5zZWFyY2gtaWNvbiB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBmaWxsPSdub25lJyB2aWV3Qm94PScwIDAgMjQgMjQnIHN0cm9rZT0nJTIzODlCNEZBJyUzZSUzY3BhdGggc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzInIGQ9J00yMSAyMWwtNi02bTItNWE3IDcgMCAxMS0xNCAwIDcgNyAwIDAxMTQgMHonLyUzZSUzYy9zdmclM2VcIik7XG4gIG9wYWNpdHk6IDE7XG59XG5cbmRpdltkYXRhLWF1dG9jb21wbGV0ZS10YXJnZXQ9b3V0cHV0XSB7XG4gIC0tc2VhcmNoLWJnOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIC0tc2VhcmNoLXRleHQ6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgLS1zZWFyY2gtbXV0ZWQ6IHZhcigtLW11dGVkLXRleHQpO1xuICAtLXNlYXJjaC1ob3ZlcjogcmdiYSgxMzcsIDE4MCwgMjUwLCAwLjEyKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiA5OTk5O1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlYXJjaC1iZykgIWltcG9ydGFudDtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMjBweCAyNXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDEwcHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4wNCkgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3cteDogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93LXk6IGF1dG8gIWltcG9ydGFudDtcbiAgbWF4LWhlaWdodDogNzB2aDtcbn1cbkBtZWRpYSAobWluLWhlaWdodDogNjg2cHgpIHtcbiAgZGl2W2RhdGEtYXV0b2NvbXBsZXRlLXRhcmdldD1vdXRwdXRdIHtcbiAgICBtYXgtaGVpZ2h0OiA0ODBweDtcbiAgfVxufVxuZGl2W2RhdGEtYXV0b2NvbXBsZXRlLXRhcmdldD1vdXRwdXRdOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICM4OUI0RkEsICNGMzhCQTgsICNBNkUzQTEsICM4OUI0RkEpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgYW5pbWF0aW9uOiBncmFkaWVudFNoaWZ0IDNzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICB6LWluZGV4OiAxO1xufVxuXG4uc2VhcmNoLXNlY3Rpb24taGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIHBhZGRpbmc6IDZweCAxNHB4IDJweDtcbiAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgY29sb3I6IHZhcigtLXNlYXJjaC1tdXRlZCk7XG4gIG9wYWNpdHk6IDAuODtcbn1cbi5zZWFyY2gtc2VjdGlvbi1oZWFkZXIgaSB7XG4gIGNvbG9yOiAjODlCNEZBO1xuICBvcGFjaXR5OiAwLjg7XG59XG5cbi5zZWFyY2gtcmVzdWx0LXRleHQgbWFyayB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTM3LCAxODAsIDI1MCwgMC4yNSk7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBwYWRkaW5nOiAwIDFweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuXG4uc2VhcmNoLXJlc3VsdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA0cHggMTBweDtcbiAgbWFyZ2luOiAwIDZweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjEycyBlYXNlICFpbXBvcnRhbnQ7XG59XG4uc2VhcmNoLXJlc3VsdDpob3ZlciwgLnNlYXJjaC1yZXN1bHQuaGlnaGxpZ2h0ZWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWFyY2gtaG92ZXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG59XG5cbi5zZWFyY2gtcmVzdWx0LWNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbn1cblxuLnNlYXJjaC1yZXN1bHQtaWNvbiB7XG4gIGNvbG9yOiAjODlCNEZBICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMC44NXJlbSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTZweCAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5zZWFyY2gtcmVzdWx0LXRleHQge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG4uc2VhcmNoLXJlc3VsdC10ZXh0IHN0cm9uZyB7XG4gIGNvbG9yOiB2YXIoLS1zZWFyY2gtdGV4dCkgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZiAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwLjgycmVtICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLnNlYXJjaC1yZXN1bHQtdGV4dCBzbWFsbCB7XG4gIGNvbG9yOiB2YXIoLS1zZWFyY2gtbXV0ZWQpICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMC43MnJlbSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjggIWltcG9ydGFudDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4uc2VhcmNoLXJlc3VsdC1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAxMHB4O1xuICBtaW4td2lkdGg6IDA7XG59XG4uc2VhcmNoLXJlc3VsdC1yb3cgc3Ryb25nIHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4uc2VhcmNoLXJlc3VsdC1tZXRhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGdhcDogNnB4O1xuICBmb250LXNpemU6IDAuNjZyZW07XG4gIGNvbG9yOiB2YXIoLS1zZWFyY2gtbXV0ZWQpO1xuICBvcGFjaXR5OiAwLjk7XG59XG4uc2VhcmNoLXJlc3VsdC1tZXRhIGkge1xuICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgb3BhY2l0eTogMC43O1xufVxuXG4uc2VhcmNoLXJlc3VsdC1hdXRob3Ige1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnNlYXJjaC1yZXN1bHQtdGltZSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgb3BhY2l0eTogMC43O1xufVxuXG4uc2VhcmNoLXJlc3VsdC1waWxsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwIDdweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG4uc2VhcmNoLXJlc3VsdC1waWxsLS1zaWduZWQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE2NiwgMjI3LCAxNjEsIDAuMTUpO1xuICBjb2xvcjogI2E2ZTNhMTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDE2NiwgMjI3LCAxNjEsIDAuMzUpO1xufVxuLnNlYXJjaC1yZXN1bHQtcGlsbC0tc2VudCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTM3LCAxODAsIDI1MCwgMC4xNSk7XG4gIGNvbG9yOiAjODliNGZhO1xuICBib3JkZXItY29sb3I6IHJnYmEoMTM3LCAxODAsIDI1MCwgMC4zNSk7XG59XG4uc2VhcmNoLXJlc3VsdC1waWxsLS1kcmFmdCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjQ5LCAyMjYsIDE3NSwgMC4xMik7XG4gIGNvbG9yOiAjZjllMmFmO1xuICBib3JkZXItY29sb3I6IHJnYmEoMjQ5LCAyMjYsIDE3NSwgMC4zKTtcbn1cbi5zZWFyY2gtcmVzdWx0LXBpbGwtLWluZm8ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEzNywgMTgwLCAyNTAsIDAuMSk7XG4gIGNvbG9yOiB2YXIoLS1zZWFyY2gtbXV0ZWQpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMTM3LCAxODAsIDI1MCwgMC4yNSk7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4uc2VhcmNoLXNlY3Rpb24tY291bnQge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgcGFkZGluZzogMCA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEzNywgMTgwLCAyNTAsIDAuMTIpO1xuICBjb2xvcjogIzg5QjRGQTtcbiAgZm9udC1zaXplOiAwLjY1cmVtO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbn1cblxuLnNlYXJjaC1yZXN1bHQtZ28ge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgY29sb3I6IHZhcigtLXNlYXJjaC1tdXRlZCk7XG4gIG9wYWNpdHk6IDA7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlO1xufVxuXG4uc2VhcmNoLXJlc3VsdDpob3ZlciAuc2VhcmNoLXJlc3VsdC1nbyxcbi5zZWFyY2gtcmVzdWx0LmhpZ2hsaWdodGVkIC5zZWFyY2gtcmVzdWx0LWdvIHtcbiAgb3BhY2l0eTogMC44O1xufVxuXG4uc2VhcmNoLWNoaXAtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDZweDtcbiAgcGFkZGluZzogMnB4IDE0cHggNnB4O1xufVxuXG4uc2VhcmNoLWNoaXAge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA1cHg7XG4gIHBhZGRpbmc6IDJweCA5cHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEzNywgMTgwLCAyNTAsIDAuMjUpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEzNywgMTgwLCAyNTAsIDAuMDYpO1xuICBjb2xvcjogdmFyKC0tc2VhcmNoLW11dGVkKTtcbiAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbn1cbi5zZWFyY2gtY2hpcCBpIHtcbiAgZm9udC1zaXplOiAwLjZyZW07XG4gIGNvbG9yOiAjODlCNEZBO1xuICBvcGFjaXR5OiAwLjc7XG59XG4uc2VhcmNoLWNoaXA6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMTM3LCAxODAsIDI1MCwgMC41KTtcbiAgYmFja2dyb3VuZDogcmdiYSgxMzcsIDE4MCwgMjUwLCAwLjEyKTtcbiAgY29sb3I6IHZhcigtLXNlYXJjaC10ZXh0KTtcbn1cblxuLnNlYXJjaC1mb290ZXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBib3R0b206IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xuICBtYXJnaW4tdG9wOiA0cHg7XG4gIHBhZGRpbmc6IDRweCAxNHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWFyY2gtYmcpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCk7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgxMzcsIDE4MCwgMjUwLCAwLjE1KTtcbiAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMC42NnJlbTtcbiAgY29sb3I6IHZhcigtLXNlYXJjaC1tdXRlZCk7XG59XG4uc2VhcmNoLWZvb3RlciBrYmQge1xuICBwYWRkaW5nOiAwIDRweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEzNywgMTgwLCAyNTAsIDAuMyk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTM3LCAxODAsIDI1MCwgMC4wOCk7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250LXNpemU6IDAuNjVyZW07XG59XG4uc2VhcmNoLWZvb3RlciAuc2VhcmNoLWZvb3Rlci1zY29wZSB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBjb2xvcjogIzg5QjRGQTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnNlYXJjaC1sb2FkaW5nLFxuLnNlYXJjaC1lcnJvcixcbi5zZWFyY2gtbm8tcmVzdWx0cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgcGFkZGluZzogMjBweDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZFwiLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMC45NXJlbTtcbn1cbi5zZWFyY2gtbG9hZGluZyBpLFxuLnNlYXJjaC1lcnJvciBpLFxuLnNlYXJjaC1uby1yZXN1bHRzIGkge1xuICBjb2xvcjogIzg5QjRGQSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEuMXJlbTtcbn1cblxuLnNlYXJjaC1sb2FkaW5nIGkge1xuICBhbmltYXRpb246IGJvdW5jZSAxcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBib3VuY2Uge1xuICAwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpO1xuICB9XG59XG4uc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24ubG9hZGluZy1yZXN1bHRzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KSAhaW1wb3J0YW50O1xuICBmb250LXN0eWxlOiBpdGFsaWMgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMjBweCAhaW1wb3J0YW50O1xufVxuLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uLmxvYWRpbmctcmVzdWx0czo6YmVmb3JlIHtcbiAgY29udGVudDogXCIuXCI7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xuICBhbmltYXRpb246IGRvdHMgMC45cyBpbmZpbml0ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEuMnJlbTtcbn1cblxuQGtleWZyYW1lcyBkb3RzIHtcbiAgMCUsIDIwJSB7XG4gICAgY29udGVudDogXCIuXCI7XG4gICAgb3BhY2l0eTogMC4zO1xuICB9XG4gIDQwJSB7XG4gICAgY29udGVudDogXCIuLlwiO1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxuICA2MCUsIDEwMCUge1xuICAgIGNvbnRlbnQ6IFwiLi4uXCI7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuQGtleWZyYW1lcyBwdWxzZSB7XG4gIDAlLCAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm5hdmJhci1zZWFyY2gtaW5wdXQge1xuICAgIGhlaWdodDogMi41cmVtICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAyLjVyZW0gMCAwLjg3NXJlbSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG4gIC5zZWFyY2gtaWNvbiB7XG4gICAgcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnNlYXJjaC1rYmQge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuICAuc2VhcmNoLXJlc3VsdCB7XG4gICAgcGFkZGluZzogNHB4IDhweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCA0cHggIWltcG9ydGFudDtcbiAgfVxuICAuc2VhcmNoLXJlc3VsdC1pY29uIHtcbiAgICBmb250LXNpemU6IDAuODVyZW0gIWltcG9ydGFudDtcbiAgICB3aWR0aDogMTVweCAhaW1wb3J0YW50O1xuICB9XG4gIC5zZWFyY2gtcmVzdWx0LWNvbnRlbnQge1xuICAgIGdhcDogOHB4ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnNlYXJjaC1yZXN1bHQtdGV4dCBzdHJvbmcge1xuICAgIGZvbnQtc2l6ZTogMC44cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnNlYXJjaC1yZXN1bHQtdGV4dCBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAwLjdyZW0gIWltcG9ydGFudDtcbiAgfVxuICBkaXZbZGF0YS1hdXRvY29tcGxldGUtdGFyZ2V0PW91dHB1dF0ge1xuICAgIG1hcmdpbi10b3A6IDRweCAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6IDMwMHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5zZWFyY2gtYXV0b2NvbXBsZXRlLWRyb3Bkb3duICosXG4uc2VsZWN0Mi1kcm9wZG93biAqIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1kcm9wZG93bi5zZWxlY3QyLWRyb3Bkb3duLS1iZWxvdyB7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxNnB4ICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogOHB4ICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDk5OTkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAyMHB4IDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMTBweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjA0KSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZVthcmlhLW93bnMqPWdsb2JhbC1zZWFyY2hdIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvcikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMTJweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDMuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucXVvdGUtc2VhcmNoLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuZGl2W2RhdGEtcXVvdGUtc2VhcmNoLXRhcmdldD1vdXRwdXRdIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiAxMDYwO1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCkgIWltcG9ydGFudDtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCkgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHggIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAyMHB4IDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMTBweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjA0KSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdy14OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgb3ZlcmZsb3cteTogYXV0byAhaW1wb3J0YW50O1xuICBtYXgtaGVpZ2h0OiAzMDBweDtcbn1cbmRpdltkYXRhLXF1b3RlLXNlYXJjaC10YXJnZXQ9b3V0cHV0XTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjODlCNEZBLCAjRjM4QkE4LCAjQTZFM0ExLCAjODlCNEZBKTtcbiAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7XG4gIGFuaW1hdGlvbjogZ3JhZGllbnRTaGlmdCAzcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgei1pbmRleDogMTtcbn1cblxuLnF1b3RlLXJlc3VsdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gIG1hcmdpbjogNHB4IDhweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTM3LCAxODAsIDI1MCwgMC4yKSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig1cHgpICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDVweCkgIWltcG9ydGFudDtcbn1cbi5xdW90ZS1yZXN1bHQ6aG92ZXIsIC5xdW90ZS1yZXN1bHQuaGlnaGxpZ2h0ZWQge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDEzNywgMTgwLCAyNTAsIDAuMTUpLCByZ2JhKDI0MywgMTM5LCAxNjgsIDAuMTUpKSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHJnYmEoMTM3LCAxODAsIDI1MCwgMC40KSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuXG4ucXVvdGUtcmVzdWx0LWNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG59XG5cbi5xdW90ZS1yZXN1bHQtaWNvbiB7XG4gIGNvbG9yOiAjODlCNEZBICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMS4xcmVtICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAyMHB4ICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50O1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnF1b3RlLXJlc3VsdC10ZXh0IHtcbiAgZmxleDogMTtcbn1cbi5xdW90ZS1yZXN1bHQtdGV4dCBzdHJvbmcge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDJweDtcbn1cbi5xdW90ZS1yZXN1bHQtdGV4dCBzbWFsbCB7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDAuODVyZW0gIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC44ICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ucXVvdGUtc2VhcmNoLWxvYWRpbmcsXG4ucXVvdGUtc2VhcmNoLWVycm9yLFxuLnF1b3RlLXNlYXJjaC1uby1yZXN1bHRzLFxuLnF1b3RlLXNlYXJjaC1tZXNzYWdlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiAyMHB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCkgIWltcG9ydGFudDtcbiAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xufVxuLnF1b3RlLXNlYXJjaC1sb2FkaW5nIGksXG4ucXVvdGUtc2VhcmNoLWVycm9yIGksXG4ucXVvdGUtc2VhcmNoLW5vLXJlc3VsdHMgaSxcbi5xdW90ZS1zZWFyY2gtbWVzc2FnZSBpIHtcbiAgY29sb3I6ICM4OUI0RkEgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxLjFyZW07XG59XG5cbi5xdW90ZS1zZWFyY2gtbG9hZGluZyBpIHtcbiAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5xdW90ZS1yZXN1bHQge1xuICAgIHBhZGRpbmc6IDEwcHggMTJweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMnB4IDRweCAhaW1wb3J0YW50O1xuICB9XG4gIC5xdW90ZS1yZXN1bHQtaWNvbiB7XG4gICAgZm9udC1zaXplOiAxcmVtICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDE2cHggIWltcG9ydGFudDtcbiAgfVxuICAucXVvdGUtcmVzdWx0LWNvbnRlbnQge1xuICAgIGdhcDogMTBweCAhaW1wb3J0YW50O1xuICB9XG4gIC5xdW90ZS1yZXN1bHQtdGV4dCBzdHJvbmcge1xuICAgIGZvbnQtc2l6ZTogMC45cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnF1b3RlLXJlc3VsdC10ZXh0IHNtYWxsIHtcbiAgICBmb250LXNpemU6IDAuOHJlbSAhaW1wb3J0YW50O1xuICB9XG4gIGRpdltkYXRhLXF1b3RlLXNlYXJjaC10YXJnZXQ9b3V0cHV0XSB7XG4gICAgbWFyZ2luLXRvcDogNHB4ICFpbXBvcnRhbnQ7XG4gICAgbWF4LWhlaWdodDogMjUwcHggIWltcG9ydGFudDtcbiAgfVxufVxuLyogQmFkZ2UgbWFya2luZyBjYXRhbG9nIGZpZWxkcyB0aGUgM0QgZGVzaWduIHRvb2wgcmVxdWlyZXMgKFNMRCBnZW5lcmF0aW9uKSAqL1xuLmR0LXJlcXVpcmVkLWJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDNweCA3cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjZjQ3NDI0KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgI2Y0NzQyNCk7XG4gIG9wYWNpdHk6IDAuODU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogaGVscDtcbn1cblxuLyogQmFkZ2UgbWFya2luZyBjYXRhbG9nIGZpZWxkcyB0aGUgUmFpbHMgYmF0dGVyeSBhbmFseXNpcyByZXF1aXJlcyAqL1xuLmJhLXJlcXVpcmVkLWJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDNweCA3cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtY29sb3VyLCAjM2FhMGEwKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYWNjZW50LWNvbG91ciwgIzNhYTBhMCk7XG4gIG9wYWNpdHk6IDAuODU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogaGVscDtcbn1cblxuLyogRmxvYXRpbmcgZXhwYW5kYWJsZSBtZW51ICovXG4uZmxvYXRpbmctbWVudSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgcmlnaHQ6IDE2cHg7XG4gIGJvdHRvbTogMTZweDtcbiAgei1pbmRleDogMTA1MDtcbn1cblxuLmZsb2F0aW5nLW1lbnVfX3RvZ2dsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDVkOWQ5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmZsb2F0aW5nLW1lbnVfX3BhbmVsIHtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBtaW4td2lkdGg6IDIyMHB4O1xuICBtYXgtd2lkdGg6IDI4MHB4O1xuICBtYXgtaGVpZ2h0OiA2MHZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3gtc2hhZG93OiAwIDEycHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMTgpO1xufVxuXG4uZmxvYXRpbmctbWVudV9faXRlbSB7XG4gIHBhZGRpbmc6IDJweCAwO1xufVxuXG4uZmxvYXRpbmctbWVudV9faXRlbSBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzMzNWVlYTtcbn1cblxuLmZsb2F0aW5nLW1lbnUuaXMtb3BlbiAuZmxvYXRpbmctbWVudV9fcGFuZWwge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmthbmJhbi1ib2FyZCB7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cbi5rYW5iYW4tYm9hcmQgLmthbmJhbi1jb2x1bW5zLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBnYXA6IDFyZW07XG4gIG1pbi13aWR0aDogZml0LWNvbnRlbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xufVxuLmthbmJhbi1ib2FyZCAua2FuYmFuLWNvbHVtbi13cmFwcGVyIHtcbiAgZmxleDogMCAwIGF1dG87XG59XG4ua2FuYmFuLWJvYXJkIC5rYW5iYW4tY29sdW1uIHtcbiAgd2lkdGg6IDI4MHB4O1xuICBtaW4td2lkdGg6IDI4MHB4O1xuICBtYXgtd2lkdGg6IDI4MHB4O1xufVxuLmthbmJhbi1ib2FyZCAua2FuYmFuLWNvbHVtbiAua2FuYmFuLWhlYWRlciB7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycztcbn1cbi5rYW5iYW4tYm9hcmQgLmthbmJhbi1jb2x1bW4gLmthbmJhbi1ib2R5IHtcbiAgbWluLWhlaWdodDogNDAwcHg7XG4gIG1heC1oZWlnaHQ6IDcwdmg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycztcbn1cbi5rYW5iYW4tYm9hcmQgLmthbmJhbi1jb2x1bW4uZHJhZy1vdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0MCwgMTY3LCA2OSwgMC4xKTtcbiAgYm9yZGVyOiAycHggZGFzaGVkICMyOGE3NDU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cbi5rYW5iYW4tYm9hcmQgLmthbmJhbi1jb2x1bW4uZHJhZy1vdmVyIC5rYW5iYW4taGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0MCwgMTY3LCA2OSwgMC4xKSAhaW1wb3J0YW50O1xufVxuLmthbmJhbi1ib2FyZCAua2FuYmFuLWNvbHVtbi5zdGFnZS1kcmFnLW92ZXIge1xuICBib3JkZXI6IDJweCBkYXNoZWQgIzAwN2JmZjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEyMywgMjU1LCAwLjA1KTtcbn1cbi5rYW5iYW4tYm9hcmQgLmthbmJhbi1jb2x1bW4uY29sdW1uLWRyYWctb3ZlciB7XG4gIGJvcmRlcjogMnB4IGRhc2hlZCAjMDA3YmZmO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTIzLCAyNTUsIDAuMDUpO1xufVxuLmthbmJhbi1ib2FyZCAua2FuYmFuLWNvbHVtbi5jb2x1bW4tZHJhZ2dpbmcge1xuICBvcGFjaXR5OiAwLjY7XG4gIHRyYW5zZm9ybTogcm90YXRlKDJkZWcpO1xuICB6LWluZGV4OiAxMDAwO1xufVxuLmthbmJhbi1ib2FyZCAua2FuYmFuLWNvbHVtbi5jb2x1bW4tZHJhZy1vdmVyIHtcbiAgYm9yZGVyOiAycHggZGFzaGVkICMwMDdiZmY7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxMjMsIDI1NSwgMC4wNSk7XG59XG4ua2FuYmFuLWJvYXJkIC5jb2x1bW4tZHJhZy1oYW5kbGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBvcGFjaXR5OiAwLjY7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcbn1cbi5rYW5iYW4tYm9hcmQgLmNvbHVtbi1kcmFnLWhhbmRsZTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG59XG4ua2FuYmFuLWJvYXJkIC5jb2x1bW4tZHJhZy1oYW5kbGU6YWN0aXZlIHtcbiAgY3Vyc29yOiBncmFiYmluZztcbn1cbi5rYW5iYW4tYm9hcmQge1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbn1cbi5rYW5iYW4tYm9hcmQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgaGVpZ2h0OiA4cHg7XG59XG4ua2FuYmFuLWJvYXJkOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQ6ICNmMWYxZjE7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgbWFyZ2luOiAwIDFyZW07XG59XG4ua2FuYmFuLWJvYXJkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6ICNjMWMxYzE7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5rYW5iYW4tYm9hcmQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogI2E4YThhODtcbn1cbi5rYW5iYW4tYm9hcmQ6OmJlZm9yZSwgLmthbmJhbi1ib2FyZDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMjBweDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbn1cbi5rYW5iYW4tYm9hcmQ6OmJlZm9yZSB7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpLCB0cmFuc3BhcmVudCk7XG4gIG9wYWNpdHk6IDA7XG59XG4ua2FuYmFuLWJvYXJkOjphZnRlciB7XG4gIHJpZ2h0OiAwO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpLCB0cmFuc3BhcmVudCk7XG4gIG9wYWNpdHk6IDA7XG59XG4ua2FuYmFuLWJvYXJkLnNjcm9sbGFibGUtbGVmdDo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5rYW5iYW4tYm9hcmQuc2Nyb2xsYWJsZS1yaWdodDo6YWZ0ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuXG4ucXVvdGUtY2FyZCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMsIGJveC1zaGFkb3cgMC4ycztcbiAgbWluLXdpZHRoOiAyNTBweCAhaW1wb3J0YW50O1xufVxuLnF1b3RlLWNhcmQ6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuLnF1b3RlLWNhcmQ6aG92ZXIgLmRyb3Bkb3duLXRvZ2dsZSB7XG4gIG9wYWNpdHk6IDE7XG59XG4ucXVvdGUtY2FyZC5kcmFnZ2luZyB7XG4gIG9wYWNpdHk6IDAuNTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNWRlZyk7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG59XG4ucXVvdGUtY2FyZCAuY2FyZC10aXRsZS1maWVsZCB7XG4gIHBhZGRpbmctcmlnaHQ6IDIuNXJlbTtcbn1cbi5xdW90ZS1jYXJkIC5jYXJkLXRpdGxlLWZpZWxkIGEge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICBoeXBoZW5zOiBhdXRvO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuLnF1b3RlLWNhcmQuanVzdC1tb3ZlZCB7XG4gIGFuaW1hdGlvbjoganVzdE1vdmVkIDFzIGVhc2Utb3V0O1xufVxuLnF1b3RlLWNhcmQgLm1vdmUtZHJhZy1idG4ge1xuICBjdXJzb3I6IGdyYWI7XG4gIG9wYWNpdHk6IDAuODtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4ucXVvdGUtY2FyZCAubW92ZS1kcmFnLWJ0bjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLnF1b3RlLWNhcmQgLm1vdmUtZHJhZy1idG46YWN0aXZlIHtcbiAgY3Vyc29yOiBncmFiYmluZztcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICBib3gtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyKSAhaW1wb3J0YW50O1xufVxuLnF1b3RlLWNhcmQgLm1vdmUtZHJhZy1idG4gaSB7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5xdW90ZS1jYXJkIC5tb3ZlLWRyYWctYnRuIGk6Zmlyc3QtY2hpbGQge1xuICBvcGFjaXR5OiAwLjc7XG59XG4ucXVvdGUtY2FyZCAubW92ZS1kcmFnLWJ0bjpob3ZlciBpOmZpcnN0LWNoaWxkIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuQGtleWZyYW1lcyBqdXN0TW92ZWQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICBib3gtc2hhZG93OiAwIDAgMjBweCByZ2JhKDQwLCAxNjcsIDY5LCAwLjUpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgfVxufVxuQGtleWZyYW1lcyBkcm9wSW5kaWNhdG9yIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgwLjgpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVkoMSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc3VjY2Vzc1B1bHNlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMyk7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMjVweCByZ2JhKDQwLCAxNjcsIDY5LCAwLjMpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgfVxufVxuQGtleWZyYW1lcyBkcm9wWm9uZVB1bHNlIHtcbiAgMCUge1xuICAgIGJvcmRlci1jb2xvcjogIzAwN2JmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEyMywgMjU1LCAwLjEpO1xuICB9XG4gIDEwMCUge1xuICAgIGJvcmRlci1jb2xvcjogIzAwNTZiMztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEyMywgMjU1LCAwLjIpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmthbmJhbi1ib2FyZCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG4gIC5rYW5iYW4tYm9hcmQgLmthbmJhbi1jb2x1bW4ge1xuICAgIHdpZHRoOiAyODBweDtcbiAgICBtaW4td2lkdGg6IDI4MHB4O1xuICAgIG1heC13aWR0aDogMjgwcHg7XG4gIH1cbiAgLmthbmJhbi1ib2FyZCAua2FuYmFuLWJvZHkge1xuICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICB9XG4gIC5tb2JpbGUtY29udHJvbHMtY29udGFpbmVyIC52aWV3LXN3aXRjaGVyIC5jb21wYWN0LWJ0biB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWluLXdpZHRoOiA0NHB4O1xuICAgIG1pbi1oZWlnaHQ6IDQ0cHg7XG4gICAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuICB9XG4gIC5tb2JpbGUtY29udHJvbHMtY29udGFpbmVyIC52aWV3LXN3aXRjaGVyIC5jb21wYWN0LWJ0biBpIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbWluLXdpZHRoOiAxNnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAubW9iaWxlLWNvbnRyb2xzLWNvbnRhaW5lciAudmlldy1zd2l0Y2hlciAuY29tcGFjdC1idG46YWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTMwLCAxNTAsIDAuMSk7XG4gIH1cbiAgLm1vYmlsZS1jb250cm9scy1jb250YWluZXIgLnZpZXctc3dpdGNoZXItZHJvcGRvd24gLmRyb3Bkb3duIC5idXR0b24tMTMge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG4gIC5tb2JpbGUtY29udHJvbHMtY29udGFpbmVyIC53b3JrZmxvdy1hY3Rpb25zIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1vYmlsZS1jb250cm9scy1jb250YWluZXIgLndvcmtmbG93LWFjdGlvbnMgLmNvbXBhY3QtYnRuIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtaW4td2lkdGg6IDQ0cHg7XG4gICAgbWluLWhlaWdodDogNDRweDtcbiAgfVxuICAucXVvdGUtY2FyZCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG4gIC5xdW90ZS1jYXJkIC5tb3ZlLWRyYWctYnRuIHtcbiAgICBmb250LXNpemU6IDAuNjVyZW0gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwLjI1cmVtIDAuNHJlbSAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IDAuOTtcbiAgfVxuICAucXVvdGUtY2FyZCAubW92ZS1kcmFnLWJ0bjpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG4gIC5xdW90ZS1jYXJkIC5tb3ZlLWRyYWctYnRuIGkge1xuICAgIGZvbnQtc2l6ZTogMC42cmVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAua2FuYmFuLWJvYXJkIC5rYW5iYW4tY29sdW1uIHtcbiAgICB3aWR0aDogMjgwcHg7XG4gICAgbWluLXdpZHRoOiAyODBweDtcbiAgICBtYXgtd2lkdGg6IDI4MHB4O1xuICB9XG4gIC5rYW5iYW4tYm9hcmQgLmthbmJhbi1oZWFkZXIge1xuICAgIHBhZGRpbmc6IDAuNzVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAua2FuYmFuLWJvYXJkIC5rYW5iYW4taGVhZGVyIGg1IHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gIH1cbiAgLmthbmJhbi1ib2FyZCAua2FuYmFuLWJvZHkge1xuICAgIG1pbi1oZWlnaHQ6IDI1MHB4O1xuICAgIHBhZGRpbmc6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5xdW90ZS1jYXJkIC5jYXJkLWJvZHkge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAhaW1wb3J0YW50O1xuICB9XG4gIC5xdW90ZS1jYXJkIC5jYXJkLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgfVxuICAucXVvdGUtY2FyZCAubW92ZS1xdW90ZS1idG4ge1xuICAgIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgICBwYWRkaW5nOiAwLjE1cmVtIDAuM3JlbTtcbiAgfVxuICAubW9iaWxlLWNvbnRyb2xzLWNvbnRhaW5lciAudmlldy1zd2l0Y2hlciAuY29tcGFjdC1idG4ge1xuICAgIG1pbi13aWR0aDogNDBweDtcbiAgICBtaW4taGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmc6IDAuMzc1cmVtIDAuNXJlbTtcbiAgICBmb250LXNpemU6IDAuNzVyZW07XG4gIH1cbiAgLm1vYmlsZS1jb250cm9scy1jb250YWluZXIgLnZpZXctc3dpdGNoZXIgLmNvbXBhY3QtYnRuIGkge1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIH1cbiAgLm1vYmlsZS1jb250cm9scy1jb250YWluZXIgLndvcmtmbG93LWFjdGlvbnMge1xuICAgIGdhcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICAgIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLm1vYmlsZS1jb250cm9scy1jb250YWluZXIgLndvcmtmbG93LWFjdGlvbnMgLmNvbXBhY3QtYnRuIHtcbiAgICBtaW4td2lkdGg6IDQwcHg7XG4gICAgbWluLWhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiAwLjM3NXJlbSAwLjVyZW07XG4gIH1cbiAgLm1vYmlsZS1jb250cm9scy1jb250YWluZXIgLndvcmtmbG93LWFjdGlvbnMgLmNvbXBhY3QtYnRuIHNwYW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLndvcmtmbG93LWhlYWRlciAud29ya2Zsb3ctYWN0aW9ucyB7XG4gIGdhcDogMC41cmVtO1xufVxuLndvcmtmbG93LWhlYWRlciAud29ya2Zsb3ctYWN0aW9ucyAuYnRuIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLndvcmtmbG93cy1ncmlkIC53b3JrZmxvdy1ncmlkLWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogNDAwcHg7XG59XG4ud29ya2Zsb3dzLWdyaWQgLndvcmtmbG93LWNhcmRzLWxheWVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMDBweCwgMWZyKSk7XG4gIGdhcDogMS41cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ud29ya2Zsb3dzLWdyaWQgLndvcmtmbG93LWNhcmRzLWxheWVyIC53b3JrZmxvdy1jYXJkLXdyYXBwZXIucHJldmlldy1tb3Zpbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDIwO1xufVxuLndvcmtmbG93cy1ncmlkIC5kcm9wLXpvbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTIzLCAyNTUsIDAuMDUpO1xuICBib3JkZXI6IDNweCBkYXNoZWQgIzAwN2JmZjtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gIHotaW5kZXg6IC0xO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi53b3JrZmxvd3MtZ3JpZCAuZHJvcC16b25lLmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHotaW5kZXg6IDU7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEyMywgMjU1LCAwLjA4KTtcbiAgYm9yZGVyLWNvbG9yOiAjMDA1NmIzO1xuICBhbmltYXRpb246IGRyb3Bab25lUHVsc2UgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZSBhbHRlcm5hdGU7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMnB4IDhweCByZ2JhKDAsIDEyMywgMjU1LCAwLjEpO1xufVxuLndvcmtmbG93cy1ncmlkIC5kcm9wLXpvbmU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiRHJvcCBoZXJlXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIGNvbG9yOiAjMDA3YmZmO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDAuODVyZW07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAxMjMsIDI1NSwgMC4yKTtcbn1cbi53b3JrZmxvd3MtZ3JpZCAuZHJvcC16b25lLmFjdGl2ZTo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMTtcbn1cbi53b3JrZmxvd3MtZ3JpZCAud29ya2Zsb3ctY2FyZC13cmFwcGVyIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xufVxuLndvcmtmbG93cy1ncmlkIC53b3JrZmxvdy1jYXJkLXdyYXBwZXIuZHJhZ2dpbmcge1xuICBvcGFjaXR5OiAwLjM7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG4gIHotaW5kZXg6IDEwMDA7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG4ud29ya2Zsb3dzLWdyaWQgLndvcmtmbG93LWNhcmQtd3JhcHBlci5wcmV2aWV3LW1vdmluZyB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbiAgei1pbmRleDogMjA7XG59XG4ud29ya2Zsb3dzLWdyaWQgLndvcmtmbG93LWNhcmQtd3JhcHBlci53aWxsLW1vdmUgLndvcmtmbG93LWNhcmQge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xuICBvcGFjaXR5OiAwLjc7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNmZmMxMDc7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgyNTUsIDE5MywgNywgMC4zKTtcbn1cbi53b3JrZmxvd3MtZ3JpZCAud29ya2Zsb3ctY2FyZC13cmFwcGVyLnN1Y2Nlc3MtbW92ZSAud29ya2Zsb3ctY2FyZCB7XG4gIGFuaW1hdGlvbjogc3VjY2Vzc1B1bHNlIDAuNnMgZWFzZS1vdXQ7XG59XG4ud29ya2Zsb3dzLWdyaWQgLndvcmtmbG93LWNhcmQge1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMnM7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTA7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuLndvcmtmbG93cy1ncmlkIC53b3JrZmxvdy1jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgei1pbmRleDogMTU7XG59XG4ud29ya2Zsb3dzLWdyaWQgLndvcmtmbG93LWNhcmQgLmRyYWctaGFuZGxlLCAud29ya2Zsb3dzLWdyaWQgLndvcmtmbG93LWNhcmQgLmRyYWctaGFuZGxlLXNwcmVhZHNoZWV0IHtcbiAgY3Vyc29yOiBncmFiO1xuICBvcGFjaXR5OiAwLjU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcbn1cbi53b3JrZmxvd3MtZ3JpZCAud29ya2Zsb3ctY2FyZCAuZHJhZy1oYW5kbGU6aG92ZXIsIC53b3JrZmxvd3MtZ3JpZCAud29ya2Zsb3ctY2FyZCAuZHJhZy1oYW5kbGUtc3ByZWFkc2hlZXQ6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLndvcmtmbG93cy1ncmlkIC53b3JrZmxvdy1jYXJkIC5kcmFnLWhhbmRsZTphY3RpdmUsIC53b3JrZmxvd3MtZ3JpZCAud29ya2Zsb3ctY2FyZCAuZHJhZy1oYW5kbGUtc3ByZWFkc2hlZXQ6YWN0aXZlIHtcbiAgY3Vyc29yOiBncmFiYmluZztcbn1cbi53b3JrZmxvd3MtZ3JpZCAud29ya2Zsb3ctY2FyZCAuZHJhZy1oYW5kbGUtY2VsbCB7XG4gIHdpZHRoOiA1MHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4ud29ya2Zsb3dzLWdyaWQgLndvcmtmbG93LWNhcmQgLmRyYWctaGFuZGxlLWNlbGwgLmRyYWctaGFuZGxlLXNwcmVhZHNoZWV0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG59XG4ud29ya2Zsb3dzLWdyaWQgLndvcmtmbG93LWNhcmQgLmRyYWctaGFuZGxlLWNlbGwgLmRyYWctaGFuZGxlLXNwcmVhZHNoZWV0OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cbi53b3JrZmxvd3MtZ3JpZCAud29ya2Zsb3ctY2FyZCAud29ya2Zsb3ctY29sb3ItaW5kaWNhdG9yIHtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4ud29ya2Zsb3dzLWdyaWQgLndvcmtmbG93LWNhcmQgLndvcmtmbG93LWFjdGlvbnMgLm1kdWktaWNvbiB7XG4gIG9wYWNpdHk6IDAuNztcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xufVxuLndvcmtmbG93cy1ncmlkIC53b3JrZmxvdy1jYXJkIC53b3JrZmxvdy1hY3Rpb25zIC5tZHVpLWljb246aG92ZXIge1xuICBvcGFjaXR5OiAxO1xufVxuLndvcmtmbG93cy1ncmlkIC53b3JrZmxvdy1jYXJkIC53b3JrZmxvdy1hY3Rpb25zIC5tZHVpLWljb24udGV4dC1kYW5nZXI6aG92ZXIge1xuICBjb2xvcjogI2RjMzU0NSAhaW1wb3J0YW50O1xufVxuLndvcmtmbG93cy1ncmlkIC53b3JrZmxvdy1jYXJkIC5wb3NpdGlvbi1pbmRpY2F0b3Ige1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIG9wYWNpdHk6IDAuNjtcbn1cbi53b3JrZmxvd3MtZ3JpZCAud29ya2Zsb3ctcGxhY2Vob2xkZXIgLmJvcmRlci1kYXNoZWQge1xuICBib3JkZXI6IDJweCBkYXNoZWQgI2RlZTJlNiAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmOWZhO1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi53b3JrZmxvdy12aXN1YWwtaWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXdvcmtmbG93LWNvbG91cikgMTQlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xuICBjb2xvcjogdmFyKC0td29ya2Zsb3ctY29sb3VyKTtcbn1cblxuLndvcmtmbG93LWhlYWRlci12aXN1YWwge1xuICB3aWR0aDogNDZweDtcbiAgaGVpZ2h0OiA0NnB4O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBmbGV4OiAwIDAgNDZweDtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xufVxuXG4ud29ya2Zsb3ctaWNvbi1vcHRpb25zIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoNDRweCwgMWZyKSk7XG4gIGdhcDogOHB4O1xuICBtYXgtd2lkdGg6IDU2MHB4O1xufVxuLndvcmtmbG93LWljb24tb3B0aW9ucyAud29ya2Zsb3ctaWNvbi1vcHRpb24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1hcmdpbjogMDtcbn1cbi53b3JrZmxvdy1pY29uLW9wdGlvbnMgLndvcmtmbG93LWljb24tb3B0aW9uIGlucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi53b3JrZmxvdy1pY29uLW9wdGlvbnMgLndvcmtmbG93LWljb24tb3B0aW9uIHNwYW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMsIGJhY2tncm91bmQtY29sb3IgMC4xNXMsIGNvbG9yIDAuMTVzO1xufVxuLndvcmtmbG93LWljb24tb3B0aW9ucyAud29ya2Zsb3ctaWNvbi1vcHRpb24gaW5wdXQ6Y2hlY2tlZCArIHNwYW4ge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cik7XG59XG4ud29ya2Zsb3ctaWNvbi1vcHRpb25zIC53b3JrZmxvdy1pY29uLW9wdGlvbiBpbnB1dDpmb2N1cy12aXNpYmxlICsgc3BhbiB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbn1cblxuLndvcmtmbG93LWltYWdlLWN1cnJlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG59XG4ud29ya2Zsb3ctaW1hZ2UtY3VycmVudCBpbWcge1xuICB3aWR0aDogNTZweDtcbiAgaGVpZ2h0OiA1NnB4O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4uY29sb3ItcHJlc2V0LWJ0biB7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICBwYWRkaW5nOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuLmNvbG9yLXByZXNldC1idG46aG92ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIGJvcmRlci1jb2xvcjogI2RlZTJlNjtcbn1cbi5jb2xvci1wcmVzZXQtYnRuOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiAjMDA3YmZmO1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggcmdiYSgwLCAxMjMsIDI1NSwgMC4yNSk7XG59XG4uY29sb3ItcHJlc2V0LWJ0bjphY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xufVxuXG4uY29sb3ItcHJlc2V0cyAuY29sb3ItcHJlc2V0LWJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLnN0YWdlLWRyb3Bkb3duIC5kcm9wZG93bi1tZW51IHtcbiAgbWluLXdpZHRoOiAyMDBweDtcbn1cbi5zdGFnZS1kcm9wZG93biAuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG59XG4uc3RhZ2UtZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0ge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xufVxuLnN0YWdlLWRyb3Bkb3duIC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtIGkge1xuICB3aWR0aDogMTZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLnN0YWdlLWRyb3Bkb3duIC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtLnRleHQtZGFuZ2VyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjAsIDUzLCA2OSwgMC4xKTtcbn1cbi5zdGFnZS1kcm9wZG93biAuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbS50ZXh0LXdhcm5pbmc6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMTkzLCA3LCAwLjEpO1xufVxuXG4ucXVvdGUtbW92ZS1kcm9wZG93biAuZHJvcGRvd24tbWVudSB7XG4gIG1pbi13aWR0aDogMTgwcHg7XG4gIGJveC1zaGFkb3c6IDAgMC41cmVtIDFyZW0gcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbi5xdW90ZS1tb3ZlLWRyb3Bkb3duIC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDMpO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLnF1b3RlLW1vdmUtZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0ge1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbn1cbi5xdW90ZS1tb3ZlLWRyb3Bkb3duIC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxMjMsIDI1NSwgMC4xKTtcbn1cbi5xdW90ZS1tb3ZlLWRyb3Bkb3duIC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtIGkge1xuICB3aWR0aDogMThweDtcbn1cblxuLmthbmJhbi1lbXB0eS1zdGF0ZSAuZW1wdHktaWNvbiB7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgb3BhY2l0eTogMC41O1xufVxuLmthbmJhbi1lbXB0eS1zdGF0ZSAuZW1wdHktdGl0bGUge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cbi5rYW5iYW4tZW1wdHktc3RhdGUgLmVtcHR5LWRlc2NyaXB0aW9uIHtcbiAgb3BhY2l0eTogMC43O1xufVxuXG4uc3RhZ2UtY291bnRlciB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgb3BhY2l0eTogMC44O1xufVxuLnN0YWdlLWNvdW50ZXIuaGFzLXF1b3RlcyB7XG4gIG9wYWNpdHk6IDE7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5rYW5iYW4tbm90aWZpY2F0aW9uIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDIwcHg7XG4gIHJpZ2h0OiAyMHB4O1xuICB6LWluZGV4OiA5OTk5O1xuICBtaW4td2lkdGg6IDMwMHB4O1xuICBhbmltYXRpb246IHNsaWRlSW5SaWdodCAwLjNzIGVhc2Utb3V0O1xufVxuLmthbmJhbi1ub3RpZmljYXRpb24uc2xpZGUtb3V0IHtcbiAgYW5pbWF0aW9uOiBzbGlkZU91dFJpZ2h0IDAuM3MgZWFzZS1pbjtcbn1cblxuQGtleWZyYW1lcyBzbGlkZUluUmlnaHQge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc2xpZGVPdXRSaWdodCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuLnF1b3RlLW1vdmUtbW9kYWwgLndvcmtmbG93LWl0ZW0sIC5xdW90ZS1tb3ZlLW1vZGFsIC5zdGFnZS1pdGVtLCAuYnVsay1tb3ZlLW1vZGFsIC53b3JrZmxvdy1pdGVtLCAuYnVsay1tb3ZlLW1vZGFsIC5zdGFnZS1pdGVtIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4ucXVvdGUtbW92ZS1tb2RhbCAud29ya2Zsb3ctaXRlbTpob3Zlcjpub3QoLnNlbGVjdGVkKTpub3QoLmRpc2FibGVkKSwgLnF1b3RlLW1vdmUtbW9kYWwgLnN0YWdlLWl0ZW06aG92ZXI6bm90KC5zZWxlY3RlZCk6bm90KC5kaXNhYmxlZCksIC5idWxrLW1vdmUtbW9kYWwgLndvcmtmbG93LWl0ZW06aG92ZXI6bm90KC5zZWxlY3RlZCk6bm90KC5kaXNhYmxlZCksIC5idWxrLW1vdmUtbW9kYWwgLnN0YWdlLWl0ZW06aG92ZXI6bm90KC5zZWxlY3RlZCk6bm90KC5kaXNhYmxlZCkge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3VyKSAhaW1wb3J0YW50O1xufVxuLnF1b3RlLW1vdmUtbW9kYWwgLndvcmtmbG93LWl0ZW0uc2VsZWN0ZWQsIC5xdW90ZS1tb3ZlLW1vZGFsIC5zdGFnZS1pdGVtLnNlbGVjdGVkLCAuYnVsay1tb3ZlLW1vZGFsIC53b3JrZmxvdy1pdGVtLnNlbGVjdGVkLCAuYnVsay1tb3ZlLW1vZGFsIC5zdGFnZS1pdGVtLnNlbGVjdGVkIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItd2lkdGg6IDJweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4ucXVvdGUtbW92ZS1tb2RhbCAud29ya2Zsb3ctaXRlbS5kaXNhYmxlZCwgLnF1b3RlLW1vdmUtbW9kYWwgLnN0YWdlLWl0ZW0uZGlzYWJsZWQsIC5idWxrLW1vdmUtbW9kYWwgLndvcmtmbG93LWl0ZW0uZGlzYWJsZWQsIC5idWxrLW1vdmUtbW9kYWwgLnN0YWdlLWl0ZW0uZGlzYWJsZWQge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbi5xdW90ZS1tb3ZlLW1vZGFsIC5jdXJyZW50LXNlbGVjdGlvbiwgLmJ1bGstbW92ZS1tb2RhbCAuY3VycmVudC1zZWxlY3Rpb24ge1xuICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbn1cbi5xdW90ZS1tb3ZlLW1vZGFsIC53b3JrZmxvd3MtY29udGFpbmVyLCAucXVvdGUtbW92ZS1tb2RhbCAuc3RhZ2VzLWNvbnRhaW5lciwgLmJ1bGstbW92ZS1tb2RhbCAud29ya2Zsb3dzLWNvbnRhaW5lciwgLmJ1bGstbW92ZS1tb2RhbCAuc3RhZ2VzLWNvbnRhaW5lciB7XG4gIGJvcmRlci1yYWRpdXM6IDAuMzc1cmVtO1xuICBwYWRkaW5nOiAxcmVtO1xufVxuLnF1b3RlLW1vdmUtbW9kYWwgLndvcmtmbG93LXN0YXRzIC5iYWRnZSwgLnF1b3RlLW1vdmUtbW9kYWwgLnN0YWdlLXN0YXRzIC5iYWRnZSwgLmJ1bGstbW92ZS1tb2RhbCAud29ya2Zsb3ctc3RhdHMgLmJhZGdlLCAuYnVsay1tb3ZlLW1vZGFsIC5zdGFnZS1zdGF0cyAuYmFkZ2Uge1xuICBmb250LXNpemU6IDAuNzVyZW07XG59XG4ucXVvdGUtbW92ZS1tb2RhbCAubW9kYWwtY29udGVudCwgLmJ1bGstbW92ZS1tb2RhbCAubW9kYWwtY29udGVudCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAwLjVyZW0gMXJlbSByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuLnF1b3RlLW1vdmUtbW9kYWwgLm1vZGFsLWhlYWRlciAubW9kYWwtdGl0bGUsIC5idWxrLW1vdmUtbW9kYWwgLm1vZGFsLWhlYWRlciAubW9kYWwtdGl0bGUge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuLnF1b3RlLW1vdmUtbW9kYWwgLm1vZGFsLWJvZHksIC5idWxrLW1vdmUtbW9kYWwgLm1vZGFsLWJvZHkge1xuICBwYWRkaW5nOiAxLjVyZW07XG59XG4ucXVvdGUtbW92ZS1tb2RhbCAubW9kYWwtZm9vdGVyLCAuYnVsay1tb3ZlLW1vZGFsIC5tb2RhbC1mb290ZXIge1xuICBwYWRkaW5nOiAxcmVtIDEuNXJlbTtcbn1cbi5xdW90ZS1tb3ZlLW1vZGFsIC5tb2RhbC1mb290ZXIgLmJ1dHRvbi0xMywgLnF1b3RlLW1vdmUtbW9kYWwgLm1vZGFsLWZvb3RlciAuYnV0dG9uLTEzLW91dGxpbmUsIC5idWxrLW1vdmUtbW9kYWwgLm1vZGFsLWZvb3RlciAuYnV0dG9uLTEzLCAuYnVsay1tb3ZlLW1vZGFsIC5tb2RhbC1mb290ZXIgLmJ1dHRvbi0xMy1vdXRsaW5lIHtcbiAgbWluLXdpZHRoOiAxMjBweDtcbn1cblxuLnN0YWdlLXN0YXRzIC5zdGFnZS1zdGF0cy1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCg2MHB4LCAxZnIpKTtcbiAgZ2FwOiAwLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cbi5zdGFnZS1zdGF0cyAuc3RhZ2Utc3RhdHMtZ3JpZCAuc3RhdC1pdGVtIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuMTI1cmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xufVxuLnN0YWdlLXN0YXRzIC5zdGFnZS1zdGF0cy1ncmlkIC5zdGF0LWl0ZW0gLnN0YXQtbGFiZWwge1xuICBmb250LXNpemU6IDAuNjI1cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gIG9wYWNpdHk6IDAuODtcbiAgbWFyZ2luLWJvdHRvbTogMC4xMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4uc3RhZ2Utc3RhdHMgLnN0YWdlLXN0YXRzLWdyaWQgLnN0YXQtaXRlbSAuc3RhdC12YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4uc3RhZ2Utc3RhdHMgLnRleHQtbXV0ZWQuc21hbGwge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgb3BhY2l0eTogMC42O1xufVxuXG4uc3RhZ2Utc29ydC1jb250cm9scyAuc29ydC1idG4ge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuMzc1cmVtO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi13aWR0aDogMzJweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG9wYWNpdHk6IDAuNztcbn1cbi5zdGFnZS1zb3J0LWNvbnRyb2xzIC5zb3J0LWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cbi5zdGFnZS1zb3J0LWNvbnRyb2xzIC5zb3J0LWJ0bjphY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG59XG4uc3RhZ2Utc29ydC1jb250cm9scyAuc29ydC1idG4gLnNvcnQtaW5kaWNhdG9yIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0ycHg7XG4gIHJpZ2h0OiAtMnB4O1xuICBmb250LXNpemU6IDhweDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xufVxuLnN0YWdlLXNvcnQtY29udHJvbHMgLnNvcnQtYnRuIC5zb3J0LWluZGljYXRvcjo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAycHg7XG59XG4uc3RhZ2Utc29ydC1jb250cm9scyAuc29ydC1idG4uc29ydC1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbiAgb3BhY2l0eTogMTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5zdGFnZS1zb3J0LWNvbnRyb2xzIC5zb3J0LWJ0bi5zb3J0LWFjdGl2ZSAuc29ydC1pbmRpY2F0b3Ige1xuICBvcGFjaXR5OiAxO1xufVxuLnN0YWdlLXNvcnQtY29udHJvbHMgLnNvcnQtYnRuLnNvcnQtYWN0aXZlLnNvcnQtYXNjIC5zb3J0LWluZGljYXRvcjo6YWZ0ZXIge1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbn1cbi5zdGFnZS1zb3J0LWNvbnRyb2xzIC5zb3J0LWJ0bi5zb3J0LWFjdGl2ZS5zb3J0LWRlc2MgLnNvcnQtaW5kaWNhdG9yOjphZnRlciB7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yaWdodDogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItdG9wOiA0cHggc29saWQgY3VycmVudENvbG9yO1xufVxuLnN0YWdlLXNvcnQtY29udHJvbHMgLnNvcnQtYnRuIGkge1xuICBmb250LXNpemU6IDAuNzVyZW07XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuc3RhZ2Utc3RhdHMgLnN0YWdlLXN0YXRzLWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgZ2FwOiAwLjI1cmVtO1xuICB9XG4gIC5zdGFnZS1zdGF0cyAuc3RhZ2Utc3RhdHMtZ3JpZCAuc3RhdC1pdGVtIHtcbiAgICBwYWRkaW5nOiAwLjJyZW0gMC4xcmVtO1xuICB9XG4gIC5zdGFnZS1zdGF0cyAuc3RhZ2Utc3RhdHMtZ3JpZCAuc3RhdC1pdGVtIC5zdGF0LWxhYmVsIHtcbiAgICBmb250LXNpemU6IDAuNTVyZW07XG4gIH1cbiAgLnN0YWdlLXN0YXRzIC5zdGFnZS1zdGF0cy1ncmlkIC5zdGF0LWl0ZW0gLnN0YXQtdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgfVxuICAuc3RhZ2Utc29ydC1jb250cm9scyAuc29ydC1idG4ge1xuICAgIHBhZGRpbmc6IDAuMnJlbSAwLjNyZW07XG4gICAgbWluLXdpZHRoOiAyOHB4O1xuICB9XG4gIC5zdGFnZS1zb3J0LWNvbnRyb2xzIC5zb3J0LWJ0biBpIHtcbiAgICBmb250LXNpemU6IDAuNjVyZW07XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAuc3RhZ2Utc3RhdHMgLnN0YWdlLXN0YXRzLWdyaWQgLnN0YXQtaXRlbSAuc3RhdC1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC4xcmVtO1xuICB9XG4gIC5zdGFnZS1zdGF0cyAuc3RhZ2Utc3RhdHMtZ3JpZCAuc3RhdC1pdGVtIC5zdGF0LXZhbHVlIHtcbiAgICBmb250LXNpemU6IDAuNnJlbTtcbiAgfVxuICAuc3RhZ2Utc29ydC1jb250cm9scyB7XG4gICAgZ2FwOiAycHg7XG4gIH1cbiAgLnN0YWdlLXNvcnQtY29udHJvbHMgLnNvcnQtYnRuIHtcbiAgICBwYWRkaW5nOiAwLjE1cmVtIDAuMjVyZW07XG4gICAgbWluLXdpZHRoOiAyNnB4O1xuICB9XG4gIC5zdGFnZS1zb3J0LWNvbnRyb2xzIC5zb3J0LWJ0biBpIHtcbiAgICBmb250LXNpemU6IDAuNnJlbTtcbiAgfVxufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnF1b3RlLWNhcmQge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbiAgLnF1b3RlLWNhcmQuanVzdC1tb3ZlZCB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAjMjhhNzQ1O1xuICB9XG4gIC5rYW5iYW4tbm90aWZpY2F0aW9uIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cbiAgLnN0YWdlLXNvcnQtY29udHJvbHMgLnNvcnQtYnRuIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG4gIC5zdGFnZS1zdGF0cyAuc3RhdC1pdGVtIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG50aC5zb3J0YWJsZS1oZWFkZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZTtcbiAgcGFkZGluZzogMC44NzVyZW0gMC43NXJlbSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxudGguc29ydGFibGUtaGVhZGVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xufVxudGguc29ydGFibGUtaGVhZGVyIC5zb3J0LWluZGljYXRvcnMge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcbiAgbWluLXdpZHRoOiAxNnB4O1xufVxudGguc29ydGFibGUtaGVhZGVyIC5zb3J0LWluZGljYXRvcnMgLnNvcnQtYXNjLFxudGguc29ydGFibGUtaGVhZGVyIC5zb3J0LWluZGljYXRvcnMgLnNvcnQtZGVzYyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsaW5lLWhlaWdodDogMC42O1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC41O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2U7XG59XG50aC5zb3J0YWJsZS1oZWFkZXIgLnNvcnQtaW5kaWNhdG9ycyAuc29ydC1hc2MuYWN0aXZlLFxudGguc29ydGFibGUtaGVhZGVyIC5zb3J0LWluZGljYXRvcnMgLnNvcnQtZGVzYy5hY3RpdmUge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIG9wYWNpdHk6IDE7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG59XG50aC5zb3J0YWJsZS1oZWFkZXI6aG92ZXIgLnNvcnQtaW5kaWNhdG9ycyB7XG4gIG9wYWNpdHk6IDE7XG59XG50aC5zb3J0YWJsZS1oZWFkZXIuc29ydGVkLWFzYywgdGguc29ydGFibGUtaGVhZGVyLnNvcnRlZC1kZXNjIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG59XG50aC5zb3J0YWJsZS1oZWFkZXIuc29ydGVkLWFzYyAuc29ydC1pbmRpY2F0b3JzLCB0aC5zb3J0YWJsZS1oZWFkZXIuc29ydGVkLWRlc2MgLnNvcnQtaW5kaWNhdG9ycyB7XG4gIG9wYWNpdHk6IDE7XG59XG50aC5zb3J0YWJsZS1oZWFkZXIuc29ydGVkLWFzYyBpLCB0aC5zb3J0YWJsZS1oZWFkZXIuc29ydGVkLWRlc2MgaSB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xufVxudGguc29ydGFibGUtaGVhZGVyLnNvcnRlZC1hc2MgaTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGYwZGVcIiAhaW1wb3J0YW50O1xufVxudGguc29ydGFibGUtaGVhZGVyLnNvcnRlZC1kZXNjIGk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxmMGRkXCIgIWltcG9ydGFudDtcbn1cbnRoLnNvcnRhYmxlLWhlYWRlci5zb3J0aW5nIC5zb3J0LWluZGljYXRvcnMge1xuICBvcGFjaXR5OiAxO1xufVxuXG5idXR0b24uc29ydGFibGUtaGVhZGVyIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2U7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbmJ1dHRvbi5zb3J0YWJsZS1oZWFkZXI6aG92ZXIge1xuICBjb2xvcjogIzAwN2JmZjtcbn1cbmJ1dHRvbi5zb3J0YWJsZS1oZWFkZXIuc29ydGVkLWFzYywgYnV0dG9uLnNvcnRhYmxlLWhlYWRlci5zb3J0ZWQtZGVzYyB7XG4gIGNvbG9yOiAjMDA3YmZmO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuYnV0dG9uLnNvcnRhYmxlLWhlYWRlciBpIHtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4ycyBlYXNlO1xufVxuYnV0dG9uLnNvcnRhYmxlLWhlYWRlcjpob3ZlciBpIHtcbiAgY29sb3I6ICMwMDdiZmY7XG59XG5cbi5zcHJlYWRzaGVldC10YWJsZSB0aGVhZC5iZy10aGVtZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJzLXRoZW1lKSAhaW1wb3J0YW50O1xufVxuLnNwcmVhZHNoZWV0LXRhYmxlIHRoZWFkLmJnLXRoZW1lIHRoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnMtdGhlbWUpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cbi5zcHJlYWRzaGVldC10YWJsZSAucXVvdGUtcm93IHtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzIGVhc2U7XG59XG4uc3ByZWFkc2hlZXQtdGFibGUgLnF1b3RlLXJvdzpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMTIzLCAyNTUsIDAuMDIpO1xufVxuLnNwcmVhZHNoZWV0LXRhYmxlIC5xdW90ZS1yb3cuZHJhZ2dpbmcge1xuICBvcGFjaXR5OiAwLjY7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45OCk7XG59XG5cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5tb2RhbC1jb250ZW50LCAuY2FyZC1maWVsZHMtbW9kYWwgLm1vZGFsLWNvbnRlbnQge1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMC41cmVtIDFyZW0gcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5tb2RhbC1oZWFkZXIsIC5jYXJkLWZpZWxkcy1tb2RhbCAubW9kYWwtaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLm1vZGFsLWhlYWRlciAubW9kYWwtdGl0bGUsIC5jYXJkLWZpZWxkcy1tb2RhbCAubW9kYWwtaGVhZGVyIC5tb2RhbC10aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzQ5NTA1Nyk7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAubW9kYWwtaGVhZGVyIC5idG4tY2xvc2UsIC5jYXJkLWZpZWxkcy1tb2RhbCAubW9kYWwtaGVhZGVyIC5idG4tY2xvc2Uge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBvcGFjaXR5OiAwLjc7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjNDk1MDU3KTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5tb2RhbC1oZWFkZXIgLmJ0bi1jbG9zZTpob3ZlciwgLmNhcmQtZmllbGRzLW1vZGFsIC5tb2RhbC1oZWFkZXIgLmJ0bi1jbG9zZTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjZjQ3NDI0KTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5tb2RhbC1ib2R5LCAuY2FyZC1maWVsZHMtbW9kYWwgLm1vZGFsLWJvZHkge1xuICBwYWRkaW5nOiAxLjVyZW07XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAubW9kYWwtZm9vdGVyLCAuY2FyZC1maWVsZHMtbW9kYWwgLm1vZGFsLWZvb3RlciB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbiAgcGFkZGluZzogMXJlbSAxLjVyZW07XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuY29sdW1uLWxpc3QsIC5jYXJkLWZpZWxkcy1tb2RhbCAuY29sdW1uLWxpc3Qge1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIsICNmOGY5ZmEpO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLmNvbHVtbi1saXN0Ojotd2Via2l0LXNjcm9sbGJhciwgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4tbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogOHB4O1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLmNvbHVtbi1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10cmFjaywgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4tbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91ciwgI2YxZjFmMSk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4tbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsIC5jYXJkLWZpZWxkcy1tb2RhbCAuY29sdW1uLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Nyb2xsYmFyLWNvbG91ciwgI2MxYzFjMSk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4tbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIsIC5jYXJkLWZpZWxkcy1tb2RhbCAuY29sdW1uLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgI2E4YThhOCk7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuY29sdW1uLWl0ZW0sIC5jYXJkLWZpZWxkcy1tb2RhbCAuY29sdW1uLWl0ZW0ge1xuICBwYWRkaW5nOiAwLjc1cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RlZTJlNik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgY3Vyc29yOiBncmFiO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLmNvbHVtbi1pdGVtOmxhc3QtY2hpbGQsIC5jYXJkLWZpZWxkcy1tb2RhbCAuY29sdW1uLWl0ZW06bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuY29sdW1uLWl0ZW06aG92ZXIsIC5jYXJkLWZpZWxkcy1tb2RhbCAuY29sdW1uLWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91ciwgI2Y4ZjlmYSk7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuY29sdW1uLWl0ZW0uc2VsZWN0ZWQsIC5jYXJkLWZpZWxkcy1tb2RhbCAuY29sdW1uLWl0ZW0uc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91ciwgI2U3ZjNmZik7XG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgIzAwN2JmZik7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuY29sdW1uLWl0ZW0uZHJhZ2dpbmcsIC5jYXJkLWZpZWxkcy1tb2RhbCAuY29sdW1uLWl0ZW0uZHJhZ2dpbmcge1xuICBvcGFjaXR5OiAwLjQ7XG4gIHRyYW5zZm9ybTogcm90YXRlKDJkZWcpO1xuICB6LWluZGV4OiAxMDAwO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLmNvbHVtbi1pdGVtIC5jb2x1bW4tYWN0aW9uLWJ0biwgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4taXRlbSAuY29sdW1uLWFjdGlvbi1idG4ge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAuMjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuY29sdW1uLWl0ZW0gLmNvbHVtbi1hY3Rpb24tYnRuLmFkZC1idG4sIC5jYXJkLWZpZWxkcy1tb2RhbCAuY29sdW1uLWl0ZW0gLmNvbHVtbi1hY3Rpb24tYnRuLmFkZC1idG4ge1xuICBjb2xvcjogIzI4YTc0NTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4taXRlbSAuY29sdW1uLWFjdGlvbi1idG4uYWRkLWJ0bjpob3ZlciwgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4taXRlbSAuY29sdW1uLWFjdGlvbi1idG4uYWRkLWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoNDAsIDE2NywgNjksIDAuMSk7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4taXRlbSAuY29sdW1uLWFjdGlvbi1idG4ucmVtb3ZlLWJ0biwgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4taXRlbSAuY29sdW1uLWFjdGlvbi1idG4ucmVtb3ZlLWJ0biB7XG4gIGNvbG9yOiAjZGMzNTQ1O1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLmNvbHVtbi1pdGVtIC5jb2x1bW4tYWN0aW9uLWJ0bi5yZW1vdmUtYnRuOmhvdmVyLCAuY2FyZC1maWVsZHMtbW9kYWwgLmNvbHVtbi1pdGVtIC5jb2x1bW4tYWN0aW9uLWJ0bi5yZW1vdmUtYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyMjAsIDUzLCA2OSwgMC4xKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLmNvbHVtbi1pdGVtIC5jb2x1bW4tYWN0aW9uLWJ0biBpLCAuY2FyZC1maWVsZHMtbW9kYWwgLmNvbHVtbi1pdGVtIC5jb2x1bW4tYWN0aW9uLWJ0biBpIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4taXRlbSAuZHJhZy1oYW5kbGUsIC5jYXJkLWZpZWxkcy1tb2RhbCAuY29sdW1uLWl0ZW0gLmRyYWctaGFuZGxlIHtcbiAgb3BhY2l0eTogMC42O1xuICBjdXJzb3I6IGdyYWI7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnM7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuY29sdW1uLWl0ZW0gLmRyYWctaGFuZGxlOmhvdmVyLCAuY2FyZC1maWVsZHMtbW9kYWwgLmNvbHVtbi1pdGVtIC5kcmFnLWhhbmRsZTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjMDA3YmZmKTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4taXRlbSAuZHJhZy1oYW5kbGU6YWN0aXZlLCAuY2FyZC1maWVsZHMtbW9kYWwgLmNvbHVtbi1pdGVtIC5kcmFnLWhhbmRsZTphY3RpdmUge1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLmNvbHVtbi1pdGVtIC5jb2x1bW4taW5mbywgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4taXRlbSAuY29sdW1uLWluZm8ge1xuICBmbGV4LWdyb3c6IDE7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuY29sdW1uLWl0ZW0gLmNvbHVtbi1pbmZvIC5jb2x1bW4tbGFiZWwsIC5jYXJkLWZpZWxkcy1tb2RhbCAuY29sdW1uLWl0ZW0gLmNvbHVtbi1pbmZvIC5jb2x1bW4tbGFiZWwge1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMyMTI1MjkpO1xuICBtYXJnaW4tYm90dG9tOiAwLjEyNXJlbTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4taXRlbSAuY29sdW1uLWluZm8gLmNvbHVtbi1tZXRhLCAuY2FyZC1maWVsZHMtbW9kYWwgLmNvbHVtbi1pdGVtIC5jb2x1bW4taW5mbyAuY29sdW1uLW1ldGEge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzZjNzU3ZCk7XG4gIG9wYWNpdHk6IDAuODtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5wcmVzZXQtc2VjdGlvbiwgLmNhcmQtZmllbGRzLW1vZGFsIC5wcmVzZXQtc2VjdGlvbiB7XG4gIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgcGFkZGluZy10b3A6IDFyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5wcmVzZXQtc2VjdGlvbiAucHJlc2V0LXRpdGxlLCAuY2FyZC1maWVsZHMtbW9kYWwgLnByZXNldC1zZWN0aW9uIC5wcmVzZXQtdGl0bGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICM0OTUwNTcpO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLnByZXNldC1zZWN0aW9uIC5wcmVzZXQtdGl0bGUgaSwgLmNhcmQtZmllbGRzLW1vZGFsIC5wcmVzZXQtc2VjdGlvbiAucHJlc2V0LXRpdGxlIGkge1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICMwMDdiZmYpO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLnByZXNldC1zZWN0aW9uIC5wcmVzZXQtYnV0dG9ucywgLmNhcmQtZmllbGRzLW1vZGFsIC5wcmVzZXQtc2VjdGlvbiAucHJlc2V0LWJ1dHRvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNXJlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLnByZXNldC1zZWN0aW9uIC5wcmVzZXQtYnV0dG9ucyAucHJlc2V0LWJ0biwgLmNhcmQtZmllbGRzLW1vZGFsIC5wcmVzZXQtc2VjdGlvbiAucHJlc2V0LWJ1dHRvbnMgLnByZXNldC1idG4ge1xuICBwYWRkaW5nOiAwLjM3NXJlbSAwLjc1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgNnB4KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIsIHdoaXRlKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjNDk1MDU3KTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLnByZXNldC1zZWN0aW9uIC5wcmVzZXQtYnV0dG9ucyAucHJlc2V0LWJ0bjpob3ZlciwgLmNhcmQtZmllbGRzLW1vZGFsIC5wcmVzZXQtc2VjdGlvbiAucHJlc2V0LWJ1dHRvbnMgLnByZXNldC1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjMDA3YmZmKTtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91ciwgd2hpdGUpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICMwMDdiZmYpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAucHJlc2V0LXNlY3Rpb24gLnByZXNldC1idXR0b25zIC5wcmVzZXQtYnRuOmFjdGl2ZSwgLmNhcmQtZmllbGRzLW1vZGFsIC5wcmVzZXQtc2VjdGlvbiAucHJlc2V0LWJ1dHRvbnMgLnByZXNldC1idG46YWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLnNlbGVjdGVkLWNvdW50LCAuY2FyZC1maWVsZHMtbW9kYWwgLnNlbGVjdGVkLWNvdW50IHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICMwMDdiZmYpO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLmFjdGlvbi1idXR0b25zLCAuY2FyZC1maWVsZHMtbW9kYWwgLmFjdGlvbi1idXR0b25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBiZXR3ZWVuO1xuICBnYXA6IDAuNzVyZW07XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuYWN0aW9uLWJ1dHRvbnMgLmJ0biwgLmNhcmQtZmllbGRzLW1vZGFsIC5hY3Rpb24tYnV0dG9ucyAuYnRuIHtcbiAgbWluLXdpZHRoOiAxMjBweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5hY3Rpb24tYnV0dG9ucyAuYnRuLmJ0bi1vdXRsaW5lLCAuY2FyZC1maWVsZHMtbW9kYWwgLmFjdGlvbi1idXR0b25zIC5idG4uYnRuLW91dGxpbmUge1xuICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICM2Yzc1N2QpO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLmFjdGlvbi1idXR0b25zIC5idG4uYnRuLW91dGxpbmU6aG92ZXIsIC5jYXJkLWZpZWxkcy1tb2RhbCAuYWN0aW9uLWJ1dHRvbnMgLmJ0bi5idG4tb3V0bGluZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktY29sb3VyLCAjZjhmOWZhKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjMDA3YmZmKTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICMwMDdiZmYpO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLmFjdGlvbi1idXR0b25zIC5idG4uYnRuLXByaW1hcnksIC5jYXJkLWZpZWxkcy1tb2RhbCAuYWN0aW9uLWJ1dHRvbnMgLmJ0bi5idG4tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICMwMDdiZmYpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICMwMDdiZmYpO1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyLCB3aGl0ZSk7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuYWN0aW9uLWJ1dHRvbnMgLmJ0bi5idG4tcHJpbWFyeTpob3ZlciwgLmNhcmQtZmllbGRzLW1vZGFsIC5hY3Rpb24tYnV0dG9ucyAuYnRuLmJ0bi1wcmltYXJ5OmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWhvdmVyLCAjMDA1NmIzKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24taG92ZXIsICMwMDU2YjMpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuY29sdW1uLWRyb3Atem9uZSwgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4tZHJvcC16b25lIHtcbiAgbWluLWhlaWdodDogMnB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICBvcGFjaXR5OiAwO1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLmNvbHVtbi1kcm9wLXpvbmUuYWN0aXZlLCAuY2FyZC1maWVsZHMtbW9kYWwgLmNvbHVtbi1kcm9wLXpvbmUuYWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbiAgbWluLWhlaWdodDogNHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjMDA3YmZmKTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBtYXJnaW46IDAuMjVyZW0gMDtcbn1cbi5jb2x1bW4tY29uZmlnLW1vZGFsIC5lbXB0eS1jb2x1bW4tbGlzdCwgLmNhcmQtZmllbGRzLW1vZGFsIC5lbXB0eS1jb2x1bW4tbGlzdCB7XG4gIHBhZGRpbmc6IDJyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjNmM3NTdkKTtcbiAgb3BhY2l0eTogMC43O1xufVxuLmNvbHVtbi1jb25maWctbW9kYWwgLmVtcHR5LWNvbHVtbi1saXN0IGksIC5jYXJkLWZpZWxkcy1tb2RhbCAuZW1wdHktY29sdW1uLWxpc3QgaSB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBvcGFjaXR5OiAwLjU7XG59XG4uY29sdW1uLWNvbmZpZy1tb2RhbCAuZW1wdHktY29sdW1uLWxpc3QgcCwgLmNhcmQtZmllbGRzLW1vZGFsIC5lbXB0eS1jb2x1bW4tbGlzdCBwIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuY29sdW1uLWNvbmZpZy1tb2RhbCAubW9kYWwtZGlhbG9nLFxuICAuY2FyZC1maWVsZHMtbW9kYWwgLm1vZGFsLWRpYWxvZyB7XG4gICAgbWFyZ2luOiAxcmVtO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxuICAuY29sdW1uLWNvbmZpZy1tb2RhbCAuY29sdW1uLWxpc3QsXG4gIC5jYXJkLWZpZWxkcy1tb2RhbCAuY29sdW1uLWxpc3Qge1xuICAgIG1heC1oZWlnaHQ6IDI1MHB4O1xuICB9XG4gIC5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4taXRlbSxcbiAgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4taXRlbSB7XG4gICAgcGFkZGluZzogMC41cmVtO1xuICB9XG4gIC5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4taXRlbSAuY29sdW1uLWluZm8gLmNvbHVtbi1sYWJlbCxcbiAgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4taXRlbSAuY29sdW1uLWluZm8gLmNvbHVtbi1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgfVxuICAuY29sdW1uLWNvbmZpZy1tb2RhbCAuY29sdW1uLWl0ZW0gLmNvbHVtbi1pbmZvIC5jb2x1bW4tbWV0YSxcbiAgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4taXRlbSAuY29sdW1uLWluZm8gLmNvbHVtbi1tZXRhIHtcbiAgICBmb250LXNpemU6IDAuNjg3NXJlbTtcbiAgfVxuICAuY29sdW1uLWNvbmZpZy1tb2RhbCAuY29sdW1uLWl0ZW0gLmNvbHVtbi1hY3Rpb24tYnRuLFxuICAuY2FyZC1maWVsZHMtbW9kYWwgLmNvbHVtbi1pdGVtIC5jb2x1bW4tYWN0aW9uLWJ0biB7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICB9XG4gIC5jb2x1bW4tY29uZmlnLW1vZGFsIC5jb2x1bW4taXRlbSAuY29sdW1uLWFjdGlvbi1idG4gaSxcbiAgLmNhcmQtZmllbGRzLW1vZGFsIC5jb2x1bW4taXRlbSAuY29sdW1uLWFjdGlvbi1idG4gaSB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICB9XG4gIC5jb2x1bW4tY29uZmlnLW1vZGFsIC5wcmVzZXQtYnV0dG9ucyAucHJlc2V0LWJ0bixcbiAgLmNhcmQtZmllbGRzLW1vZGFsIC5wcmVzZXQtYnV0dG9ucyAucHJlc2V0LWJ0biB7XG4gICAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICB9XG59XG4uc3ByZWFkc2hlZXQtdGFibGUtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMDcpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uc3ByZWFkc2hlZXQtdGFibGUge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRhYmxlLWxheW91dDogYXV0bztcbiAgbWluLXdpZHRoOiBtYXgtY29udGVudDtcbn1cbi5zcHJlYWRzaGVldC10YWJsZSB0Ym9keSB0cjpob3ZlciB7XG4gIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDJweCA0cHggMCByZ2JhKDAsIDAsIDAsIDAuMSkgIWltcG9ydGFudDtcbn1cbi5zcHJlYWRzaGVldC10YWJsZSAuc3RhZ2UtaGVhZGVyLXJvdyAuZHJvcGRvd24tbWVudSB7XG4gIHotaW5kZXg6IDEwNTAgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG59XG5cbi50YWJsZSA+IDpub3QoY2FwdGlvbikgPiAqID4gKiB7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcbn1cblxuLnNwcmVhZHNoZWV0LXRhYmxlIHRoIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkZWUyZTYgIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnNwcmVhZHNoZWV0LXRhYmxlIHRkIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZWUyZTY7XG59XG5cbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIgPiB0aCxcbi50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHI6aG92ZXIgPiB0ZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3VyKTtcbn1cblxuLnRhYmxlIHRoLnNvcnRhYmxlLWhlYWRlciB7XG4gIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xufVxuXG4uc3ByZWFkc2hlZXQtdGFibGUgdGhlYWQgdGgge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnNwcmVhZHNoZWV0LXRhYmxlIHRoZWFkIHRoOm5vdCguc29ydGFibGUtaGVhZGVyKSB7XG4gIHBhZGRpbmc6IDAuNzVyZW07XG59XG5cbi5zdGFnZS1oZWFkZXItcm93IHtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG59XG4uc3RhZ2UtaGVhZGVyLXJvdyB0ZCB7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ucXVvdGUtcm93IHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgY3Vyc29yOiBtb3ZlO1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuLnF1b3RlLXJvdzpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3VyKTtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuLnF1b3RlLXJvdy5kcmFnZ2luZyB7XG4gIG9wYWNpdHk6IDAuNjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjlmYTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMWRlZyk7XG59XG4ucXVvdGUtcm93LmRyb3AtdGFyZ2V0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg0MCwgMTY3LCA2OSwgMC4xKTtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICMyOGE3NDU7XG4gIGJvcmRlci1sZWZ0LXdpZHRoOiA0cHg7XG59XG4ucXVvdGUtcm93IHRkIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkZWUyZTY7XG59XG5cbi5kcmFnLWhhbmRsZS1zcHJlYWRzaGVldCB7XG4gIGN1cnNvcjogZ3JhYjtcbiAgcGFkZGluZzogMC41cmVtO1xuICBvcGFjaXR5OiAwLjY7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLmRyYWctaGFuZGxlLXNwcmVhZHNoZWV0OmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAxMjMsIDI1NSwgMC4xKTtcbn1cbi5kcmFnLWhhbmRsZS1zcHJlYWRzaGVldDphY3RpdmUge1xuICBjdXJzb3I6IGdyYWJiaW5nO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEyMywgMjU1LCAwLjIpO1xufVxuXG4uZW1wdHktc3RhZ2Utcm93IHRkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjAyKTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4udW5hc3NpZ25lZC1xdW90ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAxOTMsIDcsIDAuMDIpO1xufVxuXG4udmlldy1zd2l0Y2hlciAuYnV0dG9uLTEzLFxuLnZpZXctc3dpdGNoZXIgLmJ1dHRvbi0xMy1vdXRsaW5lIHtcbiAgbWFyZ2luOiAwLjI1cmVtO1xufVxuXG4uc3RhZ2UtY291bnQge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xufVxuXG4ubW92ZS1xdW90ZS1idG4ge1xuICBvcGFjaXR5OiAwLjc7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xufVxuLm1vdmUtcXVvdGUtYnRuOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEyMywgMjU1LCAwLjEpO1xufVxuXG4uc29ydGFibGUtaGVhZGVyIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZTtcbiAgcGFkZGluZzogMC43NXJlbSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnNvcnRhYmxlLWhlYWRlcjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnNvcnRhYmxlLWhlYWRlciA+IGRpdiB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IGF1dG87XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDtcbn1cblxuLnNvcnRhYmxlLWhlYWRlciAuZC1mbGV4IHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiBhdXRvO1xufVxuXG4uc29ydGFibGUtaGVhZGVyIHNwYW4ge1xuICBmbGV4OiAxO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLnNvcnQtaW5kaWNhdG9ycyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG9wYWNpdHk6IDAuNDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG59XG4uc29ydC1pbmRpY2F0b3JzIC5zb3J0LWFzYyB7XG4gIG1hcmdpbi1ib3R0b206IC0ycHg7XG59XG4uc29ydC1pbmRpY2F0b3JzIC5zb3J0LWRlc2Mge1xuICBtYXJnaW4tdG9wOiAtMnB4O1xufVxuLnNvcnQtaW5kaWNhdG9ycyBpIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuLnNvcnQtaW5kaWNhdG9ycyAuYWN0aXZlIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5zb3J0YWJsZS1oZWFkZXI6aG92ZXIgLnNvcnQtaW5kaWNhdG9ycyB7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLnNvcnRhYmxlLWhlYWRlci5zb3J0aW5nIC5zb3J0LWluZGljYXRvcnMge1xuICBvcGFjaXR5OiAxO1xufVxuXG4udGFibGUtcmVzcG9uc2l2ZSB7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbn1cblxuLnNwcmVhZHNoZWV0LXRhYmxlIHRoW3N0eWxlKj13aWR0aF0ge1xuICBtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLnNwcmVhZHNoZWV0LXRhYmxlIHRoIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5zb3J0YWJsZS1oZWFkZXIgPiBkaXYuZC1mbGV4IHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50O1xuICBnYXA6IDAuNXJlbTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4uc29ydGFibGUtaGVhZGVyID4gZGl2LmQtZmxleCA+IHNwYW4ge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnNvcnQtaW5kaWNhdG9ycyB7XG4gIGZsZXg6IDAgMCBhdXRvICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5zcHJlYWRzaGVldC10YWJsZSB0aGVhZCB0aCxcbiAgLnNwcmVhZHNoZWV0LXRhYmxlIHRib2R5IHRkIHtcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgfVxuICAudmlldy1zd2l0Y2hlciB7XG4gICAgb3JkZXI6IC0xO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLndvcmtmbG93LWhlYWRlciAubW9iaWxlLWNvbnRyb2xzLWNvbnRhaW5lciAuZC1mbGV4IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIERlbnNlLCBzaGFyZWQgd29ya3NwYWNlIGNocm9tZSBmb3IgZXZlcnkgd29ya2Zsb3cgdmlldy4gKi9cbi5jcm0td29ya3NwYWNlIHtcbiAgLS1jcm0tYm9yZGVyOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIsICMyMDI0MmEpIDE0JSwgdHJhbnNwYXJlbnQpO1xuICAtLWNybS1tdXRlZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyLCAjMjAyNDJhKSA2MiUsIHRyYW5zcGFyZW50KTtcbiAgLS1jcm0tc3VyZmFjZTogdmFyKC0tY2FyZC1jb2xvdXIsICNmZmYpO1xuICAtLWNybS1zdWJ0bGU6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jYXJkLWNvbG91ciwgI2ZmZikgOTAlLCB2YXIoLS10ZXh0LWNvbG91ciwgIzIwMjQyYSkpO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5jcm0td29ya3NwYWNlLWhlYWRlciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMDtcbiAgei1pbmRleDogMjU7XG4gIHBhZGRpbmc6IDAuNjVyZW0gMXJlbSAwLjU1cmVtO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIsICNmZmYpIDk0JSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXdvcmtmbG93LWNvbG91cikgMzIlLCB2YXIoLS1jcm0tYm9yZGVyKSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDNweCAwIDAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXdvcmtmbG93LWNvbG91cikgODIlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxNHB4KTtcbn1cblxuLmNybS13b3Jrc3BhY2UtdG9wbGluZSxcbi5jcm0td29ya3NwYWNlLW5hdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC42NXJlbTtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4uY3JtLXdvcmtzcGFjZS10b3BsaW5lIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4uY3JtLXdvcmtzcGFjZS1pZGVudGl0eSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC42cmVtO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5jcm0td29ya3NwYWNlLW1hcmtlciB7XG4gIHdpZHRoOiAzcHg7XG4gIGhlaWdodDogMzBweDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBmbGV4OiAwIDAgYXV0bztcbn1cblxuLmNybS13b3Jrc3BhY2UtdGl0bGUge1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzIwMjQyYSkgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxLjA1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5jcm0td29ya2Zsb3ctc3dpdGNoZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLmNybS13b3JrZmxvdy1zd2l0Y2hlci10cmlnZ2VyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjRyZW07XG4gIG1pbi13aWR0aDogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLmNybS13b3JrZmxvdy1zd2l0Y2hlci10cmlnZ2VyOjotd2Via2l0LWRldGFpbHMtbWFya2VyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNybS13b3JrZmxvdy1zd2l0Y2hlci10cmlnZ2VyIC5jcm0td29ya3NwYWNlLXRpdGxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4uY3JtLXdvcmtmbG93LXN3aXRjaGVyLXRyaWdnZXIgLmNybS13b3Jrc3BhY2UtdGl0bGUgc3BhbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5jcm0td29ya2Zsb3ctc3dpdGNoZXItdHJpZ2dlciBpIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIGNvbG9yOiB2YXIoLS1jcm0tbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNTVyZW07XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlO1xufVxuXG4uY3JtLXdvcmtmbG93LXN3aXRjaGVyLXRyaWdnZXI6aG92ZXIgaSxcbi5jcm0td29ya2Zsb3ctc3dpdGNoZXItdHJpZ2dlcjpmb2N1cy12aXNpYmxlIGkge1xuICBjb2xvcjogdmFyKC0td29ya2Zsb3ctY29sb3VyKTtcbn1cblxuLmNybS13b3JrZmxvdy1zd2l0Y2hlcltvcGVuXSAuY3JtLXdvcmtmbG93LXN3aXRjaGVyLXRyaWdnZXIgPiBpIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cblxuLmNybS13b3JrZmxvdy1zd2l0Y2hlci1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IGNhbGMoMTAwJSArIDAuMzVyZW0pO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMzQwcHg7XG4gIG1pbi13aWR0aDogMjMwcHg7XG4gIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDI0cHgpO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTIwcHgpO1xuICBwYWRkaW5nOiAwLjNyZW07XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5jcm0td29ya2Zsb3ctc3dpdGNoZXJbb3Blbl0gPiAuY3JtLXdvcmtmbG93LXN3aXRjaGVyLW1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmNybS13b3JrZmxvdy1zd2l0Y2hlci1tZW51IC5jcm0td29ya2Zsb3ctc3dpdGNoZXItb3B0aW9uIHtcbiAgZGlzcGxheTogZ3JpZCAhaW1wb3J0YW50O1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDhweCBtaW5tYXgoMCwgMWZyKSAxNHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNTVyZW07XG4gIHBhZGRpbmc6IDAuNDVyZW0gMC41cmVtO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzIwMjQyYSkgIWltcG9ydGFudDtcbn1cblxuLmNybS13b3JrZmxvdy1zd2l0Y2hlci1vcHRpb24uYWN0aXZlLFxuLmNybS13b3JrZmxvdy1zd2l0Y2hlci1vcHRpb246YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXdvcmtmbG93LWNvbG91cikgOSUsIHZhcigtLWNybS1zdXJmYWNlKSk7XG59XG5cbi5jcm0td29ya2Zsb3ctc3dpdGNoZXItbWFya2VyIHtcbiAgZ3JpZC1jb2x1bW46IDE7XG4gIGdyaWQtcm93OiAxO1xuICB3aWR0aDogN3B4O1xuICBoZWlnaHQ6IDI2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tc3dpdGNoZXItY29sb3VyKTtcbn1cblxuLmNybS13b3JrZmxvdy1zd2l0Y2hlci1jb3B5IHtcbiAgZ3JpZC1jb2x1bW46IDI7XG4gIGdyaWQtcm93OiAxO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5jcm0td29ya2Zsb3ctc3dpdGNoZXItY29weSBzdHJvbmcsXG4uY3JtLXdvcmtmbG93LXN3aXRjaGVyLWNvcHkgc21hbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5jcm0td29ya2Zsb3ctc3dpdGNoZXItY29weSBzdHJvbmcge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2NTA7XG59XG5cbi5jcm0td29ya2Zsb3ctc3dpdGNoZXItY29weSBzbWFsbCB7XG4gIG1hcmdpbi10b3A6IDAuMDVyZW07XG4gIGNvbG9yOiB2YXIoLS1jcm0tbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNjJyZW07XG59XG5cbi5jcm0td29ya2Zsb3ctc3dpdGNoZXItY2hlY2sge1xuICBncmlkLWNvbHVtbjogMztcbiAgZ3JpZC1yb3c6IDE7XG4gIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICBjb2xvcjogdmFyKC0td29ya2Zsb3ctY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjY1cmVtO1xufVxuXG4uY3JtLXdvcmtzcGFjZS1kZXNjcmlwdGlvbiB7XG4gIG1hcmdpbjogMC4xcmVtIDAgMDtcbiAgY29sb3I6IHZhcigtLWNybS1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5jcm0td29ya3NwYWNlLW5hdiB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLXRvcDogMC41NXJlbTtcbn1cblxuLmNybS12aWV3LXN3aXRjaGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDJweDtcbiAgZ2FwOiAxcHg7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3JtLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY3JtLXN1YnRsZSk7XG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbn1cblxuLmNybS12aWV3LXN3aXRjaGVyOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jcm0tdmlldy1vcHRpb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMC4zNXJlbTtcbiAgbWluLWhlaWdodDogMzBweDtcbiAgcGFkZGluZzogMC4zcmVtIDAuNnJlbTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGNvbG9yOiB2YXIoLS1jcm0tbXV0ZWQpICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNybS12aWV3LW9wdGlvbjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS13b3JrZmxvdy1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS13b3JrZmxvdy1jb2xvdXIpIDYlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5jcm0tdmlldy1vcHRpb24uaXMtYWN0aXZlIHtcbiAgY29sb3I6IHZhcigtLXdvcmtmbG93LWNvbG91cikgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXdvcmtmbG93LWNvbG91cikgOSUsIHZhcigtLWNybS1zdXJmYWNlKSk7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTJweCAwIHZhcigtLXdvcmtmbG93LWNvbG91ciksIDAgMXB4IDNweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIsICMyMDI0MmEpIDEwJSwgdHJhbnNwYXJlbnQpO1xufVxuXG4uY3JtLXZpZXctb3B0aW9uIGkge1xuICBmb250LXNpemU6IDAuODJyZW07XG59XG5cbi5jcm0td29ya3NwYWNlLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMTVyZW07XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4uY3JtLXdvcmtzcGFjZS1hY3Rpb25zIC5tZHVpLWljb24ge1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBtaW4td2lkdGg6IDMycHg7XG59XG5cbi5jcm0td29ya3NwYWNlLW1lbnUge1xuICBtaW4td2lkdGg6IDE5MHB4O1xuICBwYWRkaW5nOiAwLjNyZW07XG59XG5cbi5jcm0td29ya3NwYWNlLW1lbnUgLmRyb3Bkb3duLWl0ZW0ge1xuICBwYWRkaW5nOiAwLjQ1cmVtIDAuNTVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xufVxuXG4uY3JtLXdvcmtzcGFjZS1tZW51IC5kcm9wZG93bi1pdGVtIGkge1xuICB3aWR0aDogMTZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY3JtLWFzc2lnbmVlLWNvdW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0ycHg7XG4gIHJpZ2h0OiAtMnB4O1xuICBtaW4td2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbiAgcGFkZGluZzogMCAzcHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWJhY2tncm91bmQtY29sb3VyLCAjZmZmKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5LWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5LXRleHQtY29sb3VyLCAjZmZmKTtcbiAgZm9udC1zaXplOiAwLjUzcmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMTFweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY3JtLWFzc2lnbmVlLW1lbnUge1xuICB3aWR0aDogMjgwcHg7XG4gIG1heC13aWR0aDogY2FsYygxMDB2dyAtIDI0cHgpO1xuICBwYWRkaW5nOiAwLjM1cmVtO1xufVxuXG4uY3JtLWFzc2lnbmVlLWhlYWRpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDAuMzVyZW0gMC40NXJlbSAwLjQ1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMyMDI0MmEpO1xuICBmb250LXNpemU6IDAuNzJyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5jcm0tYXNzaWduZWUtaGVhZGluZyBzbWFsbCB7XG4gIGNvbG9yOiB2YXIoLS1jcm0tbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNjJyZW07XG59XG5cbi5jcm0tYXNzaWduZWUtbGlzdCB7XG4gIG1heC1oZWlnaHQ6IDI4MHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4uY3JtLWFzc2lnbmVlLXJvdyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzBweCBtaW5tYXgoMCwgMWZyKSBhdXRvO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgbWluLWhlaWdodDogNDBweDtcbiAgcGFkZGluZzogMC4zcmVtIDAuNHJlbTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4uY3JtLWFzc2lnbmVlLXJvdzpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNybS1zdWJ0bGUpO1xufVxuXG4uY3JtLWFzc2lnbmVlLWF2YXRhciB7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY3JtLXN1YnRsZSk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzIwMjQyYSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDAuNjhyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5jcm0tYXNzaWduZWUtYXZhdGFyIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4uY3JtLWFzc2lnbmVlLW5hbWUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMyMDI0MmEpO1xuICBmb250LXNpemU6IDAuNzJyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uY3JtLWFzc2lnbmVlLXJvbGUge1xuICBjb2xvcjogdmFyKC0tY3JtLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjZyZW07XG59XG5cbi5jcm0tYXNzaWduZWUtZW1wdHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgcGFkZGluZzogMC43NXJlbSAwLjQ1cmVtO1xuICBjb2xvcjogdmFyKC0tY3JtLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjdyZW07XG59XG5cbi5jcm0tYXNzaWduZWUtZm9vdGVyIHtcbiAgbWFyZ2luLXRvcDogMC4zcmVtO1xuICBwYWRkaW5nLXRvcDogMC4zcmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY3JtLWJvcmRlcik7XG59XG5cbi5jcm0tYXNzaWduZWUtZm9vdGVyIC5kcm9wZG93bi1pdGVtIHtcbiAgcGFkZGluZzogMC40NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LXNpemU6IDAuN3JlbTtcbn1cblxuLmNybS13b3Jrc3BhY2UtYm9keSB7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLyogS2FuYmFuOiBtb3JlIGluZm9ybWF0aW9uIGFuZCBtb3JlIGNvbHVtbnMgYWJvdmUgdGhlIGZvbGQuICovXG4uY3JtLXdvcmtzcGFjZSAua2FuYmFuLWJvYXJkIHtcbiAgcGFkZGluZzogMC42NXJlbSAxcmVtIDFyZW0gIWltcG9ydGFudDtcbn1cblxuLmNybS13b3Jrc3BhY2UgLmthbmJhbi1jb2x1bW5zLWNvbnRhaW5lciB7XG4gIGdhcDogMC42NXJlbTtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5jcm0td29ya3NwYWNlIC5rYW5iYW4tY29sdW1uLXdyYXBwZXIge1xuICBtaW4td2lkdGg6IDI2OHB4O1xuICB3aWR0aDogMjY4cHg7XG59XG5cbi5jcm0td29ya3NwYWNlIC5rYW5iYW4tY29sdW1uIHtcbiAgd2lkdGg6IDI2OHB4O1xuICBtaW4td2lkdGg6IDI2OHB4O1xuICBtYXgtd2lkdGg6IDI2OHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcm0tYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jcm0tc3VidGxlKTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLmNybS13b3Jrc3BhY2UgLmthbmJhbi1oZWFkZXIge1xuICBwYWRkaW5nOiAwLjY1cmVtIDAuN3JlbSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1cHggNXB4IDAgMCAhaW1wb3J0YW50O1xufVxuXG4uY3JtLXdvcmtzcGFjZSAua2FuYmFuLWhlYWRlciBoNSB7XG4gIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG59XG5cbi5jcm0td29ya3NwYWNlIC5rYW5iYW4taGVhZGVyIC5zdGFnZS1jb3VudGVyLFxuLmNybS13b3Jrc3BhY2UgLmthbmJhbi1oZWFkZXIgLnN0YWdlLXByb2JhYmlsaXR5IHtcbiAgZm9udC1zaXplOiAwLjY1cmVtO1xufVxuXG4uY3JtLXdvcmtzcGFjZSAua2FuYmFuLWJvZHkge1xuICBtaW4taGVpZ2h0OiAxMjBweCAhaW1wb3J0YW50O1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjQ1cHgpO1xuICBwYWRkaW5nOiAwLjQ1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5jcm0td29ya3NwYWNlIC5xdW90ZS1jYXJkIHtcbiAgbWFyZ2luLWJvdHRvbTogMC40cmVtICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNybS1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDJweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIsICMyMDI0MmEpIDglLCB0cmFuc3BhcmVudCkgIWltcG9ydGFudDtcbn1cblxuLmNybS13b3Jrc3BhY2UgLnF1b3RlLWNhcmQgLmNhcmQtaW1hZ2UtZmllbGQgaW1nIHtcbiAgaGVpZ2h0OiA3NnB4O1xufVxuXG4uY3JtLXdvcmtzcGFjZSAucXVvdGUtY2FyZCAuY2FyZC1maWVsZC1pdGVtIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG4uY3JtLXdvcmtzcGFjZSAuc3RhZ2Utc29ydC1jb250cm9scyB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydCAhaW1wb3J0YW50O1xufVxuXG4uY3JtLXdvcmtzcGFjZSAuc3RhZ2Utc29ydC1jb250cm9scyAuc29ydC1idG4ge1xuICB3aWR0aDogMjdweDtcbiAgaGVpZ2h0OiAyN3B4O1xufVxuXG4vKiBTcHJlYWRzaGVldCBhbmQgbGlzdCBzaGFyZSBjb21wYWN0IHRhYmxlLWxpa2Ugcmh5dGhtLiAqL1xuLmNybS13b3Jrc3BhY2UgLnNwcmVhZHNoZWV0LWNvbnRhaW5lcixcbi5jcm0td29ya3NwYWNlIC5saXN0LXZpZXctY29udGFpbmVyLFxuLmNybS13b3Jrc3BhY2UgLmNvbGxhYm9yYXRpb24tdmlldy1jb250YWluZXIge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC43NXJlbSAxcmVtIDFyZW0gIWltcG9ydGFudDtcbn1cblxuLmNybS13b3Jrc3BhY2UgLnNwcmVhZHNoZWV0LXRhYmxlLWNvbnRhaW5lciB7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLmNybS13b3Jrc3BhY2UgLnNwcmVhZHNoZWV0LXRhYmxlIHRoIHtcbiAgcGFkZGluZzogMC40OHJlbSAwLjU1cmVtO1xuICBmb250LXNpemU6IDAuN3JlbTtcbn1cblxuLmNybS13b3Jrc3BhY2UgLnNwcmVhZHNoZWV0LXRhYmxlIHRkIHtcbiAgcGFkZGluZzogMC40MnJlbSAwLjU1cmVtO1xuICBmb250LXNpemU6IDAuNzZyZW07XG59XG5cbi5jcm0td29ya3NwYWNlIC5zcHJlYWRzaGVldC10YWJsZSAuc3RhZ2UtaGVhZGVyLXJvdyB0ZCB7XG4gIHBhZGRpbmctdG9wOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4uY3JtLXdvcmtzcGFjZSAuc3ByZWFkc2hlZXQtdGFibGUgLnN0YWdlLWhlYWRlci1yb3cgaDUge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG59XG5cbi5jcm0td29ya3NwYWNlIC5zcHJlYWRzaGVldC10YWJsZSB0aC5zb3J0YWJsZS1oZWFkZXI6aG92ZXIsXG4uY3JtLXdvcmtzcGFjZSAuc3ByZWFkc2hlZXQtdGFibGUgdGguc29ydGFibGUtaGVhZGVyLnNvcnRlZC1hc2MsXG4uY3JtLXdvcmtzcGFjZSAuc3ByZWFkc2hlZXQtdGFibGUgdGguc29ydGFibGUtaGVhZGVyLnNvcnRlZC1kZXNjIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSA3JSwgdmFyKC0tY2FyZC1jb2xvdXIpKSAhaW1wb3J0YW50O1xufVxuXG4uY3JtLXdvcmtzcGFjZSAuc3ByZWFkc2hlZXQtdGFibGUudGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyLnF1b3RlLXJvdzpob3ZlciA+IHRkIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDYlLCB2YXIoLS1jYXJkLWNvbG91cikpICFpbXBvcnRhbnQ7XG59XG5cbi5jcm0td29ya3NwYWNlIC5zcHJlYWRzaGVldC10YWJsZS50YWJsZS1ob3ZlciA+IHRib2R5ID4gdHIuc3RhZ2UtaGVhZGVyLXJvdzpob3ZlciA+IHRkIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLmNybS13b3Jrc3BhY2UgLnNwcmVhZHNoZWV0LXRhYmxlIHRib2R5IHRyOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uc3ByZWFkc2hlZXQtc3RhZ2UtYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zNXJlbTtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5jcm0tbGlzdC10b29sYmFyIHtcbiAgcGFkZGluZzogMC41NXJlbSAwLjY1cmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAuNTVyZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3JtLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLmNybS1saXN0LXZpZXctdG9nZ2xlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1sZWZ0OiAwLjJyZW07XG4gIHBhZGRpbmctbGVmdDogMC4yNXJlbTtcbiAgZ2FwOiAwO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWNybS1ib3JkZXIpO1xufVxuXG4uY3JtLWxpc3Qtdmlldy1idXR0b24ge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jcm0tbXV0ZWQpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNybS1saXN0LXZpZXctYnV0dG9uOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjAyNDJhKTtcbn1cblxuLmNybS1saXN0LXZpZXctYnV0dG9uLmFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS13b3JrZmxvdy1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0td29ya2Zsb3ctY29sb3VyKSAxMCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLmNybS1saXN0LXZpZXctYnV0dG9uIGkge1xuICBmb250LXNpemU6IDAuN3JlbTtcbn1cblxuLndvcmtmbG93LXF1b3Rlcy12aWV3IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAwLjRyZW07XG59XG5cbi53b3JrZmxvdy1xdW90ZS1pdGVtIHtcbiAgbWluLXdpZHRoOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcm0tYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jcm0tc3VyZmFjZSk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLCBib3gtc2hhZG93IDAuMTVzIGVhc2UsIHRyYW5zZm9ybSAwLjE1cyBlYXNlO1xufVxuXG4ud29ya2Zsb3ctcXVvdGUtaXRlbTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXdvcmtmbG93LWNvbG91cikgNDglLCB2YXIoLS1jcm0tYm9yZGVyKSk7XG4gIGJveC1zaGFkb3c6IDAgM3B4IDEwcHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyLCAjMjAyNDJhKSA5JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4ud29ya2Zsb3ctcXVvdGUtbGluayB7XG4gIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4ud29ya2Zsb3ctcXVvdGUtaW1hZ2UsXG4ud29ya2Zsb3ctcXVvdGUtaW1hZ2UtcGxhY2Vob2xkZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNybS1zdWJ0bGUpO1xufVxuXG4ud29ya2Zsb3ctcXVvdGUtaW1hZ2UtcGxhY2Vob2xkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLWNybS1tdXRlZCk7XG59XG5cbi53b3JrZmxvdy1xdW90ZS1wcmltYXJ5IHtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4ud29ya2Zsb3ctcXVvdGUtbmFtZSB7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjAyNDJhKTtcbiAgZm9udC1zaXplOiAwLjgycmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi53b3JrZmxvdy1xdW90ZS1hZGRyZXNzIHtcbiAgbWFyZ2luOiAwLjEycmVtIDAgMDtcbiAgY29sb3I6IHZhcigtLWNybS1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC42OHJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi53b3JrZmxvdy1zdGFnZS1waWxsIHtcbiAgLS1zdGFnZS1jb2xvdXI6IHZhcigtLXByaW1hcnktY29sb3VyKTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zNXJlbTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwLjIycmVtIDAuNDVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zdGFnZS1jb2xvdXIpIDMwJSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjAyNDJhKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXN0YWdlLWNvbG91cikgOSUsIHZhcigtLWNybS1zdXJmYWNlKSk7XG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLndvcmtmbG93LXN0YWdlLWRvdCB7XG4gIHdpZHRoOiA2cHg7XG4gIGhlaWdodDogNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLXN0YWdlLWNvbG91cik7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4ud29ya2Zsb3ctc3RhZ2UtcGlsbC5pcy11bmFzc2lnbmVkIHtcbiAgLS1zdGFnZS1jb2xvdXI6ICNiODgyMDA7XG59XG5cbi53b3JrZmxvdy1xdW90ZS1maWVsZHMge1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi53b3JrZmxvdy1xdW90ZS1maWVsZCB7XG4gIG1pbi13aWR0aDogMDtcbiAgZm9udC1zaXplOiAwLjdyZW07XG59XG5cbi53b3JrZmxvdy1xdW90ZS1maWVsZCAuY2FyZC1maWVsZC1pdGVtIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4ud29ya2Zsb3ctcXVvdGUtdXBkYXRlZCB7XG4gIGNvbG9yOiB2YXIoLS1jcm0tbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNjJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ud29ya2Zsb3ctcXVvdGUtdXBkYXRlZCBzcGFuLFxuLndvcmtmbG93LXF1b3RlLXVwZGF0ZWQgc3Ryb25nIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi53b3JrZmxvdy1xdW90ZS11cGRhdGVkIHN0cm9uZyB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzIwMjQyYSk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi53b3JrZmxvdy1xdW90ZS1jaGV2cm9uIHtcbiAgY29sb3I6IHZhcigtLWNybS1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xufVxuXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtcm93cyAud29ya2Zsb3ctcXVvdGUtbGluayB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzhweCBtaW5tYXgoMTUwcHgsIDEuNGZyKSBtaW5tYXgoMTEwcHgsIDAuNjVmcikgbWlubWF4KDE4MHB4LCAxZnIpIDcycHggMTRweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjdyZW07XG4gIG1pbi1oZWlnaHQ6IDU0cHg7XG4gIHBhZGRpbmc6IDAuNDJyZW0gMC42NXJlbTtcbn1cblxuLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLXJvd3MgLndvcmtmbG93LXF1b3RlLWltYWdlLFxuLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLXJvd3MgLndvcmtmbG93LXF1b3RlLWltYWdlLXBsYWNlaG9sZGVyIHtcbiAgd2lkdGg6IDM4cHg7XG4gIGhlaWdodDogMzhweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtcm93cyAud29ya2Zsb3ctcXVvdGUtZmllbGRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjc1cmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtcm93cyAud29ya2Zsb3ctcXVvdGUtZmllbGQge1xuICBmbGV4OiAxIDEgMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLWNhcmRzIHtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjMwcHgsIDFmcikpO1xuICBnYXA6IDAuN3JlbTtcbn1cblxuLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLWNhcmRzIC53b3JrZmxvdy1xdW90ZS1pdGVtOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtY2FyZHMgLndvcmtmbG93LXF1b3RlLWxpbmsge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciBhdXRvO1xuICBncmlkLXRlbXBsYXRlLWFyZWFzOiBcInZpc3VhbCB2aXN1YWxcIiBcInByaW1hcnkgc3RhZ2VcIiBcImZpZWxkcyBmaWVsZHNcIiBcInVwZGF0ZWQgYXJyb3dcIjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjY1cmVtO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiAwLjY1cmVtO1xufVxuXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtY2FyZHMgLndvcmtmbG93LXF1b3RlLXZpc3VhbCB7XG4gIGdyaWQtYXJlYTogdmlzdWFsO1xufVxuXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtY2FyZHMgLndvcmtmbG93LXF1b3RlLWltYWdlLFxuLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLWNhcmRzIC53b3JrZmxvdy1xdW90ZS1pbWFnZS1wbGFjZWhvbGRlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDExMnB4O1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtY2FyZHMgLndvcmtmbG93LXF1b3RlLWltYWdlLXBsYWNlaG9sZGVyIGkge1xuICBmb250LXNpemU6IDEuNnJlbTtcbn1cblxuLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLWNhcmRzIC53b3JrZmxvdy1xdW90ZS1wcmltYXJ5IHtcbiAgZ3JpZC1hcmVhOiBwcmltYXJ5O1xuICBwYWRkaW5nLWxlZnQ6IDAuN3JlbTtcbn1cblxuLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLWNhcmRzIC53b3JrZmxvdy1xdW90ZS1zdGFnZSB7XG4gIGdyaWQtYXJlYTogc3RhZ2U7XG4gIHBhZGRpbmctcmlnaHQ6IDAuN3JlbTtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtY2FyZHMgLndvcmtmbG93LXF1b3RlLWZpZWxkcyB7XG4gIGdyaWQtYXJlYTogZmllbGRzO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gIGdhcDogMC4zNXJlbSAwLjdyZW07XG4gIHBhZGRpbmc6IDAuNnJlbSAwLjdyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jcm0tYm9yZGVyKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNybS1ib3JkZXIpO1xufVxuXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtY2FyZHMgLndvcmtmbG93LXF1b3RlLXVwZGF0ZWQge1xuICBncmlkLWFyZWE6IHVwZGF0ZWQ7XG4gIHBhZGRpbmctbGVmdDogMC43cmVtO1xufVxuXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtY2FyZHMgLndvcmtmbG93LXF1b3RlLWNoZXZyb24ge1xuICBncmlkLWFyZWE6IGFycm93O1xuICBwYWRkaW5nLXJpZ2h0OiAwLjdyZW07XG59XG5cbi8qIFNoYXJlZCBxdW90ZSBjYXJkOiBxdW90ZXMgaW5kZXggYW5kIHdvcmtmbG93IGxpc3QgdXNlIHRoZSBzYW1lIGluZm9ybWF0aW9uIGhpZXJhcmNoeS4gKi9cbi5xdW90ZS1saXN0LWNhcmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi13aWR0aDogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3JtLWJvcmRlciwgdmFyKC0tYm9yZGVyLWNvbG91cikpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNybS1zdXJmYWNlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xuICBib3gtc2hhZG93OiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZSwgYm94LXNoYWRvdyAwLjE1cyBlYXNlLCB0cmFuc2Zvcm0gMC4xNXMgZWFzZTtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXByaW1hcnktY29sb3VyKSA0NSUsIHZhcigtLWNybS1ib3JkZXIsIHZhcigtLWJvcmRlci1jb2xvdXIpKSk7XG4gIGJveC1zaGFkb3c6IDAgM3B4IDEwcHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA5JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4uY3JtLXdvcmtzcGFjZSAucXVvdGUtbGlzdC1jYXJkOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0td29ya2Zsb3ctY29sb3VyKSA0OCUsIHZhcigtLWNybS1ib3JkZXIpKTtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZF9fbGluayB7XG4gIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkX19pbWFnZSxcbi5xdW90ZS1saXN0LWNhcmRfX2ltYWdlLXBsYWNlaG9sZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgYmFja2dyb3VuZDogdmFyKC0tY3JtLXN1YnRsZSwgdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpKTtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZF9faW1hZ2UtcGxhY2Vob2xkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLWNybS1tdXRlZCwgdmFyKC0tdGV4dC1jb2xvdXIpKTtcbiAgb3BhY2l0eTogMC43O1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkX19wcmltYXJ5IHtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkX19uYW1lIHtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDAuODJyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZF9fYWRkcmVzcyB7XG4gIG1hcmdpbjogMC4xMnJlbSAwIDA7XG4gIGNvbG9yOiB2YXIoLS1jcm0tbXV0ZWQsIHZhcigtLXRleHQtY29sb3VyKSk7XG4gIG9wYWNpdHk6IDAuNztcbiAgZm9udC1zaXplOiAwLjY4cmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZF9fY2xpZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjI4cmVtO1xuICBtYXJnaW46IDAuMThyZW0gMCAwO1xuICBjb2xvcjogdmFyKC0tY3JtLW11dGVkLCB2YXIoLS10ZXh0LWNvbG91cikpO1xuICBmb250LXNpemU6IDAuNjRyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkX19jbGllbnQgaSB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5xdW90ZS1saXN0LWNhcmRfX2JhZGdlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjI1cmVtO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5xdW90ZS1saXN0LWNhcmRfX2JhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4yMnJlbTtcbiAgcGFkZGluZzogMC4xNnJlbSAwLjM1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcHJpbWFyeS1jb2xvdXIpIDI1JSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wcmltYXJ5LWNvbG91cikgOCUsIHZhcigtLWNybS1zdXJmYWNlLCB2YXIoLS1jYXJkLWNvbG91cikpKTtcbiAgZm9udC1zaXplOiAwLjU4cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkX19iYWRnZS5pcy1zaWduZWQge1xuICBjb2xvcjogdmFyKC0tc3VjY2Vzcy1jb2xvdXIsICMxODc5NGUpO1xuICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zdWNjZXNzLWNvbG91ciwgIzE4Nzk0ZSkgMzAlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5xdW90ZS1saXN0LWNhcmRfX2JhZGdlLmlzLWluY29tcGxldGUge1xuICBjb2xvcjogdmFyKC0tZGFuZ2VyLWNvbG91ciwgI2I0MjMxOCk7XG4gIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWRhbmdlci1jb2xvdXIsICNiNDIzMTgpIDI1JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkX19iYWRnZS5pcy1tdXRlZCB7XG4gIG9wYWNpdHk6IDAuNjU7XG59XG5cbi5xdW90ZS1saXN0LWNhcmRfX3N0YWdlLXBpbGwge1xuICAtLXN0YWdlLWNvbG91cjogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjM1cmVtO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuMjJyZW0gMC40NXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXN0YWdlLWNvbG91cikgMzAlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc3RhZ2UtY29sb3VyKSA5JSwgdmFyKC0tY3JtLXN1cmZhY2UsIHZhcigtLWNhcmQtY29sb3VyKSkpO1xuICBmb250LXNpemU6IDAuNjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkX19zdGFnZS1waWxsID4gc3BhbiB7XG4gIHdpZHRoOiA2cHg7XG4gIGhlaWdodDogNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLXN0YWdlLWNvbG91cik7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkX19zdGFnZS1waWxsLmlzLXVuYXNzaWduZWQge1xuICAtLXN0YWdlLWNvbG91cjogI2I4ODIwMDtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZF9fZmllbGRzIHtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkX19maWVsZCB7XG4gIG1pbi13aWR0aDogMDtcbiAgZm9udC1zaXplOiAwLjdyZW07XG59XG5cbi5xdW90ZS1saXN0LWNhcmRfX2ZpZWxkIC5jYXJkLWZpZWxkLWl0ZW0ge1xuICBtYXJnaW46IDA7XG59XG5cbi5xdW90ZS1saXN0LWNhcmRfX3VwZGF0ZWQge1xuICBjb2xvcjogdmFyKC0tY3JtLW11dGVkLCB2YXIoLS10ZXh0LWNvbG91cikpO1xuICBvcGFjaXR5OiAwLjc7XG4gIGZvbnQtc2l6ZTogMC42MnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5xdW90ZS1saXN0LWNhcmRfX3VwZGF0ZWQgc3Bhbixcbi5xdW90ZS1saXN0LWNhcmRfX3VwZGF0ZWQgc3Ryb25nIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5xdW90ZS1saXN0LWNhcmRfX3VwZGF0ZWQgc3Ryb25nIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZF9fY2hldnJvbiB7XG4gIGNvbG9yOiB2YXIoLS1jcm0tbXV0ZWQsIHZhcigtLXRleHQtY29sb3VyKSk7XG4gIG9wYWNpdHk6IDAuNztcbiAgZm9udC1zaXplOiAwLjdyZW07XG59XG5cbi5xdW90ZS1saXN0LWNhcmRfX2FjdGlvbnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgdG9wOiAwLjM1cmVtO1xuICByaWdodDogMC4zNXJlbTtcbiAgei1pbmRleDogMztcbn1cblxuLnF1b3RlLWxpc3QtY2FyZF9fYWN0aW9ucyAubWR1aS1pY29uIHtcbiAgd2lkdGg6IDI3cHg7XG4gIGhlaWdodDogMjdweDtcbiAgbWluLXdpZHRoOiAyN3B4O1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY3JtLXN1cmZhY2UsIHZhcigtLWNhcmQtY29sb3VyKSkgODglLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkLS1yb3cgLnF1b3RlLWxpc3QtY2FyZF9fYWN0aW9ucyB7XG4gIHRvcDogNTAlO1xuICByaWdodDogMS44cmVtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG59XG5cbi5xdW90ZS1saXN0LWNhcmQtLXJvdyB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICB6LWluZGV4OiAwO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkLS1yb3c6aGFzKC5kcm9wZG93bi1tZW51LnNob3cpIHtcbiAgei1pbmRleDogMTEwMDtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZC0tcm93IC5kcm9wZG93bi1tZW51LnNob3cge1xuICB6LWluZGV4OiAxMTAxICFpbXBvcnRhbnQ7XG59XG5cbi5xdW90ZS1saXN0LWNhcmQtLWNhcmQsXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtY2FyZHMgLnF1b3RlLWxpc3QtY2FyZC0tcmVzcG9uc2l2ZSB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZC0tY2FyZDpob3Zlcixcbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1jYXJkcyAucXVvdGUtbGlzdC1jYXJkLS1yZXNwb25zaXZlOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkLS1jYXJkIC5xdW90ZS1saXN0LWNhcmRfX2xpbmssXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtY2FyZHMgLnF1b3RlLWxpc3QtY2FyZC0tcmVzcG9uc2l2ZSAucXVvdGUtbGlzdC1jYXJkX19saW5rIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBhdXRvO1xuICBncmlkLXRlbXBsYXRlLWFyZWFzOiBcInZpc3VhbCB2aXN1YWxcIiBcInByaW1hcnkgc3RhZ2VcIiBcImJhZGdlcyBiYWRnZXNcIiBcImZpZWxkcyBmaWVsZHNcIiBcInVwZGF0ZWQgYXJyb3dcIjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjZyZW07XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiAwLjY1cmVtO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkLS1jYXJkIC5xdW90ZS1saXN0LWNhcmRfX3Zpc3VhbCxcbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1jYXJkcyAucXVvdGUtbGlzdC1jYXJkLS1yZXNwb25zaXZlIC5xdW90ZS1saXN0LWNhcmRfX3Zpc3VhbCB7XG4gIGdyaWQtYXJlYTogdmlzdWFsO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkLS1jYXJkIC5xdW90ZS1saXN0LWNhcmRfX2ltYWdlLFxuLnF1b3RlLWxpc3QtY2FyZC0tY2FyZCAucXVvdGUtbGlzdC1jYXJkX19pbWFnZS1wbGFjZWhvbGRlcixcbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1jYXJkcyAucXVvdGUtbGlzdC1jYXJkLS1yZXNwb25zaXZlIC5xdW90ZS1saXN0LWNhcmRfX2ltYWdlLFxuLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLWNhcmRzIC5xdW90ZS1saXN0LWNhcmQtLXJlc3BvbnNpdmUgLnF1b3RlLWxpc3QtY2FyZF9faW1hZ2UtcGxhY2Vob2xkZXIge1xuICBoZWlnaHQ6IDExMnB4O1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkLS1jYXJkIC5xdW90ZS1saXN0LWNhcmRfX3ByaW1hcnksXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtY2FyZHMgLnF1b3RlLWxpc3QtY2FyZC0tcmVzcG9uc2l2ZSAucXVvdGUtbGlzdC1jYXJkX19wcmltYXJ5IHtcbiAgZ3JpZC1hcmVhOiBwcmltYXJ5O1xuICBwYWRkaW5nLWxlZnQ6IDAuN3JlbTtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZC0tY2FyZCAucXVvdGUtbGlzdC1jYXJkX19zdGFnZSxcbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1jYXJkcyAucXVvdGUtbGlzdC1jYXJkLS1yZXNwb25zaXZlIC5xdW90ZS1saXN0LWNhcmRfX3N0YWdlIHtcbiAgZ3JpZC1hcmVhOiBzdGFnZTtcbiAgcGFkZGluZy1yaWdodDogMC43cmVtO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5xdW90ZS1saXN0LWNhcmQtLWNhcmQgLnF1b3RlLWxpc3QtY2FyZF9fYmFkZ2VzLFxuLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLWNhcmRzIC5xdW90ZS1saXN0LWNhcmQtLXJlc3BvbnNpdmUgLnF1b3RlLWxpc3QtY2FyZF9fYmFkZ2VzIHtcbiAgZ3JpZC1hcmVhOiBiYWRnZXM7XG4gIHBhZGRpbmc6IDAgMC43cmVtO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkLS1jYXJkIC5xdW90ZS1saXN0LWNhcmRfX2ZpZWxkcyxcbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1jYXJkcyAucXVvdGUtbGlzdC1jYXJkLS1yZXNwb25zaXZlIC5xdW90ZS1saXN0LWNhcmRfX2ZpZWxkcyB7XG4gIGdyaWQtYXJlYTogZmllbGRzO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gIGdhcDogMC4zNXJlbSAwLjdyZW07XG4gIHBhZGRpbmc6IDAuNnJlbSAwLjdyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jcm0tYm9yZGVyLCB2YXIoLS1ib3JkZXItY29sb3VyKSk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jcm0tYm9yZGVyLCB2YXIoLS1ib3JkZXItY29sb3VyKSk7XG59XG5cbi5xdW90ZS1saXN0LWNhcmQtLWNhcmQgLnF1b3RlLWxpc3QtY2FyZF9fdXBkYXRlZCxcbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1jYXJkcyAucXVvdGUtbGlzdC1jYXJkLS1yZXNwb25zaXZlIC5xdW90ZS1saXN0LWNhcmRfX3VwZGF0ZWQge1xuICBncmlkLWFyZWE6IHVwZGF0ZWQ7XG4gIHBhZGRpbmctbGVmdDogMC43cmVtO1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkLS1jYXJkIC5xdW90ZS1saXN0LWNhcmRfX2NoZXZyb24sXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtY2FyZHMgLnF1b3RlLWxpc3QtY2FyZC0tcmVzcG9uc2l2ZSAucXVvdGUtbGlzdC1jYXJkX19jaGV2cm9uIHtcbiAgZ3JpZC1hcmVhOiBhcnJvdztcbiAganVzdGlmeS1zZWxmOiBlbmQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAuN3JlbTtcbn1cblxuLnF1b3RlLWxpc3QtY2FyZC0tcm93IC5xdW90ZS1saXN0LWNhcmRfX2xpbmssXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtcm93cyAucXVvdGUtbGlzdC1jYXJkLS1yZXNwb25zaXZlIC5xdW90ZS1saXN0LWNhcmRfX2xpbmsge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDM4cHggbWlubWF4KDE0MHB4LCAxLjI1ZnIpIG1pbm1heCgxNTBweCwgYXV0bykgbWlubWF4KDEwNXB4LCAwLjU1ZnIpIG1pbm1heCgxMjBweCwgMC43NWZyKSA3MnB4IDE0cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC42NXJlbTtcbiAgbWluLWhlaWdodDogNTRweDtcbiAgcGFkZGluZzogMC40MnJlbSAwLjY1cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAyLjVyZW07XG59XG5cbi5xdW90ZS1saXN0LWNhcmQtLXJvdyAucXVvdGUtbGlzdC1jYXJkX19pbWFnZSxcbi5xdW90ZS1saXN0LWNhcmQtLXJvdyAucXVvdGUtbGlzdC1jYXJkX19pbWFnZS1wbGFjZWhvbGRlcixcbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1yb3dzIC5xdW90ZS1saXN0LWNhcmQtLXJlc3BvbnNpdmUgLnF1b3RlLWxpc3QtY2FyZF9faW1hZ2UsXG4ud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtcm93cyAucXVvdGUtbGlzdC1jYXJkLS1yZXNwb25zaXZlIC5xdW90ZS1saXN0LWNhcmRfX2ltYWdlLXBsYWNlaG9sZGVyIHtcbiAgd2lkdGg6IDM4cHg7XG4gIGhlaWdodDogMzhweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4ucXVvdGUtbGlzdC1jYXJkLS1yb3cgLnF1b3RlLWxpc3QtY2FyZF9fZmllbGRzLFxuLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLXJvd3MgLnF1b3RlLWxpc3QtY2FyZC0tcmVzcG9uc2l2ZSAucXVvdGUtbGlzdC1jYXJkX19maWVsZHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNzVyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5xdW90ZS1saXN0LWNhcmQtLXJvdyAucXVvdGUtbGlzdC1jYXJkX19maWVsZCxcbi53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1yb3dzIC5xdW90ZS1saXN0LWNhcmQtLXJlc3BvbnNpdmUgLnF1b3RlLWxpc3QtY2FyZF9fZmllbGQge1xuICBmbGV4OiAxIDEgMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogQ29sbGFib3JhdGlvbiByZWFkcyBsaWtlIGEgZm9jdXNlZCB0ZWFtIGNvbnNvbGUsIG5vdCB0d28gZmxvYXRpbmcgY2FyZHMuICovXG4uY3JtLWNvbGxhYm9yYXRpb24tZ3JpZCB7XG4gIC0tYnMtZ3V0dGVyLXg6IC43NXJlbTtcbiAgLS1icy1ndXR0ZXIteTogLjc1cmVtO1xufVxuXG4uY3JtLWNvbGxhYm9yYXRpb24tcGFuZWwge1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxOTBweCkgIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogNTIwcHg7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcm0tYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jcm0tc3VyZmFjZSk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5jcm0tY29udmVyc2F0aW9uID4gdHVyYm8tZnJhbWUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDA7XG59XG5cbi5jcm0tY29sbGFib3JhdGlvbi1oZWFkZXIge1xuICBtaW4taGVpZ2h0OiA1OHB4O1xuICBwYWRkaW5nOiAwLjY1cmVtIDAuOHJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNybS1ib3JkZXIpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMC43NXJlbTtcbn1cblxuLmNybS1jb2xsYWJvcmF0aW9uLXRpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuODZyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xufVxuXG4uY3JtLWNvbGxhYm9yYXRpb24tc3VidGl0bGUge1xuICBtYXJnaW46IDAuMXJlbSAwIDA7XG4gIGNvbG9yOiB2YXIoLS1jcm0tbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNjZyZW07XG59XG5cbi5jcm0tcGFydGljaXBhbnRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZy1yaWdodDogMC4yNXJlbTtcbn1cblxuLmNybS1wYXJ0aWNpcGFudC1hdmF0YXIsXG4uY3JtLXBhcnRpY2lwYW50LW1vcmUge1xuICB3aWR0aDogMjdweDtcbiAgaGVpZ2h0OiAyN3B4O1xuICBtYXJnaW4tcmlnaHQ6IC02cHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNybS1zdXJmYWNlKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jcm0tc3VidGxlKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjAyNDJhKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC42M3JlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNybS1wYXJ0aWNpcGFudC1hdmF0YXIgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5jcm0tcGFydGljaXBhbnQtbW9yZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXByaW1hcnktdGV4dC1jb2xvdXIsICNmZmYpO1xufVxuXG4uY3JtLW1lc3NhZ2Utc3RyZWFtIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIHBhZGRpbmc6IDFyZW0gMS4xcmVtICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91ciwgI2ZmZikgNDUlLCB2YXIoLS1jcm0tc3VyZmFjZSkpO1xuICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XG59XG5cbi5jcm0tbWVzc2FnZSB7XG4gIG1hcmdpbjogMCAwIDAuODVyZW07XG59XG5cbi5jcm0tbWVzc2FnZS1sYXlvdXQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAwLjU1cmVtO1xufVxuXG4uY3JtLW1lc3NhZ2UtbGF5b3V0LmlzLW93biB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbn1cblxuLmNybS1tZXNzYWdlLWF2YXRhci1pbWFnZSxcbi5jcm0tbWVzc2FnZS1hdmF0YXItcGxhY2Vob2xkZXIge1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4uY3JtLW1lc3NhZ2UtYXZhdGFyLXBsYWNlaG9sZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXByaW1hcnktdGV4dC1jb2xvdXIsICNmZmYpO1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLmNybS1tZXNzYWdlIC5tZXNzYWdlLWJ1YmJsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBtYXgtd2lkdGg6IG1pbig3MiUsIDYyMHB4KTtcbiAgcGFkZGluZzogMC41NXJlbSAwLjdyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNybS1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzIwMjQyYSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNybS1zdXJmYWNlKTtcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91ciwgIzIwMjQyYSkgNSUsIHRyYW5zcGFyZW50KTtcbn1cblxuLmNybS1tZXNzYWdlIC5tZXNzYWdlLWJ1YmJsZS1vd24ge1xuICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wcmltYXJ5LWNvbG91cikgMjglLCB2YXIoLS1jcm0tYm9yZGVyKSk7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wcmltYXJ5LWNvbG91cikgNyUsIHZhcigtLWNybS1zdXJmYWNlKSkgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjAyNDJhKSAhaW1wb3J0YW50O1xufVxuXG4uY3JtLW1lc3NhZ2UgLm1lc3NhZ2UtYnViYmxlLW93bjo6YWZ0ZXIge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5jcm0tbWVzc2FnZSAubWVzc2FnZS1idWJibGU6aG92ZXIge1xuICB0cmFuc2Zvcm06IG5vbmU7XG59XG5cbi5jcm0tbWVzc2FnZSAubWVzc2FnZS1idWJibGUtb3duIC50ZXh0LW11dGVkIHtcbiAgY29sb3I6IHZhcigtLWNybS1tdXRlZCkgIWltcG9ydGFudDtcbn1cblxuLmNybS1tZXNzYWdlIC5tZXNzYWdlLWhlYWRlciB7XG4gIGdhcDogMC44cmVtO1xufVxuXG4uY3JtLW1lc3NhZ2UgLm1lc3NhZ2UtaGVhZGVyIHN0cm9uZyB7XG4gIGZvbnQtc2l6ZTogMC42OXJlbTtcbn1cblxuLmNybS1tZXNzYWdlIC5tZXNzYWdlLWhlYWRlciBzbWFsbCB7XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xufVxuXG4uY3JtLW1lc3NhZ2UgLm1lc3NhZ2UtY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDI7XG59XG5cbi5jcm0tbWVzc2FnZSAubWVzc2FnZS1jb250ZW50ID4gZGl2LFxuLmNybS1tZXNzYWdlIC5tZXNzYWdlLWNvbnRlbnQgcDpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmNybS1tZXNzYWdlIC5tZXNzYWdlLWFjdGlvbnMge1xuICBvcGFjaXR5OiAwO1xuICBtYXJnaW4tdG9wOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTtcbn1cblxuLmNybS1tZXNzYWdlOmhvdmVyIC5tZXNzYWdlLWFjdGlvbnMge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY3JtLW1lc3NhZ2UgLm1lc3NhZ2UtYWN0aW9ucyAubWR1aS1pY29uIHtcbiAgd2lkdGg6IDI1cHg7XG4gIGhlaWdodDogMjVweDtcbiAgbWluLXdpZHRoOiAyNXB4O1xuICBmb250LXNpemU6IDAuNjhyZW07XG59XG5cbi5jcm0tY29sbGFib3JhdGlvbi1lbXB0eSB7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMjgwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tY3JtLW11dGVkKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY3JtLWNvbGxhYm9yYXRpb24tZW1wdHkgaSB7XG4gIGZvbnQtc2l6ZTogMS43cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjY1cmVtO1xufVxuXG4uY3JtLWNvbGxhYm9yYXRpb24tZW1wdHkgaDMge1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzIwMjQyYSk7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG59XG5cbi5jcm0tY29sbGFib3JhdGlvbi1lbXB0eSBwIHtcbiAgbWFyZ2luOiAwLjI1cmVtIDAgMDtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xufVxuXG4uY3JtLW1lc3NhZ2UtY29tcG9zZXIge1xuICBwYWRkaW5nOiAwLjY1cmVtIDAuNzVyZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNybS1ib3JkZXIpO1xufVxuXG4uY3JtLWNvbXBvc2VyLXN1cmZhY2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGdhcDogMC40cmVtO1xuICBwYWRkaW5nOiAwLjNyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNybS1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNybS1zdWJ0bGUpO1xufVxuXG4uY3JtLWNvbXBvc2VyLWlucHV0IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLmNybS1jb21wb3Nlci1pbnB1dCAubWVzc2FnZS1pbnB1dCB7XG4gIG1pbi1oZWlnaHQ6IDM0cHg7XG4gIG1heC1oZWlnaHQ6IDEzMHB4O1xuICBwYWRkaW5nOiAwLjQ1cmVtIDAuNTVyZW07XG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMC43OHJlbTtcbn1cblxuLmNybS1jb21wb3Nlci1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjA1cmVtO1xufVxuXG4uY3JtLWNvbXBvc2VyLWFjdGlvbnMgLm1kdWktaWNvbixcbi5jcm0tY29tcG9zZXItYWN0aW9ucyAuZmlsZS11cGxvYWQtd3JhcHBlciBsYWJlbCB7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIG1pbi13aWR0aDogMzBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5jcm0tc2VuZC1idXR0b24ge1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tcHJpbWFyeS10ZXh0LWNvbG91ciwgI2ZmZik7XG59XG5cbi5jcm0tZmlsZXMtaGVhZGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBwYWRkaW5nLWJvdHRvbTogMC40NXJlbTtcbn1cblxuLmNybS1maWxlLXRhYnMge1xuICBnYXA6IDAuMnJlbTtcbiAgbWFyZ2luLXRvcDogMC42NXJlbTtcbiAgZmxleC13cmFwOiBub3dyYXA7XG59XG5cbi5jcm0tZmlsZS10YWJzIC5uYXYtaXRlbSB7XG4gIGZsZXg6IDEgMSAwO1xufVxuXG4uY3JtLWZpbGUtdGFiIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDI4cHg7XG4gIHBhZGRpbmc6IDAuMzJyZW0gMC4yNXJlbTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jcm0tbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNjZyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY3JtLWZpbGUtdGFiOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLXdvcmtmbG93LWNvbG91cik7XG59XG5cbi5jcm0tZmlsZS10YWIuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXdvcmtmbG93LWNvbG91cikgOSUsIHZhcigtLWNybS1zdWJ0bGUpKTtcbiAgY29sb3I6IHZhcigtLXdvcmtmbG93LWNvbG91cik7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTJweCAwIHZhcigtLXdvcmtmbG93LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLmNybS1maWxlLXRhYjpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLXdvcmtmbG93LWNvbG91cik7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG59XG5cbi5jcm0tZmlsZXMtY29udGVudCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4uY3JtLWZpbGVzLWNvbnRlbnQgLnRhYi1wYW5lIHtcbiAgcGFkZGluZzogMC43cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5jcm0tZmlsZXMtY29udGVudCAuZG9jdW1lbnRzLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgZ2FwOiAwLjRyZW07XG59XG5cbi5jcm0tZmlsZS11cGxvYWQge1xuICBwYWRkaW5nOiAwLjZyZW0gMC43cmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY3JtLWJvcmRlcik7XG59XG5cbi5jcm0tZmlsZS11cGxvYWQtZm9ybSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC40cmVtO1xufVxuXG4uY3JtLWZpbGUtdXBsb2FkLWZvcm0gLmZvcm0tY29udHJvbCB7XG4gIG1pbi13aWR0aDogMDtcbiAgZm9udC1zaXplOiAwLjY4cmVtO1xufVxuXG4uY3JtLWZpbGUtdXBsb2FkLWZvcm0gLmJ1dHRvbi0xMyB7XG4gIG1pbi13aWR0aDogYXV0bztcbiAgcGFkZGluZzogMC40MnJlbSAwLjZyZW07XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMzVyZW07XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAuY3JtLXdvcmtzcGFjZS1oZWFkZXIge1xuICAgIHBhZGRpbmc6IDAuNTVyZW0gMC42NXJlbTtcbiAgfVxuICAuY3JtLXdvcmtzcGFjZS1kZXNjcmlwdGlvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuY3JtLXdvcmtzcGFjZS1uYXYge1xuICAgIGdhcDogMC4zNXJlbTtcbiAgfVxuICAuY3JtLXZpZXctb3B0aW9uIHtcbiAgICB3aWR0aDogMzRweDtcbiAgICBtaW4td2lkdGg6IDM0cHg7XG4gICAgcGFkZGluZzogMC4zcmVtO1xuICB9XG4gIC5jcm0tdmlldy1vcHRpb24gc3BhbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuY3JtLXdvcmtzcGFjZSAua2FuYmFuLWJvYXJkLFxuICAuY3JtLXdvcmtzcGFjZSAuc3ByZWFkc2hlZXQtY29udGFpbmVyLFxuICAuY3JtLXdvcmtzcGFjZSAubGlzdC12aWV3LWNvbnRhaW5lcixcbiAgLmNybS13b3Jrc3BhY2UgLmNvbGxhYm9yYXRpb24tdmlldy1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDAuNTVyZW0gMC42NXJlbSAwLjc1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmNybS13b3Jrc3BhY2UgLmthbmJhbi1jb2x1bW4td3JhcHBlciB7XG4gICAgbWluLXdpZHRoOiAyNTJweDtcbiAgICB3aWR0aDogMjUycHg7XG4gIH1cbiAgLmNybS13b3Jrc3BhY2UgLmthbmJhbi1jb2x1bW4ge1xuICAgIHdpZHRoOiAyNTJweDtcbiAgICBtaW4td2lkdGg6IDI1MnB4O1xuICAgIG1heC13aWR0aDogMjUycHg7XG4gIH1cbiAgLmNybS13b3Jrc3BhY2UgLmthbmJhbi1ib2R5IHtcbiAgICBtaW4taGVpZ2h0OiAxMTBweCAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAyMDVweCk7XG4gIH1cbiAgLmNybS1jb2xsYWJvcmF0aW9uLXBhbmVsIHtcbiAgICBoZWlnaHQ6IDY4dmggIWltcG9ydGFudDtcbiAgICBtaW4taGVpZ2h0OiA0NDBweDtcbiAgfVxuICAuY3JtLWZpbGVzLXBhbmVsIHtcbiAgICBoZWlnaHQ6IDU4dmggIWltcG9ydGFudDtcbiAgfVxuICAuY3JtLW1lc3NhZ2UgLm1lc3NhZ2UtYnViYmxlIHtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDM4cHgpO1xuICB9XG4gIC53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1yb3dzIC53b3JrZmxvdy1xdW90ZS1saW5rIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDM0cHggbWlubWF4KDEyMHB4LCAxZnIpIGF1dG8gMTJweDtcbiAgICBnYXA6IDAuNXJlbTtcbiAgfVxuICAud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtcm93cyAud29ya2Zsb3ctcXVvdGUtaW1hZ2UsXG4gIC53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1yb3dzIC53b3JrZmxvdy1xdW90ZS1pbWFnZS1wbGFjZWhvbGRlciB7XG4gICAgd2lkdGg6IDM0cHg7XG4gICAgaGVpZ2h0OiAzNHB4O1xuICB9XG4gIC53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1yb3dzIC53b3JrZmxvdy1xdW90ZS1maWVsZHMsXG4gIC53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1yb3dzIC53b3JrZmxvdy1xdW90ZS11cGRhdGVkIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5xdW90ZS1saXN0LWNhcmQtLXJvdyAucXVvdGUtbGlzdC1jYXJkX19saW5rLFxuICAud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtcm93cyAucXVvdGUtbGlzdC1jYXJkLS1yZXNwb25zaXZlIC5xdW90ZS1saXN0LWNhcmRfX2xpbmsge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMzRweCBtaW5tYXgoMTEwcHgsIDFmcikgYXV0byAxMnB4O1xuICAgIGdhcDogMC41cmVtO1xuICB9XG4gIC5xdW90ZS1saXN0LWNhcmQtLXJvdyAucXVvdGUtbGlzdC1jYXJkX19pbWFnZSxcbiAgLnF1b3RlLWxpc3QtY2FyZC0tcm93IC5xdW90ZS1saXN0LWNhcmRfX2ltYWdlLXBsYWNlaG9sZGVyLFxuICAud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtcm93cyAucXVvdGUtbGlzdC1jYXJkLS1yZXNwb25zaXZlIC5xdW90ZS1saXN0LWNhcmRfX2ltYWdlLFxuICAud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtcm93cyAucXVvdGUtbGlzdC1jYXJkLS1yZXNwb25zaXZlIC5xdW90ZS1saXN0LWNhcmRfX2ltYWdlLXBsYWNlaG9sZGVyIHtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gIH1cbiAgLnF1b3RlLWxpc3QtY2FyZC0tcm93IC5xdW90ZS1saXN0LWNhcmRfX2JhZGdlcyxcbiAgLnF1b3RlLWxpc3QtY2FyZC0tcm93IC5xdW90ZS1saXN0LWNhcmRfX2ZpZWxkcyxcbiAgLnF1b3RlLWxpc3QtY2FyZC0tcm93IC5xdW90ZS1saXN0LWNhcmRfX3VwZGF0ZWQsXG4gIC53b3JrZmxvdy1xdW90ZXMtdmlldy5pcy1yb3dzIC5xdW90ZS1saXN0LWNhcmQtLXJlc3BvbnNpdmUgLnF1b3RlLWxpc3QtY2FyZF9fYmFkZ2VzLFxuICAud29ya2Zsb3ctcXVvdGVzLXZpZXcuaXMtcm93cyAucXVvdGUtbGlzdC1jYXJkLS1yZXNwb25zaXZlIC5xdW90ZS1saXN0LWNhcmRfX2ZpZWxkcyxcbiAgLndvcmtmbG93LXF1b3Rlcy12aWV3LmlzLXJvd3MgLnF1b3RlLWxpc3QtY2FyZC0tcmVzcG9uc2l2ZSAucXVvdGUtbGlzdC1jYXJkX191cGRhdGVkIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uc2NoZWR1bGUtcGFnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDYwcHgpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG4uc2NoZWR1bGUtcGFnZSAuc2NoZWR1bGUtaGVhZGVyIHtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4uc2NoZWR1bGUtcGFnZSAuc2NoZWR1bGUtYm9keSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjgwcHggMWZyO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgZ2FwOiAxcmVtO1xuICBwYWRkaW5nOiAxcmVtO1xuICBmbGV4OiAxO1xuICBtaW4taGVpZ2h0OiAwO1xufVxuXG4uc2NoZWR1bGUtYmFja2xvZyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjEycyBlYXNlLCBib3gtc2hhZG93IDAuMTJzIGVhc2U7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMDtcbn1cbi5zY2hlZHVsZS1iYWNrbG9nLmRyb3AtdGFyZ2V0IHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudC15ZWxsb3cpIDE1JSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4IHZhcigtLWFjY2VudC15ZWxsb3cpO1xufVxuLnNjaGVkdWxlLWJhY2tsb2dbYnVzeV06OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAycHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIHZhcigtLWFjY2VudC1sYXZlbmRlciksIHRyYW5zcGFyZW50KTtcbiAgYmFja2dyb3VuZC1zaXplOiA0MCUgMTAwJTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYW5pbWF0aW9uOiBzY2hlZHVsZS1iYWNrbG9nLWxvYWRpbmcgMS4xcyBsaW5lYXIgaW5maW5pdGU7XG4gIHotaW5kZXg6IDI7XG59XG4uc2NoZWR1bGUtYmFja2xvZ1tidXN5XSAuc2NoZWR1bGUtYmFja2xvZy1saXN0IHtcbiAgb3BhY2l0eTogMC41NTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTtcbn1cbi5zY2hlZHVsZS1iYWNrbG9nIC5zY2hlZHVsZS1iYWNrbG9nLWhlYWRlciB7XG4gIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY2FyZC1jb2xvdXIpIDcwJSwgdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpKTtcbn1cbi5zY2hlZHVsZS1iYWNrbG9nIC5zY2hlZHVsZS1iYWNrbG9nLWxpc3Qge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBmbGV4OiAxO1xuICBwYWRkaW5nOiAwLjVyZW07XG59XG4uc2NoZWR1bGUtYmFja2xvZyAuc2NoZWR1bGUtYmFja2xvZy1wYWd5IHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDAuNXJlbTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNhcmQtY29sb3VyKSA3MCUsIHZhcigtLWJhY2tncm91bmQtY29sb3VyKSk7XG59XG4uc2NoZWR1bGUtYmFja2xvZyAuc2NoZWR1bGUtYmFja2xvZy1wYWd5IC5zY2hlZHVsZS1wYWd5LWJ0biB7XG4gIHBhZGRpbmc6IDAuMTVyZW0gMC41cmVtO1xuICBmb250LXNpemU6IDAuNzVyZW07XG59XG4uc2NoZWR1bGUtYmFja2xvZyAuc2NoZWR1bGUtYmFja2xvZy1wYWd5IC5zY2hlZHVsZS1wYWd5LWJ0bi5kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5zY2hlZHVsZS1kaXNjb3ZlcnktcmFpbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbn1cblxuLnNjaGVkdWxlLWRpc2NvdmVyeS1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMC41cmVtO1xuICBwYWRkaW5nOiAwLjY1cmVtIDAuNzVyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNhcmQtY29sb3VyKSA3MCUsIHZhcigtLWJhY2tncm91bmQtY29sb3VyKSk7XG59XG4uc2NoZWR1bGUtZGlzY292ZXJ5LWhlYWRlciA+IGRpdjpmaXJzdC1jaGlsZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5zY2hlZHVsZS1kaXNjb3ZlcnktaGVhZGVyIHN0cm9uZyB7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cbi5zY2hlZHVsZS1kaXNjb3ZlcnktaGVhZGVyIHNtYWxsIHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBmb250LXNpemU6IDAuNjhyZW07XG59XG5cbi5zY2hlZHVsZS1kaXNjb3ZlcnktcXVldWUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4taGVpZ2h0OiAwO1xuICBmbGV4OiAxO1xufVxuLnNjaGVkdWxlLWRpc2NvdmVyeS1xdWV1ZSAuc2NoZWR1bGUtYmFja2xvZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uc2NoZWR1bGUtZGlzY292ZXJ5LXF1ZXVlW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2NoZWR1bGUtcGFnZS5pcy1zY2hlZHVsZS1tYXAtdmlldyAuc2NoZWR1bGUtYm9keSB7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDM2MHB4LCAzMHZ3KSBtaW5tYXgoMCwgMWZyKTtcbn1cblxuQGtleWZyYW1lcyBzY2hlZHVsZS1iYWNrbG9nLWxvYWRpbmcge1xuICBmcm9tIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNDAlIDA7XG4gIH1cbiAgdG8ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDE0MCUgMDtcbiAgfVxufVxuQGtleWZyYW1lcyBzY2hlZHVsZS1ibG9jay1zYXZpbmcge1xuICAwJSwgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuNTU7XG4gIH1cbn1cbi5zY2hlZHVsZS1iYWNrbG9nLWNhcmQtYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjJyZW07XG4gIHBhZGRpbmc6IDAuMXJlbSAwLjRyZW07XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBmb250LXNpemU6IDAuNjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtZ3JlZW4pIDE4JSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWdyZWVuKTtcbiAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudC1ncmVlbikgMzUlLCB0cmFuc3BhcmVudCk7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uc2NoZWR1bGUtYmFja2xvZy1jYXJkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBwYWRkaW5nOiAwLjZyZW0gMC43NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBjdXJzb3I6IGdyYWI7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjE1cyBlYXNlLCB0cmFuc2Zvcm0gMC4xNXMgZWFzZTtcbn1cbi5zY2hlZHVsZS1iYWNrbG9nLWNhcmQgLmZsZXgtZ3Jvdy0xIHtcbiAgbWluLXdpZHRoOiAwO1xufVxuLnNjaGVkdWxlLWJhY2tsb2ctY2FyZCAudGV4dC10cnVuY2F0ZSB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uc2NoZWR1bGUtYmFja2xvZy1jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdyk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpO1xufVxuLnNjaGVkdWxlLWJhY2tsb2ctY2FyZC5pcy1kcmFnZ2luZyB7XG4gIG9wYWNpdHk6IDAuNDtcbn1cbi5zY2hlZHVsZS1iYWNrbG9nLWNhcmQgLnNjaGVkdWxlLXN0YWdlLXBpbGwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi10b3A6IDAuNHJlbTtcbiAgcGFkZGluZzogMC4xcmVtIDAuNXJlbTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSAxMCUsIHRyYW5zcGFyZW50KTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xufVxuXG4uc2NoZWR1bGUtZ3JpZC13cmFwIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgbWluLWhlaWdodDogMDtcbn1cblxuLnNjaGVkdWxlLWdyaWQge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xufVxuLnNjaGVkdWxlLWdyaWQgdGgsIC5zY2hlZHVsZS1ncmlkIHRkIHtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4uc2NoZWR1bGUtZ3JpZCB0aGVhZCB0aCB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNhcmQtY29sb3VyKSA3MCUsIHZhcigtLWJhY2tncm91bmQtY29sb3VyKSkgIWltcG9ydGFudDtcbiAgei1pbmRleDogMjtcbiAgcGFkZGluZzogMC41NXJlbSAwLjVyZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cbi5zY2hlZHVsZS1ncmlkIHRib2R5IHRyOm50aC1jaGlsZChvZGQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uc2NoZWR1bGUtZ3JpZCB0Ym9keSB0ZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uc2NoZWR1bGUtZ3JpZCAuc2NoZWR1bGUtY29ybmVyIHtcbiAgd2lkdGg6IDIwMHB4O1xuICBtaW4td2lkdGg6IDIwMHB4O1xufVxuLnNjaGVkdWxlLWdyaWQgLnNjaGVkdWxlLWRheS1oZWFkZXIge1xuICBtaW4td2lkdGg6IDE2MHB4O1xufVxuLnNjaGVkdWxlLWdyaWQgLnNjaGVkdWxlLWRheS1oZWFkZXIudG9kYXkge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LXllbGxvdykgMjUlLCB2YXIoLS1jYXJkLWNvbG91cikpICFpbXBvcnRhbnQ7XG59XG4uc2NoZWR1bGUtZ3JpZCAuc2NoZWR1bGUtZGF5LWhlYWRlciAuc2NoZWR1bGUtZGF5LW5hbWUge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbn1cbi5zY2hlZHVsZS1ncmlkIC5zY2hlZHVsZS1kYXktaGVhZGVyIC5zY2hlZHVsZS1kYXktbnVtIHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLnNjaGVkdWxlLWdyaWQgLnNjaGVkdWxlLWNyZXctY2VsbCB7XG4gIHdpZHRoOiAyMDBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuNnJlbSAwLjc1cmVtO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAxO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uc2NoZWR1bGUtZ3JpZCAuc2NoZWR1bGUtY3Jldy1jZWxsIC5zY2hlZHVsZS1jcmV3LXBkZiB7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xuICBwYWRkaW5nOiAwLjJyZW07XG59XG4uc2NoZWR1bGUtZ3JpZCAuc2NoZWR1bGUtY3Jldy1jZWxsIC5zY2hlZHVsZS1jcmV3LXBkZjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpO1xufVxuLnNjaGVkdWxlLWdyaWQgLnNjaGVkdWxlLWNlbGwge1xuICBwYWRkaW5nOiAwLjRyZW07XG4gIG1pbi1oZWlnaHQ6IDk2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTJzIGVhc2UsIGJveC1zaGFkb3cgMC4xMnMgZWFzZTtcbn1cbi5zY2hlZHVsZS1ncmlkIC5zY2hlZHVsZS1jZWxsIC5zY2hlZHVsZS1kcml2ZS10aW1lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMC4yNXJlbTtcbiAgcGFkZGluZzogMC4xOHJlbSAwLjRyZW07XG4gIG1hcmdpbjogMC4xNXJlbSAwLjJyZW07XG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LWxhdmVuZGVyKSA2JSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXI6IDFweCBkYXNoZWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudC1sYXZlbmRlcikgMzUlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgY3Vyc29yOiBoZWxwO1xufVxuLnNjaGVkdWxlLWdyaWQgLnNjaGVkdWxlLWNlbGwuZHJvcC10YXJnZXQge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LWxhdmVuZGVyKSAxNSUsIHZhcigtLWNhcmQtY29sb3VyKSkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMnB4IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG59XG4uc2NoZWR1bGUtZ3JpZCAuc2NoZWR1bGUtZW1wdHktcm93IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIHBhZGRpbmc6IDJyZW07XG59XG5cbi5zY2hlZHVsZS1ibG9jayB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jcmV3LWNvbG91cikgMTglLCB2YXIoLS1jYXJkLWNvbG91cikpO1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLWNyZXctY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBwYWRkaW5nOiAwLjRyZW0gMC41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjM1cmVtO1xuICBmb250LXNpemU6IDAuNzhyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjE1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5zY2hlZHVsZS1ibG9jay5pcy1zYXZpbmcge1xuICBhbmltYXRpb246IHNjaGVkdWxlLWJsb2NrLXNhdmluZyAxLjFzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5zY2hlZHVsZS1ibG9jayB7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4xMnMgZWFzZSwgdHJhbnNmb3JtIDAuMTJzIGVhc2UsIG9wYWNpdHkgMC4xMnMgZWFzZTtcbn1cbi5zY2hlZHVsZS1ibG9jay5pcy1tdWx0aS1kYXkge1xuICB6LWluZGV4OiAyO1xuICBib3JkZXItcmlnaHQ6IDFweCBkYXNoZWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNyZXctY29sb3VyKSA2MCUsIHRyYW5zcGFyZW50KTtcbn1cbi5zY2hlZHVsZS1ibG9jayAuc2NoZWR1bGUtYmxvY2stcmVzaXplIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogMTAwJTtcbiAgY3Vyc29yOiBjb2wtcmVzaXplO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgei1pbmRleDogNDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjEycyBlYXNlO1xufVxuLnNjaGVkdWxlLWJsb2NrIC5zY2hlZHVsZS1ibG9jay1yZXNpemU6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB3aWR0aDogM3B4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNyZXctY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTJzIGVhc2U7XG59XG4uc2NoZWR1bGUtYmxvY2sgLnNjaGVkdWxlLWJsb2NrLXJlc2l6ZS1yaWdodCB7XG4gIHJpZ2h0OiAtMnB4O1xuICBib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDtcbn1cbi5zY2hlZHVsZS1ibG9jayAuc2NoZWR1bGUtYmxvY2stcmVzaXplLXJpZ2h0OjphZnRlciB7XG4gIHJpZ2h0OiAxcHg7XG59XG4uc2NoZWR1bGUtYmxvY2sgLnNjaGVkdWxlLWJsb2NrLXJlc2l6ZTpob3Zlcjo6YWZ0ZXIge1xuICBvcGFjaXR5OiAwLjc7XG59XG4uc2NoZWR1bGUtYmxvY2suaXMtcmVzaXppbmcge1xuICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpO1xuICB6LWluZGV4OiA1O1xufVxuLnNjaGVkdWxlLWJsb2NrIHtcbiAgYm9yZGVyLXRvcDogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuLnNjaGVkdWxlLWJsb2NrLmlzLW5vdGlmaWVkIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tc2NoZWR1bGUtZ29vZCk7XG59XG4uc2NoZWR1bGUtYmxvY2suaXMtcGVuZGluZy1ub3RpZmljYXRpb24ge1xuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1zY2hlZHVsZS13YXJuKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNjaGVkdWxlLXdhcm4pIDglLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY3Jldy1jb2xvdXIpIDE4JSwgdmFyKC0tY2FyZC1jb2xvdXIpKSk7XG59XG4uc2NoZWR1bGUtYmxvY2suaGFzLWJhZC13ZWF0aGVyOjpiZWZvcmUsIC5zY2hlZHVsZS1ibG9jay5oYXMtd2Fybi13ZWF0aGVyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiA4cHggOHB4O1xuICBhbmltYXRpb246IHNjaGVkdWxlLXJhaW4tZHJpZnQgMS42cyBsaW5lYXIgaW5maW5pdGU7XG4gIHotaW5kZXg6IDA7XG59XG4uc2NoZWR1bGUtYmxvY2suaGFzLWJhZC13ZWF0aGVyOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDEwNWRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgNXB4LCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2NoZWR1bGUtYmFkKSA1NSUsIHRyYW5zcGFyZW50KSA1cHgsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zY2hlZHVsZS1iYWQpIDU1JSwgdHJhbnNwYXJlbnQpIDZweCk7XG4gIG9wYWNpdHk6IDAuMztcbn1cbi5zY2hlZHVsZS1ibG9jay5oYXMtd2Fybi13ZWF0aGVyOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDEwNWRlZywgdHJhbnNwYXJlbnQgMCwgdHJhbnNwYXJlbnQgNnB4LCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2NoZWR1bGUtd2FybikgNTAlLCB0cmFuc3BhcmVudCkgNnB4LCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2NoZWR1bGUtd2FybikgNTAlLCB0cmFuc3BhcmVudCkgN3B4KTtcbiAgb3BhY2l0eTogMC4yO1xuICBhbmltYXRpb24tZHVyYXRpb246IDIuMnM7XG59XG4uc2NoZWR1bGUtYmxvY2suaGFzLWJhZC13ZWF0aGVyID4gKiwgLnNjaGVkdWxlLWJsb2NrLmhhcy13YXJuLXdlYXRoZXIgPiAqIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xufVxuLnNjaGVkdWxlLWJsb2NrOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdyk7XG59XG4uc2NoZWR1bGUtYmxvY2suaXMtZHJhZ2dpbmcge1xuICBvcGFjaXR5OiAwLjQ7XG59XG4uc2NoZWR1bGUtYmxvY2suc3RhdHVzLXRlbnRhdGl2ZSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB0cmFuc3BhcmVudCAwLCB0cmFuc3BhcmVudCA2cHgsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgNiUsIHRyYW5zcGFyZW50KSA2cHgsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgNiUsIHRyYW5zcGFyZW50KSA4cHgpO1xufVxuLnNjaGVkdWxlLWJsb2NrLnN0YXR1cy1jYW5jZWxsZWQsIC5zY2hlZHVsZS1ibG9jay5zdGF0dXMtd2VhdGhlcl9wb3N0cG9uZWQge1xuICBvcGFjaXR5OiAwLjU1O1xufVxuLnNjaGVkdWxlLWJsb2NrIC5zY2hlZHVsZS1ibG9jay10b3Age1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMC40cmVtO1xufVxuLnNjaGVkdWxlLWJsb2NrIC5zY2hlZHVsZS1ibG9jay1hZGRyZXNzIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAwLjc4cmVtO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gIGxpbmUtY2xhbXA6IDI7XG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG4uc2NoZWR1bGUtYmxvY2sgLnNjaGVkdWxlLWJsb2NrLW1ldGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgZ2FwOiAwLjE1cmVtIDAuNHJlbTtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5zY2hlZHVsZS1ibG9jayAuc2NoZWR1bGUtYmxvY2stbmFtZSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuLnNjaGVkdWxlLWJsb2NrIC5zY2hlZHVsZS1ibG9jay1zZXAge1xuICBvcGFjaXR5OiAwLjU7XG59XG4uc2NoZWR1bGUtYmxvY2sgLnNjaGVkdWxlLWJsb2NrLXR5cGUge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xufVxuLnNjaGVkdWxlLWJsb2NrIC5zY2hlZHVsZS1kcmFnLWhhbmRsZSB7XG4gIGN1cnNvcjogZ3JhYjtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBwYWRkaW5nOiAwIDAuMnJlbTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4uc2NoZWR1bGUtYmxvY2sgLnNjaGVkdWxlLWRyYWctaGFuZGxlOmFjdGl2ZSB7XG4gIGN1cnNvcjogZ3JhYmJpbmc7XG59XG4uc2NoZWR1bGUtYmxvY2sgLnNjaGVkdWxlLWRyYWctaGFuZGxlOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cbi5zY2hlZHVsZS1ibG9jayAuc2NoZWR1bGUtYmxvY2stZm9vdCB7XG4gIG1hcmdpbi10b3A6IDAuMTVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiAwLjJyZW07XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLnNjaGVkdWxlLXBpbGwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgcGFkZGluZzogMC4xNXJlbSAwLjU1cmVtO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4uc2NoZWR1bGUtcGlsbC5zY2hlZHVsZS1waWxsLW11dGVkIHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIpIDEyJSwgdHJhbnNwYXJlbnQpO1xufVxuLnNjaGVkdWxlLXBpbGwuc2NoZWR1bGUtcGlsbC1ncmVlbiB7XG4gIGNvbG9yOiB2YXIoLS1zY2hlZHVsZS1nb29kKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2NoZWR1bGUtZ29vZC1iZyk7XG59XG4uc2NoZWR1bGUtcGlsbC5zY2hlZHVsZS1waWxsLWxhdmVuZGVyIHtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDE4JSwgdHJhbnNwYXJlbnQpO1xufVxuLnNjaGVkdWxlLXBpbGwuc2NoZWR1bGUtcGlsbC15ZWxsb3cge1xuICBjb2xvcjogdmFyKC0tc2NoZWR1bGUtd2Fybik7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNjaGVkdWxlLXdhcm4tYmcpO1xufVxuLnNjaGVkdWxlLXBpbGwuc2NoZWR1bGUtcGlsbC1kYW5nZXIge1xuICBjb2xvcjogdmFyKC0tc2NoZWR1bGUtYmFkKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2NoZWR1bGUtYmFkLWJnKTtcbn1cblxuLnNjaGVkdWxlLW5lYXJieS1zZWN0aW9uIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xufVxuXG4uc2NoZWR1bGUtbmVhcmJ5LWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNHJlbTtcbiAgbWF4LWhlaWdodDogMjQwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5zY2hlZHVsZS1uZWFyYnktcm93IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjdyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jYXJkLWNvbG91cikgOTIlLCB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xMnMgZWFzZSwgYmFja2dyb3VuZCAwLjEycyBlYXNlO1xufVxuLnNjaGVkdWxlLW5lYXJieS1yb3c6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDglLCB2YXIoLS1jYXJkLWNvbG91cikpO1xufVxuXG4uc2NoZWR1bGUtbmVhcmJ5LXJvdy1oZWFkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjRyZW07XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cblxuLnNjaGVkdWxlLW5lYXJieS1kaXN0YW5jZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwLjA1cmVtIDAuNDVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LWxhdmVuZGVyKSAxOCUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnNjaGVkdWxlLW5lYXJieS1uYW1lIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5zY2hlZHVsZS1uZWFyYnktYWRkcmVzcyB7XG4gIG1hcmdpbi10b3A6IDAuMTVyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uc2NoZWR1bGUtbmVhcmJ5LWJsb2NrcyB7XG4gIG1hcmdpbi10b3A6IDAuNHJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDAuM3JlbTtcbn1cbi5zY2hlZHVsZS1uZWFyYnktYmxvY2tzIC5zY2hlZHVsZS1uZWFyYnktYmxvY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjI1cmVtO1xuICBwYWRkaW5nOiAwLjFyZW0gMC40NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNjaGVkdWxlLWdvb2QtYmcpO1xuICBjb2xvcjogdmFyKC0tc2NoZWR1bGUtZ29vZCk7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uc2NoZWR1bGUtbmVhcmJ5LWVtcHR5IHtcbiAgbWFyZ2luLXRvcDogMC40cmVtO1xufVxuXG5ib2R5LnNjaGVkdWxlLWlzLWRyYWdnaW5nIC5zY2hlZHVsZS1ncmlkIC5zY2hlZHVsZS1kYXktaGVhZGVyLndlYXRoZXItaGludC1ncmVlbiB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zY2hlZHVsZS1nb29kKSAzMCUsIHZhcigtLWNhcmQtY29sb3VyKSkgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtM3B4IDAgdmFyKC0tc2NoZWR1bGUtZ29vZCk7XG59XG5ib2R5LnNjaGVkdWxlLWlzLWRyYWdnaW5nIC5zY2hlZHVsZS1ncmlkIC5zY2hlZHVsZS1kYXktaGVhZGVyLndlYXRoZXItaGludC15ZWxsb3cge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2NoZWR1bGUtd2FybikgMzAlLCB2YXIoLS1jYXJkLWNvbG91cikpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTNweCAwIHZhcigtLXNjaGVkdWxlLXdhcm4pO1xufVxuYm9keS5zY2hlZHVsZS1pcy1kcmFnZ2luZyAuc2NoZWR1bGUtZ3JpZCAuc2NoZWR1bGUtZGF5LWhlYWRlci53ZWF0aGVyLWhpbnQtcmVkIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNjaGVkdWxlLWJhZCkgMzAlLCB2YXIoLS1jYXJkLWNvbG91cikpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgLTNweCAwIHZhcigtLXNjaGVkdWxlLWJhZCk7XG59XG5ib2R5LnNjaGVkdWxlLWlzLWRyYWdnaW5nIC5zY2hlZHVsZS1ncmlkIC5zY2hlZHVsZS1kYXktaGVhZGVyLndlYXRoZXItaGludC11bmtub3duIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA4JSwgdmFyKC0tY2FyZC1jb2xvdXIpKSAhaW1wb3J0YW50O1xufVxuYm9keS5zY2hlZHVsZS1pcy1kcmFnZ2luZyAuc2NoZWR1bGUtZ3JpZCAuc2NoZWR1bGUtY2VsbC53ZWF0aGVyLWhpbnQtZ3JlZW4ge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2NoZWR1bGUtZ29vZCkgOCUsIHZhcigtLWNhcmQtY29sb3VyKSkgIWltcG9ydGFudDtcbn1cbmJvZHkuc2NoZWR1bGUtaXMtZHJhZ2dpbmcgLnNjaGVkdWxlLWdyaWQgLnNjaGVkdWxlLWNlbGwud2VhdGhlci1oaW50LXllbGxvdyB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zY2hlZHVsZS13YXJuKSA4JSwgdmFyKC0tY2FyZC1jb2xvdXIpKSAhaW1wb3J0YW50O1xufVxuYm9keS5zY2hlZHVsZS1pcy1kcmFnZ2luZyAuc2NoZWR1bGUtZ3JpZCAuc2NoZWR1bGUtY2VsbC53ZWF0aGVyLWhpbnQtcmVkIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNjaGVkdWxlLWJhZCkgOCUsIHZhcigtLWNhcmQtY29sb3VyKSkgIWltcG9ydGFudDtcbn1cblxuYm9keS5zY2hlZHVsZS1pcy1kcmFnZ2luZyAuc2NoZWR1bGUtZGF5LWhlYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbmJvZHkuc2NoZWR1bGUtaXMtZHJhZ2dpbmcgLnNjaGVkdWxlLWRheS1oZWFkZXI6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDRweDtcbiAgcmlnaHQ6IDZweDtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIG9wYWNpdHk6IDAuODU7XG59XG5ib2R5LnNjaGVkdWxlLWlzLWRyYWdnaW5nIC5zY2hlZHVsZS1kYXktaGVhZGVyLndlYXRoZXItaGludC1ncmVlbjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDI0IDI0Jz48Y2lyY2xlIGN4PScxMicgY3k9JzEyJyByPSc1JyBmaWxsPSclMjMxNTgwM2QnLz48ZyBzdHJva2U9JyUyMzE1ODAzZCcgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnPjxwYXRoIGQ9J00xMiAzdjInLz48cGF0aCBkPSdNMTIgMTl2MicvPjxwYXRoIGQ9J00zIDEyaDInLz48cGF0aCBkPSdNMTkgMTJoMicvPjxwYXRoIGQ9J001LjYgNS42bDEuNCAxLjQnLz48cGF0aCBkPSdNMTcgMTdsMS40IDEuNCcvPjxwYXRoIGQ9J001LjYgMTguNGwxLjQtMS40Jy8+PHBhdGggZD0nTTE3IDdsMS40LTEuNCcvPjwvZz48L3N2Zz5cIik7XG59XG5ib2R5LnNjaGVkdWxlLWlzLWRyYWdnaW5nIC5zY2hlZHVsZS1kYXktaGVhZGVyLndlYXRoZXItaGludC15ZWxsb3c6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCc+PHBhdGggZmlsbD0nJTIzYjQ1MzA5JyBkPSdNNyAxOGE1IDUgMCAwMTAtMTAgNiA2IDAgMDExMS41IDFBNC41IDQuNSAwIDAxMTggMTh6Jy8+PC9zdmc+XCIpO1xufVxuYm9keS5zY2hlZHVsZS1pcy1kcmFnZ2luZyAuc2NoZWR1bGUtZGF5LWhlYWRlci53ZWF0aGVyLWhpbnQtcmVkOjphZnRlciB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMjQgMjQnPjxwYXRoIGZpbGw9JyUyM2I5MWMxYycgZD0nTTcgMTZhNSA1IDAgMDEwLTEwIDYgNiAwIDAxMTEuNSAxQTQuNSA0LjUgMCAwMTE4IDE2eicvPjxnIHN0cm9rZT0nJTIzYjkxYzFjJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCc+PHBhdGggZD0nTTkgMTlsLTEgMicvPjxwYXRoIGQ9J00xMyAxOWwtMSAyJy8+PHBhdGggZD0nTTE3IDE5bC0xIDInLz48L2c+PC9zdmc+XCIpO1xufVxuXG4uc2NoZWR1bGUtYmxvY2suaXMtZm9jdXNlZC1wcm9qZWN0IHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDRweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LWxhdmVuZGVyKSAyNSUsIHRyYW5zcGFyZW50KTtcbn1cbi5zY2hlZHVsZS1ibG9jay5pcy1kaW1tZWQge1xuICBvcGFjaXR5OiAwLjQ1O1xufVxuLnNjaGVkdWxlLWJsb2NrLmlzLXNlbGVjdGVkIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLXNjaGVkdWxlLWdvb2QpO1xuICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2NoZWR1bGUtZ29vZCkgMTglLCB2YXIoLS1jYXJkLWNvbG91cikpO1xufVxuLnNjaGVkdWxlLWJsb2NrIC5zY2hlZHVsZS1ibG9jay1jaGVja2JveCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xMnMgZWFzZSwgY29sb3IgMC4xMnMgZWFzZTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4uc2NoZWR1bGUtYmxvY2sgLnNjaGVkdWxlLWJsb2NrLWNoZWNrYm94IC5zY2hlZHVsZS1ibG9jay1jaGVja2JveC1maWxsZWQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnNjaGVkdWxlLWJsb2NrIC5zY2hlZHVsZS1ibG9jay1jaGVja2JveDpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpO1xufVxuLnNjaGVkdWxlLWJsb2NrOmhvdmVyIC5zY2hlZHVsZS1ibG9jay1jaGVja2JveCB7XG4gIG9wYWNpdHk6IDAuOTtcbn1cbi5zY2hlZHVsZS1ibG9jay5pcy1zZWxlY3RlZCAuc2NoZWR1bGUtYmxvY2stY2hlY2tib3gge1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogdmFyKC0tc2NoZWR1bGUtZ29vZCk7XG59XG4uc2NoZWR1bGUtYmxvY2suaXMtc2VsZWN0ZWQgLnNjaGVkdWxlLWJsb2NrLWNoZWNrYm94IC5zY2hlZHVsZS1ibG9jay1jaGVja2JveC1lbXB0eSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4uc2NoZWR1bGUtYmxvY2suaXMtc2VsZWN0ZWQgLnNjaGVkdWxlLWJsb2NrLWNoZWNrYm94IC5zY2hlZHVsZS1ibG9jay1jaGVja2JveC1maWxsZWQge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5zY2hlZHVsZS1zZWxlY3Rpb24tYmFyIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IC0xMDBweDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjE4KTtcbiAgei1pbmRleDogMTA4MDtcbiAgdHJhbnNpdGlvbjogYm90dG9tIDAuMThzIGVhc2U7XG59XG4uc2NoZWR1bGUtc2VsZWN0aW9uLWJhci5pcy12aXNpYmxlIHtcbiAgYm90dG9tOiAxLjVyZW07XG59XG4uc2NoZWR1bGUtc2VsZWN0aW9uLWJhciAuc2NoZWR1bGUtc2VsZWN0aW9uLWNvdW50IHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBwYWRkaW5nOiAwIDAuNXJlbTtcbn1cbi5zY2hlZHVsZS1zZWxlY3Rpb24tYmFyIC5zY2hlZHVsZS1zZWxlY3Rpb24tc3RhdHVzIHtcbiAgd2lkdGg6IGF1dG87XG4gIG1pbi13aWR0aDogMTQwcHg7XG59XG4uc2NoZWR1bGUtc2VsZWN0aW9uLWJhciAuYnV0dG9uLTEzLW91dGxpbmUge1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuN3JlbTtcbn1cblxuLnNjaGVkdWxlLWNvbnRleHQtbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAxODBweDtcbiAgcGFkZGluZzogMC4zNXJlbSAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgei1pbmRleDogMTA5MDtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xufVxuLnNjaGVkdWxlLWNvbnRleHQtbWVudS5pcy12aXNpYmxlIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi5zY2hlZHVsZS1jb250ZXh0LW1lbnUgLnNjaGVkdWxlLWNvbnRleHQtbWVudS1oZWFkZXIge1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuODVyZW07XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG59XG4uc2NoZWR1bGUtY29udGV4dC1tZW51IC5zY2hlZHVsZS1jb250ZXh0LW1lbnUtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBwYWRkaW5nOiAwLjRyZW0gMC44NXJlbTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMgZWFzZTtcbn1cbi5zY2hlZHVsZS1jb250ZXh0LW1lbnUgLnNjaGVkdWxlLWNvbnRleHQtbWVudS1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudC1sYXZlbmRlcikgMTIlLCB0cmFuc3BhcmVudCk7XG59XG4uc2NoZWR1bGUtY29udGV4dC1tZW51IC5zY2hlZHVsZS1jb250ZXh0LW1lbnUtaXRlbS5pcy1jdXJyZW50IHtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uc2NoZWR1bGUtY29udGV4dC1tZW51IC5zY2hlZHVsZS1jb250ZXh0LW1lbnUtZGl2aWRlciB7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgbWFyZ2luOiAwLjI1cmVtIDA7XG59XG4uc2NoZWR1bGUtY29udGV4dC1tZW51IC5zY2hlZHVsZS1jb250ZXh0LW1lbnUtZGFuZ2VyIHtcbiAgY29sb3I6IHZhcigtLWRhbmdlcik7XG59XG4uc2NoZWR1bGUtY29udGV4dC1tZW51IC5zY2hlZHVsZS1jb250ZXh0LW1lbnUtZGFuZ2VyOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWRhbmdlcikgMTIlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5zY2hlZHVsZS12aWV3LXRvZ2dsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBnYXA6IDAuMjVyZW07XG59XG4uc2NoZWR1bGUtdmlldy10b2dnbGUgLnNjaGVkdWxlLXZpZXctYnRuIHtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjY1cmVtO1xuICBmb250LXNpemU6IDAuODVyZW07XG59XG4uc2NoZWR1bGUtdmlldy10b2dnbGUgLnNjaGVkdWxlLXZpZXctYnRuLmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG4gIGNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbn1cblxuLnNjaGVkdWxlLXJhaWwtdGFicyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBmbGV4LXNocmluazogMDtcbiAgZ2FwOiAwLjE1cmVtO1xuICBwYWRkaW5nOiAwLjE1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG59XG4uc2NoZWR1bGUtcmFpbC10YWJzIGJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMjVyZW07XG4gIHBhZGRpbmc6IDAuMjhyZW0gMC40cmVtO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIGZvbnQtd2VpZ2h0OiA2NTA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5zY2hlZHVsZS1yYWlsLXRhYnMgYnV0dG9uLmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4uc2NoZWR1bGUtbWFwLXBhbmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4taGVpZ2h0OiAwO1xuICBmbGV4OiAxO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLnNjaGVkdWxlLW1hcC1wYW5lbFtoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnNjaGVkdWxlLW1hcC1hbmNob3Ige1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gbWlubWF4KDAsIDFmcikgYXV0bztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjQ1cmVtO1xuICBwYWRkaW5nOiAwLjVyZW0gMC42NXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LWxhdmVuZGVyKSAxMCUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG59XG4uc2NoZWR1bGUtbWFwLWFuY2hvcltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5zY2hlZHVsZS1tYXAtYW5jaG9yID4gaSB7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpO1xufVxuLnNjaGVkdWxlLW1hcC1hbmNob3IgPiBkaXYge1xuICBkaXNwbGF5OiBncmlkO1xuICBtaW4td2lkdGg6IDA7XG59XG4uc2NoZWR1bGUtbWFwLWFuY2hvciBzcGFuIHtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG4gIGZvbnQtc2l6ZTogMC42MnJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cbi5zY2hlZHVsZS1tYXAtYW5jaG9yIHN0cm9uZyB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uc2NoZWR1bGUtbWFwLWFuY2hvciBzbWFsbCB7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgZm9udC1zaXplOiAwLjY3cmVtO1xufVxuLnNjaGVkdWxlLW1hcC1hbmNob3IgYnV0dG9uLFxuLnNjaGVkdWxlLW1hcC1hbmNob3IgKyAuc2NoZWR1bGUtbWFwLWNhbmRpZGF0ZSBidXR0b24ge1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG59XG5cbi5zY2hlZHVsZS1tYXAtd3JhcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBtaW4taGVpZ2h0OiAwO1xufVxuXG4uc2NoZWR1bGUtbWFwLWNhbnZhcyB7XG4gIGZsZXg6IDE7XG4gIG1pbi1oZWlnaHQ6IDI3MHB4O1xuICBtYXgtaGVpZ2h0OiAzOHZoO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnNjaGVkdWxlLW1hcC1zdGF0dXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNHJlbTtcbiAgbGVmdDogNTAlO1xuICB6LWluZGV4OiA0O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjM1cmVtO1xuICBwYWRkaW5nOiAwLjRyZW0gMC41NXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpO1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuLnNjaGVkdWxlLW1hcC1zdGF0dXNbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zY2hlZHVsZS1tYXAtcmVzdWx0cy1oZWFkaW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwLjVyZW0gMC42NXJlbSAwLjI1cmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xufVxuLnNjaGVkdWxlLW1hcC1yZXN1bHRzLWhlYWRpbmcgc3Ryb25nIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjc2cmVtO1xufVxuXG4uc2NoZWR1bGUtbWFwLXJlc3VsdHMge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDAuM3JlbTtcbiAgbWluLWhlaWdodDogOTBweDtcbiAgbWF4LWhlaWdodDogMjQwcHg7XG4gIHBhZGRpbmc6IDAuM3JlbSAwLjQ1cmVtIDAuNTVyZW07XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5zY2hlZHVsZS1tYXAtcmVzdWx0IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBhdXRvO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNDVyZW07XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwLjQ1cmVtIDAuNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uc2NoZWR1bGUtbWFwLXJlc3VsdDpob3ZlciwgLnNjaGVkdWxlLW1hcC1yZXN1bHQuaXMtc2VsZWN0ZWQge1xuICBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDglLCB2YXIoLS1jYXJkLWNvbG91cikpO1xufVxuLnNjaGVkdWxlLW1hcC1yZXN1bHQgPiBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgbWluLXdpZHRoOiAwO1xufVxuLnNjaGVkdWxlLW1hcC1yZXN1bHQgc3Ryb25nIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5zY2hlZHVsZS1tYXAtcmVzdWx0IHNtYWxsLFxuLnNjaGVkdWxlLW1hcC1yZXN1bHQgPiBzcGFuOmxhc3QtY2hpbGQge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGZvbnQtc2l6ZTogMC42MnJlbTtcbn1cbi5zY2hlZHVsZS1tYXAtcmVzdWx0ID4gc3BhbjpsYXN0LWNoaWxkIHtcbiAgbWF4LXdpZHRoOiAxNDVweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5zY2hlZHVsZS1tYXAtY2FuZGlkYXRlIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAwLjQ1cmVtO1xuICBwYWRkaW5nOiAwLjZyZW07XG4gIGJvcmRlci10b3A6IDNweCBzb2xpZCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJveC1zaGFkb3c6IDAgLThweCAyMHB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgOSUsIHRyYW5zcGFyZW50KTtcbn1cbi5zY2hlZHVsZS1tYXAtY2FuZGlkYXRlW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2NoZWR1bGUtbWFwLWNhbmRpZGF0ZS1oZWFkaW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAwLjVyZW07XG59XG4uc2NoZWR1bGUtbWFwLWNhbmRpZGF0ZS1oZWFkaW5nID4gZGl2IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgbWluLXdpZHRoOiAwO1xufVxuLnNjaGVkdWxlLW1hcC1jYW5kaWRhdGUtaGVhZGluZyBzcGFuIHtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLnNjaGVkdWxlLW1hcC1jYW5kaWRhdGUtaGVhZGluZyBzdHJvbmcge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDAuODJyZW07XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnNjaGVkdWxlLW1hcC1jYW5kaWRhdGUtaGVhZGluZyBzbWFsbCB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgZm9udC1zaXplOiAwLjY1cmVtO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5zY2hlZHVsZS1tYXAtY2FuZGlkYXRlLWhlYWRpbmcgYnV0dG9uIHtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xufVxuXG4uc2NoZWR1bGUtbWFwLWNhbmRpZGF0ZS1tZXRyaWNzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDAuM3JlbTtcbn1cbi5zY2hlZHVsZS1tYXAtY2FuZGlkYXRlLW1ldHJpY3Mgc3BhbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMjVyZW07XG4gIHBhZGRpbmc6IDAuMnJlbSAwLjM1cmVtO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgZm9udC1zaXplOiAwLjYycmVtO1xufVxuLnNjaGVkdWxlLW1hcC1jYW5kaWRhdGUtbWV0cmljcyBpIHtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG59XG5cbi5zY2hlZHVsZS1tYXAtc3VnZ2VzdGlvbnMge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDAuMjVyZW07XG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcbn1cbi5zY2hlZHVsZS1tYXAtc3VnZ2VzdGlvbnMgPiBzcGFuIHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xufVxuLnNjaGVkdWxlLW1hcC1zdWdnZXN0aW9ucyBidXR0b24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMC40cmVtO1xuICBwYWRkaW5nOiAwLjM1cmVtIDAuNDJyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjY0cmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnNjaGVkdWxlLW1hcC1zdWdnZXN0aW9ucyBidXR0b246aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG59XG4uc2NoZWR1bGUtbWFwLXN1Z2dlc3Rpb25zIGJ1dHRvbiBzcGFuIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5zY2hlZHVsZS1tYXAtc3VnZ2VzdGlvbnMgYnV0dG9uIHNtYWxsIHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLnNjaGVkdWxlLW1hcC1jYW5kaWRhdGUtYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC4zNXJlbTtcbn1cbi5zY2hlZHVsZS1tYXAtY2FuZGlkYXRlLWFjdGlvbnMgLmJ1dHRvbi0xMyxcbi5zY2hlZHVsZS1tYXAtY2FuZGlkYXRlLWFjdGlvbnMgLmJ1dHRvbi0xMy1vdXRsaW5lIHtcbiAgZmxleDogMTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC42OHJlbTtcbn1cblxuLnNjaGVkdWxlLW1hcC1hbmNob3ItYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWdyaWQ7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnNjaGVkdWxlLW1hcC1hbmNob3ItYnRuOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG59XG5cbi5pcy1tYXAtcGxhY2VtZW50LWFjdGl2ZSAuc2NoZWR1bGUtY2VsbCB7XG4gIGN1cnNvcjogY29weTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDM1JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4uaXMtbWFwLXBsYWNlbWVudC1hY3RpdmUgLnNjaGVkdWxlLWNlbGwuaXMtbWFwLXBsYWNlbWVudC1ob3ZlciB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDEyJSwgdmFyKC0tY2FyZC1jb2xvdXIpKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwNTBweCkge1xuICAuc2NoZWR1bGUtcGFnZS5pcy1zY2hlZHVsZS1tYXAtdmlldyAuc2NoZWR1bGUtYm9keSB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzNDBweCBtaW5tYXgoMCwgMWZyKTtcbiAgfVxufVxuLnNjaGVkdWxlLW1hcC1lbXB0eSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtaW4taGVpZ2h0OiA5MHB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGdhcDogMC43NXJlbTtcbn1cbi5zY2hlZHVsZS1tYXAtZW1wdHkgaSB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgb3BhY2l0eTogMC41O1xufVxuXG4uc2NoZWR1bGUtbWFwLXBpbiB7XG4gIC0tcGluLWNvbG9yOiAjMjhhNzQ1O1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMykpO1xufVxuLnNjaGVkdWxlLW1hcC1waW4gaSB7XG4gIGNvbG9yOiB2YXIoLS1waW4tY29sb3IpO1xuICBmb250LXNpemU6IDI4cHg7XG59XG4uc2NoZWR1bGUtbWFwLXBpbiAuc2NoZWR1bGUtbWFwLXBpbi1jb3VudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA0cHg7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDIycHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tcGluLWNvbG9yKTtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XG59XG4uc2NoZWR1bGUtbWFwLXBpbi5pcy1iYWNrbG9nIHtcbiAgb3BhY2l0eTogMC44NTtcbn1cbi5zY2hlZHVsZS1tYXAtcGluLmlzLWJhY2tsb2cgaSB7XG4gIGNvbG9yOiAjOWNhM2FmO1xufVxuXG4uc2NoZWR1bGUtbWFwLWxlZ2VuZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwLjc1cmVtO1xuICBsZWZ0OiAwLjc1cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMC40cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgcGFkZGluZzogMC40cmVtIDAuNzVyZW07XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIG1heC13aWR0aDogNjAlO1xuICB6LWluZGV4OiA1O1xufVxuLnNjaGVkdWxlLW1hcC1sZWdlbmQgLnNjaGVkdWxlLW1hcC1sZWdlbmQtaXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMjVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG4uc2NoZWR1bGUtbWFwLWxlZ2VuZCAuc2NoZWR1bGUtbWFwLWxlZ2VuZC1pdGVtIC5kb3Qge1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cbi5zY2hlZHVsZS1tYXAtbGVnZW5kIC5zY2hlZHVsZS1tYXAtbGVnZW5kLWl0ZW0gLmRvdC5pcy1iYWNrbG9nIHtcbiAgYmFja2dyb3VuZDogIzljYTNhZjtcbn1cblxuLm1hcGxpYnJlZ2wtcG9wdXAtY29udGVudCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93KTtcbiAgcGFkZGluZzogMTJweCAxNHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5tYXBsaWJyZWdsLXBvcHVwLXRpcCB7XG4gIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLm1hcGxpYnJlZ2wtcG9wdXAtY2xvc2UtYnV0dG9uIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDtcbn1cblxuLnNjaGVkdWxlLW1hcC1wb3B1cCB7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDEzcHg7XG59XG4uc2NoZWR1bGUtbWFwLXBvcHVwIC5zY2hlZHVsZS1tYXAtcG9wdXAtbmFtZSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuLnNjaGVkdWxlLW1hcC1wb3B1cCAuc2NoZWR1bGUtbWFwLXBvcHVwLWFkZHJlc3Mge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cbi5zY2hlZHVsZS1tYXAtcG9wdXAgLnNjaGVkdWxlLW1hcC1wb3B1cC1tZXRhIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG59XG4uc2NoZWR1bGUtbWFwLXBvcHVwIC5zY2hlZHVsZS1tYXAtcG9wdXAtbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNHB4O1xuICBtYXJnaW46IDZweCAwO1xufVxuLnNjaGVkdWxlLW1hcC1wb3B1cCAuc2NoZWR1bGUtbWFwLXBvcHVwLXJvdyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogODBweCAxZnIgYXV0bztcbiAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJkYXRlIGNyZXcgc3RhdHVzXCIgXCJ0eXBlIHR5cGUgdHlwZVwiO1xuICBjb2x1bW4tZ2FwOiA2cHg7XG4gIHBhZGRpbmc6IDRweCA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1yb3ctY29sb3IsIHZhcigtLXNjaGVkdWxlLWdvb2QpKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNhcmQtY29sb3VyKSA4MCUsIHZhcigtLWJhY2tncm91bmQtY29sb3VyKSk7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cbi5zY2hlZHVsZS1tYXAtcG9wdXAgLnNjaGVkdWxlLW1hcC1wb3B1cC1yb3cgLnNjaGVkdWxlLW1hcC1wb3B1cC1kYXRlIHtcbiAgZ3JpZC1hcmVhOiBkYXRlO1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuLnNjaGVkdWxlLW1hcC1wb3B1cCAuc2NoZWR1bGUtbWFwLXBvcHVwLXJvdyAuc2NoZWR1bGUtbWFwLXBvcHVwLWNyZXcge1xuICBncmlkLWFyZWE6IGNyZXc7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG4uc2NoZWR1bGUtbWFwLXBvcHVwIC5zY2hlZHVsZS1tYXAtcG9wdXAtcm93IC5zY2hlZHVsZS1tYXAtcG9wdXAtc3RhdHVzIHtcbiAgZ3JpZC1hcmVhOiBzdGF0dXM7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgcGFkZGluZzogMXB4IDZweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG59XG4uc2NoZWR1bGUtbWFwLXBvcHVwIC5zY2hlZHVsZS1tYXAtcG9wdXAtcm93IC5zY2hlZHVsZS1tYXAtcG9wdXAtc3RhdHVzLnN0YXR1cy10ZW50YXRpdmUge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIpIDEyJSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG59XG4uc2NoZWR1bGUtbWFwLXBvcHVwIC5zY2hlZHVsZS1tYXAtcG9wdXAtcm93IC5zY2hlZHVsZS1tYXAtcG9wdXAtc3RhdHVzLnN0YXR1cy1jb25maXJtZWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zY2hlZHVsZS1nb29kLWJnKTtcbiAgY29sb3I6IHZhcigtLXNjaGVkdWxlLWdvb2QpO1xufVxuLnNjaGVkdWxlLW1hcC1wb3B1cCAuc2NoZWR1bGUtbWFwLXBvcHVwLXJvdyAuc2NoZWR1bGUtbWFwLXBvcHVwLXN0YXR1cy5zdGF0dXMtY29tcGxldGVkIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudC1sYXZlbmRlcikgMTglLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpO1xufVxuLnNjaGVkdWxlLW1hcC1wb3B1cCAuc2NoZWR1bGUtbWFwLXBvcHVwLXJvdyAuc2NoZWR1bGUtbWFwLXBvcHVwLXN0YXR1cy5zdGF0dXMtY2FuY2VsbGVkLCAuc2NoZWR1bGUtbWFwLXBvcHVwIC5zY2hlZHVsZS1tYXAtcG9wdXAtcm93IC5zY2hlZHVsZS1tYXAtcG9wdXAtc3RhdHVzLnN0YXR1cy13ZWF0aGVyX3Bvc3Rwb25lZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNjaGVkdWxlLWJhZC1iZyk7XG4gIGNvbG9yOiB2YXIoLS1zY2hlZHVsZS1iYWQpO1xufVxuLnNjaGVkdWxlLW1hcC1wb3B1cCAuc2NoZWR1bGUtbWFwLXBvcHVwLXJvdyAuc2NoZWR1bGUtbWFwLXBvcHVwLXR5cGUge1xuICBncmlkLWFyZWE6IHR5cGU7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xufVxuLnNjaGVkdWxlLW1hcC1wb3B1cCAuc2NoZWR1bGUtbWFwLXBvcHVwLWxpbmsge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG1hcmdpbi10b3A6IDZweDtcbn1cblxuLnNjaGVkdWxlLWxhc3QtZmluYWxpemVkIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNnJlbTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgNiUsIHRyYW5zcGFyZW50KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG4uc2NoZWR1bGUtbGFzdC1maW5hbGl6ZWQuc2NoZWR1bGUtbGFzdC1maW5hbGl6ZWQtZW1wdHkge1xuICBjb2xvcjogdmFyKC0tc2NoZWR1bGUtd2Fybik7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNjaGVkdWxlLXdhcm4tYmcpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXNjaGVkdWxlLXdhcm4tYm9yZGVyKTtcbn1cblxuLnNjaGVkdWxlLXN5bmMtYmFyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjc4cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zY2hlZHVsZS13YXJuLWJvcmRlcik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWluLXdpZHRoOiAyMjBweDtcbn1cbi5zY2hlZHVsZS1zeW5jLWJhciAuc2NoZWR1bGUtc3luYy1iYXItZmlsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHdpZHRoOiB2YXIoLS1zeW5jLXBlcmNlbnQsIDAlKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2NoZWR1bGUtd2FybikgMjglLCB0cmFuc3BhcmVudCksIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zY2hlZHVsZS13YXJuKSAxNCUsIHRyYW5zcGFyZW50KSk7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuNHMgZWFzZTtcbiAgei1pbmRleDogMDtcbn1cbi5zY2hlZHVsZS1zeW5jLWJhciAuc2NoZWR1bGUtc3luYy1iYXItbGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIGNvbG9yOiB2YXIoLS1zY2hlZHVsZS13YXJuKTtcbn1cbi5zY2hlZHVsZS1zeW5jLWJhci5pcy1lbXB0eSB7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA2JSwgdHJhbnNwYXJlbnQpO1xufVxuLnNjaGVkdWxlLXN5bmMtYmFyLmlzLWNvbXBsZXRlIHtcbiAgY29sb3I6IHZhcigtLXNjaGVkdWxlLWdvb2QpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zY2hlZHVsZS1nb29kLWJnKTtcbiAgYm9yZGVyLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2NoZWR1bGUtZ29vZCkgMzUlLCB0cmFuc3BhcmVudCk7XG4gIGFuaW1hdGlvbjogc2NoZWR1bGUtc3luYy1jZWxlYnJhdGUgMC42cyBlYXNlLW91dDtcbn1cbi5zY2hlZHVsZS1zeW5jLWJhci5pcy1jb21wbGV0ZSBpIHtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG5Aa2V5ZnJhbWVzIHNjaGVkdWxlLXJhaW4tZHJpZnQge1xuICBmcm9tIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG4gIH1cbiAgdG8ge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC04cHggOHB4O1xuICB9XG59XG5Aa2V5ZnJhbWVzIHNjaGVkdWxlLXN5bmMtY2VsZWJyYXRlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45Nik7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDQpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDZweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2NoZWR1bGUtZ29vZCkgMjAlLCB0cmFuc3BhcmVudCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwIHRyYW5zcGFyZW50O1xuICB9XG59XG4uc2NoZWR1bGUtcGFnZSxcbi5zY2hlZHVsZS1maW5hbGl6ZSB7XG4gIC0tc2NoZWR1bGUtd2FybjogI2I0NTMwOTtcbiAgLS1zY2hlZHVsZS13YXJuLWJnOiByZ2JhKDIxNywgMTE5LCA2LCAwLjE0KTtcbiAgLS1zY2hlZHVsZS13YXJuLWJvcmRlcjogcmdiYSgyMTcsIDExOSwgNiwgMC40MCk7XG4gIC0tc2NoZWR1bGUtZ29vZDogIzE1ODAzZDtcbiAgLS1zY2hlZHVsZS1nb29kLWJnOiByZ2JhKDIyLCAxNjMsIDc0LCAwLjE0KTtcbiAgLS1zY2hlZHVsZS1iYWQ6ICNiOTFjMWM7XG4gIC0tc2NoZWR1bGUtYmFkLWJnOiByZ2JhKDIyMCwgMzgsIDM4LCAwLjE0KTtcbn1cblxuYm9keVtkYXRhLXRoZW1lPWRhcmtdIC5zY2hlZHVsZS1wYWdlLFxuYm9keVtkYXRhLXRoZW1lPWRhcmtdIC5zY2hlZHVsZS1maW5hbGl6ZSB7XG4gIC0tc2NoZWR1bGUtd2FybjogI2ZiYmYyNDtcbiAgLS1zY2hlZHVsZS13YXJuLWJnOiByZ2JhKDI1MSwgMTkxLCAzNiwgMC4xOCk7XG4gIC0tc2NoZWR1bGUtd2Fybi1ib3JkZXI6IHJnYmEoMjUxLCAxOTEsIDM2LCAwLjQwKTtcbiAgLS1zY2hlZHVsZS1nb29kOiAjNGFkZTgwO1xuICAtLXNjaGVkdWxlLWdvb2QtYmc6IHJnYmEoNzQsIDIyMiwgMTI4LCAwLjE4KTtcbiAgLS1zY2hlZHVsZS1iYWQ6ICNmODcxNzE7XG4gIC0tc2NoZWR1bGUtYmFkLWJnOiByZ2JhKDI0OCwgMTEzLCAxMTMsIDAuMTgpO1xufVxuXG4uc2NoZWR1bGUtd2VhdGhlci1iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMnJlbTtcbiAgcGFkZGluZzogMC4wNXJlbSAwLjM1cmVtO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgZm9udC1zaXplOiAwLjYycmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmbGV4LXNocmluazogMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnNjaGVkdWxlLXdlYXRoZXItYmFkZ2UuZ3JlZW4ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zY2hlZHVsZS1nb29kLWJnKTtcbiAgY29sb3I6IHZhcigtLXNjaGVkdWxlLWdvb2QpO1xufVxuLnNjaGVkdWxlLXdlYXRoZXItYmFkZ2UueWVsbG93IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2NoZWR1bGUtd2Fybi1iZyk7XG4gIGNvbG9yOiB2YXIoLS1zY2hlZHVsZS13YXJuKTtcbn1cbi5zY2hlZHVsZS13ZWF0aGVyLWJhZGdlLnJlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNjaGVkdWxlLWJhZC1iZyk7XG4gIGNvbG9yOiB2YXIoLS1zY2hlZHVsZS1iYWQpO1xufVxuLnNjaGVkdWxlLXdlYXRoZXItYmFkZ2UudW5rbm93biwgLnNjaGVkdWxlLXdlYXRoZXItYmFkZ2UuZ3JheSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgMTAlLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbn1cbi5zY2hlZHVsZS13ZWF0aGVyLWJhZGdlIC5zY2hlZHVsZS13ZWF0aGVyLXRlbXAsXG4uc2NoZWR1bGUtd2VhdGhlci1iYWRnZSAuc2NoZWR1bGUtd2VhdGhlci1wb3Age1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IFwidG51bVwiO1xufVxuLnNjaGVkdWxlLXdlYXRoZXItYmFkZ2UgLnNjaGVkdWxlLXdlYXRoZXItdGVtcCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4uc2NoZWR1bGUtd2VhdGhlci1iYWRnZSAuc2NoZWR1bGUtd2VhdGhlci1wb3Age1xuICBvcGFjaXR5OiAwLjg1O1xufVxuXG4jc2NoZWR1bGVFZGl0TW9kYWwgLm1vZGFsLWNvbnRlbnQsXG4jc2NoZWR1bGVTdGFnZVBpY2tlck1vZGFsIC5tb2RhbC1jb250ZW50LFxuI3NjaGVkdWxlUnVsZXNNb2RhbCAubW9kYWwtY29udGVudCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpO1xufVxuI3NjaGVkdWxlRWRpdE1vZGFsIC5tb2RhbC1oZWFkZXIsXG4jc2NoZWR1bGVFZGl0TW9kYWwgLm1vZGFsLWZvb3RlcixcbiNzY2hlZHVsZVN0YWdlUGlja2VyTW9kYWwgLm1vZGFsLWhlYWRlcixcbiNzY2hlZHVsZVN0YWdlUGlja2VyTW9kYWwgLm1vZGFsLWZvb3RlcixcbiNzY2hlZHVsZVJ1bGVzTW9kYWwgLm1vZGFsLWhlYWRlcixcbiNzY2hlZHVsZVJ1bGVzTW9kYWwgLm1vZGFsLWZvb3RlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbn1cbiNzY2hlZHVsZUVkaXRNb2RhbCAubW9kYWwtdGl0bGUsXG4jc2NoZWR1bGVFZGl0TW9kYWwgLmZvcm0tbGFiZWwsXG4jc2NoZWR1bGVFZGl0TW9kYWwgLmZvcm0tY2hlY2stbGFiZWwsXG4jc2NoZWR1bGVFZGl0TW9kYWwgbGFiZWwsXG4jc2NoZWR1bGVTdGFnZVBpY2tlck1vZGFsIC5tb2RhbC10aXRsZSxcbiNzY2hlZHVsZVN0YWdlUGlja2VyTW9kYWwgLmZvcm0tbGFiZWwsXG4jc2NoZWR1bGVTdGFnZVBpY2tlck1vZGFsIC5mb3JtLWNoZWNrLWxhYmVsLFxuI3NjaGVkdWxlU3RhZ2VQaWNrZXJNb2RhbCBsYWJlbCxcbiNzY2hlZHVsZVJ1bGVzTW9kYWwgLm1vZGFsLXRpdGxlLFxuI3NjaGVkdWxlUnVsZXNNb2RhbCAuZm9ybS1sYWJlbCxcbiNzY2hlZHVsZVJ1bGVzTW9kYWwgLmZvcm0tY2hlY2stbGFiZWwsXG4jc2NoZWR1bGVSdWxlc01vZGFsIGxhYmVsIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuI3NjaGVkdWxlRWRpdE1vZGFsIC5mb3JtLWNvbnRyb2wsXG4jc2NoZWR1bGVFZGl0TW9kYWwgLmZvcm0tc2VsZWN0LFxuI3NjaGVkdWxlRWRpdE1vZGFsIHRleHRhcmVhLFxuI3NjaGVkdWxlRWRpdE1vZGFsIGlucHV0W3R5cGU9dGV4dF0sXG4jc2NoZWR1bGVFZGl0TW9kYWwgaW5wdXRbdHlwZT1zZWFyY2hdLFxuI3NjaGVkdWxlRWRpdE1vZGFsIGlucHV0W3R5cGU9ZW1haWxdLFxuI3NjaGVkdWxlRWRpdE1vZGFsIGlucHV0W3R5cGU9bnVtYmVyXSxcbiNzY2hlZHVsZVN0YWdlUGlja2VyTW9kYWwgLmZvcm0tY29udHJvbCxcbiNzY2hlZHVsZVN0YWdlUGlja2VyTW9kYWwgLmZvcm0tc2VsZWN0LFxuI3NjaGVkdWxlU3RhZ2VQaWNrZXJNb2RhbCB0ZXh0YXJlYSxcbiNzY2hlZHVsZVN0YWdlUGlja2VyTW9kYWwgaW5wdXRbdHlwZT10ZXh0XSxcbiNzY2hlZHVsZVN0YWdlUGlja2VyTW9kYWwgaW5wdXRbdHlwZT1zZWFyY2hdLFxuI3NjaGVkdWxlU3RhZ2VQaWNrZXJNb2RhbCBpbnB1dFt0eXBlPWVtYWlsXSxcbiNzY2hlZHVsZVN0YWdlUGlja2VyTW9kYWwgaW5wdXRbdHlwZT1udW1iZXJdLFxuI3NjaGVkdWxlUnVsZXNNb2RhbCAuZm9ybS1jb250cm9sLFxuI3NjaGVkdWxlUnVsZXNNb2RhbCAuZm9ybS1zZWxlY3QsXG4jc2NoZWR1bGVSdWxlc01vZGFsIHRleHRhcmVhLFxuI3NjaGVkdWxlUnVsZXNNb2RhbCBpbnB1dFt0eXBlPXRleHRdLFxuI3NjaGVkdWxlUnVsZXNNb2RhbCBpbnB1dFt0eXBlPXNlYXJjaF0sXG4jc2NoZWR1bGVSdWxlc01vZGFsIGlucHV0W3R5cGU9ZW1haWxdLFxuI3NjaGVkdWxlUnVsZXNNb2RhbCBpbnB1dFt0eXBlPW51bWJlcl0ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnB1dC1iYWNrZ3JvdW5kKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0taW5wdXQtdGV4dCkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnB1dC1ib3JkZXIpICFpbXBvcnRhbnQ7XG59XG4jc2NoZWR1bGVFZGl0TW9kYWwgLmZvcm0tY29udHJvbDpmb2N1cyxcbiNzY2hlZHVsZUVkaXRNb2RhbCAuZm9ybS1zZWxlY3Q6Zm9jdXMsXG4jc2NoZWR1bGVTdGFnZVBpY2tlck1vZGFsIC5mb3JtLWNvbnRyb2w6Zm9jdXMsXG4jc2NoZWR1bGVTdGFnZVBpY2tlck1vZGFsIC5mb3JtLXNlbGVjdDpmb2N1cyxcbiNzY2hlZHVsZVJ1bGVzTW9kYWwgLmZvcm0tY29udHJvbDpmb2N1cyxcbiNzY2hlZHVsZVJ1bGVzTW9kYWwgLmZvcm0tc2VsZWN0OmZvY3VzIHtcbiAgYmFja2dyb3VuZDogdmFyKC0taW5wdXQtYmFja2dyb3VuZCkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnB1dC1mb2N1cy1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LWxhdmVuZGVyKSAyNSUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xufVxuI3NjaGVkdWxlRWRpdE1vZGFsIC5mb3JtLXRleHQsXG4jc2NoZWR1bGVFZGl0TW9kYWwgc21hbGwsXG4jc2NoZWR1bGVFZGl0TW9kYWwgLnRleHQtbXV0ZWQsXG4jc2NoZWR1bGVTdGFnZVBpY2tlck1vZGFsIC5mb3JtLXRleHQsXG4jc2NoZWR1bGVTdGFnZVBpY2tlck1vZGFsIHNtYWxsLFxuI3NjaGVkdWxlU3RhZ2VQaWNrZXJNb2RhbCAudGV4dC1tdXRlZCxcbiNzY2hlZHVsZVJ1bGVzTW9kYWwgLmZvcm0tdGV4dCxcbiNzY2hlZHVsZVJ1bGVzTW9kYWwgc21hbGwsXG4jc2NoZWR1bGVSdWxlc01vZGFsIC50ZXh0LW11dGVkIHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpICFpbXBvcnRhbnQ7XG59XG4jc2NoZWR1bGVFZGl0TW9kYWwgLmJ0bi1jbG9zZSxcbiNzY2hlZHVsZVN0YWdlUGlja2VyTW9kYWwgLmJ0bi1jbG9zZSxcbiNzY2hlZHVsZVJ1bGVzTW9kYWwgLmJ0bi1jbG9zZSB7XG4gIG9wYWNpdHk6IDAuNztcbn1cbiNzY2hlZHVsZUVkaXRNb2RhbCAuYnRuLWNsb3NlOmhvdmVyLFxuI3NjaGVkdWxlU3RhZ2VQaWNrZXJNb2RhbCAuYnRuLWNsb3NlOmhvdmVyLFxuI3NjaGVkdWxlUnVsZXNNb2RhbCAuYnRuLWNsb3NlOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuYm9keVtkYXRhLXRoZW1lPWRhcmtdICNzY2hlZHVsZUVkaXRNb2RhbCAuYnRuLWNsb3NlLFxuYm9keVtkYXRhLXRoZW1lPWRhcmtdICNzY2hlZHVsZVN0YWdlUGlja2VyTW9kYWwgLmJ0bi1jbG9zZSB7XG4gIGZpbHRlcjogaW52ZXJ0KDEpIGdyYXlzY2FsZSgxMDAlKTtcbn1cblxuLnNjaGVkdWxlLWNyZXctbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC4yNXJlbTtcbn1cblxuLnNjaGVkdWxlLWNyZXctcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjc1cmVtO1xuICBwYWRkaW5nOiAwLjZyZW0gMC43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xMnMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMTJzIGVhc2UsIHRyYW5zZm9ybSAwLjEycyBlYXNlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uc2NoZWR1bGUtY3Jldy1yb3c6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LWxhdmVuZGVyKSA2JSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xufVxuLnNjaGVkdWxlLWNyZXctcm93LmlzLWRyYWdnaW5nIHtcbiAgb3BhY2l0eTogMC41O1xufVxuLnNjaGVkdWxlLWNyZXctcm93LmRyb3AtYWJvdmU6OmJlZm9yZSwgLnNjaGVkdWxlLWNyZXctcm93LmRyb3AtYmVsb3c6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiAycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cbi5zY2hlZHVsZS1jcmV3LXJvdy5kcm9wLWFib3ZlOjpiZWZvcmUge1xuICB0b3A6IC0xcHg7XG59XG4uc2NoZWR1bGUtY3Jldy1yb3cuZHJvcC1iZWxvdzo6YWZ0ZXIge1xuICBib3R0b206IC0xcHg7XG59XG4uc2NoZWR1bGUtY3Jldy1yb3cgLnNjaGVkdWxlLWNyZXctcm93LWhhbmRsZSB7XG4gIGN1cnNvcjogZ3JhYjtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBwYWRkaW5nOiAwIDAuMjVyZW07XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuLnNjaGVkdWxlLWNyZXctcm93IC5zY2hlZHVsZS1jcmV3LXJvdy1oYW5kbGU6YWN0aXZlIHtcbiAgY3Vyc29yOiBncmFiYmluZztcbn1cbi5zY2hlZHVsZS1jcmV3LXJvdyAuc2NoZWR1bGUtY3Jldy1yb3ctaGFuZGxlOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cbi5zY2hlZHVsZS1jcmV3LXJvdyAubWluLXdpZHRoLTAge1xuICBtaW4td2lkdGg6IDA7XG59XG4uc2NoZWR1bGUtY3Jldy1yb3cgLnNjaGVkdWxlLWNyZXctcm93LWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuMjVyZW07XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnNjaGVkdWxlLWNyZXctcm93IC5zY2hlZHVsZS1jcmV3LXJvdy1hY3Rpb25zIC5idXR0b24tMTMtb3V0bGluZSB7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC41NXJlbTtcbn1cblxuLnNjaGVkdWxlLWNhcmQtYmFkZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMC40cmVtO1xuICBsZWZ0OiAwLjRyZW07XG4gIHotaW5kZXg6IDE1O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjJyZW07XG4gIHBhZGRpbmc6IDAuMTVyZW0gMC40NXJlbTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudC1ncmVlbikgMjAlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWdyZWVuKTtcbiAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudC1ncmVlbikgNDAlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLnNjaGVkdWxlLWNhcmQtYmFkZ2U6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LWdyZWVuKSAzMCUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtZ3JlZW4pICFpbXBvcnRhbnQ7XG59XG4uc2NoZWR1bGUtY2FyZC1iYWRnZSAuc2NoZWR1bGUtY2FyZC1iYWRnZS1jb3VudCB7XG4gIGZvbnQtZmVhdHVyZS1zZXR0aW5nczogXCJ0bnVtXCI7XG59XG5cbi5zY2hlZHVsZS10aW1lbGluZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC40cmVtO1xufVxuLnNjaGVkdWxlLXRpbWVsaW5lIC5zY2hlZHVsZS10aW1lbGluZS1yb3cge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDU2cHggMjhweCAxZnI7XG4gIGdhcDogMC43NXJlbTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMC42cmVtIDAuNzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jYXJkLWNvbG91cikgOTAlLCB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikpO1xuICBib3JkZXItbGVmdC13aWR0aDogNHB4O1xuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tcm93LWNvbG91ciwgdmFyKC0tYWNjZW50LWxhdmVuZGVyKSk7XG59XG4uc2NoZWR1bGUtdGltZWxpbmUgLnNjaGVkdWxlLXRpbWVsaW5lLXJvdy5pcy1ldmVudCB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpO1xufVxuLnNjaGVkdWxlLXRpbWVsaW5lIC5zY2hlZHVsZS10aW1lbGluZS1kYXRlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMTtcbn1cbi5zY2hlZHVsZS10aW1lbGluZSAuc2NoZWR1bGUtdGltZWxpbmUtZGF0ZSAuZGF5IHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uc2NoZWR1bGUtdGltZWxpbmUgLnNjaGVkdWxlLXRpbWVsaW5lLWRhdGUgLmRvdywgLnNjaGVkdWxlLXRpbWVsaW5lIC5zY2hlZHVsZS10aW1lbGluZS1kYXRlIC5tb250aCB7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xufVxuLnNjaGVkdWxlLXRpbWVsaW5lIC5zY2hlZHVsZS10aW1lbGluZS1pY29uIHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi5zY2hlZHVsZS10aW1lbGluZSAuc2NoZWR1bGUtdGltZWxpbmUtcm93LmlzLWJsb2NrIC5zY2hlZHVsZS10aW1lbGluZS1pY29uIHtcbiAgY29sb3I6IHZhcigtLXJvdy1jb2xvdXIsIHZhcigtLWFjY2VudC1ncmVlbikpO1xufVxuXG4uc2NoZWR1bGUtZmluYWxpemUtcnVsZXMtYm9keSB7XG4gIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4uc2NoZWR1bGUtZmluYWxpemUtcnVsZXMtdGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cbi5zY2hlZHVsZS1maW5hbGl6ZS1ydWxlcy10YWJsZSB0aGVhZCB0aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICBwYWRkaW5nOiAwLjRyZW0gMC42cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLnNjaGVkdWxlLWZpbmFsaXplLXJ1bGVzLXRhYmxlIHRib2R5IHRkIHtcbiAgcGFkZGluZzogMC40NXJlbSAwLjZyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4uc2NoZWR1bGUtZmluYWxpemUtcnVsZXMtdGFibGUgdGJvZHkgdHI6bGFzdC1jaGlsZCB0ZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi5zY2hlZHVsZS1maW5hbGl6ZSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG4uc2NoZWR1bGUtZmluYWxpemUgLnNjaGVkdWxlLWZpbmFsaXplLXJ1bGVzIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG59XG4uc2NoZWR1bGUtZmluYWxpemUgLnNjaGVkdWxlLWZpbmFsaXplLXJ1bGVzIHN1bW1hcnkge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4uc2NoZWR1bGUtZmluYWxpemUgLnNjaGVkdWxlLWZpbmFsaXplLXJ1bGVzIHN1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnNjaGVkdWxlLWZpbmFsaXplIC5zY2hlZHVsZS1maW5hbGl6ZS1ydWxlc1tvcGVuXSBzdW1tYXJ5IHtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuLnNjaGVkdWxlLWZpbmFsaXplIC5zY2hlZHVsZS1maW5hbGl6ZS11bnRvdWNoZWQge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgNCUsIHRyYW5zcGFyZW50KTtcbiAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG4uc2NoZWR1bGUtZmluYWxpemUgLnNjaGVkdWxlLWZpbmFsaXplLXVudG91Y2hlZC1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyNjBweCwgMWZyKSk7XG4gIGdhcDogMC41cmVtO1xufVxuLnNjaGVkdWxlLWZpbmFsaXplIC5zY2hlZHVsZS1maW5hbGl6ZS11bnRvdWNoZWQtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgZ2FwOiAwLjVyZW07XG4gIHBhZGRpbmc6IDAuNHJlbSAwLjZyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG59XG4uc2NoZWR1bGUtZmluYWxpemUgLnNjaGVkdWxlLWZpbmFsaXplLXVudG91Y2hlZC1pdGVtIC5jb3VudCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMS4wNXJlbTtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtaW4td2lkdGg6IDJjaDtcbn1cbi5zY2hlZHVsZS1maW5hbGl6ZSAuc2NoZWR1bGUtZmluYWxpemUtdW50b3VjaGVkLWl0ZW0gLmxhYmVsIHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xufVxuLnNjaGVkdWxlLWZpbmFsaXplIC5zY2hlZHVsZS1maW5hbGl6ZS1hY3Rpb25zLXRleHQge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDI0MHB4O1xufVxuLnNjaGVkdWxlLWZpbmFsaXplIC5zY2hlZHVsZS1maW5hbGl6ZS1jb3VudHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNHJlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuLnNjaGVkdWxlLWZpbmFsaXplIC5zY2hlZHVsZS1maW5hbGl6ZS1zZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBwYWRkaW5nOiAxcmVtIDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG4uc2NoZWR1bGUtZmluYWxpemUgLnNjaGVkdWxlLWZpbmFsaXplLWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNXJlbTtcbn1cbi5zY2hlZHVsZS1maW5hbGl6ZSAuc2NoZWR1bGUtZmluYWxpemUtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMC43NXJlbTtcbiAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jYXJkLWNvbG91cikgOTIlLCB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xMnMgZWFzZTtcbn1cbi5zY2hlZHVsZS1maW5hbGl6ZSAuc2NoZWR1bGUtZmluYWxpemUtcm93OmhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudC1sYXZlbmRlcikgOCUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG59XG4uc2NoZWR1bGUtZmluYWxpemUgLnNjaGVkdWxlLWZpbmFsaXplLXJvdyBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XG59XG4uc2NoZWR1bGUtZmluYWxpemUgLnNjaGVkdWxlLWZpbmFsaXplLXJvdyAuc2NoZWR1bGUtZmluYWxpemUtcm93LWJvZHkge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG59XG4uc2NoZWR1bGUtZmluYWxpemUgLnNjaGVkdWxlLWZpbmFsaXplLXJvdyAuc2NoZWR1bGUtZmluYWxpemUtcm93LW1ldGEge1xuICBmb250LXNpemU6IDAuNzhyZW07XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgbWFyZ2luLXRvcDogMC4xNXJlbTtcbn1cbi5zY2hlZHVsZS1maW5hbGl6ZSAuc2NoZWR1bGUtZmluYWxpemUtcm93LWJhdGNoZWQgLnNjaGVkdWxlLWZpbmFsaXplLXZpc2l0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDAuMzVyZW07XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgcGFkZGluZzogMC4xNXJlbSAwO1xufVxuLnNjaGVkdWxlLWZpbmFsaXplIC5zY2hlZHVsZS1maW5hbGl6ZS1yb3ctYmF0Y2hlZCAuc2NoZWR1bGUtZmluYWxpemUtdmlzaXQtcHJpbWFyeSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XG59XG4uc2NoZWR1bGUtZmluYWxpemUgLnNjaGVkdWxlLWZpbmFsaXplLXJvdy1iYXRjaGVkIC5zY2hlZHVsZS1maW5hbGl6ZS12aXNpdC1tYXJrZXIge1xuICBmb250LXNpemU6IDAuODVyZW07XG4gIHdpZHRoOiAwLjlyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG59XG4uc2NoZWR1bGUtZmluYWxpemUgLnNjaGVkdWxlLWZpbmFsaXplLXJvdy1iYXRjaGVkIC5zY2hlZHVsZS1maW5hbGl6ZS12aXNpdC1kYXRlIHtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbn1cbi5zY2hlZHVsZS1maW5hbGl6ZSAuc2NoZWR1bGUtZmluYWxpemUtcm93LWJhdGNoZWQgLnNjaGVkdWxlLWZpbmFsaXplLXZpc2l0cy1vdGhlcnMge1xuICBtYXJnaW4tdG9wOiAwLjRyZW07XG4gIHBhZGRpbmc6IDAuNHJlbSAwLjVyZW0gMC4ycmVtO1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDQwJSwgdHJhbnNwYXJlbnQpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LWxhdmVuZGVyKSA0JSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDtcbn1cbi5zY2hlZHVsZS1maW5hbGl6ZSAuc2NoZWR1bGUtZmluYWxpemUtcm93LWJhdGNoZWQgLnNjaGVkdWxlLWZpbmFsaXplLXZpc2l0cy1vdGhlcnMtbGFiZWwge1xuICBtYXJnaW4tYm90dG9tOiAwLjJyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xufVxuLnNjaGVkdWxlLWZpbmFsaXplIC5zY2hlZHVsZS1maW5hbGl6ZS1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDFyZW07XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICBib3R0b206IDA7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsIHZhcigtLWJhY2tncm91bmQtY29sb3VyKSA2MCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnNjaGVkdWxlLW5vdGlmeS1waWxsIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4yNXJlbTtcbiAgcGFkZGluZzogMC4wNXJlbSAwLjRyZW07XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBmb250LXNpemU6IDAuNjJyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIGZsZXgtc2hyaW5rOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLnNjaGVkdWxlLW5vdGlmeS1waWxsLnNjaGVkdWxlLW5vdGlmeS1waWxsLXBlbmRpbmcge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zY2hlZHVsZS13YXJuLWJnKTtcbiAgY29sb3I6IHZhcigtLXNjaGVkdWxlLXdhcm4pO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zY2hlZHVsZS13YXJuLWJvcmRlcik7XG4gIGFuaW1hdGlvbjogc2NoZWR1bGUtbm90aWZ5LXB1bHNlIDIuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG4uc2NoZWR1bGUtbm90aWZ5LXBpbGwuc2NoZWR1bGUtbm90aWZ5LXBpbGwtc3luY2VkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2NoZWR1bGUtZ29vZC1iZyk7XG4gIGNvbG9yOiB2YXIoLS1zY2hlZHVsZS1nb29kKTtcbiAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNjaGVkdWxlLWdvb2QpIDM1JSwgdHJhbnNwYXJlbnQpO1xufVxuXG5Aa2V5ZnJhbWVzIHNjaGVkdWxlLW5vdGlmeS1wdWxzZSB7XG4gIDAlLCAxMDAlIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwIHZhcigtLXNjaGVkdWxlLXdhcm4tYm9yZGVyKTtcbiAgfVxuICA1MCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2NoZWR1bGUtd2FybikgMjIlLCB0cmFuc3BhcmVudCk7XG4gIH1cbn1cbi5zY2hlZHVsZS1ibG9jay1ldmVudHMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjE1cmVtO1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbiAgZm9udC1zaXplOiAwLjY4cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBwYWRkaW5nOiAwIDAuM3JlbTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDE0JSwgdHJhbnNwYXJlbnQpO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnNjaGVkdWxlLWRheS1hZ2dyZWdhdGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XG4gIHBhZGRpbmc6IDAuMDVyZW0gMC40NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgYm9yZGVyOiAxcHggc29saWQgY3VycmVudENvbG9yO1xufVxuLnNjaGVkdWxlLWRheS1hZ2dyZWdhdGUuZ3JlZW4ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zY2hlZHVsZS1nb29kLWJnKTtcbiAgY29sb3I6IHZhcigtLXNjaGVkdWxlLWdvb2QpO1xuICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zY2hlZHVsZS1nb29kKSAzNSUsIHRyYW5zcGFyZW50KTtcbn1cbi5zY2hlZHVsZS1kYXktYWdncmVnYXRlLnllbGxvdyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNjaGVkdWxlLXdhcm4tYmcpO1xuICBjb2xvcjogdmFyKC0tc2NoZWR1bGUtd2Fybik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2NoZWR1bGUtd2Fybi1ib3JkZXIpO1xufVxuLnNjaGVkdWxlLWRheS1hZ2dyZWdhdGUucmVkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2NoZWR1bGUtYmFkLWJnKTtcbiAgY29sb3I6IHZhcigtLXNjaGVkdWxlLWJhZCk7XG4gIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNjaGVkdWxlLWJhZCkgMzUlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5zY2hlZHVsZS1lZGl0LWNvbnRleHQge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBwYWRkaW5nOiAwLjg1cmVtIDFyZW07XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDUlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuLnNjaGVkdWxlLWVkaXQtY29udGV4dCAuc2NoZWR1bGUtZWRpdC1jb250ZXh0LWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC40cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDAuODVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNnJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cbi5zY2hlZHVsZS1lZGl0LWNvbnRleHQgLnNjaGVkdWxlLWVkaXQtY29udGV4dC1oZWFkZXIgYSB7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uc2NoZWR1bGUtZWRpdC1jb250ZXh0IC5zY2hlZHVsZS1lZGl0LWNvbnRleHQtaGVhZGVyIGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5zY2hlZHVsZS1lZGl0LWNvbnRleHQgLnNjaGVkdWxlLWVkaXQtY29udGV4dC1za2VsZXRvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC40cmVtO1xuICBwYWRkaW5nOiAwLjI1cmVtIDA7XG59XG4uc2NoZWR1bGUtZWRpdC1jb250ZXh0IC5zY2hlZHVsZS1lZGl0LWNvbnRleHQtc2tlbGV0b24gLnNrZWxldG9uLXJvdyB7XG4gIGhlaWdodDogMC44NXJlbTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbXV0ZWQtdGV4dCkgMTIlLCB0cmFuc3BhcmVudCksIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tdXRlZC10ZXh0KSAyMiUsIHRyYW5zcGFyZW50KSwgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW11dGVkLXRleHQpIDEyJSwgdHJhbnNwYXJlbnQpKTtcbiAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7XG4gIGFuaW1hdGlvbjogc2NoZWR1bGUtc2tlbGV0b24tc2hpbW1lciAxLjRzIGxpbmVhciBpbmZpbml0ZTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLnNjaGVkdWxlLWVkaXQtY29udGV4dCAuc2NoZWR1bGUtZWRpdC1jb250ZXh0LWFsZXJ0IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2NoZWR1bGUtYmFkLWJnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNjaGVkdWxlLWJhZCkgNDAlLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiB2YXIoLS1zY2hlZHVsZS1iYWQpO1xuICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBmb250LXNpemU6IDAuODVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNnJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5zY2hlZHVsZS1lZGl0LWNvbnRleHQgLnNjaGVkdWxlLWVkaXQtY29udGV4dC1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgxODBweCwgMWZyKSk7XG4gIGdhcDogMC43NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC42cmVtO1xufVxuLnNjaGVkdWxlLWVkaXQtY29udGV4dCAuc2NoZWR1bGUtZWRpdC1jb250ZXh0LWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbn1cbi5zY2hlZHVsZS1lZGl0LWNvbnRleHQgLnNjaGVkdWxlLWVkaXQtY29udGV4dC1ldmVudHMge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC4zcmVtO1xufVxuLnNjaGVkdWxlLWVkaXQtY29udGV4dCAuc2NoZWR1bGUtZWRpdC1jb250ZXh0LWV2ZW50cyBsaSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBmb250LXNpemU6IDAuODVyZW07XG59XG4uc2NoZWR1bGUtZWRpdC1jb250ZXh0IC5zY2hlZHVsZS1lZGl0LWNvbnRleHQtZXZlbnRzIGxpIC5zY2hlZHVsZS1lZGl0LWNvbnRleHQtZXZlbnQtZGF0ZSB7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgbWluLXdpZHRoOiA5MHB4O1xufVxuLnNjaGVkdWxlLWVkaXQtY29udGV4dCAuc2NoZWR1bGUtZWRpdC1jb250ZXh0LWV2ZW50cyBsaSAuc2NoZWR1bGUtZWRpdC1jb250ZXh0LWV2ZW50LXRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5zY2hlZHVsZS1lZGl0LWNvbnRleHQgLnNjaGVkdWxlLWVkaXQtY29udGV4dC1jb21tZW50IHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNhcmQtY29sb3VyKSA4MCUsIHZhcigtLWJhY2tncm91bmQtY29sb3VyKSk7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogMC41cmVtIDAuN3JlbTtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xufVxuLnNjaGVkdWxlLWVkaXQtY29udGV4dCAuc2NoZWR1bGUtZWRpdC1jb250ZXh0LWNvbW1lbnQgPiBkaXY6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG4uc2NoZWR1bGUtZWRpdC1jb250ZXh0IC5zY2hlZHVsZS1lZGl0LWNvbnRleHQtZXJyb3Ige1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG59XG4uc2NoZWR1bGUtZWRpdC1jb250ZXh0IC5zY2hlZHVsZS1lZGl0LWNvbnRleHQtZXJyb3IgYSB7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuQGtleWZyYW1lcyBzY2hlZHVsZS1za2VsZXRvbi1zaGltbWVyIHtcbiAgZnJvbSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMjAwJSAwO1xuICB9XG4gIHRvIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjAwJSAwO1xuICB9XG59XG4ucHJvamVjdC1zaG93LWxheW91dCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjIwcHggMWZyO1xuICBncmlkLXRlbXBsYXRlLWFyZWFzOiBcInNpZGViYXIgbWFpblwiO1xuICBnYXA6IDFyZW07XG4gIG1heC13aWR0aDogMTQwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogMXJlbSAxcmVtIDJyZW07XG4gIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnByb2plY3Qtc2hvdy1sYXlvdXQuc2lkZWJhci1pcy1jb2xsYXBzZWQge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDY0cHggMWZyO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDExOTkuOThweCkge1xuICAucHJvamVjdC1zaG93LWxheW91dCB7XG4gICAgZ2FwOiAwLjc1cmVtO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLnByb2plY3Qtc2hvdy1sYXlvdXQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwibWFpblwiO1xuICAgIGdhcDogMC43NXJlbTtcbiAgICBwYWRkaW5nOiAwLjc1cmVtIDAuNzVyZW0gMS41cmVtO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLnByb2plY3Qtc2hvdy1sYXlvdXQge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjVyZW0gMXJlbTtcbiAgfVxufVxuXG4ucHJvamVjdC10YWItY29udGV4dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbiAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbiAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cbi5wcm9qZWN0LXRhYi1jb250ZXh0IC5wcm9qZWN0LXRhYi1jb250ZXh0LWJhY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjI1cmVtO1xuICBjb2xvcjogdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXdlaWdodDogNjAwO1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLnByb2plY3QtdGFiLWNvbnRleHQgLnByb2plY3QtdGFiLWNvbnRleHQtYmFjazpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDEwJSwgdHJhbnNwYXJlbnQpO1xufVxuLnByb2plY3QtdGFiLWNvbnRleHQgLnByb2plY3QtdGFiLWNvbnRleHQtbmFtZSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBtaW4td2lkdGg6IDA7XG59XG4ucHJvamVjdC10YWItY29udGV4dCAucHJvamVjdC10YWItY29udGV4dC1hZGRyZXNzIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC43O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4ucHJvamVjdC1zaWRlYmFyIHtcbiAgZ3JpZC1hcmVhOiBzaWRlYmFyO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDAuNzVyZW07XG4gIGFsaWduLXNlbGY6IHN0YXJ0O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGVhc2U7XG4gIHdpZHRoOiAyMjBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAucHJvamVjdC1zaWRlYmFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4ucHJvamVjdC1zaWRlYmFyLmlzLWNvbGxhcHNlZCB7XG4gIHdpZHRoOiA2NHB4O1xufVxuLnByb2plY3Qtc2lkZWJhci5pcy1jb2xsYXBzZWQgLnNpZGViYXItbmF2LWxhYmVsLFxuLnByb2plY3Qtc2lkZWJhci5pcy1jb2xsYXBzZWQgLnNpZGViYXItbmF2LWNvdW50IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5wcm9qZWN0LXNpZGViYXIuaXMtY29sbGFwc2VkIC5zaWRlYmFyLXRvZ2dsZS1idG4gLmJpIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cblxuLnNpZGViYXItdG9nZ2xlLWJ0biB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMC41cmVtO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7XG59XG4uc2lkZWJhci10b2dnbGUtYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWFjY2VudC1sYXZlbmRlcikgMTAlLCB0cmFuc3BhcmVudCk7XG59XG4uc2lkZWJhci10b2dnbGUtYnRuIC5iaSB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG59XG5cbi5zaWRlYmFyLW5hdiB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuMjVyZW07XG59XG5cbi5zaWRlYmFyLW5hdi1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uc2lkZWJhci1uYXYtbGluayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjYyNXJlbTtcbiAgcGFkZGluZzogMC41cmVtIDAuNjI1cmVtO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xuICBtaW4taGVpZ2h0OiA0NHB4O1xufVxuLnNpZGViYXItbmF2LWxpbms6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LWxhdmVuZGVyKSA4JSwgdHJhbnNwYXJlbnQpO1xufVxuLnNpZGViYXItbmF2LWxpbmsuYWN0aXZlLCAuc2lkZWJhci1uYXYtbGluay5tZW51LWJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LWxhdmVuZGVyKSAxMiUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uc2lkZWJhci1uYXYtbGluay5hY3RpdmU6OmJlZm9yZSwgLnNpZGViYXItbmF2LWxpbmsubWVudS1idXR0b24uYWN0aXZlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMC4zNzVyZW07XG4gIGJvdHRvbTogMC4zNzVyZW07XG4gIHdpZHRoOiAzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpO1xufVxuLnNpZGViYXItbmF2LWxpbmsgLnNpZGViYXItbmF2LWljb24ge1xuICBmb250LXNpemU6IDEuMXJlbTtcbiAgd2lkdGg6IDEuNXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5zaWRlYmFyLW5hdi1saW5rIC5zaWRlYmFyLW5hdi1sYWJlbCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBtaW4td2lkdGg6IDA7XG59XG4uc2lkZWJhci1uYXYtbGluayAuc2lkZWJhci1uYXYtY291bnQge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBwYWRkaW5nOiAwLjEyNXJlbSAwLjM3NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnByb2plY3Qtc2lkZWJhci1kcmF3ZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAxMDQwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAucHJvamVjdC1zaWRlYmFyLWRyYXdlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi5wcm9qZWN0LXNpZGViYXItZHJhd2VyLmlzLW9wZW4ge1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cbi5wcm9qZWN0LXNpZGViYXItZHJhd2VyLmlzLW9wZW4gLmRyYXdlci1iYWNrZHJvcCB7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnByb2plY3Qtc2lkZWJhci1kcmF3ZXIuaXMtb3BlbiAuZHJhd2VyLXBhbmVsIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xufVxuXG4uZHJhd2VyLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQ1KTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmRyYXdlci1wYW5lbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAyNjBweDtcbiAgbWF4LXdpZHRoOiA4MHZ3O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nOiAxcmVtO1xuICBnYXA6IDAuNXJlbTtcbn1cbi5kcmF3ZXItcGFuZWwgLmRyYXdlci1jbG9zZSB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDAuMjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmRyYXdlci1wYW5lbCAuZHJhd2VyLW5hdiB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjI1cmVtO1xufVxuXG4uZHJhd2VyLW5hdi1saW5rIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNzVyZW07XG4gIHBhZGRpbmc6IDAuNjI1cmVtIDAuNzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWluLWhlaWdodDogNDhweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xufVxuLmRyYXdlci1uYXYtbGluazpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDglLCB0cmFuc3BhcmVudCk7XG59XG4uZHJhd2VyLW5hdi1saW5rLmFjdGl2ZSwgLmRyYXdlci1uYXYtbGluay5tZW51LWJ1dHRvbi5hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LWxhdmVuZGVyKSAxMiUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4uZHJhd2VyLW5hdi1saW5rLmFjdGl2ZTo6YmVmb3JlLCAuZHJhd2VyLW5hdi1saW5rLm1lbnUtYnV0dG9uLmFjdGl2ZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDAuNXJlbTtcbiAgYm90dG9tOiAwLjVyZW07XG4gIHdpZHRoOiAzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDAgMnB4IDJweCAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpO1xufVxuLmRyYXdlci1uYXYtbGluayAuZHJhd2VyLW5hdi1pY29uIHtcbiAgZm9udC1zaXplOiAxLjE1cmVtO1xuICB3aWR0aDogMS41cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uZHJhd2VyLW5hdi1saW5rIC5kcmF3ZXItbmF2LWNvdW50IHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgcGFkZGluZzogMC4xNXJlbSAwLjRyZW07XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLnByb2plY3QtbWFpbiB7XG4gIGdyaWQtYXJlYTogbWFpbjtcbiAgbWluLXdpZHRoOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDFyZW07XG59XG5cbi5wcm9qZWN0LWhlcm8tY2FyZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpO1xufVxuXG4ucHJvamVjdC1oZXJvLWlubmVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAzMjBweCAxZnI7XG4gIGdhcDogMXJlbTtcbiAgcGFkZGluZzogMXJlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMTk5Ljk4cHgpIHtcbiAgLnByb2plY3QtaGVyby1pbm5lciB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyNjBweCAxZnI7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAucHJvamVjdC1oZXJvLWlubmVyIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBwYWRkaW5nOiAwLjc1cmVtO1xuICAgIGdhcDogMC43NXJlbTtcbiAgfVxufVxuXG4ucHJvamVjdC1oZXJvLWNvdmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgbWluLWhlaWdodDogMTgwcHg7XG4gIG1heC1oZWlnaHQ6IDIyMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5wcm9qZWN0LWhlcm8tY292ZXIgaW1nLCAucHJvamVjdC1oZXJvLWNvdmVyIC5wcm9qZWN0LWhlcm8tY292ZXItcGxhY2Vob2xkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ucHJvamVjdC1oZXJvLWNvdmVyIC5wcm9qZWN0LWhlcm8tY292ZXItcGxhY2Vob2xkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC4zNTtcbiAgZm9udC1zaXplOiAzcmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5wcm9qZWN0LWhlcm8tY292ZXIge1xuICAgIG1pbi1oZWlnaHQ6IDE2MHB4O1xuICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICB9XG59XG5cbi5wcm9qZWN0LWhlcm8tbWV0YSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC41cmVtO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5wcm9qZWN0LWhlcm8tdG9wLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMC43NXJlbTtcbn1cblxuLnByb2plY3QtaGVyby1sZWZ0IHtcbiAgbWluLXdpZHRoOiAwO1xuICBmbGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNzVyZW07XG59XG5cbi5wcm9qZWN0LWhlcm8tcmlnaHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGdhcDogMC41cmVtO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnByb2plY3QtaGVyby1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjI1cmVtO1xufVxuXG4ucHJvamVjdC1oZXJvLXNpZGUtaW5mbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG4ucHJvamVjdC1oZXJvLXNpZGUtaW5mbyAucHJvamVjdC1oZXJvLXdhdGNoZXJzIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLnByb2plY3QtaGVyby10aXRsZS1ncm91cCB7XG4gIG1pbi13aWR0aDogMDtcbiAgZmxleDogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjM3NXJlbTtcbn1cblxuLnByb2plY3QtaGVyby1uYW1lLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5wcm9qZWN0LWhlcm8tYmFjay1idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBvcGFjaXR5OiAwLjY1O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzIGVhc2UsIG9wYWNpdHkgMC4xNXMgZWFzZTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5wcm9qZWN0LWhlcm8tYmFjay1idG46aG92ZXIsIC5wcm9qZWN0LWhlcm8tYmFjay1idG46Zm9jdXMge1xuICBvcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50LWxhdmVuZGVyKSAxMiUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLnByb2plY3QtaGVyby1uYW1lIHtcbiAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMS4zNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgbWFyZ2luOiAwIDAgMC4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5wcm9qZWN0LWhlcm8tbmFtZSB7XG4gICAgZm9udC1zaXplOiAxLjE1cmVtO1xuICB9XG59XG5cbi5wcm9qZWN0LWhlcm8tYWRkcmVzcyB7XG4gIGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zNzVyZW07XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cbi5wcm9qZWN0LWhlcm8tYWRkcmVzcyBhIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5wcm9qZWN0LWhlcm8tYWRkcmVzcyBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5wcm9qZWN0LWhlcm8tYWN0aW9ucy1kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlOjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wcm9qZWN0LWhlcm8tdG9wLXJvdyAucHJvZ3Jlc3MtYnV0dG9uIHtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgbWluLWhlaWdodDogNDBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB6LWluZGV4OiBhdXRvO1xuICBpc29sYXRpb246IGF1dG87XG4gIGNvbnRhaW46IG5vbmU7XG59XG4ucHJvamVjdC1oZXJvLXRvcC1yb3cgLnByb2dyZXNzLWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpO1xufVxuLnByb2plY3QtaGVyby10b3Atcm93IC5wcm9ncmVzcy1idXR0b246OmJlZm9yZSB7XG4gIHotaW5kZXg6IC0xO1xufVxuXG4ucHJvamVjdC1oZXJvLXBsYW5wZXJtaXQge1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC44NTtcbn1cblxuLnByb2plY3QtaGVyby1zdGF0dXMtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnByb2plY3QtaGVyby13YXRjaGVycyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zNzVyZW07XG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XG59XG4ucHJvamVjdC1oZXJvLXdhdGNoZXJzIC53YXRjaGVyLWF2YXRhci1zdGFjayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4ucHJvamVjdC1oZXJvLXdhdGNoZXJzIC53YXRjaGVyLWF2YXRhci1zdGFjayAud2F0Y2hlci1hdmF0YXIge1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNhcmQtY29sb3VyKTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG1hcmdpbi1sZWZ0OiAtOHB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZTtcbn1cbi5wcm9qZWN0LWhlcm8td2F0Y2hlcnMgLndhdGNoZXItYXZhdGFyLXN0YWNrIC53YXRjaGVyLWF2YXRhcjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLnByb2plY3QtaGVyby13YXRjaGVycyAud2F0Y2hlci1hdmF0YXItc3RhY2sgLndhdGNoZXItYXZhdGFyOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICB6LWluZGV4OiAyO1xufVxuLnByb2plY3QtaGVyby13YXRjaGVycyAud2F0Y2hlci1hdmF0YXItc3RhY2sgLndhdGNoZXItbW9yZSB7XG4gIG1hcmdpbi1sZWZ0OiAtOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIHBhZGRpbmc6IDAgMC41cmVtO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNhcmQtY29sb3VyKTtcbn1cblxuLnByb2plY3QtaGVyby1sYWJlbHMge1xuICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xufVxuXG4ucHJvamVjdC1kZXNpZ24tcGFuZWwge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBwYWRkaW5nOiAxcmVtO1xuICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93KTtcbn1cblxuLmRlc2lnbi1zdGF0aWMtY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIG1pbi1oZWlnaHQ6IDI4MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5kZXNpZ24tc3RhdGljLWNhcmQgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDQyMHB4O1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmRlc2lnbi1zdGF0aWMtb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDAuNzVyZW07XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigycHgpO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZTtcbn1cbi5kZXNpZ24tc3RhdGljLW92ZXJsYXk6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNDUpO1xufVxuXG4uZGVzaWduLXN0YXRpYy1jYXB0aW9uIHtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSk7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG5cbi5zY2VuZS12aWV3ZXItY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNTAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLnNjZW5lLXZpZXdlci1jb250YWluZXIge1xuICAgIGhlaWdodDogMzYwcHg7XG4gIH1cbn1cblxuLnByb2plY3QtdGFiLWNvbnRlbnQgLnRhYi1wYW5lIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlO1xufVxuLnByb2plY3QtdGFiLWNvbnRlbnQgLnRhYi1wYW5lLmFjdGl2ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvcGFjaXR5OiAxO1xuICBhbmltYXRpb246IHByb2plY3RGYWRlSW4gMC4yNXMgZWFzZTtcbn1cblxuQGtleWZyYW1lcyBwcm9qZWN0RmFkZUluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cbi5wcm9qZWN0LWdlbmVyYWwtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gIGdhcDogMXJlbTtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAucHJvamVjdC1nZW5lcmFsLWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG59XG5cbi5wcm9qZWN0LWluZm8tY2FyZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLnByb2plY3QtaW5mby1jYXJkLnNwYW4tMiB7XG4gIGdyaWQtY29sdW1uOiBzcGFuIDI7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLnByb2plY3QtaW5mby1jYXJkLnNwYW4tMiB7XG4gICAgZ3JpZC1jb2x1bW46IHNwYW4gMTtcbiAgfVxufVxuLnByb2plY3QtaW5mby1jYXJkIC5jYXJkLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMC43NXJlbSAxcmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGdhcDogMC43NXJlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnByb2plY3QtaW5mby1jYXJkIC5jYXJkLWhlYWRlciAuY2FyZC10aXRsZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZFwiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDAuOTVyZW07XG4gIG1hcmdpbjogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG4ucHJvamVjdC1pbmZvLWNhcmQgLmNhcmQtaGVhZGVyIC5jYXJkLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbn1cbi5wcm9qZWN0LWluZm8tY2FyZCAuY2FyZC1ib2R5IHtcbiAgcGFkZGluZzogMXJlbTtcbiAgZmxleDogMTtcbn1cbi5wcm9qZWN0LWluZm8tY2FyZCAuaW5mby1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG59XG4ucHJvamVjdC1pbmZvLWNhcmQgLmluZm8tcm93Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLnByb2plY3QtaW5mby1jYXJkIC5pbmZvLXJvdyAuaW5mby1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBvcGFjaXR5OiAwLjU1O1xufVxuLnByb2plY3QtaW5mby1jYXJkIC5pbmZvLXJvdyAuaW5mby12YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cbi5wcm9qZWN0LWluZm8tY2FyZCAuaW5mby1yb3cgLmluZm8tdmFsdWUgLmJsYW5rYnV0dG9uIHtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi53YXRjaGVyLWNhcmQtYm9keSAud2F0Y2hlci1zdGFjayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG59XG4ud2F0Y2hlci1jYXJkLWJvZHkgLndhdGNoZXItc3RhY2sgLndhdGNoZXItYXZhdGFyIHtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jYXJkLWNvbG91cik7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlO1xufVxuLndhdGNoZXItY2FyZC1ib2R5IC53YXRjaGVyLXN0YWNrIC53YXRjaGVyLWF2YXRhcjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuLndhdGNoZXItY2FyZC1ib2R5IC53YXRjaGVyLXN0YWNrIC53YXRjaGVyLWF2YXRhcjpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgei1pbmRleDogMjtcbn1cbi53YXRjaGVyLWNhcmQtYm9keSAud2F0Y2hlci1zdGFjayAud2F0Y2hlci1tb3JlIHtcbiAgbWFyZ2luLWxlZnQ6IC0xMHB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIHBhZGRpbmc6IDAgMC41cmVtO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jYXJkLWNvbG91cik7XG59XG4ud2F0Y2hlci1jYXJkLWJvZHkgLndhdGNoZXItYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5tb2JpbGUtbmF2LXRyaWdnZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAxNnB4O1xuICBib3R0b206IGNhbGMoNjRweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwcHgpICsgMTZweCk7XG4gIHdpZHRoOiA1NnB4O1xuICBoZWlnaHQ6IDU2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50LWxhdmVuZGVyKTtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICBib3gtc2hhZG93OiAwIDRweCAxNHB4IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG4gIHotaW5kZXg6IDEwNDA7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlLCBmaWx0ZXIgMC4xNXMgZWFzZTtcbn1cbi5tb2JpbGUtbmF2LXRyaWdnZXI6aG92ZXIsIC5tb2JpbGUtbmF2LXRyaWdnZXI6Zm9jdXMge1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMS4wOCk7XG4gIGNvbG9yOiAjZmZmO1xufVxuLm1vYmlsZS1uYXYtdHJpZ2dlcjphY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xufVxuXG4ucHJvamVjdC1zaG93LWJhY2stYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbn1cbi5wcm9qZWN0LXNob3ctYmFjay1idG46aG92ZXIge1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMS4xKTtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0KTtcbn1cblxuLnF1b3RlLXNob3ctbGF5b3V0IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyMjBweCAxZnI7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwic2lkZWJhciBtYWluXCI7XG4gIGdhcDogMXJlbTtcbiAgbWF4LXdpZHRoOiAxNDAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAxcmVtIDFyZW0gMnJlbTtcbiAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucXVvdGUtc2hvdy1sYXlvdXQuc2lkZWJhci1pcy1jb2xsYXBzZWQge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDY0cHggMWZyO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDExOTkuOThweCkge1xuICAucXVvdGUtc2hvdy1sYXlvdXQge1xuICAgIGdhcDogMC43NXJlbTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC5xdW90ZS1zaG93LWxheW91dCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJtYWluXCI7XG4gICAgZ2FwOiAwLjc1cmVtO1xuICAgIHBhZGRpbmc6IDAuNzVyZW0gMC43NXJlbSAxLjVyZW07XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAucXVvdGUtc2hvdy1sYXlvdXQge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjVyZW0gMXJlbTtcbiAgfVxufVxuXG4ucXVvdGUtc2lkZWJhciB7XG4gIGdyaWQtYXJlYTogc2lkZWJhcjtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiA4MHB4O1xuICBhbGlnbi1zZWxmOiBzdGFydDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBlYXNlO1xuICB3aWR0aDogMjIwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLnF1b3RlLXNpZGViYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5xdW90ZS1zaWRlYmFyLmlzLWNvbGxhcHNlZCB7XG4gIHdpZHRoOiA2NHB4O1xufVxuLnF1b3RlLXNpZGViYXIuaXMtY29sbGFwc2VkIC5zaWRlYmFyLW5hdi1sYWJlbCxcbi5xdW90ZS1zaWRlYmFyLmlzLWNvbGxhcHNlZCAuc2lkZWJhci1uYXYtY291bnQge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnF1b3RlLXNpZGViYXIuaXMtY29sbGFwc2VkIC5zaWRlYmFyLXRvZ2dsZS1idG4gLmJpIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cblxuLnF1b3RlLXNpZGViYXItZHJhd2VyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogMTA0MDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLnF1b3RlLXNpZGViYXItZHJhd2VyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLnF1b3RlLXNpZGViYXItZHJhd2VyLmlzLW9wZW4ge1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cbi5xdW90ZS1zaWRlYmFyLWRyYXdlci5pcy1vcGVuIC5kcmF3ZXItYmFja2Ryb3Age1xuICBvcGFjaXR5OiAxO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cbi5xdW90ZS1zaWRlYmFyLWRyYXdlci5pcy1vcGVuIC5kcmF3ZXItcGFuZWwge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG59XG5cbi5xdW90ZS1tYWluIHtcbiAgZ3JpZC1hcmVhOiBtYWluO1xuICBtaW4td2lkdGg6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMXJlbTtcbn1cblxuLnF1b3RlLXRhYi1jb250ZXh0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjc1cmVtO1xuICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnF1b3RlLXRhYi1jb250ZXh0IC5xdW90ZS10YWItY29udGV4dC1iYWNrIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4yNXJlbTtcbiAgY29sb3I6IHZhcigtLWFjY2VudC1sYXZlbmRlcik7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5xdW90ZS10YWItY29udGV4dCAucXVvdGUtdGFiLWNvbnRleHQtYmFjazpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1hY2NlbnQtbGF2ZW5kZXIpIDEwJSwgdHJhbnNwYXJlbnQpO1xufVxuLnF1b3RlLXRhYi1jb250ZXh0IC5xdW90ZS10YWItY29udGV4dC1uYW1lIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5xdW90ZS10YWItY29udGV4dCAucXVvdGUtdGFiLWNvbnRleHQtYWN0aW9ucyB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLnF1b3RlLW1haW46aGFzKCNvdmVydmlldy50YWItcGFuZS5hY3RpdmUpIC5xdW90ZS10YWItY29udGV4dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5xdW90ZS1hY3Rpb25zIGEuYmFkZ2U6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5xdW90ZS1hY3Rpb25zLWZsb2F0aW5nIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDgwcHg7XG4gIHJpZ2h0OiAxNnB4O1xuICB6LWluZGV4OiAxMDA7XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLnF1b3RlLWFjdGlvbnMtZmxvYXRpbmcge1xuICAgIHRvcDogNzZweDtcbiAgICByaWdodDogMTJweDtcbiAgfVxufVxuXG4jcXVvdGVUYWJzQ29udGVudCAudGFiLXBhbmUuYWN0aXZlIHtcbiAgYW5pbWF0aW9uOiBxdW90ZUZhZGVJbiAwLjI1cyBlYXNlO1xufVxuXG5Aa2V5ZnJhbWVzIHF1b3RlRmFkZUluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLnF1b3RlLXBpY2tlci1kaWFsb2cge1xuICAtLXF1b3RlLXBpY2tlci1tYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gM3JlbSk7XG59XG5cbi5xdW90ZS1waWNrZXItbW9kYWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtYXgtaGVpZ2h0OiB2YXIoLS1xdW90ZS1waWNrZXItbWF4LWhlaWdodCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucXVvdGUtcGlja2VyLW1vZGFsIC5tb2RhbC1ib2R5IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4ucXVvdGUtcGlja2VyLW1vZGFsID4gZm9ybSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtaW4taGVpZ2h0OiAwO1xufVxuXG4ucXVvdGUtcGlja2VyLXRvb2xiYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNzVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuODVyZW07XG59XG4ucXVvdGUtcGlja2VyLXRvb2xiYXIgLnRleHQtbXV0ZWQge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnF1b3RlLXBpY2tlci10b29sYmFyLWNvbXBhY3Qge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjM1cmVtO1xufVxuXG4ucXVvdGUtcGlja2VyLXNlYXJjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbn1cbi5xdW90ZS1waWNrZXItc2VhcmNoIGkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDAuODVyZW07XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0LCAjNmM3NTdkKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDI7XG59XG4ucXVvdGUtcGlja2VyLXNlYXJjaCAuZm9ybS1jb250cm9sIHtcbiAgbWluLWhlaWdodDogMi4zNXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAyLjM1cmVtO1xufVxuXG4ucXVvdGUtcGlja2VyLWxpc3Qge1xuICBtYXgtaGVpZ2h0OiA1NHZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nLXJpZ2h0OiAwLjI1cmVtO1xufVxuXG4ucXVvdGUtcGlja2VyLWxpc3Qtc3BsaXQge1xuICBtYXgtaGVpZ2h0OiAzNnZoO1xufVxuXG5AbWVkaWEgKG1pbi1oZWlnaHQ6IDk2M3B4KSB7XG4gIC5xdW90ZS1waWNrZXItbGlzdCB7XG4gICAgbWF4LWhlaWdodDogNTIwcHg7XG4gIH1cbn1cbkBtZWRpYSAobWluLWhlaWdodDogMTA1NnB4KSB7XG4gIC5xdW90ZS1waWNrZXItbGlzdC1zcGxpdCB7XG4gICAgbWF4LWhlaWdodDogMzgwcHg7XG4gIH1cbn1cbi5xdW90ZS1waWNrZXItcm93IHtcbiAgbWFyZ2luLWJvdHRvbTogMC41NXJlbTtcbiAgcGFkZGluZzogMC44cmVtIDAuOXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7XG59XG4ucXVvdGUtcGlja2VyLXJvdzpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSA2JSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAyMCUsIHRyYW5zcGFyZW50KTtcbn1cbi5xdW90ZS1waWNrZXItcm93IC5pbnB1dC1ncm91cCB7XG4gIGZsZXg6IDAgMCAxMjBweDtcbn1cbi5xdW90ZS1waWNrZXItcm93IC5jdXN0b20tY2hlY2tib3gge1xuICBmbGV4OiAwIDAgMjBweDtcbn1cbi5xdW90ZS1waWNrZXItcm93IC5taW4td2lkdGgtMCB7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLnF1b3RlLXBpY2tlci1sYWJlbCB7XG4gIG1pbi13aWR0aDogMDtcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG59XG4ucXVvdGUtcGlja2VyLWxhYmVsIHN0cm9uZyB7XG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuXG4ucXVvdGUtcGlja2VyLWVtcHR5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBtaW4taGVpZ2h0OiA4cmVtO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCwgIzZjNzU3ZCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnF1b3RlLXBpY2tlci1mb290ZXIge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgcGFkZGluZy10b3A6IDAuODVyZW07XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkge1xuICAucXVvdGUtcGlja2VyLWRpYWxvZyB7XG4gICAgbWFyZ2luOiAwLjc1cmVtO1xuICB9XG4gIC5xdW90ZS1waWNrZXItdG9vbGJhciB7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDAuNHJlbTtcbiAgfVxuICAucXVvdGUtcGlja2VyLXJvdyB7XG4gICAgcGFkZGluZzogMC43NXJlbTtcbiAgfVxuICAucXVvdGUtcGlja2VyLXJvdyA+IC5kLWZsZXgge1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoICFpbXBvcnRhbnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuICAucXVvdGUtcGlja2VyLXJvdyAuaW5wdXQtZ3JvdXAge1xuICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuLnByb2R1Y3RzLXNob3ctbGF5b3V0IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyMjBweCAxZnI7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6IFwic2lkZWJhciBtYWluXCI7XG4gIGdhcDogMXJlbTtcbiAgbWF4LXdpZHRoOiAxNDAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAxcmVtIDFyZW0gMnJlbTtcbiAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucHJvZHVjdHMtc2hvdy1sYXlvdXQuc2lkZWJhci1pcy1jb2xsYXBzZWQge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDY0cHggMWZyO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDExOTkuOThweCkge1xuICAucHJvZHVjdHMtc2hvdy1sYXlvdXQge1xuICAgIGdhcDogMC43NXJlbTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC5wcm9kdWN0cy1zaG93LWxheW91dCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczogXCJtYWluXCI7XG4gICAgZ2FwOiAwLjc1cmVtO1xuICAgIHBhZGRpbmc6IDAuNzVyZW0gMC43NXJlbSAxLjVyZW07XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAucHJvZHVjdHMtc2hvdy1sYXlvdXQge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAwLjVyZW0gMXJlbTtcbiAgfVxufVxuXG4ucHJvZHVjdHMtc2lkZWJhciB7XG4gIGdyaWQtYXJlYTogc2lkZWJhcjtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiB2YXIoLS1wYWdlLXN0aWNreS1uYXZiYXItb2Zmc2V0LCAxMDBweCk7XG4gIGFsaWduLXNlbGY6IHN0YXJ0O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGVhc2U7XG4gIHdpZHRoOiAyMjBweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAucHJvZHVjdHMtc2lkZWJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLnByb2R1Y3RzLXNpZGViYXIuaXMtY29sbGFwc2VkIHtcbiAgd2lkdGg6IDY0cHg7XG59XG4ucHJvZHVjdHMtc2lkZWJhci5pcy1jb2xsYXBzZWQgLnNpZGViYXItbmF2LWxhYmVsLFxuLnByb2R1Y3RzLXNpZGViYXIuaXMtY29sbGFwc2VkIC5zaWRlYmFyLW5hdi1jb3VudCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4ucHJvZHVjdHMtc2lkZWJhci5pcy1jb2xsYXBzZWQgLnNpZGViYXItdG9nZ2xlLWJ0biAuYmkge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuXG4ucHJvZHVjdHMtc2lkZWJhci1kcmF3ZXIge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAxMDQwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAucHJvZHVjdHMtc2lkZWJhci1kcmF3ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4ucHJvZHVjdHMtc2lkZWJhci1kcmF3ZXIuaXMtb3BlbiB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnByb2R1Y3RzLXNpZGViYXItZHJhd2VyLmlzLW9wZW4gLmRyYXdlci1iYWNrZHJvcCB7XG4gIG9wYWNpdHk6IDE7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuLnByb2R1Y3RzLXNpZGViYXItZHJhd2VyLmlzLW9wZW4gLmRyYXdlci1wYW5lbCB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbn1cblxuLnByb2R1Y3RzLW1haW4ge1xuICBncmlkLWFyZWE6IG1haW47XG4gIG1pbi13aWR0aDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxcmVtO1xufVxuXG4ucHJvZHVjdHMtc2lkZWJhciBzdmcuc2lkZWJhci1uYXYtaWNvbixcbi5wcm9kdWN0cy1zaWRlYmFyIHN2Zy5kcmF3ZXItbmF2LWljb24sXG4ucHJvZHVjdHMtc2lkZWJhci1kcmF3ZXIgc3ZnLnNpZGViYXItbmF2LWljb24sXG4ucHJvZHVjdHMtc2lkZWJhci1kcmF3ZXIgc3ZnLmRyYXdlci1uYXYtaWNvbiB7XG4gIHdpZHRoOiAxLjVyZW07XG4gIGhlaWdodDogMS41cmVtO1xuICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ud29ya2Zsb3ctc3RhdHVzLWNhcmQge1xuICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLWJzLXByaW1hcnkpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICBwYWRkaW5nOiAxcmVtICFpbXBvcnRhbnQ7IC8qIFJlZHVjZWQgcGFkZGluZyBmb3IgY29tcGFjdG5lc3MgKi9cbn1cblxuLmJhZGdlcy1jb250YWluZXIgLmJhZGdlIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBwYWRkaW5nOiAwLjM3NXJlbSAwLjc1cmVtO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuLmJhZGdlcy1jb250YWluZXIgLmJhZGdlOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcbn1cblxuLmNvbXBhY3QtcHJvZ3Jlc3Mge1xuICBtaW4td2lkdGg6IDE1MHB4O1xufVxuLmNvbXBhY3QtcHJvZ3Jlc3MgLnByb2dyZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U5ZWNlZjtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuXG4vKiBUb2dnbGUgYnV0dG9uIHN0eWxpbmcgKi9cbi53b3JrZmxvdy10b2dnbGUge1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuLndvcmtmbG93LXRvZ2dsZTpob3ZlciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG59XG4ud29ya2Zsb3ctdG9nZ2xlIGkge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xufVxuXG4vKiBFeHBhbmRhYmxlIHNlY3Rpb24gc3R5bGluZyAqL1xuLndvcmtmbG93LWRldGFpbHMtZXhwYW5kYWJsZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4zcyBlYXNlLCBvcGFjaXR5IDAuM3MgZWFzZTtcbn1cblxuLndvcmtmbG93LWRldGFpbGVkLWluZm8ge1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBhZGRpbmc6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5kZXRhaWxlZC1wcm9ncmVzcyAucHJvZ3Jlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTllY2VmO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5cbi8qIFVuYXNzaWduZWQgY29tcGFjdCBzdGF0ZSAqL1xuLnVuYXNzaWduZWQtY29tcGFjdCB7XG4gIG1pbi1oZWlnaHQ6IDQwcHg7XG4gIHBhZGRpbmc6IDAuNXJlbSAwO1xufVxuLnVuYXNzaWduZWQtY29tcGFjdCBpIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xufVxuXG4vKiBRdWljayBtb3ZlIGJ1dHRvbnMgKi9cbi5xdWljay1tb3ZlLWJ0biB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG4ucXVpY2stbW92ZS1idG46aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi8qIEFuaW1hdGlvbiBpbXByb3ZlbWVudHMgKi9cbi53b3JrZmxvdy1zdGF0dXMtY2FyZCAqIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLyogUmVzcG9uc2l2ZSBhZGp1c3RtZW50cyAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC53b3JrZmxvdy1zdW1tYXJ5IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7XG4gICAgZ2FwOiAxcmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmJhZGdlcy1jb250YWluZXIge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuICAuY29tcGFjdC1wcm9ncmVzcyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiBhdXRvO1xuICB9XG4gIC53b3JrZmxvdy1hY3Rpb25zIHtcbiAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gIH1cbn1cbi5nb29nbGUtc3R5bGUtdXBsb2FkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm9yZGVyOiAycHggZGFzaGVkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgcGFkZGluZzogMzJweCAyNHB4O1xuICBtaW4taGVpZ2h0OiAxMjBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmdvb2dsZS1zdHlsZS11cGxvYWQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgNSUsIHRyYW5zcGFyZW50KSAwJSwgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXByaW1hcnktY29sb3VyKSAxMCUsIHRyYW5zcGFyZW50KSAxMDAlKTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UtaW4tb3V0O1xufVxuXG4uZ29vZ2xlLXN0eWxlLXVwbG9hZDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wcmltYXJ5LWNvbG91cikgMjAlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gIGJveC1zaGFkb3c6IHZhcigtLWgtb2Zmc2V0KSB2YXIoLS12LW9mZnNldCkgdmFyKC0tYmx1ci1yYWRpdXMpIHZhcigtLWJveHNoYWRvdyk7XG59XG5cbi5nb29nbGUtc3R5bGUtdXBsb2FkOmhvdmVyOjpiZWZvcmUge1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZ29vZ2xlLXN0eWxlLXVwbG9hZC5kcmFnLW92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcHJpbWFyeS1jb2xvdXIpIDMwJSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcbiAgYm94LXNoYWRvdzogMCA4cHggMjVweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMjUlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5nb29nbGUtc3R5bGUtdXBsb2FkLmRyYWctb3Zlcjo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmdvb2dsZS1zdHlsZS11cGxvYWQgLnVwbG9hZC1jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uZ29vZ2xlLXN0eWxlLXVwbG9hZCAudXBsb2FkLWljb24ge1xuICBmb250LXNpemU6IDQ4cHg7XG4gIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIpIDYwJSwgdHJhbnNwYXJlbnQpO1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbn1cblxuLmdvb2dsZS1zdHlsZS11cGxvYWQ6aG92ZXIgLnVwbG9hZC1pY29uIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG59XG5cbi5nb29nbGUtc3R5bGUtdXBsb2FkIC51cGxvYWQtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4uZ29vZ2xlLXN0eWxlLXVwbG9hZCAudXBsb2FkLXN1YnRleHQge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIpIDcwJSwgdHJhbnNwYXJlbnQpO1xuICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4uZ29vZ2xlLXN0eWxlLXVwbG9hZCAudXBsb2FkLWZvcm1hdHMge1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIpIDUwJSwgdHJhbnNwYXJlbnQpO1xuICBtYXJnaW4tdG9wOiAxMnB4O1xuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJhY2tncm91bmQtY29sb3VyKSA4MCUsIHRyYW5zcGFyZW50KTtcbiAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1ib3JkZXItcmFkaXVzKSAqIDAuNzUpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNHB4KTtcbn1cblxuI3VwbG9hZE1vZGFsLm1vZGFsIC5tb2RhbC1kaWFsb2cgLm1vZGFsLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbiN1cGxvYWRNb2RhbCAudXBsb2FkLW1vZGFsLWJvZHkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuI3VwbG9hZE1vZGFsIC51cGxvYWQtZmlsZS1pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJhY2tncm91bmQtY29sb3VyKSA1MCUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xufVxuXG4udXBsb2FkLW1vZGFsLWNvbnRlbnQge1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tYm9yZGVyLXJhZGl1cykgKiAxLjUpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJveC1zaGFkb3c6IDAgMjBweCA2MHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnVwbG9hZC1tb2RhbC1oZWFkZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDMycHggMzJweCAyNHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcHJpbWFyeS1jb2xvdXIpIDE1JSwgdmFyKC0tY2FyZC1jb2xvdXIpKSAwJSwgdmFyKC0tY2FyZC1jb2xvdXIpIDEwMCUpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJvcmRlci1jb2xvdXIpIDUwJSwgdHJhbnNwYXJlbnQpO1xufVxuXG4udXBsb2FkLW1vZGFsLWljb24ge1xuICB3aWR0aDogNjRweDtcbiAgaGVpZ2h0OiA2NHB4O1xuICBtYXJnaW46IDAgYXV0byAxNnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMjhweDtcbiAgYW5pbWF0aW9uOiB1cGxvYWQtcHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbi51cGxvYWQtbW9kYWwtdGl0bGUge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG1hcmdpbjogMCAwIDhweDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuLnVwbG9hZC1tb2RhbC1zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgNzAlLCB0cmFuc3BhcmVudCk7XG4gIG1hcmdpbjogMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuLnVwbG9hZC1tb2RhbC1ib2R5IHtcbiAgcGFkZGluZzogMjRweCAzMnB4IDMycHg7XG59XG5cbi51cGxvYWQtcHJvZ3Jlc3MtY29udGFpbmVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcbn1cblxuLnVwbG9hZC1wcm9ncmVzcy1iYXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDhweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJvcmRlci1jb2xvdXIpIDMwJSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG59XG5cbi51cGxvYWQtcHJvZ3Jlc3MtZmlsbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAwJTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAwJSwgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDgwJSwgI2ZmZmZmZikgMTAwJSk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBlYXNlO1xuICBhbmltYXRpb246IHVwbG9hZC1wcm9ncmVzcy1zaGltbWVyIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG4udXBsb2FkLXByb2dyZXNzLWdsb3cge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0xMDAlO1xuICB0b3A6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSA1MCUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICBhbmltYXRpb246IHVwbG9hZC1wcm9ncmVzcy1nbG93IDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG4udXBsb2FkLXByb2dyZXNzLXRleHQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi51cGxvYWQtcGVyY2VudGFnZSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4udXBsb2FkLXN0YXR1cyB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgNzAlLCB0cmFuc3BhcmVudCk7XG59XG5cbi51cGxvYWQtZmlsZS1saXN0IHtcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcbn1cblxuLnVwbG9hZC1maWxlLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgNTAlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1ib3JkZXItY29sb3VyKSAzMCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnVwbG9hZC1maWxlLWljb24ge1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDEwJSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLWJvcmRlci1yYWRpdXMpICogMC43NSk7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4udXBsb2FkLWZpbGUtaW5mbyB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLnVwbG9hZC1maWxlLW5hbWUge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG1hcmdpbi1ib3R0b206IDJweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi51cGxvYWQtZmlsZS1zaXplIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyKSA2MCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnVwbG9hZC1maWxlLXN0YXR1cyB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBtYXJnaW4tbGVmdDogMTJweDtcbn1cblxuLnVwbG9hZC1zcGlubmVyIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgYm9yZGVyOiAycHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDIwJSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXItdG9wOiAycHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYW5pbWF0aW9uOiB1cGxvYWQtc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbi51cGxvYWQtdGlwcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogOHB4O1xufVxuXG4udXBsb2FkLXRpcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgNjAlLCB0cmFuc3BhcmVudCk7XG59XG4udXBsb2FkLXRpcCBpIHtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG5Aa2V5ZnJhbWVzIHVwbG9hZC1wdWxzZSB7XG4gIDAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDQwJSwgdHJhbnNwYXJlbnQpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCA4cHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDAlLCB0cmFuc3BhcmVudCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgdXBsb2FkLXByb2dyZXNzLXNoaW1tZXIge1xuICAwJSwgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuODtcbiAgfVxufVxuQGtleWZyYW1lcyB1cGxvYWQtcHJvZ3Jlc3MtZ2xvdyB7XG4gIDAlIHtcbiAgICBsZWZ0OiAtMTAwJTtcbiAgfVxuICAxMDAlIHtcbiAgICBsZWZ0OiAxMDAlO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHVwbG9hZC1zcGluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbi51cGxvYWQtZmlsZS1pdGVtLnN1Y2Nlc3MgLnVwbG9hZC1maWxlLWljb24ge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgIzEwYjk4MSAxMCUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6ICMxMGI5ODE7XG59XG4udXBsb2FkLWZpbGUtaXRlbS5zdWNjZXNzIC51cGxvYWQtZmlsZS1zdGF0dXMge1xuICBjb2xvcjogIzEwYjk4MTtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLnVwbG9hZC1maWxlLWl0ZW0uc3VjY2VzcyAudXBsb2FkLWZpbGUtc3RhdHVzOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwi4pyTXCI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4udXBsb2FkLWZpbGUtaXRlbS5lcnJvciB7XG4gIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsICNlZjQ0NDQgMzAlLCB0cmFuc3BhcmVudCk7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCAjZWY0NDQ0IDUlLCB0cmFuc3BhcmVudCk7XG59XG4udXBsb2FkLWZpbGUtaXRlbS5lcnJvciAudXBsb2FkLWZpbGUtaWNvbiB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCAjZWY0NDQ0IDEwJSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogI2VmNDQ0NDtcbn1cbi51cGxvYWQtZmlsZS1pdGVtLmVycm9yIC51cGxvYWQtZmlsZS1zdGF0dXMge1xuICBjb2xvcjogI2VmNDQ0NDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLnVwbG9hZC1maWxlLWl0ZW0uZXJyb3IgLnVwbG9hZC1maWxlLXN0YXR1czo6YWZ0ZXIge1xuICBjb250ZW50OiBcIuKcl1wiO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm1vZGJhci1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDE1cHg7XG4gIGhlaWdodDogY2FsYygxMDB2aCAtIDMwcHgpO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzBweCk7XG4gIHdpZHRoOiA3MHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCB2YXIoLS1jYXJkLWNvbG91ciksIHZhcigtLWJhY2tncm91bmQtY29sb3VyKSk7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJveC1zaGFkb3c6IDAgMTJweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xNSksIDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjA4KSwgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm1vZGJhci1jb250YWluZXIubW9kYmFyLWV4cGFuZGVkIHtcbiAgd2lkdGg6IDI0MHB4O1xufVxuLm1vZGJhci1jb250YWluZXIubW9kYmFyLWV4cGFuZGVkIC5tb2RiYXItbGFiZWwge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4ubW9kYmFyLWNvbnRhaW5lci5tb2RiYXItY29sbGFwc2VkIC5tb2RiYXItbGFiZWwge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwcHgpO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5tb2RiYXItdG9nZ2xlIHtcbiAgcGFkZGluZzogMTJweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4wNSk7XG59XG5cbi5tb2RiYXItdG9nZ2xlLWJ0biB7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG4ubW9kYmFyLXRvZ2dsZS1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cik7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbn1cbi5tb2RiYXItdG9nZ2xlLWJ0bjphY3RpdmUge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xufVxuLm1vZGJhci10b2dnbGUtYnRuIGkge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5tb2RiYXItbmF2IHtcbiAgZmxleDogMTtcbiAgcGFkZGluZzogOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDRweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAvKiBDdXN0b20gc2Nyb2xsYmFyIGZvciB0aGUgbmF2aWdhdGlvbiBhcmVhICovXG59XG4ubW9kYmFyLW5hdjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogNHB4O1xufVxuLm1vZGJhci1uYXY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4ubW9kYmFyLW5hdjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuLm1vZGJhci1uYXY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5tb2RiYXItaXRlbSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cbi5tb2RiYXItaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktY29sb3VyKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7XG59XG4ubW9kYmFyLWl0ZW06YWN0aXZlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KSB0cmFuc2xhdGVYKDJweCk7XG59XG5cbi5tb2RiYXItbGluayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDEycHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4taGVpZ2h0OiA1MnB4O1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG59XG4ubW9kYmFyLWxpbms6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktY29sb3VyKTtcbn1cbi5tb2RiYXItbGluazpmb2N1cyB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbn1cblxuLm1vZGJhci1pY29uIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuLm1vZGJhci1pY29uIGkge1xuICBmb250LXNpemU6IDE4cHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG4ubW9kYmFyLWljb24gbG9yZC1pY29uIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cblxuLm1vZGJhci1sYWJlbCB7XG4gIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTBweCk7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLm1vZGJhci1iYWRnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA4cHg7XG4gIHJpZ2h0OiA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoLS1ib3JkZXItcmFkaXVzKSAqIDIpO1xuICBwYWRkaW5nOiAycHggNnB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1pbi13aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBib3JkZXItcmFkaXVzOiA2MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYW5pbWF0aW9uOiBwdWxzZSAycyBpbmZpbml0ZTtcbn1cbi5tb2RiYXItYmFkZ2UubW9kYmFyLWJhZGdlLXdhcm5pbmcge1xuICBiYWNrZ3JvdW5kOiAjZmJiYzA0O1xuICBjb2xvcjogIzFhMWExYTtcbn1cblxuLm1vZGJhci1kaXZpZGVyIHtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIHZhcigtLWJvcmRlci1jb2xvdXIpLCB0cmFuc3BhcmVudCk7XG4gIG1hcmdpbjogOHB4IDEycHg7XG59XG5cbi5tb2RiYXItYm90dG9tIHtcbiAgcGFkZGluZzogOHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNHB4O1xufVxuXG4ubW9kYmFyLXByb2ZpbGUtcGljIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbkBrZXlmcmFtZXMgcHVsc2Uge1xuICAwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgfVxufVxuLm1vZGJhci1pdGVtLmFjdGl2ZSAubW9kYmFyLWxpbmsge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSwgdmFyKC0tYnV0dG9uLWhvdmVyKSk7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpO1xuICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDUwO1xufVxuLm1vZGJhci1pdGVtLmFjdGl2ZSAubW9kYmFyLWxpbmsgLm1vZGJhci1pY29uIGkge1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyKTtcbn1cblxuLmxheW91dGNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG5cbi5sYXlvdXRzaWRlYmFyIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG4ubGF5b3V0c2lkZWJhci5tb2RiYXIge1xuICB3aWR0aDogOTBweDtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5sYXlvdXRzaWRlYmFyLm1vZGJhciAubW9kYmFyLWNvbnRhaW5lci5tb2RiYXItZXhwYW5kZWQgfiAqIHtcbiAgbWFyZ2luLWxlZnQ6IDE2MHB4O1xufVxuXG4ubGF5b3V0Y29udGVudCB7XG4gIGZsZXg6IDE7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLmxheW91dHNpZGViYXIubW9kYmFyLm1vZGJhci1sYXlvdXQtZXhwYW5kZWQge1xuICB3aWR0aDogMjYwcHg7XG59XG5cbi5sYXlvdXRjb250YWluZXIubW9kYmFyLWxheW91dC1leHBhbmRlZCAubGF5b3V0Y29udGVudCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubW9kYmFyLWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5sYXlvdXRzaWRlYmFyLm1vZGJhciB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgbWluLXdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yaWdodDogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5sYXlvdXRjb250ZW50IHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLm1vZGJhci1jb250YWluZXIge1xuICAgIHdpZHRoOiA2MHB4O1xuICB9XG4gIC5tb2RiYXItY29udGFpbmVyLm1vZGJhci1leHBhbmRlZCB7XG4gICAgd2lkdGg6IDIwMHB4O1xuICB9XG4gIC5tb2RiYXItbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgfVxufVxuQG1lZGlhIChwcmVmZXJzLWNvbnRyYXN0OiBoaWdoKSB7XG4gIC5tb2RiYXItY29udGFpbmVyIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjMDAwO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gIH1cbiAgLm1vZGJhci1saW5rIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgfVxuICAubW9kYmFyLWxpbms6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogIzAwMDtcbiAgfVxufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLm1vZGJhci1jb250YWluZXIsXG4gIC5tb2RiYXItbGluayxcbiAgLm1vZGJhci1sYWJlbCxcbiAgLm1vZGJhci10b2dnbGUtYnRuLFxuICAubW9kYmFyLWljb24gaSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG4uaW5ib3gtb2ZmY2FudmFzIHtcbiAgd2lkdGg6IG1pbigxMDB2dywgNjIwcHgpICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDogMTAwdnc7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG4uaW5ib3gtb2ZmY2FudmFzIC5pbmJveC1oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xufVxuLmluYm94LW9mZmNhbnZhcyAuaW5ib3gtcGFuZWxzIHtcbiAgZmxleDogMTtcbiAgbWluLWhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWFyZ2luLXRvcDogMC43NXJlbTtcbn1cbi5pbmJveC1vZmZjYW52YXMgLmluYm94LXBhbmVscyA+IGRpdiB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IDE7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uaW5ib3gtb2ZmY2FudmFzIC5pbmJveC1wYW5lbHMgPiBkaXYuc2hvdy5hY3RpdmUsIC5pbmJveC1vZmZjYW52YXMgLmluYm94LXBhbmVscyA+IGRpdltzdHlsZSo9XCJkaXNwbGF5OiBibG9ja1wiXSB7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbn1cbi5pbmJveC1vZmZjYW52YXMgLmluYm94LXBhbmUtYm9keSB7XG4gIGZsZXg6IDE7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmc6IDFyZW07XG59XG4uaW5ib3gtb2ZmY2FudmFzIC5pbmJveC1wYW5lLWZvb3RlciB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpO1xufVxuXG4udW5pZmllZC1pbmJveC1vZmZjYW52YXMge1xuICAtLW1zZy1ib3JkZXI6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91ciwgIzIwMjQyYSkgMTQlLCB0cmFuc3BhcmVudCk7XG4gIC0tbXNnLW11dGVkOiB2YXIoLS1tdXRlZC10ZXh0LCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIsICMyMDI0MmEpIDY4JSwgdHJhbnNwYXJlbnQpKTtcbiAgd2lkdGg6IG1pbigxMDB2dywgNjIwcHgpICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDogMTAwdnc7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLnVuaWZpZWQtaW5ib3gtb2ZmY2FudmFzIGkge1xuICAtLWZhLXByaW1hcnktY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgLS1mYS1zZWNvbmRhcnktY29sb3I6IGN1cnJlbnRDb2xvcjtcbiAgLS1mYS1wcmltYXJ5LW9wYWNpdHk6IDE7XG4gIC0tZmEtc2Vjb25kYXJ5LW9wYWNpdHk6IC40O1xufVxuXG4udW5pZmllZC1pbmJveC1vZmZjYW52YXMgLm1kdWktaWNvbiB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi51bmlmaWVkLWluYm94LW9mZmNhbnZhcyAuaW5ib3gtaGVhZGVyIHtcbiAgcGFkZGluZzogMC41NXJlbSAwLjc1cmVtIDA7XG59XG5cbi51bmlmaWVkLWluYm94LW9mZmNhbnZhcyAuaW5ib3gtdGl0bGUtcm93IHtcbiAgbWluLWhlaWdodDogMzRweDtcbiAgbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xufVxuXG4udW5pZmllZC1pbmJveC1vZmZjYW52YXMgLm9mZmNhbnZhcy10aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuLnVuaWZpZWQtaW5ib3gtb2ZmY2FudmFzIC5pbmJveC1pZGVudGl0eSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi51bmlmaWVkLWluYm94LW9mZmNhbnZhcyAuaW5ib3gtaWRlbnRpdHktaWNvbiB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxMiUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXNpemU6IDAuNzVyZW07XG59XG5cbi51bmlmaWVkLWluYm94LW9mZmNhbnZhcyAuaW5ib3gtaWRlbnRpdHkgLm9mZmNhbnZhcy10aXRsZSB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG59XG5cbi51bmlmaWVkLWluYm94LW9mZmNhbnZhcyAuaW5ib3gtaWRlbnRpdHkgZGl2ID4gc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAwLjEycmVtO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGZvbnQtc2l6ZTogMC41NnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuLnVuaWZpZWQtaW5ib3gtb2ZmY2FudmFzIC5pbmJveC10YWJzIHtcbiAgbWFyZ2luOiAwO1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG59XG5cbi51bmlmaWVkLWluYm94LW9mZmNhbnZhcyAuaW5ib3gtdGFiczo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udW5pZmllZC1pbmJveC1vZmZjYW52YXMgLmluYm94LXRhYnMgLm5hdi1pdGVtIHtcbiAgZmxleDogMCAwIGF1dG87XG59XG5cbi51bmlmaWVkLWluYm94LW9mZmNhbnZhcyAuaW5ib3gtdGFicyAubmF2LWxpbmsge1xuICB3aWR0aDogYXV0bztcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG4udW5pZmllZC1pbmJveC1vZmZjYW52YXMgLmluYm94LXRhYi1jb250ZW50IHtcbiAgZmxleDogMSAxIDA7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnVuaWZpZWQtaW5ib3gtb2ZmY2FudmFzIC50YWItcGFuZSB7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLnVuaWZpZWQtaW5ib3gtb2ZmY2FudmFzIC5tZXNzYWdpbmctaW5ib3gtcGFuZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tZXNzYWdpbmctaW5ib3gtcGFuZSB0dXJiby1mcmFtZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDA7XG59XG5cbi5tZXNzYWdpbmctaHViLWNvbnRyb2xsZXIge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDA7XG59XG5cbmJvZHk6aGFzKC51bmlmaWVkLWluYm94LW9mZmNhbnZhcy5zaG93KSAuYXNzaXN0YW50LXdpZGdldCB7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5tZXNzYWdpbmctaHViLWxvYWRpbmcge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbn1cblxuLm1lc3NhZ2luZy1odWItc2hlbGwge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDE5MHB4IG1pbm1heCgwLCAxZnIpO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDA7XG59XG5cbi5tZXNzYWdpbmctaHViLXJhaWwge1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4ubWVzc2FnaW5nLWh1Yi1yYWlsLWhlYWRlciB7XG4gIG1pbi1oZWlnaHQ6IDU1cHg7XG4gIHBhZGRpbmc6IDAuNjVyZW0gMC42cmVtIDAuNHJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4ubWVzc2FnaW5nLWh1Yi1yYWlsLWhlYWRlciBoMiB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAwLjg2cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbn1cblxuLm1lc3NhZ2luZy1odWItcmFpbC1oZWFkZXIgc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiAwLjFyZW07XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNnJlbTtcbn1cblxuLm1lc3NhZ2luZy1odWItaWNvbiB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5tZXNzYWdpbmctaHViLWljb24uaXMtYWN0aXZlLFxuLm1lc3NhZ2luZy1odWItaWNvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSA5JSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5tZXNzYWdpbmctbmV3LW1lbnUge1xuICB3aWR0aDogMjU1cHg7XG59XG5cbi5tZXNzYWdpbmctaHViLXNlYXJjaCB7XG4gIG1hcmdpbjogMCAwLjVyZW0gMC41cmVtO1xuICBwYWRkaW5nOiAwLjRyZW0gMC40NXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjM1cmVtO1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbn1cblxuLm1lc3NhZ2luZy1odWItc2VhcmNoIGlucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMDtcbiAgYm9yZGVyOiAwO1xuICBvdXRsaW5lOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjY3cmVtO1xufVxuXG4ubWVzc2FnaW5nLWh1Yi1maWx0ZXJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjE1cmVtO1xuICBwYWRkaW5nOiAwIDFyZW0gMC40NXJlbSAwLjVyZW07XG4gIHNjcm9sbC1wYWRkaW5nLWlubGluZTogMC41cmVtIDFyZW07XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIHNjcm9sbGJhci13aWR0aDogbm9uZTtcbn1cblxuLm1lc3NhZ2luZy1odWItZmlsdGVyczo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWVzc2FnaW5nLWh1Yi1maWx0ZXJzIGJ1dHRvbiB7XG4gIHBhZGRpbmc6IDAuMjJyZW0gMC4zNXJlbTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjU1cmVtO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ubWVzc2FnaW5nLWh1Yi1maWx0ZXJzIGJ1dHRvbi5pcy1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMTAlLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLm1lc3NhZ2luZy1kaXJlY3Rvcnktc2hvcnRjdXQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIwcHggbWlubWF4KDAsIDFmcikgMTJweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjM1cmVtO1xuICBtYXJnaW46IDAgMC40cmVtIDAuNHJlbTtcbiAgcGFkZGluZzogMC4zOHJlbSAwLjRyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXNpemU6IDAuNjJyZW07XG59XG5cbi5tZXNzYWdpbmctZGlyZWN0b3J5LXNob3J0Y3V0OmhvdmVyLFxuLm1lc3NhZ2luZy1kaXJlY3Rvcnktc2hvcnRjdXQuaXMtYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDglLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4ubWVzc2FnaW5nLWRpcmVjdG9yeS1zaG9ydGN1dCA+IGk6bGFzdC1jaGlsZCB7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNTVyZW07XG59XG5cbi5tZXNzYWdpbmctZGlyZWN0b3J5LXNob3J0Y3V0ID4gaTpmaXJzdC1jaGlsZCxcbi5tZXNzYWdpbmctaHViLXNlYXJjaCA+IGksXG4ubWVzc2FnaW5nLWRpcmVjdG9yeS1zZWFyY2ggPiBpIHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xufVxuXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1saXN0IHtcbiAgZmxleDogMSAxIDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIHBhZGRpbmc6IDAgMC4zNXJlbSAwLjVyZW07XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLWl0ZW0ge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDMwcHggbWlubWF4KDAsIDFmcikgYXV0bztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjQ1cmVtO1xuICBwYWRkaW5nOiAwLjQycmVtIDAuMzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLWl0ZW06aG92ZXIsXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1pdGVtLmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSA5JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1hdmF0YXIge1xuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxMiUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC43MnJlbTtcbn1cblxuLm1lc3NhZ2luZy1jb252ZXJzYXRpb24tYXZhdGFyLmlzLWRpcmVjdCB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuLm1lc3NhZ2luZy1jb252ZXJzYXRpb24tY29weSB7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLm1lc3NhZ2luZy1jb252ZXJzYXRpb24tY29weSBzdHJvbmcsXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1jb3B5IHNtYWxsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1jb3B5IHN0cm9uZyB7XG4gIGZvbnQtc2l6ZTogMC42OHJlbTtcbiAgZm9udC13ZWlnaHQ6IDY1MDtcbn1cblxuLm1lc3NhZ2luZy1jb252ZXJzYXRpb24tY29weSBzbWFsbCB7XG4gIG1hcmdpbi10b3A6IDAuMDhyZW07XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNTdyZW07XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLWl0ZW0uaGFzLXVucmVhZCBzdHJvbmcge1xuICBmb250LXdlaWdodDogODAwO1xufVxuXG4ubWVzc2FnaW5nLXVucmVhZC1iYWRnZSB7XG4gIG1pbi13aWR0aDogMTdweDtcbiAgaGVpZ2h0OiAxN3B4O1xuICBwYWRkaW5nOiAwIDRweDtcbiAgYm9yZGVyLXJhZGl1czogOXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS10ZXh0KTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC41M3JlbTtcbn1cblxuLm1lc3NhZ2luZy1odWItdGhyZWFkIHtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG59XG5cbi5tZXNzYWdpbmctdGhyZWFkLWhlYWRlciB7XG4gIG1pbi1oZWlnaHQ6IDU1cHg7XG4gIHBhZGRpbmc6IDAuNTVyZW0gMC43cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLm1lc3NhZ2luZy10aHJlYWQtaGVhZGVyIGgzIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG59XG5cbi5tZXNzYWdpbmctdGhyZWFkLWhlYWRlciBwIHtcbiAgbWFyZ2luOiAwLjFyZW0gMCAwO1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjU5cmVtO1xufVxuXG4ubWVzc2FnaW5nLXBpbm5lZC1wYW5lbCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xufVxuXG4ubWVzc2FnaW5nLXBpbm5lZC1wYW5lbCBzdW1tYXJ5IHtcbiAgcGFkZGluZzogMC4zOHJlbSAwLjY1cmVtO1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjZyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLm1lc3NhZ2luZy1waW5uZWQtcGFuZWwgc3VtbWFyeSBpIHtcbiAgbWFyZ2luLXJpZ2h0OiAwLjNyZW07XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLm1lc3NhZ2luZy1waW5uZWQtcGFuZWwgPiBkaXYge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDAuMnJlbTtcbiAgcGFkZGluZzogMCAwLjVyZW0gMC40NXJlbTtcbn1cblxuLm1lc3NhZ2luZy1waW5uZWQtcGFuZWwgPiBkaXYgYnV0dG9uIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbm1heCgwLCAxZnIpO1xuICBnYXA6IDAuNHJlbTtcbiAgcGFkZGluZzogMC4zcmVtIDAuNHJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtc2l6ZTogMC41OHJlbTtcbn1cblxuLm1lc3NhZ2luZy1waW5uZWQtcGFuZWwgPiBkaXYgYnV0dG9uIHNwYW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG59XG5cbi5tZXNzYWdpbmctdGhyZWFkLW1lc3NhZ2VzIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIHBhZGRpbmc6IDAuNzVyZW07XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDAuNHJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC42NXJlbTtcbn1cblxuLm1lc3NhZ2luZy1tZXNzYWdlLmlzLW93biB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbn1cblxuLm1lc3NhZ2luZy1tZXNzYWdlLWF2YXRhciB7XG4gIHdpZHRoOiAyNXB4O1xuICBoZWlnaHQ6IDI1cHg7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLW5hdi10ZXh0KTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UtYXZhdGFyIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UtbWFpbiB7XG4gIG1heC13aWR0aDogNzglO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZS1tZXRhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjRyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuMTVyZW07XG4gIGZvbnQtc2l6ZTogMC41NnJlbTtcbn1cblxuLm1lc3NhZ2luZy1tZXNzYWdlLW1ldGEgdGltZSB7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UuaXMtb3duIC5tZXNzYWdpbmctbWVzc2FnZS1tZXRhIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuLm1lc3NhZ2luZy1tZXNzYWdlLWJ1YmJsZSB7XG4gIHBhZGRpbmc6IDAuNDhyZW0gMC41OHJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDI7XG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UuaXMtb3duIC5tZXNzYWdpbmctbWVzc2FnZS1idWJibGUge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgOCUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG4gIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDI4JSwgdmFyKC0tbXNnLWJvcmRlcikpO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UtYnViYmxlIHA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5tZXNzYWdpbmctcmVwbHktcmVmZXJlbmNlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDAuNHJlbTtcbiAgcGFkZGluZzogMC4zcmVtIDAuNHJlbTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgNiUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5tZXNzYWdpbmctcmVwbHktcmVmZXJlbmNlIHN0cm9uZyxcbi5tZXNzYWdpbmctcmVwbHktcmVmZXJlbmNlIHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwLjU3cmVtO1xufVxuXG4ubWVzc2FnaW5nLXJlcGx5LXJlZmVyZW5jZSBzcGFuIHtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UtYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC4wOHJlbTtcbiAgbWFyZ2luLXRvcDogMC4xNXJlbTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2U6aG92ZXIgLm1lc3NhZ2luZy1tZXNzYWdlLWFjdGlvbnMge1xuICBvcGFjaXR5OiAxO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UuaXMtb3duIC5tZXNzYWdpbmctbWVzc2FnZS1hY3Rpb25zIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuLm1lc3NhZ2luZy1tZXNzYWdlLWFjdGlvbnMgYnV0dG9uIHtcbiAgd2lkdGg6IDIzcHg7XG4gIGhlaWdodDogMjNweDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjZyZW07XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZS1hY3Rpb25zIGJ1dHRvbjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDglLCB0cmFuc3BhcmVudCk7XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZS5pcy1oaWdobGlnaHRlZCAubWVzc2FnaW5nLW1lc3NhZ2UtYnViYmxlIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UtZmlsZXMge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDAuMjVyZW07XG4gIG1hcmdpbi10b3A6IDAuNHJlbTtcbiAgcGFkZGluZy10b3A6IDAuNHJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UtZmlsZXMgYSB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjYycmVtO1xufVxuXG4ubWVzc2FnaW5nLXRocmVhZC1lbXB0eSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDAuMjVyZW07XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC42OHJlbTtcbn1cblxuLm1lc3NhZ2luZy10aHJlYWQtZW1wdHkgaSB7XG4gIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgZm9udC1zaXplOiAxLjVyZW07XG59XG5cbi5tZXNzYWdpbmctdGhyZWFkLWVtcHR5IHN0cm9uZyB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5tZXNzYWdpbmctZGlyZWN0b3J5IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIHBhZGRpbmc6IDAuN3JlbTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLm1lc3NhZ2luZy1kaXJlY3Rvcnktc2VhcmNoIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjRyZW07XG4gIHBhZGRpbmc6IDAuNDVyZW0gMC41NXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG59XG5cbi5tZXNzYWdpbmctZGlyZWN0b3J5LXNlYXJjaCBpbnB1dCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIGJvcmRlcjogMDtcbiAgb3V0bGluZTogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xufVxuXG4ubWVzc2FnaW5nLWRpcmVjdG9yeS1saXN0IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAwLjNyZW07XG4gIG1hcmdpbi10b3A6IDAuNjVyZW07XG59XG5cbi5tZXNzYWdpbmctZGlyZWN0b3J5LXBlcnNvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDM0cHggbWlubWF4KDAsIDFmcikgYXV0byAxOHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNTVyZW07XG4gIHBhZGRpbmc6IDAuNDhyZW0gMC41cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLm1lc3NhZ2luZy1kaXJlY3RvcnktcGVyc29uOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xufVxuXG4ubWVzc2FnaW5nLWRpcmVjdG9yeS1hdmF0YXIge1xuICB3aWR0aDogMzRweDtcbiAgaGVpZ2h0OiAzNHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxNCUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLm1lc3NhZ2luZy1kaXJlY3RvcnktYXZhdGFyIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4ubWVzc2FnaW5nLWRpcmVjdG9yeS1jb3B5IHtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4ubWVzc2FnaW5nLWRpcmVjdG9yeS1jb3B5IHN0cm9uZyxcbi5tZXNzYWdpbmctZGlyZWN0b3J5LWNvcHkgc21hbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5tZXNzYWdpbmctZGlyZWN0b3J5LWNvcHkgc3Ryb25nIHtcbiAgZm9udC1zaXplOiAwLjdyZW07XG59XG5cbi5tZXNzYWdpbmctZGlyZWN0b3J5LWNvcHkgc21hbGwge1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjU4cmVtO1xufVxuXG4ubWVzc2FnaW5nLWRpcmVjdG9yeS1hY3Rpdml0eSB7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNTVyZW07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5tZXNzYWdpbmctZGlyZWN0b3J5LWFjdGl2aXR5LmlzLW9ubGluZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogNnB4O1xuICBoZWlnaHQ6IDZweDtcbiAgbWFyZ2luLXJpZ2h0OiAwLjI1cmVtO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdGlmaWNhdGlvbi1zdWNjZXNzKTtcbn1cblxuLm1lc3NhZ2luZy1kaXJlY3RvcnktcGVyc29uID4gaSB7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuN3JlbTtcbn1cblxuLm1lc3NhZ2luZy10eXBpbmcge1xuICBwYWRkaW5nOiAwLjI1cmVtO1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjZyZW07XG59XG5cbi5tZXNzYWdpbmctdGhyZWFkLWNvbXBvc2VyIHtcbiAgcGFkZGluZzogMC41NXJlbSAwLjY1cmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG59XG5cbi5tZXNzYWdpbmctcmVwbHktY29udGV4dCB7XG4gIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgcGFkZGluZzogMC4zcmVtIDAuNHJlbTtcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDclLCB0cmFuc3BhcmVudCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC41OHJlbTtcbn1cblxuLm1lc3NhZ2luZy1yZXBseS1jb250ZXh0IGJ1dHRvbiB7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4ubWVzc2FnaW5nLXRocmVhZC1jb21wb3NlciBmb3JtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBnYXA6IDAuM3JlbTtcbiAgcGFkZGluZzogMC4yOHJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xufVxuXG4ubWVzc2FnaW5nLXRocmVhZC1jb21wb3NlciB0ZXh0YXJlYSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIG1pbi1oZWlnaHQ6IDMwcHg7XG4gIG1heC1oZWlnaHQ6IDExMHB4O1xuICBwYWRkaW5nOiAwLjRyZW07XG4gIGJvcmRlcjogMDtcbiAgb3V0bGluZTogMDtcbiAgcmVzaXplOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjdyZW07XG59XG5cbi5tZXNzYWdpbmctYXR0YWNoLWJ1dHRvbixcbi5tZXNzYWdpbmctc2VuZC1idXR0b24ge1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBmbGV4OiAwIDAgYXV0bztcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5tZXNzYWdpbmctYXR0YWNoLWJ1dHRvbiB7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLm1lc3NhZ2luZy1zZW5kLWJ1dHRvbiB7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLm1lc3NhZ2luZy1tZW50aW9uLW1lbnUge1xuICBtYXgtaGVpZ2h0OiAyNDBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLm1lc3NhZ2luZy1tZW50aW9uLW1lbnUgLmRyb3Bkb3duLWl0ZW0ge1xuICBmb250LXNpemU6IDAuNjhyZW07XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkge1xuICAubWVzc2FnaW5nLWh1Yi1zaGVsbCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxMTJweCBtaW5tYXgoMCwgMWZyKTtcbiAgfVxuICAubWVzc2FnaW5nLWh1Yi1yYWlsLWhlYWRlciBzcGFuLFxuICAubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1jb3B5IHNtYWxsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5tZXNzYWdpbmctY29udmVyc2F0aW9uLWl0ZW0ge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjZweCBtaW5tYXgoMCwgMWZyKTtcbiAgfVxuICAubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1hdmF0YXIge1xuICAgIHdpZHRoOiAyNnB4O1xuICAgIGhlaWdodDogMjZweDtcbiAgfVxuICAubWVzc2FnaW5nLXVucmVhZC1iYWRnZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAubWVzc2FnaW5nLW1lc3NhZ2UtbWFpbiB7XG4gICAgbWF4LXdpZHRoOiA4OCU7XG4gIH1cbn1cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogU2xhY2stbGV2ZWwgbWVzc2FnaW5nIG92ZXJoYXVsOiBmdWxsIHBhZ2UsIHByZXNlbmNlLCByZWFjdGlvbnMsICAgICAqL1xuLyogdGhyZWFkcywgc2F2ZWQvcGlucy9maWxlcyBwYW5lbCwgUGVyaWNsZXMsIHNlYXJjaCwgc2NoZWR1bGluZy4gICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4ubWVzc2FnaW5nLWh1Yi1jb250cm9sbGVyLmlzLWZ1bGwtcGFnZSB7XG4gIGhlaWdodDogY2FsYygxMDBkdmggLSA5OHB4KTtcbiAgbWluLWhlaWdodDogNDgwcHg7XG4gIG1hcmdpbjogMC44NXJlbSAxcmVtIDFyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91ciwgIzIwMjQyYSkgMTQlLCB0cmFuc3BhcmVudCkpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbn1cblxuLm1lc3NhZ2luZy1odWItY29udHJvbGxlciB7XG4gIC0tbXNnLWJvcmRlcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyLCAjMjAyNDJhKSAxNCUsIHRyYW5zcGFyZW50KTtcbiAgLS1tc2ctbXV0ZWQ6IHZhcigtLW11dGVkLXRleHQsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91ciwgIzIwMjQyYSkgNjglLCB0cmFuc3BhcmVudCkpO1xufVxuXG4uaXMtZnVsbC1wYWdlIC5tZXNzYWdpbmctaHViLXNoZWxsIHtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyODBweCBtaW5tYXgoMCwgMWZyKTtcbn1cblxuLmlzLWZ1bGwtcGFnZSAubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1jb3B5IHN0cm9uZyB7XG4gIGZvbnQtc2l6ZTogMC43NHJlbTtcbn1cblxuLm1lc3NhZ2luZy10aHJlYWQtcm9vdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1pbi13aWR0aDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgZmxleDogMSAxIGF1dG87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm1lc3NhZ2luZy10aHJlYWQtcm9vdCAubWVzc2FnaW5nLWh1Yi10aHJlYWQge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubWVzc2FnaW5nLWh1Yi1zaGVsbCA+IC5tZXNzYWdpbmctdGhyZWFkLXJvb3Qge1xuICBtaW4taGVpZ2h0OiAwO1xufVxuXG4ubWVzc2FnaW5nLWh1Yi1yYWlsLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuM3JlbTtcbn1cblxuLyogU2V0dGluZ3MgZHJvcGRvd246IGNvbXBhY3QsIHRoZW1lZCwgYW5kIGltbXVuZSB0byB0aGUgZ2xvYmFsIGJ1dHRvbi0xM1xuICAgc2l6aW5nIChtZGIgbG9hZHMgYWZ0ZXIgYXBwbGljYXRpb24uY3NzLCBoZW5jZSB0aGUgIWltcG9ydGFudHMpLiAqL1xuLm1lc3NhZ2luZy1zZXR0aW5ncy1tZW51IHtcbiAgd2lkdGg6IDI2NXB4O1xuICBwYWRkaW5nOiAwLjU1cmVtIDAuNzVyZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3gtc2hhZG93OiAwIDEycHggMzBweCByZ2JhKDAsIDAsIDAsIDAuMjIpO1xuICBmb250LXNpemU6IDAuNjJyZW07XG59XG5cbi5tZXNzYWdpbmctc2V0dGluZ3Mtc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMC40cmVtO1xuICBwYWRkaW5nOiAwLjQ1cmVtIDA7XG4gIGZvbnQtc2l6ZTogMC42MnJlbTtcbiAganVzdGlmeS1pdGVtczogc3RhcnQ7XG59XG5cbi5tZXNzYWdpbmctc2V0dGluZ3Mtc2VjdGlvbiArIC5tZXNzYWdpbmctc2V0dGluZ3Mtc2VjdGlvbiB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbn1cblxuLm1lc3NhZ2luZy1zZXR0aW5ncy1zZWN0aW9uID4gc3Ryb25nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjNyZW07XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbn1cblxuLm1lc3NhZ2luZy1zZXR0aW5ncy1zZWN0aW9uID4gc3Ryb25nIGkge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xufVxuXG4ubWVzc2FnaW5nLXNldHRpbmdzLXNlY3Rpb24gc21hbGwge1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XG59XG5cbi5tZXNzYWdpbmctc2V0dGluZ3MtbWVudSAuYnV0dG9uLTEzLFxuLm1lc3NhZ2luZy1zZXR0aW5ncy1tZW51IC5idXR0b24tMTMtb3V0bGluZSB7XG4gIHBhZGRpbmc6IDAuMjhyZW0gMC42cmVtICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMC41OHJlbSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMS4yICFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNXB4ICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zcmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICBsZXR0ZXItc3BhY2luZzogMCAhaW1wb3J0YW50O1xufVxuXG4vKiBkaXNwbGF5ICFpbXBvcnRhbnQgYWJvdmUgd291bGQgZGVmZWF0IHRoZSBoaWRkZW4gYXR0cmlidXRlICh3ZWIgcHVzaFxuICAgZW5hYmxlL2Rpc2FibGUgdG9nZ2xlKSwgc28gcmVzdG9yZSBpdCBleHBsaWNpdGx5LiAqL1xuLm1lc3NhZ2luZy1zZXR0aW5ncy1tZW51IC5idXR0b24tMTNbaGlkZGVuXSxcbi5tZXNzYWdpbmctc2V0dGluZ3MtbWVudSAuYnV0dG9uLTEzLW91dGxpbmVbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLm1lc3NhZ2luZy1zZXR0aW5ncy1tZW51IC5idXR0b24tMTMgaSxcbi5tZXNzYWdpbmctc2V0dGluZ3MtbWVudSAuYnV0dG9uLTEzLW91dGxpbmUgaSB7XG4gIGZvbnQtc2l6ZTogMC41OHJlbTtcbn1cblxuLm1lc3NhZ2luZy1zZXR0aW5ncyA+IC5tZXNzYWdpbmctaHViLWljb246Zm9jdXMsXG4ubWVzc2FnaW5nLXNldHRpbmdzID4gLm1lc3NhZ2luZy1odWItaWNvbi5zaG93IHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDklLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLm1lc3NhZ2luZy1zdGF0dXMtaW5kaWNhdG9yIHtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xuICBtYXgtd2lkdGg6IDE1MHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1lc3NhZ2luZy1kbmQtaW5kaWNhdG9yIHtcbiAgY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi13YXJuaW5nLCAjZDk3NzA2KTtcbiAgZm9udC1zaXplOiAwLjU4cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4ubWVzc2FnaW5nLXN0YXR1cy1wYW5lbCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMC4zNXJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuNHJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xufVxuXG4ubWVzc2FnaW5nLXN0YXR1cy1xdWljayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC4ycmVtO1xufVxuXG4ubWVzc2FnaW5nLXN0YXR1cy1xdWljayBidXR0b24ge1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLm1lc3NhZ2luZy1zdGF0dXMtYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC4zcmVtO1xufVxuXG4ubWVzc2FnaW5nLWRuZC1idXR0b25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDAuMjVyZW07XG59XG5cbi5tZXNzYWdpbmctZG5kLWJ1dHRvbnMge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm1lc3NhZ2luZy1tZXNzYWdlLXNlYXJjaCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm1lc3NhZ2luZy1zZWFyY2gtcmVzdWx0cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgKyA0cHgpO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgei1pbmRleDogNDA7XG4gIG1heC1oZWlnaHQ6IDMyMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJveC1zaGFkb3c6IDAgMTBweCAyNHB4IHJnYmEoMCwgMCwgMCwgMC4xNik7XG59XG5cbi5tZXNzYWdpbmctc2VhcmNoLXJlc3VsdCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMC4xcmVtO1xuICBwYWRkaW5nOiAwLjQ1cmVtIDAuNTVyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtc2l6ZTogMC42MnJlbTtcbn1cblxuLm1lc3NhZ2luZy1zZWFyY2gtcmVzdWx0OmhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDglLCB0cmFuc3BhcmVudCk7XG59XG5cbi5tZXNzYWdpbmctc2VhcmNoLXJlc3VsdCBzdHJvbmcge1xuICBmb250LXNpemU6IDAuNnJlbTtcbn1cblxuLm1lc3NhZ2luZy1zZWFyY2gtcmVzdWx0IHNwYW4ge1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5tZXNzYWdpbmctc2VhcmNoLXJlc3VsdCBzbWFsbCB7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNTJyZW07XG59XG5cbi5tZXNzYWdpbmctc2VhcmNoLWVtcHR5IHtcbiAgcGFkZGluZzogMC42cmVtO1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjYycmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLW1ldGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMjVyZW07XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xufVxuXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1tZXRhIHRpbWUge1xuICBmb250LXNpemU6IDAuNTJyZW07XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLW1ldGEgaSB7XG4gIGZvbnQtc2l6ZTogMC41NXJlbTtcbn1cblxuLm1lc3NhZ2luZy1kb2NrLW9wZW4ge1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xufVxuXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1pdGVtOmhvdmVyIC5tZXNzYWdpbmctZG9jay1vcGVuIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ubWVzc2FnaW5nLWRvY2stb3Blbjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLm1lc3NhZ2luZy1jb252ZXJzYXRpb24taXRlbS5pcy1tdXRlZCAubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1jb3B5IHN0cm9uZyB7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xufVxuXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1hdmF0YXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1hdmF0YXIgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG59XG5cbi5tZXNzYWdpbmctcHJlc2VuY2UtZG90IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogLTJweDtcbiAgYm90dG9tOiAtMnB4O1xuICB3aWR0aDogOXB4O1xuICBoZWlnaHQ6IDlweDtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgMjUlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5tZXNzYWdpbmctcHJlc2VuY2UtZG90LmlzLW9ubGluZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLW5vdGlmaWNhdGlvbi1zdWNjZXNzLCAjMTZhMzRhKTtcbn1cblxuLm1lc3NhZ2luZy1kaXJlY3RvcnktYXZhdGFyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubWVzc2FnaW5nLW5ldy1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDAuNnJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xufVxuXG4ubWVzc2FnaW5nLW5ldy1ncm91cCBzdW1tYXJ5IHtcbiAgcGFkZGluZzogMC41cmVtIDAuNnJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDAuNjZyZW07XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5tZXNzYWdpbmctbmV3LWdyb3VwIHN1bW1hcnkgaSB7XG4gIG1hcmdpbi1yaWdodDogMC4zcmVtO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5tZXNzYWdpbmctbmV3LWdyb3VwIGZvcm0ge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDAuNHJlbTtcbiAgcGFkZGluZzogMCAwLjZyZW0gMC42cmVtO1xufVxuXG4ubWVzc2FnaW5nLW5ldy1ncm91cC1tZW1iZXJzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTQwcHgsIDFmcikpO1xuICBnYXA6IDAuMnJlbTtcbiAgbWF4LWhlaWdodDogMTgwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5tZXNzYWdpbmctbmV3LWdyb3VwLW1lbWJlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zNXJlbTtcbiAgcGFkZGluZzogMC4ycmVtIDAuM3JlbTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBmb250LXNpemU6IDAuNjRyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm1lc3NhZ2luZy1uZXctZ3JvdXAtbWVtYmVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDclLCB0cmFuc3BhcmVudCk7XG59XG5cbi5tZXNzYWdpbmctaW52aXRlLW1lbWJlcnMgZm9ybSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMC40cmVtO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm1lc3NhZ2luZy1pbnZpdGUtbWVtYmVyLWxpc3Qge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDAuMTVyZW07XG4gIG1heC1oZWlnaHQ6IDE2MHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4ubWVzc2FnaW5nLWludml0ZS1tZW1iZXJzIC5idXR0b24tMTMge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm1lc3NhZ2luZy10aHJlYWQtaGVhZGVyLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuM3JlbTtcbn1cblxuLm1lc3NhZ2luZy10b3BpYyB7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xufVxuXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1tZW51IHtcbiAgd2lkdGg6IDI4NXB4O1xuICBwYWRkaW5nOiAwLjU1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLW1lbnUgLm1lc3NhZ2luZy1zZXR0aW5ncy1zZWN0aW9uIHtcbiAgZ2FwOiAwLjJyZW07XG4gIHBhZGRpbmc6IDAuMnJlbSAwIDAuNDVyZW07XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLW1lbnUgLm1lc3NhZ2luZy1zZXR0aW5ncy1zZWN0aW9uID4gc3Ryb25nIHtcbiAgcGFkZGluZzogMCAwLjRyZW0gMC4ycmVtO1xufVxuXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1tZW51IC5kcm9wZG93bi1pdGVtIHtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LXNpemU6IDAuNjRyZW07XG59XG5cbi5tZXNzYWdpbmctY29udmVyc2F0aW9uLW1lbnUgLm1lc3NhZ2luZy1tZW51LWl0ZW0ge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDE4cHggbWlubWF4KDAsIDFmcik7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC40NXJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAuNDJyZW0gMC40NXJlbSAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1tZW51IC5tZXNzYWdpbmctbWVudS1pdGVtID4gaSB7XG4gIHdpZHRoOiAxOHB4O1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1tZW51IC5tZXNzYWdpbmctbWVudS1pdGVtID4gc3BhbiB7XG4gIG1pbi13aWR0aDogMDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAwLjA4cmVtO1xufVxuXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1tZW51IC5tZXNzYWdpbmctbWVudS1pdGVtIHN0cm9uZyB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBmb250LXNpemU6IDAuNjRyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLm1lc3NhZ2luZy1jb252ZXJzYXRpb24tbWVudSAubWVzc2FnaW5nLW1lbnUtaXRlbSBzbWFsbCB7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgZm9udC1zaXplOiAwLjU0cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbn1cblxuLm1lc3NhZ2luZy1jb252ZXJzYXRpb24tbWVudSAubWVzc2FnaW5nLW1lbnUtaXRlbS5pcy1hY3RpdmUgPiBpIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1tZW51IC5kcm9wZG93bi1pdGVtLmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxMCUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4ubWVzc2FnaW5nLWNvbnZlcnNhdGlvbi1tZW51IGZvcm0ge1xuICBtYXJnaW46IDA7XG59XG5cbi5tZXNzYWdpbmctY2F0Y2gtdXAge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5tZXNzYWdpbmctY2F0Y2gtdXAtYmFubmVyIHtcbiAgbWFyZ2luOiAwLjVyZW0gMC42NXJlbSAwO1xuICBwYWRkaW5nOiAwLjVyZW0gMC42cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMzUlLCB2YXIoLS1tc2ctYm9yZGVyKSk7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDclLCB2YXIoLS1jYXJkLWNvbG91cikpO1xuICBmb250LXNpemU6IDAuNjZyZW07XG59XG5cbi5tZXNzYWdpbmctY2F0Y2gtdXAtaGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xufVxuXG4ubWVzc2FnaW5nLWNhdGNoLXVwLWhlYWQgaSB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLm1lc3NhZ2luZy1jYXRjaC11cC1oZWFkIGJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbn1cblxuLm1lc3NhZ2luZy1jYXRjaC11cC1ib2R5IHtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4ubWVzc2FnaW5nLXRocmVhZC1saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cblxuLm1lc3NhZ2luZy11bnJlYWQtZGl2aWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBtYXJnaW46IDAuNXJlbSAwO1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlciwgI2RjMjYyNik7XG4gIGZvbnQtc2l6ZTogMC41NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbn1cblxuLm1lc3NhZ2luZy11bnJlYWQtZGl2aWRlcjo6YmVmb3JlLCAubWVzc2FnaW5nLXVucmVhZC1kaXZpZGVyOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW5vdGlmaWNhdGlvbi1kYW5nZXIsICNkYzI2MjYpIDQ1JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4ubWVzc2FnaW5nLW5ldy1waWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDkycHg7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB6LWluZGV4OiA4O1xuICBwYWRkaW5nOiAwLjNyZW0gMC43cmVtO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS10ZXh0KTtcbiAgZm9udC1zaXplOiAwLjZyZW07XG4gIGJveC1zaGFkb3c6IDAgNnB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjIyKTtcbn1cblxuLm1lc3NhZ2luZy1ib3QtYmFkZ2Uge1xuICBwYWRkaW5nOiAwLjA1cmVtIDAuM3JlbTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMTUlLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5tZXNzYWdpbmctZWRpdGVkLWJhZGdlIHtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC41M3JlbTtcbiAgcGFkZGluZzogMDtcbn1cblxuLm1lc3NhZ2luZy1lZGl0ZWQtYmFkZ2U6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4ubWVzc2FnaW5nLWZvcndhcmRlZCB7XG4gIG1hcmdpbi1ib3R0b206IDAuMzVyZW07XG4gIHBhZGRpbmc6IDAuM3JlbSAwLjQ1cmVtO1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgNiUsIHRyYW5zcGFyZW50KTtcbn1cblxuLm1lc3NhZ2luZy1mb3J3YXJkZWQgc21hbGwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC41NHJlbTtcbn1cblxuLm1lc3NhZ2luZy1mb3J3YXJkZWQgYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMC4xNXJlbSAwIDA7XG4gIGZvbnQtc2l6ZTogMC42MnJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLm1lc3NhZ2luZy1tZXNzYWdlLWNvbnRlbnQgLm1lc3NhZ2luZy1tZW50aW9uIHtcbiAgcGFkZGluZzogMC4wNHJlbSAwLjI1cmVtO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxNCUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UtY29udGVudCBwcmUge1xuICBtYXJnaW46IDAuM3JlbSAwO1xuICBwYWRkaW5nOiAwLjRyZW0gMC41cmVtO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgOCUsIHRyYW5zcGFyZW50KTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgZm9udC1zaXplOiAwLjYycmVtO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UtY29udGVudCBjb2RlIHtcbiAgZm9udC1zaXplOiAwLjYycmVtO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UtY29udGVudCB1bCwgLm1lc3NhZ2luZy1tZXNzYWdlLWNvbnRlbnQgb2wge1xuICBtYXJnaW46IDAuMnJlbSAwO1xuICBwYWRkaW5nLWxlZnQ6IDEuMXJlbTtcbn1cblxuLm1lc3NhZ2luZy1tZXNzYWdlLWNvbnRlbnQgYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMC4ycmVtIDA7XG4gIHBhZGRpbmctbGVmdDogMC41cmVtO1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbn1cblxuLm1lc3NhZ2luZy1maWxlLWltYWdlIGltZyB7XG4gIG1heC13aWR0aDogMjQwcHg7XG4gIG1heC1oZWlnaHQ6IDE4MHB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubWVzc2FnaW5nLWZpbGUtbGluayB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuM3JlbTtcbn1cblxuLm1lc3NhZ2luZy1maWxlLWxpbmsgc21hbGwge1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbn1cblxuLm1lc3NhZ2luZy1tZXNzYWdlLWZpbGVzIGF1ZGlvIHtcbiAgbWF4LXdpZHRoOiAyNDBweDtcbiAgaGVpZ2h0OiAzMnB4O1xufVxuXG4ubWVzc2FnaW5nLWxpbmstcHJldmlldyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtaW5tYXgoMCwgMWZyKTtcbiAgZ2FwOiAwLjVyZW07XG4gIG1hcmdpbi10b3A6IDAuNDVyZW07XG4gIHBhZGRpbmc6IDAuNHJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLm1lc3NhZ2luZy1saW5rLXByZXZpZXc6aG92ZXIge1xuICBib3JkZXItY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSA0MCUsIHZhcigtLW1zZy1ib3JkZXIpKTtcbn1cblxuLm1lc3NhZ2luZy1saW5rLXByZXZpZXcgaW1nIHtcbiAgd2lkdGg6IDY0cHg7XG4gIGhlaWdodDogNjRweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuLm1lc3NhZ2luZy1saW5rLXByZXZpZXctY29weSB7XG4gIG1pbi13aWR0aDogMDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAwLjFyZW07XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm1lc3NhZ2luZy1saW5rLXByZXZpZXctY29weSBzdHJvbmcge1xuICBmb250LXNpemU6IDAuNjJyZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ubWVzc2FnaW5nLWxpbmstcHJldmlldy1jb3B5IHNwYW4ge1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjU3cmVtO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubWVzc2FnaW5nLWxpbmstcHJldmlldy1jb3B5IHNtYWxsIHtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC41cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wM2VtO1xufVxuXG4ubWVzc2FnaW5nLXJlYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiAwLjJyZW07XG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZS5pcy1vd24gLm1lc3NhZ2luZy1yZWFjdGlvbnMge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4ubWVzc2FnaW5nLXJlYWN0aW9uLWNoaXAge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjJyZW07XG4gIHBhZGRpbmc6IDAuMXJlbSAwLjM1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjZyZW07XG59XG5cbi5tZXNzYWdpbmctcmVhY3Rpb24tY2hpcCBzbWFsbCB7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNTNyZW07XG59XG5cbi5tZXNzYWdpbmctcmVhY3Rpb24tY2hpcC5pcy1taW5lIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDEwJSwgdHJhbnNwYXJlbnQpO1xufVxuXG4ubWVzc2FnaW5nLXJlYWN0aW9uLWNoaXA6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG4ubWVzc2FnaW5nLXRocmVhZC1jaGlwIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zcmVtO1xuICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xuICBwYWRkaW5nOiAwLjE1cmVtIDAuNDVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMC41OHJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLm1lc3NhZ2luZy10aHJlYWQtY2hpcDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSA4JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4vKiBUaGUgcGVyLW1lc3NhZ2UgXCJtb3JlXCIgbWVudTogdGhlbWVkIGxpa2UgdGhlIHJlc3Qgb2YgdGhlIGh1Yiwgbm90XG4gICBCb290c3RyYXAvTURCIGRlZmF1bHRzLiAqL1xuLm1lc3NhZ2luZy1tb3JlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZS1hY3Rpb25zIC5tZXNzYWdpbmctbW9yZSA+IGJ1dHRvbiB7XG4gIHdpZHRoOiAyM3B4O1xuICBoZWlnaHQ6IDIzcHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UtYWN0aW9ucyAubWVzc2FnaW5nLW1vcmUgPiBidXR0b246aG92ZXIge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSA4JSwgdHJhbnNwYXJlbnQpO1xufVxuXG4ubWVzc2FnaW5nLW1vcmUgPiBidXR0b246OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1lc3NhZ2luZy1tb3JlIC5kcm9wZG93bi1tZW51IHtcbiAgbWluLXdpZHRoOiAxNzVweDtcbiAgcGFkZGluZzogMC4zcmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJveC1zaGFkb3c6IDAgMTBweCAyNnB4IHJnYmEoMCwgMCwgMCwgMC4yMik7XG59XG5cbi5tZXNzYWdpbmctbW9yZSAuZHJvcGRvd24taXRlbSB7XG4gIHBhZGRpbmc6IDAuMzJyZW0gMC41cmVtO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMC42M3JlbTtcbn1cblxuLm1lc3NhZ2luZy1tb3JlIC5kcm9wZG93bi1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDklLCB0cmFuc3BhcmVudCk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi5tZXNzYWdpbmctbW9yZSAuZHJvcGRvd24taXRlbSBpIHtcbiAgd2lkdGg6IDE1cHg7XG4gIG1hcmdpbi1yaWdodDogMC4zcmVtO1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbn1cblxuLm1lc3NhZ2luZy1tb3JlIC5kcm9wZG93bi1pdGVtOmhvdmVyIGkge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLm1lc3NhZ2luZy1kYW5nZXIge1xuICBjb2xvcjogdmFyKC0tbm90aWZpY2F0aW9uLWRhbmdlciwgI2RjMjYyNikgIWltcG9ydGFudDtcbn1cblxuLm1lc3NhZ2luZy1zZWVuLW1hcmtlciB7XG4gIG1hcmdpbjogLTAuMzVyZW0gMCAwLjU1cmVtO1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjUycmVtO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLm1lc3NhZ2luZy10aHJlYWQtcGFuZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogMTI7XG4gIHdpZHRoOiBtaW4oMzQwcHgsIDkyJSk7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm94LXNoYWRvdzogLThweCAwIDIycHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbn1cblxuLm1lc3NhZ2luZy10aHJlYWQtcGFuZWwgaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwLjU1cmVtIDAuNjVyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgZm9udC1zaXplOiAwLjdyZW07XG59XG5cbi5tZXNzYWdpbmctdGhyZWFkLXBhbmVsLWJvZHkge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcGFkZGluZzogMC42cmVtO1xufVxuXG4ubWVzc2FnaW5nLW1lc3NhZ2UuaW4tdGhyZWFkLXBhbmVsIC5tZXNzYWdpbmctbWVzc2FnZS1hY3Rpb25zIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1lc3NhZ2luZy1tZXNzYWdlLmluLXRocmVhZC1wYW5lbCAubWVzc2FnaW5nLW1lc3NhZ2UtbWFpbiB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLm1lc3NhZ2luZy1tb2RhbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDMwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjM1KTtcbn1cblxuLm1lc3NhZ2luZy1tb2RhbC1jYXJkIHtcbiAgd2lkdGg6IG1pbig0MjBweCwgOTIlKTtcbiAgbWF4LWhlaWdodDogODQlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJveC1zaGFkb3c6IDAgMThweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbn1cblxuLm1lc3NhZ2luZy1tb2RhbC1jYXJkIGhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMC42cmVtIDAuN3JlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBmb250LXNpemU6IDAuNzJyZW07XG59XG5cbi5tZXNzYWdpbmctbW9kYWwtYm9keSB7XG4gIHBhZGRpbmc6IDAuN3JlbTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgZm9udC1zaXplOiAwLjY2cmVtO1xufVxuXG4ubWVzc2FnaW5nLW1vZGFsLWZvcm0ge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDAuNXJlbTtcbn1cblxuLm1lc3NhZ2luZy1tb2RhbC1mb3JtIHRleHRhcmVhIHtcbiAgbWluLWhlaWdodDogNjBweDtcbn1cblxuLm1lc3NhZ2luZy1leHRyYWN0LXJvdyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBtaW5tYXgoMCwgMWZyKTtcbiAgZ2FwOiAwLjVyZW07XG4gIGFsaWduLWl0ZW1zOiBzdGFydDtcbiAgcGFkZGluZzogMC40cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5tZXNzYWdpbmctZXh0cmFjdC1yb3cgc3BhbiB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMC4xcmVtO1xufVxuXG4ubWVzc2FnaW5nLWV4dHJhY3Qtcm93IHNtYWxsIHtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG59XG5cbi5tZXNzYWdpbmctZWRpdC1oaXN0b3J5IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAwLjVyZW07XG59XG5cbi5tZXNzYWdpbmctZWRpdC1oaXN0b3J5LWVudHJ5IHtcbiAgcGFkZGluZzogMC40cmVtIDAuNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLm1lc3NhZ2luZy1lZGl0LWhpc3RvcnktZW50cnkgc21hbGwge1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbn1cblxuLm1lc3NhZ2luZy1lZGl0LWhpc3RvcnktZW50cnkgcCB7XG4gIG1hcmdpbjogMC4ycmVtIDAgMDtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xufVxuXG4ubWVzc2FnaW5nLWVtb2ppLXBhbmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDc4cHg7XG4gIHJpZ2h0OiAxMnB4O1xuICB6LWluZGV4OiAyNTtcbiAgd2lkdGg6IDI2NXB4O1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm94LXNoYWRvdzogMCAxNHB4IDMwcHggcmdiYSgwLCAwLCAwLCAwLjIyKTtcbn1cblxuLm1lc3NhZ2luZy1lbW9qaS1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoOCwgMWZyKTtcbiAgZ2FwOiAwLjFyZW07XG4gIG1heC1oZWlnaHQ6IDIzMHB4O1xuICBtYXJnaW4tdG9wOiAwLjRyZW07XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5tZXNzYWdpbmctZW1vamktb3B0aW9uIHtcbiAgcGFkZGluZzogMC4xNXJlbSAwO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuLm1lc3NhZ2luZy1lbW9qaS1vcHRpb246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMTIlLCB0cmFuc3BhcmVudCk7XG59XG5cbi5tZXNzYWdpbmctZW1vamktY2F0ZWdvcnktbGFiZWwge1xuICBncmlkLWNvbHVtbjogMS8tMTtcbiAgbWFyZ2luLXRvcDogMC4zcmVtO1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjUycmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xufVxuXG4ubWVzc2FnaW5nLW1lbnRpb24tbWVudSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiA3OHB4O1xuICBsZWZ0OiAxMnB4O1xuICB6LWluZGV4OiAyNjtcbiAgbWluLXdpZHRoOiAxOTBweDtcbiAgcGFkZGluZzogMC4yNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBib3gtc2hhZG93OiAwIDEwcHggMjRweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIGRpc3BsYXk6IGdyaWQ7XG59XG5cbi5tZXNzYWdpbmctbWVudGlvbi1vcHRpb24ge1xuICBwYWRkaW5nOiAwLjM1cmVtIDAuNXJlbTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXNpemU6IDAuNjZyZW07XG59XG5cbi5tZXNzYWdpbmctbWVudGlvbi1vcHRpb24uaXMtYWN0aXZlLCAubWVzc2FnaW5nLW1lbnRpb24tb3B0aW9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDEwJSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5tZXNzYWdpbmctc2NoZWR1bGVkLWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMC4zcmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjM1cmVtO1xufVxuXG4ubWVzc2FnaW5nLXNjaGVkdWxlZC1jaGlwIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zNXJlbTtcbiAgcGFkZGluZzogMC4ycmVtIDAuNDVyZW07XG4gIGJvcmRlcjogMXB4IGRhc2hlZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgNTAlLCB2YXIoLS1tc2ctYm9yZGVyKSk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC41N3JlbTtcbn1cblxuLm1lc3NhZ2luZy1zY2hlZHVsZWQtY2hpcCBidXR0b24ge1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgcGFkZGluZzogMDtcbn1cblxuLm1lc3NhZ2luZy1zY2hlZHVsZS1wYW5lbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC40cmVtO1xuICBtYXJnaW4tdG9wOiAwLjRyZW07XG4gIHBhZGRpbmc6IDAuNHJlbSAwLjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjYycmVtO1xufVxuXG4ubWVzc2FnaW5nLXNjaGVkdWxlLXBhbmVsID4gaSB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG59XG5cbi5tZXNzYWdpbmctc2NoZWR1bGUtcGFuZWwgaW5wdXQge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICBtYXgtd2lkdGg6IG5vbmU7XG59XG5cbi5tZXNzYWdpbmctc2NoZWR1bGUtcGFuZWwgLm1lc3NhZ2luZy1odWItaWNvbiB7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG4ubWVzc2FnaW5nLXNjaGVkdWxlLXBhbmVsIC5tZXNzYWdpbmctaHViLWljb24uaXMtcHJpbWFyeSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xufVxuXG4ubWVzc2FnaW5nLWZpbGUtY2hpcHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogMC4zcmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjNyZW07XG59XG5cbi5tZXNzYWdpbmctZmlsZS1jaGlwIHtcbiAgcGFkZGluZzogMC4xNXJlbSAwLjQ1cmVtO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjU3cmVtO1xufVxuXG4ubWVzc2FnaW5nLXZvaWNlLWNoaXAge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjNyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcbiAgcGFkZGluZzogMC4ycmVtIDAuNDVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyLCAjZGMyNjI2KSA0NSUsIHZhcigtLW1zZy1ib3JkZXIpKTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LXNpemU6IDAuNThyZW07XG59XG5cbi5tZXNzYWdpbmctdm9pY2UtY2hpcCBidXR0b24ge1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgcGFkZGluZzogMDtcbn1cblxuLm1lc3NhZ2luZy1hdHRhY2gtYnV0dG9uLmlzLXJlY29yZGluZyB7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyLCAjZGMyNjI2KTtcbiAgYW5pbWF0aW9uOiBtZXNzYWdpbmctcHVsc2UgMS4ycyBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBtZXNzYWdpbmctcHVsc2Uge1xuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuMzU7XG4gIH1cbn1cbi5tZXNzYWdpbmctYXNzaXN0LWJ1dHRvbiB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuLm1lc3NhZ2luZy1lZGl0LWFyZWEge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDAuMzVyZW07XG4gIG1hcmdpbi10b3A6IDAuM3JlbTtcbn1cblxuLm1lc3NhZ2luZy1lZGl0LWFyZWEgdGV4dGFyZWEge1xuICBtaW4taGVpZ2h0OiA1NnB4O1xuICBwYWRkaW5nOiAwLjRyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjY4cmVtO1xufVxuXG4ubWVzc2FnaW5nLWRldGFpbHMge1xuICB3aWR0aDogMzAwcHg7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLW1zZy1ib3JkZXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi1oZWlnaHQ6IDA7XG59XG5cbi8qIFNhbWUgZmxhdCB1bmRlcmxpbmUgdGFicyBhcyB0aGUgaW5ib3ggb2ZmLWNhbnZhcyAoYWN0aXZpdHktdGFicyksIG5vdFxuICAgQm9vdHN0cmFwIHBpbGwgZGVmYXVsdHMuICovXG4vKiBPbmUgcm93IGFsd2F5czogQm9vdHN0cmFwIHNldHMgLm5hdiB7IGZsZXgtd3JhcDogd3JhcCB9IGFuZCBtZGIubWluLmNzc1xuICAgbG9hZHMgYWZ0ZXIgYXBwbGljYXRpb24uY3NzLCBzbyBub3dyYXAgbmVlZHMgIWltcG9ydGFudC4gSXRlbXMgc2hhcmUgdGhlIHJvd1xuICAgZXF1YWxseSBpbnN0ZWFkIG9mIHdyYXBwaW5nLiAqL1xuLm1lc3NhZ2luZy1kZXRhaWxzLXRhYnMge1xuICBwYWRkaW5nOiAwLjRyZW0gMC40cmVtIDA7XG4gIGdhcDogMC4xcmVtO1xuICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG59XG5cbi5tZXNzYWdpbmctZGV0YWlscy10YWJzIC5uYXYtaXRlbSB7XG4gIGZsZXg6IDEgMSAwICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLm1lc3NhZ2luZy1kZXRhaWxzLXRhYnMgLm5hdi1saW5rIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDI4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiAwLjNyZW0gMC4ycmVtICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDAuNThyZW0gIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMCAhaW1wb3J0YW50O1xufVxuXG4ubWVzc2FnaW5nLWRldGFpbHMtdGFicyAubmF2LWxpbmsgaSB7XG4gIG1hcmdpbi1yaWdodDogMC4yNXJlbTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMC41OHJlbTtcbn1cblxuLm1lc3NhZ2luZy1kZXRhaWxzLXRhYnMgLm5hdi1saW5rOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpIDU1JSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XG59XG5cbi5tZXNzYWdpbmctZGV0YWlscy10YWJzIC5uYXYtbGluay5hY3RpdmUge1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLm1lc3NhZ2luZy1kZXRhaWxzLWNvbnRlbnQge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLWhlaWdodDogMDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcGFkZGluZzogMC42cmVtO1xufVxuXG4ubWVzc2FnaW5nLWRldGFpbHMtdG9waWMgcCB7XG4gIG1hcmdpbjogMC4ycmVtIDAgMDtcbiAgZm9udC1zaXplOiAwLjY0cmVtO1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbn1cblxuLm1lc3NhZ2luZy1kZXRhaWxzLXRvcGljLCAubWVzc2FnaW5nLWRldGFpbHMtY29udGV4dCB7XG4gIG1hcmdpbi1ib3R0b206IDAuNnJlbTtcbiAgZm9udC1zaXplOiAwLjYycmVtO1xufVxuXG4ubWVzc2FnaW5nLWRldGFpbHMtbWVtYmVycyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMC4zNXJlbTtcbiAgZm9udC1zaXplOiAwLjYycmVtO1xufVxuXG4ubWVzc2FnaW5nLWRldGFpbHMtbWVtYmVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyOHB4IG1pbm1heCgwLCAxZnIpIGF1dG8gYXV0bztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjQ1cmVtO1xufVxuXG4ubWVzc2FnaW5nLWRldGFpbHMtbWVtYmVyIC5tZXNzYWdpbmctZGlyZWN0b3J5LWF2YXRhciB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGZvbnQtc2l6ZTogMC42MnJlbTtcbn1cblxuLm1lc3NhZ2luZy1kZXRhaWxzLW1lbWJlci1jb3B5IHtcbiAgbWluLXdpZHRoOiAwO1xuICBkaXNwbGF5OiBncmlkO1xufVxuXG4ubWVzc2FnaW5nLWRldGFpbHMtbWVtYmVyLWNvcHkgc3Ryb25nIHtcbiAgZm9udC1zaXplOiAwLjYzcmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1lc3NhZ2luZy1vd25lci1iYWRnZSB7XG4gIHBhZGRpbmc6IDAuMDVyZW0gMC4zcmVtO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxNCUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBmb250LXNpemU6IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLm1lc3NhZ2luZy1hZGQtbWVtYmVycyBzdW1tYXJ5IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xufVxuXG4ubWVzc2FnaW5nLWFkZC1tZW1iZXJzIGZvcm0ge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDAuMjVyZW07XG4gIG1hcmdpbi10b3A6IDAuMzVyZW07XG4gIG1heC1oZWlnaHQ6IDIwMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4ubWVzc2FnaW5nLWRldGFpbHMtaXRlbSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMC4xcmVtO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMC40cmVtIDAuNXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbXNnLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXNpemU6IDAuNnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xufVxuXG4ubWVzc2FnaW5nLWRldGFpbHMtaXRlbTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDQwJSwgdmFyKC0tbXNnLWJvcmRlcikpO1xufVxuXG4ubWVzc2FnaW5nLWRldGFpbHMtaXRlbSBzcGFuIHtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ubWVzc2FnaW5nLWRldGFpbHMtaXRlbSBzbWFsbCB7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNTJyZW07XG59XG5cbi5tZXNzYWdpbmctZGV0YWlscy1lbXB0eSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zcmVtO1xuICBwYWRkaW5nOiAxLjJyZW0gMDtcbiAgY29sb3I6IHZhcigtLW1zZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tZXNzYWdpbmctZGlyZWN0b3J5LXN0YXR1cyB7XG4gIGNvbG9yOiB2YXIoLS1tc2ctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuNTRyZW07XG59XG5cbi5ub3RpZmljYXRpb24tdG9hc3Qge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAxNnB4O1xuICBib3R0b206IDc2cHg7XG4gIHotaW5kZXg6IDEwODA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBtYXgtd2lkdGg6IDMyMHB4O1xuICBwYWRkaW5nOiAwLjZyZW0gMC43NXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyLCAjMjAyNDJhKSAxNCUsIHRyYW5zcGFyZW50KTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91ciwgI2ZmZik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzIwMjQyYSkgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXNpemU6IDAuNjhyZW07XG4gIGJveC1zaGFkb3c6IDAgMTRweCAzNHB4IHJnYmEoMCwgMCwgMCwgMC4yNCk7XG59XG5cbi5ub3RpZmljYXRpb24tdG9hc3QgYnV0dG9uIHtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLmlzLWVtYmVkLXNoZWxsIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG4uaXMtZW1iZWQtc2hlbGwgLm1lc3NhZ2luZy10aHJlYWQtcm9vdCB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLm1lc3NhZ2luZy10aHJlYWQtcm9vdC5pcy1kb2NrIC5tZXNzYWdpbmctdGhyZWFkLWhlYWRlciB7XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIHBhZGRpbmc6IDAuNHJlbSAwLjU1cmVtO1xufVxuXG4ubWVzc2FnaW5nLXRocmVhZC1yb290LmlzLWRvY2sgLm1lc3NhZ2luZy10aHJlYWQtaGVhZGVyIGgzIHtcbiAgZm9udC1zaXplOiAwLjY4cmVtO1xufVxuXG4ubWVzc2FnaW5nLXRocmVhZC1yb290LmlzLWRvY2sgLm1lc3NhZ2luZy10aHJlYWQtbWVzc2FnZXMge1xuICBwYWRkaW5nOiAwLjVyZW07XG59XG5cbi5tZXNzYWdpbmctdGhyZWFkLXJvb3QuaXMtZW1iZWQgLm1lc3NhZ2luZy1tZXNzYWdlLW1haW4ge1xuICBtYXgtd2lkdGg6IDg2JTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gIC5tZXNzYWdpbmctZGV0YWlscyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLyogUGVyaWNsZXMgd29ya2luZyBzdGF0ZTogcHVsc2luZyBnbG93IGFyb3VuZCB0aGUgY29tcG9zZXIgd2hpbGUgYVxuICAgcmV3cml0ZSBzdHJlYW1zIGluLCBwbHVzIGEgdHJhbnNpZW50IG5vdGUgZm9yIGFzc2lzdCBlcnJvcnMuICovXG4ubWVzc2FnaW5nLXRocmVhZC1jb21wb3NlciBmb3JtLmlzLWFzc2lzdGluZyB7XG4gIGJvcmRlci1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDU1JSwgdmFyKC0tbXNnLWJvcmRlcikpO1xuICBhbmltYXRpb246IG1lc3NhZ2luZy1hc3Npc3QtZ2xvdyAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG4ubWVzc2FnaW5nLXRocmVhZC1jb21wb3NlciBmb3JtLmlzLWFzc2lzdGluZyB0ZXh0YXJlYSB7XG4gIGNhcmV0LWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cblxuQGtleWZyYW1lcyBtZXNzYWdpbmctYXNzaXN0LWdsb3cge1xuICAwJSwgMTAwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMXB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAzMCUsIHRyYW5zcGFyZW50KTtcbiAgfVxuICA1MCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAxNnB4IDJweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgNDUlLCB0cmFuc3BhcmVudCk7XG4gIH1cbn1cbi5tZXNzYWdpbmctYXNzaXN0LW5vdGUge1xuICBtYXJnaW4tYm90dG9tOiAwLjNyZW07XG4gIHBhZGRpbmc6IDAuM3JlbSAwLjVyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSA0MCUsIHZhcigtLW1zZy1ib3JkZXIpKTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgOCUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMC42cmVtO1xufVxuXG4vKiBDaGlwLWJhc2VkIGNvbXBvc2VyIChAIHBlb3BsZSwgIyBwcm9qZWN0cykgKyBwcmVtaXVtIG1lbnRpb24gY2hpcHMgaW5cbiAgIHJlbmRlcmVkIG1lc3NhZ2VzLCByZXVzaW5nIHRoZSBhcHAtd2lkZSBwbC1jaGlwIC8gbWVudGlvbi1oaWdobGlnaHQgbG9vay4gKi9cbi5tZXNzYWdpbmctY29tcG9zZXItZmllbGQge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLXdpZHRoOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5tZXNzYWdpbmctY29tcG9zZXItZWRpdG9yIHtcbiAgbWluLWhlaWdodDogMzBweDtcbiAgbWF4LWhlaWdodDogMTgwcHg7XG4gIHBhZGRpbmc6IDAuNHJlbTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjU1O1xufVxuXG4ubWVzc2FnaW5nLWNvbXBvc2VyLWVkaXRvcjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5tZXNzYWdpbmctY29tcG9zZXItZWRpdG9yOmVtcHR5OjpiZWZvcmUge1xuICBjb250ZW50OiBhdHRyKGRhdGEtcGxhY2Vob2xkZXIpO1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5tZXNzYWdpbmctY29tcG9zZXItZmllbGQuaXMtbG9ja2VkIC5tZXNzYWdpbmctY29tcG9zZXItZWRpdG9yIHtcbiAgb3BhY2l0eTogMC43NTtcbn1cblxuLyogUGVyIHRoZSB0aGVtZSBjb250cmFjdCAoX3N0eWxlcy5odG1sLmVyYik6IGFjY2VudHMgYXJlIHJlc3RyYWluZWRcbiAgIGNvbG9yLW1peCgpIHRpbnRzIG92ZXIgdGhlIGNhcmQgY29sb3VyLCBhbmQgY29weSBvbiB0aGVtIGlzIC0tdGV4dC1jb2xvdXJcbiAgIOKAlCByZWFkYWJsZSBieSBjb25zdHJ1Y3Rpb24gb24gZXZlcnkgcGFsZXR0ZS4gU2Vjb25kYXJ5IGlzIHRoZSBhY2NlbnQuICovXG4ubWVzc2FnaW5nLWNvbXBvc2VyLWZpZWxkIC5wbC1jaGlwIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDAgMC4xcmVtO1xuICBwYWRkaW5nOiAwLjA2cmVtIDAuMzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDE0JSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbiAgYm9yZGVyOiAxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDM1JSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC13ZWlnaHQ6IDY1MDtcbiAgZm9udC1zaXplOiAwLjY2cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ubWVzc2FnaW5nLWNvbXBvc2VyLWZpZWxkIC5wbC1jaGlwLmlzLXByb2plY3Qge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMjQlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xufVxuXG4ubWVzc2FnaW5nLWNvbXBvc2VyLWZpZWxkIC5wbC1jaGlwLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDQ1O1xuICBtaW4td2lkdGg6IDIzMHB4O1xuICBtYXgtaGVpZ2h0OiAyNjBweDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwLjI1cmVtO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1tc2ctYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIGJveC1zaGFkb3c6IDAgLTEwcHggMjZweCByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG5cbi5tZXNzYWdpbmctY29tcG9zZXItZmllbGQgLnBsLWNoaXAtbWVudV9faXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDAuNnJlbTtcbiAgcGFkZGluZzogMC4zNXJlbSAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDAuNjZyZW07XG59XG5cbi5tZXNzYWdpbmctY29tcG9zZXItZmllbGQgLnBsLWNoaXAtbWVudV9faXRlbS5pcy1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMTglLCB2YXIoLS1jYXJkLWNvbG91cikpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4ubWVzc2FnaW5nLWNvbXBvc2VyLWZpZWxkIC5wbC1jaGlwLW1lbnVfX2l0ZW0uaXMtYWN0aXZlIC5wbC1jaGlwLW1lbnVfX3N1YiB7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbn1cblxuLm1lc3NhZ2luZy1jb21wb3Nlci1maWVsZCAucGwtY2hpcC1tZW51X19zdWIge1xuICBjb2xvcjogdmFyKC0tbXNnLW11dGVkKTtcbiAgZm9udC1zaXplOiAwLjU1cmVtO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLyogTWVudGlvbiBjaGlwcyBpbnNpZGUgcmVuZGVyZWQgbWVzc2FnZXM6IG1hdGNoIHRoZSBhcHAncyBtZW50aW9uIGxvb2ssXG4gICBzaXplZCBmb3IgY2hhdCBidWJibGVzLiAqL1xuLm1lc3NhZ2luZy1tZXNzYWdlLWNvbnRlbnQgLm1lbnRpb24taGlnaGxpZ2h0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjA0cmVtIDAuM3JlbTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMTQlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xuICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMzUlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXdlaWdodDogNjUwO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5tZXNzYWdpbmctbWVzc2FnZS1jb250ZW50IC5tZW50aW9uLWhpZ2hsaWdodC5pcy1wcm9qZWN0IHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDI0JSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbn1cblxuLm1lc3NhZ2luZy1tZXNzYWdlLWNvbnRlbnQgYS5tZW50aW9uLWhpZ2hsaWdodC5pcy1wcm9qZWN0OmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi8qIEZhY2Vib29rLXN0eWxlIGRvY2tlZCBjaGF0IHdpbmRvd3MgcGlubmVkIHRvIHRoZSBib3R0b20tcmlnaHQgb2YgZXZlcnlcbiAgIGF1dGhlbnRpY2F0ZWQgcGFnZS4gV2luZG93cyBlbWJlZCB0aGUgc2hhcmVkIG1lc3NhZ2luZyB0aHJlYWQgc2hlbGwuICovXG4vKiByaWdodCBvZmZzZXQgY2xlYXJzIHRoZSBQZXJpY2xlcyBhc3Npc3RhbnQgYnViYmxlIChmaXhlZCBhdFxuICAgcmlnaHQ6IDEuMjVyZW0sIHotaW5kZXggMTA4MCkgc28gdGhlIHdpZGdldCBuZXZlciBjb3ZlcnMgYSB3aW5kb3cuICovXG4uY2hhdC1kb2NrIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogOTZweDtcbiAgYm90dG9tOiAwO1xuICB6LWluZGV4OiAxMDQ1O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmNoYXQtZG9jay1zdHJpcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgZ2FwOiAwLjVyZW07XG4gIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbn1cblxuLmNoYXQtZG9jay13aW5kb3cge1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgd2lkdGg6IDMyMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdGV4dC1jb2xvdXIsICMyMDI0MmEpIDE2JSwgdHJhbnNwYXJlbnQpO1xuICBib3JkZXItYm90dG9tOiAwO1xuICBib3JkZXItcmFkaXVzOiAxMHB4IDEwcHggMCAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91ciwgI2ZmZik7XG4gIGJveC1zaGFkb3c6IDAgLTZweCAyOHB4IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5jaGF0LWRvY2staGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjM1cmVtO1xuICBwYWRkaW5nOiAwLjRyZW0gMC41NXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tbmF2LXRleHQsICNmZmYpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uY2hhdC1kb2NrLXRpdGxlIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGZvbnQtc2l6ZTogMC42NnJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLmNoYXQtZG9jay1iYWRnZSB7XG4gIG1pbi13aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBwYWRkaW5nOiAwIDRweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1uYXYtdGV4dCwgI2ZmZik7XG4gIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG91cik7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG5cbi5jaGF0LWRvY2stYnV0dG9uIHtcbiAgd2lkdGg6IDIycHg7XG4gIGhlaWdodDogMjJweDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXNpemU6IDAuNnJlbTtcbn1cblxuLmNoYXQtZG9jay1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpO1xufVxuXG4uY2hhdC1kb2NrLWJvZHkge1xuICBoZWlnaHQ6IDQwMHB4O1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMGR2aCAtIDE4MHB4KTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmNoYXQtZG9jay1ib2R5IHR1cmJvLWZyYW1lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiAwO1xufVxuXG4uY2hhdC1kb2NrLWJvZHkgLm1lc3NhZ2luZy1odWItY29udHJvbGxlciB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmNoYXQtZG9jay13aW5kb3cuaXMtbWluaW1pemVkIHtcbiAgd2lkdGg6IDE5MHB4O1xufVxuXG4uY2hhdC1kb2NrLXdpbmRvdy5pcy1taW5pbWl6ZWQgLmNoYXQtZG9jay1ib2R5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNoYXQtZG9jay13aW5kb3cuaGFzLXVucmVhZCAuY2hhdC1kb2NrLWhlYWRlciB7XG4gIGFuaW1hdGlvbjogY2hhdC1kb2NrLWF0dGVudGlvbiAxLjZzIGVhc2UgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgY2hhdC1kb2NrLWF0dGVudGlvbiB7XG4gIDUwJSB7XG4gICAgZmlsdGVyOiBicmlnaHRuZXNzKDEuMjUpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLmNoYXQtZG9jayB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmFzc2lzdGFudC13aWRnZXQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogMS4yNXJlbTtcbiAgcmlnaHQ6IDEuMjVyZW07XG4gIHotaW5kZXg6IDEwODA7XG4gIC0tcGwtYWNjZW50LWJnOiB2YXIoLS1idXR0b24tY29sb3VyLCAjMDA4Mjk2KTtcbiAgLS1wbC1hY2NlbnQtZmc6IHZhcigtLWJ1dHRvbi10ZXh0LCAjZmZmKTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAuYXNzaXN0YW50LXdpZGdldCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uYXNzaXN0YW50LWxhdW5jaGVyIHtcbiAgd2lkdGg6IDU2cHg7XG4gIGhlaWdodDogNTZweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHZhcigtLXBsLWFjY2VudC1iZyk7XG4gIGNvbG9yOiB2YXIoLS1wbC1hY2NlbnQtZmcpO1xuICBib3gtc2hhZG93OiAwIDZweCAxOHB4IHJnYmEoMCwgMCwgMCwgMC4yOCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlO1xufVxuLmFzc2lzdGFudC1sYXVuY2hlciAuYXNzaXN0YW50LWxhdW5jaGVyLWljb24ge1xuICBmb250LXNpemU6IDEuNHJlbTtcbn1cbi5hc3Npc3RhbnQtbGF1bmNoZXI6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG59XG5cbi5hc3Npc3RhbnQtcGFuZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogNzJweDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiBtaW4oMzgwcHgsIDEwMHZ3IC0gMnJlbSk7XG4gIGhlaWdodDogbWluKDU2MHB4LCAxMDB2aCAtIDdyZW0pO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91ciwgI2ZmZik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzIxMjUyOSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJveC1zaGFkb3c6IDAgMTZweCA0OHB4IHJnYmEoMCwgMCwgMCwgMC4yOCk7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5hc3Npc3RhbnQtd2lkZ2V0LmlzLW9wZW4gLmFzc2lzdGFudC1wYW5lbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4uYXNzaXN0YW50LXdpZGdldC5pcy1vcGVuIC5hc3Npc3RhbnQtbGF1bmNoZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xufVxuXG4uYXNzaXN0YW50LWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMC43cmVtIDFyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLXBsLWFjY2VudC1iZyk7XG4gIGNvbG9yOiB2YXIoLS1wbC1hY2NlbnQtZmcpO1xufVxuLmFzc2lzdGFudC1oZWFkZXIgLmFzc2lzdGFudC1oZWFkZXItdGl0bGUge1xuICBmb250LXdlaWdodDogNjAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmFzc2lzdGFudC1oZWFkZXIgLmFzc2lzdGFudC1oZWFkZXItYXZhdGFyIHtcbiAgd2lkdGg6IDI2cHg7XG4gIGhlaWdodDogMjZweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG59XG4uYXNzaXN0YW50LWhlYWRlciAuYXNzaXN0YW50LWhlYWRlci1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjI1cmVtO1xufVxuXG4uYXNzaXN0YW50LWljb24tYnRuIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6IHZhcigtLXBsLWFjY2VudC1mZyk7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAwLjg1O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5hc3Npc3RhbnQtaWNvbi1idG46aG92ZXIge1xuICBvcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuMik7XG4gIGNvbG9yOiB2YXIoLS1wbC1hY2NlbnQtZmcpO1xufVxuXG4uYXNzaXN0YW50LWhpc3Rvcnkge1xuICBkaXNwbGF5OiBub25lO1xuICBtYXgtaGVpZ2h0OiA0MCU7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91ciwgI2Y3ZjdmOSk7XG59XG4uYXNzaXN0YW50LWhpc3RvcnkuaXMtb3BlbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLmFzc2lzdGFudC1oaXN0b3J5IC5hc3Npc3RhbnQtaGlzdG9yeS1pbm5lciB7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbn1cbi5hc3Npc3RhbnQtaGlzdG9yeSAuYXNzaXN0YW50LWhpc3RvcnktZW1wdHkge1xuICBwYWRkaW5nOiAwLjc1cmVtO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCwgIzZjNzU3ZCk7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cblxuLmFzc2lzdGFudC1oaXN0b3J5LXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uYXNzaXN0YW50LWhpc3Rvcnktcm93IC5hc3Npc3RhbnQtaGlzdG9yeS1pdGVtIHtcbiAgZmxleDogMSAxIGF1dG87XG59XG4uYXNzaXN0YW50LWhpc3Rvcnktcm93IC5hc3Npc3RhbnQtaGlzdG9yeS1kZWxldGUge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQsICM2Yzc1N2QpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG9wYWNpdHk6IDA7XG4gIHBhZGRpbmc6IDAgMC40NXJlbTtcbiAgZm9udC1zaXplOiAwLjhyZW07XG59XG4uYXNzaXN0YW50LWhpc3Rvcnktcm93OmhvdmVyIC5hc3Npc3RhbnQtaGlzdG9yeS1kZWxldGUge1xuICBvcGFjaXR5OiAwLjg7XG59XG4uYXNzaXN0YW50LWhpc3Rvcnktcm93IC5hc3Npc3RhbnQtaGlzdG9yeS1kZWxldGU6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xuICBjb2xvcjogdmFyKC0tZGFuZ2VyLCAjYzAzOTJiKTtcbn1cblxuLmFzc2lzdGFudC1oaXN0b3J5LWl0ZW0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjY1cmVtO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjEyNTI5KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbi5hc3Npc3RhbnQtaGlzdG9yeS1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxMjgsIDEyOCwgMTI4LCAwLjE1KTtcbn1cblxuLmFzc2lzdGFudC1jb250ZXh0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjRyZW07XG4gIHBhZGRpbmc6IDAuNHJlbSAwLjc1cmVtO1xuICBmb250LXNpemU6IDAuNzhyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzIxMjUyOSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyLCAjZjBmMWY0KTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG59XG4uYXNzaXN0YW50LWNvbnRleHQgaSB7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyLCAjMDA4Mjk2KTtcbn1cbi5hc3Npc3RhbnQtY29udGV4dCAuYXNzaXN0YW50LWNvbnRleHQtbGFiZWwge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4uYXNzaXN0YW50LWNvbnRleHQgLmFzc2lzdGFudC1jb250ZXh0LWNsZWFyIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0LCAjNmM3NTdkKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAwIDAuMTVyZW07XG59XG4uYXNzaXN0YW50LWNvbnRleHQgLmFzc2lzdGFudC1jb250ZXh0LWNsZWFyOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjEyNTI5KTtcbn1cblxuLmFzc2lzdGFudC1tZXNzYWdlcyB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiAxcmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNnJlbTtcbiAgc2Nyb2xsYmFyLWNvbG9yOiB2YXIoLS1zY3JvbGxiYXItY29sb3VyLCAjY2NjKSB0cmFuc3BhcmVudDtcbn1cblxuLmFzc2lzdGFudC1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGdhcDogMC40cmVtO1xufVxuLmFzc2lzdGFudC1yb3cuYXNzaXN0YW50LXJvdy11c2VyIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbn1cbi5hc3Npc3RhbnQtcm93LmFzc2lzdGFudC1yb3ctYm90IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG4uYXNzaXN0YW50LW1zZy1hdmF0YXIge1xuICB3aWR0aDogMjZweDtcbiAgaGVpZ2h0OiAyNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBmbGV4OiAwIDAgYXV0bztcbn1cblxuLmFzc2lzdGFudC1tc2cge1xuICBtYXgtd2lkdGg6IDg1JTtcbiAgcGFkZGluZzogMC41NXJlbSAwLjhyZW07XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBsaW5lLWhlaWdodDogMS40NTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuLmFzc2lzdGFudC1tc2cgcHJlIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxMjgsIDEyOCwgMTI4LCAwLjE1KTtcbiAgcGFkZGluZzogMC41cmVtO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIG1hcmdpbjogMC40cmVtIDA7XG59XG4uYXNzaXN0YW50LW1zZyBjb2RlIHtcbiAgZm9udC1zaXplOiAwLjgyZW07XG59XG4uYXNzaXN0YW50LW1zZyB1bCB7XG4gIG1hcmdpbjogMC4zcmVtIDA7XG4gIHBhZGRpbmctbGVmdDogMS4xcmVtO1xufVxuLmFzc2lzdGFudC1tc2cgYSB7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtbGluaywgdmFyKC0tYnV0dG9uLWNvbG91ciwgIzAwODI5NikpO1xufVxuXG4uYXNzaXN0YW50LW1zZy11c2VyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tcGwtYWNjZW50LWJnKTtcbiAgY29sb3I6IHZhcigtLXBsLWFjY2VudC1mZyk7XG59XG5cbi5hc3Npc3RhbnQtbXNnLWJvdCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyLCAjZjBmMWY0KTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjEyNTI5KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgdHJhbnNwYXJlbnQpO1xufVxuLmFzc2lzdGFudC1tc2ctYm90LmlzLXN0cmVhbWluZzo6YWZ0ZXIge1xuICBjb250ZW50OiBcIuKWi1wiO1xuICBhbmltYXRpb246IGFzc2lzdGFudC1ibGluayAxcyBzdGVwcygyKSBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBhc3Npc3RhbnQtYmxpbmsge1xuICAwJSwgNTAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDUwLjAxJSwgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuLmFzc2lzdGFudC1hY3Rpb24tY2FyZCB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIG1heC13aWR0aDogOTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91ciwgI2YwZjFmNCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJ1dHRvbi1jb2xvdXIsICMwMDgyOTYpO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBwYWRkaW5nOiAwLjZyZW0gMC43NXJlbTtcbiAgZm9udC1zaXplOiAwLjg4cmVtO1xufVxuLmFzc2lzdGFudC1hY3Rpb24tY2FyZC5pcy1idXN5IHtcbiAgb3BhY2l0eTogMC42O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5hc3Npc3RhbnQtYWN0aW9uLWNhcmQgLmFzc2lzdGFudC1hY3Rpb24tc3VtbWFyeSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjEyNTI5KTtcbn1cbi5hc3Npc3RhbnQtYWN0aW9uLWNhcmQgLmFzc2lzdGFudC1hY3Rpb24tcHJldmlldyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyLCAjZmZmKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgcmdiYSgwLCAwLCAwLCAwLjEpKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIG1hcmdpbjogMCAwIDAuNXJlbTtcbiAgbWF4LWhlaWdodDogMTYwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjEyNTI5KTtcbn1cbi5hc3Npc3RhbnQtYWN0aW9uLWNhcmQgLmFzc2lzdGFudC1hY3Rpb24tYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC40cmVtO1xufVxuLmFzc2lzdGFudC1hY3Rpb24tY2FyZCAuYXNzaXN0YW50LWFjdGlvbi1hcHByb3ZlIHtcbiAgcGFkZGluZzogMC4zcmVtIDAuN3JlbSAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiAyNnB4O1xufVxuLmFzc2lzdGFudC1hY3Rpb24tY2FyZCAuYXNzaXN0YW50LWFjdGlvbi1kaXNtaXNzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsIHJnYmEoMCwgMCwgMCwgMC4yKSk7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0LCAjNmM3NTdkKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBwYWRkaW5nOiAwLjNyZW0gMC43cmVtO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hc3Npc3RhbnQtYWN0aW9uLWNhcmQgLmFzc2lzdGFudC1hY3Rpb24tZGlzbWlzczpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTI4LCAxMjgsIDEyOCwgMC4xNSk7XG59XG4uYXNzaXN0YW50LWFjdGlvbi1jYXJkIC5hc3Npc3RhbnQtYWN0aW9uLWRvbmUge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMyMTI1MjkpO1xufVxuLmFzc2lzdGFudC1hY3Rpb24tY2FyZCAuYXNzaXN0YW50LWFjdGlvbi1kb25lIGEge1xuICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbn1cbi5hc3Npc3RhbnQtYWN0aW9uLWNhcmQgLmFzc2lzdGFudC1hY3Rpb24tZXJyb3Ige1xuICBjb2xvcjogdmFyKC0tZGFuZ2VyLCAjYzAzOTJiKTtcbiAgbWFyZ2luLXRvcDogMC40cmVtO1xuICBmb250LXNpemU6IDAuODJyZW07XG59XG5cbi5hc3Npc3RhbnQtaW5wdXQtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBnYXA6IDAuNXJlbTtcbiAgcGFkZGluZzogMC42NXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG59XG5cbi5hc3Npc3RhbnQtaW5wdXQge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgcmVzaXplOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXIsIHJnYmEoMCwgMCwgMCwgMC4xNSkpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1pbnB1dC1yYWRpdXMsIDEycHgpO1xuICBwYWRkaW5nOiAwLjVyZW0gMC43cmVtO1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgbWF4LWhlaWdodDogMTIwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWJhY2tncm91bmQsICNmZmYpO1xuICBjb2xvcjogdmFyKC0taW5wdXQtdGV4dCwgIzIxMjUyOSk7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xufVxuLmFzc2lzdGFudC1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdmFyKC0taW5wdXQtcGxhY2Vob2xkZXIsICM5YWEwYTYpO1xufVxuLmFzc2lzdGFudC1pbnB1dDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0taW5wdXQtZm9jdXMtYm9yZGVyLCB2YXIoLS1idXR0b24tY29sb3VyLCAjMDA4Mjk2KSk7XG59XG5cbi5hc3Npc3RhbnQtc2VuZCB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBwYWRkaW5nOiAwLjVyZW0gMC43NXJlbSAhaW1wb3J0YW50O1xufVxuXG4ucGVyaWNsZXMtcGFnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMXJlbTtcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTEwcHgpO1xuICBtYXgtd2lkdGg6IDExMDBweDtcbiAgbWFyZ2luOiAxcmVtIGF1dG87XG4gIHBhZGRpbmc6IDAgMXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjEyNTI5KTtcbn1cblxuLnBlcmljbGVzLXNpZGViYXIge1xuICB3aWR0aDogMjQwcHg7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNXJlbTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcGFkZGluZzogMC4yNXJlbSAwLjc1cmVtIDAuMjVyZW0gMDtcbn1cblxuLnBlcmljbGVzLW5ld2NoYXQge1xuICB3aWR0aDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5wZXJpY2xlcy1oaXN0b3J5LWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCwgIzZjNzU3ZCk7XG4gIG1hcmdpbi10b3A6IDAuNzVyZW07XG4gIHBhZGRpbmctbGVmdDogMC4xNXJlbTtcbn1cblxuLnBlcmljbGVzLWhpc3Rvcnkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDJweDtcbn1cblxuLnBlcmljbGVzLWhpc3RvcnkgLmFzc2lzdGFudC1oaXN0b3J5LWl0ZW0ge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMC41cmVtIDAuNjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMyMTI1MjkpO1xufVxuLnBlcmljbGVzLWhpc3RvcnkgLmFzc2lzdGFudC1oaXN0b3J5LWl0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuMTUpO1xufVxuXG4ucGVyaWNsZXMtbWFpbiB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5wZXJpY2xlcy1pbnRybyB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDEuNXJlbSAxcmVtIDAuNXJlbTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLnBlcmljbGVzLWludHJvLWF2YXRhciB7XG4gIHdpZHRoOiA3MnB4O1xuICBoZWlnaHQ6IDcycHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5wZXJpY2xlcy1pbnRyby10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBtYXJnaW4tdG9wOiAwLjc1cmVtO1xufVxuXG4ucGVyaWNsZXMtaW50cm8tc3ViIHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQsICM2Yzc1N2QpO1xuICBtYXgtd2lkdGg6IDU2MHB4O1xuICBtYXJnaW46IDAuMjVyZW0gYXV0byAwO1xufVxuXG4ucGVyaWNsZXMtY2FyZHMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gIGdhcDogMC42cmVtO1xuICBtYXJnaW46IDEuMjVyZW0gYXV0bztcbiAgbWF4LXdpZHRoOiA2MjBweDtcbn1cblxuLnBlcmljbGVzLWNhcmQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91ciwgI2ZmZik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHBhZGRpbmc6IDAuOHJlbSAwLjlyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjE1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMyMTI1MjkpO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZTtcbn1cbi5wZXJpY2xlcy1jYXJkIGkge1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91ciwgIzAwODI5Nik7XG4gIGZvbnQtc2l6ZTogMS4wNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbn1cbi5wZXJpY2xlcy1jYXJkIC5wZXJpY2xlcy1jYXJkLXRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5wZXJpY2xlcy1jYXJkIC5wZXJpY2xlcy1jYXJkLXN1YiB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCwgIzZjNzU3ZCk7XG59XG4ucGVyaWNsZXMtY2FyZDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91ciwgIzAwODI5Nik7XG59XG5cbi5wZXJpY2xlcy1zdWdnZXN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiAwLjRyZW07XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXgtd2lkdGg6IDYyMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLnBlcmljbGVzLWNoaXAge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91ciwgI2YwZjFmNCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBwYWRkaW5nOiAwLjM1cmVtIDAuNzVyZW07XG4gIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMyMTI1MjkpO1xufVxuLnBlcmljbGVzLWNoaXA6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIsICMwMDgyOTYpO1xufVxuXG4ucGVyaWNsZXMtbWVzc2FnZXMge1xuICBmbGV4OiAxIDEgYXV0bztcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjZyZW07XG4gIHBhZGRpbmc6IDAuNXJlbSAwO1xuICBzY3JvbGxiYXItY29sb3I6IHZhcigtLXNjcm9sbGJhci1jb2xvdXIsICNjY2MpIHRyYW5zcGFyZW50O1xufVxuXG4ucGVyaWNsZXMtaW5wdXQtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjVyZW07XG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG59XG5cbi5wZXJpY2xlcy1pbnB1dCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICByZXNpemU6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlciwgcmdiYSgwLCAwLCAwLCAwLjE1KSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWlucHV0LXJhZGl1cywgMTJweCk7XG4gIHBhZGRpbmc6IDAuNnJlbSAwLjhyZW07XG4gIGZvbnQtc2l6ZTogMC45MnJlbTtcbiAgbWF4LWhlaWdodDogMTQwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWJhY2tncm91bmQsICNmZmYpO1xuICBjb2xvcjogdmFyKC0taW5wdXQtdGV4dCwgIzIxMjUyOSk7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xufVxuLnBlcmljbGVzLWlucHV0OjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB2YXIoLS1pbnB1dC1wbGFjZWhvbGRlciwgIzlhYTBhNik7XG59XG4ucGVyaWNsZXMtaW5wdXQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXItY29sb3I6IHZhcigtLWlucHV0LWZvY3VzLWJvcmRlciwgdmFyKC0tYnV0dG9uLWNvbG91ciwgIzAwODI5NikpO1xufVxuXG4ucGVyaWNsZXMtc2VuZCB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBwYWRkaW5nOiAwLjVyZW0gMC44cmVtICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAucGVyaWNsZXMtcGFnZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgLnBlcmljbGVzLXNpZGViYXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gIH1cbiAgLnBlcmljbGVzLWNhcmRzIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgfVxufVxuLnRocmVhZC1hY3Rpb24tY2FyZCB7XG4gIG1hcmdpbi10b3A6IDAuNnJlbTtcbiAgbWF4LXdpZHRoOiA0NjBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIsICNmN2Y3ZjkpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1idXR0b24tY29sb3VyLCAjMDA4Mjk2KTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgcGFkZGluZzogMC42cmVtIDAuNzVyZW07XG4gIGZvbnQtc2l6ZTogMC44OHJlbTtcbn1cbi50aHJlYWQtYWN0aW9uLWNhcmQuaXMtYnVzeSB7XG4gIG9wYWNpdHk6IDAuNjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4udGhyZWFkLWFjdGlvbi1jYXJkIC50aHJlYWQtYWN0aW9uLXN1bW1hcnkge1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzIxMjUyOSk7XG59XG4udGhyZWFkLWFjdGlvbi1jYXJkIC50aHJlYWQtYWN0aW9uLXByZXZpZXcge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91ciwgI2ZmZik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMC41cmVtO1xuICBtYXJnaW46IDAgMCAwLjVyZW07XG4gIG1heC1oZWlnaHQ6IDIwMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDAuODJyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzIxMjUyOSk7XG59XG4udGhyZWFkLWFjdGlvbi1jYXJkIC50aHJlYWQtYWN0aW9uLWJ1dHRvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNHJlbTtcbn1cbi50aHJlYWQtYWN0aW9uLWNhcmQgLnRocmVhZC1hY3Rpb24tZGlzbWlzcyB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCByZ2JhKDAsIDAsIDAsIDAuMikpO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCwgIzZjNzU3ZCk7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgcGFkZGluZzogMC4zcmVtIDAuN3JlbTtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4udGhyZWFkLWFjdGlvbi1jYXJkIC50aHJlYWQtYWN0aW9uLWRpc21pc3M6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEyOCwgMTI4LCAxMjgsIDAuMTUpO1xufVxuLnRocmVhZC1hY3Rpb24tY2FyZCAudGhyZWFkLWFjdGlvbi1kb25lIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMjEyNTI5KTtcbn1cbi50aHJlYWQtYWN0aW9uLWNhcmQgLnRocmVhZC1hY3Rpb24tZmVlZGJhY2sge1xuICBjb2xvcjogdmFyKC0tZGFuZ2VyLCAjYzAzOTJiKTtcbiAgZm9udC1zaXplOiAwLjgycmVtO1xuICBtYXJnaW4tdG9wOiAwLjRyZW07XG59XG4udGhyZWFkLWFjdGlvbi1jYXJkOmVtcHR5IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIE1vZGVybiBGb290ZXIgU3R5bGluZyAtIFByb2Zlc3Npb25hbCAmIENvbXByZWhlbnNpdmVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBWYXJpYWJsZXMgKi9cbjpyb290IHtcbiAgLS1mb290ZXItcHJpbWFyeTogIzBmMTcyYTtcbiAgLS1mb290ZXItc2Vjb25kYXJ5OiAjMWUyOTNiO1xuICAtLWZvb3Rlci1hY2NlbnQ6ICNmNDc0MjQ7XG4gIC0tZm9vdGVyLXRleHQ6ICM5NGEzYjg7XG4gIC0tZm9vdGVyLWhlYWRpbmc6ICNmMWY1Zjk7XG4gIC0tZm9vdGVyLWxpbms6ICNjYmQ1ZTE7XG4gIC0tZm9vdGVyLWxpbmstaG92ZXI6ICNmZmZmZmY7XG4gIC0tZm9vdGVyLWJvcmRlcjogIzMzNDE1NTtcbiAgLS1ncmFkaWVudC1mb290ZXI6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwZjE3MmEgMCUsICMxZTI5M2IgMTAwJSk7XG4gIC0tc2hhZG93LWZvb3RlcjogMCAtNHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4ubW9kZXJuLWZvb3RlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWdyYWRpZW50LWZvb3Rlcik7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1mb290ZXItYm9yZGVyKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWZvb3Rlcik7XG4gIG1hcmdpbi10b3A6IGF1dG87XG59XG5cbi5mb290ZXItY29udGVudCB7XG4gIHBhZGRpbmc6IDRyZW0gMCAycmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5mb290ZXItbWFpbiB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMmZyIDFmciAxZnIgMS41ZnI7XG4gIGdhcDogM3JlbTtcbiAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjAwcHgpIHtcbiAgLmZvb3Rlci1tYWluIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDJmciAxZnIgMWZyIDEuNWZyO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkycHgpIHtcbiAgLmZvb3Rlci1tYWluIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgZ2FwOiAycmVtO1xuICB9XG4gIC5mb290ZXItbWFpbiAuZm9vdGVyLWJyYW5kIHtcbiAgICBncmlkLWNvbHVtbjogMS8tMTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc2cHgpIHtcbiAgLmZvb3Rlci1tYWluIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBnYXA6IDJyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbi8qIEJyYW5kIFNlY3Rpb24gKi9cbi5mb290ZXItYnJhbmQgLmJyYW5kLWxvZ28ge1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG59XG4uZm9vdGVyLWJyYW5kIC5icmFuZC1sb2dvIGEge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG59XG4uZm9vdGVyLWJyYW5kIC5icmFuZC1sb2dvIGE6aG92ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xufVxuLmZvb3Rlci1icmFuZCAuYnJhbmQtbG9nbyBpbWcge1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMS4yKTtcbn1cbi5mb290ZXItYnJhbmQgLmJyYW5kLXRhZ2xpbmUge1xuICBjb2xvcjogdmFyKC0tZm9vdGVyLXRleHQpO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIG1heC13aWR0aDogMzAwcHg7XG59XG4uZm9vdGVyLWJyYW5kIC5icmFuZC1jb250YWN0IC5jb250YWN0LWluZm8ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNzVyZW07XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc2cHgpIHtcbiAgLmZvb3Rlci1icmFuZCAuYnJhbmQtY29udGFjdCAuY29udGFjdC1pbmZvIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG59XG4uZm9vdGVyLWJyYW5kIC5icmFuZC1jb250YWN0IC5jb250YWN0LWluZm8gLmNvbnRhY3QtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbiAgY29sb3I6IHZhcigtLWZvb3Rlci1saW5rKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4uZm9vdGVyLWJyYW5kIC5icmFuZC1jb250YWN0IC5jb250YWN0LWluZm8gLmNvbnRhY3QtaXRlbTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1mb290ZXItYWNjZW50KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDRweCk7XG59XG4uZm9vdGVyLWJyYW5kIC5icmFuZC1jb250YWN0IC5jb250YWN0LWluZm8gLmNvbnRhY3QtaXRlbSBpIHtcbiAgZm9udC1zaXplOiAxLjFyZW07XG4gIGNvbG9yOiB2YXIoLS1mb290ZXItYWNjZW50KTtcbiAgd2lkdGg6IDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyogRm9vdGVyIFNlY3Rpb25zICovXG4uZm9vdGVyLXNlY3Rpb24gLnNlY3Rpb24tdGl0bGUge1xuICBjb2xvcjogdmFyKC0tZm9vdGVyLWhlYWRpbmcpO1xuICBmb250LXNpemU6IDEuMnJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZm9vdGVyLXNlY3Rpb24gLnNlY3Rpb24tdGl0bGU6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC04cHg7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDNweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tZm9vdGVyLWFjY2VudCk7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzZweCkge1xuICAuZm9vdGVyLXNlY3Rpb24gLnNlY3Rpb24tdGl0bGUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuZm9vdGVyLXNlY3Rpb24gLnNlY3Rpb24tdGl0bGU6OmFmdGVyIHtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB9XG59XG4uZm9vdGVyLXNlY3Rpb24gLmZvb3Rlci1saW5rcyB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cbi5mb290ZXItc2VjdGlvbiAuZm9vdGVyLWxpbmtzIGxpIHtcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbn1cbi5mb290ZXItc2VjdGlvbiAuZm9vdGVyLWxpbmtzIGxpIGEge1xuICBjb2xvcjogdmFyKC0tZm9vdGVyLWxpbmspO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uZm9vdGVyLXNlY3Rpb24gLmZvb3Rlci1saW5rcyBsaSBhOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWZvb3Rlci1saW5rLWhvdmVyKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDRweCk7XG59XG4uZm9vdGVyLXNlY3Rpb24gLmZvb3Rlci1saW5rcyBsaSBhOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IC0xMnB4O1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICB3aWR0aDogNHB4O1xuICBoZWlnaHQ6IDRweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tZm9vdGVyLWFjY2VudCk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG59XG4uZm9vdGVyLXNlY3Rpb24gLmZvb3Rlci1saW5rcyBsaSBhOmhvdmVyOjpiZWZvcmUge1xuICBvcGFjaXR5OiAxO1xufVxuXG4vKiBGb290ZXIgQ1RBIFNlY3Rpb24gKi9cbi5mb290ZXItY3RhIC5jdGEtdGV4dCB7XG4gIGNvbG9yOiB2YXIoLS1mb290ZXItdGV4dCk7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuLmZvb3Rlci1jdGEgLm5ld3NsZXR0ZXItZm9ybSB7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbn1cbi5mb290ZXItY3RhIC5uZXdzbGV0dGVyLWZvcm0gLmlucHV0LWdyb3VwIC5tZHVpLWlucHV0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1mb290ZXItYm9yZGVyKTtcbiAgY29sb3I6IHZhcigtLWZvb3Rlci1saW5rKTtcbn1cbi5mb290ZXItY3RhIC5uZXdzbGV0dGVyLWZvcm0gLmlucHV0LWdyb3VwIC5tZHVpLWlucHV0OjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB2YXIoLS1mb290ZXItdGV4dCk7XG59XG4uZm9vdGVyLWN0YSAubmV3c2xldHRlci1mb3JtIC5pbnB1dC1ncm91cCAubWR1aS1pbnB1dDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZm9vdGVyLWFjY2VudCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG59XG4uZm9vdGVyLWN0YSAubmV3c2xldHRlci1mb3JtIC5pbnB1dC1ncm91cCAubWR1aS1idG4ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1mb290ZXItYWNjZW50KSAwJSwgI2U2NWExZiAxMDAlKTtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4uZm9vdGVyLWN0YSAubmV3c2xldHRlci1mb3JtIC5pbnB1dC1ncm91cCAubWR1aS1idG46aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE1cHggcmdiYSgyNDQsIDExNiwgMzYsIDAuMyk7XG59XG4uZm9vdGVyLWN0YSAuZm9vdGVyLWd1YXJhbnRlZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBjb2xvcjogdmFyKC0tZm9vdGVyLXRleHQpO1xuICBmb250LXNpemU6IDAuODVyZW07XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc2cHgpIHtcbiAgLmZvb3Rlci1jdGEgLmZvb3Rlci1ndWFyYW50ZWUge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG59XG4uZm9vdGVyLWN0YSAuZm9vdGVyLWd1YXJhbnRlZSBpIHtcbiAgY29sb3I6ICMxMGI5ODE7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cblxuLyogU29jaWFsIExpbmtzICovXG4uc29jaWFsLWxpbmtzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxcmVtO1xuICBtYXJnaW4tdG9wOiAycmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NnB4KSB7XG4gIC5zb2NpYWwtbGlua3Mge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG59XG4uc29jaWFsLWxpbmtzIGEge1xuICB3aWR0aDogNDRweDtcbiAgaGVpZ2h0OiA0NHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWZvb3Rlci1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLWZvb3Rlci1saW5rKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xufVxuLnNvY2lhbC1saW5rcyBhOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tZm9vdGVyLWFjY2VudCk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpO1xuICBib3gtc2hhZG93OiAwIDhweCAyMHB4IHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjMpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWZvb3Rlci1hY2NlbnQpO1xufVxuLnNvY2lhbC1saW5rcyBhIGkge1xuICBmb250LXNpemU6IDEuMnJlbTtcbn1cblxuLyogRm9vdGVyIEJvdHRvbSAqL1xuLmZvb3Rlci1ib3R0b20ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmctdG9wOiAycmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZm9vdGVyLWJvcmRlcik7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmZvb3Rlci1ib3R0b20ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxLjVyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbi5mb290ZXItbGVnYWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDJyZW07XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmZvb3Rlci1sZWdhbCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDFyZW07XG4gIH1cbn1cbi5mb290ZXItbGVnYWwgcCB7XG4gIGNvbG9yOiB2YXIoLS1mb290ZXItdGV4dCk7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBtYXJnaW46IDA7XG59XG4uZm9vdGVyLWxlZ2FsIC5sZWdhbC1saW5rcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMXJlbTtcbn1cbi5mb290ZXItbGVnYWwgLmxlZ2FsLWxpbmtzIGEge1xuICBjb2xvcjogdmFyKC0tZm9vdGVyLWxpbmspO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2U7XG59XG4uZm9vdGVyLWxlZ2FsIC5sZWdhbC1saW5rcyBhOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWZvb3Rlci1hY2NlbnQpO1xufVxuLmZvb3Rlci1sZWdhbCAubGVnYWwtbGlua3MgLnNlcGFyYXRvciB7XG4gIGNvbG9yOiB2YXIoLS1mb290ZXItYm9yZGVyKTtcbiAgZm9udC1zaXplOiAwLjhyZW07XG59XG5cbi5mb290ZXItYmFkZ2UgLmJhZGdlLWNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNzVyZW07XG4gIGJhY2tncm91bmQ6IHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjEpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICBwYWRkaW5nOiA4cHggMjBweDtcbiAgY29sb3I6IHZhcigtLWZvb3Rlci1hY2NlbnQpO1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5mb290ZXItYmFkZ2UgLmJhZGdlLWNvbnRlbnQgaSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgYW5pbWF0aW9uOiBwdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cbi5mb290ZXItYmFkZ2UgLmJhZGdlLWNvbnRlbnQgc3BhbiB7XG4gIGNvbG9yOiB2YXIoLS1mb290ZXItaGVhZGluZyk7XG59XG5cbi8qIEJyYW5kIFJldmlld3MgSW50ZWdyYXRpb24gKi9cbi5icmFuZC1yZXZpZXdzIHtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NnB4KSB7XG4gIC5icmFuZC1yZXZpZXdzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG59XG5cbi8qIEJCQiBCYWRnZSBpbiBGb290ZXIgQm90dG9tICovXG4uZm9vdGVyLWJiYi1iYWRnZSAuYmJiLWNvbXBhY3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNzVyZW07XG4gIGJhY2tncm91bmQ6IHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjEpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuLmZvb3Rlci1iYmItYmFkZ2UgLmJiYi1jb21wYWN0OmhvdmVyIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNDQsIDExNiwgMzYsIDAuMTUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgyNDQsIDExNiwgMzYsIDAuMik7XG59XG4uZm9vdGVyLWJiYi1iYWRnZSAuYmJiLWNvbXBhY3QgLmJiYi1zZWFsLXNtYWxsIHtcbiAgd2lkdGg6IDYwcHg7XG4gIGhlaWdodDogYXV0bztcbn1cbi5mb290ZXItYmJiLWJhZGdlIC5iYmItY29tcGFjdCAuYmJiLWluZm8ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cbi5mb290ZXItYmJiLWJhZGdlIC5iYmItY29tcGFjdCAuYmJiLWluZm8gLmJiYi1yYXRpbmctY29tcGFjdCB7XG4gIGNvbG9yOiB2YXIoLS1mb290ZXItaGVhZGluZyk7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuLmZvb3Rlci1iYmItYmFkZ2UgLmJiYi1jb21wYWN0IC5iYmItaW5mbyAuYmJiLXN0YXJzLWNvbXBhY3Qge1xuICBjb2xvcjogI2ZmZDcwMDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xufVxuLmZvb3Rlci1iYmItYmFkZ2UgLmJiYi1jb21wYWN0IC5iYmItaW5mbyAuYmJiLXN0YXJzLWNvbXBhY3QgaSB7XG4gIG1hcmdpbi1yaWdodDogMXB4O1xufVxuXG4vKiBGb290ZXIgU2Vjb25kYXJ5IFNlY3Rpb24gKi9cbi5mb290ZXItc2Vjb25kYXJ5IHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbiAgcGFkZGluZy10b3A6IDEuNXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWZvb3Rlci1ib3JkZXIpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5mb290ZXItc2Vjb25kYXJ5IC5kLWZsZXgge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxcmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuLmZvb3Rlci1zZWNvbmRhcnkgLmZvb3Rlci1hY2NvbGFkZXMgLmljb24taW50ZXJhY3Rpb24ge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xufVxuLmZvb3Rlci1zZWNvbmRhcnkgLmZvb3Rlci1hY2NvbGFkZXMgLmljb24taW50ZXJhY3Rpb246aG92ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xufVxuLmZvb3Rlci1zZWNvbmRhcnkgLmVtcGxveWVlLWxvZ2luIC50aW55LWJ1dHRvbiB7XG4gIG9wYWNpdHk6IDAuNjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG59XG4uZm9vdGVyLXNlY29uZGFyeSAuZW1wbG95ZWUtbG9naW4gLnRpbnktYnV0dG9uOmhvdmVyIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLyogQW5pbWF0aW9ucyAqL1xuQGtleWZyYW1lcyBwdWxzZSB7XG4gIDAlLCAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICB9XG59XG4vKiBSZXNwb25zaXZlIGFkanVzdG1lbnRzICovXG5AbWVkaWEgKG1heC13aWR0aDogNTc2cHgpIHtcbiAgLmZvb3Rlci1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAzcmVtIDAgMS41cmVtO1xuICB9XG4gIC5mb290ZXItbWFpbiB7XG4gICAgZ2FwOiAycmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIH1cbiAgLmJyYW5kLXRhZ2xpbmUge1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgfVxufVxuLyogUHJpbnQgc3R5bGVzICovXG5AbWVkaWEgcHJpbnQge1xuICAubW9kZXJuLWZvb3RlciB7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuICB9XG4gIC5zb2NpYWwtbGlua3MsXG4gIC5mb290ZXItY3RhIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4vKiBIaWdoIGNvbnRyYXN0IG1vZGUgKi9cbkBtZWRpYSAocHJlZmVycy1jb250cmFzdDogaGlnaCkge1xuICA6cm9vdCB7XG4gICAgLS1mb290ZXItcHJpbWFyeTogIzAwMDtcbiAgICAtLWZvb3Rlci10ZXh0OiAjZmZmO1xuICAgIC0tZm9vdGVyLWxpbms6ICNmZmY7XG4gICAgLS1mb290ZXItYm9yZGVyOiAjZmZmO1xuICB9XG59XG4ub3JpZW50YXRpb24tYmFkZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjM1cmVtO1xufVxuLm9yaWVudGF0aW9uLWJhZGdlIC5vcmllbnRhdGlvbi1jb21wYXNzIHtcbiAgZmxleDogbm9uZTtcbn1cblxuLm9yaWVudGF0aW9uLWNoaXBzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMzVyZW07XG59XG4ub3JpZW50YXRpb24tY2hpcHMgLmNoaXBzLWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICBvcGFjaXR5OiAwLjY7XG4gIG1hcmdpbi1yaWdodDogMC4xNXJlbTtcbn1cblxuLm9yaWVudGF0aW9uLWNoaXAge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjNyZW07XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC43cmVtO1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMzMzMpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91ciwgcmdiYSgwLCAwLCAwLCAwLjA0KSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZSwgYmFja2dyb3VuZCAwLjE1cyBlYXNlO1xufVxuLm9yaWVudGF0aW9uLWNoaXA6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMzMzMpO1xuICBib3JkZXItY29sb3I6ICNmNDc0MjQ7XG59XG4ub3JpZW50YXRpb24tY2hpcCAuY2hpcC1jb3VudCB7XG4gIGZvbnQtc2l6ZTogMC42OHJlbTtcbiAgb3BhY2l0eTogMC42O1xufVxuLm9yaWVudGF0aW9uLWNoaXAuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI2Y0NzQyNDtcbiAgYm9yZGVyLWNvbG9yOiAjZjQ3NDI0O1xuICBjb2xvcjogI2ZmZjtcbn1cbi5vcmllbnRhdGlvbi1jaGlwLmFjdGl2ZSAuY2hpcC1jb3VudCB7XG4gIG9wYWNpdHk6IDAuODU7XG59XG5cbiNtYXAtZmFjaW5nLWNoaXBzLnN5c3RlbS1tYXAtY2hpcHMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNDBweDtcbiAgbGVmdDogMTJweDtcbiAgei1pbmRleDogMTA7XG4gIHdpZHRoOiA0MDBweDtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAyNHB4KTtcbiAgcGFkZGluZzogOHB4IDEycHg7XG4gIHJvdy1nYXA6IDAuM3JlbTtcbiAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMjIpO1xufVxuXG4uc2FsLXByb2QtcG9wdXAgLm1hcGxpYnJlZ2wtcG9wdXAtY29udGVudCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gIHBhZGRpbmc6IDhweCAxMXB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi5zYWxfX2ljb24tYnRuLmlzLWFjdGl2ZSB7XG4gIGNvbG9yOiAjZjQ3NDI0O1xufVxuXG4jZmxvYXRpbmctaW5mby5zeXN0ZW0tbWFwLXN1bW1hcnkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTJweDtcbiAgcmlnaHQ6IDEycHg7XG4gIHotaW5kZXg6IDEwO1xuICB3aWR0aDogY2xhbXAoMjgwcHgsIDI1JSwgMzYwcHgpO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSAyNHB4KTtcbiAgcGFkZGluZzogMC42NXJlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZmxleC1ncm93OiAwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4yMik7XG59XG4jZmxvYXRpbmctaW5mby5zeXN0ZW0tbWFwLXN1bW1hcnkgaDEge1xuICBtYXJnaW46IDAgMCAwLjU1cmVtO1xuICBmb250LXNpemU6IDAuOXJlbSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMS4yNTtcbn1cbiNmbG9hdGluZy1pbmZvLnN5c3RlbS1tYXAtc3VtbWFyeSAuc3lzdGVtLW1hcC1zdW1tYXJ5X19wcm9kdWN0aW9uLFxuI2Zsb2F0aW5nLWluZm8uc3lzdGVtLW1hcC1zdW1tYXJ5IC5zeXN0ZW0tbWFwLXN1bW1hcnlfX21ldHJpY3Mge1xuICBkaXNwbGF5OiBncmlkICFpbXBvcnRhbnQ7XG4gIGdhcDogMC40cmVtICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuI2Zsb2F0aW5nLWluZm8uc3lzdGVtLW1hcC1zdW1tYXJ5IC5zeXN0ZW0tbWFwLXN1bW1hcnlfX3Byb2R1Y3Rpb24ge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7XG59XG4jZmxvYXRpbmctaW5mby5zeXN0ZW0tbWFwLXN1bW1hcnkgLnN5c3RlbS1tYXAtc3VtbWFyeV9fbWV0cmljcyB7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcbn1cbiNmbG9hdGluZy1pbmZvLnN5c3RlbS1tYXAtc3VtbWFyeSAubGlnaHRib3JkZXIge1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IDA7XG4gIHBhZGRpbmc6IDAuNDVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbn1cbiNmbG9hdGluZy1pbmZvLnN5c3RlbS1tYXAtc3VtbWFyeSAubGlnaHRib3JkZXIgLmZzLTUge1xuICBtYXJnaW4tYm90dG9tOiAwLjJyZW0gIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAwLjgycmVtICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG4jZmxvYXRpbmctaW5mby5zeXN0ZW0tbWFwLXN1bW1hcnkgLnN2Zy1sYXJnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBtYXJnaW46IDAuM3JlbSBhdXRvIDA7XG59XG4jZmxvYXRpbmctaW5mby5zeXN0ZW0tbWFwLXN1bW1hcnkgPiBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgb3BhY2l0eTogMC43Mjtcbn1cblxudWwuaW1wYWN0LXRhYnMge1xuICBnYXA6IDAuNHJlbTtcbn1cbnVsLmltcGFjdC10YWJzIC5uYXYtbGluayB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzMzMyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyLCByZ2JhKDAsIDAsIDAsIDAuMDQpKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RlZTJlNik7XG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHBhZGRpbmc6IDAuNDVyZW0gMS4xcmVtO1xufVxudWwuaW1wYWN0LXRhYnMgLm5hdi1saW5rOjphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG51bC5pbXBhY3QtdGFicyAubmF2LWxpbms6aG92ZXIge1xuICBib3JkZXItY29sb3I6ICNmNDc0MjQ7XG59XG51bC5pbXBhY3QtdGFicyAubmF2LWxpbmsuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI2Y0NzQyNDtcbiAgYm9yZGVyLWNvbG9yOiAjZjQ3NDI0O1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLm9yaWVudGF0aW9uLWN1cnZlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBnYXA6IDZweDtcbiAgaGVpZ2h0OiAxOTBweDtcbiAgd2lkdGg6IDEwMCU7XG59XG4ub3JpZW50YXRpb24tY3VydmUgLmN1cnZlLWNvbCB7XG4gIGZsZXg6IDEgMSAwO1xuICBtaW4td2lkdGg6IDA7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZ2FwOiA0cHg7XG59XG4ub3JpZW50YXRpb24tY3VydmUgLmN1cnZlLXZhbHVlIHtcbiAgZm9udC1zaXplOiAwLjY4cmVtO1xuICBvcGFjaXR5OiAwLjY1O1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xufVxuLm9yaWVudGF0aW9uLWN1cnZlIC5jdXJ2ZS1iYXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA0NHB4O1xuICBiYWNrZ3JvdW5kOiAjZjQ3NDI0O1xuICBib3JkZXItcmFkaXVzOiA0cHggNHB4IDAgMDtcbiAgbWluLWhlaWdodDogMnB4O1xufVxuLm9yaWVudGF0aW9uLWN1cnZlIC5jdXJ2ZS1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi5zZWFzb24tZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMXJlbTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5zZWFzb24tcm93IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA2NHB4IDFmcjtcbiAgYWxpZ24taXRlbXM6IGVuZDtcbiAgZ2FwOiAwLjc1cmVtO1xufVxuLnNlYXNvbi1yb3cgLnNlYXNvbi1uYW1lIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMS4xcmVtO1xufVxuLnNlYXNvbi1yb3cgLnNlYXNvbi1iYXJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBnYXA6IDRweDtcbiAgaGVpZ2h0OiA5MnB4O1xufVxuLnNlYXNvbi1yb3cgLnNlYXNvbi1jb2wge1xuICBmbGV4OiAxIDEgMDtcbiAgbWluLXdpZHRoOiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGdhcDogM3B4O1xufVxuLnNlYXNvbi1yb3cgLnNlYXNvbi1iYXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAyNnB4O1xuICBiYWNrZ3JvdW5kOiAjZjQ3NDI0O1xuICBvcGFjaXR5OiAwLjg7XG4gIGJvcmRlci1yYWRpdXM6IDNweCAzcHggMCAwO1xuICBtaW4taGVpZ2h0OiAxcHg7XG59XG4uc2Vhc29uLXJvdyAuc2Vhc29uLWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjYycmVtO1xuICBvcGFjaXR5OiAwLjU1O1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4ub3JpZW50YXRpb24tcm9zZS13cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4ub3JpZW50YXRpb24tcm9zZS13cmFwIHN2ZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLm9yaWVudGF0aW9uLXJvc2Utd3JhcCAucm9zZS1yaW5nIHtcbiAgZmlsbDogbm9uZTtcbiAgc3Ryb2tlOiB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbiAgc3Ryb2tlLXdpZHRoOiAxO1xufVxuLm9yaWVudGF0aW9uLXJvc2Utd3JhcCAucm9zZS13ZWRnZSB7XG4gIGZpbGw6ICNmNDc0MjQ7XG4gIHN0cm9rZTogdmFyKC0tY2FyZC1jb2xvdXIsICNmZmYpO1xuICBzdHJva2Utd2lkdGg6IDI7XG59XG4ub3JpZW50YXRpb24tcm9zZS13cmFwIC5yb3NlLWxhYmVsIHtcbiAgZmlsbDogdmFyKC0tdGV4dC1jb2xvdXIsICMzMzMpO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLm9yaWVudGF0aW9uLXlpZWxkLXJvd3Mge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDAuNjVyZW07XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ub3JpZW50YXRpb24teWllbGQtcm93IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1MnB4IDFmciAxNTBweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjY1cmVtO1xufVxuLm9yaWVudGF0aW9uLXlpZWxkLXJvdy5vcmllbnRhdGlvbi15aWVsZC1yb3ctLXdpZGUge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDE1MHB4IDFmciAxMTBweDtcbn1cbi5vcmllbnRhdGlvbi15aWVsZC1yb3cgLnlpZWxkLXNlY3RvciB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4xNTtcbn1cbi5vcmllbnRhdGlvbi15aWVsZC1yb3cgLnlpZWxkLXNlY3RvciBzbWFsbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXdlaWdodDogNTAwO1xuICBvcGFjaXR5OiAwLjU1O1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xufVxuLm9yaWVudGF0aW9uLXlpZWxkLXJvdyAueWllbGQtdHJhY2sge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMThweDtcbn1cbi5vcmllbnRhdGlvbi15aWVsZC1yb3cgLnlpZWxkLWZpbGwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwIGF1dG8gMCAwO1xuICBiYWNrZ3JvdW5kOiAjZjQ3NDI0O1xuICBib3JkZXItcmFkaXVzOiAwIDRweCA0cHggMDtcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbn1cbi5vcmllbnRhdGlvbi15aWVsZC1yb3cgLnlpZWxkLXZhbHVlIHtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4ub3JpZW50YXRpb24teWllbGQtcm93IC55aWVsZC12YWx1ZSBzbWFsbCB7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLnNlY3Rpb24taW50cm8td3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG4uc2VjdGlvbi1pbnRyby13cmFwcGVyLnNlY3Rpb24taW50cm8td2l0aC1iZyB7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgcGFkZGluZzogMnJlbTtcbiAgbWluLWhlaWdodDogMjAwcHg7XG59XG5cbi5zZWN0aW9uLWludHJvLW1hc2sge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5zZWN0aW9uLWludHJvLWNvbnRlbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG59XG5cbi5zZWN0aW9uLWludHJvLW1lZGlhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uc2VjdGlvbi1pbnRyby1tZWRpYSBpbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gIG1heC1oZWlnaHQ6IDQwMHB4O1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cbi5zZWN0aW9uLWludHJvLW1lZGlhIHZpZGVvIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgbWF4LWhlaWdodDogNDAwcHg7XG59XG4uc2VjdGlvbi1pbnRyby1tZWRpYSAucmF0aW8ge1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gIC5zZWN0aW9uLWludHJvLXdyYXBwZXIuc2VjdGlvbi1pbnRyby13aXRoLWJnIHtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG4gIC5zZWN0aW9uLWludHJvLXdyYXBwZXIgLnNlY3Rpb24taW50cm8tbWVkaWEge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgb3JkZXI6IDIgIWltcG9ydGFudDtcbiAgfVxufVxuLnNlY3Rpb24taW50cm8td2l0aC1iZyAuc2VjdGlvbi1pbnRyby1jb250ZW50IGgyLCAuc2VjdGlvbi1pbnRyby13aXRoLWJnIC5zZWN0aW9uLWludHJvLWNvbnRlbnQgcCwgLnNlY3Rpb24taW50cm8td2l0aC1iZyAuc2VjdGlvbi1pbnRyby1jb250ZW50IC5ib2R5IHtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbltkYXRhLWNvbnRyb2xsZXI9c2VjdGlvbi1jb25maWddIC5kcm9wZG93biB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbltkYXRhLWNvbnRyb2xsZXI9c2VjdGlvbi1jb25maWddIC5kcm9wZG93bi1tZW51IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIHJpZ2h0OiAwO1xuICBsZWZ0OiBhdXRvO1xuICBtYXJnaW4tdG9wOiA0cHg7XG4gIHotaW5kZXg6IDEwNTA7XG59XG5cbi5zZWN0aW9uLWVkaXQtbWVkaWEtcHJldmlldyAuc2VjdGlvbi1lZGl0LW1lZGlhLWNvbnRyb2xzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDhweDtcbiAgcmlnaHQ6IDhweDtcbiAgei1pbmRleDogMjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlO1xufVxuLnNlY3Rpb24tZWRpdC1tZWRpYS1wcmV2aWV3OmhvdmVyIC5zZWN0aW9uLWVkaXQtbWVkaWEtY29udHJvbHMsIC5zZWN0aW9uLWVkaXQtbWVkaWEtcHJldmlldzpmb2N1cy13aXRoaW4gLnNlY3Rpb24tZWRpdC1tZWRpYS1jb250cm9scyB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5ncmFwZXNqcy10ZW1wbGF0ZS1mb3JtIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4uZ3JhcGVzanMtZWRpdG9yLXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBoZWlnaHQ6IDEwMHZoO1xuICB3aWR0aDogMTAwdnc7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyLCAjZjBmMGYwKTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDEwNTA7XG59XG5cbi5ncmFwZXNqcy10b29sYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiA4cHggMTZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIsICNmZmYpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RlZTJlNik7XG4gIHotaW5kZXg6IDEwO1xuICBtaW4taGVpZ2h0OiA0OHB4O1xuICBnYXA6IDEycHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uZ3JhcGVzanMtdGl0bGUtaW5wdXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pbnB1dC1iYWNrZ3JvdW5kKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1pbnB1dC10ZXh0KSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1pbnB1dC1yYWRpdXMpICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMzRweCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgcGFkZGluZzogNHB4IDEwcHg7XG59XG4uZ3JhcGVzanMtdGl0bGUtaW5wdXQ6Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHZhcigtLWlucHV0LWZvY3VzLWJvcmRlcikgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1pbnB1dC1mb2N1cy1ib3JkZXIpIDEyLjUlLCB0cmFuc3BhcmVudCkgIWltcG9ydGFudDtcbn1cblxuLmdyYXBlc2pzLWVkaXRvci1ib2R5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleDogMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWluLWhlaWdodDogMDtcbn1cblxuLmdyYXBlc2pzLXBhbmVsLWxlZnQge1xuICB3aWR0aDogMjQwcHg7XG4gIG1pbi13aWR0aDogMjQwcHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91ciwgI2ZmZik7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpO1xufVxuLmdyYXBlc2pzLXBhbmVsLWxlZnQgLmdqcy1ibG9jay1jYXRlZ29yaWVzIC5nanMtYmxvY2stY2F0ZWdvcnkgLmdqcy10aXRsZSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzZjNzU3ZCk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbiAgb3BhY2l0eTogMC43O1xufVxuLmdyYXBlc2pzLXBhbmVsLWxlZnQgLmdqcy1ibG9jayB7XG4gIHdpZHRoOiBjYWxjKDUwJSAtIDhweCk7XG4gIG1pbi1oZWlnaHQ6IDYwcHg7XG4gIHBhZGRpbmc6IDhweDtcbiAgbWFyZ2luOiA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWlucHV0LXJhZGl1cywgNnB4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2U5ZWNlZik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWJhY2tncm91bmQsICNmOGY5ZmEpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMzMzMpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMgZWFzZTtcbiAgY3Vyc29yOiBncmFiO1xuICBmb250LXNpemU6IDAuN3JlbTtcbn1cbi5ncmFwZXNqcy1wYW5lbC1sZWZ0IC5nanMtYmxvY2s6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICM0Mjg1ZjQpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMTAlLCB2YXIoLS1pbnB1dC1iYWNrZ3JvdW5kLCAjZmZmKSk7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuLmdyYXBlc2pzLXBhbmVsLWxlZnQgLmdqcy1ibG9jazphY3RpdmUge1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuLmdyYXBlc2pzLXBhbmVsLWxlZnQgLmdqcy1ibG9jayAuZ2pzLWJsb2NrLWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbi5ncmFwZXNqcy1jYW52YXMtd3JhcHBlciB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmdyYXBlc2pzLWNhbnZhcy13cmFwcGVyICNnanMtZWRpdG9yIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uZ3JhcGVzanMtY2FudmFzLXdyYXBwZXIgLmdqcy1jdi1jYW52YXMge1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgdG9wOiAwICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDAgIWltcG9ydGFudDtcbn1cbi5ncmFwZXNqcy1jYW52YXMtd3JhcHBlciAuZ2pzLWZyYW1lLXdyYXBwZXIge1xuICBvdmVyZmxvdzogYXV0bztcbn1cbi5ncmFwZXNqcy1jYW52YXMtd3JhcHBlciAuZ2pzLWZyYW1lIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQge1xuICB3aWR0aDogMjYwcHg7XG4gIG1pbi13aWR0aDogMjYwcHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91ciwgI2ZmZik7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RlZTJlNik7XG59XG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgI2dqcy1zdHlsZXMtcGFuZWwsXG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgI2dqcy10cmFpdHMtcGFuZWwsXG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgI2dqcy1sYXllcnMtcGFuZWwge1xuICB3aWR0aDogMTAwJTtcbn1cbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAjZ2pzLXN0eWxlcy1wYW5lbCA+IGRpdixcbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAjZ2pzLXRyYWl0cy1wYW5lbCA+IGRpdixcbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAjZ2pzLWxheWVycy1wYW5lbCA+IGRpdiB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1zbS1zZWN0b3IgLmdqcy1zbS1zZWN0b3ItdGl0bGUge1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMzMzMpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RlZTJlNik7XG59XG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1zbS1zZWN0b3IgLmdqcy1zbS1wcm9wZXJ0aWVzIHtcbiAgcGFkZGluZzogOHB4IDEycHg7XG59XG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1maWVsZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlucHV0LWJhY2tncm91bmQpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlcikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0taW5wdXQtcmFkaXVzKSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgMC4xNXMgZWFzZS1pbi1vdXQ7XG59XG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1maWVsZDpmb2N1cy13aXRoaW4ge1xuICBib3JkZXItY29sb3I6IHZhcigtLWlucHV0LWZvY3VzLWJvcmRlcikgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1pbnB1dC1mb2N1cy1ib3JkZXIpIDEyLjUlLCB0cmFuc3BhcmVudCkgIWltcG9ydGFudDtcbn1cbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLWZpZWxkIGlucHV0LCAuZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1maWVsZCBzZWxlY3Qge1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBjb2xvcjogdmFyKC0taW5wdXQtdGV4dCkgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1maWVsZCBpbnB1dDo6cGxhY2Vob2xkZXIsIC5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLWZpZWxkIHNlbGVjdDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdmFyKC0taW5wdXQtcGxhY2Vob2xkZXIpICFpbXBvcnRhbnQ7XG59XG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1maWVsZCBzZWxlY3Qge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1zbS1jb21wb3NpdGUgLmdqcy1zbS1idG4sXG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1zbS1jb21wb3NpdGUgLmdqcy1maWVsZC1yYWRpby1pdGVtLFxuLmdyYXBlc2pzLXBhbmVsLXJpZ2h0IC5nanMtZmllbGQtcmFkaW8gLmdqcy1zbS1idG4sXG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1maWVsZC1yYWRpbyAuZ2pzLWZpZWxkLXJhZGlvLWl0ZW0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pbnB1dC1iYWNrZ3JvdW5kKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1pbnB1dC10ZXh0KSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIHBhZGRpbmc6IDRweCA4cHg7XG59XG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1zbS1jb21wb3NpdGUgLmdqcy1zbS1idG46Zmlyc3QtY2hpbGQsXG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1zbS1jb21wb3NpdGUgLmdqcy1maWVsZC1yYWRpby1pdGVtOmZpcnN0LWNoaWxkLFxuLmdyYXBlc2pzLXBhbmVsLXJpZ2h0IC5nanMtZmllbGQtcmFkaW8gLmdqcy1zbS1idG46Zmlyc3QtY2hpbGQsXG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1maWVsZC1yYWRpbyAuZ2pzLWZpZWxkLXJhZGlvLWl0ZW06Zmlyc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1pbnB1dC1yYWRpdXMsIDZweCkgMCAwIHZhcigtLWlucHV0LXJhZGl1cywgNnB4KSAhaW1wb3J0YW50O1xufVxuLmdyYXBlc2pzLXBhbmVsLXJpZ2h0IC5nanMtc20tY29tcG9zaXRlIC5nanMtc20tYnRuOmxhc3QtY2hpbGQsXG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1zbS1jb21wb3NpdGUgLmdqcy1maWVsZC1yYWRpby1pdGVtOmxhc3QtY2hpbGQsXG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1maWVsZC1yYWRpbyAuZ2pzLXNtLWJ0bjpsYXN0LWNoaWxkLFxuLmdyYXBlc2pzLXBhbmVsLXJpZ2h0IC5nanMtZmllbGQtcmFkaW8gLmdqcy1maWVsZC1yYWRpby1pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItcmFkaXVzOiAwIHZhcigtLWlucHV0LXJhZGl1cywgNnB4KSB2YXIoLS1pbnB1dC1yYWRpdXMsIDZweCkgMCAhaW1wb3J0YW50O1xufVxuLmdyYXBlc2pzLXBhbmVsLXJpZ2h0IC5nanMtc20tY29tcG9zaXRlIC5nanMtc20tYnRuLmdqcy1zbS1hY3RpdmUsXG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1zbS1jb21wb3NpdGUgLmdqcy1maWVsZC1yYWRpby1pdGVtLmFjdGl2ZSxcbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLXNtLWNvbXBvc2l0ZSBpbnB1dDpjaGVja2VkICsgbGFiZWwsXG4uZ3JhcGVzanMtcGFuZWwtcmlnaHQgLmdqcy1maWVsZC1yYWRpbyAuZ2pzLXNtLWJ0bi5nanMtc20tYWN0aXZlLFxuLmdyYXBlc2pzLXBhbmVsLXJpZ2h0IC5nanMtZmllbGQtcmFkaW8gLmdqcy1maWVsZC1yYWRpby1pdGVtLmFjdGl2ZSxcbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLWZpZWxkLXJhZGlvIGlucHV0OmNoZWNrZWQgKyBsYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91ciwgI2ZmZikgIWltcG9ydGFudDtcbn1cbi5ncmFwZXNqcy1wYW5lbC1yaWdodCAuZ2pzLWZpZWxkLWNvbG9yIC5nanMtZmllbGQtY29sb3JwIHtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0taW5wdXQtcmFkaXVzLCA0cHgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uc3AtY29udGFpbmVyOm5vdCguc3AtZmxhdCkge1xuICBwb3NpdGlvbjogZml4ZWQgIWltcG9ydGFudDtcbn1cblxuLmdyYXBlc2pzLWVkaXRvci13cmFwcGVyIC5nanMtc20tbGFiZWwge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC43O1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbn1cbi5ncmFwZXNqcy1lZGl0b3Itd3JhcHBlciAuZ2pzLXRydC10cmFpdCB7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xufVxuLmdyYXBlc2pzLWVkaXRvci13cmFwcGVyIC5nanMtdHJ0LXRyYWl0IC5nanMtbGFiZWwge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC43O1xufVxuLmdyYXBlc2pzLWVkaXRvci13cmFwcGVyIC5nanMtY2xtLXRhZ3Mge1xuICBwYWRkaW5nOiA4cHggMTJweDtcbn1cbi5ncmFwZXNqcy1lZGl0b3Itd3JhcHBlciAuZ2pzLWNsbS10YWdzIC5nanMtY2xtLXRhZyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyLCAjZmZmKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0taW5wdXQtcmFkaXVzLCA0cHgpO1xuICBwYWRkaW5nOiAycHggOHB4O1xuICBmb250LXNpemU6IDAuN3JlbTtcbn1cbi5ncmFwZXNqcy1lZGl0b3Itd3JhcHBlciAuZ2pzLWNsbS10YWdzICNnanMtY2xtLW5ldyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlucHV0LWJhY2tncm91bmQpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlcikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0taW5wdXQtcmFkaXVzKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0taW5wdXQtdGV4dCkgIWltcG9ydGFudDtcbn1cbi5ncmFwZXNqcy1lZGl0b3Itd3JhcHBlciAuZ2pzLWNsbS1maWVsZCBzZWxlY3QsXG4uZ3JhcGVzanMtZWRpdG9yLXdyYXBwZXIgLmdqcy1jbG0tc2VsZWN0IHNlbGVjdCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWlucHV0LWJhY2tncm91bmQpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlcikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0taW5wdXQtcmFkaXVzKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0taW5wdXQtdGV4dCkgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgcGFkZGluZzogMnB4IDhweDtcbn1cblxuLmdqcy1vbmUtYmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91ciwgI2ZmZikgIWltcG9ydGFudDtcbn1cblxuLmdqcy10d28tY29sb3Ige1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMzMzMpICFpbXBvcnRhbnQ7XG59XG5cbi5nanMtdGhyZWUtYmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjNDI4NWY0KSAhaW1wb3J0YW50O1xufVxuXG4uZ2pzLWZvdXItY29sb3IsXG4uZ2pzLWZvdXItY29sb3ItaDpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjNDI4NWY0KSAhaW1wb3J0YW50O1xufVxuXG4uZ2pzLXNlbGVjdGVkIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICM0Mjg1ZjQpICFpbXBvcnRhbnQ7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xufVxuXG4uZ2pzLWhvdmVyZWQge1xuICBvdXRsaW5lOiAxcHggZGFzaGVkIHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICM0Mjg1ZjQpICFpbXBvcnRhbnQ7XG59XG5cbi5nanMtdG9vbGJhciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICM0Mjg1ZjQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1pbnB1dC1yYWRpdXMsIDRweCk7XG4gIHBhZGRpbmc6IDJweDtcbn1cbi5nanMtdG9vbGJhciAuZ2pzLXRvb2xiYXItaXRlbSB7XG4gIHBhZGRpbmc6IDRweCA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyLCAjZmZmKTtcbn1cbi5nanMtdG9vbGJhciAuZ2pzLXRvb2xiYXItaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cblxuLmdqcy1ydGUtdG9vbGJhciB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWlucHV0LXJhZGl1cywgNnB4KTtcbiAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91ciwgI2ZmZik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpO1xuICBwYWRkaW5nOiA0cHg7XG59XG5cbi5nanMtbWRsLWNvbnRhaW5lciB7XG4gIHotaW5kZXg6IDExMDAgIWltcG9ydGFudDtcbn1cblxuLmdqcy1idG4tcHJpbSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIsICNmZmYpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1pbnB1dC1yYWRpdXMsIDZweCkgIWltcG9ydGFudDtcbiAgcGFkZGluZzogOHB4IDE2cHggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDAuODVyZW07XG59XG4uZ2pzLWJ0bi1wcmltOmhvdmVyIHtcbiAgb3BhY2l0eTogMC45O1xufVxuXG4uZ2pzLWN1c3RvbS1tb2RhbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB6LWluZGV4OiAxMjAwO1xufVxuLmdqcy1jdXN0b20tbW9kYWwuYWN0aXZlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uZ2pzLWN1c3RvbS1tb2RhbCAuZ2pzLWFpLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcbn1cbi5nanMtY3VzdG9tLW1vZGFsIC5nanMtYWktZGlhbG9nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91ciwgI2ZmZik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMsIDhweCk7XG4gIHdpZHRoOiA1NjBweDtcbiAgbWF4LXdpZHRoOiA5MHZ3O1xuICBtYXgtaGVpZ2h0OiA4MHZoO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBib3gtc2hhZG93OiAwIDhweCAzMnB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cbi5nanMtY3VzdG9tLW1vZGFsIC5nanMtYWktaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAxNHB4IDIwcHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbn1cbi5nanMtY3VzdG9tLW1vZGFsIC5nanMtYWktYm9keSB7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGZsZXg6IDE7XG59XG4uZ2pzLWN1c3RvbS1tb2RhbCAuZ2pzLWFpLWZvb3RlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiAxNHB4IDIwcHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbn1cbi5nanMtY3VzdG9tLW1vZGFsIC5nanMtYWktdGhpbmtpbmctaWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1hY2NlbnQtY29sb3VyLCAjNmM1Y2U3KTtcbiAgYW5pbWF0aW9uOiBnanMtYWktdGhpbmtpbmctcHVsc2UgMS42cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cbi5nanMtY3VzdG9tLW1vZGFsIC5nanMtYWktdGhpbmtpbmctZG90cyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWluLXdpZHRoOiAxLjJlbTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuQGtleWZyYW1lcyBnanMtYWktdGhpbmtpbmctcHVsc2Uge1xuICAwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKSByb3RhdGUoLTRkZWcpO1xuICAgIG9wYWNpdHk6IDAuNzU7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMTIpIHJvdGF0ZSg0ZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG4uZ2pzLXRydC10cmFpdDpoYXMoLnBsLWljb24tcGlja2VyKSB7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaCAhaW1wb3J0YW50O1xuICBnYXA6IDZweDtcbn1cbi5nanMtdHJ0LXRyYWl0OmhhcygucGwtaWNvbi1waWNrZXIpIC5nanMtbGFiZWwtd3JwLFxuLmdqcy10cnQtdHJhaXQ6aGFzKC5wbC1pY29uLXBpY2tlcikgLmdqcy1sYWJlbCB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBmbGV4OiAwIDAgYXV0byAhaW1wb3J0YW50O1xufVxuLmdqcy10cnQtdHJhaXQ6aGFzKC5wbC1pY29uLXBpY2tlcikgLmdqcy1maWVsZC13cnAsXG4uZ2pzLXRydC10cmFpdDpoYXMoLnBsLWljb24tcGlja2VyKSAuZ2pzLWZpZWxkIHtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGZsZXg6IDEgMSBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi5wbC1pY29uLXBpY2tlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogOHB4O1xuICB3aWR0aDogMTAwJTtcbn1cbi5wbC1pY29uLXBpY2tlciAucGwtaWNvbi1zZWFyY2gge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogNnB4IDEwcHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0taW5wdXQtYmFja2dyb3VuZCwgIzFmMWYyNCk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgI2U4ZThlYik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICMzYTNhNDApO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ucGwtaWNvbi1waWNrZXIgLnBsLWljb24tc2VhcmNoOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjNGE5ZWZmKTtcbn1cbi5wbC1pY29uLXBpY2tlciAucGwtaWNvbi1ncmlkIHtcbiAgbWF4LWhlaWdodDogMjYwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmctcmlnaHQ6IDRweDtcbn1cbi5wbC1pY29uLXBpY2tlciAucGwtaWNvbi1ncm91cCB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuOHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCwgIzhhOGE5Mik7XG4gIG1hcmdpbjogOHB4IDAgNHB4O1xufVxuLnBsLWljb24tcGlja2VyIC5wbC1pY29uLXJvdyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDYsIDFmcik7XG4gIGdhcDogNHB4O1xufVxuLnBsLWljb24tcGlja2VyIC5wbC1pY29uLXRpbGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYXNwZWN0LXJhdGlvOiAxO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnB1dC1iYWNrZ3JvdW5kLCAjMWYxZjI0KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjZThlOGViKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDE2cHg7XG4gIHBhZGRpbmc6IDA7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLCBiYWNrZ3JvdW5kIDAuMTVzIGVhc2U7XG59XG4ucGwtaWNvbi1waWNrZXIgLnBsLWljb24tdGlsZTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgIzRhOWVmZik7XG59XG4ucGwtaWNvbi1waWNrZXIgLnBsLWljb24tdGlsZS5pcy1hY3RpdmUge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICM0YTllZmYpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDc0LCAxNTgsIDI1NSwgMC4xMik7XG59XG5cbi5wbC12YXJpYWJsZS1waWNrZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAxMDA1MDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXR5cGUsIGluaGVyaXQpO1xufVxuLnBsLXZhcmlhYmxlLXBpY2tlciAucGwtdmFyaWFibGUtcGlja2VyLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXRleHQtY29sb3VyLCAjMDAwKSA1NSUsIHRyYW5zcGFyZW50KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDJweCk7XG59XG4ucGwtdmFyaWFibGUtcGlja2VyIC5wbC12YXJpYWJsZS1waWNrZXItZGlhbG9nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogNTIwcHg7XG4gIG1heC13aWR0aDogOTB2dztcbiAgbWF4LWhlaWdodDogNzB2aDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIsICNmZmYpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMzMzMpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgMTJweCk7XG4gIGJveC1zaGFkb3c6IHZhcigtLWgtb2Zmc2V0LCAwKSB2YXIoLS12LW9mZnNldCwgNHB4KSA1MHB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1ib3hzaGFkb3csICMwMDApIDQwJSwgdHJhbnNwYXJlbnQpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnBsLXZhcmlhYmxlLXBpY2tlciAucGwtdmFyaWFibGUtcGlja2VyLWhlYWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgcGFkZGluZzogMTJweCAxNHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RlZTJlNik7XG59XG4ucGwtdmFyaWFibGUtcGlja2VyIC5wbC12YXJpYWJsZS1zZWFyY2gge1xuICBmbGV4OiAxO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnB1dC1iYWNrZ3JvdW5kLCAjZmZmKTtcbiAgY29sb3I6IHZhcigtLWlucHV0LXRleHQsICMzMzMpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXIsICNkZWUyZTYpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1pbnB1dC1yYWRpdXMsIDhweCk7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ucGwtdmFyaWFibGUtcGlja2VyIC5wbC12YXJpYWJsZS1zZWFyY2g6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHZhcigtLWlucHV0LXBsYWNlaG9sZGVyLCAjNmM3NTdkKTtcbn1cbi5wbC12YXJpYWJsZS1waWNrZXIgLnBsLXZhcmlhYmxlLXNlYXJjaDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0taW5wdXQtZm9jdXMtYm9yZGVyLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSk7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taW5wdXQtZm9jdXMtYm9yZGVyLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSkgMTIuNSUsIHRyYW5zcGFyZW50KTtcbn1cbi5wbC12YXJpYWJsZS1waWNrZXIgLnBsLXZhcmlhYmxlLWNsb3NlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0LCAjNmM3NTdkKTtcbiAgYm9yZGVyOiBub25lO1xuICBmb250LXNpemU6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDJweCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMsIDZweCk7XG59XG4ucGwtdmFyaWFibGUtcGlja2VyIC5wbC12YXJpYWJsZS1jbG9zZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxMCUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMzMzKTtcbn1cbi5wbC12YXJpYWJsZS1waWNrZXIgLnBsLXZhcmlhYmxlLWxpc3Qge1xuICBmbGV4OiAxO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiA2cHggMDtcbn1cbi5wbC12YXJpYWJsZS1waWNrZXIgLnBsLXZhcmlhYmxlLWdyb3VwIHtcbiAgcGFkZGluZzogMTBweCAxNHB4IDRweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBsZXR0ZXItc3BhY2luZzogMS4ycHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0LCAjNmM3NTdkKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5wbC12YXJpYWJsZS1waWNrZXIgLnBsLXZhcmlhYmxlLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMTJweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMzMzMpO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDhweCAxNHB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG4ucGwtdmFyaWFibGUtcGlja2VyIC5wbC12YXJpYWJsZS1pdGVtIC5wbC12YXJpYWJsZS1sYWJlbCB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4ucGwtdmFyaWFibGUtcGlja2VyIC5wbC12YXJpYWJsZS1pdGVtIC5wbC12YXJpYWJsZS1jb2RlIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCwgIzZjNzU3ZCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWlucHV0LWJhY2tncm91bmQsICNmOGY5ZmEpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXIsICNkZWUyZTYpO1xuICBwYWRkaW5nOiAycHggNnB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1pbnB1dC1yYWRpdXMsIDRweCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ucGwtdmFyaWFibGUtcGlja2VyIC5wbC12YXJpYWJsZS1pdGVtOmhvdmVyLCAucGwtdmFyaWFibGUtcGlja2VyIC5wbC12YXJpYWJsZS1pdGVtLmlzLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxMiUsIHRyYW5zcGFyZW50KTtcbn1cbi5wbC12YXJpYWJsZS1waWNrZXIgLnBsLXZhcmlhYmxlLWl0ZW06aG92ZXIgLnBsLXZhcmlhYmxlLWNvZGUsIC5wbC12YXJpYWJsZS1waWNrZXIgLnBsLXZhcmlhYmxlLWl0ZW0uaXMtYWN0aXZlIC5wbC12YXJpYWJsZS1jb2RlIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMzMzKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbn1cbi5wbC12YXJpYWJsZS1waWNrZXIgLnBsLXZhcmlhYmxlLWVtcHR5IHtcbiAgcGFkZGluZzogMjRweCAxNHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0LCAjNmM3NTdkKTtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuLnBsLXZhcmlhYmxlLXBpY2tlciAucGwtdmFyaWFibGUtaGludCB7XG4gIHBhZGRpbmc6IDhweCAxNHB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RlZTJlNik7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQsICM2Yzc1N2QpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLmdyYXBlc2pzLXBhbmVsLWxlZnQge1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBtaW4td2lkdGg6IDIwMHB4O1xuICB9XG4gIC5ncmFwZXNqcy1wYW5lbC1yaWdodCB7XG4gICAgd2lkdGg6IDIyMHB4O1xuICAgIG1pbi13aWR0aDogMjIwcHg7XG4gIH1cbn1cbi5mbGF0cGlja3ItY2FsZW5kYXIuZmxhdHBpY2tyLXdpdGgtcHJlc2V0cy5vcGVuIHtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uZmxhdHBpY2tyLW1haW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LXNocmluazogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmxhdHBpY2tyLXByZXNldHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDRweDtcbiAgcGFkZGluZzogMTJweDtcbiAgbWluLXdpZHRoOiAxNDBweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5mbGF0cGlja3ItcHJlc2V0IHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBwYWRkaW5nOiA2cHggMTBweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlLCBjb2xvciAwLjE1cyBlYXNlO1xufVxuXG4uZmxhdHBpY2tyLXByZXNldC1jbGVhciB7XG4gIG1hcmdpbi10b3A6IGF1dG87XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLmRhdGUtcmFuZ2UtdHJpZ2dlciB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmRhdGUtcmFuZ2UtdHJpZ2dlciBpbnB1dCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDExMHB4O1xuICBmb250OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbn1cbi5kYXRlLXJhbmdlLXRyaWdnZXIgaW5wdXQ6Zm9jdXMsIC5kYXRlLXJhbmdlLXRyaWdnZXIgaW5wdXQ6aG92ZXIge1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmRhdGUtcmFuZ2UtdHJpZ2dlciBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgb3BhY2l0eTogMTtcbn1cblxuLnNhbF9faGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNzVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNjVyZW07XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cbi5zYWxfX2JvZHkge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIDI2NHB4O1xuICBnYXA6IDAuNzVyZW07XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuLnNhbF9fbWFpbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogNDQwcHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbn1cbi5zYWxfX2NhbnZhcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNmY3Zjk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudChyZ2JhKDMwLCA0MSwgNTksIDAuMDcpIDFweCwgdHJhbnNwYXJlbnQgMXB4KSwgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDMwLCA0MSwgNTksIDAuMDcpIDFweCwgdHJhbnNwYXJlbnQgMXB4KTtcbiAgYmFja2dyb3VuZC1zaXplOiAyMnB4IDIycHg7XG59XG4uc2FsX19mbG9hdGluZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjRyZW07XG59XG4uc2FsX19mbG9hdGluZyA+ICoge1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cbi5zYWxfX2Zsb2F0aW5nLS10b29scyB7XG4gIHRvcDogMC42cmVtO1xuICBsZWZ0OiAwLjZyZW07XG59XG4uc2FsX19mbG9hdGluZy0tc3RhdHVzIHtcbiAgYm90dG9tOiAwLjVyZW07XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICBtYXgtd2lkdGg6IDgyJTtcbiAgcGFkZGluZzogMC4yNnJlbSAwLjZyZW07XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY2FyZC1jb2xvdXIpIDg1JSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDAuNzJyZW07XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTgpO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cbi5zYWxfX2Zsb2F0aW5nLS12aWV3IHtcbiAgYm90dG9tOiAwLjVyZW07XG4gIGxlZnQ6IDAuNXJlbTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjM1cmVtO1xuICBwYWRkaW5nOiAwLjI4cmVtIDAuNjVyZW07XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSA4NSUsICMwMDAwMDApO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cbi5zYWxfX2Zsb2F0aW5nLS12aWV3W2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnNhbF9fZmxvYXRpbmctLXRvdGFscyB7XG4gIHRvcDogMC41cmVtO1xuICByaWdodDogMC41cmVtO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGdhcDogMC4xcmVtO1xuICBwYWRkaW5nOiAwLjM1cmVtIDAuNnJlbTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jYXJkLWNvbG91cikgODglLCB0cmFuc3BhcmVudCk7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTgpO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cbi5zYWxfX2Zsb2F0aW5nLS10b3RhbHMgc3BhbiB7XG4gIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xufVxuLnNhbF9fZmxvYXRpbmctLXRvdGFscyBzdHJvbmcge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi5zYWxfX2ljb24tYnRuIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBtYXJnaW46IDA7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjgycmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uc2FsX19pY29uLWJ0bi5pcy1vZmYge1xuICBvcGFjaXR5OiAwLjU7XG59XG4uc2FsX19zaWRlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjZyZW07XG4gIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLnNhbF9fc2lkZS1zZWN0aW9uIHtcbiAgcGFkZGluZzogMC42cmVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbn1cbi5zYWxfX3NpZGUtdGl0bGUge1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDAuODJyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNDVyZW07XG59XG4uc2FsX19lZGl0b3ItaGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMC42cmVtO1xufVxuLnNhbF9fZWRpdG9yLXJlbW92ZSB7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyLXRleHQpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi5zYWxfX2dyaWQtZmllbGRzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICBnYXA6IDAuNXJlbSAwLjZyZW07XG4gIG1hcmdpbi10b3A6IDAuNHJlbTtcbn1cbi5zYWxfX2ZpZWxkLWhpbnQge1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgbWFyZ2luOiAwLjM1cmVtIDAgMC42cmVtO1xufVxuLnNhbF9fZmllbGQtaGludCBzdHJvbmcge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuLnNhbF9fc2xpZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGFjY2VudC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIG1hcmdpbi10b3A6IDAuMnJlbTtcbn1cbi5zYWxfX2JhY2tkcm9wIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjVyZW07XG59XG4uc2FsX19iYWNrZHJvcC1lZGl0LmlzLWFjdGl2ZSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxNCUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG59XG4uc2FsX19vcGFjaXR5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjJyZW07XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIG1hcmdpbjogMDtcbn1cbi5zYWwgLmZvcm0tY29udHJvbCxcbi5zYWwgLmZvcm0tc2VsZWN0IHtcbiAgcGFkZGluZzogMC4zcmVtIDAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjgycmVtO1xufVxuLnNhbCAuZm9ybS1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC43NnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC4xMnJlbTtcbiAgbWFyZ2luLXRvcDogMC4zcmVtO1xufVxuXG4uc2FsLWxpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC40cmVtO1xufVxuLnNhbC1saXN0X19lbXB0eSB7XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xufVxuLnNhbC1saXN0X19pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIHBhZGRpbmc6IDAuMzhyZW0gMC41cmVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDYlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uc2FsLWxpc3RfX2l0ZW06aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMTIlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xufVxuLnNhbC1saXN0X19pdGVtLmlzLXNlbGVjdGVkIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDE2JSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbiAgb3V0bGluZTogMXB4IHNvbGlkIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuLnNhbC1saXN0X19mYWNpbmcge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgbWluLXdpZHRoOiAxLjg1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHBhZGRpbmc6IDAuMThyZW0gMC4zcmVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDIyJSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xufVxuLnNhbC1saXN0X19tZXRhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleDogMSAxIGF1dG87XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbiAgZm9udC1zaXplOiAwLjc0cmVtO1xufVxuLnNhbC1saXN0X19tZXRhIHN0cm9uZyB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG4uc2FsLWxpc3RfX3JlbW92ZSB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tbXV0ZWQtdGV4dCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5zYWwtbGlzdF9fcmVtb3ZlOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1kYW5nZXItdGV4dCk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAuc2FsX19ib2R5IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICB9XG4gIC5zYWxfX3NpZGUge1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gIH1cbn1cbi5zYWwtLXJlYWRvbmx5IC5zYWxfX2NhbnZhcyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaW5zZXQ6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDQyMHB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbi5zeXN0ZW0tbW9uaXRvcl9faGVyby0tdGFsbCB7XG4gIG1pbi1oZWlnaHQ6IDM4MHB4O1xufVxuXG4uc3lzdGVtLWhlcm8tLWFycmF5LWxheW91dCB7XG4gIG1pbi1oZWlnaHQ6IDQ4MHB4O1xufVxuXG4uc3lzdGVtLW1vbml0b3JfX2hlcm8tc2xpZGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZTtcbn1cbi5zeXN0ZW0tbW9uaXRvcl9faGVyby1zbGlkZS5pcy1hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4uc3lzdGVtLWhlcm8tc2xpZGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5zeXN0ZW0taGVyby0tYXJyYXktbGF5b3V0IC5zeXN0ZW0taGVyby1zbGlkZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBlYXNlO1xufVxuLnN5c3RlbS1oZXJvLS1hcnJheS1sYXlvdXQgLnN5c3RlbS1oZXJvLXNsaWRlLmlzLWFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi5zeXN0ZW0tbW9uaXRvcl9faGVyby1tYXAsXG4uc3lzdGVtLWhlcm8tbWFwIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbn1cblxuLnN5c3RlbS1tb25pdG9yX19oZXJvIC5zeXN0ZW0tbW9uaXRvcl9faGVyby1tYXAgLnNhbF9fY2FudmFzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgbWluLWhlaWdodDogMDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xufVxuXG4uc3lzdGVtLWhlcm8gLnN5c3RlbS1oZXJvLW1hcCAuc2FsX19jYW52YXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBtaW4taGVpZ2h0OiAwO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi5zeXN0ZW0tbW9uaXRvcl9faGVyby1vdmVybGF5LS1zb2Z0IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSA0NSUpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnN5c3RlbS1tb25pdG9yX19oZXJvLXlpZWxkIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyO1xuICByaWdodDogMXJlbTtcbiAgYm90dG9tOiAxcmVtO1xuICBwYWRkaW5nOiAwLjM1cmVtIDAuN3JlbTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDAuNzhyZW07XG59XG4uc3lzdGVtLW1vbml0b3JfX2hlcm8teWllbGQgc3Ryb25nIHtcbiAgZm9udC1zaXplOiAxLjA1cmVtO1xufVxuXG4uc3lzdGVtLW1vbml0b3JfX2hlcm8tdGFicyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMztcbiAgbGVmdDogNTAlO1xuICBib3R0b206IDFyZW07XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAwLjI1cmVtO1xuICBwYWRkaW5nOiAwLjI1cmVtO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQyKTtcbn1cblxuLnN5c3RlbS1tb25pdG9yX19oZXJvLXRhYiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMzVyZW07XG4gIHBhZGRpbmc6IDAuMzJyZW0gMC44cmVtO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44Mik7XG4gIGZvbnQtc2l6ZTogMC43NHJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnN5c3RlbS1tb25pdG9yX19oZXJvLXRhYi5pcy1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBjb2xvcjogIzExMTgyNztcbn1cblxuLnN5c3RlbS1tb25pdG9yX19oZXJvLWFycmF5cyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjtcbiAgdG9wOiAzLjJyZW07XG4gIGxlZnQ6IDAuNzVyZW07XG4gIHdpZHRoOiAyMTBweDtcbiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAxLjVyZW0pO1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSA0LjZyZW0pO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiAwLjU1cmVtIDAuNjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTcsIDI0LCAzOSwgMC42KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDZweCk7XG4gIGNvbG9yOiAjZmZmO1xuICBib3gtc2hhZG93OiAwIDRweCAxNHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbn1cbi5zeXN0ZW0tbW9uaXRvcl9faGVyby1hcnJheXM6aGFzKHVsOmVtcHR5KSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5zeXN0ZW0tbW9uaXRvcl9faGVyby1hcnJheXMtdGl0bGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwLjYycmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICBvcGFjaXR5OiAwLjg7XG4gIG1hcmdpbi1ib3R0b206IDAuNHJlbTtcbn1cblxuLnN5c3RlbS1tb25pdG9yX19oZXJvLWFycmF5cyAuc2FsLWxlZ2VuZCB7XG4gIG1hcmdpbjogMDtcbiAgZ2FwOiAwLjNyZW07XG59XG4uc3lzdGVtLW1vbml0b3JfX2hlcm8tYXJyYXlzIC5zYWwtbGVnZW5kX19pdGVtIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgcGFkZGluZzogMC4zNXJlbSAwLjQ1cmVtO1xufVxuLnN5c3RlbS1tb25pdG9yX19oZXJvLWFycmF5cyAuc2FsLWxlZ2VuZF9fZmFjaW5nIHtcbiAgbWluLXdpZHRoOiAxLjdyZW07XG4gIHBhZGRpbmc6IDAuMTVyZW0gMC4zcmVtO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAwLjY2cmVtO1xufVxuLnN5c3RlbS1tb25pdG9yX19oZXJvLWFycmF5cyAuc2FsLWxlZ2VuZF9fbWV0YSB7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzIpO1xuICBmb250LXNpemU6IDAuNjhyZW07XG59XG4uc3lzdGVtLW1vbml0b3JfX2hlcm8tYXJyYXlzIC5zYWwtbGVnZW5kX19tZXRhIHN0cm9uZyB7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4uc3lzdGVtLWhlcm8gLnN5c3RlbS1tb25pdG9yX19oZXJvLWFycmF5cyB7XG4gIHRvcDogMC44NXJlbTtcbiAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gMTJyZW0pO1xufVxuXG4uc3lzdGVtLWhlcm8gLnN5c3RlbS1tb25pdG9yX19oZXJvLXRhYnMge1xuICB0b3A6IDAuODVyZW07XG4gIHJpZ2h0OiAwLjg1cmVtO1xuICBib3R0b206IGF1dG87XG4gIGxlZnQ6IGF1dG87XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5zeXN0ZW0taGVybyAuc3lzdGVtLW1vbml0b3JfX2hlcm8tYXJyYXlzIHtcbiAgICB3aWR0aDogMTg1cHg7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gMTRyZW0pO1xuICB9XG4gIC5zeXN0ZW0taGVybyAuc3lzdGVtLW1vbml0b3JfX2hlcm8tdGFicyB7XG4gICAgdG9wOiAwLjc1cmVtO1xuICAgIHJpZ2h0OiAwLjc1cmVtO1xuICB9XG59XG4uc2FsIC5idXR0b24tMTMtb3V0bGluZS5pcy1vZmYge1xuICBvcGFjaXR5OiAwLjU1O1xufVxuXG4uc2FsLWltcG9ydCB7XG4gIG1hcmdpbjogMjVweCBhdXRvIGF1dG87XG59XG4uc2FsLWltcG9ydF9faGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDAuODVyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG4uc2FsLWltcG9ydF9faGVhZCBoMSB7XG4gIGZvbnQtc2l6ZTogMS40NXJlbTtcbiAgbWFyZ2luOiAwO1xufVxuLnNhbC1pbXBvcnRfX2ljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiA0MnB4O1xuICBoZWlnaHQ6IDQycHg7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDE0JSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgZm9udC1zaXplOiAxLjFyZW07XG59XG4uc2FsLWltcG9ydF9fc3ViIHtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBmb250LXNpemU6IDAuODhyZW07XG4gIG1hcmdpbjogMC4ycmVtIDAgMDtcbiAgbWF4LXdpZHRoOiA2MGNoO1xufVxuLnNhbC1pbXBvcnRfX3ByZXZpZXcge1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xufVxuLnNhbC1pbXBvcnRfX2JhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zcmVtO1xuICBmbGV4OiAwIDAgYXV0bztcbiAgcGFkZGluZzogMC4yMnJlbSAwLjU1cmVtO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgZm9udC1zaXplOiAwLjcycmVtO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMTYlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4uc2FsLXN1bW1hcnktcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNzVyZW07XG4gIHBhZGRpbmc6IDAuNjVyZW0gMC44cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgNiUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG59XG5cbi5zYWwtaGFuZGxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgY3Vyc29yOiBncmFiO1xuICBib3gtc2hhZG93OiAwIDJweCA3cHggcmdiYSgwLCAwLCAwLCAwLjQ1KTtcbiAgZm9udC1zaXplOiAwLjc0cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjA4cyBlYXNlO1xufVxuLnNhbC1oYW5kbGU6aG92ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDgpO1xufVxuLnNhbC1oYW5kbGU6YWN0aXZlIHtcbiAgY3Vyc29yOiBncmFiYmluZztcbn1cbi5zYWwtaGFuZGxlLS1jZW50ZXIge1xuICB3aWR0aDogMjVweDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNmZmZmZmY7XG4gIGN1cnNvcjogbW92ZTtcbn1cbi5zYWwtaGFuZGxlLS1yb3RhdGUge1xuICB3aWR0aDogMjVweDtcbiAgaGVpZ2h0OiAyNXB4O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuLnNhbC1oYW5kbGUtLXJlc2l6ZSB7XG4gIHdpZHRoOiAxOXB4O1xuICBoZWlnaHQ6IDE5cHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cik7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBib3JkZXI6IDJweCBzb2xpZCAjZmZmZmZmO1xuICBjdXJzb3I6IG53c2UtcmVzaXplO1xufVxuLnNhbC1oYW5kbGUtLXRpbHQge1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiAwIDdweDtcbiAgYm9yZGVyLXJhZGl1czogMTFweDtcbiAgYmFja2dyb3VuZDogIzFmMjkzNztcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNmZmZmZmY7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMC42OHJlbTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBucy1yZXNpemU7XG59XG4uc2FsLWhhbmRsZS0tYmFja2Ryb3AtbW92ZSB7XG4gIHdpZHRoOiAyNnB4O1xuICBoZWlnaHQ6IDI2cHg7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCAjMmI2Y2IwIDc4JSwgdHJhbnNwYXJlbnQpO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyOiAycHggc29saWQgI2ZmZmZmZjtcbiAgY3Vyc29yOiBtb3ZlO1xufVxuLnNhbC1oYW5kbGUtLWJhY2tkcm9wLXNjYWxlIHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiAjMmI2Y2IwO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyOiAycHggc29saWQgI2ZmZmZmZjtcbiAgY3Vyc29yOiBud3NlLXJlc2l6ZTtcbn1cblxuLnN5c3RlbS1sYXlvdXQge1xuICBtYXJnaW4tdG9wOiAxLjVyZW07XG59XG4uc3lzdGVtLWxheW91dF9faGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLnN5c3RlbS1sYXlvdXRfX3lpZWxkIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjlyZW07XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMTIlLCB2YXIoLS1jYXJkLWNvbG91cikpO1xufVxuLnN5c3RlbS1sYXlvdXRfX3lpZWxkLXZhbHVlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuLnN5c3RlbS1sYXlvdXRfX3lpZWxkLXVuaXQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGNvbG9yOiB2YXIoLS1tdXRlZC10ZXh0KTtcbn1cblxuLnNhbC1sZWdlbmQge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDAuODVyZW0gMCAwO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDAuNXJlbTtcbn1cbi5zYWwtbGVnZW5kX19pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjc1cmVtO1xuICBwYWRkaW5nOiAwLjU1cmVtIDAuNzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgOCUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG59XG4uc2FsLWxlZ2VuZF9fZmFjaW5nIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIG1pbi13aWR0aDogMi40cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC40cmVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDIyJSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cbi5zYWwtbGVnZW5kX19tZXRhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgY29sb3I6IHZhcigtLW11dGVkLXRleHQpO1xuICBmb250LXNpemU6IDAuODVyZW07XG59XG4uc2FsLWxlZ2VuZF9fbWV0YSBzdHJvbmcge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4uc2FsLWZvcm0tZXJyb3JzIHtcbiAgcGFkZGluZzogMC43cmVtIDAuOXJlbTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1ub3RpZmljYXRpb24tZGFuZ2VyLXRleHQpIDEyJSwgdmFyKC0tY2FyZC1jb2xvdXIpKTtcbiAgY29sb3I6IHZhcigtLW5vdGlmaWNhdGlvbi1kYW5nZXItdGV4dCk7XG59XG4uc2FsLWZvcm0tZXJyb3JzIHVsIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjFyZW07XG59XG4uc2FsLWZvcm0tZXJyb3JzIGxpIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLnN5c3RlbS1wcm9maWxlX19lc3RpbWF0ZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMzVyZW07XG4gIG1hcmdpbi10b3A6IDAuNHJlbTtcbiAgcGFkZGluZzogMC4ycmVtIDAuNTVyZW07XG4gIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxNCUsIHZhcigtLWNhcmQtY29sb3VyKSk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi8qIGxleHh5IGdlbSBDU1MgaXMgbG9hZGVkIHZpYSA8bGluayBocmVmPVwiL3ZlbmRvci9sZXh4eS5jc3NcIj4gaW4gdGhlIGxheW91dFxuICAgaGVhZCAoYmVmb3JlIHRoaXMgZmlsZSkgc28gaXRzIG5lc3RlZCBAaW1wb3J0cyByZXNvbHZlIOKAlCBzZWUgdGhlIGxheW91dCBub3RlLlxuICAgVGhpcyBmaWxlIG9ubHkgaG9sZHMgb3VyIG93biBvdmVycmlkZXMgb24gdG9wIG9mIGl0LiAqL1xuLyogR2xvYmFsIGhpZ2hsaWdodCBjb2xvciB2YXJpYWJsZXMgKG5lZWRlZCBmb3IgcmVuZGVyZWQgY29udGVudCBvdXRzaWRlIGVkaXRvcikgKi9cbjpyb290IHtcbiAgLyogVGV4dCBjb2xvciBoaWdobGlnaHRzICovXG4gIC0taGlnaGxpZ2h0LTE6IHJnYigxMzYsIDExOCwgMzgpO1xuICAtLWhpZ2hsaWdodC0yOiByZ2IoMTg1LCA5NCwgNik7XG4gIC0taGlnaGxpZ2h0LTM6IHJnYigyMDcsIDAsIDApO1xuICAtLWhpZ2hsaWdodC00OiByZ2IoMjE2LCAyOCwgMTcwKTtcbiAgLS1oaWdobGlnaHQtNTogcmdiKDE0NCwgMTksIDI1NCk7XG4gIC0taGlnaGxpZ2h0LTY6IHJnYig1LCA5OCwgMTg1KTtcbiAgLS1oaWdobGlnaHQtNzogcmdiKDE3LCAxMzgsIDE1KTtcbiAgLS1oaWdobGlnaHQtODogcmdiKDE0OCwgODIsIDIyKTtcbiAgLS1oaWdobGlnaHQtOTogcmdiKDEwMiwgMTAyLCAxMDIpO1xuICAvKiBCYWNrZ3JvdW5kIGNvbG9yIGhpZ2hsaWdodHMgKi9cbiAgLS1oaWdobGlnaHQtYmctMTogcmdiYSgyMjksIDIyMywgNiwgMC4zKTtcbiAgLS1oaWdobGlnaHQtYmctMjogcmdiYSgyNTUsIDE4NSwgODcsIDAuMyk7XG4gIC0taGlnaGxpZ2h0LWJnLTM6IHJnYmEoMjU1LCAxMTgsIDExOCwgMC4zKTtcbiAgLS1oaWdobGlnaHQtYmctNDogcmdiYSgyNDgsIDEzNywgMjE2LCAwLjMpO1xuICAtLWhpZ2hsaWdodC1iZy01OiByZ2JhKDE5MCwgMTY1LCAyNTUsIDAuMyk7XG4gIC0taGlnaGxpZ2h0LWJnLTY6IHJnYmEoMTI0LCAxOTIsIDI1MiwgMC4zKTtcbiAgLS1oaWdobGlnaHQtYmctNzogcmdiYSgxNDAsIDI1NSwgMTI5LCAwLjMpO1xuICAtLWhpZ2hsaWdodC1iZy04OiByZ2JhKDIyMSwgMTcwLCAxMjMsIDAuMyk7XG4gIC0taGlnaGxpZ2h0LWJnLTk6IHJnYmEoMjAwLCAyMDAsIDIwMCwgMC4zKTtcbn1cblxuLyogTGV4eHkgUmljaCBUZXh0IEVkaXRvciBTdHlsaW5nICovXG5sZXh4eS1lZGl0b3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50O1xuICBmb250LWZhbWlseTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiB2YXIoLS1oLW9mZnNldCkgdmFyKC0tdi1vZmZzZXQpIHZhcigtLWJsdXItcmFkaXVzKSB2YXIoLS1ib3hzaGFkb3cpICFpbXBvcnRhbnQ7XG59XG5cbi8qIExleHh5IGVkaXRvciBjb250ZW50IGFyZWEgKi9cbmxleHh5LWVkaXRvciAubGV4eHktY29udGVudCxcbmxleHh5LWVkaXRvciBbY29udGVudGVkaXRhYmxlXSxcbmxleHh5LWVkaXRvciAuUHJvc2VNaXJyb3IsXG5sZXh4eS1lZGl0b3IgLmxleHh5LWVkaXRvcl9fY29udGVudCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDFyZW0gIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMTIwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMCAwIHZhcigtLWJvcmRlci1yYWRpdXMpIHZhcigtLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG59XG5cbi8qIExleHh5IHRvb2xiYXIgc3R5bGluZyAqL1xubGV4eHktdG9vbGJhcixcbi5sZXh4eS10b29sYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKSB2YXIoLS1ib3JkZXItcmFkaXVzKSAwIDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC41cmVtICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgZ2FwOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG4gIGZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbn1cblxuLyogTk9URTogdGhlIGdlbmVyaWMgYGxleHh5LXRvb2xiYXIgYnV0dG9uYCBiYXNlL2hvdmVyL2FjdGl2ZSBydWxlcyB3ZXJlIHJlbW92ZWRcbiAgIGZvciBMZXh4eSAwLjkg4oCUIHRoZXkgc3R5bGVkIHRoZSBoaWdobGlnaHQtZHJvcGRvd24gdHJpZ2dlciBhbmQgdGhlIGZvcm1hdCAvXG4gICBoZWFkaW5nIGRyb3Bkb3duIGl0ZW1zIHRvbywgd2hpY2ggYnJva2UgdGhlaXIgYWxpZ25tZW50L2xheW91dC4gVGhlIGNvcnJlY3RcbiAgIDAuOSBydWxlcyBhcmUgYGJ1dHRvbjpub3QoLmxleHh5LWhpZ2hsaWdodC1idXR0b24pYCAoZnVydGhlciBkb3duKSwgd2hpY2hcbiAgIGxlYXZlIHRoZSBkcm9wZG93biBidXR0b25zIHRvIHRoZWlyIGRlZGljYXRlZCBzdHlsaW5nLiAqL1xuLyogTGV4eHkgZHJvcGRvd24gbWVudXMgKi9cbmxleHh5LWVkaXRvciAubGV4eHktZHJvcGRvd24sXG4ubGV4eHktZHJvcGRvd24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogdmFyKC0taC1vZmZzZXQpIHZhcigtLXYtb2Zmc2V0KSB2YXIoLS1ibHVyLXJhZGl1cykgdmFyKC0tYm94c2hhZG93KSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG59XG5cbi8qIExleHh5IGRyb3Bkb3duIGl0ZW1zICovXG5sZXh4eS1lZGl0b3IgLmxleHh5LWRyb3Bkb3duLWl0ZW0sXG4ubGV4eHktZHJvcGRvd24taXRlbSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1lZGl0b3IgLmxleHh5LWRyb3Bkb3duLWl0ZW06aG92ZXIsXG4ubGV4eHktZHJvcGRvd24taXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi8qIEZpeDogT3ZlcnJpZGUgTGV4eHkncyBkZWZhdWx0IGhpZ2hsaWdodCBiYWNrZ3JvdW5kXG4gICBUaGUgZ2VtIHNldHMgYmFja2dyb3VuZC1jb2xvciBvbiAubGV4eHktY29udGVudF9faGlnaGxpZ2h0LCBcbiAgIGJ1dCB3ZSBvbmx5IHdhbnQgYmFja2dyb3VuZCB3aGVuIGV4cGxpY2l0bHkgc2V0IHZpYSBpbmxpbmUgc3R5bGUuXG4gICBVc2luZyBoaWdoIHNwZWNpZmljaXR5IHdpdGhvdXQgIWltcG9ydGFudCBzbyBpbmxpbmUgc3R5bGVzIGNhbiBvdmVycmlkZSAqL1xubGV4eHktZWRpdG9yIC5sZXh4eS1lZGl0b3JfX2NvbnRlbnQgbWFyayxcbmxleHh5LWVkaXRvciAubGV4eHktZWRpdG9yX19jb250ZW50IC5sZXh4eS1jb250ZW50X19oaWdobGlnaHQsXG5sZXh4eS1lZGl0b3IgLmxleHh5LWNvbnRlbnQgbWFyayxcbmxleHh5LWVkaXRvciAubGV4eHktY29udGVudCAubGV4eHktY29udGVudF9faGlnaGxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qIFNhbWUgZml4IGZvciByZW5kZXJlZCBjb250ZW50IG91dHNpZGUgdGhlIGVkaXRvciAocHJvcG9zYWwgcGFnZXMsIGV0Yy4pICovXG4ubGV4eHktY29udGVudCBtYXJrLFxuLmxleHh5LWNvbnRlbnQgLmxleHh5LWNvbnRlbnRfX2hpZ2hsaWdodCxcbi5hY3Rpb24tdGV4dC1jb250ZW50IG1hcmssXG4uYWN0aW9uLXRleHQtY29udGVudCAubGV4eHktY29udGVudF9faGlnaGxpZ2h0LFxuLnByb3Bvc2FsLWNvbnRlbnQgbWFyayxcbi5wcm9wb3NhbC1jb250ZW50IC5sZXh4eS1jb250ZW50X19oaWdobGlnaHQsXG4ucG9zdC1jb250ZW50IG1hcmssXG4ucG9zdC1jb250ZW50IC5sZXh4eS1jb250ZW50X19oaWdobGlnaHQsXG4uY2FyZC1ib2R5IG1hcmssXG4uY2FyZC1ib2R5IC5sZXh4eS1jb250ZW50X19oaWdobGlnaHQsXG5hcnRpY2xlIG1hcmssXG5hcnRpY2xlIC5sZXh4eS1jb250ZW50X19oaWdobGlnaHQsXG5zZWN0aW9uIG1hcmssXG5zZWN0aW9uIC5sZXh4eS1jb250ZW50X19oaWdobGlnaHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyogTGV4eHkgdGV4dCBmb3JtYXR0aW5nICovXG5sZXh4eS1lZGl0b3Igc3Ryb25nLFxubGV4eHktZWRpdG9yIGIge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWVkaXRvciBlbSxcbmxleHh5LWVkaXRvciBpIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBmb250LXN0eWxlOiBpdGFsaWMgIWltcG9ydGFudDtcbn1cblxubGV4eHktZWRpdG9yIHUge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWVkaXRvciBhIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWVkaXRvciBhOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1ob3ZlcikgIWltcG9ydGFudDtcbn1cblxuLyogTGV4eHkgbGlzdHMgKi9cbmxleHh5LWVkaXRvciB1bCxcbmxleHh5LWVkaXRvciBvbCB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW0gIWltcG9ydGFudDtcbn1cblxubGV4eHktZWRpdG9yIGxpIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtICFpbXBvcnRhbnQ7XG59XG5cbi8qIExleHh5IGJsb2NrcXVvdGVzICovXG5sZXh4eS1lZGl0b3IgYmxvY2txdW90ZSB7XG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMXJlbSAhaW1wb3J0YW50O1xuICBtYXJnaW46IDFyZW0gMCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwIHZhcigtLWJvcmRlci1yYWRpdXMpIHZhcigtLWJvcmRlci1yYWRpdXMpIDAgIWltcG9ydGFudDtcbiAgZm9udC1zdHlsZTogaXRhbGljICFpbXBvcnRhbnQ7XG59XG5cbi8qIExleHh5IGNvZGUgYmxvY2tzICovXG5sZXh4eS1lZGl0b3IgY29kZSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMjVyZW0gIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogM3B4ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBcIk1vbmFjb1wiLCBcIk1lbmxvXCIsIFwiVWJ1bnR1IE1vbm9cIiwgbW9ub3NwYWNlICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWVkaXRvciBwcmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAxcmVtICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93LXg6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLyogTGV4eHkgcGxhY2Vob2xkZXIgdGV4dCAqL1xubGV4eHktZWRpdG9yIC5Qcm9zZU1pcnJvci1wbGFjZWhvbGRlcjo6YmVmb3JlLFxubGV4eHktZWRpdG9yIFtkYXRhLXBsYWNlaG9sZGVyXTo6YmVmb3JlIHtcbiAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS10ZXh0LWNvbG91cikgNTAlLCB0cmFuc3BhcmVudCkgIWltcG9ydGFudDtcbiAgZm9udC1zdHlsZTogaXRhbGljICFpbXBvcnRhbnQ7XG59XG5cbi8qIExleHh5IGZvY3VzIHN0YXRlcyAqL1xubGV4eHktZWRpdG9yOmZvY3VzLXdpdGhpbiB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAyMCUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xufVxuXG4vKiBDdXN0b20gR1BUIGJ1dHRvbiBzdHlsaW5nICovXG5sZXh4eS10b29sYmFyIGJ1dHRvblt0aXRsZT1cIkFzayBQZXJpY2xlc1wiXSxcbi5sZXh4eS10b29sYmFyIGJ1dHRvblt0aXRsZT1cIkFzayBQZXJpY2xlc1wiXSxcbi5sZXh4eS1ncHQtYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciksIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSA4MCUsIHRyYW5zcGFyZW50KSkgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS10b29sYmFyIGJ1dHRvblt0aXRsZT1cIkFzayBQZXJpY2xlc1wiXTpob3Zlcixcbi5sZXh4eS10b29sYmFyIGJ1dHRvblt0aXRsZT1cIkFzayBQZXJpY2xlc1wiXTpob3Zlcixcbi5sZXh4eS1ncHQtYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYnV0dG9uLWhvdmVyKSwgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJ1dHRvbi1ob3ZlcikgODAlLCB0cmFuc3BhcmVudCkpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24taG92ZXIpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDEycHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDUwJSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LXRvb2xiYXIgYnV0dG9uW3RpdGxlPVwiQXNrIFBlcmljbGVzXCJdOjpiZWZvcmUsXG4ubGV4eHktdG9vbGJhciBidXR0b25bdGl0bGU9XCJBc2sgUGVyaWNsZXNcIl06OmJlZm9yZSxcbi5sZXh4eS1ncHQtYnV0dG9uOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB0b3A6IC0ycHggIWltcG9ydGFudDtcbiAgbGVmdDogLTJweCAhaW1wb3J0YW50O1xuICByaWdodDogLTJweCAhaW1wb3J0YW50O1xuICBib3R0b206IC0ycHggIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSwgdmFyKC0tYnV0dG9uLWhvdmVyKSwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IC0xICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UgIWltcG9ydGFudDtcbn1cblxubGV4eHktdG9vbGJhciBidXR0b25bdGl0bGU9XCJBc2sgUGVyaWNsZXNcIl06aG92ZXI6OmJlZm9yZSxcbi5sZXh4eS10b29sYmFyIGJ1dHRvblt0aXRsZT1cIkFzayBQZXJpY2xlc1wiXTpob3Zlcjo6YmVmb3JlLFxuLmxleHh5LWdwdC1idXR0b246aG92ZXI6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cblxuLyogTGV4eHkgUHJvbXB0IFN5c3RlbSBTdHlsaW5nIC0gQ29ycmVjdCBzZWxlY3RvcnMgKi9cbnByb21wdC1wb3BvdmVyLFxuLnByb21wdC1wb3BvdmVyLFxubGV4eHktcHJvbXB0LW1lbnUsXG4ubGV4eHktcHJvbXB0LW1lbnUsXG4ubGV4eHktcHJvbXB0LW1lbnUtLXZpc2libGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogdmFyKC0taC1vZmZzZXQpIHZhcigtLXYtb2Zmc2V0KSB2YXIoLS1ibHVyLXJhZGl1cykgdmFyKC0tYm94c2hhZG93KSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDEwMDAwICFpbXBvcnRhbnQ7XG4gIG1heC1oZWlnaHQ6IDMwMHB4ICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93LXk6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLyogUHJvbXB0IG1lbnUgaXRlbXMgKi9cbmxpLmxleHh5LXByb21wdC1tZW51X19pdGVtLFxuLmxleHh5LXByb21wdC1tZW51X19pdGVtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC43NXJlbSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UgIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cykgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwLjEyNXJlbSAhaW1wb3J0YW50O1xufVxuXG4vKiBMYXN0IGl0ZW0gbm8gYm9yZGVyICovXG5saS5sZXh4eS1wcm9tcHQtbWVudV9faXRlbTpsYXN0LWNoaWxkLFxuLmxleHh5LXByb21wdC1tZW51X19pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qIEhvdmVyIGFuZCBzZWxlY3RlZCBzdGF0ZXMgKi9cbmxpLmxleHh5LXByb21wdC1tZW51X19pdGVtOmhvdmVyLFxubGkubGV4eHktcHJvbXB0LW1lbnVfX2l0ZW1bYXJpYS1zZWxlY3RlZD10cnVlXSxcbi5sZXh4eS1wcm9tcHQtbWVudV9faXRlbTpob3Zlcixcbi5sZXh4eS1wcm9tcHQtbWVudV9faXRlbVthcmlhLXNlbGVjdGVkPXRydWVdIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRlcnRpYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLyogVmFyaWFibGUgbWVudSBpdGVtIHN0eWxpbmcgKi9cbi52YXJpYWJsZS1tZW51LWl0ZW0ge1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi52YXJpYWJsZS1uYW1lIHtcbiAgZm9udC13ZWlnaHQ6IDUwMCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAycHggIWltcG9ydGFudDtcbiAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbn1cblxuLnZhcmlhYmxlLWRlc2Mge1xuICBmb250LXNpemU6IDAuODVlbSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjggIWltcG9ydGFudDtcbiAgY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbn1cblxuLyogVmFyaWFibGUgZGVzY3JpcHRpb25zIG9uIGhvdmVyICovXG5saS5sZXh4eS1wcm9tcHQtbWVudV9faXRlbTpob3ZlciAudmFyaWFibGUtZGVzYyxcbmxpLmxleHh5LXByb21wdC1tZW51X19pdGVtW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0gLnZhcmlhYmxlLWRlc2MsXG4ubGV4eHktcHJvbXB0LW1lbnVfX2l0ZW06aG92ZXIgLnZhcmlhYmxlLWRlc2MsXG4ubGV4eHktcHJvbXB0LW1lbnVfX2l0ZW1bYXJpYS1zZWxlY3RlZD10cnVlXSAudmFyaWFibGUtZGVzYyB7XG4gIG9wYWNpdHk6IDAuOSAhaW1wb3J0YW50O1xufVxuXG4vKiBUb29sYmFyIGRyb3Bkb3duIGJ1dHRvbnMgKGhpZ2hsaWdodCwgbGluaykgKi9cbmxleHh5LXRvb2xiYXIgZGV0YWlscy5sZXh4eS1lZGl0b3JfX3Rvb2xiYXItZHJvcGRvd24sXG5sZXh4eS10b29sYmFyIC5sZXh4eS1lZGl0b3JfX3Rvb2xiYXItZHJvcGRvd24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbn1cblxubGV4eHktdG9vbGJhciBkZXRhaWxzLmxleHh5LWVkaXRvcl9fdG9vbGJhci1kcm9wZG93biA+IHN1bW1hcnksXG5sZXh4eS10b29sYmFyIC5sZXh4eS1lZGl0b3JfX3Rvb2xiYXItZHJvcGRvd24gPiBzdW1tYXJ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYnV0dG9uLXJhZGl1cykgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC4zNzVyZW0gMC41cmVtICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW0gIWltcG9ydGFudDtcbiAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UgIWltcG9ydGFudDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xuICBtaW4td2lkdGg6IDMycHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgbGlzdC1zdHlsZTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS10b29sYmFyIGRldGFpbHMubGV4eHktZWRpdG9yX190b29sYmFyLWRyb3Bkb3duID4gc3VtbWFyeTo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxubGV4eHktdG9vbGJhciBkZXRhaWxzLmxleHh5LWVkaXRvcl9fdG9vbGJhci1kcm9wZG93biA+IHN1bW1hcnk6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1idXR0b24taG92ZXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24taG92ZXItdGV4dCkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24taG92ZXIpICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS10b29sYmFyIGRldGFpbHMubGV4eHktZWRpdG9yX190b29sYmFyLWRyb3Bkb3duW29wZW5dID4gc3VtbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLyogVG9vbGJhciBkcm9wZG93biBjb250ZW50IHBhbmVscy5cbiAgIE5PVEU6IGBsZXh4eS1oaWdobGlnaHQtZHJvcGRvd25gIHdhcyByZW1vdmVkIGZyb20gdGhpcyBncm91cC4gSW4gTGV4eHkgMC45IGl0XG4gICBpcyB0aGUgdG9vbGJhci1pdGVtIFdSQVBQRVIgKGhvbGRzIHRoZSB0cmlnZ2VyIGJ1dHRvbiArIGFuIGlubmVyXG4gICBbZGF0YS1kcm9wZG93bi1wYW5lbF0pLCBub3QgdGhlIGZseW91dCBpdHNlbGYuIFN0eWxpbmcgaXQgYXMgYW4gYWJzb2x1dGUgcGFuZWxcbiAgIHB1dCBhIDRweCB0b3AgbWFyZ2luIG9uIGl0LCBkcm9wcGluZyB0aGUgaGlnaGxpZ2h0IGJ1dHRvbiBiZWxvdyB0aGUgb3RoZXJcbiAgIHRvb2xiYXIgYnV0dG9ucy4gVGhlIHJlYWwgZmx5b3V0IChbZGF0YS1kcm9wZG93bi1wYW5lbF0pIGlzIHN0eWxlZCBlbHNld2hlcmUuICovXG5sZXh4eS10b29sYmFyIC5sZXh4eS1lZGl0b3JfX3Rvb2xiYXItZHJvcGRvd24tY29udGVudCxcbmxleHh5LWxpbmstZGlhbG9nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IHZhcigtLWgtb2Zmc2V0KSB2YXIoLS12LW9mZnNldCkgdmFyKC0tYmx1ci1yYWRpdXMpIHZhcigtLWJveHNoYWRvdykgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHRvcDogMTAwJSAhaW1wb3J0YW50O1xuICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gIHotaW5kZXg6IDEwMDAgIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogNHB4ICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LXRvb2xiYXIgLmxleHh5LWVkaXRvcl9fdG9vbGJhci1kcm9wZG93bi1yZXNldCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuNXJlbSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LXRvb2xiYXIgLmxleHh5LWVkaXRvcl9fdG9vbGJhci1kcm9wZG93bi1yZXNldDpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ob3ZlcikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlci10ZXh0KSAhaW1wb3J0YW50O1xufVxuXG4vKiBIaWdobGlnaHQgY29sb3IgcGlja2VyIHN0eWxpbmcgKi9cbmxleHh5LWhpZ2hsaWdodC1kcm9wZG93biB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWhpZ2hsaWdodC1kcm9wZG93biBbZGF0YS1idXR0b24tZ3JvdXBdIHtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7XG4gIGdhcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxubGV4eHktaGlnaGxpZ2h0LWRyb3Bkb3duIC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uIHtcbiAgd2lkdGg6IDMycHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAzMnB4ICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogMzJweCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzLCA0cHgpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDAuNzVyZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG59XG5cbi8qIFRleHQgY29sb3Igcm93IC0gc2hvdyBjb2xvcmVkIFwiQWFcIiB0ZXh0IG9uIGRhcmsgYmFja2dyb3VuZCAqL1xubGV4eHktaGlnaGxpZ2h0LWRyb3Bkb3duIFtkYXRhLWJ1dHRvbi1ncm91cD1jb2xvcl0gLmxleHh5LWhpZ2hsaWdodC1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxubGV4eHktaGlnaGxpZ2h0LWRyb3Bkb3duIFtkYXRhLWJ1dHRvbi1ncm91cD1jb2xvcl0gLmxleHh5LWhpZ2hsaWdodC1idXR0b246bnRoLWNoaWxkKDEpIHtcbiAgY29sb3I6IHJnYigxMzYsIDExOCwgMzgpICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWhpZ2hsaWdodC1kcm9wZG93biBbZGF0YS1idXR0b24tZ3JvdXA9Y29sb3JdIC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uOm50aC1jaGlsZCgyKSB7XG4gIGNvbG9yOiByZ2IoMTg1LCA5NCwgNikgIWltcG9ydGFudDtcbn1cblxubGV4eHktaGlnaGxpZ2h0LWRyb3Bkb3duIFtkYXRhLWJ1dHRvbi1ncm91cD1jb2xvcl0gLmxleHh5LWhpZ2hsaWdodC1idXR0b246bnRoLWNoaWxkKDMpIHtcbiAgY29sb3I6IHJnYigyMDcsIDAsIDApICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWhpZ2hsaWdodC1kcm9wZG93biBbZGF0YS1idXR0b24tZ3JvdXA9Y29sb3JdIC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uOm50aC1jaGlsZCg0KSB7XG4gIGNvbG9yOiByZ2IoMjE2LCAyOCwgMTcwKSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1oaWdobGlnaHQtZHJvcGRvd24gW2RhdGEtYnV0dG9uLWdyb3VwPWNvbG9yXSAubGV4eHktaGlnaGxpZ2h0LWJ1dHRvbjpudGgtY2hpbGQoNSkge1xuICBjb2xvcjogcmdiKDE0NCwgMTksIDI1NCkgIWltcG9ydGFudDtcbn1cblxubGV4eHktaGlnaGxpZ2h0LWRyb3Bkb3duIFtkYXRhLWJ1dHRvbi1ncm91cD1jb2xvcl0gLmxleHh5LWhpZ2hsaWdodC1idXR0b246bnRoLWNoaWxkKDYpIHtcbiAgY29sb3I6IHJnYig1LCA5OCwgMTg1KSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1oaWdobGlnaHQtZHJvcGRvd24gW2RhdGEtYnV0dG9uLWdyb3VwPWNvbG9yXSAubGV4eHktaGlnaGxpZ2h0LWJ1dHRvbjpudGgtY2hpbGQoNykge1xuICBjb2xvcjogcmdiKDE3LCAxMzgsIDE1KSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1oaWdobGlnaHQtZHJvcGRvd24gW2RhdGEtYnV0dG9uLWdyb3VwPWNvbG9yXSAubGV4eHktaGlnaGxpZ2h0LWJ1dHRvbjpudGgtY2hpbGQoOCkge1xuICBjb2xvcjogcmdiKDE0OCwgODIsIDIyKSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1oaWdobGlnaHQtZHJvcGRvd24gW2RhdGEtYnV0dG9uLWdyb3VwPWNvbG9yXSAubGV4eHktaGlnaGxpZ2h0LWJ1dHRvbjpudGgtY2hpbGQoOSkge1xuICBjb2xvcjogcmdiKDEwMiwgMTAyLCAxMDIpICFpbXBvcnRhbnQ7XG59XG5cbi8qIEJhY2tncm91bmQgY29sb3Igcm93IC0gc2hvdyBjb2xvcmVkIGJhY2tncm91bmRzICovXG5sZXh4eS1oaWdobGlnaHQtZHJvcGRvd24gW2RhdGEtYnV0dG9uLWdyb3VwPWJhY2tncm91bmQtY29sb3JdIC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1oaWdobGlnaHQtZHJvcGRvd24gW2RhdGEtYnV0dG9uLWdyb3VwPWJhY2tncm91bmQtY29sb3JdIC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uOm50aC1jaGlsZCgxKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjI5LCAyMjMsIDYsIDAuNSkgIWltcG9ydGFudDtcbn1cblxubGV4eHktaGlnaGxpZ2h0LWRyb3Bkb3duIFtkYXRhLWJ1dHRvbi1ncm91cD1iYWNrZ3JvdW5kLWNvbG9yXSAubGV4eHktaGlnaGxpZ2h0LWJ1dHRvbjpudGgtY2hpbGQoMikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMTg1LCA4NywgMC41KSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1oaWdobGlnaHQtZHJvcGRvd24gW2RhdGEtYnV0dG9uLWdyb3VwPWJhY2tncm91bmQtY29sb3JdIC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uOm50aC1jaGlsZCgzKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAxMTgsIDExOCwgMC41KSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1oaWdobGlnaHQtZHJvcGRvd24gW2RhdGEtYnV0dG9uLWdyb3VwPWJhY2tncm91bmQtY29sb3JdIC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uOm50aC1jaGlsZCg0KSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ4LCAxMzcsIDIxNiwgMC41KSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1oaWdobGlnaHQtZHJvcGRvd24gW2RhdGEtYnV0dG9uLWdyb3VwPWJhY2tncm91bmQtY29sb3JdIC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uOm50aC1jaGlsZCg1KSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTkwLCAxNjUsIDI1NSwgMC41KSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1oaWdobGlnaHQtZHJvcGRvd24gW2RhdGEtYnV0dG9uLWdyb3VwPWJhY2tncm91bmQtY29sb3JdIC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uOm50aC1jaGlsZCg2KSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTI0LCAxOTIsIDI1MiwgMC41KSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1oaWdobGlnaHQtZHJvcGRvd24gW2RhdGEtYnV0dG9uLWdyb3VwPWJhY2tncm91bmQtY29sb3JdIC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uOm50aC1jaGlsZCg3KSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTQwLCAyNTUsIDEyOSwgMC41KSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1oaWdobGlnaHQtZHJvcGRvd24gW2RhdGEtYnV0dG9uLWdyb3VwPWJhY2tncm91bmQtY29sb3JdIC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uOm50aC1jaGlsZCg4KSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIxLCAxNzAsIDEyMywgMC41KSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1oaWdobGlnaHQtZHJvcGRvd24gW2RhdGEtYnV0dG9uLWdyb3VwPWJhY2tncm91bmQtY29sb3JdIC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uOm50aC1jaGlsZCg5KSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjAwLCAyMDAsIDIwMCwgMC41KSAhaW1wb3J0YW50O1xufVxuXG4vKiBTZWxlY3RlZCBzdGF0ZSAqL1xubGV4eHktaGlnaGxpZ2h0LWRyb3Bkb3duIC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uW2FyaWEtcHJlc3NlZD10cnVlXSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBvdXRsaW5lLW9mZnNldDogMXB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qIEhvcml6b250YWwgZGl2aWRlciBzdHlsaW5nIC0gb3ZlcnJpZGUgTGV4eHkgZGVmYXVsdHMgKi9cbmxleHh5LWVkaXRvciBmaWd1cmUuaG9yaXpvbnRhbC1kaXZpZGVyLFxubGV4eHktZWRpdG9yIC5ob3Jpem9udGFsLWRpdmlkZXIsXG5sZXh4eS1lZGl0b3IgLmxleHh5LWVkaXRvcl9fY29udGVudCBmaWd1cmUuaG9yaXpvbnRhbC1kaXZpZGVyIHtcbiAgYWxsOiB1bnNldCAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICBtYXJnaW46IDAuNXJlbSAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWVkaXRvciBmaWd1cmUuaG9yaXpvbnRhbC1kaXZpZGVyIGhyLFxubGV4eHktZWRpdG9yIC5ob3Jpem9udGFsLWRpdmlkZXIgaHIsXG5sZXh4eS1lZGl0b3IgLmxleHh5LWVkaXRvcl9fY29udGVudCBmaWd1cmUuaG9yaXpvbnRhbC1kaXZpZGVyIGhyLFxubGV4eHktZWRpdG9yIGhyOm5vdChbY2xhc3NdKSB7XG4gIGFsbDogdW5zZXQgIWltcG9ydGFudDtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAycHggIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91ciwgIzU1NSkgIWltcG9ydGFudDtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG5cbi8qIFRhYmxlIHN0eWxpbmcgKi9cbmxleHh5LWVkaXRvciB0YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAxcmVtIDAgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxubGV4eHktZWRpdG9yIHRhYmxlIHRoLFxubGV4eHktZWRpdG9yIHRhYmxlIHRkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC43NXJlbSAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLyogSGVhZGVyIGNlbGwgc3R5bGluZyAod2hlbiB0b2dnbGVkIG9uIHZpYSB0aGUgdGFibGUgbWVudSkgKi9cbmxleHh5LWVkaXRvciB0YWJsZSB0aCxcbmxleHh5LWVkaXRvciB0YWJsZSB0ZC5sZXh4eS1jb250ZW50X190YWJsZS1jZWxsLS1oZWFkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMTUlLCB0cmFuc3BhcmVudCkgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xufVxuXG4vKiBIb3ZlciBlZmZlY3QgZm9yIG5vbi1oZWFkZXIgY2VsbHMgKi9cbmxleHh5LWVkaXRvciB0YWJsZSB0cjpob3ZlciB0ZDpub3QoLmxleHh5LWNvbnRlbnRfX3RhYmxlLWNlbGwtLWhlYWRlciksXG5sZXh4eS1lZGl0b3IgdGFibGUgdHI6aG92ZXIgdGg6bm90KC5sZXh4eS1jb250ZW50X190YWJsZS1jZWxsLS1oZWFkZXIpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDglLCB0cmFuc3BhcmVudCkgIWltcG9ydGFudDtcbn1cblxuLyogVGFibGUgY2VsbCBzZWxlY3Rpb24gKi9cbmxleHh5LWVkaXRvciB0YWJsZSB0ZC50YWJsZS1jZWxsLS1zZWxlY3RlZCxcbmxleHh5LWVkaXRvciB0YWJsZSB0aC50YWJsZS1jZWxsLS1zZWxlY3RlZCxcbmxleHh5LWVkaXRvciB0YWJsZSB0ZC5sZXh4eS1jb250ZW50X190YWJsZS1jZWxsLS1zZWxlY3RlZCxcbmxleHh5LWVkaXRvciB0YWJsZSB0aC5sZXh4eS1jb250ZW50X190YWJsZS1jZWxsLS1zZWxlY3RlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAyNSUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHggIWltcG9ydGFudDtcbn1cblxuLyogVGFibGUgaGFuZGxlIGJ1dHRvbnMgY29udGFpbmVyIC0gY29tcGxldGVseSB0cmFuc3BhcmVudCAqL1xuLmxleHh5LXRhYmxlLWhhbmRsZS1idXR0b25zLFxubGV4eHktZWRpdG9yIC5sZXh4eS10YWJsZS1oYW5kbGUtYnV0dG9ucyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogVGFibGUgY29udHJvbCBwYW5lbCBzdHlsaW5nICovXG4ubGV4eHktdGFibGUtY29udHJvbCxcbmxleHh5LWVkaXRvciAubGV4eHktdGFibGUtY29udHJvbCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiB2YXIoLS1oLW9mZnNldCkgdmFyKC0tdi1vZmZzZXQpIHZhcigtLWJsdXItcmFkaXVzKSB2YXIoLS1ib3hzaGFkb3cpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLyogVGFibGUgY29udHJvbCB0ZXh0IGFuZCBpbnB1dHMgLSBmaXggd2hpdGUgdGV4dCBvbiB3aGl0ZSBiYWNrZ3JvdW5kICovXG5sZXh4eS1lZGl0b3IgLmxleHh5LXRhYmxlLWNvbnRyb2wsXG5sZXh4eS1lZGl0b3IgLmxleHh5LXRhYmxlLWNvbnRyb2wgKixcbi5sZXh4eS10YWJsZS1jb250cm9sLFxuLmxleHh5LXRhYmxlLWNvbnRyb2wgKiB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLmxleHh5LXRhYmxlLWNvbnRyb2xfX2J1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbn1cblxuLmxleHh5LXRhYmxlLWNvbnRyb2xfX2J1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ob3ZlcikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlci10ZXh0KSAhaW1wb3J0YW50O1xufVxuXG4vKiBUYWJsZSBjb250cm9sIHN1bW1hcnkgKGRyb3Bkb3duIHRyaWdnZXIpIGljb24gKi9cbmxleHh5LWVkaXRvciAubGV4eHktdGFibGUtY29udHJvbCBzdW1tYXJ5LFxuLmxleHh5LXRhYmxlLWNvbnRyb2wgc3VtbWFyeSxcbmxleHh5LWVkaXRvciAubGV4eHktdGFibGUtY29udHJvbCBkZXRhaWxzID4gc3VtbWFyeSxcbi5sZXh4eS10YWJsZS1jb250cm9sIGRldGFpbHMgPiBzdW1tYXJ5IHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS1lZGl0b3IgLmxleHh5LXRhYmxlLWNvbnRyb2wgc3VtbWFyeSBzdmcsXG4ubGV4eHktdGFibGUtY29udHJvbCBzdW1tYXJ5IHN2ZyxcbmxleHh5LWVkaXRvciAubGV4eHktdGFibGUtY29udHJvbCBkZXRhaWxzID4gc3VtbWFyeSBzdmcsXG4ubGV4eHktdGFibGUtY29udHJvbCBkZXRhaWxzID4gc3VtbWFyeSBzdmcge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGZpbGw6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBzdHJva2U6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4ubGV4eHktdGFibGUtY29udHJvbF9fbW9yZS1tZW51LFxuLmxleHh5LXRhYmxlLWNvbnRyb2xfX21vcmUtbWVudS1zZWN0aW9uIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLyogTW9yZSBtZW51IGRyb3Bkb3duIGJ1dHRvbiBzdHlsaW5nICovXG4ubGV4eHktdGFibGUtY29udHJvbF9fbW9yZS1tZW51IGJ1dHRvbixcbi5sZXh4eS10YWJsZS1jb250cm9sX19tb3JlLW1lbnUtc2VjdGlvbiBidXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjM1cmVtIDAuNXJlbSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbn1cblxuLmxleHh5LXRhYmxlLWNvbnRyb2xfX21vcmUtbWVudSBidXR0b246aG92ZXIsXG4ubGV4eHktdGFibGUtY29udHJvbF9fbW9yZS1tZW51LXNlY3Rpb24gYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyLXRleHQpICFpbXBvcnRhbnQ7XG59XG5cbi5sZXh4eS10YWJsZS1jb250cm9sX19tb3JlLW1lbnUgYnV0dG9uOmhvdmVyIHNwYW4sXG4ubGV4eHktdGFibGUtY29udHJvbF9fbW9yZS1tZW51LXNlY3Rpb24gYnV0dG9uOmhvdmVyIHNwYW4sXG4ubGV4eHktdGFibGUtY29udHJvbF9fbW9yZS1tZW51IGJ1dHRvbjpob3ZlciAqLFxuLmxleHh5LXRhYmxlLWNvbnRyb2xfX21vcmUtbWVudS1zZWN0aW9uIGJ1dHRvbjpob3ZlciAqIHtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlci10ZXh0KSAhaW1wb3J0YW50O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUmVuZGVyZWQgQ29udGVudCBUYWJsZXMgKG91dHNpZGUgZWRpdG9yKVxuICAgVGhlc2Ugc3R5bGVzIGFwcGx5IHRvIHRhYmxlcyBpbiBMZXh4eS9BY3Rpb25UZXh0IFxuICAgY29udGVudCBhcmVhcywgcHJvcG9zYWxzLCBhbmQgb3RoZXIgdmlld3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBMZXh4eSBjb250ZW50IHdyYXBwZXIgKi9cbi5sZXh4eS1jb250ZW50IHRhYmxlLFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgdGFibGUsXG5bY2xhc3MqPXJpY2gtdGV4dF0gdGFibGUsXG4ucHJvcG9zYWwtY29udGVudCB0YWJsZSxcbi5wZGYtY29udGVudCB0YWJsZSxcbi5wb3N0LWNvbnRlbnQgdGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMXJlbSAwICFpbXBvcnRhbnQ7XG59XG5cbi5sZXh4eS1jb250ZW50IHRhYmxlIHRoLFxuLmxleHh5LWNvbnRlbnQgdGFibGUgdGQsXG4uYWN0aW9uLXRleHQtY29udGVudCB0YWJsZSB0aCxcbi5hY3Rpb24tdGV4dC1jb250ZW50IHRhYmxlIHRkLFxuW2NsYXNzKj1yaWNoLXRleHRdIHRhYmxlIHRoLFxuW2NsYXNzKj1yaWNoLXRleHRdIHRhYmxlIHRkLFxuLnByb3Bvc2FsLWNvbnRlbnQgdGFibGUgdGgsXG4ucHJvcG9zYWwtY29udGVudCB0YWJsZSB0ZCxcbi5wZGYtY29udGVudCB0YWJsZSB0aCxcbi5wZGYtY29udGVudCB0YWJsZSB0ZCxcbi5wb3N0LWNvbnRlbnQgdGFibGUgdGgsXG4ucG9zdC1jb250ZW50IHRhYmxlIHRkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RlZTJlNikgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC43NXJlbSAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3AgIWltcG9ydGFudDtcbn1cblxuLyogSGVhZGVyIGNlbGxzIGluIHJlbmRlcmVkIGNvbnRlbnQgKi9cbi5sZXh4eS1jb250ZW50IHRhYmxlIHRoLFxuLmxleHh5LWNvbnRlbnQgdGFibGUgdGQubGV4eHktY29udGVudF9fdGFibGUtY2VsbC0taGVhZGVyLFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgdGFibGUgdGgsXG4uYWN0aW9uLXRleHQtY29udGVudCB0YWJsZSB0ZC5sZXh4eS1jb250ZW50X190YWJsZS1jZWxsLS1oZWFkZXIsXG5bY2xhc3MqPXJpY2gtdGV4dF0gdGFibGUgdGgsXG5bY2xhc3MqPXJpY2gtdGV4dF0gdGFibGUgdGQubGV4eHktY29udGVudF9fdGFibGUtY2VsbC0taGVhZGVyLFxuLnByb3Bvc2FsLWNvbnRlbnQgdGFibGUgdGgsXG4ucHJvcG9zYWwtY29udGVudCB0YWJsZSB0ZC5sZXh4eS1jb250ZW50X190YWJsZS1jZWxsLS1oZWFkZXIsXG4ucGRmLWNvbnRlbnQgdGFibGUgdGgsXG4ucGRmLWNvbnRlbnQgdGFibGUgdGQubGV4eHktY29udGVudF9fdGFibGUtY2VsbC0taGVhZGVyLFxuLnBvc3QtY29udGVudCB0YWJsZSB0aCxcbi5wb3N0LWNvbnRlbnQgdGFibGUgdGQubGV4eHktY29udGVudF9fdGFibGUtY2VsbC0taGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICM2Yzc1N2QpIDE1JSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbn1cblxuLyogR2VuZXJpYyB0YWJsZSBzdHlsaW5nIGZvciBhbnkgdGFibGUgaW4gY29udGVudCBhcmVhcyAqL1xuLmNhcmQtYm9keSB0YWJsZTpub3QoLnRhYmxlKSxcbmFydGljbGUgdGFibGUsXG5zZWN0aW9uIHRhYmxlOm5vdCgudGFibGUpLFxuLmNvbnRlbnQgdGFibGU6bm90KC50YWJsZSkge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMXJlbSAwICFpbXBvcnRhbnQ7XG59XG5cbi5jYXJkLWJvZHkgdGFibGU6bm90KC50YWJsZSkgdGgsXG4uY2FyZC1ib2R5IHRhYmxlOm5vdCgudGFibGUpIHRkLFxuYXJ0aWNsZSB0YWJsZSB0aCxcbmFydGljbGUgdGFibGUgdGQsXG5zZWN0aW9uIHRhYmxlOm5vdCgudGFibGUpIHRoLFxuc2VjdGlvbiB0YWJsZTpub3QoLnRhYmxlKSB0ZCxcbi5jb250ZW50IHRhYmxlOm5vdCgudGFibGUpIHRoLFxuLmNvbnRlbnQgdGFibGU6bm90KC50YWJsZSkgdGQge1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjc1cmVtICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgdmVydGljYWwtYWxpZ246IHRvcCAhaW1wb3J0YW50O1xufVxuXG4vKiBIZWFkZXIgY2VsbHMgaW4gZ2VuZXJpYyBjb250ZW50IGFyZWFzICovXG4uY2FyZC1ib2R5IHRhYmxlOm5vdCgudGFibGUpIHRoLFxuLmNhcmQtYm9keSB0YWJsZTpub3QoLnRhYmxlKSB0ZC5sZXh4eS1jb250ZW50X190YWJsZS1jZWxsLS1oZWFkZXIsXG5hcnRpY2xlIHRhYmxlIHRoLFxuYXJ0aWNsZSB0YWJsZSB0ZC5sZXh4eS1jb250ZW50X190YWJsZS1jZWxsLS1oZWFkZXIsXG5zZWN0aW9uIHRhYmxlOm5vdCgudGFibGUpIHRoLFxuc2VjdGlvbiB0YWJsZTpub3QoLnRhYmxlKSB0ZC5sZXh4eS1jb250ZW50X190YWJsZS1jZWxsLS1oZWFkZXIsXG4uY29udGVudCB0YWJsZTpub3QoLnRhYmxlKSB0aCxcbi5jb250ZW50IHRhYmxlOm5vdCgudGFibGUpIHRkLmxleHh5LWNvbnRlbnRfX3RhYmxlLWNlbGwtLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjNmM3NTdkKSAxNSUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG59XG5cbi8qIEhvcml6b250YWwgZGl2aWRlciBpbiByZW5kZXJlZCBjb250ZW50ICovXG4ubGV4eHktY29udGVudCBmaWd1cmUuaG9yaXpvbnRhbC1kaXZpZGVyLFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgZmlndXJlLmhvcml6b250YWwtZGl2aWRlcixcbi5wb3N0LWNvbnRlbnQgZmlndXJlLmhvcml6b250YWwtZGl2aWRlcixcbi5wcm9wb3NhbC1jb250ZW50IGZpZ3VyZS5ob3Jpem9udGFsLWRpdmlkZXIsXG4ucGRmLWNvbnRlbnQgZmlndXJlLmhvcml6b250YWwtZGl2aWRlciB7XG4gIG1hcmdpbjogMC41cmVtIDAgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuXG4ubGV4eHktY29udGVudCBocixcbi5hY3Rpb24tdGV4dC1jb250ZW50IGhyLFxuLnBvc3QtY29udGVudCBocixcbi5wcm9wb3NhbC1jb250ZW50IGhyLFxuLnBkZi1jb250ZW50IGhyIHtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItdG9wOiAycHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RlZTJlNikgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBSZW5kZXJlZCBSaWNoIFRleHQgQ29udGVudCAtIFRleHQgQ29sb3JcbiAgIEVuc3VyZXMgcmljaCB0ZXh0IGNvbnRlbnQgaW5oZXJpdHMgdGhlIHRoZW1lXG4gICB0ZXh0IGNvbG9yIHdoZW4gbm8gaGlnaGxpZ2h0IGlzIGFwcGxpZWRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4ubGV4eHktY29udGVudCxcbi5hY3Rpb24tdGV4dC1jb250ZW50LFxuLnBvc3QtY29udGVudCxcbi5wcm9wb3NhbC1jb250ZW50LFxuLnBkZi1jb250ZW50LFxuW2NsYXNzKj1yaWNoLXRleHRdIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCBpbmhlcml0KTtcbn1cblxuLyogRW5zdXJlIGFsbCB0ZXh0IGVsZW1lbnRzIHdpdGhpbiByZW5kZXJlZCBjb250ZW50IGluaGVyaXQgdGhlIHRleHQgY29sb3IgKi9cbi5sZXh4eS1jb250ZW50IHAsXG4ubGV4eHktY29udGVudCBzcGFuOm5vdChbc3R5bGUqPWNvbG9yXSksXG4ubGV4eHktY29udGVudCBkaXY6bm90KFtzdHlsZSo9Y29sb3JdKSxcbi5sZXh4eS1jb250ZW50IGxpLFxuLmxleHh5LWNvbnRlbnQgdWwsXG4ubGV4eHktY29udGVudCBvbCxcbi5sZXh4eS1jb250ZW50IGJsb2NrcXVvdGUsXG4ubGV4eHktY29udGVudCBzdHJvbmcsXG4ubGV4eHktY29udGVudCBlbSxcbi5sZXh4eS1jb250ZW50IHUsXG4ubGV4eHktY29udGVudCBiLFxuLmxleHh5LWNvbnRlbnQgaSxcbi5hY3Rpb24tdGV4dC1jb250ZW50IHAsXG4uYWN0aW9uLXRleHQtY29udGVudCBzcGFuOm5vdChbc3R5bGUqPWNvbG9yXSksXG4uYWN0aW9uLXRleHQtY29udGVudCBkaXY6bm90KFtzdHlsZSo9Y29sb3JdKSxcbi5hY3Rpb24tdGV4dC1jb250ZW50IGxpLFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgdWwsXG4uYWN0aW9uLXRleHQtY29udGVudCBvbCxcbi5hY3Rpb24tdGV4dC1jb250ZW50IGJsb2NrcXVvdGUsXG4uYWN0aW9uLXRleHQtY29udGVudCBzdHJvbmcsXG4uYWN0aW9uLXRleHQtY29udGVudCBlbSxcbi5hY3Rpb24tdGV4dC1jb250ZW50IHUsXG4uYWN0aW9uLXRleHQtY29udGVudCBiLFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgaSxcbi5wb3N0LWNvbnRlbnQgcCxcbi5wb3N0LWNvbnRlbnQgc3Bhbjpub3QoW3N0eWxlKj1jb2xvcl0pLFxuLnBvc3QtY29udGVudCBkaXY6bm90KFtzdHlsZSo9Y29sb3JdKSxcbi5wb3N0LWNvbnRlbnQgbGksXG4ucG9zdC1jb250ZW50IHVsLFxuLnBvc3QtY29udGVudCBvbCxcbi5wb3N0LWNvbnRlbnQgYmxvY2txdW90ZSxcbi5wb3N0LWNvbnRlbnQgc3Ryb25nLFxuLnBvc3QtY29udGVudCBlbSxcbi5wb3N0LWNvbnRlbnQgdSxcbi5wb3N0LWNvbnRlbnQgYixcbi5wb3N0LWNvbnRlbnQgaSxcbi5wcm9wb3NhbC1jb250ZW50IHAsXG4ucHJvcG9zYWwtY29udGVudCBzcGFuOm5vdChbc3R5bGUqPWNvbG9yXSksXG4ucHJvcG9zYWwtY29udGVudCBkaXY6bm90KFtzdHlsZSo9Y29sb3JdKSxcbi5wcm9wb3NhbC1jb250ZW50IGxpLFxuLnByb3Bvc2FsLWNvbnRlbnQgdWwsXG4ucHJvcG9zYWwtY29udGVudCBvbCxcbi5wcm9wb3NhbC1jb250ZW50IGJsb2NrcXVvdGUsXG4ucHJvcG9zYWwtY29udGVudCBzdHJvbmcsXG4ucHJvcG9zYWwtY29udGVudCBlbSxcbi5wcm9wb3NhbC1jb250ZW50IHUsXG4ucHJvcG9zYWwtY29udGVudCBiLFxuLnByb3Bvc2FsLWNvbnRlbnQgaSB7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4vKiBMaW5rcyBpbiByZW5kZXJlZCBjb250ZW50IC0gdXNlIHRoZW1lIGFjY2VudCBjb2xvciAoZXhjbHVkZSBVSSBidXR0b25zKSAqL1xuLmxleHh5LWNvbnRlbnQgYTpub3QoLmJ1dHRvbi0xMyk6bm90KC5tZHVpLWljb24pOm5vdCguYnRuKTpub3QoW2NsYXNzKj1idXR0b25dKSxcbi5hY3Rpb24tdGV4dC1jb250ZW50IGE6bm90KC5idXR0b24tMTMpOm5vdCgubWR1aS1pY29uKTpub3QoLmJ0bik6bm90KFtjbGFzcyo9YnV0dG9uXSksXG4ucG9zdC1jb250ZW50IGE6bm90KC5idXR0b24tMTMpOm5vdCgubWR1aS1pY29uKTpub3QoLmJ0bik6bm90KFtjbGFzcyo9YnV0dG9uXSksXG4ucHJvcG9zYWwtY29udGVudCBhOm5vdCguYnV0dG9uLTEzKTpub3QoLm1kdWktaWNvbik6bm90KC5idG4pOm5vdChbY2xhc3MqPWJ1dHRvbl0pIHtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICMwMDY2Y2MpO1xufVxuXG4ubGV4eHktY29udGVudCBhOm5vdCguYnV0dG9uLTEzKTpub3QoLm1kdWktaWNvbik6bm90KC5idG4pOm5vdChbY2xhc3MqPWJ1dHRvbl0pOmhvdmVyLFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgYTpub3QoLmJ1dHRvbi0xMyk6bm90KC5tZHVpLWljb24pOm5vdCguYnRuKTpub3QoW2NsYXNzKj1idXR0b25dKTpob3Zlcixcbi5wb3N0LWNvbnRlbnQgYTpub3QoLmJ1dHRvbi0xMyk6bm90KC5tZHVpLWljb24pOm5vdCguYnRuKTpub3QoW2NsYXNzKj1idXR0b25dKTpob3Zlcixcbi5wcm9wb3NhbC1jb250ZW50IGE6bm90KC5idXR0b24tMTMpOm5vdCgubWR1aS1pY29uKTpub3QoLmJ0bik6bm90KFtjbGFzcyo9YnV0dG9uXSk6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyLCAjMDA1MmEzKTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBMZXh4eSAwLjkgdG9vbGJhciwgcHJvbXB0LW1lbnUsIHZhcmlhYmxlIGNoaXBzICYgY29udGVudCBzdHlsaW5nXG4gICBwb3J0ZWQgZnJvbSBwb3dlcmxpbHkuIFZhcnMgcmVzb2x2ZSB2aWEgX3N0eWxlcy5odG1sLmVyYiBhbGlhc2VzLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5sZXh4eS1lZGl0b3IsXG5sZXh4eS10b29sYmFyIHtcbiAgLS1sZXh4eS1jb2xvci1pbmstbGlnaHRlcjogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIC0tbGV4eHktY29sb3ItaW5rLWxpZ2h0ZXN0OiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIC0tbGV4eHktY29sb3ItY2FudmFzOiB2YXIoLS1jYXJkLWNvbG91cik7XG4gIC0tbGV4eHktY29sb3ItdGV4dDogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICAtLWxleHh5LWNvbG9yLWFjY2VudC1kYXJrOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKTtcbiAgLS1sZXh4eS1jb2xvci1hY2NlbnQtbGlnaHQ6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICAtLWxleHh5LWNvbG9yLXNlbGVjdGVkOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMTUlLCB0cmFuc3BhcmVudCk7XG4gIC0tbGV4eHktY29sb3Itc2VsZWN0ZWQtaG92ZXI6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICAtLWxleHh5LWZvY3VzLXJpbmctY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xufVxuXG5sZXh4eS10b29sYmFyIC5sZXh4eS1lZGl0b3JfX3Rvb2xiYXItYnV0dG9uLmxleHh5LWVkaXRvcl9fdG9vbGJhci1ncm91cC1lbmQ6OmFmdGVyIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS10b29sYmFyIC5sZXh4eS1lZGl0b3JfX3Rvb2xiYXItYnV0dG9uIGkuZmEtZHVvdG9uZSxcbmxleHh5LXRvb2xiYXIgLmxleHh5LWVkaXRvcl9fdG9vbGJhci1idXR0b24gc3ZnLnN2Zy1pbmxpbmUtLWZhLFxubGV4eHktdG9vbGJhciAubGV4eHktZ3B0LWJ1dHRvbiBpLmZhLWR1b3RvbmUsXG5sZXh4eS10b29sYmFyIC5sZXh4eS1ncHQtYnV0dG9uIHN2Zy5zdmctaW5saW5lLS1mYSB7XG4gIGZvbnQtc2l6ZTogMC45NXJlbSAhaW1wb3J0YW50O1xuICAtLWZhLXNlY29uZGFyeS1vcGFjaXR5OiAwLjQ7XG4gIC8qIFRoZSBlZGl0b3IncyBgbGV4eHktZWRpdG9yIGkgeyBmb250LXN0eWxlOiBpdGFsaWMgfWAgcnVsZSAoZm9yIDxlbT4vPGk+XG4gICAgIHRleHQpIHdvdWxkIGZhdXgtaXRhbGljaXNlIHRoZSB3ZWJmb250IGljb24gZ2x5cGhzIOKAlCBrZWVwIHRoZW0gdXByaWdodC4gKi9cbiAgZm9udC1zdHlsZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LXRvb2xiYXIgYnV0dG9uOm5vdCgubGV4eHktaGlnaGxpZ2h0LWJ1dHRvbiksXG4ubGV4eHktdG9vbGJhciBidXR0b246bm90KC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uKSxcbmxleHh5LWVkaXRvciBidXR0b25bZGF0YS1sZXh4eS1hY3Rpb25dLFxuLmxleHh5LWJ1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJ1dHRvbi1yYWRpdXMpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDAuNXJlbSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDAuODc1cmVtICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgbWluLXdpZHRoOiAzMnB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMzJweCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LXRvb2xiYXIgYnV0dG9uOm5vdCgubGV4eHktaGlnaGxpZ2h0LWJ1dHRvbik6aG92ZXIsXG4ubGV4eHktdG9vbGJhciBidXR0b246bm90KC5sZXh4eS1oaWdobGlnaHQtYnV0dG9uKTpob3ZlcixcbmxleHh5LWVkaXRvciBidXR0b25bZGF0YS1sZXh4eS1hY3Rpb25dOmhvdmVyLFxuLmxleHh5LWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJ1dHRvbi1ob3ZlcikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlci10ZXh0KSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1ob3ZlcikgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYm94c2hhZG93KSA1MCUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS10b29sYmFyIGJ1dHRvbjpub3QoLmxleHh5LWhpZ2hsaWdodC1idXR0b24pOmFjdGl2ZSxcbmxleHh5LXRvb2xiYXIgYnV0dG9uOm5vdCgubGV4eHktaGlnaGxpZ2h0LWJ1dHRvbilbYXJpYS1wcmVzc2VkPXRydWVdLFxuLmxleHh5LXRvb2xiYXIgYnV0dG9uOm5vdCgubGV4eHktaGlnaGxpZ2h0LWJ1dHRvbik6YWN0aXZlLFxuLmxleHh5LXRvb2xiYXIgYnV0dG9uOm5vdCgubGV4eHktaGlnaGxpZ2h0LWJ1dHRvbilbYXJpYS1wcmVzc2VkPXRydWVdLFxubGV4eHktZWRpdG9yIGJ1dHRvbltkYXRhLWxleHh5LWFjdGlvbl06YWN0aXZlLFxuLmxleHh5LWJ1dHRvbjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSAhaW1wb3J0YW50O1xufVxuXG4udHJpeC1jb250ZW50IG1hcmssXG4udHJpeC1jb250ZW50IC5sZXh4eS1jb250ZW50X19oaWdobGlnaHQsXG4uYWN0aW9uLXRleHQtY29udGVudCBtYXJrLFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgLmxleHh5LWNvbnRlbnRfX2hpZ2hsaWdodCxcbi5sZXh4eS1jb250ZW50IG1hcmssXG4ubGV4eHktY29udGVudCAubGV4eHktY29udGVudF9faGlnaGxpZ2h0LFxuLnByb3Bvc2FsLWNvbnRlbnQgbWFyayxcbi5wcm9wb3NhbC1jb250ZW50IC5sZXh4eS1jb250ZW50X19oaWdobGlnaHQsXG4ucG9zdC1jb250ZW50IG1hcmssXG4ucG9zdC1jb250ZW50IC5sZXh4eS1jb250ZW50X19oaWdobGlnaHQsXG4uY2FyZC1ib2R5IG1hcmssXG4uY2FyZC1ib2R5IC5sZXh4eS1jb250ZW50X19oaWdobGlnaHQsXG5hcnRpY2xlIG1hcmssXG5hcnRpY2xlIC5sZXh4eS1jb250ZW50X19oaWdobGlnaHQsXG5zZWN0aW9uIG1hcmssXG5zZWN0aW9uIC5sZXh4eS1jb250ZW50X19oaWdobGlnaHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxubGV4eHktdG9vbGJhciBidXR0b25bdGl0bGU9XCJBc2sgUGVyaWNsZXNcIl0sXG4ubGV4eHktdG9vbGJhciBidXR0b25bdGl0bGU9XCJBc2sgUGVyaWNsZXNcIl0sXG4ubGV4eHktZ3B0LWJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgODAlLCB0cmFuc3BhcmVudCkpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXJ0aWFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxubGV4eHktdG9vbGJhciBidXR0b25bdGl0bGU9XCJBc2sgUGVyaWNsZXNcIl06aG92ZXIsXG4ubGV4eHktdG9vbGJhciBidXR0b25bdGl0bGU9XCJBc2sgUGVyaWNsZXNcIl06aG92ZXIsXG4ubGV4eHktZ3B0LWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWJ1dHRvbi1ob3ZlciksIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1idXR0b24taG92ZXIpIDgwJSwgdHJhbnNwYXJlbnQpKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyLXRleHQpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWhvdmVyKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDRweCAxMnB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSA1MCUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS10b29sYmFyIGJ1dHRvblt0aXRsZT1cIkFzayBQZXJpY2xlc1wiXTo6YmVmb3JlLFxuLmxleHh5LXRvb2xiYXIgYnV0dG9uW3RpdGxlPVwiQXNrIFBlcmljbGVzXCJdOjpiZWZvcmUsXG4ubGV4eHktZ3B0LWJ1dHRvbjo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIiAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgdG9wOiAtMnB4ICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IC0ycHggIWltcG9ydGFudDtcbiAgcmlnaHQ6IC0ycHggIWltcG9ydGFudDtcbiAgYm90dG9tOiAtMnB4ICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciksIHZhcigtLWJ1dHRvbi1ob3ZlciksIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1idXR0b24tcmFkaXVzKSAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAtMSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LXRvb2xiYXIgYnV0dG9uW3RpdGxlPVwiQXNrIFBlcmljbGVzXCJdOmhvdmVyOjpiZWZvcmUsXG4ubGV4eHktdG9vbGJhciBidXR0b25bdGl0bGU9XCJBc2sgUGVyaWNsZXNcIl06aG92ZXI6OmJlZm9yZSxcbi5sZXh4eS1ncHQtYnV0dG9uOmhvdmVyOjpiZWZvcmUge1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG5cbmxpLmxleHh5LXByb21wdC1tZW51X19pdGVtOmhvdmVyLFxuLmxleHh5LXByb21wdC1tZW51X19pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIDEyJSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XG59XG5cbmxpLmxleHh5LXByb21wdC1tZW51X19pdGVtW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0sXG4ubGV4eHktcHJvbXB0LW1lbnVfX2l0ZW1bYXJpYS1zZWxlY3RlZD10cnVlXSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktdGV4dCkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXNlY29uZGFyeS10ZXh0KSAhaW1wb3J0YW50O1xufVxuXG5saS5sZXh4eS1wcm9tcHQtbWVudV9faXRlbVthcmlhLXNlbGVjdGVkPXRydWVdIC52YXJpYWJsZS1kZXNjLFxuLmxleHh5LXByb21wdC1tZW51X19pdGVtW2FyaWEtc2VsZWN0ZWQ9dHJ1ZV0gLnZhcmlhYmxlLWRlc2Mge1xuICBvcGFjaXR5OiAwLjk1ICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LXRvb2xiYXIgbGV4eHktdG9vbGJhci1kcm9wZG93bixcbmxleHh5LXRvb2xiYXIgbGV4eHktaGlnaGxpZ2h0LWRyb3Bkb3duLFxubGV4eHktdG9vbGJhciBsZXh4eS1saW5rLWRyb3Bkb3duIHtcbiAgLyogRG9uJ3Qgc2V0IGBkaXNwbGF5YCBoZXJlIOKAlCB0aGUgZ2VtIGhpZGVzIHRoZSBvdmVyZmxvdyAoXCJzaG93IG1vcmVcIilcbiAgICAgZHJvcGRvd24gd2l0aCBkaXNwbGF5Om5vbmUgdW50aWwgdGhlIHRvb2xiYXIgYWN0dWFsbHkgb3ZlcmZsb3dzLCBhbmQgYW5cbiAgICAgIWltcG9ydGFudCBkaXNwbGF5IHdvdWxkIGZvcmNlIHRoYXQgZW1wdHkgYnV0dG9uIHRvIGFsd2F5cyBzaG93LiAqL1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LXRvb2xiYXIgW2RhdGEtZHJvcGRvd24tcGFuZWxdLFxubGV4eHktdG9vbGJhciAubGV4eHktZWRpdG9yX190b29sYmFyLWRyb3Bkb3duLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogdmFyKC0taC1vZmZzZXQpIHZhcigtLXYtb2Zmc2V0KSB2YXIoLS1ibHVyLXJhZGl1cykgdmFyKC0tYm94c2hhZG93KSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuXG5sZXh4eS10b29sYmFyIFtkYXRhLWRyb3Bkb3duLXRyaWdnZXJdW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGVydGlhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbmxleHh5LWhpZ2hsaWdodC1kcm9wZG93biBbZGF0YS1kcm9wZG93bi1wYW5lbF0gW2RhdGEtYnV0dG9uLWdyb3VwXSxcbmxleHh5LWhpZ2hsaWdodC1kcm9wZG93biBbZGF0YS1idXR0b24tZ3JvdXBdIHtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBmbGV4LWRpcmVjdGlvbjogcm93ICFpbXBvcnRhbnQ7XG4gIGdhcDogMC4yNXJlbSAhaW1wb3J0YW50O1xuICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW0gIWltcG9ydGFudDtcbn1cblxuLnRyaXgtY29udGVudCB0YWJsZSxcbi5hY3Rpb24tdGV4dC1jb250ZW50IHRhYmxlLFxuLmxleHh5LWNvbnRlbnQgdGFibGUsXG5bY2xhc3MqPXJpY2gtdGV4dF0gdGFibGUsXG4ucHJvcG9zYWwtY29udGVudCB0YWJsZSxcbi5wZGYtY29udGVudCB0YWJsZSxcbi5wb3N0LWNvbnRlbnQgdGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMXJlbSAwICFpbXBvcnRhbnQ7XG59XG5cbi50cml4LWNvbnRlbnQgdGFibGUgdGgsXG4udHJpeC1jb250ZW50IHRhYmxlIHRkLFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgdGFibGUgdGgsXG4uYWN0aW9uLXRleHQtY29udGVudCB0YWJsZSB0ZCxcbi5sZXh4eS1jb250ZW50IHRhYmxlIHRoLFxuLmxleHh5LWNvbnRlbnQgdGFibGUgdGQsXG5bY2xhc3MqPXJpY2gtdGV4dF0gdGFibGUgdGgsXG5bY2xhc3MqPXJpY2gtdGV4dF0gdGFibGUgdGQsXG4ucHJvcG9zYWwtY29udGVudCB0YWJsZSB0aCxcbi5wcm9wb3NhbC1jb250ZW50IHRhYmxlIHRkLFxuLnBkZi1jb250ZW50IHRhYmxlIHRoLFxuLnBkZi1jb250ZW50IHRhYmxlIHRkLFxuLnBvc3QtY29udGVudCB0YWJsZSB0aCxcbi5wb3N0LWNvbnRlbnQgdGFibGUgdGQge1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwLjc1cmVtICFpbXBvcnRhbnQ7XG4gIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgdmVydGljYWwtYWxpZ246IHRvcCAhaW1wb3J0YW50O1xufVxuXG4udHJpeC1jb250ZW50IHRhYmxlIHRoLFxuLnRyaXgtY29udGVudCB0YWJsZSB0ZC5sZXh4eS1jb250ZW50X190YWJsZS1jZWxsLS1oZWFkZXIsXG4uYWN0aW9uLXRleHQtY29udGVudCB0YWJsZSB0aCxcbi5hY3Rpb24tdGV4dC1jb250ZW50IHRhYmxlIHRkLmxleHh5LWNvbnRlbnRfX3RhYmxlLWNlbGwtLWhlYWRlcixcbi5sZXh4eS1jb250ZW50IHRhYmxlIHRoLFxuLmxleHh5LWNvbnRlbnQgdGFibGUgdGQubGV4eHktY29udGVudF9fdGFibGUtY2VsbC0taGVhZGVyLFxuW2NsYXNzKj1yaWNoLXRleHRdIHRhYmxlIHRoLFxuW2NsYXNzKj1yaWNoLXRleHRdIHRhYmxlIHRkLmxleHh5LWNvbnRlbnRfX3RhYmxlLWNlbGwtLWhlYWRlcixcbi5wcm9wb3NhbC1jb250ZW50IHRhYmxlIHRoLFxuLnByb3Bvc2FsLWNvbnRlbnQgdGFibGUgdGQubGV4eHktY29udGVudF9fdGFibGUtY2VsbC0taGVhZGVyLFxuLnBkZi1jb250ZW50IHRhYmxlIHRoLFxuLnBkZi1jb250ZW50IHRhYmxlIHRkLmxleHh5LWNvbnRlbnRfX3RhYmxlLWNlbGwtLWhlYWRlcixcbi5wb3N0LWNvbnRlbnQgdGFibGUgdGgsXG4ucG9zdC1jb250ZW50IHRhYmxlIHRkLmxleHh5LWNvbnRlbnRfX3RhYmxlLWNlbGwtLWhlYWRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjNmM3NTdkKSAxNSUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG59XG5cbi50cml4LWNvbnRlbnQgLmF0dGFjaG1lbnQtZ2FsbGVyeSxcbi5hY3Rpb24tdGV4dC1jb250ZW50IC5hdHRhY2htZW50LWdhbGxlcnksXG4ucG9zdC1jb250ZW50IC5hdHRhY2htZW50LWdhbGxlcnksXG4ucHJvcG9zYWwtY29udGVudCAuYXR0YWNobWVudC1nYWxsZXJ5LFxuLnBkZi1jb250ZW50IC5hdHRhY2htZW50LWdhbGxlcnkge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLnRyaXgtY29udGVudCAuYXR0YWNobWVudC1nYWxsZXJ5IC5hdHRhY2htZW50LFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgLmF0dGFjaG1lbnQtZ2FsbGVyeSAuYXR0YWNobWVudCxcbi5wb3N0LWNvbnRlbnQgLmF0dGFjaG1lbnQtZ2FsbGVyeSAuYXR0YWNobWVudCxcbi5wcm9wb3NhbC1jb250ZW50IC5hdHRhY2htZW50LWdhbGxlcnkgLmF0dGFjaG1lbnQsXG4ucGRmLWNvbnRlbnQgLmF0dGFjaG1lbnQtZ2FsbGVyeSAuYXR0YWNobWVudCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcbiAgZ2FwOiAwICFpbXBvcnRhbnQ7XG4gIGlubGluZS1zaXplOiBjYWxjKDMzLjMzMyUgLSAwLjhjaCkgIWltcG9ydGFudDtcbiAgdmVydGljYWwtYWxpZ246IHRvcCAhaW1wb3J0YW50O1xufVxuXG4udHJpeC1jb250ZW50IC5hdHRhY2htZW50LWdhbGxlcnkuYXR0YWNobWVudC1nYWxsZXJ5LS0yIC5hdHRhY2htZW50LFxuLnRyaXgtY29udGVudCAuYXR0YWNobWVudC1nYWxsZXJ5LmF0dGFjaG1lbnQtZ2FsbGVyeS0tNCAuYXR0YWNobWVudCxcbi5hY3Rpb24tdGV4dC1jb250ZW50IC5hdHRhY2htZW50LWdhbGxlcnkuYXR0YWNobWVudC1nYWxsZXJ5LS0yIC5hdHRhY2htZW50LFxuLmFjdGlvbi10ZXh0LWNvbnRlbnQgLmF0dGFjaG1lbnQtZ2FsbGVyeS5hdHRhY2htZW50LWdhbGxlcnktLTQgLmF0dGFjaG1lbnQsXG4ucG9zdC1jb250ZW50IC5hdHRhY2htZW50LWdhbGxlcnkuYXR0YWNobWVudC1nYWxsZXJ5LS0yIC5hdHRhY2htZW50LFxuLnBvc3QtY29udGVudCAuYXR0YWNobWVudC1nYWxsZXJ5LmF0dGFjaG1lbnQtZ2FsbGVyeS0tNCAuYXR0YWNobWVudCxcbi5wcm9wb3NhbC1jb250ZW50IC5hdHRhY2htZW50LWdhbGxlcnkuYXR0YWNobWVudC1nYWxsZXJ5LS0yIC5hdHRhY2htZW50LFxuLnByb3Bvc2FsLWNvbnRlbnQgLmF0dGFjaG1lbnQtZ2FsbGVyeS5hdHRhY2htZW50LWdhbGxlcnktLTQgLmF0dGFjaG1lbnQsXG4ucGRmLWNvbnRlbnQgLmF0dGFjaG1lbnQtZ2FsbGVyeS5hdHRhY2htZW50LWdhbGxlcnktLTIgLmF0dGFjaG1lbnQsXG4ucGRmLWNvbnRlbnQgLmF0dGFjaG1lbnQtZ2FsbGVyeS5hdHRhY2htZW50LWdhbGxlcnktLTQgLmF0dGFjaG1lbnQge1xuICBpbmxpbmUtc2l6ZTogY2FsYyg1MCUgLSAwLjhjaCkgIWltcG9ydGFudDtcbn1cblxuLnRyaXgtY29udGVudCAuYXR0YWNobWVudC1nYWxsZXJ5IC5hdHRhY2htZW50IGltZyxcbi5hY3Rpb24tdGV4dC1jb250ZW50IC5hdHRhY2htZW50LWdhbGxlcnkgLmF0dGFjaG1lbnQgaW1nLFxuLnBvc3QtY29udGVudCAuYXR0YWNobWVudC1nYWxsZXJ5IC5hdHRhY2htZW50IGltZyxcbi5wcm9wb3NhbC1jb250ZW50IC5hdHRhY2htZW50LWdhbGxlcnkgLmF0dGFjaG1lbnQgaW1nLFxuLnBkZi1jb250ZW50IC5hdHRhY2htZW50LWdhbGxlcnkgLmF0dGFjaG1lbnQgaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuXG4udHJpeC1jb250ZW50IGZpZ3VyZS5ob3Jpem9udGFsLWRpdmlkZXIsXG4uYWN0aW9uLXRleHQtY29udGVudCBmaWd1cmUuaG9yaXpvbnRhbC1kaXZpZGVyLFxuLnBvc3QtY29udGVudCBmaWd1cmUuaG9yaXpvbnRhbC1kaXZpZGVyLFxuLnByb3Bvc2FsLWNvbnRlbnQgZmlndXJlLmhvcml6b250YWwtZGl2aWRlcixcbi5wZGYtY29udGVudCBmaWd1cmUuaG9yaXpvbnRhbC1kaXZpZGVyIHtcbiAgbWFyZ2luOiAwLjVyZW0gMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG5cbi50cml4LWNvbnRlbnQgaHIsXG4uYWN0aW9uLXRleHQtY29udGVudCBocixcbi5wb3N0LWNvbnRlbnQgaHIsXG4ucHJvcG9zYWwtY29udGVudCBocixcbi5wZGYtY29udGVudCBociB7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMCAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xufVxuXG4ucHJvcG9zYWwtdmFyaWFibGUtY2hpcCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC4wNWVtIDAuNTVlbTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxNCUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMzUlLCB0cmFuc3BhcmVudCk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbi5wcm9wb3NhbC12YXJpYWJsZS1jaGlwIC5wdi1sYWJlbCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wcm9wb3NhbC12YXJpYWJsZS1jaGlwIC5wdi10b2tlbiB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxubGV4eHktZWRpdG9yIC5wcm9wb3NhbC12YXJpYWJsZS1jaGlwIC5wdi1sYWJlbCB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxubGV4eHktZWRpdG9yIC5wcm9wb3NhbC12YXJpYWJsZS1jaGlwIC5wdi10b2tlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmxleHh5LWVkaXRvciBhY3Rpb24tdGV4dC1hdHRhY2htZW50W2NvbnRlbnQtdHlwZV49XCJhcHBsaWNhdGlvbi92bmQud2F0dHNhcHAudmFyaWFibGVcIl0ge1xuICBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmUgIWltcG9ydGFudDtcbn1cblxubGV4eHktZWRpdG9yIGFjdGlvbi10ZXh0LWF0dGFjaG1lbnRbY29udGVudC10eXBlXj1cImFwcGxpY2F0aW9uL3ZuZC53YXR0c2FwcC52YXJpYWJsZVwiXSBsZXh4eS1ub2RlLWRlbGV0ZS1idXR0b24ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qIEZvcm1hdCAvIGhlYWRpbmcgZHJvcGRvd24gbWVudSBpdGVtcyBhcmUgZnVsbC13aWR0aCBbaWNvbl0gW2xhYmVsXSByb3dzLlxuICAgT3VyIGdlbmVyaWMgYGxleHh5LXRvb2xiYXIgYnV0dG9uOm5vdCgubGV4eHktaGlnaGxpZ2h0LWJ1dHRvbilgIHJ1bGUgKGFib3ZlKVxuICAgc2V0cyBgbWluLXdpZHRoOjMycHg7IGhlaWdodDozMnB4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyYCB0byBtYWtlIHRoZSBtYWluXG4gICB0b29sYmFyIGJ1dHRvbnMgc3F1YXJlIGljb24gdGlsZXMg4oCUIGJ1dCB0aGF0IGFsc28gbWF0Y2hlcyB0aGVzZSBtZW51IGJ1dHRvbnMsXG4gICBvdmVycmlkaW5nIHRoZSBmbGV4IGRlZmF1bHQgYG1pbi13aWR0aDphdXRvYCBzbyB0aGV5IHNocmluayBiZWxvdyB0aGVpciBsYWJlbFxuICAgYW5kIHRoZSB0ZXh0IHdyYXBzIHZlcnRpY2FsbHkuIFJlc3RvcmUgY29udGVudC1iYXNlZCBzaXppbmcgZm9yIG1lbnUgaXRlbXMuICovXG5sZXh4eS10b29sYmFyIC5sZXh4eS1lZGl0b3JfX3Rvb2xiYXItZHJvcGRvd24tbGlzdCBidXR0b24sXG4ubGV4eHktdG9vbGJhciAubGV4eHktZWRpdG9yX190b29sYmFyLWRyb3Bkb3duLWxpc3QgYnV0dG9uIHtcbiAgbWluLXdpZHRoOiBtYXgtY29udGVudCAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgbWluLWhlaWdodDogMzJweCAhaW1wb3J0YW50O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xufVxuXG4vKiBNb2Rlcm4gU2VsZiBRdW90ZSBTeXN0ZW0gU3R5bGluZyAqL1xuLyogVXNlcyBkeW5hbWljIENTUyB2YXJpYWJsZXMgZnJvbSBfc3R5bGVzLmh0bWwuZXJiICovXG4jbW9kZXJuLXNlbGYtcXVvdGUtYXBwIHtcbiAgZm9udC1mYW1pbHk6IFwiUXVpY2tzYW5kXCIsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgMCUsIHZhcigtLWNhcmQtY29sb3VyKSAxMDAlKSAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiBQcm9ncmVzcyBCYXIgKi9cbi5wcm9ncmVzcy1jb250YWluZXIge1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IHZhcigtLXByb2dyZXNzLXN0aWNreS1uYXZiYXItb2Zmc2V0LCAxMTBweCk7XG4gIHotaW5kZXg6IDk5O1xuICBwYWRkaW5nOiAwIDIlO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5wcm9ncmVzcy1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDAgMSU7XG4gIH1cbn1cblxuLnByb2dyZXNzLWJhci1tb2Rlcm4ge1xuICBtYXgtd2lkdGg6IDEwMDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDEuNXJlbSAycmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMDUpLCBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBhbmltYXRpb246IGZsb2F0UHJvZ3Jlc3NCYXIgNnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG4ucHJvZ3Jlc3MtYmFyLW1vZGVybjpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgYm94LXNoYWRvdzogMCAxMnB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjEyKSwgMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4wOCksIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5wcm9ncmVzcy1iYXItbW9kZXJuIHtcbiAgICBwYWRkaW5nOiAxcmVtIDEuNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmxvYXRQcm9ncmVzc0JhciB7XG4gIDAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMHB4KTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgfVxufVxuLnByb2dyZXNzLXN0ZXBzIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIGdhcDogMC41cmVtO1xufVxuXG4uc3RlcCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zNXJlbTtcbiAgZmxleDogMTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uc3RlcC1jaXJjbGUge1xuICB3aWR0aDogMzZweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDAuOXJlbTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuLnN0ZXAuYWN0aXZlIC5zdGVwLWNpcmNsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tdGV4dCkgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uc3RlcC5jb21wbGV0ZWQgLnN0ZXAtY2lyY2xlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0KSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5zdGVwIHNwYW4ge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnN0ZXAuYWN0aXZlIHNwYW4sXG4uc3RlcC5jb21wbGV0ZWQgc3BhbiB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnByb2dyZXNzLWxpbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygxLjVyZW0gKyAxOHB4KTtcbiAgbGVmdDogNHJlbTtcbiAgcmlnaHQ6IDRyZW07XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICB6LWluZGV4OiAxO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5wcm9ncmVzcy1saW5lIHtcbiAgICB0b3A6IGNhbGMoMXJlbSArIDE0cHgpO1xuICAgIGxlZnQ6IDNyZW07XG4gICAgcmlnaHQ6IDNyZW07XG4gIH1cbn1cblxuLnByb2dyZXNzLWZpbGwge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuNXMgZWFzZTtcbn1cblxuLyogTWFpbiBDb250ZW50ICovXG4ubW9kZXJuLWNvbnRlbnQge1xuICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDJyZW0gMnJlbSAzcmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5tb2Rlcm4tY29udGVudCB7XG4gICAgcGFkZGluZzogMS41cmVtIDFyZW0gMnJlbTtcbiAgfVxufVxuXG4uc3RhZ2UtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1pbi1oZWlnaHQ6IDYwMHB4O1xufVxuLnN0YWdlLWNvbnRhaW5lci5lbmVyZ3ktc3RhZ2UsIC5zdGFnZS1jb250YWluZXIuZXF1aXBtZW50LXN0YWdlIHtcbiAgcGFkZGluZzogMnJlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuc3RhZ2UtY29udGFpbmVyLmVuZXJneS1zdGFnZSwgLnN0YWdlLWNvbnRhaW5lci5lcXVpcG1lbnQtc3RhZ2Uge1xuICAgIHBhZGRpbmc6IDEuMjVyZW07XG4gIH1cbn1cblxuLyogV2VsY29tZSBTdGFnZSAqL1xuLndlbGNvbWUtc3RhZ2Uge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5oZXJvLXNlY3Rpb24ge1xuICBwYWRkaW5nOiA0cmVtIDNyZW07XG59XG5cbi5oZXJvLXRpdGxlIHtcbiAgZm9udC1zaXplOiAzcmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5oZXJvLXN1YnRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuODtcbiAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgbWF4LXdpZHRoOiA2MDBweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLmZlYXR1cmUtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjUwcHgsIDFmcikpO1xuICBnYXA6IDJyZW07XG4gIG1hcmdpbi1ib3R0b206IDNyZW07XG59XG5cbi5mZWF0dXJlLWNhcmQge1xuICBwYWRkaW5nOiAycmVtO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuLmZlYXR1cmUtY2FyZDpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdykgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uZmVhdHVyZS1pY29uIHtcbiAgZm9udC1zaXplOiAyLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5mZWF0dXJlLWNhcmQgaDMge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uZmVhdHVyZS1jYXJkIHAge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuODtcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xufVxuXG4uY3RhLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0KSAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxLjFyZW07XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5jdGEtYnV0dG9uOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93KSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQpICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3BhY2l0eTogMC45O1xufVxuXG4uYXJyb3cge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xufVxuXG4uY3RhLWJ1dHRvbjpob3ZlciAuYXJyb3cge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KTtcbn1cblxuLyogRW5lcmd5IFN0YWdlICovXG4uc3RhZ2UtaGVhZGVyIHtcbiAgcGFkZGluZzogM3JlbSAzcmVtIDJyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5zdGFnZS1oZWFkZXIgaDIge1xuICBmb250LXNpemU6IDIuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uc3RhZ2UtaGVhZGVyIHAge1xuICBmb250LXNpemU6IDEuMXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjg7XG59XG5cbi5jb250ZW50LWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAzMDBweDtcbiAgZ2FwOiAzcmVtO1xuICBwYWRkaW5nOiAzcmVtO1xufVxuXG4uY29uZmlnLXNlY3Rpb24ge1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuXG4uY29uZmlnLXNlY3Rpb24gaDMge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLyogRW5lcmd5IFN0YWdlIFR3byBDb2x1bW4gTGF5b3V0ICovXG4uZW5lcmd5LXR3by1jb2x1bW4ge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAzODBweDtcbiAgZ2FwOiAycmVtO1xuICBhbGlnbi1pdGVtczogc3RhcnQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gIC5lbmVyZ3ktdHdvLWNvbHVtbiB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiAxLjVyZW07XG4gIH1cbn1cblxuLmVuZXJneS1pbnB1dHMtY29sdW1uIHtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4uZW5lcmd5LWNoYXJ0cy1jb2x1bW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDFyZW07XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIHRvcDogMTgwcHg7XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTAyNHB4KSB7XG4gIC5lbmVyZ3ktY2hhcnRzLWNvbHVtbiB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgfVxufVxuXG4vKiBrV2ggSW5wdXQgU3R5bGVzICovXG4ua3doLWlucHV0LWNvbnRhaW5lciB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5rd2gtaW5wdXQtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNzVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHBhZGRpbmc6IDFyZW0gMS4yNXJlbTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZTtcbn1cbi5rd2gtaW5wdXQtZ3JvdXA6Zm9jdXMtd2l0aGluIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyKTtcbn1cblxuLmt3aC1pbnB1dCB7XG4gIGZsZXg6IDE7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXgtd2lkdGg6IDIwMHB4O1xufVxuLmt3aC1pbnB1dDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4ua3doLWlucHV0OjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcbiAgb3BhY2l0eTogMC41O1xufVxuLmt3aC1pbnB1dCB7XG4gIC8qIFJlbW92ZSBzcGlubmVyIGJ1dHRvbnMgKi9cbiAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG59XG4ua3doLWlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLCAua3doLWlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IDA7XG59XG5cbi5rd2gtdW5pdCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ua3doLWhpbnQge1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi8qIFJhdGUgSW5mbyBDYXJkIEVuaGFuY2VtZW50cyAqL1xuLnJhdGUtaW5mby1jYXJkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHBhZGRpbmc6IDEuMjVyZW07XG59XG4ucmF0ZS1pbmZvLWNhcmQgaDQge1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG59XG5cbi50b3UtYmFkZ2UtbGFyZ2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxMGI5ODEgMCUsICMwNTk2NjkgMTAwJSk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBmb250LXNpemU6IDAuODVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi51dGlsaXR5LXRvdS1iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC41cmVtO1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgIzEwYjk4MSAxNSUsIHRyYW5zcGFyZW50KTtcbiAgY29sb3I6ICMxMGI5ODE7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5yYXRlLXBlcmlvZHMtbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC43NXJlbTtcbn1cblxuLnJhdGUtcGVyaW9kLWl0ZW0ge1xuICBwYWRkaW5nOiAwLjc1cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1idXR0b24tY29sb3VyKTtcbn1cblxuLnBlcmlvZC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG59XG5cbi5wZXJpb2QtbmFtZSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4ucGVyaW9kLXJhdGUge1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cik7XG59XG5cbi5wZXJpb2QtdGltZXMge1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xufVxuXG4ucGVyaW9kLWRheXMge1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi8qIENoYXJ0IENhcmQgKi9cbi5jaGFydC1jYXJkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHBhZGRpbmc6IDEuMjVyZW07XG59XG4uY2hhcnQtY2FyZCBoNCB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xufVxuXG4vKiBGaXhlZCBjaGFydCBjb250YWluZXIgdG8gcHJldmVudCB3aWR0aCBibG93b3V0ICovXG4uY2hhcnQtY29udGFpbmVyLWZpeGVkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5jaGFydC1jb250YWluZXItZml4ZWQgY2FudmFzIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4vKiBUaW55IHRvZ2dsZSBidXR0b25zICovXG4uYnRuLXRpbnkge1xuICBwYWRkaW5nOiAycHggOHB4O1xuICBmb250LXNpemU6IDEwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIG9wYWNpdHk6IDAuNjtcbn1cbi5idG4tdGlueTpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDE7XG59XG4uYnRuLXRpbnkuYWN0aXZlLCAuYnRuLXRpbnlbZGF0YS1zZWxlY3RlZD10cnVlXSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1jb2xvdXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQpO1xuICBvcGFjaXR5OiAxO1xufVxuXG4vKiBQcm9maWxlIHNlbGVjdG9ycyAqL1xuLnByb2ZpbGUtc2VsZWN0b3JzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICBnYXA6IDFyZW07XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnByb2ZpbGUtc2VsZWN0b3JzIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgfVxufVxuXG4vKiBDb21wYWN0IE1vbnRobHkgSW5wdXQgR3JpZCAqL1xuLm1vbnRobHktZ3JpZC1jb21wYWN0IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgZ2FwOiAwLjVyZW07XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm1vbnRobHktZ3JpZC1jb21wYWN0IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLm1vbnRobHktZ3JpZC1jb21wYWN0IHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICB9XG59XG5cbi5tb250aC1pbnB1dC1ncm91cCAubW9udGgtcHJlcGVuZCB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWluLXdpZHRoOiA0MHB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuLm1vbnRoLWlucHV0LWdyb3VwIC5tb250aC1maWVsZC1jb21wYWN0IHtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cbi5tb250aC1pbnB1dC1ncm91cCAubW9udGgtZmllbGQtY29tcGFjdDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5tb250aC1pbnB1dC1ncm91cCAubW9udGgtZmllbGQtY29tcGFjdCB7XG4gIC8qIFJlbW92ZSBzcGlubmVyIGJ1dHRvbnMgKi9cbiAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG59XG4ubW9udGgtaW5wdXQtZ3JvdXAgLm1vbnRoLWZpZWxkLWNvbXBhY3Q6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sIC5tb250aC1pbnB1dC1ncm91cCAubW9udGgtZmllbGQtY29tcGFjdDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xufVxuLm1vbnRoLWlucHV0LWdyb3VwIC5tb250aC1zdWZmaXgge1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC40cmVtO1xufVxuXG4vKiBVdGlsaXR5IEdyaWQgKi9cbi51dGlsaXR5LWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIwMHB4LCAxZnIpKTtcbiAgZ2FwOiAxcmVtO1xufVxuXG4udXRpbGl0eS1jYXJkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi51dGlsaXR5LWNhcmQ6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpICFpbXBvcnRhbnQ7XG59XG5cbi51dGlsaXR5LWNhcmQuc2VsZWN0ZWQge1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93KSAhaW1wb3J0YW50O1xufVxuXG4udXRpbGl0eS1yYWRpbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi51dGlsaXR5LWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnV0aWxpdHktbmFtZSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnV0aWxpdHktcmF0ZSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC43O1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cblxuLyogQmlsbCBJbnB1dCAqL1xuLmJpbGwtaW5wdXQtY29udGFpbmVyIHtcbiAgbWF4LXdpZHRoOiA0MDBweDtcbn1cblxuLmJpbGwtaW5wdXQtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgcGFkZGluZzogMC43NXJlbSAxcmVtO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjNzIGVhc2U7XG59XG5cbi5iaWxsLWlucHV0LWdyb3VwOmZvY3VzLXdpdGhpbiB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1idXR0b24tY29sb3VyKSAxMCUsIHRyYW5zcGFyZW50KSAhaW1wb3J0YW50O1xufVxuXG4uY3VycmVuY3ktc3ltYm9sIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjc7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uYmlsbC1pbnB1dCB7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgZmxleDogMTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5wZXJpb2Qge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNztcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbn1cblxuLmJpbGwtcHJldmlldyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnVzYWdlLWFtb3VudCB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi51c2FnZS11bml0IHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjc7XG4gIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xufVxuXG4udXNhZ2UtbGFiZWwge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNztcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XG59XG5cbi8qIEFkdmFuY2VkIFNlY3Rpb24gKi9cbi5hZHZhbmNlZC1zZWN0aW9uIHtcbiAgbWF4LWhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjNzIGVhc2U7XG59XG5cbi5hZHZhbmNlZC1zZWN0aW9uLnNob3cge1xuICBtYXgtaGVpZ2h0OiAxMDAwcHg7XG59XG5cbi5tb250aGx5LWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDE1MHB4LCAxZnIpKTtcbiAgZ2FwOiAxcmVtO1xuICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuXG4ubW9udGgtaW5wdXQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNXJlbTtcbn1cblxuLm1vbnRoLWxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLm1vbnRoLWZpZWxkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4ubW9udGgtZmllbGQ6Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDJweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYnV0dG9uLWNvbG91cikgMTAlLCB0cmFuc3BhcmVudCkgIWltcG9ydGFudDtcbn1cblxuLnVuaXQge1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjc7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLyogUHJlc2V0IEJ1dHRvbnMgKi9cbi5wcmVzZXQtYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG59XG4ucHJlc2V0LWJ1dHRvbnMgLnByZXNldC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbiAgb3BhY2l0eTogMC42O1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbn1cblxuLnByZXNldC1idG4ge1xuICBwYWRkaW5nOiA0cHggMTJweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xufVxuLnByZXNldC1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24tY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyKTtcbn1cbi5wcmVzZXQtYnRuLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1jb2xvdXIpO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpO1xufVxuXG4vKiBNb250aGx5IENoYXJ0IENvbnRhaW5lciAqL1xuLm1vbnRobHktY2hhcnQtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgcGFkZGluZzogMXJlbTtcbn1cbi5tb250aGx5LWNoYXJ0LWNvbnRhaW5lciBjYW52YXMge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogODBweDtcbn1cblxuLyogQ29uZmlnIFN1YnNlY3Rpb24gKi9cbi5jb25maWctc3Vic2VjdGlvbiB7XG4gIHBhZGRpbmc6IDEuMjVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG59XG4uY29uZmlnLXN1YnNlY3Rpb24gaDQge1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG59XG5cbi8qIEZvcm0gQWN0aW9ucyAqL1xuLmZvcm0tYWN0aW9ucyB7XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmNvbnRpbnVlLWJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tdGV4dCkgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMC44NzVyZW0gMnJlbTtcbiAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uY29udGludWUtYnV0dG9uOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93KSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQpICFpbXBvcnRhbnQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgb3BhY2l0eTogMC45O1xufVxuXG4uY29udGludWUtYnV0dG9uLmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbi5jb250aW51ZS1idXR0b24uZGlzYWJsZWQ6aG92ZXIge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qIFNpZGViYXIgKi9cbi5zaWRlYmFyIHtcbiAgcGFkZGluZy10b3A6IDFyZW07XG59XG5cbi5pbmZvLWNhcmQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgcGFkZGluZzogMS41cmVtO1xufVxuXG4uaW5mby1jYXJkIGg0IHtcbiAgZm9udC1zaXplOiAxLjFyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnV0aWxpdHktZGV0YWlscyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC43NXJlbTtcbn1cblxuLmRldGFpbC1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuXG4uZGV0YWlsLXJvdyBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi5kZXRhaWwtcm93IHNwYW46bGFzdC1jaGlsZCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLyogRXF1aXBtZW50IFN0YWdlICovXG4uZXF1aXBtZW50LXN0YWdlIC5zdGFnZS1oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLmVxdWlwbWVudC1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMzYwcHgsIDFmcikpO1xuICBnYXA6IDEuNXJlbTtcbiAgcGFkZGluZzogMnJlbSAzcmVtIDNyZW07XG59XG5cbi5lcXVpcG1lbnQtY2FyZCB7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4wNCkgIWltcG9ydGFudDtcbn1cblxuLmVxdWlwbWVudC1jYXJkOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogNHB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGVhc2U7XG59XG5cbi5lcXVpcG1lbnQtY2FyZDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogMCAxMnB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjE1KSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTZweCk7XG59XG5cbi5lcXVpcG1lbnQtY2FyZDpob3Zlcjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1idXR0b24tY29sb3VyKSwgdmFyKC0tc2Nyb2xsYmFyLWNvbG91cikpO1xufVxuXG4uZXF1aXBtZW50LWNhcmQuc2VsZWN0ZWQge1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci13aWR0aDogM3B4O1xuICBib3gtc2hhZG93OiAwIDEycHggNDhweCByZ2JhKDI0NCwgMTE2LCAzNiwgMC4yNSkgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC00cHgpO1xufVxuXG4uZXF1aXBtZW50LWNhcmQuc2VsZWN0ZWQ6OmJlZm9yZSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tYnV0dG9uLWNvbG91ciksIHZhcigtLXNjcm9sbGJhci1jb2xvdXIpKTtcbn1cblxuLmVxdWlwbWVudC1jYXJkLnNlbGVjdGVkOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwi4pyTXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxcmVtO1xuICBsZWZ0OiAxcmVtO1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAzMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHotaW5kZXg6IDEwO1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuXG4uZXF1aXBtZW50LWNhcmQucmVjb21tZW5kZWQge1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDIwcHggcmdiYSgyNDQsIDExNiwgMzYsIDAuMTUpICFpbXBvcnRhbnQ7XG59XG5cbi5lcXVpcG1lbnQtY2FyZC5yZWNvbW1lbmRlZDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWNvbG91cik7XG59XG5cbi5lcXVpcG1lbnQtY2FyZC5pbmNsdWRlZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuOTtcbn1cblxuLmVxdWlwbWVudC1jYXJkLnNhdmluZyB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiAwLjc7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmVxdWlwbWVudC1jYXJkLnNhdmluZzo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxcmVtICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDFyZW0gIWltcG9ydGFudDtcbiAgd2lkdGg6IDI0cHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDNweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYW5pbWF0aW9uOiBzcGluIDAuOHMgbGluZWFyIGluZmluaXRlO1xuICB6LWluZGV4OiAxMDA7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMCAhaW1wb3J0YW50O1xuICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5Aa2V5ZnJhbWVzIHNwaW4ge1xuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuLmdlbmVyYXRpb24tYmFkZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMC43NXJlbTtcbiAgcmlnaHQ6IDAuNzVyZW07XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC42cmVtO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICB6LWluZGV4OiAxMDtcbn1cbi5nZW5lcmF0aW9uLWJhZGdlLmdlbi0yIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzYzNjZmMSwgIzhiNWNmNik7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5nZW5lcmF0aW9uLWJhZGdlLmdlbi0zIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzBlYTVlOSwgIzA2YjZkNCk7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cbi5nZW5lcmF0aW9uLWJhZGdlLmdlbi00IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzEwYjk4MSwgIzM0ZDM5OSk7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmVxdWlwbWVudC1jYXJkLmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBmaWx0ZXI6IGdyYXlzY2FsZSg1MCUpO1xufVxuLmVxdWlwbWVudC1jYXJkLmRpc2FibGVkOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiBub25lO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cbi5lcXVpcG1lbnQtY2FyZC5kaXNhYmxlZDo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmluY29tcGF0aWJsZS1ub3RpY2Uge1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tYm9yZGVyLWNvbG91cik7XG59XG5cbi5lcXVpcG1lbnQtcmFkaW8ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uZXF1aXBtZW50LWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgLyogT3ZlcnJpZGUgZ2xvYmFsIHJhZGlvIGJ1dHRvbiBzdHlsZXMgKi9cbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICBiYWNrZHJvcC1maWx0ZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogaW5oZXJpdCAhaW1wb3J0YW50O1xuICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uZXF1aXBtZW50LWxhYmVsOjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5lcXVpcG1lbnQtbGFiZWw6aG92ZXIge1xuICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmVxdWlwbWVudC1sYWJlbDpob3Zlcjo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMCAhaW1wb3J0YW50O1xufVxuXG4uZXF1aXBtZW50LXJhZGlvOmNoZWNrZWQgKyAuZXF1aXBtZW50LWxhYmVsIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5lcXVpcG1lbnQtcmFkaW86Y2hlY2tlZCArIC5lcXVpcG1lbnQtbGFiZWw6OmJlZm9yZSB7XG4gIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcbn1cblxuLmVxdWlwbWVudC1pbWFnZSB7XG4gIGhlaWdodDogMjIwcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWJhY2tncm91bmQtY29sb3VyKSwgdmFyKC0tY2FyZC1jb2xvdXIpKSAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMS41cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5lcXVpcG1lbnQtaW1hZ2U6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCBjZW50ZXIsIHRyYW5zcGFyZW50IDQwJSwgdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpIDEwMCUpO1xuICBvcGFjaXR5OiAwLjM7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uZXF1aXBtZW50LWltYWdlIGltZyB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xufVxuXG4uZXF1aXBtZW50LWluZm8ge1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGZsZXg6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC43NXJlbTtcbn1cblxuLmVxdWlwbWVudC1pbmZvIGgzLFxuLmVxdWlwbWVudC1pbmZvIGg0IHtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5cbi5lcXVpcG1lbnQtc3BlY3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnNwZWMge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogOTBweDtcbiAgcGFkZGluZzogMC43NXJlbSAwLjVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uc3BlYy12YWx1ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDJyZW07XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLnNwZWMtdW5pdCB7XG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjc7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLmVxdWlwbWVudC1wcmljZSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5cbi5lcXVpcG1lbnQtZGVzY3JpcHRpb24ge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuODtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIG1hcmdpbjogMDtcbn1cblxuLyogQmFkZ2VzICovXG4ucmVjb21tZW5kZWQtYmFkZ2UsXG4uaW5jbHVkZWQtYmFkZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMC43NXJlbTtcbiAgcmlnaHQ6IDAuNzVyZW07XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC43NXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICB6LWluZGV4OiAxMDtcbn1cblxuLnJlY29tbWVuZGVkLWJhZGdlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0KSAhaW1wb3J0YW50O1xufVxuXG4uaW5jbHVkZWQtYmFkZ2Uge1xuICBiYWNrZ3JvdW5kOiAjMTBiOTgxICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgxNiwgMTg1LCAxMjksIDAuMik7XG59XG5cbi5iYXR0ZXJ5LXJlcXVpcmVkLWJhZGdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDAuNzVyZW07XG4gIHJpZ2h0OiAwLjc1cmVtO1xuICBwYWRkaW5nOiAwLjM1cmVtIDAuNzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wM2VtO1xuICB6LWluZGV4OiAxMDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzhiNWNmNiwgIzYzNjZmMSkgIWltcG9ydGFudDtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDEzOSwgOTIsIDI0NiwgMC4zKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmVxdWlwbWVudC1jYXJkLmJhdHRlcnktcmVxdWlyZWQge1xuICBib3JkZXItY29sb3I6ICM4YjVjZjYgIWltcG9ydGFudDtcbn1cbi5lcXVpcG1lbnQtY2FyZC5iYXR0ZXJ5LXJlcXVpcmVkLnNlbGVjdGVkIHtcbiAgYm9yZGVyLWNvbG9yOiAjOGI1Y2Y2ICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgxMzksIDkyLCAyNDYsIDAuMjUpICFpbXBvcnRhbnQ7XG59XG5cbi8qIFN0YWdlIEFjdGlvbnMgKi9cbi5zdGFnZS1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAycmVtIDNyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLmJhY2stYnV0dG9uIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLmJhY2stYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBvcGFjaXR5OiAxO1xufVxuXG4vKiBSZXNwb25zaXZlIERlc2lnbiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5jb250ZW50LWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogMnJlbTtcbiAgICBwYWRkaW5nOiAycmVtO1xuICB9XG4gIC5wcm9ncmVzcy1zdGVwcyB7XG4gICAgZ2FwOiAwLjI1cmVtO1xuICB9XG4gIC5wcm9ncmVzcy1iYXItbW9kZXJuIHtcbiAgICBtYXgtd2lkdGg6IDk1JTtcbiAgfVxuICAuc3RlcCBzcGFuIHtcbiAgICBmb250LXNpemU6IDAuNjVyZW07XG4gIH1cbiAgLnN0ZXAtY2lyY2xlIHtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICB9XG4gIC5oZXJvLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gIH1cbiAgLmVxdWlwbWVudC1ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBwYWRkaW5nOiAycmVtO1xuICB9XG4gIC5zdGFnZS1hY3Rpb25zIHtcbiAgICBwYWRkaW5nOiAxLjVyZW0gMnJlbTtcbiAgfVxufVxuLyogRm9ybSBFbGVtZW50cyAqL1xuLm1vZGVybi1mb3JtIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4ubW9kZXJuLWZvcm0gaW5wdXQsXG4ubW9kZXJuLWZvcm0gc2VsZWN0LFxuLm1vZGVybi1mb3JtIHRleHRhcmVhIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4ubW9kZXJuLWZvcm0gaW5wdXQ6Zm9jdXMsXG4ubW9kZXJuLWZvcm0gc2VsZWN0OmZvY3VzLFxuLm1vZGVybi1mb3JtIHRleHRhcmVhOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJ1dHRvbi1jb2xvdXIpIDEwJSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XG59XG5cbi8qIExvYWRpbmcgU3RhdGVzICovXG4ubG9hZGluZyB7XG4gIG9wYWNpdHk6IDAuNztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5sb2FkaW5nOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgbWFyZ2luOiAtMTBweCAwIDAgLTEwcHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgc3BpbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG4vKiBBbmltYXRpb24gQ2xhc3NlcyAqL1xuLmZhZGUtaW4ge1xuICBhbmltYXRpb246IGZhZGVJbiAwLjVzIGVhc2UtaW47XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG4uc2xpZGUtdXAge1xuICBhbmltYXRpb246IHNsaWRlVXAgMC4zcyBlYXNlLW91dDtcbn1cblxuQGtleWZyYW1lcyBzbGlkZVVwIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG4vKiBWaXN1YWwgRGVzaWduZXIgTW9kZSAqL1xuLnZpc3VhbC1kZXNpZ25lci1tb2RlIHtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuLmFycmF5LWRlc2lnbmVyLWNvbnRhaW5lciB7XG4gIG1pbi1oZWlnaHQ6IDcwMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogbm9uZTtcbn1cblxuLyogUmVzdWx0cyBTdGFnZSAqL1xuLnJlc3VsdHMtc3RhZ2Uge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnJlc3VsdHMtaGVybyB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWJ1dHRvbi1jb2xvdXIpLCB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tdGV4dCkgIWltcG9ydGFudDtcbiAgcGFkZGluZzogNHJlbSAzcmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5yZXN1bHRzLWhlcm8gaDEge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0KSAhaW1wb3J0YW50O1xufVxuXG4ucmVzdWx0cy1oZXJvIHAge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIG9wYWNpdHk6IDAuOTtcbiAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0KSAhaW1wb3J0YW50O1xufVxuXG4ua2V5LW1ldHJpY3Mge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIwMHB4LCAxZnIpKTtcbiAgZ2FwOiAycmVtO1xuICBtYXgtd2lkdGg6IDgwMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbn1cblxuLm1ldHJpYy1jYXJkIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpICFpbXBvcnRhbnQ7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgcGFkZGluZzogMnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgIWltcG9ydGFudDtcbn1cblxuLm1ldHJpYy1jYXJkLnByaW1hcnkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpICFpbXBvcnRhbnQ7XG59XG5cbi5tZXRyaWMtdmFsdWUge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0KSAhaW1wb3J0YW50O1xufVxuXG4ubWV0cmljLWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIG9wYWNpdHk6IDAuOTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0KSAhaW1wb3J0YW50O1xufVxuXG4ucmVzdWx0cy1zZWN0aW9ucyB7XG4gIHBhZGRpbmc6IDNyZW07XG59XG5cbi5yZXN1bHQtc2VjdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDRyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBwYWRkaW5nOiAycmVtO1xuICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93KSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4ucmVzdWx0LXNlY3Rpb24gaDIge1xuICBmb250LXNpemU6IDEuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLmNvc3QtYnJlYWtkb3duIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuXG4uY29zdC1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAxcmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5jb3N0LWl0ZW0uaW5jZW50aXZlcyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLmNvc3QtaXRlbS50b3RhbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tdGV4dCkgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxLjFyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnNhdmluZ3MtY29tcGFyaXNvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDJyZW07XG4gIHBhZGRpbmc6IDJyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uY29tcGFyaXNvbi1pdGVtIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uY29tcGFyaXNvbi1pdGVtIGg0IHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuODtcbn1cblxuLmJpbGwtYW1vdW50IHtcbiAgZm9udC1zaXplOiAycmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG59XG5cbi5iaWxsLWFtb3VudC5vbGQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDJweCBzb2xpZCAjZWY0NDQ0ICFpbXBvcnRhbnQ7XG59XG5cbi5iaWxsLWFtb3VudC5uZXcge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uY29tcGFyaXNvbi1hcnJvdyB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbi5wZXJmb3JtYW5jZS1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMDBweCwgMWZyKSk7XG4gIGdhcDogMnJlbTtcbn1cblxuLnBlcmZvcm1hbmNlLWNhcmQge1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4ucGVyZm9ybWFuY2UtY2FyZCBoNCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5vZmZzZXQtdmlzdWFsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxcmVtO1xufVxuXG4ub2Zmc2V0LWJhciB7XG4gIGZsZXg6IDE7XG4gIGhlaWdodDogMTJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ub2Zmc2V0LWZpbGwge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tYnV0dG9uLWNvbG91ciksIHZhcigtLWJ1dHRvbi1jb2xvdXIpKSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjVzIGVhc2U7XG59XG5cbi5vZmZzZXQtcGVyY2VudGFnZSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi8qIEVuZXJneSBPZmZzZXQgQ2FyZCBTdHlsaW5nICovXG4uZW5lcmd5LW9mZnNldC1jYXJkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ub2Zmc2V0LWNoYXJ0LWNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAycmVtIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDMwMHB4O1xufVxuXG4ub2Zmc2V0LWNlbnRlci1sYWJlbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5vZmZzZXQtcGVyY2VudGFnZS1sYXJnZSB7XG4gIGZvbnQtc2l6ZTogM3JlbTtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG59XG5cbi5vZmZzZXQtbGFiZWwtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC43O1xufVxuXG4ub2Zmc2V0LWRldGFpbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEuNXJlbTtcbiAgbWFyZ2luOiAycmVtIDAgMS41cmVtO1xuICBwYWRkaW5nOiAxcmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4ub2Zmc2V0LXN0YXQge1xuICBmbGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNzVyZW07XG59XG5cbi5vZmZzZXQtc3RhdCAuc3RhdC1pY29uIHtcbiAgZm9udC1zaXplOiAycmVtO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLm9mZnNldC1zdGF0IC5zdGF0LW51bWJlciB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4ub2Zmc2V0LXN0YXQgLnN0YXQtZGVzY3JpcHRpb24ge1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjc7XG59XG5cbi5vZmZzZXQtd2FybmluZyxcbi5vZmZzZXQtc3VjY2VzcyB7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMC43NXJlbTtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG5cbi5vZmZzZXQtd2FybmluZy5leGNlc3Mge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjEpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjM5LCA2OCwgNjgsIDAuMykgIWltcG9ydGFudDtcbiAgY29sb3I6ICNkYzI2MjYgIWltcG9ydGFudDtcbn1cblxuLm9mZnNldC13YXJuaW5nLmV4Y2VzcyBpIHtcbiAgY29sb3I6ICNlZjQ0NDQ7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1hcmdpbi10b3A6IDAuMTI1cmVtO1xufVxuXG4ub2Zmc2V0LXdhcm5pbmcucGFydGlhbCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjQ1LCAxNTgsIDExLCAwLjEpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjQ1LCAxNTgsIDExLCAwLjMpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZDk3NzA2ICFpbXBvcnRhbnQ7XG59XG5cbi5vZmZzZXQtd2FybmluZy5wYXJ0aWFsIGkge1xuICBjb2xvcjogI2Y1OWUwYjtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmbGV4LXNocmluazogMDtcbiAgbWFyZ2luLXRvcDogMC4xMjVyZW07XG59XG5cbi5vZmZzZXQtc3VjY2VzcyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjEpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTYsIDE4NSwgMTI5LCAwLjMpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDU5NjY5ICFpbXBvcnRhbnQ7XG59XG5cbi5vZmZzZXQtc3VjY2VzcyBpIHtcbiAgY29sb3I6ICMxMGI5ODE7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5vZmZzZXQtd2FybmluZyBzdHJvbmcsXG4ub2Zmc2V0LXN1Y2Nlc3Mgc3Ryb25nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XG59XG5cbi5vZmZzZXQtd2FybmluZyBwIHtcbiAgbWFyZ2luOiAwO1xuICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4vKiBWaXN1YWwgRGVzaWduZXIgRW5lcmd5IE9mZnNldCBEaXNwbGF5ICovXG4uZGVzaWduZXItb2Zmc2V0LWRpc3BsYXkge1xuICBtYXJnaW46IDEuNXJlbSAwO1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4ub2Zmc2V0LWNpcmNsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDE1MHB4O1xuICBoZWlnaHQ6IDE1MHB4O1xuICBtYXJnaW46IDAgYXV0byAxcmVtO1xufVxuXG4ub2Zmc2V0LXN2ZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG59XG5cbi5vZmZzZXQtYmcge1xuICBmaWxsOiBub25lO1xuICBzdHJva2U6IHZhcigtLWJvcmRlci1jb2xvdXIpO1xuICBzdHJva2Utd2lkdGg6IDg7XG59XG5cbi5vZmZzZXQtcHJvZ3Jlc3Mge1xuICBmaWxsOiBub25lO1xuICBzdHJva2U6ICMxMGI5ODE7XG4gIHN0cm9rZS13aWR0aDogODtcbiAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xuICB0cmFuc2l0aW9uOiBzdHJva2UtZGFzaG9mZnNldCAwLjVzIGVhc2UsIHN0cm9rZSAwLjNzIGVhc2U7XG59XG5cbi5vZmZzZXQtdmFsdWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5vZmZzZXQtdmFsdWUgI29mZnNldC1wZXJjZW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBmb250LXdlaWdodDogODAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2U7XG59XG5cbi5vZmZzZXQtc3VibGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNztcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbn1cblxuLm9mZnNldC1pbmZvIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ub2Zmc2V0LW1lc3NhZ2Uge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAuNzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5vZmZzZXQtbWVzc2FnZS5pbmZvIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxNTYsIDE2MywgMTc1LCAwLjEpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjNmI3MjgwICFpbXBvcnRhbnQ7XG59XG5cbi5vZmZzZXQtbWVzc2FnZS5wYXJ0aWFsIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyNDUsIDE1OCwgMTEsIDAuMSkgIWltcG9ydGFudDtcbiAgY29sb3I6ICNkOTc3MDYgIWltcG9ydGFudDtcbn1cblxuLm9mZnNldC1tZXNzYWdlLnN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE2LCAxODUsIDEyOSwgMC4xKSAhaW1wb3J0YW50O1xuICBjb2xvcjogIzA1OTY2OSAhaW1wb3J0YW50O1xufVxuXG4ub2Zmc2V0LW1lc3NhZ2UuZXhjZXNzIHtcbiAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xKSAhaW1wb3J0YW50O1xuICBjb2xvcjogI2RjMjYyNiAhaW1wb3J0YW50O1xufVxuXG4ub2Zmc2V0LWNpcmNsZS5zdWNjZXNzIHtcbiAgYW5pbWF0aW9uOiBzdWNjZXNzUHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbi5vZmZzZXQtY2lyY2xlLmV4Y2VzcyB7XG4gIGFuaW1hdGlvbjogd2FybmluZ1B1bHNlIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbi5vZmZzZXQtY2lyY2xlLmNhbGN1bGF0aW5nIHtcbiAgb3BhY2l0eTogMC42O1xufVxuXG4ub2Zmc2V0LWNpcmNsZS5jYWxjdWxhdGluZyAjb2Zmc2V0LXBlcmNlbnQge1xuICBvcGFjaXR5OiAwLjQ7XG4gIGNvbG9yOiAjOWNhM2FmICFpbXBvcnRhbnQ7XG59XG5cbi5vZmZzZXQtbWVzc2FnZS5jYWxjdWxhdGluZyB7XG4gIGJhY2tncm91bmQ6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjM2I4MmY2ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbkBrZXlmcmFtZXMgcHVsc2Uge1xuICAwJSwgMTAwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDAuNztcbiAgfVxufVxuQGtleWZyYW1lcyBzdWNjZXNzUHVsc2Uge1xuICAwJSwgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7XG4gIH1cbn1cbkBrZXlmcmFtZXMgd2FybmluZ1B1bHNlIHtcbiAgMCUsIDEwMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjg7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc3BpbiB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG4uc3lzdGVtLXNwZWNzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjc1cmVtO1xufVxuXG4uc3BlYy1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuNXJlbSAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uc3BlYy1yb3c6bGFzdC1jaGlsZCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi5pbXBhY3QtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpO1xuICBnYXA6IDEuNXJlbTtcbn1cblxuLmltcGFjdC1jYXJkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAycmVtIDFyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uaW1wYWN0LWNhcmQ6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gIGJveC1zaGFkb3c6IHZhcigtLWJveC1zaGFkb3cpICFpbXBvcnRhbnQ7XG59XG5cbi5pbXBhY3QtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uaW1wYWN0LXZhbHVlIHtcbiAgZm9udC1zaXplOiAxLjc1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLmltcGFjdC1sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC44O1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cblxuLnJlc3VsdHMtY3RhIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAzcmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgbWFyZ2luOiAycmVtIDNyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5yZXN1bHRzLWN0YSBoMyB7XG4gIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4ucmVzdWx0cy1jdGEgcCB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC44O1xuICBtYXJnaW4tYm90dG9tOiAycmVtO1xufVxuXG4uY3RhLWJ1dHRvbi5sYXJnZSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgcGFkZGluZzogMS4yNXJlbSAzcmVtO1xufVxuXG4vKiBFcXVpcG1lbnQgQ2F0ZWdvcmllcyAqL1xuLmVxdWlwbWVudC1jYXRlZ29yaWVzIHtcbiAgcGFkZGluZzogMDtcbn1cblxuLmVxdWlwbWVudC1jYXRlZ29yeSB7XG4gIG1hcmdpbi1ib3R0b206IDNyZW07XG59XG5cbi5lcXVpcG1lbnQtY2F0ZWdvcnkgaDMge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xufVxuXG4uZXF1aXBtZW50LWNvbnRyb2xzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgcGFkZGluZzogMC44NzVyZW0gMS4yNXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgZ2FwOiAwLjVyZW07XG59XG5cbi5xdWFudGl0eS1jb250cm9sIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG59XG5cbi5xdWFudGl0eS1jb250cm9sIGxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4ucXVhbnRpdHktaW5wdXQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4ucXR5LWJ0biB7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzIGVhc2U7XG59XG5cbi5xdHktYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnF0eS1maWVsZCB7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXdlaWdodDogNTAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uZXF1aXBtZW50LXN1bW1hcnkge1xuICBtYXJnaW46IDJyZW0gM3JlbTtcbiAgcGFkZGluZzogMS41cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbn1cblxuLmVxdWlwbWVudC1zdW1tYXJ5IGg0IHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5zdW1tYXJ5LWl0ZW1zIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLmVtcHR5LXN1bW1hcnkge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNjtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDFyZW07XG4gIG1hcmdpbjogMDtcbn1cblxuLnN1bW1hcnktdG90YWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnRvdGFsLWFtb3VudCB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xufVxuXG4uc3VtbWFyeS1jYXBhY2l0eSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnN1bW1hcnktaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMC41cmVtIDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uc3VtbWFyeS1pdGVtOmxhc3QtY2hpbGQge1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG4vKiBJbmNlbnRpdmVzIFN0YWdlICovXG4uaW5jZW50aXZlcy1jb250ZW50IHtcbiAgcGFkZGluZzogMnJlbSAzcmVtO1xufVxuXG4uYXZhaWxhYmxlLWluY2VudGl2ZXMsXG4uc2VsZWN0ZWQtaW5jZW50aXZlcyB7XG4gIG1hcmdpbi1ib3R0b206IDNyZW07XG59XG5cbi5hdmFpbGFibGUtaW5jZW50aXZlcyBoMyxcbi5zZWxlY3RlZC1pbmNlbnRpdmVzIGgzIHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uaW5jZW50aXZlLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMwMHB4LCAxZnIpKTtcbiAgZ2FwOiAxLjVyZW07XG59XG5cbi5pbmNlbnRpdmUtY2FyZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5cbi5pbmNlbnRpdmUtY2FyZDpob3Zlcjpub3QoLmRpc2FibGVkKSB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdykgIWltcG9ydGFudDtcbn1cblxuLmluY2VudGl2ZS1jYXJkLmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLmluY2VudGl2ZS1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uaW5jZW50aXZlLWNoZWNrYm94IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uaW5jZW50aXZlLWNoZWNrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmNoZWNrYm94LWxhYmVsIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2hlY2ttYXJrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLmluY2VudGl2ZS1jaGVjazpjaGVja2VkICsgLmNoZWNrYm94LWxhYmVsIC5jaGVja21hcmsge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5pbmNlbnRpdmUtY2hlY2s6Y2hlY2tlZCArIC5jaGVja2JveC1sYWJlbCAuY2hlY2ttYXJrOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwi4pyTXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tdGV4dCkgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLmluY2VudGl2ZS1oZWFkZXIgaDQge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5pbmNlbnRpdmUtZGV0YWlscyBwIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjg7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uaW5jZW50aXZlLXZhbHVlIC52YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi50YXgtdGltaW5nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNzVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xufVxuXG4uYmVmb3JlLXRheCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5hZnRlci10YXgge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5zZWxlY3RlZC1saXN0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxcmVtO1xufVxuXG4uc2VsZWN0ZWQtaW5jZW50aXZlIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuLnNlbGVjdGVkLWluY2VudGl2ZSAuaW5jZW50aXZlLWluZm8gaDQge1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0ZWQtaW5jZW50aXZlIC5pbmNlbnRpdmUtaW5mbyBwIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuODtcbn1cblxuLmluY29tcGF0aWJsZS13YXJuaW5nIHtcbiAgY29sb3I6ICNlZjQ0NDQgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAwLjhyZW0gIWltcG9ydGFudDtcbiAgbWFyZ2luLXRvcDogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5yZW1vdmUtYnRuIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiAjZWY0NDQ0ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLnJlbW92ZS1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjZGMyNjI2ICFpbXBvcnRhbnQ7XG59XG5cbi5pbmNlbnRpdmVzLXRvdGFsIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuXG4uaW5jZW50aXZlcy10b3RhbCBoNCB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi50b3RhbC12YWx1ZSB7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEuNXJlbTtcbn1cblxuLyogRXF1aXBtZW50IERldGFpbHMgU2VjdGlvbiAqL1xuLmVxdWlwbWVudC1kZXRhaWxzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxLjVyZW07XG59XG5cbi5jb21wb25lbnQtY2FyZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMS41cmVtO1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuXG4uY29tcG9uZW50LWNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiB2YXIoLS1ib3gtc2hhZG93KSAhaW1wb3J0YW50O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG59XG5cbi5jb21wb25lbnQtaW1hZ2Uge1xuICB3aWR0aDogMTAwcHg7XG4gIGhlaWdodDogMTAwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLmNvbXBvbmVudC1pbWFnZSBpbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi5jb21wb25lbnQtaW5mbyB7XG4gIGZsZXg6IDE7XG59XG5cbi5jb21wb25lbnQtaW5mbyBoNCB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uY29tcG9uZW50LXNwZWNzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnNwZWMtaXRlbSB7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMC43NXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLmNvbXBvbmVudC10b3RhbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnRvdGFsLWNhcGFjaXR5IHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEuMXJlbTtcbn1cblxuLnRvdGFsLWNvc3Qge1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbn1cblxuLyogQ2hhcnQgU2VjdGlvbnMgKi9cbi5jaGFydC1zZWN0aW9uIHtcbiAgbWFyZ2luLXRvcDogMnJlbTtcbiAgcGFkZGluZy10b3A6IDJyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uY2hhcnQtc2VjdGlvbiBoMyB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLmNoYXJ0LWNvbnRhaW5lciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIG1hcmdpbjogMXJlbSAwO1xufVxuXG4ucGF5YmFjay1pbmRpY2F0b3Ige1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi5wYXliYWNrLWluZGljYXRvciBwIHtcbiAgbWFyZ2luOiAwLjVyZW0gMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4ucGF5YmFjay1pbmRpY2F0b3Igc3Ryb25nIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEuMXJlbTtcbn1cblxuLyogUHJvZ3Jlc3MgU3RlcHMgYXMgTGlua3MgKi9cbi5zdGVwIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG5cbi5zdGVwOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbn1cblxuLnN0ZXAuZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uc3RlcC5kaXNhYmxlZDpob3ZlciB7XG4gIHRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyogQmlsbCBDb21wYXJpc29uIFNlY3Rpb24gKi9cbi5iaWxsLWNvbXBhcmlzb24tc3VtbWFyeSB7XG4gIG1hcmdpbi10b3A6IDJyZW07XG59XG5cbi5jb21wYXJpc29uLXN0YXRzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMDBweCwgMWZyKSk7XG4gIGdhcDogMS41cmVtO1xufVxuXG4uc3RhdC1jYXJkIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuXG4uc3RhdC1jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdykgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xufVxuXG4uc3RhdC1jYXJkIGg0IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuODtcbn1cblxuLnN0YXQtY2FyZCAuc3RhdHMtdmFsdWUge1xuICBmb250LXNpemU6IDEuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xufVxuXG4uc3RhdC1jYXJkIC5zdGF0cy1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC43O1xufVxuXG4vKiBTeXN0ZW0gU3VtbWFyeSAqL1xuLnN5c3RlbS1zdW1tYXJ5IHtcbiAgbWFyZ2luOiAycmVtIDNyZW0gMDtcbiAgcGFkZGluZzogMS41cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbn1cblxuLnN5c3RlbS1zdW1tYXJ5IGg0IHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5zdW1tYXJ5LWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDEyMHB4LCAxZnIpKTtcbiAgZ2FwOiAxcmVtO1xufVxuXG4uc3VtbWFyeS1zdGF0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAxcmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uc3RhdHMtdmFsdWUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5zdGF0cy1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjc7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDT01QUkVIRU5TSVZFIE1PQklMRSBSRVNQT05TSVZFIFNUWUxFU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIFRhYmxldCBhbmQgYmVsb3cgKDc2OHB4KSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC8qIFdlbGNvbWUvSGVybyBTZWN0aW9uICovXG4gIC5oZXJvLXNlY3Rpb24ge1xuICAgIHBhZGRpbmc6IDIuNXJlbSAxLjVyZW07XG4gIH1cbiAgLmhlcm8tc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gIH1cbiAgLmZlYXR1cmUtZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiAxLjVyZW07XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICB9XG4gIC5jdGEtYnV0dG9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICB9XG4gIC8qIFN0YWdlIEhlYWRlcnMgKi9cbiAgLnN0YWdlLWhlYWRlciB7XG4gICAgcGFkZGluZzogMnJlbSAxLjVyZW07XG4gIH1cbiAgLnN0YWdlLWhlYWRlciBoMiB7XG4gICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICB9XG4gIC5zdGFnZS1oZWFkZXIgcCB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICB9XG4gIC8qIENvbnRlbnQgR3JpZCAqL1xuICAuY29udGVudC1ncmlkIHtcbiAgICBwYWRkaW5nOiAxLjVyZW07XG4gIH1cbiAgLyogVXRpbGl0eSBHcmlkICovXG4gIC51dGlsaXR5LWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogMC43NXJlbTtcbiAgfVxuICAudXRpbGl0eS1jYXJkIHtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG4gIC8qIEJpbGwgSW5wdXQgKi9cbiAgLmJpbGwtaW5wdXQtY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmJpbGwtaW5wdXQtZ3JvdXAge1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIHBhZGRpbmc6IDAuNjI1cmVtIDAuODc1cmVtO1xuICB9XG4gIC5jdXJyZW5jeS1zeW1ib2wsXG4gIC5wZXJpb2Qge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxuICAuYmlsbC1pbnB1dCB7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gIH1cbiAgLmJpbGwtcHJldmlldyB7XG4gICAgbWFyZ2luLXRvcDogMC43NXJlbTtcbiAgfVxuICAudXNhZ2UtYW1vdW50IHtcbiAgICBmb250LXNpemU6IDEuNzVyZW07XG4gIH1cbiAgLyogTW9udGhseSBHcmlkICovXG4gIC5tb250aGx5LWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgZ2FwOiAwLjc1cmVtO1xuICB9XG4gIC5tb250aC1pbnB1dCB7XG4gICAgcGFkZGluZzogMC43NXJlbTtcbiAgfVxuICAubW9udGgtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICB9XG4gIC5tb250aC1maWVsZCB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgfVxuICAvKiBFcXVpcG1lbnQgR3JpZCAqL1xuICAuZXF1aXBtZW50LWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogMXJlbTtcbiAgfVxuICAuZXF1aXBtZW50LWNhcmQge1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLmVxdWlwbWVudC1pbmZvIGgzIHtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgfVxuICAuZXF1aXBtZW50LXNwZWNzIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAwLjc1cmVtO1xuICB9XG4gIC5zcGVjLXZhbHVlIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gIH1cbiAgLnNwZWMtdW5pdCB7XG4gICAgZm9udC1zaXplOiAwLjdyZW07XG4gIH1cbiAgLyogRXF1aXBtZW50IENvbnRyb2xzICovXG4gIC5lcXVpcG1lbnQtY29udHJvbHMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIH1cbiAgLnF1YW50aXR5LWNvbnRyb2wge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC8qIEluY2VudGl2ZXMgR3JpZCAqL1xuICAuaW5jZW50aXZlLWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogMXJlbTtcbiAgfVxuICAuaW5jZW50aXZlLWNhcmQge1xuICAgIHBhZGRpbmc6IDEuMjVyZW07XG4gIH1cbiAgLyogVmlzdWFsIEFycmF5IERlc2lnbmVyICovXG4gIC5hcnJheS1kZXNpZ25lci1jb250YWluZXIge1xuICAgIG1pbi1oZWlnaHQ6IDUwMHB4O1xuICB9XG4gIC52aXN1YWwtZGVzaWduZXItbW9kZSB7XG4gICAgcGFkZGluZzogMC41cmVtO1xuICB9XG4gIC8qIFJlc3VsdHMgU2VjdGlvbiAqL1xuICAucmVzdWx0cy1oZXJvIHtcbiAgICBwYWRkaW5nOiAyLjVyZW0gMS41cmVtO1xuICB9XG4gIC5yZXN1bHRzLWhlcm8gaDEge1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgfVxuICAucmVzdWx0cy1oZXJvIHAge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxuICAua2V5LW1ldHJpY3Mge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogMXJlbTtcbiAgfVxuICAubWV0cmljLWNhcmQge1xuICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgfVxuICAubWV0cmljLWNhcmQucHJpbWFyeSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICAubWV0cmljLXZhbHVlIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gIH1cbiAgLm1ldHJpYy1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjhyZW07XG4gIH1cbiAgLnJlc3VsdHMtc2VjdGlvbnMge1xuICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgfVxuICAucmVzdWx0LXNlY3Rpb24ge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gIH1cbiAgLyogRmluYW5jaWFsIFNlY3Rpb24gKi9cbiAgLmNvc3QtYnJlYWtkb3duIHtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgfVxuICAuc2F2aW5ncy1jb21wYXJpc29uIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMXJlbTtcbiAgfVxuICAuY29tcGFyaXNvbi1hcnJvdyB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICB9XG4gIC5iaWxsLWFtb3VudCB7XG4gICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICB9XG4gIC8qIFBlcmZvcm1hbmNlIEdyaWQgKi9cbiAgLnBlcmZvcm1hbmNlLWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogMS41cmVtO1xuICB9XG4gIC8qIFN5c3RlbSBTcGVjcyAqL1xuICAuc3lzdGVtLXNwZWNzIHtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgfVxuICAvKiBDaGFydCBDb250YWluZXJzICovXG4gIC5jaGFydC1jb250YWluZXIsXG4gIC5vZmZzZXQtY2hhcnQtY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtaW4taGVpZ2h0OiAyNTBweDtcbiAgfVxuICAvKiBPZmZzZXQgRGV0YWlscyAqL1xuICAub2Zmc2V0LWRldGFpbHMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxcmVtO1xuICB9XG4gIC8qIE9mZnNldCBXYXJuaW5ncyAqL1xuICAub2Zmc2V0LXdhcm5pbmcsXG4gIC5vZmZzZXQtc3VjY2VzcyB7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICBmb250LXNpemU6IDAuODVyZW07XG4gIH1cbiAgLyogRXF1aXBtZW50IERldGFpbHMgKi9cbiAgLmVxdWlwbWVudC1kZXRhaWxzIHtcbiAgICBnYXA6IDFyZW07XG4gIH1cbiAgLmNvbXBvbmVudC1jYXJkIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLmNvbXBvbmVudC1pbWFnZSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIH1cbiAgLmNvbXBvbmVudC1zcGVjcyB7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC5jb21wb25lbnQtdG90YWwge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAwLjVyZW07XG4gIH1cbiAgLyogSW1wYWN0IEdyaWQgKi9cbiAgLmltcGFjdC1ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgIGdhcDogMXJlbTtcbiAgfVxuICAuaW1wYWN0LWNhcmQge1xuICAgIHBhZGRpbmc6IDEuMjVyZW07XG4gIH1cbiAgLmltcGFjdC1pY29uIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gIH1cbiAgLmltcGFjdC12YWx1ZSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbiAgLmltcGFjdC1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICB9XG4gIC8qIEJpbGwgQ29tcGFyaXNvbiBTdGF0cyAqL1xuICAuY29tcGFyaXNvbi1zdGF0cyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiAxcmVtO1xuICB9XG4gIC8qIENUQSBTZWN0aW9uICovXG4gIC5yZXN1bHRzLWN0YSB7XG4gICAgcGFkZGluZzogMnJlbSAxLjVyZW07XG4gIH1cbiAgLnJlc3VsdHMtY3RhIGgzIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxuICAucmVzdWx0cy1jdGEgcCB7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICB9XG4gIC5jdGEtYnV0dG9uLmxhcmdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gIH1cbiAgLyogU3RhZ2UgQWN0aW9ucyAqL1xuICAuc3RhZ2UtYWN0aW9ucyB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDAuNzVyZW07XG4gIH1cbiAgLmJhY2stYnV0dG9uLFxuICAuY29udGludWUtYnV0dG9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMC44NzVyZW0gMS41cmVtO1xuICB9XG4gIC8qIFR1cmJvIFRvYXN0IE5vdGlmaWNhdGlvbnMgKi9cbiAgLnR1cmJvLXRvYXN0IHtcbiAgICByaWdodDogMTBweCAhaW1wb3J0YW50O1xuICAgIGxlZnQ6IDEwcHggIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpICFpbXBvcnRhbnQ7XG4gICAgdG9wOiA3MHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qIFNtYWxsIE1vYmlsZSAoNDgwcHggYW5kIGJlbG93KSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5oZXJvLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuNzVyZW07XG4gIH1cbiAgLmhlcm8tc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICB9XG4gIC5zdGFnZS1oZWFkZXIgaDIge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICB9XG4gIC5zdGFnZS1oZWFkZXIgcCB7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gIH1cbiAgLmNvbnRlbnQtZ3JpZCxcbiAgLnJlc3VsdHMtc2VjdGlvbnMge1xuICAgIHBhZGRpbmc6IDFyZW07XG4gIH1cbiAgLmVxdWlwbWVudC1ncmlkIHtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICB9XG4gIC5tb250aGx5LWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG4gIC5zdGVwIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMC42cmVtO1xuICB9XG4gIC5zdGVwLWNpcmNsZSB7XG4gICAgd2lkdGg6IDI2cHg7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICAgIGZvbnQtc2l6ZTogMC43cmVtO1xuICB9XG4gIC5tZXRyaWMtdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICB9XG4gIC5iaWxsLWFtb3VudCB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gIH1cbiAgLmltcGFjdC1ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgfVxuICAucHJvZ3Jlc3MtYmFyLW1vZGVybiB7XG4gICAgcGFkZGluZzogMC43NXJlbSAxcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDMwcHg7XG4gIH1cbiAgLnByb2dyZXNzLXN0ZXBzIHtcbiAgICBnYXA6IDAuMTVyZW07XG4gIH1cbn1cbi8qIExhcmdlIFNjcmVlbnMgKDEyMDBweCBhbmQgYWJvdmUpIC0gT3B0aW1pemUgZm9yIGRlc2t0b3AgKi9cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgLmVxdWlwbWVudC1ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICB9XG4gIC51dGlsaXR5LWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gIH1cbiAgLm1vbnRobHktZ3JpZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgfVxuICAuaW1wYWN0LWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gIH1cbn1cbi8qIFZpc3VhbCBBcnJheSBEZXNpZ25lciBTdHlsZXMgKi9cbi5hcnJheS1kZXNpZ25lciB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDI4MHB4O1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gMWZyO1xuICBnYXA6IDFyZW07XG4gIGhlaWdodDogODB2aDtcbiAgbWluLWhlaWdodDogNjUwcHg7XG4gIG1heC1oZWlnaHQ6IDgwMHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdykgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLyogTWFrZSBjYW52YXMgY29udGFpbmVyIHdpZGVyIGluIGFycmF5cyBzdGFnZSAqL1xuLmFycmF5cy1zdGFnZSB7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xufVxuLmFycmF5cy1zdGFnZSAuYXJyYXktZGVzaWduZXIge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xufVxuLmFycmF5cy1zdGFnZSAudmlzdWFsLWRlc2lnbmVyLW1vZGUge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLyogVG9vbGJhciAqL1xuLmRlc2lnbmVyLXRvb2xiYXIge1xuICBncmlkLWNvbHVtbjogMS8tMTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWluLWhlaWdodDogMTI1cHg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMXJlbSAxLjVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDFyZW07XG59XG5cbi50b29sYmFyLXNlY3Rpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNzVyZW07XG59XG5cbi50b29sLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi50b29sLWJ1dHRvbjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi50b29sLWJ1dHRvbiAub3JpZW50YXRpb24tbGFiZWwge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xufVxuXG4udG9vbC1idXR0b24uYWN0aXZlIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQpICFpbXBvcnRhbnQ7XG59XG5cbi50b29sLWljb24ge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4vKiBBcnJheSBDb250cm9scyAqL1xuLmFycmF5LWNvbnRyb2xzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxLjVyZW07XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5hcnJheS1jb250cm9scyBsYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uYXJyYXktY29udHJvbHMgaW5wdXRbdHlwZT1yYW5nZV0ge1xuICB3aWR0aDogODBweDtcbiAgbWFyZ2luOiAwIDAuMjVyZW07XG59XG5cbi5hcnJheS1jb250cm9scyBzcGFuIHtcbiAgbWluLXdpZHRoOiAycmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLyogQXJyYXkgU3RhdHMgKi9cbi5hcnJheS1zdGF0cyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMS41cmVtO1xufVxuXG4uc3RhdCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnN0YXRzLXZhbHVlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLnN0YXQtbGFiZWwge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbn1cblxuLyogQ2FudmFzIENvbnRhaW5lciAqL1xuLmNhbnZhcy1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHdoaXRlICFpbXBvcnRhbnQ7IC8qIEFsd2F5cyB3aGl0ZSBmb3IgYmV0dGVyIGdyaWQvcGFuZWwgY29udHJhc3QgKi9cbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtaW4taGVpZ2h0OiA1MDBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmRlc2lnbmVyLWNhbnZhcyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtaW4taGVpZ2h0OiA1MDBweDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICAvKiBNb2JpbGUgdG91Y2ggaW1wcm92ZW1lbnRzICovXG4gIHRvdWNoLWFjdGlvbjogbm9uZTsgLyogUHJldmVudCBhbGwgZGVmYXVsdCB0b3VjaCBiZWhhdmlvcnMgKi9cbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsgLyogUHJldmVudCB0ZXh0IHNlbGVjdGlvbiBvbiBpT1MgKi9cbiAgdXNlci1zZWxlY3Q6IG5vbmU7IC8qIFByZXZlbnQgdGV4dCBzZWxlY3Rpb24gKi9cbn1cblxuLyogTGVnYWN5IHN1cHBvcnQgKi9cbiNhcnJheS1jYW52YXMge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogNTAwcHg7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLmNhbnZhcy1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKiBTaWRlYmFyICovXG4uZGVzaWduZXItc2lkZWJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMXJlbTtcbiAgcGFkZGluZzogMXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgbWF4LWhlaWdodDogMTAwJTtcbn1cblxuLyogQXJyYXkgTGlzdCAqL1xuLmFycmF5LWxpc3QgaDQsXG4ucGVyZm9ybWFuY2UtcHJldmlldyBoNCB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uYXJyYXktaXRlbXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDAuNXJlbTtcbiAgbWF4LWhlaWdodDogMzAwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5hcnJheS1pdGVtIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDAuNzVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cblxuLmFycmF5LWl0ZW06aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4xKTtcbn1cblxuLmFycmF5LWl0ZW0uc2VsZWN0ZWQge1xuICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uYXJyYXktaXRlbS1pbmZvIGg1IHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uYXJyYXktaXRlbS1pbmZvIHAge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC43O1xuICBtYXJnaW46IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5cbi5kZWxldGUtYXJyYXktYnRuIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiAjZWY0NDQ0O1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cblxuLmRlbGV0ZS1hcnJheS1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjZGMyNjI2O1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG59XG5cbi5lbXB0eS1zdGF0ZSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjY7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgcGFkZGluZzogMnJlbSAxcmVtO1xuICBtYXJnaW46IDA7XG59XG5cbi8qIENvbGxhcHNpYmxlIEhlYWRlcnMgKi9cbi5jb2xsYXBzaWJsZS1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHBhZGRpbmc6IDAuMjVyZW0gMDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2U7XG59XG5cbi5jb2xsYXBzaWJsZS1oZWFkZXI6aG92ZXIge1xuICBvcGFjaXR5OiAwLjg7XG59XG5cbi5jb2xsYXBzZS1pY29uIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xufVxuXG4uY29sbGFwc2libGUtY29udGVudCB7XG4gIG1heC1oZWlnaHQ6IDEwMDBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjNzIGVhc2UsIG9wYWNpdHkgMC4zcyBlYXNlO1xuICBvcGFjaXR5OiAxO1xuICBwYWRkaW5nLXRvcDogMC4yNXJlbTtcbn1cblxuLmNvbGxhcHNpYmxlLWNvbnRlbnQuY29sbGFwc2VkIHtcbiAgbWF4LWhlaWdodDogMDtcbiAgb3BhY2l0eTogMDtcbn1cblxuLyogU2hhZGluZyBDb250cm9sICovXG4uc2hhZGluZy1jb250cm9sIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuLmNvbnRyb2wtZGVzY3JpcHRpb24ge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC43O1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG5cbi5zaGFkaW5nLXNsaWRlci1jb250YWluZXIge1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG5cbi5zaGFkaW5nLXNsaWRlci1jb250YWluZXIgbGFiZWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uc2hhZGluZy1sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5zaGFkaW5nLXNsaWRlci1jb250YWluZXIgaW5wdXRbdHlwZT1yYW5nZV0ge1xuICBmbGV4OiAxO1xuICBtYXJnaW46IDAgMC41cmVtO1xufVxuXG4uc2hhZGluZy1kaXNwbGF5IHtcbiAgbWluLXdpZHRoOiAzcmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tY29sb3VyKSAhaW1wb3J0YW50O1xufVxuXG4uc2hhZGluZy1pbmRpY2F0b3Ige1xuICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cblxuLmluZGljYXRvci1iYXIge1xuICBoZWlnaHQ6IDhweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbn1cblxuLmluZGljYXRvci1maWxsIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICMxMGI5ODEgMCUsICNmNTllMGIgNTAlLCAjZWY0NDQ0IDEwMCUpO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGVhc2U7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuLnNoYWRpbmctbGV2ZWxzIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xufVxuXG4ubGV2ZWwtbGFiZWwge1xuICBmb250LXNpemU6IDAuN3JlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbi5zaGFkaW5nLW5vdGUge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmxvc3Nlcy1pbmZvIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuODtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5sb3NzZXMtaW5mbyBzdHJvbmcge1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLyogU29sYXIgVGlwcyAqL1xuLnNvbGFyLXRpcHMge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBwYWRkaW5nOiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4udGlwLWNhcmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNzVyZW07XG4gIHBhZGRpbmc6IDAuNzVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCB2YXIoLS1idXR0b24tY29sb3VyKTtcbn1cblxuLnRpcC1jYXJkOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4udGlwLWNhcmQud2FybmluZyB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjZjU5ZTBiO1xufVxuXG4udGlwLWNhcmQuc3VjY2VzcyB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjMTBiOTgxO1xufVxuXG4udGlwLWljb24ge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4udGlwLWNvbnRlbnQge1xuICBmbGV4OiAxO1xufVxuXG4udGlwLWNvbnRlbnQgc3Ryb25nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbn1cblxuLnRpcC1jb250ZW50IHAge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC43O1xuICBtYXJnaW46IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi8qIFBlcmZvcm1hbmNlIFByZXZpZXcgKi9cbi5wZXJmb3JtYW5jZS1wcmV2aWV3IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuLnBlcmZvcm1hbmNlLXN0YXRzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxcmVtO1xufVxuXG4ucGVyZi1zdGF0IHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAwLjc1cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuXG4ucGVyZi12YWx1ZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5wZXJmLWxhYmVsIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuNztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbn1cblxuLyogRXJyb3IgTWVzc2FnZSAqL1xuLmVycm9yLW1lc3NhZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC43O1xufVxuXG4uZXJyb3ItbWVzc2FnZSBoMyB7XG4gIGNvbG9yOiAjZWY0NDQ0O1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG5cbi5yZXRyeS1idXR0b24ge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgYmFja2dyb3VuZDogIzNiODJmNjtcbiAgY29sb3I6IHdoaXRlO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ucmV0cnktYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzI1NjNlYjtcbn1cblxuLyogUmVzcG9uc2l2ZSBEZXNpZ24gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLmFycmF5LWRlc2lnbmVyIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gYXV0byAxZnIgYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogNzB2aDtcbiAgfVxuICAuZGVzaWduZXItc2lkZWJhciB7XG4gICAgZ3JpZC1yb3c6IDQ7XG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICB9XG4gIC5hcnJheS1saXN0LFxuICAucGVyZm9ybWFuY2UtcHJldmlldyB7XG4gICAgbWluLXdpZHRoOiAyNTBweDtcbiAgfVxuICAuZGVzaWduZXItdG9vbGJhciB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBnYXA6IDAuNzVyZW07XG4gICAgbWluLWhlaWdodDogYXV0bzsgLyogUmVtb3ZlIGZpeGVkIG1pbi1oZWlnaHQgb24gbW9iaWxlICovXG4gIH1cbiAgLnRvb2xiYXItc2VjdGlvbiB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gIC8qIFRvb2wgYnV0dG9ucyByb3cgKi9cbiAgLnRvb2xiYXItc2VjdGlvbjpmaXJzdC1jaGlsZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgZ2FwOiAwLjVyZW07XG4gIH1cbiAgLnRvb2xiYXItc2VjdGlvbjpmaXJzdC1jaGlsZCAudG9vbC1idXR0b24ge1xuICAgIGZsZXg6IG5vbmU7IC8qIFJlbW92ZSBmbGV4IHRvIHdvcmsgd2l0aCBncmlkICovXG4gIH1cbiAgLmFycmF5LWNvbnRyb2xzIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAwLjVyZW07XG4gIH1cbiAgLmFycmF5LXN0YXRzIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAwLjc1cmVtO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmRlc2lnbmVyLXRvb2xiYXIge1xuICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICBnYXA6IDAuNXJlbTtcbiAgfVxuICAudG9vbGJhci1zZWN0aW9uOmZpcnN0LWNoaWxkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XG4gICAgZ2FwOiAwLjRyZW07XG4gIH1cbiAgLnRvb2wtYnV0dG9uIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMC42cmVtO1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIG1pbi1oZWlnaHQ6IDQ0cHg7XG4gICAgZ2FwOiAwLjNyZW07XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuICAudG9vbC1pY29uIHtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgfVxuICAub3JpZW50YXRpb24tbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC43cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFycmF5LWNvbnRyb2xzIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGdhcDogMC41cmVtO1xuICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgfVxuICAuYXJyYXktY29udHJvbHMgbGFiZWwge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBmb250LXNpemU6IDAuODVyZW07XG4gIH1cbiAgLmFycmF5LWNvbnRyb2xzIGlucHV0W3R5cGU9cmFuZ2VdIHtcbiAgICB3aWR0aDogMTAwcHg7XG4gICAgZmxleDogMTtcbiAgfVxuICAuYXJyYXktc3RhdHMge1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDAuNXJlbTtcbiAgfVxuICAuc3RhdCB7XG4gICAgZmxleDogMSAxIDMwJTtcbiAgICBtaW4td2lkdGg6IDYwcHg7XG4gIH1cbiAgLnN0YXQtdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxuICAuc3RhdC1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjY1cmVtO1xuICB9XG4gIC5hcnJheS1kZXNpZ25lciB7XG4gICAgbWluLWhlaWdodDogNjB2aDtcbiAgICBtYXgtaGVpZ2h0OiBub25lOyAvKiBSZW1vdmUgbWF4LWhlaWdodCByZXN0cmljdGlvbiBvbiBtb2JpbGUgKi9cbiAgfVxuICAuY2FudmFzLWNvbnRhaW5lciB7XG4gICAgbWluLWhlaWdodDogNDUwcHg7IC8qIExhcmdlciBtaW5pbXVtIGZvciBiZXR0ZXIgbW9iaWxlIGV4cGVyaWVuY2UgKi9cbiAgfVxuICAuZGVzaWduZXItY2FudmFzIHtcbiAgICBtaW4taGVpZ2h0OiA0NTBweDtcbiAgICB0b3VjaC1hY3Rpb246IG5vbmU7IC8qIE92ZXJyaWRlIHRvIHByZXZlbnQgYWxsIGdlc3R1cmVzICovXG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDsgLyogUmVtb3ZlIHRhcCBoaWdobGlnaHQgb24gaU9TICovXG4gIH1cbiAgLmRlc2lnbmVyLXRvb2xiYXIge1xuICAgIHBhZGRpbmc6IDAuNzVyZW07XG4gIH1cbiAgLmFycmF5LWl0ZW0ge1xuICAgIHBhZGRpbmc6IDAuNzVyZW07XG4gICAgbWluLWhlaWdodDogNDRweDsgLyogQmV0dGVyIHRvdWNoIHRhcmdldHMgKi9cbiAgfVxuICAuYXJyYXktaXRlbS1oZWFkZXIgaDQge1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICB9XG4gIC5hcnJheS1zdGF0cyAuc3RhdCB7XG4gICAgZm9udC1zaXplOiAwLjhyZW07XG4gIH1cbiAgLnBlcmZvcm1hbmNlLXByZXZpZXcge1xuICAgIHBhZGRpbmc6IDAuNzVyZW07XG4gIH1cbiAgLnBlcmZvcm1hbmNlLXByZXZpZXcgaDMge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgfVxuICAucGVyZm9ybWFuY2Utc3RhdHMge1xuICAgIGdhcDogMC41cmVtO1xuICB9XG4gIC5zdGF0LWxhYmVsIHtcbiAgICBmb250LXNpemU6IDAuNzVyZW07XG4gIH1cbiAgLnN0YXQtdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICB9XG4gIC8qIEJldHRlciB0b3VjaCB0YXJnZXRzIGZvciBidXR0b25zIGFuZCBpbnRlcmFjdGl2ZSBlbGVtZW50cyAqL1xuICAuZGVsZXRlLWFycmF5LWJ0biB7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICB9XG59XG4vKiBFeHRyYSBzbWFsbCBtb2JpbGUgZGV2aWNlcyAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5kZXNpZ25lci10b29sYmFyIHtcbiAgICBwYWRkaW5nOiAwLjRyZW07XG4gICAgZ2FwOiAwLjRyZW07XG4gIH1cbiAgLnRvb2xiYXItc2VjdGlvbjpmaXJzdC1jaGlsZCB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgIGdhcDogMC4zcmVtO1xuICB9XG4gIC50b29sLWJ1dHRvbiB7XG4gICAgcGFkZGluZzogMC40cmVtIDAuNXJlbTtcbiAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgbWluLWhlaWdodDogNDhweDtcbiAgICBnYXA6IDAuMjVyZW07XG4gIH1cbiAgLnRvb2wtaWNvbiB7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICB9XG4gIC5vcmllbnRhdGlvbi1sYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjY1cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmFycmF5LWNvbnRyb2xzIHtcbiAgICBwYWRkaW5nOiAwLjRyZW07XG4gICAgZ2FwOiAwLjRyZW07XG4gIH1cbiAgLmFycmF5LWNvbnRyb2xzIGxhYmVsIHtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgfVxuICAuYXJyYXktY29udHJvbHMgaW5wdXRbdHlwZT1yYW5nZV0ge1xuICAgIHdpZHRoOiA4MHB4O1xuICAgIGZsZXg6IDE7XG4gIH1cbiAgLmFycmF5LWNvbnRyb2xzIHNwYW4ge1xuICAgIG1pbi13aWR0aDogMi41cmVtO1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgfVxuICAuYXJyYXktY29udHJvbHMgaW5wdXRbdHlwZT1udW1iZXJdIHtcbiAgICB3aWR0aDogNTBweDtcbiAgICBwYWRkaW5nOiAwLjNyZW07XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICB9XG4gIC5jYW52YXMtY29udGFpbmVyIHtcbiAgICBtaW4taGVpZ2h0OiA0MDBweDtcbiAgfVxuICAuZGVzaWduZXItY2FudmFzIHtcbiAgICBtaW4taGVpZ2h0OiA0MDBweDtcbiAgfVxuICAuYXJyYXktbGlzdCxcbiAgLnBlcmZvcm1hbmNlLXByZXZpZXcge1xuICAgIG1pbi13aWR0aDogMTgwcHg7XG4gIH1cbiAgLmFycmF5LWl0ZW0ge1xuICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICBtaW4taGVpZ2h0OiA0OHB4O1xuICB9XG4gIC5hcnJheS1zdGF0cyB7XG4gICAgZ2FwOiAwLjRyZW07XG4gIH1cbiAgLnN0YXQge1xuICAgIG1pbi13aWR0aDogNTVweDtcbiAgfVxuICAuc3RhdC12YWx1ZSB7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICB9XG4gIC5zdGF0LWxhYmVsIHtcbiAgICBmb250LXNpemU6IDAuNnJlbTtcbiAgfVxuICAvKiBTdGFjayB0b29sYmFyIHNlY3Rpb25zIHZlcnRpY2FsbHkgb24gdmVyeSBzbWFsbCBzY3JlZW5zICovXG4gIC50b29sYmFyLXNlY3Rpb24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4vKiBBbmltYXRpb24gQ2xhc3NlcyAqL1xuLmFycmF5LWl0ZW0uaGlnaGxpZ2h0IHtcbiAgYW5pbWF0aW9uOiBoaWdobGlnaHQgMC41cyBlYXNlO1xufVxuXG5Aa2V5ZnJhbWVzIGhpZ2hsaWdodCB7XG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmVmM2M3O1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICB9XG59XG4uc3RhdC12YWx1ZS51cGRhdGluZyB7XG4gIGFuaW1hdGlvbjogcHVsc2UgMC4zcyBlYXNlO1xufVxuXG5Aa2V5ZnJhbWVzIHB1bHNlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuLyogRHJhZyBhbmQgRHJvcCBTdGF0ZXMgKi9cbi5hcnJheS1kZXNpZ25lci5kcmFnZ2luZyB7XG4gIGN1cnNvcjogZ3JhYmJpbmcgIWltcG9ydGFudDtcbn1cblxuLmFycmF5LWRlc2lnbmVyLmRyYWdnaW5nICoge1xuICBjdXJzb3I6IGdyYWJiaW5nICFpbXBvcnRhbnQ7XG59XG5cbi8qIFNlbGVjdGlvbiBJbmRpY2F0b3JzICovXG4uYXJyYXktaXRlbS5zZWxlY3RlZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDNweDtcbiAgYmFja2dyb3VuZDogIzNiODJmNjtcbiAgYm9yZGVyLXJhZGl1czogMCAycHggMnB4IDA7XG59XG5cbi8qIFRvb2x0aXAgU3R5bGVzICovXG4uYXJyYXktdG9vbHRpcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICBjb2xvcjogd2hpdGU7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAxMDAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vKiBMb2FkaW5nIFN0YXRlcyAqL1xuLmFycmF5LWRlc2lnbmVyLmxvYWRpbmcge1xuICBvcGFjaXR5OiAwLjc7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ucGVyZm9ybWFuY2Utc3RhdHMubG9hZGluZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3BhY2l0eTogMC43O1xufVxuXG4ucGVyZm9ybWFuY2Utc3RhdHMubG9hZGluZzo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjZTJlOGYwO1xuICBib3JkZXItdG9wOiAycHggc29saWQgIzNiODJmNjtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlO1xufVxuXG4ubG9hZGluZy1zcGlubmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgYm9yZGVyOiAzcHggc29saWQgI2UyZThmMDtcbiAgYm9yZGVyLXRvcDogM3B4IHNvbGlkICMzYjgyZjY7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBzcGluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuLyogVmlzdWFsIGZlZWRiYWNrIGZvciBhcnJheSByb3RhdGlvbiAqL1xuLmFycmF5LWl0ZW0udXBkYXRpbmcge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNmM2Y0ZjYsICNkYmVhZmUsICNmM2Y0ZjYpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgYW5pbWF0aW9uOiBzaGltbWVyIDFzIGVhc2UtaW4tb3V0O1xufVxuXG5Aa2V5ZnJhbWVzIHNoaW1tZXIge1xuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwMCUgMDtcbiAgfVxuICAxMDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMDAlIDA7XG4gIH1cbn1cbi8qIENvbXBhc3MgYW5kIGRpcmVjdGlvbiBpbmRpY2F0b3JzICovXG4uY29tcGFzcy1pbmRpY2F0b3Ige1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDEwcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBwYWRkaW5nOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6ICMzNzQxNTE7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMWQ1ZGI7XG59XG5cbi8qIEFycmF5IHJvdGF0aW9uIHZpc3VhbCBmZWVkYmFjayAqL1xuLmFycmF5LXJvdGF0aW5nIHtcbiAgYW5pbWF0aW9uOiByb3RhdGVIaWdobGlnaHQgMC41cyBlYXNlLWluLW91dDtcbn1cblxuQGtleWZyYW1lcyByb3RhdGVIaWdobGlnaHQge1xuICAwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDU5LCAxMzAsIDI0NiwgMC40KTtcbiAgfVxuICA1MCUge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSg1OSwgMTMwLCAyNDYsIDAuMSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDU5LCAxMzAsIDI0NiwgMCk7XG4gIH1cbn1cbi8qIEVuZXJneSBPZmZzZXQgRGlzcGxheSBTdHlsZXMgKi9cbi5kZXNpZ25lci1vZmZzZXQtZGlzcGxheSB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi5vZmZzZXQtY2lyY2xlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTUwcHg7XG4gIGhlaWdodDogMTUwcHg7XG4gIG1hcmdpbjogMCBhdXRvIDFyZW07XG59XG5cbi5vZmZzZXQtc3ZnIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbn1cblxuLm9mZnNldC1iZyB7XG4gIGZpbGw6IG5vbmU7XG4gIHN0cm9rZTogdmFyKC0tYm9yZGVyLWNvbG91cik7XG4gIHN0cm9rZS13aWR0aDogODtcbn1cblxuLm9mZnNldC1wcm9ncmVzcyB7XG4gIGZpbGw6IG5vbmU7XG4gIHN0cm9rZS13aWR0aDogODtcbiAgdHJhbnNpdGlvbjogc3Ryb2tlLWRhc2hvZmZzZXQgMC41cyBlYXNlLCBzdHJva2UgMC4zcyBlYXNlO1xufVxuXG4ub2Zmc2V0LXZhbHVlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ub2Zmc2V0LXZhbHVlIHNwYW46Zmlyc3QtY2hpbGQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAycmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTtcbn1cblxuLm9mZnNldC1zdWJsYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLm9mZnNldC1pbmZvIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ub2Zmc2V0LW1lc3NhZ2Uge1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuXG4ub2Zmc2V0LW1lc3NhZ2UuaW5mbyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQtY29sb3VyKTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyKTtcbn1cblxuLm9mZnNldC1tZXNzYWdlLnBhcnRpYWwge1xuICBiYWNrZ3JvdW5kOiAjZmVmM2M3O1xuICBjb2xvcjogIzkyNDAwZTtcbn1cblxuLm9mZnNldC1tZXNzYWdlLnN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kOiAjZDFmYWU1O1xuICBjb2xvcjogIzA2NWY0Njtcbn1cblxuLm9mZnNldC1tZXNzYWdlLmV4Y2VzcyB7XG4gIGJhY2tncm91bmQ6ICNmZWUyZTI7XG4gIGNvbG9yOiAjOTkxYjFiO1xufVxuXG4ub2Zmc2V0LW1lc3NhZ2UuY2FsY3VsYXRpbmcge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIG9wYWNpdHk6IDAuNztcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4ub2Zmc2V0LWNpcmNsZS5jYWxjdWxhdGluZyB7XG4gIGFuaW1hdGlvbjogcHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAub2Zmc2V0LWNpcmNsZSB7XG4gICAgd2lkdGg6IDEyMHB4O1xuICAgIGhlaWdodDogMTIwcHg7XG4gIH1cbiAgLm9mZnNldC12YWx1ZSBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgfVxuICAub2Zmc2V0LXN1YmxhYmVsIHtcbiAgICBmb250LXNpemU6IDAuN3JlbTtcbiAgfVxufVxuLnB1YmxpYy1uYXZiYXItY2xlYXJhbmNlIHtcbiAgaGVpZ2h0OiA5NnB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuYm9keVtkYXRhLW5hdmlnYXRpb24tc2hlbGw9cHVibGljXSB7XG4gIC0tcGFnZS1zdGlja3ktbmF2YmFyLW9mZnNldDogMTAwcHg7XG4gIC0tcHJvZ3Jlc3Mtc3RpY2t5LW5hdmJhci1vZmZzZXQ6IDExMHB4O1xufVxuXG5ib2R5W2RhdGEtbmF2aWdhdGlvbi1zaGVsbD1zdGFmZl0ge1xuICAtLXBhZ2Utc3RpY2t5LW5hdmJhci1vZmZzZXQ6IDgwcHg7XG4gIC0tcHJvZ3Jlc3Mtc3RpY2t5LW5hdmJhci1vZmZzZXQ6IDgwcHg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAucHVibGljLW5hdmJhci1jbGVhcmFuY2Uge1xuICAgIGhlaWdodDogODBweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIGJvZHlbZGF0YS1uYXZpZ2F0aW9uLXNoZWxsPXB1YmxpY10ge1xuICAgIC0tcGFnZS1zdGlja3ktbmF2YmFyLW9mZnNldDogODBweDtcbiAgICAtLXByb2dyZXNzLXN0aWNreS1uYXZiYXItb2Zmc2V0OiA4MHB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICAjbG90dGllIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHNwaW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuQGtleWZyYW1lcyBsb2FkaW5nLXByb2dyZXNzIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgfVxufVxuLm5vLWxpbmsge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uYm9yZGVyLWJvdHRvbSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNGU0ZTRlO1xufVxuXG4ucnRsIHtcbiAgZGlyZWN0aW9uOiBydGw7XG59XG5cbi5uby1kZWNvcmF0aW9uIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5zdHJpa2V0aHJvdWdoIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG59XG5cbi5uby1kZWNvcmF0aW9uOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5uby1kZWNvcmF0aW9uLWRhcmsge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjNGU0ZTRlO1xufVxuXG4uY2VudGVyZWQtY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTBweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmNlbnRlcmVkLWNvbXBvbmVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXRvcDogM3B4IHNvbGlkICM0ZjRmNGY7IC8qIEZ1bGwgYm9yZGVyICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTBweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmNlbnRlcmVkLWNvbXBvbmVudC5sYXN0IHtcbiAgYm9yZGVyLXRvcDogbm9uZTsgLyogUmVtb3ZlIGZ1bGwgYm9yZGVyICovXG59XG5cbi5jZW50ZXJlZC1jb21wb25lbnQubGFzdDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiA1MCU7IC8qIEhhbGYgYm9yZGVyICovXG4gIGhlaWdodDogM3B4OyAvKiBCb3JkZXIgdGhpY2tuZXNzICovXG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZjRmNGY7IC8qIEJvcmRlciBjb2xvciAqL1xufVxuXG4uY2VudGVyZWQtY29tcG9uZW50YiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICM0ZjRmNGY7IC8qIEZ1bGwgYm9yZGVyICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTBweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmNlbnRlcmVkLWNvbXBvbmVudGIubGFzdCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IC8qIFJlbW92ZSBmdWxsIGJvcmRlciAqL1xufVxuXG4uY2VudGVyZWQtY29tcG9uZW50Yi5sYXN0OjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogNTAlOyAvKiBIYWxmIGJvcmRlciAqL1xuICBoZWlnaHQ6IDNweDsgLyogQm9yZGVyIHRoaWNrbmVzcyAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGY0ZjRmOyAvKiBCb3JkZXIgY29sb3IgKi9cbn1cblxuLnN5c3RlbWNhcmQge1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBib3gtc2hhZG93OiAwIDRweCA4cHggMCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4ycyBlYXNlLWluLW91dCwgdHJhbnNmb3JtIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMjYwcHg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5zeXN0ZW1jYXJkOmhvdmVyIHtcbiAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggMCByZ2JhKDAsIDAsIDAsIDAuMyk7IC8qIEluY3JlYXNlIGJveCBzaGFkb3cgKi9cbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y3ZjdmNztcbiAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKSByb3RhdGUoMWRlZyk7IC8qIE1ha2UgdGhlIHNjYWxlIGFuZCByb3RhdGlvbiBtb3JlIHN1YnRsZSAqL1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHsgLyogQWRqdXN0IHRoaXMgdmFsdWUgYmFzZWQgb24gd2hlbiB5b3Ugd2FudCB0aGUgY2FyZHMgdG8gc3RhY2sgKi9cbiAgLnN5c3RlbWNhcmQge1xuICAgIGZsZXg6IDAgMCAxMDAlOyAvKiBUaGlzIG1ha2VzIHRoZSBjYXJkcyB0YWtlIHVwIHRoZSBmdWxsIHdpZHRoIG9mIHRoZSBjb250YWluZXIgb24gc21hbGwgc2NyZWVucyAqL1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgfVxufVxuLmNvbGxlY3Rpb24tY2FyZCB7XG4gIC8qIEJhc2Ugc3R5bGVzICovXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgbWluLXdpZHRoOiAyNDBweDtcbiAgaGVpZ2h0OiAxNTBweDtcbiAgZmxleC1ncm93OiAxO1xuICBtYXJnaW46IDE1cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIC8qIEJhY2tncm91bmQgaGFuZGxpbmcgKi9cbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAvKiBNb2Rlcm4gZ2xhc3MgZWZmZWN0ICovXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICAvKiBFbmhhbmNlZCBzaGFkb3cgKi9cbiAgYm94LXNoYWRvdzogMCA0cHggNnB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAvKiBTbW9vdGggdHJhbnNpdGlvbnMgKi9cbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgLyogVGV4dCBzdHlsZXMgKi9cbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgLyogT3B0aW9uYWwgZ3JhZGllbnQgb3ZlcmxheSAqL1xufVxuLmNvbGxlY3Rpb24tY2FyZDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgwLCAwLCAwLCAwKSAwJSwgcmdiYSgwLCAwLCAwLCAwLjA1KSAxMDAlKTtcbiAgei1pbmRleDogMTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7XG59XG4uY29sbGVjdGlvbi1jYXJkIHtcbiAgLyogSG92ZXIgZWZmZWN0cyAqL1xufVxuLmNvbGxlY3Rpb24tY2FyZDpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KSBzY2FsZSgxLjAxKTtcbiAgYm94LXNoYWRvdzogMCAyMHB4IDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMTBweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjA0KTtcbn1cbi5jb2xsZWN0aW9uLWNhcmQ6aG92ZXI6OmFmdGVyIHtcbiAgb3BhY2l0eTogMC4yO1xufVxuLmNvbGxlY3Rpb24tY2FyZCB7XG4gIC8qIEFjdGl2ZSBzdGF0ZSAqL1xufVxuLmNvbGxlY3Rpb24tY2FyZDphY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCkgc2NhbGUoMSk7XG4gIGJveC1zaGFkb3c6IDAgMTBweCAxNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDRweCA2cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMDUpO1xufVxuLmNvbGxlY3Rpb24tY2FyZCB7XG4gIC8qIEVuc3VyZSBjb250ZW50IHN0YXlzIGFib3ZlIG92ZXJsYXkgKi9cbn1cbi5jb2xsZWN0aW9uLWNhcmQgKiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbn1cbi5jb2xsZWN0aW9uLWNhcmQge1xuICAvKiBNZWRpYSBxdWVyeSBmb3IgdG91Y2ggZGV2aWNlcyAqL1xufVxuQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAuY29sbGVjdGlvbi1jYXJkOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgYm94LXNoYWRvdzogMCA0cHggNnB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICB9XG59XG5cbi50ZXh0LW9yYW5nZSB7XG4gIGNvbG9yOiAjZjQ3NDI0O1xufVxuXG4ubGluayB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5saW5rOmhvdmVyIHtcbiAgY29sb3I6ICM4Q0FBRUU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbn1cblxuLmljb24taW50ZXJhY3Rpb24ge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5pY29uLWludGVyYWN0aW9uOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xufVxuXG5ib2R5IGE6aG92ZXIge1xuICBjb2xvcjogIzg5QjRGQTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuLmhlcm8tdGV4dCB7XG4gIGFuaW1hdGlvbjogbW92ZS1iZyAxNXMgbGluZWFyIGluZmluaXRlO1xuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LCAjODlCNEZBLCAjRjM4QkE4LCAjQTZFM0ExKTtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG59XG5cbi5jb2xsZWN0aW9uLWNhcmQ6aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDRweCA4cHggMCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG59XG5cbi5jb2xsZWN0aW9uLWNhcmQgLmNhcmQtYm9keSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcGFkZGluZzogMTBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uYnJhbmRsb2dvbmV3IHtcbiAgd2lkdGg6IGF1dG87XG4gIG1heC13aWR0aDogMTUwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgcGFkZGluZzogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmN2Y3Zjc7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cblxuLnRvYXN0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBvcGFjaXR5OiAxO1xuICB6LWluZGV4OiA5OTk5O1xufVxuXG4uYnJhbmRsb2dvIHtcbiAgd2lkdGg6IDIwMHB4OyAvKiBZb3UgY2FuIGFkanVzdCB0aGlzIGFjY29yZGluZyB0byB5b3VyIG5lZWRzICovXG4gIGhlaWdodDogYXV0bzsgLyogVGhpcyB3aWxsIG1haW50YWluIHRoZSBhc3BlY3QgcmF0aW8gb2YgdGhlIGltYWdlICovXG59XG5cbi5icmFuZGxvZ29zbSB7XG4gIHdpZHRoOiA4MHB4OyAvKiBZb3UgY2FuIGFkanVzdCB0aGlzIGFjY29yZGluZyB0byB5b3VyIG5lZWRzICovXG4gIGhlaWdodDogYXV0bzsgLyogVGhpcyB3aWxsIG1haW50YWluIHRoZSBhc3BlY3QgcmF0aW8gb2YgdGhlIGltYWdlICovXG59XG5cbi5oaWdobGlnaHQge1xuICBwYWRkaW5nOiAxNXB4O1xuICBib3JkZXI6IDJweCAjMzM1ZWVhO1xuICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxOTksIDE5OSwgMTk5LCAwLjE0NTA5ODAzOTIpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5kcm9wZG93bi1tZW51IHtcbiAgbWF4LWhlaWdodDogMzAwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHotaW5kZXg6IDEwNTUgIWltcG9ydGFudDtcbn1cbi5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtLmFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS1zY3JvbGxiYXItY29sb3VyKSAhaW1wb3J0YW50O1xufVxuLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0uYWN0aXZlOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYnV0dG9uLWNvbG91cik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLnN0aWNreS10b3Age1xuICB6LWluZGV4OiA5OTkgIWltcG9ydGFudDtcbn1cblxuLmxpc3Qtdmlldy10YWJsZSAuc3RpY2t5LXRvcCB7XG4gIHotaW5kZXg6IDk5OSAhaW1wb3J0YW50O1xufVxuLmxpc3Qtdmlldy10YWJsZSAudGFibGUgdGJvZHkgdHI6aG92ZXIge1xuICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbn1cbi5saXN0LXZpZXctdGFibGUgLnRhYmxlLWhvdmVyID4gdGJvZHkgPiB0cjpob3ZlciA+IHRoLFxuLmxpc3Qtdmlldy10YWJsZSAudGFibGUtaG92ZXIgPiB0Ym9keSA+IHRyOmhvdmVyID4gdGQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWhvdmVyLWNvbG91ciwgcmdiYSgwLCAwLCAwLCAwLjAyNSkpO1xufVxuXG4ud29ya2Zsb3ctaGVhZGVyIC5kcm9wZG93bi1tZW51IHtcbiAgei1pbmRleDogMTA2MCAhaW1wb3J0YW50O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLndvcmtmbG93LWhlYWRlciB7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbiAgLndvcmtmbG93LXRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuNzVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubGlzdC12aWV3LWNvbnRhaW5lciB7XG4gICAgbWFyZ2luOiAwLjVyZW0gIWltcG9ydGFudDtcbiAgfVxuICAubGlzdC12aWV3LXRhYmxlIHRoIHtcbiAgICBwYWRkaW5nOiAwLjRyZW0gMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmxpc3Qtdmlldy10YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogMC41cmVtICFpbXBvcnRhbnQ7XG4gIH1cbiAgLnByb2plY3QtdGh1bWJuYWlsLCAucHJvamVjdC10aHVtYm5haWwtcGxhY2Vob2xkZXIge1xuICAgIHdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5mdWxsLXdpZHRoIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7IC8qIEFkZCB0aGlzIHRvIHJvdW5kIHRoZSBjb3JuZXJzICovXG4gIG92ZXJmbG93OiBoaWRkZW47IC8qIEFkZCB0aGlzIHRvIGVuc3VyZSB0aGUgcm91bmRlZCBjb3JuZXJzIGFyZSB2aXNpYmxlICovXG59XG5cbi5mdWxsLXdpZHRoIHRkIHtcbiAgcGFkZGluZzogMTBweDsgLyogQWRkIHRoaXMgdG8gY3JlYXRlIHBhZGRpbmcgb24gdGhlIGNlbGxzICovXG59XG5cbi5mdWxsLXdpZHRoIHRyOm50aC1jaGlsZChldmVuKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG59XG5cbi5jYXJkLmNhcmQtYm9keSB7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7IC8qIEFkZCB0aGlzIHRvIHJvdW5kIHRoZSBjb3JuZXJzIG9mIHRoZSBjYXJkICovXG4gIG92ZXJmbG93OiBoaWRkZW47IC8qIEFkZCB0aGlzIHRvIGVuc3VyZSB0aGUgcm91bmRlZCBjb3JuZXJzIGFyZSB2aXNpYmxlICovXG59XG5cbi5oaWRkZW4tY29sdW1uIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmthbmJhbmNhcmRzY3JvbGwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4LWdyb3c6IDE7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiA2NXZoO1xuICBjb250YWluOiBsYXlvdXQ7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XG4gIHNjcm9sbGJhci1jb2xvcjogcmdiYSgxNTUsIDE1NSwgMTU1LCAwLjMpIHRyYW5zcGFyZW50O1xufVxuLmthbmJhbmNhcmRzY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDZweDtcbn1cbi5rYW5iYW5jYXJkc2Nyb2xsOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLmthbmJhbmNhcmRzY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxNTUsIDE1NSwgMTU1LCAwLjMpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4ua2FuYmFuY2FyZHNjcm9sbDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE1NSwgMTU1LCAxNTUsIDAuNSk7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmthbmJhbmNhcmRzY3JvbGwgeyAvKiBBZGp1c3QgYnJlYWtwb2ludCBhcyBuZWVkZWQgKi9cbiAgICBzY3JvbGwtc25hcC1hbGlnbjogY2VudGVyO1xuICB9XG59XG5cbi5jYWxlbmRhcnNjcm9sbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXgtZ3JvdzogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDEwMHZoO1xuICAvKiBNYWtlIHNjcm9sbGJhciBoYXJkbHkgdmlzaWJsZSAqL1xufVxuLmNhbGVuZGFyc2Nyb2xsOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiAzcHg7XG59XG4uY2FsZW5kYXJzY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4uY2FsZW5kYXJzY3JvbGw6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgYmFja2dyb3VuZDogcmdiYSg2MSwgNjEsIDYxLCAwLjEpICFpbXBvcnRhbnQ7XG59XG5cbi5mYWtlaW5wdXQge1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgY29sb3I6ICM0ZTRlNGU7XG4gIGJvcmRlci1jb2xvcjogI2RkZGRkZDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xufVxuXG4ucHJvZmlsZS1waWMge1xuICBoZWlnaHQ6IDQwcHg7XG4gIHdpZHRoOiA0MHB4O1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkZGRkO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBwYWRkaW5nOiAycHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnByb2ZpbGUtcGljLTIge1xuICBoZWlnaHQ6IDgwcHg7XG4gIHdpZHRoOiA4MHB4O1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkZGRkO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBwYWRkaW5nOiAycHg7XG59XG5cbi5wcm9maWxlLXBpYy0zIHtcbiAgaGVpZ2h0OiAyMjBweDtcbiAgd2lkdGg6IDIyMHB4O1xuICBib3JkZXItcmFkaXVzOiAzMCU7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6ICNkZGRkZGQ7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIHBhZGRpbmc6IDJweDtcbn1cblxuLnByb2ZpbGUtcGljLXRpbnkge1xuICBoZWlnaHQ6IDIwcHg7XG4gIHdpZHRoOiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLWNvbG9yOiAjZGRkZGRkO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBwYWRkaW5nOiAycHg7XG59XG5cbi5jb21tZW50LWNvbnRhaW5lciB7XG4gIG1hcmdpbjogMXJlbSAwO1xuICBtYXgtd2lkdGg6IDg1JTtcbn1cblxuLmNvbW1lbnQtbWV0YWRhdGEge1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgY29sb3I6ICM2NjY7XG4gIG1hcmdpbjogMC4zcmVtIDA7XG59XG4uY29tbWVudC1tZXRhZGF0YS5yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uY29tbWVudC1pbWFnZXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogOHB4O1xuICBtYXJnaW4tdG9wOiA4cHg7XG59XG4uY29tbWVudC1pbWFnZXMucmlnaHQge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xufVxuXG4uYWxpZ24tbGVmdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgLyogQWxpZ25zIGNvbnRlbnQgdG8gdGhlIGxlZnQgKi9cbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmFsaWduLXJpZ2h0IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgLyogQWxpZ25zIGNvbnRlbnQgdG8gdGhlIHJpZ2h0ICovXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZFwiLCBzYW5zLXNlcmlmO1xufVxuXG4uanVzdHBlYWNoeSAuaW1hZ2UtbWFzayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1MiksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMDMpKTtcbiAgei1pbmRleDogMTtcbn1cblxuLmp1c3RwZWFjaHkgPiAqIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAyO1xufVxuXG4uY3VzdG9tLWZpbGUtaW5wdXQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uY3VzdG9tLWZpbGUtdXBsb2FkIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5zbWFsbGNhcmQge1xuICBtaW4td2lkdGg6IDM1cHg7XG4gIG1heC13aWR0aDogMjAwcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLWNvbG9yOiAjZjdmN2Y3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLnN0eWxlX2ltYWdlIHtcbiAgYm94LXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjEyKSAwcHggMHB4IDMwcHggMHB4O1xuICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMzAwcHg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uc3R5bGVfaW1hZ2VfcmV2ZXJzZWQge1xuICBib3gtc2hhZG93OiByZ2JhKDAsIDAsIDAsIDAuMTIpIDBweCAwcHggMzBweCAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzMDBweDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAzMDBweDtcbn1cblxuLyogRGVmYXVsdCBoZWlnaHQgZm9yIHNtYWxsIGRldmljZXMgKi9cbiNpbnRyby1leGFtcGxlIHtcbiAgaGVpZ2h0OiA0MDBweDtcbn1cblxuLyogSGVpZ2h0IGZvciBkZXZpY2VzIGxhcmdlciB0aGFuIDk5MnB4ICovXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgI2ludHJvLWV4YW1wbGUge1xuICAgIGhlaWdodDogODAwcHg7XG4gIH1cbn1cbi8qIERlZmF1bHQgaGVpZ2h0IGZvciBzbWFsbCBkZXZpY2VzICovXG4jaW50cm8tZXhhbXBsZS1zbWFsbCB7XG4gIGhlaWdodDogNDAwcHg7XG59XG5cbi8qIEhlaWdodCBmb3IgZGV2aWNlcyBsYXJnZXIgdGhhbiA5OTJweCAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gICNpbnRyby1leGFtcGxlLXNtYWxsIHtcbiAgICBoZWlnaHQ6IDMwMHB4O1xuICB9XG59XG4vKiBEZWZhdWx0IGhlaWdodCBmb3Igc21hbGwgZGV2aWNlcyAqL1xuI2ludHJvLWV4YW1wbGUtY2FyZCB7XG4gIGhlaWdodDogNDAwcHg7XG59XG5cbi8qIEhlaWdodCBmb3IgZGV2aWNlcyBsYXJnZXIgdGhhbiA5OTJweCAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDI4MHB4KSB7XG4gICNpbnRyby1leGFtcGxlLWNhcmQge1xuICAgIGhlaWdodDogMjAwcHg7XG4gIH1cbn1cbi5sYXlvdXQge1xuICBoZWlnaHQ6IDQwMHB4O1xuICBtaW4td2lkdGg6IDI4MHB4O1xuICB3aWR0aDogYXV0bztcbn1cblxuLnJvdGF0ZS1zbWFsbCB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0xZGVnKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcbn1cblxuLm1lbnRpb24ge1xuICBmb250LXdlaWdodDogYm9sZDsgLyogQm9sZCB0ZXh0ICovXG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgLyogSXRhbGljIHRleHQgKi9cbn1cblxuLm5vLWJvcmRlcnMge1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG59XG5cbi5uby1ib3JkZXJzIHRkIHtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4jbG9hZGVyciB7XG4gIGJvcmRlcjogMTZweCBzb2xpZCAjZjNmM2YzO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlci10b3A6IDE2cHggc29saWQgIzM0OThkYjtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgYW5pbWF0aW9uOiBzcGluIDJzIGxpbmVhciBpbmZpbml0ZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBDaGFuZ2UgdGhpcyBsaW5lICovXG59XG5cbkBrZXlmcmFtZXMgc3BpbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG4uc3dpdGNoLWRpdiB7XG4gIHdpZHRoOiA1MCU7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogODAwcHgpIHtcbiAgLnN3aXRjaC1kaXY6Zmlyc3QtY2hpbGQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLnN3aXRjaC1kaXYge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4uc3dpdGNoLWRpdjIge1xuICB3aWR0aDogNzAlO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gIC5zd2l0Y2gtZGl2MiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi5zd2l0Y2gtZGl2MyB7XG4gIHdpZHRoOiAyMCU7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLnN3aXRjaC1kaXYzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuI2ludHJvLWV4YW1wbGUyIHtcbiAgaGVpZ2h0OiA4MDBweDtcbn1cblxuI3NpZGViYXIge1xuICB3aWR0aDogNTBweDtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC41cztcbn1cblxuI3NpZGViYXI6aG92ZXIge1xuICB3aWR0aDogMjAwcHg7XG59XG5cbi8qIElORk9CT1ggKi9cbi5pbmZvYm94IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmRmOTtcbiAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1jb2xvcjogI2Y3ZjdmNztcbiAgcGFkZGluZzogMTRweDtcbn1cblxuLyogSU5GT0JPWCAqL1xuI2xlYWRib2FyZCB7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1jb2xvcjogI2Y3ZjdmNztcbiAgcGFkZGluZzogMTRweDtcbn1cblxuI2FsZXJ0Ym94IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1MSwgOTQsIDIzNCwgMC4xNTI5NDExNzY1KTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG4uc2Nyb2xsaW5nLXdyYXBwZXItZmxleGJveCB7XG4gIHNjcm9sbC1zbmFwLXR5cGU6IHggbWFuZGF0b3J5O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgY3Vyc29yOiBncmFiO1xufVxuXG4uc2Nyb2xsaW5nLXdyYXBwZXItZmxleGJveDphY3RpdmUge1xuICBjdXJzb3I6IGdyYWJiaW5nO1xufVxuXG4uY2FyZCB7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuXG5kaXYuc2Nyb2xsbWVudSB7XG4gIG92ZXJmbG93OiBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG5kaXYuc2Nyb2xsbWVudSBhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDE0cHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICNmbG9hdGluZy1tZW51IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMTBweDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IDIlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZGY5O1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgbWF4LXdpZHRoOiAzMjBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHggNXB4IDBweCAwcHg7XG4gICAgei1pbmRleDogMTAwMDA7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItY29sb3I6ICNkZGQ7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuICAjZmxvYXRpbmctbWVudSBwIHtcbiAgICBtYXJnaW46IDAgMCAxMHB4IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gICNmbG9hdGluZy1tZW51IGEge1xuICAgIGNvbG9yOiAjNGU0ZTRlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDYwMXB4KSB7XG4gICNmbG9hdGluZy1tZW51IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4uc2Nyb2xsaW5nLXdyYXBwZXItZmxleGJveCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuLnNjcm9sbGluZy13cmFwcGVyLWZsZXhib3ggLmNhcmQge1xuICBmbGV4OiAwIDAgYXV0bztcbn1cblxuLm1hcGNvbnRhaW5lciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctdG9wOiA1Ni4yNSU7IC8qIDE2OjkgQXNwZWN0IFJhdGlvIChkaXZpZGUgOSBieSAxNiA9IDAuNTYyNSkgKi9cbn1cblxuLyogVGhlbiBzdHlsZSB0aGUgaWZyYW1lIHRvIGZpdCBpbiB0aGUgY29udGFpbmVyIGRpdiB3aXRoIGZ1bGwgaGVpZ2h0IGFuZCB3aWR0aCAqL1xuLnJlc3BvbnNpdmUtaWZyYW1lIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5mb290ZXIge1xuICBtYXJnaW4tdG9wOiBhdXRvO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubWFwIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cblxuLyogQ1NTICovXG4uYnV0dG9uLTQge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkFGQkZDO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI3LCAzMSwgMzUsIDAuMTUpO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJveC1zaGFkb3c6IHJnYmEoMjcsIDMxLCAzNSwgMC4wNCkgMCAxcHggMCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KSAwIDFweCAwIGluc2V0O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjb2xvcjogIzI0MjkyRTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBzeXN0ZW0tdWksIFwiU2Vnb2UgVUlcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDZweCAxNnB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBjdWJpYy1iZXppZXIoMC4zLCAwLCAwLjUsIDEpO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuLmJ1dHRvbi00OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YzRjRGNjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjFzO1xufVxuXG4uYnV0dG9uLTQ6ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkFGQkZDO1xuICBib3JkZXItY29sb3I6IHJnYmEoMjcsIDMxLCAzNSwgMC4xNSk7XG4gIGNvbG9yOiAjOTU5REE1O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5idXR0b24tNDphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRURFRkYyO1xuICBib3gtc2hhZG93OiByZ2JhKDIyNSwgMjI4LCAyMzIsIDAuMikgMCAxcHggMCBpbnNldDtcbiAgdHJhbnNpdGlvbjogbm9uZSAwcztcbn1cblxuLmJ1dHRvbi00OmZvY3VzIHtcbiAgb3V0bGluZTogMXB4IHRyYW5zcGFyZW50O1xufVxuXG4uYnV0dG9uLTQ6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmJ1dHRvbi00Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWR1aS1pbnB1dCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogNTBweDtcbiAgY29sb3I6ICMyMTIxMjE7XG4gIGN1cnNvcjogdGV4dDtcbiAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuM3MsIGJveC1zaGFkb3cgMC4zcztcbn1cbi5tZHVpLWlucHV0OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjNjIwMGVhO1xuICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSg5OCwgMCwgMjM0LCAwLjIpO1xuICBvdXRsaW5lOiBub25lO1xufVxuLm1kdWktaW5wdXQ6aG92ZXIge1xuICBib3JkZXItY29sb3I6ICNiYjg2ZmM7XG59XG5cbi5tZHVpLXNlbGVjdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIG1pbi13aWR0aDogMTBweDtcbiAgd2lkdGg6IGF1dG87XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1MHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogNTBweDtcbiAgY29sb3I6ICMzMzM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleC1ncm93OiAxO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuLm1kdWktc2VsZWN0OmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjODg4O1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLm1kdWktc2VsZWN0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiAjMDA3QkZGO1xufVxuXG4ubWR1aS1zZWxlY3Q6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgcmlnaHQ6IDEycHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLWxlZnQ6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci10b3A6IDZweCBzb2xpZCAjNjY2O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuXG4uaW5wdXQtZ3JvdXAtYXBwZW5kIC5tZHVpLWJ0biB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDAgOHB4IDhweCAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBoZWlnaHQ6IDUwcHg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDUwcHg7XG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuLmlucHV0LWdyb3VwLWFwcGVuZCAubWR1aS1idG46aG92ZXIge1xuICBib3JkZXItY29sb3I6ICM4ODg7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG4uaW5wdXQtZ3JvdXAtYXBwZW5kIC5tZHVpLWJ0bjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogIzAwN0JGRjtcbn1cblxuLm1kdWktc2VsZWN0Lm9wZW46OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSgxODBkZWcpO1xufVxuXG4ubWR1aS1zZWxlY3Qub3BlbiAubWR1aS1zZWxlY3Qtb3B0aW9ucyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubWR1aS1zZWxlY3Qtb3B0aW9ucyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMjAwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgei1pbmRleDogOTk5O1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWR1aS1zZWxlY3Qtb3B0aW9uIHtcbiAgcGFkZGluZzogOHB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgY29sb3I6ICMzMzM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm1kdWktc2VsZWN0LW9wdGlvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG59XG5cbi5tZHVpLXNlbGVjdC1vcHRpb24uc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xufVxuXG4ubGVhZGJhZGdlMTAge1xuICBwYWRkaW5nOiAzcHg7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6ICMzMzVlZWE7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgY29sb3I6ICMzMzVlZWE7XG59XG5cbi5sZWFkYmFkZ2UxIHtcbiAgcGFkZGluZzogM3B4O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLWNvbG9yOiAjZjQ3NDI0O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogI2Y0NzQyNDtcbn1cblxuLndlYXRoZXIge1xuICBoZWlnaHQ6IDQwcHg7XG4gIG1heC13aWR0aDogMTAwcHg7XG4gIHBhZGRpbmc6IDNweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1jb2xvcjogI2Y3ZjdmNztcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuOjotd2Via2l0LXNjcm9sbGJhciB7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogOHB4O1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgbWFyZ2luOiA4cHggMDtcbn1cblxuOjotd2Via2l0LXNjcm9sbGJhci1idXR0b24ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbjpzdGFydDpkZWNyZW1lbnQsXG46Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbjplbmQ6aW5jcmVtZW50IHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG5cbjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zY3JvbGxiYXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBNb2JpbGUgQm90dG9tIE5hdmlnYXRpb25cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLm1vYmlsZS1ib3R0b20tbmF2IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDY0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyLCAjZmNmY2ZjKTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZGRkZGQpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgei1pbmRleDogMTA1MDtcbiAgcGFkZGluZy1ib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwKTtcbiAgYm94LXNoYWRvdzogMCAtMnB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcbn1cblxuLm1vYmlsZS1uYXYtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzRlNGU0ZSk7XG4gIG9wYWNpdHk6IDAuNztcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgcGFkZGluZzogOHB4IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtaW4td2lkdGg6IDYwcHg7XG59XG4ubW9iaWxlLW5hdi1pdGVtIGkge1xuICBmb250LXNpemU6IDEuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDJweDtcbn1cbi5tb2JpbGUtbmF2LWl0ZW0gc3BhbiB7XG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuM3B4O1xufVxuLm1vYmlsZS1uYXYtaXRlbTpob3ZlciwgLm1vYmlsZS1uYXYtaXRlbTpmb2N1cyB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjZjQ3NDI0KTtcbn1cbi5tb2JpbGUtbmF2LWl0ZW0uYWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICNmNDc0MjQpO1xufVxuLm1vYmlsZS1uYXYtaXRlbS5hY3RpdmUgaSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbn1cblxuLm1vYmlsZS1uYXYtYmFkZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTRweDtcbiAgcmlnaHQ6IC00cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICNmNDc0MjQpO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAwLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHBhZGRpbmc6IDJweCA1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIG1pbi13aWR0aDogMTZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKiBNb2JpbGUgTWVudSBPZmZjYW52YXMgKi9cbi5tb2JpbGUtbWVudS1vZmZjYW52YXMge1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgbWF4LWhlaWdodDogNzB2aDtcbiAgYm9yZGVyLXJhZGl1czogMTZweCAxNnB4IDAgMDtcbn1cbi5tb2JpbGUtbWVudS1vZmZjYW52YXMgLm9mZmNhbnZhcy1oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RkZGRkZCk7XG4gIHBhZGRpbmc6IDFyZW0gMS41cmVtO1xufVxuLm1vYmlsZS1tZW51LW9mZmNhbnZhcyAub2ZmY2FudmFzLWJvZHkge1xuICBwYWRkaW5nOiAxcmVtO1xufVxuXG4ubW9iaWxlLW1lbnUtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gIGdhcDogMC43NXJlbTtcbn1cblxuLm1vYmlsZS1tZW51LWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICM0ZTRlNGUpO1xuICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIsICNmZmZkZjkpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGRkZGRkKTtcbn1cbi5tb2JpbGUtbWVudS1pdGVtIC5tb2JpbGUtbWVudS1pY29uIHtcbiAgd2lkdGg6IDQ0cHg7XG4gIGhlaWdodDogNDRweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyLCAjZmVmN2U2KTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuLm1vYmlsZS1tZW51LWl0ZW0gLm1vYmlsZS1tZW51LWljb24gaSB7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIsICNmNDc0MjQpO1xufVxuLm1vYmlsZS1tZW51LWl0ZW0gc3BhbiB7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG4ubW9iaWxlLW1lbnUtaXRlbTpob3ZlciwgLm1vYmlsZS1tZW51LWl0ZW06YWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIsICNmZWY3ZTYpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvdXIsICNmNDc0MjQpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG59XG5cbi8qIEFkZCBib3R0b20gcGFkZGluZyB0byBjb250ZW50IHdoZW4gbW9iaWxlIG5hdiBpcyBwcmVzZW50ICovXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgLmxheW91dGNvbnRlbnQge1xuICAgIHBhZGRpbmctYm90dG9tOiA4MHB4O1xuICB9XG59XG4ubmV3YmFkZ2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ3NDI0O1xuICBib3JkZXItcmFkaXVzOiA3cHg7XG4gIHBhZGRpbmc6IDVweDtcbiAgbWFyZ2luOiA1cHg7XG4gIGJvcmRlci13aWR0aDogMC4xcmVtO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbiNCSUdIRVJPIHtcbiAgcGFkZGluZy10b3A6IDI1cHg7XG4gIHBhZGRpbmctYm90dG9tOiA1NXB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYigyNDQsIDExNiwgMzYpIDE3JSwgcmdiKDIzNywgMTcwLCA4KSA1OSUsIHJnYigyMDQsIDEzNiwgNDApIDg0JSk7XG4gIGJvcmRlci1yYWRpdXM6IDAgMCA1MCUgMCUvNTBweDtcbn1cblxuLnZpY2VkaXYge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDNkZWcsICM0MTU4RDAgMCUsICNDODUwQzAgNDYlLCAjRkZDQzcwIDEwMCUpO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlIDAgMCUgMCUvNTBweDtcbn1cblxuLndoaXRlYnV0dG9uIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXItY29sb3I6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi53aGl0ZWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0MDA2OGI7XG59XG5cbi5zdGlja3ktZGl2IHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IDIwMHB4O1xuICB3aWR0aDogMzAwcHg7XG4gIHBhZGRpbmctdG9wOiA3NXB4O1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xufVxuXG4jZmxvYXRpbmctcGFuZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwcHg7XG4gIGxlZnQ6IDE1cHg7XG4gIHotaW5kZXg6IDU7XG4gIHBhZGRpbmc6IDVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LWZhbWlseTogXCJSb2JvdG9cIiwgXCJzYW5zLXNlcmlmXCI7XG4gIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG59XG5cbi5wZXJzcGVjdGl2ZSB7XG4gIHBlcnNwZWN0aXZlOiA1MDBweDtcbn1cblxuLmNhcmR0aWx0IHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDFzIGVhc2U7XG59XG4uY2FyZHRpbHQ6aG92ZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZVkoLTJkZWcpO1xufVxuXG4udGlueS1idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyMDBweDsgLyogQWRqdXN0IHdpZHRoIGFzIG5lZWRlZCAqL1xuICBoZWlnaHQ6IDUwcHg7IC8qIEFkanVzdCBoZWlnaHQgYXMgbmVlZGVkICovXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3BhY2l0eTogMC40OyAvKiBNYWtlIHRoZSBidXR0b24gYWxtb3N0IGludmlzaWJsZSAqL1xufVxuXG4ubGlnaHRib3JkZXIge1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGRkZGRkO1xufVxuXG4udGlueS1idXR0b246aG92ZXIge1xuICBvcGFjaXR5OiAwLjk7IC8qIE1ha2UgdGhlIGJ1dHRvbiBtb3JlIHZpc2libGUgd2hlbiBob3ZlcmVkICovXG59XG5cbi5idXR0b24tODEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWEyMDJjO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDAuOHJlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6ICNmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmQgTGlnaHRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZzogMC42cmVtIDEuMnJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICBib3gtc2hhZG93OiAwcHggNHB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbn1cbi5idXR0b24tODE6ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTBhZWMwO1xuICBjb2xvcjogIzcxODA5NjtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLmJ1dHRvbi04MTpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIGNvbG9yOiAjZmZmO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDEpO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmJ1dHRvbi04MSB7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgcGFkZGluZzogMC42cmVtIDEuMnJlbTtcbiAgfVxufVxuLnJldmVhbCB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC44KSB0cmFuc2xhdGVZKDIwJSk7XG59XG5cbi5yZXZlYWwtYW5pbWF0aW9uIHtcbiAgYW5pbWF0aW9uOiBzbGlkZVpvb21JbiAxLjJzIGVhc2Utb3V0IGZvcndhcmRzO1xufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlWm9vbUluIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KSB0cmFuc2xhdGVZKDIwJSk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuLnJldmVhbC1zaWRlIHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDBweCk7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLnJldmVhbC1zaWRlLWFuaW1hdGlvbiB7XG4gIGFuaW1hdGlvbjogc2xpZGVJbkZyb21MZWZ0IDAuOHMgZWFzZSBmb3J3YXJkcztcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuQGtleWZyYW1lcyBzbGlkZUluRnJvbUxlZnQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMHB4KTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgfVxufVxuLnJldmVhbC1jZW50ZXIge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuXG4ucmV2ZWFsLWNlbnRlci1hbmltYXRpb24ge1xuICBhbmltYXRpb246IHB1bHNhdGVJbiAwLjZzIGVhc2Utb3V0IGZvcndhcmRzO1xufVxuXG5Aa2V5ZnJhbWVzIHB1bHNhdGVJbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG4gIH1cbiAgNTAlIHtcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcbiAgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZ2xpdGNoIHtcbiAgMCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtMSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC0xMHB4KTtcbiAgfVxuICAxMCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtMyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTBweCwgMTBweCk7XG4gIH1cbiAgMjAlIHtcbiAgICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTEpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMHB4LCAxMHB4KTtcbiAgfVxuICAzMCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtMyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCA1cHgpO1xuICB9XG4gIDQwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS0yKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNXB4LCAwcHgpO1xuICB9XG4gIDUwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS0zKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIDBweCk7XG4gIH1cbiAgNjAlIHtcbiAgICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTQpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDVweCwgMTBweCk7XG4gIH1cbiAgNzAlIHtcbiAgICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMHB4LCAxMHB4KTtcbiAgfVxuICA4MCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtNSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjBweCwgLTEwcHgpO1xuICB9XG4gIDkwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS0xKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTBweCwgMHB4KTtcbiAgfVxuICAxMDAlIHtcbiAgICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTEpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDApO1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmJ1dHRvbi00OSxcbiAgLmJ1dHRvbi00OTphZnRlciB7XG4gICAgd2lkdGg6IDgwcHg7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICB9XG59XG4udG9vbHRpcC1pbm5lciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDAgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiA0NTBweCAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLmNvbGxlY3Rpb24tY2hlY2stYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmNvbGxlY3Rpb24tY2hlY2stYm94IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQgKyBsYWJlbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDc0MjQ7XG59XG5cbi5jb2xsZWN0aW9uLWNoZWNrLWJveCBsYWJlbCB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3NTc1NzU7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgbWFyZ2luOiA1cHg7XG4gIGNvbG9yOiAjZjdmN2Y3O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZTtcbn1cblxuLnJlc3BvbnNpdmUtaWZyYW1lMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZy10b3A6IDU2LjI1JTsgLyogMTY6OSBBc3BlY3QgUmF0aW8gKi9cbn1cblxuLnJlc3BvbnNpdmUtaWZyYW1lMSBpZnJhbWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmZlYXR1cmUtbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbn1cblxuLmZlYXR1cmUtbGlzdCBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IC8qIGFkanVzdCBhcyBuZWVkZWQgKi9cbn1cblxuLnNpZGViYXIge1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmYWZjO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHRyYW5zaXRpb246IHdpZHRoIDAuNXM7XG4gIGRpc3BsYXk6IGZsZXg7IC8qIEFkZGVkIHRoaXMgbGluZSAqL1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyAvKiBBZGRlZCB0aGlzIGxpbmUgKi9cbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IC8qIEFkZGVkIHRoaXMgbGluZSAqL1xufVxuXG4uc2lkZWJhcjpob3ZlciB7XG4gIHdpZHRoOiAyMDBweDtcbn1cblxuLnNpZGViYXIgYSB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiA1MHB4O1xuICBjb2xvcjogIzRlNGU0ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBwYWRkaW5nIDAuNXM7XG59XG5cbi5zaWRlYmFyIGEgLmljb24ge1xuICBtYXJnaW46IDAgMTBweDtcbn1cblxuLnNpZGViYXI6aG92ZXIgYSB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbn1cblxuLnNpZGViYXIgYSAudGV4dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuNXM7XG59XG5cbi5zaWRlYmFyOmhvdmVyIGEgLnRleHQge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLm1lbnUtdG9nZ2xlIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDc1cHg7XG4gIHJpZ2h0OiAxMHB4O1xuICBkaXNwbGF5OiBub25lO1xuICBib3JkZXItcmFkaXVzOiA1MCU7IC8qIE1ha2VzIHRoZSBidXR0b24gY2lyY3VsYXIgKi9cbiAgcGFkZGluZzogMTBweCAyMHB4OyAvKiBBZGp1c3QgYXMgbmVlZGVkICovXG59XG5cbi5tZW51LXRvZ2dsZSAuYmkge1xuICBmb250LXNpemU6IDFlbTsgLyogTWFrZXMgdGhlIGljb24gbGFyZ2VyICovXG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2MDBweCkge1xuICAubWVudSB7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICB0b3A6IDEyNXB4O1xuICAgIGhlaWdodDogNTAwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgLm1lbnUge1xuICAgIHBvc2l0aW9uOiBmaXhlZDsgLyogQWRkZWQgdGhpcyAqL1xuICAgIHRvcDogNjBweDtcbiAgICBwYWRkaW5nOiAxNXB4O1xuICAgIHdpZHRoOiAxMDAlOyAvKiBBZGRlZCB0aGlzICovXG4gICAgaGVpZ2h0OiAxMDAlOyAvKiBBZGRlZCB0aGlzICovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHotaW5kZXg6IDEwMDA7IC8qIEFkZGVkIHRoaXMgKi9cbiAgfVxuICAubWVudS10b2dnbGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB6LWluZGV4OiAxMDAwOyAvKiBBZGRlZCB0aGlzICovXG4gICAgYm9yZGVyLXJhZGl1czogNTAlOyAvKiBNYWtlcyB0aGUgYnV0dG9uIGNpcmN1bGFyICovXG4gICAgcGFkZGluZzogMTBweCAyMHB4OyAvKiBBZGp1c3QgYXMgbmVlZGVkICovXG4gIH1cbn1cbi5idXR0b24tMTQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbG9yOiAjZmZmO1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYxNzJhO1xuICBib3JkZXI6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBib3gtc2hhZG93OiAwcHggMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlO1xufVxuXG4uYnV0dG9uLTE0OmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uYnV0dG9uLTE1IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjb2xvcjogd2hpdGU7XG4gIG1pbi13aWR0aDogNDAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZTRlNGU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMTVweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4yKTsgLyogQWRkIGEgbGlnaHQgYm94IHNoYWRvdyAqL1xufVxuXG4uY3VycmVudC1zdGFnZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNDc0MjQ7XG4gIHBhZGRpbmc6IDVweCAxMHB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmN1cnJlbnQtc3RhZ2UgYSB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmN1cnJlbnQtc3RhZ2UgYTpob3ZlciB7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmJpZy1iZWF1dGlmdWwtY2hlY2tib3gge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjZTBlMGUwO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cbi5iaWctYmVhdXRpZnVsLWNoZWNrYm94OmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZjQ3NDI0O1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgyNDQsIDExNiwgMzYsIDAuMSk7XG59XG4uYmlnLWJlYXV0aWZ1bC1jaGVja2JveDpjaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0NzQyNDtcbiAgYm9yZGVyLWNvbG9yOiAjZjQ3NDI0O1xufVxuLmJpZy1iZWF1dGlmdWwtY2hlY2tib3g6Y2hlY2tlZDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDZweDtcbiAgdG9wOiAycHg7XG4gIHdpZHRoOiA2cHg7XG4gIGhlaWdodDogMTJweDtcbiAgYm9yZGVyOiBzb2xpZCB3aGl0ZTtcbiAgYm9yZGVyLXdpZHRoOiAwIDJweCAycHggMDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICBhbmltYXRpb246IGNoZWNrbWFyayAwLjJzIGVhc2UtaW4tb3V0O1xufVxuLmJpZy1iZWF1dGlmdWwtY2hlY2tib3g6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgyNDQsIDExNiwgMzYsIDAuMik7XG59XG4uYmlnLWJlYXV0aWZ1bC1jaGVja2JveDpkaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuQGtleWZyYW1lcyBjaGVja21hcmsge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHNjYWxlKDApO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkBrZXlmcmFtZXMgZ2VudGxlUHVsc2Uge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAwIHJnYmEoMTM3LCAxODAsIDI1MCwgMCkpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA4KTtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCA2cHggcmdiYSgxMzcsIDE4MCwgMjUwLCAwLjQ1KSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAwIHJnYmEoMTM3LCAxODAsIDI1MCwgMCkpO1xuICB9XG59XG4ucm1lbnUtdG9nZ2xlIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDc1cHg7XG4gIHJpZ2h0OiAxMHB4O1xuICBkaXNwbGF5OiBub25lO1xuICBib3JkZXItcmFkaXVzOiA1MCU7IC8qIE1ha2VzIHRoZSBidXR0b24gY2lyY3VsYXIgKi9cbiAgcGFkZGluZzogMTBweCAyMHB4OyAvKiBBZGp1c3QgYXMgbmVlZGVkICovXG59XG5cbi5ybWVudS10b2dnbGUgLmJpIHtcbiAgZm9udC1zaXplOiAxZW07IC8qIE1ha2VzIHRoZSBpY29uIGxhcmdlciAqL1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgLnJtZW51IHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogMTI1cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gIC5ybWVudSB7XG4gICAgcG9zaXRpb246IGZpeGVkOyAvKiBBZGRlZCB0aGlzICovXG4gICAgd2lkdGg6IDEwMCU7IC8qIEFkZGVkIHRoaXMgKi9cbiAgICBoZWlnaHQ6IGF1dG87IC8qIEFkZGVkIHRoaXMgKi9cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgei1pbmRleDogMTAwMDsgLyogQWRkZWQgdGhpcyAqL1xuICB9XG4gIC5ybWVudS10b2dnbGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB6LWluZGV4OiAxMDAwOyAvKiBBZGRlZCB0aGlzICovXG4gICAgYm9yZGVyLXJhZGl1czogNTAlOyAvKiBNYWtlcyB0aGUgYnV0dG9uIGNpcmN1bGFyICovXG4gICAgcGFkZGluZzogMTBweCAyMHB4OyAvKiBBZGp1c3QgYXMgbmVlZGVkICovXG4gIH1cbn1cbi5iaWctcG9wcHktaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBwYWRkaW5nOiAxNXB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjNzLCBib3gtc2hhZG93IDAuM3M7XG59XG5cbi5iaWctcG9wcHktaW5wdXQ6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM0ZTRlNGU7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMik7XG59XG5cbi5iaWctcG9wcHktaW5wdXQtMiB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbiAgY29sb3I6ICMzMzMzMzM7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiAjZTBlMGUwO1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgcGFkZGluZzogMTBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNTAwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi5wcm9ncmVzcy1iYXItMiB7XG4gIHBvc2l0aW9uOiBzdGF0aWM7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogNHB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzVlZWE7XG4gIHRyYW5zaXRpb246IGhlaWdodCAwLjJzO1xufVxuXG4uZGFuZ2Vyem9uZSB7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDc1ZGVnLCAjRkY5QThCIDAlLCAjRkY2QTg4IDU1JSwgI0ZGOTlBQyAxMDAlKTtcbn1cblxuLmp1c3RwZWFjaHkge1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmVmN2U2O1xufVxuXG4uZ29vZ2xlLXN0eWxlLXVwbG9hZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBib3JkZXI6IDFweCBkYXNoZWQgI2M3YzdjNztcbiAgcGFkZGluZzogMjBweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsZXgtZ3JvdzogMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyO1xufVxuXG4uZ29vZ2xlLXN0eWxlLXVwbG9hZDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogI2FhYTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VhZWFlYTtcbn1cblxuLmdvb2dsZS1zdHlsZS11cGxvYWQgLnVwbG9hZC1pY29uIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBjb2xvcjogI2ZmMDAwMDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLmdvb2dsZS1zdHlsZS11cGxvYWQgLnVwbG9hZC10ZXh0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBjb2xvcjogIzU1NTtcbn1cblxuLmNvdmVyLWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMzAwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuLnJvdW5kZWQtcmlnaHQge1xuICBib3JkZXItcmFkaXVzOiAwIDEwcHggMTBweCAwO1xufVxuXG4ucm91bmRlZC1sZWZ0IHtcbiAgYm9yZGVyLXJhZGl1czogMTBweCAwcHggMHB4IDEwcHg7XG59XG5cbi5mdW5reSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogMjVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0MDA0NDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNTAwIDEwMDAnJTNFJTNDZGVmcyUzRSUzQ2cgaWQ9J2E3ODknJTNFJTNDY2lyY2xlIGZpbGw9JyUyMzRiMDE0Nycgcj0nLjUnIC8lM0UlM0NjaXJjbGUgZmlsbD0nJTIzNTEwMTQ5JyBjeD0nMjAnIHI9JzEnIC8lM0UlM0NjaXJjbGUgZmlsbD0nJTIzNTgwMjRiJyBjeD0nNDAnIHI9JzEuNScgLyUzRSUzQ2NpcmNsZSBmaWxsPSclMjM1ZjAzNGQnIGN4PSc2MCcgcj0nMicgLyUzRSUzQ2NpcmNsZSBmaWxsPSclMjM2NjA1NTAnIGN4PSc4MCcgcj0nMi41JyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyMzZjMDc1MicgY3g9JzEwMCcgcj0nMycgLyUzRSUzQ2NpcmNsZSBmaWxsPSclMjM3MzA5NTMnIGN4PScxMjAnIHI9JzMuNScgLyUzRSUzQ2NpcmNsZSBmaWxsPSclMjM3YTBiNTUnIGN4PScxNDAnIHI9JzQnIC8lM0UlM0NjaXJjbGUgZmlsbD0nJTIzODEwZTU3JyBjeD0nMTYwJyByPSc0LjUnIC8lM0UlM0NjaXJjbGUgZmlsbD0nJTIzODgxMTU4JyBjeD0nMTgwJyByPSc1JyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyMzhlMTQ1YScgY3g9JzIwMCcgcj0nNS41JyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyMzk1MTc1YicgY3g9JzIyMCcgcj0nNicgLyUzRSUzQ2NpcmNsZSBmaWxsPSclMjM5YzFiNWMnIGN4PScyNDAnIHI9JzcnIC8lM0UlM0NjaXJjbGUgZmlsbD0nJTIzYTMxZTVkJyBjeD0nMjYwJyByPSc3LjUnIC8lM0UlM0NjaXJjbGUgZmlsbD0nJTIzYTkyMTVlJyBjeD0nMjgwJyByPSc4JyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyM2IwMjU1ZicgY3g9JzMwMCcgcj0nOC41JyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyM2I3Mjk1ZicgY3g9JzMyMCcgcj0nOScgLyUzRSUzQ2NpcmNsZSBmaWxsPSclMjNiZDJkNjAnIGN4PSczNDAnIHI9JzkuNScgLyUzRSUzQ2NpcmNsZSBmaWxsPSclMjNjNDMxNjAnIGN4PSczNjAnIHI9JzEwJyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyM2NhMzU2MCcgY3g9JzM4MCcgcj0nMTAuNScgLyUzRSUzQ2NpcmNsZSBmaWxsPSclMjNkMDM5NjEnIGN4PSc0MDAnIHI9JzExJyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyM2Q2M2Q2MScgY3g9JzQyMCcgcj0nMTEuNScgLyUzRSUzQ2NpcmNsZSBmaWxsPSclMjNkZDQyNjEnIGN4PSc0NDAnIHI9JzEyJyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyM2UzNDY2MScgY3g9JzQ2MCcgcj0nMTIuNScgLyUzRSUzQ2NpcmNsZSBmaWxsPSclMjNlOTRiNjEnIGN4PSc0ODAnIHI9JzEzJyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyM2VlNTA2MCcgY3g9JzUwMCcgcj0nMTMuNScgLyUzRSUzQ2NpcmNsZSBmaWxsPSclMjNmNDU1NjAnIGN4PSc1MjAnIHI9JzE0JyAvJTNFJTNDY2lyY2xlIGZpbGw9JyUyM2ZhNWE2MCcgY3g9JzU0MCcgcj0nMTQuNScgLyUzRSUzQ2NpcmNsZSBmaWxsPSclMjNGRjVGNUYnIGN4PSc1NjAnIHI9JzE1JyAvJTNFJTNDcGF0aCBmaWxsPSclMjNGRjVGNUYnIGQ9J001NjAtMTVoOTk5OXYzMEg1NjB6JyAvJTNFJTNDL2clM0UlM0NnIGlkPSdiJyUzRSUzQ3VzZSBocmVmPSclMjNhJyUzRSUzQy91c2UlM0UlM0N1c2UgeT0nMjAnIGhyZWY9JyUyM2EnJTNFJTNDL3VzZSUzRSUzQ3VzZSB5PSc0MCcgaHJlZj0nJTIzYSclM0UlM0MvdXNlJTNFJTNDdXNlIHk9JzYwJyBocmVmPSclMjNhJyUzRSUzQy91c2UlM0UlM0N1c2UgeT0nODAnIGhyZWY9JyUyM2EnJTNFJTNDL3VzZSUzRSUzQy9nJTNFJTNDZyBpZD0nYyclM0UlM0N1c2UgaHJlZj0nJTIzYiclM0UlM0MvdXNlJTNFJTNDdXNlIHk9JzEwMCcgaHJlZj0nJTIzYiclM0UlM0MvdXNlJTNFJTNDdXNlIHk9JzIwMCcgaHJlZj0nJTIzYiclM0UlM0MvdXNlJTNFJTNDdXNlIHk9JzMwMCcgaHJlZj0nJTIzYiclM0UlM0MvdXNlJTNFJTNDdXNlIHk9JzQwMCcgaHJlZj0nJTIzYiclM0UlM0MvdXNlJTNFJTNDdXNlIHk9JzUwMCcgaHJlZj0nJTIzYiclM0UlM0MvdXNlJTNFJTNDL2clM0UlM0MvZGVmcyUzRSUzQ2cgdHJhbnNmb3JtPSdyb3RhdGUoMjcwIDc1MCA1MDApJyUzRSUzQ2cgdHJhbnNmb3JtPSd0cmFuc2xhdGUoNzUwIDI1MCkgcm90YXRlKDkwKSclM0UlM0N1c2UgdHJhbnNmb3JtPSd0cmFuc2xhdGUoMCA2MDApJyBocmVmPSclMjNjJyUzRSUzQy91c2UlM0UlM0N1c2UgaHJlZj0nJTIzYyclM0UlM0MvdXNlJTNFJTNDdXNlIHRyYW5zZm9ybT0ndHJhbnNsYXRlKDAgLTYwMCknIGhyZWY9JyUyM2MnJTNFJTNDL3VzZSUzRSUzQ3VzZSB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgwIC0xMjAwKScgaHJlZj0nJTIzYyclM0UlM0MvdXNlJTNFJTNDL2clM0UlM0MvZyUzRSUzQy9zdmclM0VcIik7XG4gIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG59XG5cbi5uby13cmFwIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5uYXYtbGluayxcbi5kcm9wZG93bi10b2dnbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGNvbG9yOiAjMzM1ZWVhO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5uYXYtbGluazo6YWZ0ZXIsXG4uZHJvcGRvd24tdG9nZ2xlOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDJweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjODliNGZhIDAlLCAjZjM4YmE4IDUwJSwgI2NiYTZmNyAxMDAlKTtcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBlYXNlLCBsZWZ0IDAuM3MgZWFzZTtcbn1cblxuLm5hdi1saW5rOmhvdmVyOjphZnRlcixcbi5uYXYtbGluazpmb2N1czo6YWZ0ZXIsXG4uZHJvcGRvd24tdG9nZ2xlOmhvdmVyOjphZnRlcixcbi5kcm9wZG93bi10b2dnbGU6Zm9jdXM6OmFmdGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGxlZnQ6IDA7XG59XG5cbi5tYWluZ3JhZCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiKDI0NCwgMTE2LCAzNikgMTclLCByZ2IoMjM3LCAxNzAsIDgpIDU5JSwgcmdiKDIwNCwgMTM2LCA0MCkgODQlKTtcbn1cblxuLmRhcmtncmFkIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMGYwYzI5LCAjMzAyYjYzLCAjMjQyNDNlKTtcbn1cblxuLmRhcmtncmFkMiB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSg2NywgNjcsIDY3LCAwLjMpIDAlLCByZ2JhKDAsIDAsIDAsIDAuOCkgMTAwJSk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG59XG5cbi5jaGFydC1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuY2hhcnQtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICB9XG59XG5cbi5yb2NrZXQge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkZXNpZ24vbGF1bmNoLWRheS5zdmdcIik7XG4gIGJhY2tncm91bmQtYXR0YWNobWVudDogZml4ZWQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIHBhZGRpbmc6IDI1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG5cbi5yb2NrZXQyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwYmJmZjtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMDAlMjUnIGhlaWdodD0nMTAwJTI1JyB2aWV3Qm94PScwIDAgMTYwMCA5MDAnJTNFJTNDZGVmcyUzRSUzQ2xpbmVhckdyYWRpZW50IGlkPSdhJyBncmFkaWVudFVuaXRzPSdvYmplY3RCb3VuZGluZ0JveCcgeDE9JzAnIHkxPScwJyB4Mj0nMTAwJTI1JyB5Mj0nMCclM0UlM0NzdG9wIG9mZnNldD0nMC4xNicgc3RvcC1jb2xvcj0nJTIzY2NjY2NjJy8lM0UlM0NzdG9wIG9mZnNldD0nMC41JyBzdG9wLWNvbG9yPSclMjNGRkYnLyUzRSUzQ3N0b3Agb2Zmc2V0PScxJyBzdG9wLWNvbG9yPSclMjNjY2NjY2MnLyUzRSUzQy9saW5lYXJHcmFkaWVudCUzRSUzQ2xpbmVhckdyYWRpZW50IGlkPSdiJyBncmFkaWVudFVuaXRzPSdvYmplY3RCb3VuZGluZ0JveCcgeDE9JzEwMCUyNScgeTE9JzAnIHgyPScwJyB5Mj0nMCclM0UlM0NzdG9wIG9mZnNldD0nMCcgc3RvcC1jb2xvcj0nJTIzZWVlZWVlJy8lM0UlM0NzdG9wIG9mZnNldD0nMScgc3RvcC1jb2xvcj0nJTIzZGRkZGRkJy8lM0UlM0MvbGluZWFyR3JhZGllbnQlM0UlM0NsaW5lYXJHcmFkaWVudCBpZD0nYycgZ3JhZGllbnRVbml0cz0ndXNlclNwYWNlT25Vc2UnIHgxPScwJyB5MT0nNDY1JyB4Mj0nMCcgeTI9JzMxNiclM0UlM0NzdG9wIG9mZnNldD0nMCcgc3RvcC1jb2xvcj0nJTIzRkZGJy8lM0UlM0NzdG9wIG9mZnNldD0nMC41JyBzdG9wLWNvbG9yPSclMjMwMGJiZmYnLyUzRSUzQy9saW5lYXJHcmFkaWVudCUzRSUzQy9kZWZzJTNFJTNDZyBzdHJva2U9JyUyM2FiZGNmZicgc3Ryb2tlLXdpZHRoPScyMCclM0UlM0NwYXRoIGZpbGw9JyUyM2FiZGNmZicgZD0nTTEyMjggOTAwbC0xMDAgMGwzMC00MDBsNDAgMHonLyUzRSUzQy9nJTNFJTNDZyBzdHJva2U9JyUyM2FiZGNmZicgc3Ryb2tlLXdpZHRoPScxMCcgc3Ryb2tlLW1pdGVybGltaXQ9JzEwJyUzRSUzQ3BhdGggZmlsbD0nJTIzRkZGJyBkPSdNMTUzMSA2MzVjLTQ3LjEgMC04OS4xIDIxLjctMTE2LjYgNTUuN0MxMzg1IDY3MyAxMzYyIDY3MSAxMzMxIDY5OC40Yy0zNi0yMi40LTg4LTIxLjQtMTIxLjkgMTcuMWMtMjMuMS0xMy41LTQxLjEtMTUuNS02NS42IDQuNmMtMjMuNS0xNS4xLTY5LjUtMTYuMS05NS44IDE3LjhDMTAyOCA3MjYgOTk3IDczMyA5ODcuMyA3NjAuOGMtOC4zLTMuOC0xNy4zLTEuOC0yMi4yIDVjLTMzLTI5LjgtNjEtMzAuOC05Mi41IDAuNGMtNy41LTYuMi0xNy41LTkuMi0yNi45LTMuOWMtOS41LTIzLjMtMzguNS0zOC4zLTY3LTIxLjljLTYuNS04LjQtMjIuNS0xMy40LTM5LjItMi41QzcwOSA2OTggNjc1IDcwMiA2NTIuOSA3MTUuNUM2MTIgNjY4IDU1MCA2NzMgNTA0LjUgNzIwLjZDNDY3IDY5MiA0MjUgNzAzIDQwNy43IDczNy45QzM5OCA3MjggMzc1IDcyMSAzNTYgNzQ5LjNjLTExLTE5LjMtMjktMjEuMy00Ny41LTEyLjdDMjg0IDY4OCAyNDMgNjcyIDE4Ny42IDY5MC43QzE2MC4xIDY1Ni43IDExOC4xIDYzNSA3MSA2MzVjLTgyLjggMC0xNTAgNjcuMi0xNTAgMTUwdjI4NGgxNzYwVjc4NUMxNjgxIDcwMi4yIDE2MTMuOCA2MzUgMTUzMSA2MzV6Jy8lM0UlM0MvZyUzRSUzQ3BhdGggZmlsbD0nJTIzRkZGJyBkPSdNMTIyOCA5MDBsLTEwMCAwbDMwLTQwMGw0MCAweicvJTNFJTNDcGF0aCBmaWxsPSclMjNEMzMnIGQ9J00xMTIwLjYgNTI0Yy0xLjItNS4yLTcuNC03LjQtMTEuNy00LjNjLTUuNyA0LjItMTIuMyA5LjItMTMuNCAxMC4yYy0xNC44IDE0LjUtMjUgMzQuNS0yOS43IDU0LjZjLTEuNCA2LTYuNyAyMy45LTEuOCAyOC45YzUuOSA1LjkgMTguNi0zLjcgMjMuNC03YzkuMy02LjIgMTguNy0xMy42IDMwLjctMTIuOGMxNy42IDEuMSA3LjgtNDcuNCAyLjUtNjkuNnonLyUzRSUzQ3BhdGggZmlsbD0ndXJsKCUyM2EpJyBkPSdNMTI0NS44IDQ2MC4yYy0wLjEtNzQuNy0zNS4zLTE2MC41LTcwLjktMTYwLjVjLTM1LjYgMC03MC43IDg1LjctNzAuOSAxNjAuM2MwIDAuNCAwIDAuNyAwLjEgMS4xbDE1LjIgMTMyLjFoMTE1LjVjMy0zNiAxMS0xMzIuOSAxMS0xMzN6Jy8lM0UlM0NwYXRoIGZpbGw9JyUyM0QzMycgZD0nTTEyMzUuNSA1MjRjMS4yLTUuMiA3LjQtNy40IDExLjYtNC4zYzUuNyA0LjIgMTIuMyA5LjIgMTMuNCAxMC4yYzE0LjcgMTQuNSAyNC45IDM0LjUgMjkuNiA1NC42YzEuNCA2IDYuNyAyMy45IDEuOCAyOC45Yy01LjkgNS45LTE4LjUtMy43LTIzLjQtN2MtOS4zLTYuMi0xOC42LTEzLjYtMzAuNy0xMi44Yy0xNy40IDEuMS03LjctNDcuNC0yLjMtNjkuNnonLyUzRSUzQ3BhdGggZmlsbD0nJTIzRDMzJyBkPSdNMTExOS4zIDU5My4ybDEuNiAxMy42YzAuNSA0LjcgNC41IDguMiA5LjEgOC4yaDk0LjVjNC45IDAgOC45LTMuOCA5LjItOC42YzAgMCAwLjQtNSAxLjEtMTMuMmgtMTE1LjV6ICcvJTNFJTNDcGF0aCBmaWxsPSd1cmwoJTIzYiknIGQ9J00xMjQ1LjggNDYwLjJjLTAuMS03NC43LTM1LjMtMTYwLjUtNzAuOS0xNjAuNWMtNiAwIDMyLjMgNjguNCAyOS4xIDE2MC41Yy0wLjQgMTMtOCA5OS41LTExIDEzM2g0MS43YzMuMS0zNiAxMS4xLTEzMi45IDExLjEtMTMzeicvJTNFJTNDcGF0aCBmaWxsPSclMjNjNTE1MjMnIGQ9J00xMTkzLjEgNTkzLjJjLTAuNyA4LjItMS4yIDEzLjItMS4yIDEzLjJjLTAuMyA0LjktNC4zIDguNi05LjIgOC42aDQxLjhjNC45IDAgOC45LTMuOCA5LjItOC42YzAgMCAwLjQtNSAxLjEtMTMuMmgtNDEuN3onLyUzRSUzQ3BhdGggZmlsbD0nJTIzRkZGJyBkPSdNMTE3NSAzNzIuOWMtMjAuNyAwLTM3LjUgMTYuOC0zNy41IDM3LjVzMTYuOCAzNy41IDM3LjUgMzcuNWMyMC43IDAgMzcuNS0xNi44IDM3LjUtMzcuNXMtMTYuOC0zNy41LTM3LjUtMzcuNXonLyUzRSUzQ3BhdGggZmlsbD0ndXJsKCUyM2MpJyBkPSdNMTE3NSAzNzguMmMtMTcuOCAwLTMyLjMgMTQuNS0zMi4zIDMyLjNzMTQuNCAzMi4zIDMyLjMgMzIuM2MxNy44IDAgMzIuMy0xNC41IDMyLjMtMzIuM3MtMTQuNS0zMi4zLTMyLjMtMzIuM3onLyUzRSUzQ3BhdGggZmlsbD0nJTIzMDA4MmMyJyBkPSdNMTE0Ni41IDQxNC4zYzAtMTcuOCAxNC40LTMyLjMgMzIuMy0zMi4zYzcuOSAwIDE1LjIgMi45IDIwLjggNy42Yy01LjktNy0xNC44LTExLjQtMjQuNi0xMS40Yy0xNy44IDAtMzIuMyAxNC41LTMyLjMgMzIuM2MwIDkuOSA0LjQgMTguNyAxMS40IDI0LjdjLTQuNy01LjctNy42LTEzLTcuNi0yMC45eicvJTNFJTNDcGF0aCBmaWxsPSclMjNEMzMnIGQ9J00xMTc1IDI5OWMtMTUuNSAwLTMwLjkgMTYuMi00My4zIDQwLjdjMTIgMi4zIDI3IDMuNiA0My4zIDMuNmMxNi4zIDAgMzEuNC0xLjQgNDMuMy0zLjZjLTEyLjUtMjQuNS0yNy45LTQwLjctNDMuMy00MC43eicvJTNFJTNDcGF0aCBmaWxsPSclMjNjNTE1MjMnIGQ9J00xMTc2LjkgMjk5LjFjLTMuNCAxNS4xIDcuMiAyOS43IDExLjYgNDMuOWMxMS0wLjUgMjEuMi0xLjcgMjkuNy0zLjNjLTExLjgtMjMuNC0yNi40LTM5LjMtNDEuMy00MC42eicvJTNFJTNDZyBmaWxsPSdub25lJyBzdHJva2Utd2lkdGg9JzEnJTNFJTNDcGF0aCBzdHJva2Utb3BhY2l0eT0nLjEnIHN0cm9rZT0nJTIzMDAwJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIGQ9J00xMTE2IDU1Ni40YzAgMCA0Ny44IDQuMiA2NC43IDQuMmMxNi45IDAgNTYuMy00LjIgNTYuMy00LjInLyUzRSUzQ3BhdGggc3Ryb2tlLW9wYWNpdHk9Jy4yJyBzdHJva2U9JyUyM0ZGRicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBkPSdNMTExNiA1NTcuNGMwIDAgNDcuOCA0LjIgNjQuNyA0LjJjMTYuOSAwIDU2LjMtNC4yIDU2LjMtNC4yJy8lM0UlM0MvZyUzRSUzQ3BhdGggZmlsbD0nJTIzRkZGJyBmaWxsLW9wYWNpdHk9JzAuMycgZD0nTTEyMDQgNDEwYzAtMTMuOC05LjYtMjUuMy0yMi41LTI4LjN2NTYuNWMxMi45LTIuOSAyMi41LTE0LjQgMjIuNS0yOC4yeicvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBmaXhlZDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgcGFkZGluZzogMjVweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbn1cblxuLmdyZWVuIHtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg1RkZCRDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCAjODVGRkJEIDAlLCAjRkZGQjdEIDEwMCUpO1xufVxuXG4udmwge1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICMwMDA7XG4gIGhlaWdodDogNTAwcHg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3MDBweCkge1xuICAudmwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5uaWNlaW5mbyB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBnYXA6IDAuNXJlbTtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZmFmYztcbiAgcGFkZGluZzogOHB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1jb2xvcjogI2RkZDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG59XG5cbi5uaWNlaW5mb3Yge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZ2FwOiAwLjVyZW07XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGZhZmM7XG4gIHBhZGRpbmc6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xufVxuXG4udG9wbnVtYmVycyB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBnYXA6IDFyZW07XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIHBhZGRpbmc6IDhweDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2NjYztcbn1cblxuLmxhc3R0b3BudW1iZXIge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgZ2FwOiAxcmVtO1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBwYWRkaW5nOiA4cHg7XG59XG5cbi5wb3dlciB7XG4gIGhlaWdodDogNjBweDtcbiAgd2lkdGg6IDYwcHg7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNDggNDhcIiBmaWxsPVwiJTIzRjQ3NDI0XCI+PHBhdGggZD1cIk0xNi4zIDEwLjFjLjUgMCAxIC40IDEgMSAwIC4zLS4yLjctLjYuOS00LjIgMi42LTYuOCA3LTYuOCAxMiAwIDcuNyA2LjMgMTQgMTQgMTRoLjZjNy4zLS4zIDEzLjMtNi41IDEzLjQtMTMuNy4xLTQuOS0yLjMtOS40LTYuNS0xMi0uMi0uMy0uNC0uNi0uNC0xIDAtLjcuNi0xIDEtMSAuMiAwIC40LjEuNi4yIDQuNyAzIDcuNSA4IDcuNSAxMy41IDAgOC44LTcuMiAxNi0xNiAxNi0uNiAwLTEuMiAwLTEuOC0uMUMxNC42IDM5LjEgOC41IDMyLjcgOCAyNWMtLjQtNiAyLjYtMTEuNyA3LjgtMTQuOC4yIDAgLjQtLjEuNS0uMW0wLTJjLS41IDAtMSAuMS0xLjUuNC01LjYgMy40LTkuMiA5LjYtOC44IDE2LjcuNSA4LjYgNy4zIDE1LjggMTUuOSAxNi43LjcuMSAxLjQuMSAyLjEuMSA5LjkgMCAxOC04LjEgMTgtMTggMC02LjQtMy4zLTEyLTguNC0xNS4yLS41LS4zLTEuMS0uNS0xLjYtLjUtMS42IDAtMyAxLjItMyAzIDAgMSAuNiAyIDEuNCAyLjYgMy40IDIuMiA1LjYgNiA1LjUgMTAuMy0uMSA2LjMtNS4yIDExLjUtMTEuNSAxMS44aC0uNWMtNi42IDAtMTItNS40LTEyLTEyIDAtNC40IDIuMy04LjIgNS44LTEwLjMuOS0uNiAxLjUtMS41IDEuNS0yLjYuMS0xLjctMS4zLTMtMi45LTN6XCI+PC9wYXRoPjxwYXRoIGQ9XCJNMjQgMjZjLTEuMSAwLTItLjktMi0yVjhjMC0xLjEuOS0yIDItMnMyIC45IDIgMnYxNmMwIDEuMS0uOSAyLTIgMnpcIiBmaWxsPVwiJTIzNjk2OTY5XCI+PC9wYXRoPjwvc3ZnPicpO1xufVxuXG4uc2FmZSB7XG4gIGhlaWdodDogNjBweDtcbiAgd2lkdGg6IDYwcHg7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNDggNDhcIiBmaWxsPVwiJTIzRjQ3NDI0XCI+PHBhdGggZD1cIk0yNCAxMWMxLjkgMi40IDUuMiA0LjcgMTAuMSA0LjcuOSAwIDEuOS0uMSAyLjktLjItLjEgNC45LS43IDExLjQtMS44IDEzLjYtMS4yIDIuMy03LjEgNi44LTExLjIgOS41LTQuMS0yLjctMTAtNy4yLTExLjItOS41LTEuMS0yLjItMS42LTguNy0xLjgtMTMuNiAxIC4yIDIgLjIgMi45LjIgNC45LjEgOC4yLTIuMyAxMC4xLTQuN20wLTRzLTIuMSA2LjgtMTAuMSA2LjhjLTEuNCAwLTMuMS0uMi00LjktLjggMCAwIDAgMTMgMiAxN3MxMyAxMSAxMyAxMSAxMS03IDEzLTExIDItMTcgMi0xN2MtMS44LjUtMy41LjgtNC45LjhDMjYuMSAxMy44IDI0IDcgMjQgN3pcIj48L3BhdGg+PHBhdGggZD1cIk0zMi45IDIyLjVjLjEtLjkuMS0xLjguMS0yLjUtNyAwLTktNC05LTRzLTIgNC05IDRjMCAuMi4xIDUuNSAxIDcgMSAyIDggNyA4IDdzNy01IDgtN2MuNS0xLjEuOC0yLjkuOS00LjV6bS04LjkgOVYyNGgtNi43Yy0uMS0uNy0uMi0xLjQtLjItMi4xIDMuNC0uNCA1LjYtMS43IDYuOS0yLjh2NWg2LjdjLS4xLjktLjMgMS43LS41IDIuMS0uNC43LTMuMyAzLjItNi4yIDUuM3pcIiBmaWxsPVwiJTIzNjk2OTY5XCI+PC9wYXRoPjwvc3ZnPicpO1xufVxuXG4ucmVsaWFibGUge1xuICBoZWlnaHQ6IDYwcHg7XG4gIHdpZHRoOiA2MHB4O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDQ4IDQ4XCIgZmlsbD1cIiUyM0Y0NzQyNFwiPjxwYXRoIGQ9XCJNMjQgNy41bDEuMyAxLjNjLjguOCAxLjggMS4yIDIuOCAxLjJIMzB2MS45YzAgMS4xLjQgMi4xIDEuMiAyLjhsMS4zIDEuMy0xLjMgMS4zYy0uOC44LTEuMiAxLjgtMS4yIDIuOFYyMmgtMS45Yy0xLjEgMC0yLjEuNC0yLjggMS4yTDI0IDI0LjVsLTEuMy0xLjNjLS44LS44LTEuOC0xLjItMi44LTEuMkgxOHYtMS45YzAtMS4xLS40LTIuMS0xLjItMi44TDE1LjUgMTZsMS4zLTEuM2MuOC0uOCAxLjItMS44IDEuMi0yLjhWMTBoMS45YzEuMSAwIDIuMS0uNCAyLjgtMS4yTDI0IDcuNW0wLTJjLS41IDAtMSAuMi0xLjQuNmwtMS4zIDEuM2MtLjQuNC0uOS42LTEuNC42SDE4Yy0xLjEgMC0yIC45LTIgMnYxLjljMCAuNS0uMiAxLS42IDEuNGwtMS4zIDEuM2MtLjguOC0uOCAyIDAgMi44bDEuMyAxLjNjLjQuNC42LjkuNiAxLjRWMjJjMCAxLjEuOSAyIDIgMmgxLjljLjUgMCAxIC4yIDEuNC42bDEuMyAxLjNjLjQuNC45LjYgMS40LjZzMS0uMiAxLjQtLjZsMS4zLTEuM2MuNC0uNC45LS42IDEuNC0uNkgzMGMxLjEgMCAyLS45IDItMnYtMS45YzAtLjUuMi0xIC42LTEuNGwxLjMtMS4zYy44LS44LjgtMiAwLTIuOGwtMS4zLTEuM2MtLjQtLjQtLjYtLjktLjYtMS40VjEwYzAtMS4xLS45LTItMi0yaC0xLjljLS41IDAtMS0uMi0xLjQtLjZsLTEuMy0xLjNjLS40LS40LS45LS42LTEuNC0uNnpcIj48L3BhdGg+PHBhdGggZD1cIk0yMS4zIDI2LjZjLS40LS40LS45LS42LTEuNC0uNkgxN2wtNCAxNSA1LTMgNCA0IDEtMTQtMS43LTEuNHpNMzEgMjZoLTIuOWMtLjUgMC0xIC4yLTEuNC42TDI1IDI4bDEgMTQgNC00IDUgMy00LTE1elwiIGZpbGw9XCIlMjM2OTY5NjlcIj48L3BhdGg+PC9zdmc+Jyk7XG59XG5cbi5jaGFsbGVuZ2Uge1xuICBoZWlnaHQ6IDYwcHg7XG4gIHdpZHRoOiA2MHB4O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDQ4IDQ4XCIgZmlsbD1cIiUyM0Y0NzQyNFwiPjxwYXRoIGQ9XCJNMjggMTJWNmw3IDN6XCIgZmlsbD1cIiUyMzRFNEU0RVwiPjwvcGF0aD48cGF0aCBkPVwiTTQyIDM5LjRMMjggMTguNVY2YzAtLjYtLjQtMS0xLTFzLTEgLjQtMSAxdjEyLjVsLTYuNSA5LjgtMi43LTRjLS4yLS4zLS41LS40LS44LS40cy0uNi4xLS44LjRMNSAzOS40Yy0uNC43IDAgMS42LjggMS42aDM1LjNjLjggMCAxLjMtLjkuOS0xLjZ6bS0xMS44LTE0TDI5IDI2LjZsLTItMi0yIDItMS4yLTEuMiAzLjItNC44IDMuMiA0Ljh6TTEyLjMgMzlINy43TDE2IDI2LjZsMi4zIDMuNC02IDl6bTIuNCAwbDcuOS0xMS45IDIuMyAyLjMgMi0yIDIgMiAyLjMtMi4zTDM5LjMgMzlIMTQuN3pcIj48L3BhdGg+PC9zdmc+Jyk7XG59XG5cbi5zdW4ge1xuICBoZWlnaHQ6IDYwcHg7XG4gIHdpZHRoOiA2MHB4O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDQ4IDQ4XCIgZmlsbD1cIiUyM0Y0NzQyNFwiPjxwYXRoIGQ9XCJNMTQuNCAxMi41YzEuMy0xLjEgMi45LTIgNC42LTIuNmwtNC40LTIuNC0uMiA1ek0yMS4zIDkuM2MuOS0uMiAxLjgtLjMgMi43LS4zczEuOC4xIDIuNy4zTDI0IDVsLTIuNyA0LjN6TTI5LjEgOS45YzEuNy42IDMuMyAxLjYgNC43IDIuOGwtLjMtNS4yLTQuNCAyLjR6TTQzIDI0bC00LjMtMi43Yy4yLjkuMyAxLjguMyAyLjcgMCAuOS0uMSAxLjgtLjMgMi43IDEuNy0xIDQuMy0yLjcgNC4zLTIuN3pNNDAuNSAxNC41bC01LS4xYzEuMSAxLjMgMiAyLjkgMi42IDQuNmwyLjQtNC41ek0xMi41IDE0LjRsLTUgLjEgMi40IDQuNGMuNi0xLjcgMS41LTMuMiAyLjYtNC41ek03LjUgMzMuNWw1IC4xYy0xLjEtMS4zLTItMi45LTIuNi00LjZsLTIuNCA0LjV6TTkgMjRjMC0uOS4xLTEuOC4zLTIuN0w1IDI0bDQuMyAyLjdjLS4yLS45LS4zLTEuOC0uMy0yLjd6TTM1LjMgMzMuOGw1LS4xLTIuMy00LjVjLS42IDEuNy0xLjUgMy4zLTIuNyA0LjZ6TTMzLjUgNDAuNWwuMS01Yy0xLjMgMS4xLTIuOSAyLTQuNiAyLjZsNC41IDIuNHpNMjEuMyAzOC43TDI0IDQzbDIuNy00LjNjLS45LjItMS44LjMtMi43LjNzLTEuOC0uMS0yLjctLjN6TTE0LjUgNDAuNWw0LjQtMi40Yy0xLjctLjYtMy4zLTEuNi00LjctMi44bC4zIDUuMnpcIiBmaWxsPVwiJTIzNEU0RTRFXCI+PC9wYXRoPjxwYXRoIGQ9XCJNMjQgMTNjNi4xIDAgMTEgNC45IDExIDExcy00LjkgMTEtMTEgMTEtMTEtNC45LTExLTExIDQuOS0xMSAxMS0xMW0wLTJjLTcuMiAwLTEzIDUuOC0xMyAxM3M1LjggMTMgMTMgMTMgMTMtNS44IDEzLTEzLTUuOC0xMy0xMy0xM3pcIj48L3BhdGg+PC9zdmc+Jyk7XG59XG5cbi5zZWFyY2gtYmlnIHtcbiAgd2lkdGg6IDUwJTtcbiAgcGFkZGluZzogNXB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm94LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjNzIGVhc2U7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7XG4gIGNvbG9yOiAjNjY2O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDcwMHB4KSB7XG4gIC5zZWFyY2gtYmlnIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5zZWFyY2gtYmlnOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjNzU3NTc1O1xufVxuXG4uc2VhcmNoLWJpZzpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY4Zjg7XG59XG5cbi5mb3JtLWNoZWNrLWlucHV0LWNoZWNrYm94IHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZvcm0tY2hlY2staW5wdXQge1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIG1hcmdpbi10b3A6IC0ycHg7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uYnV0dG9uLW1kdWkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjMjEyMTIxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZjZTJlMjtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDAuNzVyZW07XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgYm9yZGVyLXJhZGl1czogMC4yNXJlbTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZS1pbi1vdXQsIGJvcmRlci1jb2xvciAwLjE1cyBlYXNlLWluLW91dCwgYm94LXNoYWRvdyAwLjE1cyBlYXNlLWluLW91dDtcbn1cblxuLmJ1dHRvbi1tZHVpOmhvdmVyIHtcbiAgY29sb3I6ICMyMTIxMjE7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRjhDOEM7XG59XG5cbi5idXR0b24tbWR1aTphY3RpdmUge1xuICBjb2xvcjogIzIxMjEyMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGNkI2Qjtcbn1cblxuLmJveHNoYWRvd2JveGVyIHtcbiAgYm94LXNoYWRvdzogcmdiYSgwLCAwLCAwLCAwLjA3KSAwcHggMnB4IDE1cHggLTNweCwgcmdiYSgwLCAwLCAwLCAwLjA0KSAwcHggMTBweCAyMHB4IC0ycHg7XG59XG5cbi5pbnZvaWNlLWlucHV0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZjlmOTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgcGFkZGluZzogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5ibGFua2J1dHRvbiB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlO1xufVxuXG4uYmxhbmtidXR0b246aG92ZXIge1xuICBjb2xvcjogdmFyKC0taW50ZXJhY3Rpb24pO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY5cHgpIHtcbiAgLmhpZGUtdW5sZXNzLW1vYmlsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLnpvb206aG92ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzO1xufVxuXG4uc2Nyb2xsYWJsZS1tb2RhbC1ib2R5IHtcbiAgbWF4LWhlaWdodDogNjAwcHg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi5pbWFnZS1jb250YWluZXI6aG92ZXIgLmltZy1mbHVpZCB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cblxuLmltYWdlLWNvbnRhaW5lcjpob3ZlciAuZWRpdC1pY29uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5lZGl0LWljb24ge1xuICBkaXNwbGF5OiBub25lO1xuICBjb2xvcjogYmxhY2s7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbn1cblxuLnNlbGVjdGVkLXF1b3RlIHtcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjNzQ3NDc0ICFpbXBvcnRhbnQ7IC8qIENoYW5nZSB0aGlzIHRvIHRoZSBjb2xvciB5b3Ugd2FudCAqL1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjNzQ3NDc0ICFpbXBvcnRhbnQ7IC8qIENoYW5nZSB0aGlzIHRvIHRoZSBjb2xvciB5b3Ugd2FudCAqL1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTRmMWZmICFpbXBvcnRhbnQ7IC8qIENoYW5nZSB0aGlzIHRvIHRoZSBjb2xvciB5b3Ugd2FudCAqL1xuICBjb2xvcjogcmdiKDAsIDAsIDApICFpbXBvcnRhbnQ7IC8qIFlvdSBtaWdodCB3YW50IHRvIGNoYW5nZSB0aGUgdGV4dCBjb2xvciBpZiB0aGUgYmFja2dyb3VuZCBpcyBkYXJrICovXG59XG5cbi5jb21tZW50IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBwYWRkaW5nOiAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uY2xlYXItaW5wdXQge1xuICBoZWlnaHQ6IDE1cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogN3B4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2U7XG59XG5cbi5jbGVhci1pbnB1dDpob3ZlciB7XG4gIGNvbG9yOiAjMzM1ZWVhOyAvKiBDaGFuZ2UgdG8gZGVzaXJlZCBob3ZlciBjb2xvciAqL1xufVxuXG4uY2xlYXItaW5wdXQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4ubmF2LWljb24ge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgY29sb3I6ICM0ZTRlNGU7XG4gIHBhZGRpbmc6IDEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1yaWdodDogMTJweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG4ubmF2LWljb246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCAjZjBmMGYwLCAjZmZmZmZmKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgY29sb3I6ICMzMzVlZWE7XG59XG4ubmF2LWljb24uYWN0aXZlIHtcbiAgY29sb3I6ICNmNDc0MjQ7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsICNmZmY1ZjAsICNmZmZmZmYpO1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgyNDQsIDExNiwgMzYsIDAuMik7XG59XG4ubmF2LWljb24uYWN0aXZlOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMjQ0LCAxMTYsIDM2LCAwLjI1KTtcbn1cblxuLnNwaW5uZXIge1xuICBtYXJnaW46IDEwMHB4IGF1dG87XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuXG4uc3Bpbm5lciA+IGRpdiB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzMzM7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDZweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAtd2Via2l0LWFuaW1hdGlvbjogc2stc3RyZXRjaGRlbGF5IDEuMnMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG4gIGFuaW1hdGlvbjogc2stc3RyZXRjaGRlbGF5IDEuMnMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG59XG5cbi5zcGlubmVyIC5yZWN0MiB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMS4xcztcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMS4xcztcbn1cblxuLnNwaW5uZXIgLnJlY3QzIHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0xcztcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMXM7XG59XG5cbi5zcGlubmVyIC5yZWN0NCB7XG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAtMC45cztcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC45cztcbn1cblxuLnNwaW5uZXIgLnJlY3Q1IHtcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IC0wLjhzO1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjhzO1xufVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2stc3RyZXRjaGRlbGF5IHtcbiAgMCUsIDQwJSwgMTAwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWSgwLjQpO1xuICB9XG4gIDIwJSB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWSgxKTtcbiAgfVxufVxuQGtleWZyYW1lcyBzay1zdHJldGNoZGVsYXkge1xuICAwJSwgNDAlLCAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWSgwLjQpO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVkoMC40KTtcbiAgfVxuICAyMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGVZKDEpO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVkoMSk7XG4gIH1cbn1cbi5kcm9wZG93bjkge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogYmx1ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmRyb3Bkb3duOTpob3ZlciB7XG4gIGNvbG9yOiBkYXJrYmx1ZTtcbn1cblxuLnpvb20tZWZmZWN0IHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgyLjIpOyAvKiBBZGp1c3QgYXMgbmVlZGVkICovXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzOyAvKiBBbmltYXRpb24gKi9cbn1cblxuLmdsaXRjaC1idXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY1ZjVmO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDVkOWQ5O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJveC1zaGFkb3c6IHJnYmEoMjEzLCAyMTcsIDIxNywgMC41KSAwIDJweCA1cHggMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6ICNmZmY7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIG1pbi1oZWlnaHQ6IDMwcHg7XG4gIGZvbnQtZmFtaWx5OiBcIkFtYXpvbiBFbWJlclwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxpbmUtaGVpZ2h0OiAyOXB4O1xuICBwYWRkaW5nOiAwIDEwcHggMCAxMXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDVweDtcbn1cblxuLmdsaXRjaC1idXR0b246YWZ0ZXIge1xuICAtLXNsaWNlLTA6IGluc2V0KDUwJSA1MCUgNTAlIDUwJSk7XG4gIC0tc2xpY2UtMTogaW5zZXQoODAlIC02cHggMCAwKTtcbiAgLS1zbGljZS0yOiBpbnNldCg1MCUgLTZweCAzMCUgMCk7XG4gIC0tc2xpY2UtMzogaW5zZXQoMTAlIC02cHggODUlIDApO1xuICAtLXNsaWNlLTQ6IGluc2V0KDQwJSAtNnB4IDQzJSAwKTtcbiAgLS1zbGljZS01OiBpbnNldCg4MCUgLTZweCA1JSAwKTtcbiAgY29udGVudDogYXR0cihkYXRhLXRleHQpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogI2ZmNWY1ZjtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtc2hhZG93OiAtM3B4IC0zcHggMHB4ICNGOEYwMDUsIDNweCAzcHggMHB4ICMwMEU2RjY7XG4gIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtMCk7XG59XG5cbi5nbGl0Y2gtYnV0dG9uOmhvdmVyOmFmdGVyIHtcbiAgYW5pbWF0aW9uOiAxcyBnbGl0Y2g7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHN0ZXBzKDIsIGVuZCk7XG59XG5cbkBrZXlmcmFtZXMgZ2xpdGNoIHtcbiAgMCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtMSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTIwcHgsIC0xMHB4KTtcbiAgfVxuICAxMCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtMyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTBweCwgMTBweCk7XG4gIH1cbiAgMjAlIHtcbiAgICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTEpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMHB4LCAxMHB4KTtcbiAgfVxuICAzMCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtMyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMHB4LCA1cHgpO1xuICB9XG4gIDQwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS0yKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNXB4LCAwcHgpO1xuICB9XG4gIDUwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS0zKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1cHgsIDBweCk7XG4gIH1cbiAgNjAlIHtcbiAgICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTQpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDVweCwgMTBweCk7XG4gIH1cbiAgNzAlIHtcbiAgICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMHB4LCAxMHB4KTtcbiAgfVxuICA4MCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtNSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMjBweCwgLTEwcHgpO1xuICB9XG4gIDkwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS0xKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTBweCwgMHB4KTtcbiAgfVxuICAxMDAlIHtcbiAgICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTEpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDApO1xuICB9XG59XG4uZ2xpdGNoLWVmZmVjdDphZnRlciB7XG4gIC0tc2xpY2UtMDogaW5zZXQoNTAlIDUwJSA1MCUgNTAlKTtcbiAgLS1zbGljZS0xOiBpbnNldCg4MCUgLTZweCAwIDApO1xuICAtLXNsaWNlLTI6IGluc2V0KDUwJSAtNnB4IDMwJSAwKTtcbiAgLS1zbGljZS0zOiBpbnNldCgxMCUgLTZweCA4NSUgMCk7XG4gIC0tc2xpY2UtNDogaW5zZXQoNDAlIC02cHggNDMlIDApO1xuICAtLXNsaWNlLTU6IGluc2V0KDgwJSAtNnB4IDUlIDApO1xuICBjb250ZW50OiBhdHRyKGRhdGEtdGV4dCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjZmY1ZjVmO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1zaGFkb3c6IC0zcHggLTNweCAwcHggI0Y4RjAwNSwgM3B4IDNweCAwcHggIzAwRTZGNjtcbiAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS0wKTtcbn1cblxuLmdsaXRjaC1lZmZlY3QtbGlnaHQ6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiAjZjdmN2Y3O1xufVxuXG4uZ2xpdGNoLWVmZmVjdC1ibHVlOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogIzAwMDBmZjtcbn1cblxuLmdsaXRjaC1lZmZlY3Q6aG92ZXI6YWZ0ZXIge1xuICBhbmltYXRpb246IDFzIGdsaXRjaDtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogc3RlcHMoMiwgZW5kKTtcbn1cblxuQGtleWZyYW1lcyBnbGl0Y2gge1xuICAwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS0xKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMjBweCwgLTEwcHgpO1xuICB9XG4gIDEwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS0zKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMHB4LCAxMHB4KTtcbiAgfVxuICAyMCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtMSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwcHgsIDEwcHgpO1xuICB9XG4gIDMwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS0zKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwcHgsIDVweCk7XG4gIH1cbiAgNDAlIHtcbiAgICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTIpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIDBweCk7XG4gIH1cbiAgNTAlIHtcbiAgICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTMpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDVweCwgMHB4KTtcbiAgfVxuICA2MCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtNCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoNXB4LCAxMHB4KTtcbiAgfVxuICA3MCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtMik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwcHgsIDEwcHgpO1xuICB9XG4gIDgwJSB7XG4gICAgY2xpcC1wYXRoOiB2YXIoLS1zbGljZS01KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgyMHB4LCAtMTBweCk7XG4gIH1cbiAgOTAlIHtcbiAgICBjbGlwLXBhdGg6IHZhcigtLXNsaWNlLTEpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xMHB4LCAwcHgpO1xuICB9XG4gIDEwMCUge1xuICAgIGNsaXAtcGF0aDogdmFyKC0tc2xpY2UtMSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCk7XG4gIH1cbn1cbi5jYXJkLWxpbmsge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLmNhcmQtaW1hZ2UtY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogODAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5jYXJkLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZTtcbn1cblxuLmNhcmQtbGluazpob3ZlciAuY2FyZC1vdmVybGF5IHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmRvd25sb2FkLWJ0biB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uc2Nyb2xsLXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBFbnN1cmUgYnV0dG9ucyBhcmUgcG9zaXRpb25lZCBjb3JyZWN0bHkgKi9cbn1cblxuLmJ1dHRvbi13cmFwcGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5zY3JvbGwtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgcGFkZGluZzogMTBweDtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgZ2FwOiAxcmVtO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbn1cblxuLnNjcm9sbC1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgZGlzcGxheTogbm9uZTsgLyogSGlkZSBzY3JvbGxiYXIgZm9yIENocm9tZSwgU2FmYXJpLCBhbmQgT3BlcmEgKi9cbn1cblxuLnNjcm9sbC1jb250YWluZXIgPiBkaXYge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgd2lkdGg6IDI0MHB4OyAvKiBGaXhlZCB3aWR0aCBmb3IgY2FyZHMgKi9cbiAgbWluLXdpZHRoOiAxODBweDsgLyogTWluaW11bSB3aWR0aCAqL1xuICBtYXgtd2lkdGg6IDI0MHB4OyAvKiBNYXhpbXVtIHdpZHRoICovXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG59XG5cbi8qIE92ZXJyaWRlIGZvciBlcXVpcG1lbnQgc2VjdGlvbiBvbmx5IC0gYWxsb3dzIGxhcmdlciBjYXJkcyAqL1xuI3Njcm9sbENvbnRhaW5lciA+IGRpdiB7XG4gIHdpZHRoOiBhdXRvOyAvKiBBbGxvdyBuYXR1cmFsIHNpemluZyAqL1xuICBtaW4td2lkdGg6IDI4MHB4OyAvKiBNYXRjaCBlcXVpcG1lbnQgY2FyZCBtaW5pbXVtICovXG4gIG1heC13aWR0aDogMzUwcHg7IC8qIE1hdGNoIGVxdWlwbWVudCBjYXJkIG1heGltdW0gKi9cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5zY3JvbGwtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nOiAwIDEwcHg7IC8qIEVuc3VyZSBubyBhZGRpdGlvbmFsIHBhZGRpbmcgb24gbW9iaWxlICovXG4gICAgbWFyZ2luOiAwIC0xMHB4OyAvKiBBZGp1c3QgbWFyZ2luIHRvIGZpdCBjb250YWluZXIgKi9cbiAgfVxuICAuc2Nyb2xsLWNvbnRhaW5lciA+IGRpdiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7IC8qIEFkanVzdCBnYXAgZm9yIG1vYmlsZSBzY3JlZW4gc3BhY2UgKi9cbiAgfVxufVxuLmdvb2dsZWNoaXAge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y4ZjhmODtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZTtcbn1cblxuLmN1c3RvbS1pbmRpY2F0b3Ige1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTRkN2Q3O1xuICBib3JkZXItcmFkaXVzOiAzMCU7IC8qIG1ha2UgdGhlIGluZGljYXRvcnMgcm91bmQgKi9cbiAgb3BhY2l0eTogMC41O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICM1NjdjZjg7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnMgZWFzZSwgdHJhbnNmb3JtIDAuNnMgZWFzZTsgLyogYWRkIHRyYW5zZm9ybSB0byB0aGUgdHJhbnNpdGlvbiAqL1xuICBtYXJnaW46IDAgNXB4OyAvKiBhZGQgc29tZSBzcGFjZSBiZXR3ZWVuIHRoZSBpbmRpY2F0b3JzICovXG59XG5cbi5jdXN0b20taW5kaWNhdG9yLmFjdGl2ZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS41KTsgLyogbWFrZSB0aGUgYWN0aXZlIGluZGljYXRvciBsYXJnZXIgKi9cbn1cblxuLnN0eWxlZC10YWJsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxuLnN0eWxlZC10YWJsZSB0aGVhZCB0aCB7XG4gIHBhZGRpbmc6IDVweDtcbn1cblxuLnN0eWxlZC10YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikge1xuICBwYWRkaW5nOiA1cHg7XG59XG5cbi5iZy1wZWFjaCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZkZjk7XG4gIGNvbG9yOiAjNGU0ZTRlO1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG4gIGJvcmRlci13aWR0aDogMXB4O1xufVxuXG4uaW5pdGlhbGx5LWhpZGRlbiB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuW2RhdGEtY29udHJvbGxlcj10cnVuY2F0ZV0uaW5pdGlhbGl6ZWQgLmluaXRpYWxseS1oaWRkZW4ge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4ucnRsIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xufVxuXG4udGlueS10ZXh0IHtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ubm8tc2VsZWN0IHtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5idXR0b24tODUge1xuICBwYWRkaW5nOiAwLjVlbSAxZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTtcbiAgYmFja2dyb3VuZDogIzExMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbn1cblxuLmJ1dHRvbi04NTpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoNDVkZWcsICNmZjAwMDAsICNmZjczMDAsICNmZmZiMDAsICM0OGZmMDAsICMwMGZmZDUsICMwMDJiZmYsICM3YTAwZmYsICNmZjAwYzgsICNmZjAwMDApO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTJweDtcbiAgbGVmdDogLTJweDtcbiAgYmFja2dyb3VuZC1zaXplOiA0MDAlO1xuICB6LWluZGV4OiAtMTtcbiAgZmlsdGVyOiBibHVyKDVweCk7XG4gIC13ZWJraXQtZmlsdGVyOiBibHVyKDVweCk7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyA0cHgpO1xuICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gIGFuaW1hdGlvbjogZ2xvd2luZy1idXR0b24tODUgMjBzIGxpbmVhciBpbmZpbml0ZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UtaW4tb3V0O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuXG5Aa2V5ZnJhbWVzIGdsb3dpbmctYnV0dG9uLTg1IHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbiAgfVxuICA1MCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDQwMCUgMDtcbiAgfVxuICAxMDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG4gIH1cbn1cbi5idXR0b24tODU6YWZ0ZXIge1xuICB6LWluZGV4OiAtMTtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kOiAjMjIyO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDc1cHgpIHtcbiAgLmdvLXNvbGFyIC5idXR0b24tdGV4dCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmJ1dHRvbi0yMyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMyMjIyMjI7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6ICMyMjIyMjI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJRdWlja3NhbmRcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgbWFyZ2luOiAwO1xuICBvdXRsaW5lOiBub25lO1xuICBwYWRkaW5nOiAxM3B4IDIzcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMnMsIC1tcy10cmFuc2Zvcm0gMC4xcywgLXdlYmtpdC10cmFuc2Zvcm0gMC4xcywgdHJhbnNmb3JtIDAuMXM7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICB3aWR0aDogYXV0bztcbn1cblxuLmJ1dHRvbi0yMzpmb2N1cy12aXNpYmxlIHtcbiAgYm94LXNoYWRvdzogIzIyMjIyMiAwIDAgMCAycHgsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSAwIDAgMCA0cHg7XG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4ycztcbn1cblxuLmJ1dHRvbi0yMzphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjdGN0Y3O1xuICBib3JkZXItY29sb3I6ICMwMDAwMDA7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45Nik7XG59XG5cbi5idXR0b24tMjM6ZGlzYWJsZWQge1xuICBib3JkZXItY29sb3I6ICNEREREREQ7XG4gIGNvbG9yOiAjREREREREO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uYnV0dG9uLWRpc2FibGVkIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLmhvcml6b250YWwtc2Nyb2xsLW1lbnUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBnYXA6IDVweDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG1hcmdpbjogMTBweDtcbn1cblxuLmhvcml6b250YWwtc2Nyb2xsLW1lbnUgLmxpc3QtbWVudS1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi5ob3Jpem9udGFsLXNjcm9sbC1tZW51IC5saXN0LW1lbnUtaXRlbTpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uaG9yaXpvbnRhbC1zY3JvbGwtbWVudSAubGlzdC1tZW51LWl0ZW0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDdweDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICM1NjdjZjg7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IGxpZ2h0O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlO1xufVxuXG4uaG9yaXpvbnRhbC1zY3JvbGwtbWVudSAubGlzdC1tZW51LWl0ZW06aG92ZXIge1xuICBjb2xvcjogIzMzNWVlYTtcbn1cblxuLnNwaW5uZXItbG9hZGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgLyogRXhhbXBsZSBsb2FkZXIgc3R5bGluZzogc3Bpbm5pbmcgY2lyY2xlICovXG4gIGJvcmRlcjogNHB4IHNvbGlkICNmM2YzZjM7XG4gIGJvcmRlci10b3A6IDRweCBzb2xpZCAjNGU0ZTRlO1xuICBib3JkZXItcmFkaXVzOiA3NSU7XG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7XG4gIG1hcmdpbjogYXV0bztcbn1cblxuLnNpbXBsZS1zZWxlY3Qge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBwYWRkaW5nOiA2cHg7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZy1yaWdodDogMjRweDtcbn1cblxuLmN1c3RvbS1zZWxlY3Qtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuLmN1c3RvbS1zZWxlY3Qtd3JhcHBlciBzZWxlY3Qge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMjhweDtcbn1cbi5jdXN0b20tc2VsZWN0LXdyYXBwZXIgLnNlbGVjdC1pY29uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogOHB4O1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzY2NjtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbn1cbi5jdXN0b20tc2VsZWN0LXdyYXBwZXI6aG92ZXIgLnNlbGVjdC1pY29uIHtcbiAgY29sb3I6ICMzMzM7XG59XG5cbi5yaWJib24tYm94IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ucmliYm9uLWJveDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDVweDtcbiAgcmlnaHQ6IDA7XG4gIHdpZHRoOiA0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNXB4O1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XG4gIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xufVxuXG4uZm9ybS1jb250cm9sLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjVlbTsgLyogQWRqdXN0IGFzIG5lZWRlZCAqL1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjdmN2Y3OyAvKiBBZGp1c3QgY29sb3IgYXMgbmVlZGVkICovXG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5ydGwge1xuICBkaXJlY3Rpb246IHJ0bDtcbn1cblxuLmxheW91dGNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiBhdXRvO1xuICBtaW4taGVpZ2h0OiA5MHZoO1xufVxuXG4ubGF5b3V0c2lkZWJhciB7XG4gIHdpZHRoOiA1JTtcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgcGFkZGluZzogNXB4O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjNGU0ZTRlO1xufVxuXG4ubGF5b3V0Y29udGVudCB7XG4gIHdpZHRoOiA5NSU7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuLmxheW91dGNvbnRlbnQtZnVsbCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vKiBIaWRlIHRoZSBzaWRlYmFyIG9uIG1vYmlsZSAqL1xuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTc2cHgpIHtcbiAgLmxheW91dHNpZGViYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmxheW91dGNvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG4uY2lyY3VsYXItaWNvbiB7XG4gIGJhY2tncm91bmQ6ICNmYWZhZmE7XG4gIGhlaWdodDogMjVweDtcbiAgd2lkdGg6IDI1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIHBhZGRpbmc6IDZweDtcbiAgY29sb3I6ICMwMDA7XG4gIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoNSwgMTgsIDM1LCAwLjEpO1xufVxuXG5Aa2V5ZnJhbWVzIGpvbHRJbkZyb21MZWZ0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwJSk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNSUpO1xuICB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIlKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbn1cbi5hbmltYXRlZC1qb2x0LWluIHtcbiAgYW5pbWF0aW9uOiBqb2x0SW5Gcm9tTGVmdCAwLjhzIGVhc2Utb3V0O1xufVxuXG4uZmFkZS1vdXQge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDFzIGVhc2Utb3V0O1xuICBvcGFjaXR5OiAwO1xufVxuXG4uY2FyZC13cmFwcGVyLWxpbmsge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG4uY2FyZC13cmFwcGVyLWxpbmsgLmNhcmQge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5zdWdnZXN0aW9uLWxpc3Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7IC8qIEVuc3VyZSBpdCdzIHBvc2l0aW9uZWQgcmVsYXRpdmUgdG8gdGhlIGNvbnRhaW5lciAqL1xuICB6LWluZGV4OiAxMDAwOyAvKiBFbnN1cmUgaXQgaXMgYWJvdmUgb3RoZXIgZWxlbWVudHMgKi9cbiAgYmFja2dyb3VuZDogI2ZmZjsgLyogQmFja2dyb3VuZCBjb2xvciBmb3IgYmV0dGVyIHZpc2liaWxpdHkgKi9cbiAgYm9yZGVyOiAxcHggc29saWQgI2RkZDsgLyogQm9yZGVyIHRvIGRpc3Rpbmd1aXNoIHRoZSBsaXN0ICovXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IGF1dG87IC8qIEVuc3VyZSB3aWR0aCBpcyBhcHByb3ByaWF0ZSAqL1xuICBtYXgtd2lkdGg6IDMwMHB4OyAvKiBBIG1heC13aWR0aCBmb3IgYmV0dGVyIHByZXNlbnRhdGlvbiAqL1xuICBtYXgtaGVpZ2h0OiAyMDBweDsgLyogTWF4IGhlaWdodCB0byBwcmV2ZW50IG92ZXJmbG93ICovXG4gIG92ZXJmbG93LXk6IGF1dG87IC8qIFNjcm9sbCBpZiBjb250ZW50IGV4Y2VlZHMgbWF4IGhlaWdodCAqL1xuICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpOyAvKiBPcHRpb25hbDogZm9yIGEgc3VidGxlIHNoYWRvdyAqL1xuICBkaXNwbGF5OiBub25lOyAvKiBPbmx5IGRpc3BsYXkgd2hlbiBuZWVkZWQgKi9cbn1cblxuLnN1Z2dlc3Rpb24taXRlbSB7XG4gIHBhZGRpbmc6IDhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uc3VnZ2VzdGlvbi1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhMWExYTtcbn1cblxuLnRhYi1pY29uIHtcbiAgY29sb3I6ICM4ODg7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG5cbi5sYXlvdXRjb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogYXV0bztcbiAgbWluLWhlaWdodDogMTAwdmg7XG59XG5cbi5sYXlvdXRzaWRlYmFyIHtcbiAgd2lkdGg6IDUlO1xuICBtaW4td2lkdGg6IDUwcHg7XG4gIHBhZGRpbmc6IDVweDtcbn1cblxuLmxheW91dGNvbnRlbnQge1xuICB3aWR0aDogOTUlO1xuICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5sYXlvdXRjb250ZW50LWZ1bGwge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLyogSGlkZSB0aGUgc2lkZWJhciBvbiBtb2JpbGUgKi9cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU3NnB4KSB7XG4gIC5sYXlvdXRzaWRlYmFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5sYXlvdXRjb250ZW50IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuLmxvYWRpbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGZvbnQtc2l6ZTogc21hbGxlcjtcbn1cblxuLmxvYWRpbmc6YWZ0ZXIge1xuICBjb250ZW50OiBcIkxvYWRpbmcuLi5cIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBmb250LXNpemU6IHNtYWxsZXI7XG4gIHBhZGRpbmc6IDJweCA1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuLmRvbmU6YWZ0ZXIge1xuICBjb250ZW50OiBcIkRvbmUhXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgZm9udC1zaXplOiBzbWFsbGVyO1xuICBwYWRkaW5nOiAycHggNXB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5cbi5sb2FkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiAxMDBweDsgLyogQWRqdXN0IHRoaXMgYXMgbmVlZGVkICovXG59XG5cbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2tlbGV0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2VlZSAyNSUsICNmNWY1ZjUgNTAlLCAjZWVlIDc1JSk7XG4gIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDA7XG4gIGFuaW1hdGlvbjogc2tlbGV0b24tbG9hZGluZyAxLjVzIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIHNrZWxldG9uLWxvYWRpbmcge1xuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSAwO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IC0xMDAlIDA7XG4gIH1cbn1cbi5za2VsZXRvbi1iYXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2RkZCAyNSUsICNlMWUxZTEgNTAlLCAjZGRkIDc1JSk7XG4gIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDA7XG4gIGFuaW1hdGlvbjogc2tlbGV0b24tYmFyLWxvYWRpbmcgMS41cyBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBza2VsZXRvbi1iYXItbG9hZGluZyB7XG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDA7XG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwMCUgMDtcbiAgfVxufVxuLnByb2dyZXNzLWJ1dHRvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkZGRkZGQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ucHJvZ3Jlc3MtYnV0dG9uOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMnB4O1xuICBsZWZ0OiAtMnB4O1xuICB3aWR0aDogY2FsYygxMDAlICsgNHB4KTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgKyA0cHgpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiBjb25pYy1ncmFkaWVudChyZ2JhKDUwLCAyMDUsIDUwLCAwLjMpIHZhcigtLWNvbXBsZXRpb24sIDAlKSwgdHJhbnNwYXJlbnQgMCUpO1xuICB6LWluZGV4OiAtMTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4uZ20tc3R5bGUtaXcgYnV0dG9uLmdtLXVpLWhvdmVyLWVmZmVjdCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICNmbG9hdGluZy1pbmZvIHtcbiAgICBkaXNwbGF5OiBub25lOyAvKiBIaWRlcyB0aGUgZmxvYXRpbmcgZGl2ICovXG4gIH1cbn1cbi8qIE9wdGlvbmFsOiBBZGp1c3RtZW50cyBmb3IgdGhlIG1hcCBvbiBuYXJyb3cgc2NyZWVucyAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICNtYXAge1xuICAgIHdpZHRoOiAxMDAlOyAvKiBFbnN1cmUgdGhlIG1hcCB0YWtlcyB1cCB0aGUgZnVsbCB3aWR0aCAqL1xuICB9XG59XG4uZm9ybS1yYW5nZTo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjQ3NDI0O1xufVxuXG4uZm9ybS1yYW5nZTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2sge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG59XG5cbi5mb3JtLXJhbmdlOjotd2Via2l0LXNsaWRlci10aHVtYjphY3RpdmUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7XG59XG5cbi51c2VyLWVudHJpZXMge1xuICBib3JkZXItbGVmdDogM3B4IHNvbGlkICNlOWVjZWY7XG4gIHBhZGRpbmctbGVmdDogOHB4O1xufVxuXG4udXNlci1oZWFkZXIge1xuICBmb250LXdlaWdodDogNTAwO1xuICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gIGNvbG9yOiAjNjY2O1xufVxuXG4udXNlci10b3RhbCB7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIGNvbG9yOiAjNjY2O1xuICBtYXJnaW4tdG9wOiA0cHg7XG4gIHBhZGRpbmctdG9wOiA0cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVlO1xufVxuXG4uZW50cnktaXRlbSB7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wMik7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuXG4udG90YWwtaG91cnMge1xuICBtYXJnaW4tdG9wOiAxMnB4O1xuICBwYWRkaW5nLXRvcDogOHB4O1xuICBib3JkZXItdG9wOiAycHggc29saWQgI2VlZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi53ZWVrbHktc3VtbWFyeSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wMyk7XG4gIHBhZGRpbmc6IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuLndlZWtseS1zdW1tYXJ5IGgzIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IDEuMXJlbTtcbn1cblxuLnBheS1yYXRlLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uZWRpdC1wYXktcmF0ZSB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcbn1cblxuLnBheS1yYXRlLXdyYXBwZXI6aG92ZXIgLmVkaXQtcGF5LXJhdGUge1xuICBvcGFjaXR5OiAxO1xufVxuXG4ucGF5LXJhdGUtaW5wdXQge1xuICB3aWR0aDogODBweDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5zY3JvbGwtcG9wdXAge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogMjBweDtcbiAgbGVmdDogMjBweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIHBhZGRpbmc6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm94LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIHotaW5kZXg6IDEwMDA7XG4gIG1heC13aWR0aDogMzAwcHg7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBsZWZ0O1xufVxuLnNjcm9sbC1wb3B1cC5oaWRkZW4ge1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTUwcHgpIHJvdGF0ZSgtNWRlZykgc2NhbGUoMC44KTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJveC1zaGFkb3c6IDAgMCAwIHJnYmEoMCwgMCwgMCwgMCk7XG59XG4uc2Nyb2xsLXBvcHVwOm5vdCguaGlkZGVuKSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSByb3RhdGUoMCkgc2NhbGUoMSk7XG4gIG9wYWNpdHk6IDE7XG4gIGFuaW1hdGlvbjogcG9wdXAtZ2xvdyAycyBpbmZpbml0ZSBhbHRlcm5hdGU7XG59XG4uc2Nyb2xsLXBvcHVwIC5wb3B1cC1jb250ZW50IHtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlO1xufVxuLnNjcm9sbC1wb3B1cDpub3QoLmhpZGRlbikgLnBvcHVwLWNvbnRlbnQge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7XG59XG4uc2Nyb2xsLXBvcHVwIC5jbG9zZS1wb3B1cCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBjb2xvcjogIzRlNGU0ZTtcbiAgcmlnaHQ6IDEwcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIG9wYWNpdHk6IDAuNztcbn1cbi5zY3JvbGwtcG9wdXAgLmNsb3NlLXBvcHVwOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIHNjYWxlKDEuMik7XG4gIG9wYWNpdHk6IDE7XG59XG5cbkBrZXlmcmFtZXMgcG9wdXAtZ2xvdyB7XG4gIGZyb20ge1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgfVxuICB0byB7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMjVweCByZ2JhKDI0NCwgMTE2LCAzNiwgMC4yKTtcbiAgfVxufVxuLmJ1dHRvbi1ncm91cC0xMyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uYnV0dG9uLWdyb3VwLTEzIC5idXR0b24tMTMge1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBtYXJnaW46IDA7XG59XG4uYnV0dG9uLWdyb3VwLTEzIC5idXR0b24tMTM6Zmlyc3QtY2hpbGQge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA4cHg7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDhweDtcbn1cbi5idXR0b24tZ3JvdXAtMTMgLmJ1dHRvbi0xMzpsYXN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDhweDtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDhweDtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG5cbi5maWVsZF93aXRoX2Vycm9ycyB7XG4gIGRpc3BsYXk6IGNvbnRlbnRzO1xufVxuXG4uZmllbGRfd2l0aF9lcnJvcnMgaW5wdXQsXG4uZmllbGRfd2l0aF9lcnJvcnMgc2VsZWN0LFxuLmZpZWxkX3dpdGhfZXJyb3JzIHRleHRhcmVhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMjAsIDUzLCA2OSwgMC4xKSAhaW1wb3J0YW50OyAvKiBCb290c3RyYXAgZGFuZ2VyIGNvbG9yIHdpdGggb3BhY2l0eSAqL1xuICBib3JkZXItY29sb3I6ICNkYzM1NDUgIWltcG9ydGFudDtcbn1cblxuLmZpZWxkX3dpdGhfZXJyb3JzIC5pbnB1dC1ncm91cC10ZXh0IHtcbiAgYm9yZGVyLWNvbG9yOiAjZGMzNTQ1ICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjIwLCA1MywgNjksIDAuMSkgIWltcG9ydGFudDtcbn1cblxuLyogRW5zdXJlIHRoZSBpbnB1dCBncm91cCBib3JkZXIgY29ubmVjdGlvbiBpcyBzZWFtbGVzcyAqL1xuLmZpZWxkX3dpdGhfZXJyb3JzIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtdGV4dCB7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkYzM1NDU7XG59XG5cbi5maWVsZF93aXRoX2Vycm9ycyAuaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbCB7XG4gIGJvcmRlci1sZWZ0OiAwO1xufVxuXG4uY2FsY3VsYXRvci1jdGEge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xufVxuXG4uY2FsY3VsYXRvci1jdGE6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7XG59XG5cbi5jdGEtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgwLCAwLCAwLCAwLjc1KSwgcmdiYSgwLCAwLCAwLCAwLjYpKTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xufVxuXG4uY2FsY3VsYXRvci1jdGEgLmZhLWNhbGN1bGF0b3Itc2ltcGxlIHtcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgMTBweCByZ2JhKDI0NCwgMTE2LCAzNiwgMC41KSk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuZmVhdHVyZS1saXN0LWNvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAyMDBweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIH1cbiAgLmZlYXR1cmUtbGlzdC1jb250YWluZXI6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogNHB4O1xuICB9XG4gIC5mZWF0dXJlLWxpc3QtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICB9XG4gIC5mZWF0dXJlLWxpc3QtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgfVxufVxuXG4ucmV2aWV3LXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDM1MHB4O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5yZXZpZXctd3JhcHBlciB7XG4gICAgbWF4LXdpZHRoOiAyODBweDtcbiAgfVxufVxuXG4ucmV2aWV3LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG59XG4ucmV2aWV3LWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ucmV2aWV3LWJ1dHRvbi13cmFwcGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgei1pbmRleDogMTA7XG59XG4ucmV2aWV3LWJ1dHRvbi13cmFwcGVyIC5ibGFua2J1dHRvbiB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLnJldmlldy1idXR0b24td3JhcHBlciAuY2lyY3VsYXItaWNvbiB7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBwYWRkaW5nOiA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ucmFjaW5nLWNhcmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4ucmFjaW5nLWNhcmQ6OmJlZm9yZSwgLnJhY2luZy1jYXJkOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAtMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCAwJSwgcmdiYSgxMzAsIDI0NCwgMzYsIDAuMSkgNTAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgdHJhbnNpdGlvbjogbGVmdCAwLjZzIGN1YmljLWJlemllcigwLjY1LCAwLCAwLjM1LCAxKTtcbiAgei1pbmRleDogMDtcbn1cbi5yYWNpbmctY2FyZDo6YWZ0ZXIge1xuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50IDAlLCByZ2JhKDIwMSwgMjM0LCA1MSwgMC4xKSA1MCUsIHRyYW5zcGFyZW50IDEwMCUpO1xufVxuLnJhY2luZy1jYXJkOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7XG59XG4ucmFjaW5nLWNhcmQ6aG92ZXI6OmJlZm9yZSwgLnJhY2luZy1jYXJkOmhvdmVyOjphZnRlciB7XG4gIGFuaW1hdGlvbjogcmFjZUFjcm9zcyAxLjJzIGN1YmljLWJlemllcigwLjY1LCAwLCAwLjM1LCAxKTtcbn1cbi5yYWNpbmctY2FyZDpob3Zlcjo6YWZ0ZXIge1xuICBhbmltYXRpb24tZGVsYXk6IDAuMnM7XG59XG4ucmFjaW5nLWNhcmQ6aG92ZXIgLmxpbmsge1xuICBjb2xvcjogI0RDOEE3ODtcbn1cbi5yYWNpbmctY2FyZDpob3ZlciAuZmEtZHVvdG9uZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpIHJvdGF0ZSgxMGRlZyk7XG59XG4ucmFjaW5nLWNhcmQgLmxpbmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZTtcbn1cbi5yYWNpbmctY2FyZCAuZmEtZHVvdG9uZSB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG59XG5cbkBrZXlmcmFtZXMgcmFjZUFjcm9zcyB7XG4gIDAlIHtcbiAgICBsZWZ0OiAtMTAwJTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIDEwMCUge1xuICAgIGxlZnQ6IDEwMCU7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuLyogTW9yZSBTZWN0aW9uIFN0eWxlcyAqL1xuLmxpbmsuYWN0aXZlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFhNzNlODtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBwYWRkaW5nOiA0cHggOHB4O1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi50cmFuc2l0aW9uLW9wYWNpdHkge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZS1pbi1vdXQ7XG59XG5cbi5vcGFjaXR5LTAge1xuICBvcGFjaXR5OiAwO1xufVxuXG4ub3BhY2l0eS0xMDAge1xuICBvcGFjaXR5OiAxO1xufVxuXG4vKiBTb2NpYWwgU2hhcmluZyBCdXR0b25zICovXG4uY29weS1idG4ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB3aWR0aDogMi41cmVtO1xuICBoZWlnaHQ6IDIuNXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG59XG4uY29weS1idG46aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLmNvcHktYnRuLmJpLWNsaXBib2FyZCB7XG4gIGNvbG9yOiAjNmM3NTdkO1xufVxuLmNvcHktYnRuLmJpLWNsaXBib2FyZDpob3ZlciB7XG4gIGNvbG9yOiAjNDk1MDU3O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEwOCwgMTE3LCAxMjUsIDAuMSk7XG59XG4uY29weS1idG4uYmktZmFjZWJvb2sge1xuICBjb2xvcjogIzNiNTk5ODtcbn1cbi5jb3B5LWJ0bi5iaS1mYWNlYm9vazpob3ZlciB7XG4gIGNvbG9yOiAjMmQ0MzczO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDU5LCA4OSwgMTUyLCAwLjEpO1xufVxuLmNvcHktYnRuLmJpLXR3aXR0ZXIge1xuICBjb2xvcjogIzFkYTFmMjtcbn1cbi5jb3B5LWJ0bi5iaS10d2l0dGVyOmhvdmVyIHtcbiAgY29sb3I6ICMwYzg1ZDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjksIDE2MSwgMjQyLCAwLjEpO1xufVxuLmNvcHktYnRuLmJpLWluc3RhZ3JhbSB7XG4gIGNvbG9yOiAjZTEzMDZjO1xufVxuLmNvcHktYnRuLmJpLWluc3RhZ3JhbTpob3ZlciB7XG4gIGNvbG9yOiAjYzEzNTg0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIyNSwgNDgsIDEwOCwgMC4xKTtcbn1cblxuLnByZXZpZXctY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5wcmV2aWV3LWJhZGdlcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAxMHB4O1xuICByaWdodDogMTBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA1cHg7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xufVxuXG4ucHJldmlldy1jb250YWluZXI6aG92ZXIgLnByZXZpZXctYmFkZ2VzIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLnByZXZpZXctYmFkZ2VzIC5iYWRnZSB7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbn1cblxuLnByZXZpZXctYmFkZ2VzIC5iYWRnZSBpIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDNweDtcbn1cblxuLyogQ3VzdG9tIHN0eWxpbmcgZm9yIHRoZSBuYXZpZ2F0aW9uIHRhYnMgKi9cbiNldi1tYW5hZ2VtZW50LXRhYnMgLm5hdi1saW5rIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgb3BhY2l0eTogMC43O1xufVxuXG4jZXYtbWFuYWdlbWVudC10YWJzIC5uYXYtbGluazpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpO1xufVxuXG4jZXYtbWFuYWdlbWVudC10YWJzIC5uYXYtbGluay5hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xuICBib3JkZXItbGVmdDogNHB4IHNvbGlkICNmNDc0MjQgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyNDQsIDExNiwgMzYsIDAuMTUpIDAlLCByZ2JhKDI0NCwgMTE2LCAzNiwgMC4wNSkgMTAwJSk7XG59XG5cbi5jYXJvdXNlbC1uYXYge1xuICBvcGFjaXR5OiAwLjY7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmctYm90dG9tOiA1cHg7XG59XG5cbi5jYXJvdXNlbC1uYXYuYWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNmNDc0MjQ7XG59XG5cbi8qIFFSIENvZGUgU3R5bGluZyAqL1xuLnFyLWNvZGUtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBwYWRkaW5nOiAxNXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1heC13aWR0aDogMjAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4ucXItY29kZS1jb250YWluZXIgaDYge1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBjb2xvcjogIzMzMztcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnFyLWNvZGUtY29udGFpbmVyIHN2ZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIG1heC13aWR0aDogMTUwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmMGYwZjA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cblxuLnFyLWNvZGUtY29udGFpbmVyIC5xci1jb2RlLWRlc2NyaXB0aW9uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzY2NjtcbiAgbWFyZ2luLXRvcDogOHB4O1xufVxuXG4ucXItY29kZS1jb250YWluZXI6aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3MgZWFzZTtcbn1cblxuLm1lc3NhZ2VzLWNvbnRhaW5lciB7XG4gIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xufVxuLm1lc3NhZ2VzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICB3aWR0aDogNnB4O1xufVxuLm1lc3NhZ2VzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMDUpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4ubWVzc2FnZXMtY29udGFpbmVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLm1lc3NhZ2VzLWNvbnRhaW5lcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5cbi5tZXNzYWdlLWl0ZW0ge1xuICBhbmltYXRpb246IGZhZGVJblVwIDAuM3MgZWFzZTtcbn1cbkBrZXlmcmFtZXMgZmFkZUluVXAge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cblxuLm1lc3NhZ2UtYXZhdGFyIC5hdmF0YXItcGxhY2Vob2xkZXIge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuLm1lc3NhZ2UtYXZhdGFyIC5hdmF0YXItcGxhY2Vob2xkZXI6aG92ZXIge1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xufVxuXG4ubWVzc2FnZS1idWJibGUge1xuICBwYWRkaW5nOiAxNnB4IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm94LXNoYWRvdzogMCAycHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4ubWVzc2FnZS1idWJibGU6aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDRweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cbi5tZXNzYWdlLWJ1YmJsZS5tZXNzYWdlLWJ1YmJsZS1vd24ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSwgdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgZGQpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS1idXR0b24tdGV4dCkgIWltcG9ydGFudDtcbn1cbi5tZXNzYWdlLWJ1YmJsZS5tZXNzYWdlLWJ1YmJsZS1vd246OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDhweDtcbiAgcmlnaHQ6IC04cHg7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDA7XG4gIG1hcmdpbi1yaWdodDogLThweDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpIGRkICFpbXBvcnRhbnQ7XG59XG4ubWVzc2FnZS1idWJibGUubWVzc2FnZS1idWJibGUtb3duIC50ZXh0LW11dGVkIHtcbiAgY29sb3I6IHZhcigtLWJ1dHRvbi10ZXh0KSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjg7XG59XG4ubWVzc2FnZS1idWJibGUubWVzc2FnZS1idWJibGUtb3duIC5iYWRnZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQpICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJ1dHRvbi10ZXh0KSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAwLjk7XG59XG4ubWVzc2FnZS1idWJibGUubWVzc2FnZS1idWJibGUtb3duIC5tZXNzYWdlLXRpbWVzdGFtcCxcbi5tZXNzYWdlLWJ1YmJsZS5tZXNzYWdlLWJ1YmJsZS1vd24gLm1lc3NhZ2UtcmVhZC1zdGF0dXMsXG4ubWVzc2FnZS1idWJibGUubWVzc2FnZS1idWJibGUtb3duIC5kb2N1bWVudC1maWxlLXNpemUge1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDAuODtcbn1cbi5tZXNzYWdlLWJ1YmJsZS5tZXNzYWdlLWJ1YmJsZS1vdGhlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWNhcmQtY29sb3VyKSwgdmFyKC0tYmFja2dyb3VuZC1jb2xvdXIpKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG4ubWVzc2FnZS1idWJibGUubWVzc2FnZS1idWJibGUtb3RoZXI6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDhweDtcbiAgbGVmdDogLThweDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1sZWZ0OiAwO1xuICBtYXJnaW4tbGVmdDogLThweDtcbiAgYm9yZGVyLXJpZ2h0LWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbn1cbi5tZXNzYWdlLWJ1YmJsZS5tZXNzYWdlLWJ1YmJsZS1vdGhlciAubWVzc2FnZS10aW1lc3RhbXAsXG4ubWVzc2FnZS1idWJibGUubWVzc2FnZS1idWJibGUtb3RoZXIgLm1lc3NhZ2UtcmVhZC1zdGF0dXMsXG4ubWVzc2FnZS1idWJibGUubWVzc2FnZS1idWJibGUtb3RoZXIgLmRvY3VtZW50LWZpbGUtc2l6ZSB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cikgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMC43O1xufVxuXG4ubWVzc2FnZS1mb3JtIHtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICBwYWRkaW5nOiAyMHB4O1xuICBib3gtc2hhZG93OiAwIC00cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91cikgZjAgIWltcG9ydGFudDtcbn1cbi5tZXNzYWdlLWZvcm0gdGV4dGFyZWEge1xuICByZXNpemU6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIHBhZGRpbmc6IDEycHggMjBweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5tZXNzYWdlLWZvcm0gdGV4dGFyZWE6Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAyMCAhaW1wb3J0YW50O1xufVxuLm1lc3NhZ2UtZm9ybSAuZmlsZS11cGxvYWQtd3JhcHBlciBsYWJlbCB7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmc6IDEycHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4ubWVzc2FnZS1mb3JtIC5maWxlLXVwbG9hZC13cmFwcGVyIGxhYmVsOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyKSAxNSAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAxO1xufVxuXG4uZmlsZS11cGxvYWQtaWNvbiB7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xuICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNkZWUyZTYgIWltcG9ydGFudDtcbiAgY29sb3I6ICM2Yzc1N2QgIWltcG9ydGFudDtcbiAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxOHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbjogMCBhdXRvICFpbXBvcnRhbnQ7XG59XG4uZmlsZS11cGxvYWQtaWNvbjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91cikgMTUgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1jb2xvdXIpICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wNSkgIWltcG9ydGFudDtcbn1cbi5maWxlLXVwbG9hZC1pY29uOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSkgIWltcG9ydGFudDtcbn1cblxuLmRvY3VtZW50LWl0ZW0ge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xufVxuLmRvY3VtZW50LWl0ZW06aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4ubWVzc2FnaW5nLWhlYWRlciAuY2xpZW50LXN0YXR1cy1iYWRnZSB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuLm1lc3NhZ2luZy1jb250YWluZXIgLmxpZ2h0Y2FyZCB7XG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG59XG5cbi5tZXNzYWdlLXNlbmRpbmcge1xuICBvcGFjaXR5OiAwLjc7XG59XG4ubWVzc2FnZS1zZW5kaW5nOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwi4o+zXCI7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG59XG5cbi5tZXNzYWdlLWRlbGl2ZXJlZDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIuKck1wiO1xuICBtYXJnaW4tbGVmdDogOHB4O1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xufVxuXG4ubWVzc2FnZS1uZXcge1xuICBhbmltYXRpb246IHB1bHNlTmV3IDAuNXMgZWFzZTtcbn1cbkBrZXlmcmFtZXMgcHVsc2VOZXcge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBib3gtc2hhZG93OiAwIDJweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggcmdiYSgwLCAxMjMsIDI1NSwgMC4yKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgfVxufVxuXG4ubWVzc2FnZS11cGRhdGVkIHtcbiAgYW5pbWF0aW9uOiBmbGFzaFVwZGF0ZSAxcyBlYXNlO1xufVxuQGtleWZyYW1lcyBmbGFzaFVwZGF0ZSB7XG4gIDAlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICA1MCUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyMzUsIDU5LCAwLjMpO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi5zZWFyY2gtYmFyLWNvbnRhaW5lciB7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbn1cbi5zZWFyY2gtYmFyLWNvbnRhaW5lciAuZm9ybS1jb250cm9sIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cbi5zZWFyY2gtYmFyLWNvbnRhaW5lciAuZm9ybS1jb250cm9sOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDA3YmZmO1xuICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgwLCAxMjMsIDI1NSwgMC4xKTtcbn1cblxuLnNlYXJjaC1oaWdobGlnaHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmM2NkO1xuICBjb2xvcjogIzg1NjQwNDtcbiAgcGFkZGluZzogMnB4IDRweDtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4uc2VhcmNoLWFjdGl2ZS1tYXRjaCB7XG4gIGFuaW1hdGlvbjogc2VhcmNoUHVsc2UgMXMgZWFzZTtcbn1cbkBrZXlmcmFtZXMgc2VhcmNoUHVsc2Uge1xuICAwJSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgNTAlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDEyMywgMjU1LCAwLjEpO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG59XG5cbi5tZXNzYWdlLWlucHV0LWFyZWEge1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5tZXNzYWdlLWlucHV0LWFyZWEgLm1lc3NhZ2UtaW5wdXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuLm1lc3NhZ2UtaW5wdXQtYXJlYSAubWVzc2FnZS1pbnB1dDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzAwN2JmZjtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMCwgMTIzLCAyNTUsIDAuMSk7XG59XG4ubWVzc2FnZS1pbnB1dC1hcmVhIC5idG4ge1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xufVxuLm1lc3NhZ2UtaW5wdXQtYXJlYSAuYnRuOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuLm1lc3NhZ2UtaW5wdXQtYXJlYSAuYnRuLmJ0bi1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzAwN2JmZiwgIzAwNTZiMyk7XG4gIGJvcmRlcjogbm9uZTtcbn1cbi5tZXNzYWdlLWlucHV0LWFyZWEgLmJ0bi5idG4tcHJpbWFyeTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwMDU2YjMsICMwMDQwODUpO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgLm1lc3NhZ2luZy1jb250YWluZXIge1xuICAgIGhlaWdodDogY2FsYygxMDB2aCAtIDE1MHB4KSAhaW1wb3J0YW50O1xuICB9XG4gIC5jb252ZXJzYXRpb24taXRlbSB7XG4gICAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5jb252ZXJzYXRpb24taXRlbS5oYXMtdW5yZWFkIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG4gIC5vZmZjYW52YXMtYm9keSAuY29udmVyc2F0aW9ucy1saXN0IHtcbiAgICBtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuY29udmVyc2F0aW9uLWl0ZW06aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuODU7XG4gICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICB9XG59XG4uc3BpbiB7XG4gIGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgc3BpbiB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG4udGVtcGxhdGUtcG9wb3ZlciB7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RlZTJlNik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtY29sb3VyLCAjZmZmKTtcbn1cbi50ZW1wbGF0ZS1wb3BvdmVyOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLThweDtcbiAgbGVmdDogMjBweDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyLWxlZnQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1ib3R0b206IDhweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbn1cbi50ZW1wbGF0ZS1wb3BvdmVyOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtN3B4O1xuICBsZWZ0OiAyMXB4O1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItbGVmdDogN3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogN3B4IHNvbGlkIHZhcigtLWNhcmQtY29sb3VyLCAjZmZmKTtcbn1cblxuLnNhdmUtc3RhdHVzLWluZGljYXRvciB7XG4gIG1pbi13aWR0aDogMTAwcHg7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4uYWxlcnQuYmctdGhlbWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91cikgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXItY29sb3VyKSAhaW1wb3J0YW50O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIpICFpbXBvcnRhbnQ7XG59XG5cbi5lbW9qaS1waWNrZXIge1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLmVtb2ppLXBpY2tlciAuZW1vamktYnRuIHtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cbi5lbW9qaS1waWNrZXIgLmVtb2ppLWJ0bjpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGY5ZmE7XG4gIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcbn1cblxuLnR5cGluZy1pbmRpY2F0b3Ige1xuICBvcGFjaXR5OiAwO1xuICBhbmltYXRpb246IGZhZGVJbiAwLjNzIGVhc2UgZm9yd2FyZHM7XG59XG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG4udHlwaW5nLWluZGljYXRvciAudHlwaW5nLWRvdHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDRweDtcbn1cbi50eXBpbmctaW5kaWNhdG9yIC50eXBpbmctZG90cyBzcGFuIHtcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQpO1xuICBhbmltYXRpb246IHR5cGluZ0RvdCAxLjRzIGluZmluaXRlIGVhc2UtaW4tb3V0O1xufVxuLnR5cGluZy1pbmRpY2F0b3IgLnR5cGluZy1kb3RzIHNwYW46bnRoLWNoaWxkKDEpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC4zMnM7XG59XG4udHlwaW5nLWluZGljYXRvciAudHlwaW5nLWRvdHMgc3BhbjpudGgtY2hpbGQoMikge1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjE2cztcbn1cbi50eXBpbmctaW5kaWNhdG9yIC50eXBpbmctZG90cyBzcGFuOm50aC1jaGlsZCgzKSB7XG4gIGFuaW1hdGlvbi1kZWxheTogMHM7XG59XG5Aa2V5ZnJhbWVzIHR5cGluZ0RvdCB7XG4gIDAlLCA4MCUsIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmdpZi1waWNrZXIge1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKSAhaW1wb3J0YW50O1xufVxuLmdpZi1waWNrZXIgLmdpZi1waWNrZXItaGVhZGVyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgcGFkZGluZy1ib3R0b206IDEycHg7XG59XG4uZ2lmLXBpY2tlciAuZ2lmLXBpY2tlci1oZWFkZXIgLmZvcm0tY29udHJvbCB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4uZ2lmLXBpY2tlciAuZ2lmLXBpY2tlci1oZWFkZXIgLmZvcm0tY29udHJvbDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogIzAwN2JmZjtcbiAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMCwgMTIzLCAyNTUsIDAuMSk7XG59XG4uZ2lmLXBpY2tlciAuZ2lmLWNhdGVnb3JpZXMgLmJ0biB7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG59XG4uZ2lmLXBpY2tlciAuZ2lmLWNhdGVnb3JpZXMgLmJ0bjpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2JmZjtcbiAgY29sb3I6IHdoaXRlO1xufVxuLmdpZi1waWNrZXIgLmdpZi1yZXN1bHRzIHtcbiAgYmFja2dyb3VuZDogI2Y4ZjlmYTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuLmdpZi1waWNrZXIgLmdpZi1yZXN1bHRzIC5naWYtaXRlbSBpbWcge1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuLmdpZi1waWNrZXIgLmdpZi1yZXN1bHRzIC5naWYtaXRlbSBpbWc6aG92ZXIge1xuICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwgMTIzLCAyNTUsIDAuMyk7XG59XG5cbi5tYXBsaWJyZWdsLXBvcHVwLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91ciwgI2ZmZikgIWltcG9ydGFudDtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMzMzKSAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgMC41cmVtKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdywgMCA0cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMTUpKTtcbiAgcGFkZGluZzogMDtcbn1cblxuLm1hcGxpYnJlZ2wtcG9wdXAtYW5jaG9yLWJvdHRvbSAubWFwbGlicmVnbC1wb3B1cC10aXAge1xuICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91ciwgI2ZmZik7XG59XG5cbi5tYXBsaWJyZWdsLXBvcHVwLWFuY2hvci10b3AgLm1hcGxpYnJlZ2wtcG9wdXAtdGlwIHtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIsICNmZmYpO1xufVxuXG4ubWFwbGlicmVnbC1wb3B1cC1hbmNob3ItbGVmdCAubWFwbGlicmVnbC1wb3B1cC10aXAge1xuICBib3JkZXItcmlnaHQtY29sb3I6IHZhcigtLWNhcmQtY29sb3VyLCAjZmZmKTtcbn1cblxuLm1hcGxpYnJlZ2wtcG9wdXAtYW5jaG9yLXJpZ2h0IC5tYXBsaWJyZWdsLXBvcHVwLXRpcCB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1jYXJkLWNvbG91ciwgI2ZmZik7XG59XG5cbi5tYXBsaWJyZWdsLWN0cmwtZ3JvdXAge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91ciwgI2ZmZikgIWltcG9ydGFudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RlZTJlNikgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogdmFyKC0tYm94LXNoYWRvdywgMCAwIDRweCByZ2JhKDAsIDAsIDAsIDAuMSkpICFpbXBvcnRhbnQ7XG59XG4ubWFwbGlicmVnbC1jdHJsLWdyb3VwIGJ1dHRvbiB7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzMzMykgIWltcG9ydGFudDtcbn1cbi5tYXBsaWJyZWdsLWN0cmwtZ3JvdXAgYnV0dG9uICsgYnV0dG9uIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RlZTJlNikgIWltcG9ydGFudDtcbn1cbi5tYXBsaWJyZWdsLWN0cmwtZ3JvdXAgLm1hcGxpYnJlZ2wtY3RybC16b29tLWluIC5tYXBsaWJyZWdsLWN0cmwtaWNvbixcbi5tYXBsaWJyZWdsLWN0cmwtZ3JvdXAgLm1hcGxpYnJlZ2wtY3RybC16b29tLW91dCAubWFwbGlicmVnbC1jdHJsLWljb24ge1xuICBmaWx0ZXI6IHZhcigtLW1hcGxpYnJlLWljb24tZmlsdGVyLCBub25lKTtcbn1cblxuLm1hcGxpYnJlZ2wtY3RybCBidXR0b24gLm1hcGxpYnJlZ2wtY3RybC1pY29uLmZhLWN0cmwge1xuICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gIGZpbHRlcjogbm9uZSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMzMzKTtcbn1cbi5tYXBsaWJyZWdsLWN0cmwgYnV0dG9uIC5tYXBsaWJyZWdsLWN0cmwtaWNvbi5mYS1jdHJsIGksIC5tYXBsaWJyZWdsLWN0cmwgYnV0dG9uIC5tYXBsaWJyZWdsLWN0cmwtaWNvbi5mYS1jdHJsIHN2ZyB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgd2lkdGg6IDAuOXJlbTtcbiAgaGVpZ2h0OiAwLjlyZW07XG59XG5cbi5tYXBsaWJyZWdsLWN0cmwtYXR0cmliIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1jb2xvdXIsICNmZmYpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzMzMykgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAwLjdyZW0gIWltcG9ydGFudDtcbn1cbi5tYXBsaWJyZWdsLWN0cmwtYXR0cmliIGEge1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICMzMzMpICFpbXBvcnRhbnQ7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5tYXBsaWJyZWdsLWN0cmwtZ3JvdXAgYnV0dG9uIC5tYXBsaWJyZWdsLWN0cmwtaWNvbjpub3QoLmZhLWN0cmwpIHtcbiAgZmlsdGVyOiBpbnZlcnQoMSk7XG59XG5cbltkYXRhLXRoZW1lPWRhcmtdIC5tYXBsaWJyZWdsLWN0cmwtYXR0cmliLWJ1dHRvbiB7XG4gIGZpbHRlcjogaW52ZXJ0KDEpO1xufVxuXG4uZGFzaGJvYXJkLW1hcC1wb3B1cCB7XG4gIHBhZGRpbmc6IDAuNXJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMzMzKTtcbn1cblxuLmRhc2hib2FyZC1tYXAtcG9wdXAtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNHJlbTtcbn1cblxuLmRhc2hib2FyZC1tYXAtcG9wdXAtaWNvbiB7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBmbGV4LXNocmluazogMDtcbiAgYmFja2dyb3VuZDogdmFyKC0taW50ZXJhY3Rpb24sICMyOGE3NDUpO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLmRhc2hib2FyZC1tYXAtcG9wdXAtdGl0bGUge1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDAuODJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzMzMyk7XG59XG5cbi5kYXNoYm9hcmQtbWFwLXBvcHVwLXN1YnRpdGxlIHtcbiAgZm9udC1zaXplOiAwLjdyZW07XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzY2Nik7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLmRhc2hib2FyZC1tYXAtcG9wdXAtYmFkZ2VzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDAuMjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNHJlbTtcbn1cbi5kYXNoYm9hcmQtbWFwLXBvcHVwLWJhZGdlcyAuYmFkZ2Uge1xuICBib3JkZXI6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgcGFkZGluZzogMC4yZW0gMC40NWVtO1xufVxuXG4uZGFzaGJvYXJkLW1hcC1wb3B1cC1pbmZvIHtcbiAgbWFyZ2luLWJvdHRvbTogMC40cmVtO1xufVxuXG4uZGFzaGJvYXJkLW1hcC1wb3B1cC1pbmZvLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC40cmVtO1xuICBmb250LXNpemU6IDAuNzJyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICM2NjYpO1xuICBtYXJnaW4tYm90dG9tOiAwLjE1cmVtO1xufVxuLmRhc2hib2FyZC1tYXAtcG9wdXAtaW5mby1yb3cgaSB7XG4gIHdpZHRoOiAxMnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG9wYWNpdHk6IDAuNjtcbn1cblxuLmRhc2hib2FyZC1tYXAtcG9wdXAtY2hpcHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuMzVyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNHJlbTtcbn1cblxuLmRhc2hib2FyZC1tYXAtcG9wdXAtY2hpcCB7XG4gIHdpZHRoOiAyNnB4O1xuICBoZWlnaHQ6IDI2cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItY29sb3VyLCAjZGVlMmU2KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgI2Y0NzQyNCk7XG4gIGNvbG9yOiAjZmZmO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgZWFzZSwgb3BhY2l0eSAwLjE1cyBlYXNlO1xufVxuLmRhc2hib2FyZC1tYXAtcG9wdXAtY2hpcDpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgY29sb3I6ICNmZmY7XG59XG4uZGFzaGJvYXJkLW1hcC1wb3B1cC1jaGlwLmlzLWVtcHR5IHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgIzY2Nik7XG4gIG9wYWNpdHk6IDAuMztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5kYXNoYm9hcmQtbWFwLXBvcHVwLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNHJlbTtcbiAgcGFkZGluZy10b3A6IDAuNHJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkZWUyZTYpO1xufVxuLmRhc2hib2FyZC1tYXAtcG9wdXAtYWN0aW9ucyAuYnV0dG9uLTEzIHtcbiAgbWluLWhlaWdodDogMjZweDtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjZyZW07XG4gIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuXG4uZGFzaGJvYXJkLW1hcC1lbXB0eS1vdmVybGF5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91ciwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgMC41cmVtKTtcbiAgei1pbmRleDogMTtcbn1cblxuLmRhc2hib2FyZC1tYXAtZW1wdHktY29udGVudCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogMnJlbTtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjMzMzKTtcbn1cblxuLmRhc2hib2FyZC1hY3Rpb25zIC5kYXNoLWFjdGlvbi1idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jYXJkLWNvbG91ciwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSk7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91ciwgaW5oZXJpdCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbn1cbi5kYXNoYm9hcmQtYWN0aW9ucyAuZGFzaC1hY3Rpb24tYnRuIGkge1xuICBmb250LXNpemU6IDAuOTVyZW07XG4gIG9wYWNpdHk6IDAuNztcbn1cbi5kYXNoYm9hcmQtYWN0aW9ucyAuZGFzaC1hY3Rpb24tYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWNvbG91ciwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSk7XG4gIGNvbG9yOiB2YXIoLS1ib2R5LWNvbG91ciwgaW5oZXJpdCk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG4uZGFzaGJvYXJkLWFjdGlvbnMgLmRhc2gtYWN0aW9uLWJ0bjpob3ZlciBpIHtcbiAgb3BhY2l0eTogMTtcbn1cbi5kYXNoYm9hcmQtYWN0aW9ucyAuZGFzaC1hY3Rpb24tYnRuOmFjdGl2ZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbn1cbi5kYXNoYm9hcmQtYWN0aW9ucyAuZGFzaC1hY3Rpb24tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWJ1dHRvbi1jb2xvdXIpLCB2YXIoLS1pbnRlcmFjdGlvbikpO1xuICBjb2xvcjogdmFyKC0tYnV0dG9uLXRleHQpO1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmRhc2hib2FyZC1hY3Rpb25zIC5kYXNoLWFjdGlvbi1wcmltYXJ5IGkge1xuICBvcGFjaXR5OiAxO1xufVxuLmRhc2hib2FyZC1hY3Rpb25zIC5kYXNoLWFjdGlvbi1wcmltYXJ5OmhvdmVyIHtcbiAgY29sb3I6ICNmZmY7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygxLjEpO1xuICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwgMTMwLCAxNTAsIDAuMzUpO1xufVxuLmRhc2hib2FyZC1hY3Rpb25zIC5kYXNoLWFjdGlvbi1iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWluLXdpZHRoOiAxLjI1cmVtO1xuICBoZWlnaHQ6IDEuMjVyZW07XG4gIHBhZGRpbmc6IDAgMC4zNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYnV0dG9uLWNvbG91ciwgIzAwODI5Nik7XG4gIGNvbG9yOiB2YXIoLS10ZXh0LWNvbG91cik7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUFJPUE9TQUwgREVTSUdOIFNFQ1RJT04g4oCUIGFycmF5IGNhcmRzICsgb3B0aW9uIGNvbXBhcmlzb24gdGFibGVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5hcnJheS1jYXJkLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyNTBweCwgMWZyKSk7XG4gIGdhcDogMTJweDtcbn1cblxuLmFycmF5LWNhcmQge1xuICBwYWRkaW5nOiAxNnB4O1xufVxuXG4uYXJyYXktY2hpcCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgcGFkZGluZzogM3B4IDEwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvdXIsICNkYWRhZGEpO1xuICBib3JkZXItcmFkaXVzOiA1MHJlbTtcbiAgZm9udC1zaXplOiAwLjgycmVtO1xuICBjb2xvcjogdmFyKC0tdGV4dC1jb2xvdXIsICM0ZTRlNGUpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmFycmF5LWNoaXAgaSB7XG4gIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktY29sb3VyLCAjMDA4Mjk2KTtcbn1cblxuLmFycmF5LXNoYXJlLXRyYWNrIHtcbiAgaGVpZ2h0OiA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG91ciwgI2UyZTJlMik7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5hcnJheS1zaGFyZS1maWxsIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByb2R1Y3Rpb24tY29sb3VyLCAjNzRjNjlkKTtcbn1cblxuLmFycmF5LXNlcmllcy1kb3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBtYXJnaW4tcmlnaHQ6IDJweDtcbn1cblxuLmFycmF5LWNoYXJ0LWNhcmQge1xuICBwYWRkaW5nOiAxNnB4O1xufVxuXG4uY2hhcnQtdG9nZ2xlLWJ0biB7XG4gIHBhZGRpbmc6IDRweCAxMnB4O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5jb21wYXJpc29uLWNhcmQge1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY29tcGFyaXNvbi1zY3JvbGwge1xuICBvdmVyZmxvdy14OiBhdXRvO1xufVxuXG4uY29tcGFyaXNvbi10YWJsZSB7XG4gIG1pbi13aWR0aDogNjQwcHg7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG4uY29tcGFyaXNvbi10YWJsZSB0aCxcbi5jb21wYXJpc29uLXRhYmxlIHRkIHtcbiAgY29sb3I6IHZhcigtLXRleHQtY29sb3VyLCAjNGU0ZTRlKSAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWJvcmRlci1jb2xvdXIsICNlMmUyZTIpICFpbXBvcnRhbnQ7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHBhZGRpbmc6IDEycHggMTRweDtcbn1cbi5jb21wYXJpc29uLXRhYmxlIHRoOm5vdCguc2VsZWN0ZWQtcXVvdGUpLFxuLmNvbXBhcmlzb24tdGFibGUgdGQ6bm90KC5zZWxlY3RlZC1xdW90ZSkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuLmNvbXBhcmlzb24tdGFibGUgdGhlYWQgdGgge1xuICBib3JkZXItYm90dG9tLXdpZHRoOiAycHg7XG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4uY29tcGFyaXNvbi10YWJsZSAuY29tcGFyaXNvbi1vcHRpb24ge1xuICBtaW4td2lkdGg6IDIwMHB4O1xufVxuLmNvbXBhcmlzb24tdGFibGUgLmNvbXBhcmlzb24tbWV0cmljIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogMTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1jb2xvdXIsICNmZmZmZmYpICFpbXBvcnRhbnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uY29tcGFyaXNvbi10YWJsZSAuY29tcGFyaXNvbi1tZXRyaWMgaSB7XG4gIG1hcmdpbi1yaWdodDogNnB4O1xuICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWNvbG91ciwgIzAwODI5Nik7XG59XG5cbi5vcHRpb24tdGh1bWIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMjAwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cywgOHB4KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWNvbG91ciwgI2RkZGRkZCk7XG59XG4iXX0= */
