.character-select-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(10, 12, 20, 0.6);
  backdrop-filter: blur(3px);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 1000;
}

.character-select-popup {
  background: linear-gradient(145deg, #1e1e2e, #26263a);
  border: 3px solid rgba(74, 85, 104, 0.85);
  box-shadow:
    0px 5px black,
    0px -5px black,
    5px 0px black,
    -5px 0px black,
    0px 10px #00000038,
    5px 5px #00000038,
    -5px 5px #00000038,
    inset 0px 5px #ffffff36;
  border-radius: 18px;
  width: min(1180px, 94vw);
  max-width: 1180px;
  height: min(88vh, 920px);
  max-height: 88vh;
  position: relative;
  padding: 0 30px 30px;
  color: #e2e8f0;
  z-index: 1; /* above particles canvas */
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.character-select-popup::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 66px;
  background:
    linear-gradient(90deg, rgba(74, 158, 255, 0.92), rgba(107, 70, 193, 0.9)),
    repeating-linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.06) 0,
      rgba(255, 255, 255, 0.06) 2px,
      rgba(255, 255, 255, 0) 2px,
      rgba(255, 255, 255, 0) 8px
    );
  z-index: -1;
  border-radius: 14px 14px 0 0;
}

.popup-header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 66px;
  min-height: 66px;
  margin: 0 -30px 18px -30px;
  padding: 0 72px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.popup-title {
  margin: 0;
  font-size: clamp(20px, 2vw, 28px);
  font-family: "Press Start 2P", "Lato", sans-serif;
  text-transform: uppercase;
  color: #ffffff;
  text-shadow:
    0 2px 0 rgba(11, 24, 52, 0.9),
    0 6px 16px rgba(0, 0, 0, 0.45);
}

.close-popup {
  position: absolute;
  top: 14px;
  right: 16px;
  padding: 0 14px;
  background: linear-gradient(135deg, #d14b42, #ab2e2e);
  color: white;
  font-size: 22px;
  font-weight: 800;
  width: 38px;
  height: 38px;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
}

.close-popup.profile-close {
  width: auto;
  min-width: 98px;
  height: 30px;
  padding: 0 14px;
  font-size: 11px;
  text-transform: uppercase;
  font-family: "Press Start 2P", "Lato", sans-serif;
}

.close-popup:hover {
  filter: brightness(1.06);
  transform: translateY(-1px);
}

.close-popup:active {
  transform: translateY(2px);
  box-shadow: 0 2px 0 #7b1f1f;
}

/* Fighter card grid */
.characters-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  padding: 10px;
  gap: 20px;
  height: calc(100% - 80px);
  overflow-y: auto;
  align-content: start;
}

/* Fighter cards: equal size with larger scale */
.character-card {
  background: linear-gradient(
    180deg,
    rgba(8, 17, 34, 0.94),
    rgba(4, 12, 28, 0.98)
  );
  border: 0;
  box-shadow:
    0px 5px black,
    0px -5px black,
    5px 0px black,
    -5px 0px black,
    0px 10px #00000038,
    5px 5px #00000038,
    -5px 5px #00000038,
    inset 0px 5px #ffffff1f;
  padding: 14px;
  box-sizing: border-box;
  cursor: pointer;
  transition: all 0.25s ease;
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 14px;
  border-radius: 10px;
  align-items: start;
  position: relative;
  min-height: 186px;
  appearance: none;
  text-align: left;
  width: 100%;
  overflow: visible;
}

.character-card:hover {
  transform: translateY(-1px);
  box-shadow:
    0px 5px black,
    0px -5px black,
    5px 0px black,
    -5px 0px black,
    0px 10px #00000038,
    5px 5px #00000038,
    -5px 5px #00000038,
    0 0 0 2px rgba(126, 194, 255, 0.22) inset;
}

.character-card:active {
  transform: translateY(3px);
  box-shadow:
    0px 5px black,
    0px -5px black,
    5px 0px black,
    -5px 0px black,
    inset 0px 5px #00000038;
}

.character-card.selected {
  background: linear-gradient(
    180deg,
    rgba(24, 44, 78, 0.98),
    rgba(13, 30, 60, 0.98)
  );
  box-shadow:
    0px 5px black,
    0px -5px black,
    5px 0px black,
    -5px 0px black,
    0px 10px #00000038,
    5px 5px #00000038,
    -5px 5px #00000038,
    inset 0 0 18px rgba(186, 219, 255, 0.34),
    inset 0 5px rgba(255, 255, 255, 0.2);
}

.character-card.selected::after {
  content: "";
  position: absolute;
  inset: 2px;
  border-radius: inherit;
  border: 1px solid rgba(255, 255, 255, 0.9);
  pointer-events: none;
  background: radial-gradient(
    circle at 52% 44%,
    rgba(255, 255, 255, 0.14) 0%,
    rgba(186, 219, 255, 0.12) 28%,
    rgba(255, 255, 255, 0) 68%
  );
  mix-blend-mode: screen;
  opacity: 0.8;
}

.character-card.is-maxed {
  box-shadow:
    0px 5px black,
    0px -5px black,
    5px 0px black,
    -5px 0px black,
    0px 10px #00000038,
    5px 5px #00000038,
    -5px 5px #00000038;
}

.character-card.is-maxed::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(
    125deg,
    rgba(255, 255, 255, 0) 20%,
    rgba(250, 204, 21, 0.12) 45%,
    rgba(255, 255, 255, 0.18) 52%,
    rgba(250, 204, 21, 0.12) 60%,
    rgba(255, 255, 255, 0) 80%
  );
  background-size: 240% 240%;
  animation: maxedCardGlimmer 2.8s ease-in-out infinite;
  mix-blend-mode: screen;
  opacity: 0.46;
}

@keyframes maxedCardGlimmer {
  0% {
    background-position: 0% 8%;
    opacity: 0.4;
  }
  50% {
    background-position: 50% 50%;
    opacity: 0.6;
  }
  100% {
    background-position: 100% 92%;
    opacity: 0.4;
  }
}

.character-card.locked {
  filter: brightness(0.85);
}

.character-card.is-upgrade-ready {
  box-shadow:
    0px 5px black,
    0px -5px black,
    5px 0px black,
    -5px 0px black,
    0px 10px #00000038,
    5px 5px #00000038,
    -5px 5px #00000038,
    inset 0px 5px #ffffff1f;
}

/* Image wrapper - profile icon */
.character-card-image-wrap {
  position: relative;
  width: 120px;
  height: 120px;
  flex: 0 0 120px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 4px;
}

.character-profile-icon {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 10px;
  border: 0;
  outline: none;
  box-shadow: none;
  clip-path: inset(1px round 10px);
}

.character-card-level-icon {
  position: absolute;
  top: 4px;
  left: 4px;
  width: 45px;
  height: 45px;
  z-index: 40;
  object-fit: contain;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.55))
    drop-shadow(0 0 6px rgba(255, 245, 200, 0.52));
  animation: levelIconGlowPulse 2.25s cubic-bezier(0.42, 0, 0.58, 1) infinite
    alternate;
}

.character-details-preview-level-badge {
  animation: levelIconGlowPulse 2.25s cubic-bezier(0.42, 0, 0.58, 1) infinite
    alternate;
  filter: drop-shadow(0 3px 6px rgba(0, 0, 0, 0.55))
    drop-shadow(0 0 7px rgba(255, 245, 200, 0.5));
}

@keyframes levelIconGlowPulse {
  0% {
    transform: scale(1);
    opacity: 0.92;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.55))
      drop-shadow(0 0 4px rgba(255, 245, 200, 0.38));
  }
  100% {
    transform: scale(1.06);
    opacity: 1;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.58))
      drop-shadow(0 0 8px rgba(255, 245, 200, 0.56));
  }
}

.character-card-lock-overlay {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background: rgba(8, 10, 16, 0.5);
  z-index: 2;
}

.character-card-lock-overlay img {
  width: 24px;
  height: 24px;
  object-fit: contain;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.6));
}

/* Card info section */
.character-card-info {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 10px;
  min-width: 0;
  overflow: hidden;
}

.character-card-name-section {
  margin-bottom: 0;
}

.character-card-name {
  margin: 0;
  font-size: 16px;
  font-weight: 900;
  font-family: "Press Start 2P", "Lato", sans-serif;
  text-transform: uppercase;
  color: #f7fafc;
  line-height: 1.2;
  letter-spacing: 0.5px;
}

/* HP/ATK stat blocks */
.character-card-stats-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 0;
}

.character-card-stat {
  background: rgba(0, 0, 0, 0.2);
  padding: 3px 6px;
  color: #e5e7eb;
  border: 1px solid rgba(58, 71, 88, 0.7);
  border-radius: 7px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
}

.stat-label {
  font-weight: 700;
  color: #9ca3af;
  font-size: 10px;
  letter-spacing: 0.5px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
}

.stat-value {
  font-weight: 800;
  font-family: "Press Start 2P", "Lato", sans-serif;
  font-size: 8px;
}

/* Status section */
.character-card-status {
  min-height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.character-card-status-text {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  justify-content: center;
  width: 100%;
  padding: 5px 8px;
  background: rgba(54, 60, 106, 0.5);
  color: #cbd5e1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 700;
  font-size: 11px;
  border-radius: 8px;
}

.character-card-status-price {
  min-width: 34px;
  text-align: center;
  font-size: 13px;
  font-family: "Press Start 2P", "Lato", sans-serif;
}

.character-card-status-text img {
  width: 14px;
  height: 14px;
  object-fit: contain;
}

.character-card.is-upgrade-ready {
  background: linear-gradient(
    180deg,
    rgba(8, 17, 34, 0.94),
    rgba(4, 12, 28, 0.98)
  );
  box-shadow:
    0px 5px black,
    0px -5px black,
    5px 0px black,
    -5px 0px black,
    0px 10px #00000038,
    5px 5px #00000038,
    -5px 5px #00000038,
    inset 0px 5px #ffffff1f;
}

.character-card.selected.is-upgrade-ready,
.character-card.selected.is-maxed,
.character-card.selected.is-upgrade-ready.is-maxed {
  background: linear-gradient(
    180deg,
    rgba(24, 44, 78, 0.98),
    rgba(13, 30, 60, 0.98)
  );
  box-shadow:
    0px 5px black,
    0px -5px black,
    5px 0px black,
    -5px 0px black,
    0px 10px #00000038,
    5px 5px #00000038,
    -5px 5px #00000038,
    inset 0 0 18px rgba(186, 219, 255, 0.34),
    inset 0 5px rgba(255, 255, 255, 0.2);
}

.character-card-status-text.maxed {
  color: #10b981;
  background: rgba(16, 185, 129, 0.15);
  font-family: "Press Start 2P", "Lato", sans-serif;
  font-weight: 800;
}

.character-card-status-text.upgradable {
  color: #fcd34d;
  background: rgba(252, 212, 77, 0.2);
}

.character-card-status-text.insufficient {
  color: #fca5a5;
  background: rgba(248, 113, 113, 0.18);
}

.character-details-overlay {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(4, 8, 18, 0.6);
  backdrop-filter: blur(6px);
  z-index: 1110;
}

.character-details-popup {
  width: min(920px, 90vw);
  max-height: min(90vh, 900px);
  background: linear-gradient(
    145deg,
    rgba(12, 18, 34, 0.98),
    rgba(21, 28, 49, 0.98)
  );
  border: 3px solid rgba(50, 50, 50, 0.8);
  border-radius: 16px;
  box-shadow:
    0px 5px black,
    0px -5px black,
    5px 0px black,
    -5px 0px black,
    0px 10px #00000038,
    5px 5px #00000038,
    -5px 5px #00000038,
    inset 0px 5px #ffffff24;
  color: #e5eefb;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  animation: characterDetailsPop 180ms ease-out;
}

@keyframes characterDetailsPop {
  from {
    transform: scale(0.92);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}

.character-details-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px;
  border-bottom: 2px solid rgba(50, 50, 50, 0.6);
  background: linear-gradient(
    90deg,
    rgba(8, 15, 31, 0.95),
    rgba(10, 17, 34, 0.9)
  );
  position: relative;
}

.character-details-title-wrap {
  min-width: 0;
}

.character-details-title {
  margin: 0;
  font-family: "Press Start 2P", "Lato", sans-serif;
  text-transform: uppercase;
  font-size: clamp(15px, 1.7vw, 21px);
  color: #f8fbff;
  line-height: 1.3;
  letter-spacing: 1px;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}

.character-details-header-description {
  margin: 8px 0 0;
  font-size: 12px;
  color: #bfdbfe;
  line-height: 1.35;
  max-width: 72ch;
}

.character-details-close {
  width: 36px;
  height: 36px;
  background: linear-gradient(180deg, #10b981, #059669);
  border: 2px solid #34d399;
  color: white;
  font-size: 20px;
  line-height: 1;
  display: grid;
  place-items: center;
  cursor: pointer;
  box-shadow:
    0 2px 0 #065f46,
    0 4px 8px rgba(0, 0, 0, 0.3);
  transition: all 0.2s;
}

.character-details-close:hover {
  filter: brightness(1.05);
  transform: translateY(-1px);
}

.character-details-close:active {
  transform: translateY(1px);
  box-shadow:
    0 1px 0 #065f46,
    0 2px 4px rgba(0, 0, 0, 0.3);
}

/* Main content area */
.character-details-content {
  display: grid;
  grid-template-columns: minmax(250px, 0.95fr) minmax(0, 1.05fr);
  gap: 22px;
  padding: 16px;
  overflow: auto;
  flex: 1;
  min-height: 0;
}

/* Preview - smaller, no rounded corners */
.character-details-preview {
  position: relative;
  width: 100%;
  min-height: 0;
}

.character-details-preview-frame {
  position: relative;
  width: 100%;
  height: 300px;
  border-radius: 10px;

  background:
    radial-gradient(circle at top, rgba(74, 158, 255, 0.15), transparent 40%),
    linear-gradient(180deg, rgba(10, 17, 34, 0.95), rgba(6, 10, 20, 0.98));
  border: 3px solid rgba(100, 100, 100, 0.6);
  box-shadow:
    0px 5px black,
    0px -5px black,
    5px 0px black,
    -5px 0px black,
    0px 10px #00000038,
    5px 5px #00000038,
    -5px 5px #00000038,
    inset 0px 5px #ffffff1f;
  display: grid;
  place-items: center;
  overflow: hidden;
}

.character-details-preview-frame.is-locked {
  filter: grayscale(0.5) brightness(0.8);
}

.character-details-preview-glow {
  position: absolute;
  inset: -30%;
  background: radial-gradient(circle, rgba(96, 165, 250, 0.2), transparent 50%);
  filter: blur(15px);
  animation: characterGlowPulse 4s ease-in-out infinite;
  pointer-events: none;
}

@keyframes characterGlowPulse {
  0%,
  100% {
    opacity: 0.6;
  }
  50% {
    opacity: 1;
  }
}

.character-details-preview-image {
  position: relative;
  z-index: 1;
  width: min(100%, 280px);
  max-height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.55));
}

.character-details-preview-level-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  width: 70px;
  height: 70px;
  object-fit: contain;
  z-index: 4;
  filter: drop-shadow(0 3px 6px rgba(0, 0, 0, 0.55))
    drop-shadow(0 0 7px rgba(255, 245, 200, 0.5));
  animation: levelIconGlowPulse 2.25s cubic-bezier(0.42, 0, 0.58, 1) infinite
    alternate;
}

.character-details-lock-overlay {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  z-index: 3;
  background: rgba(5, 10, 20, 0.2);
}

.character-details-lock-overlay img {
  width: 64px;
  height: 64px;
  object-fit: contain;
  filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.5));
}

.character-details-info {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.character-details-sticky-footer {
  position: sticky;
  bottom: 0;
  z-index: 5;
  border-top: 2px solid rgba(100, 100, 100, 0.45);
  background: linear-gradient(
    180deg,
    rgba(10, 17, 34, 0.92),
    rgba(8, 13, 26, 0.95)
  );
  padding: 10px 14px;
}

.character-details-footer-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: nowrap;
}

.character-details-inline-skin {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex: 1 1 auto;
}

.character-details-inline-actions {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  flex: 0 0 auto;
}

/* Stats container - 3 boxes */
.character-details-stats-container {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.character-details-stat-box {
  background: rgba(20, 30, 50, 0.8);
  border: 2px solid rgba(100, 100, 100, 0.5);
  box-shadow:
    0px 5px black,
    0px -5px black,
    5px 0px black,
    -5px 0px black,
    0px 10px #00000038,
    5px 5px #00000038,
    -5px 5px #00000038,
    inset 0px 5px #ffffff1f;
  padding: 12px;
  border-radius: 10px;
}

.stat-box-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  font-weight: 800;
  text-transform: uppercase;
  color: #f7fafc;
}

.stat-box-icon {
  width: 24px;
  height: 24px;
  object-fit: contain;
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.3));
}

.stat-box-label {
  font-size: 13px;
  letter-spacing: 0.5px;
}

.stat-box-value {
  font-size: 17px;
  font-weight: 900;
  color: #fef3c7;
  margin-left: auto;
  font-family: "Press Start 2P", "Lato", sans-serif;
}

.stat-box-content {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 11px;
}

.stat-box-content .stat-box-value {
  font-size: 18px;
  color: #fef3c7;
  margin-left: 0;
}

.stat-box-track {
  width: 100%;
  height: 10px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.38);
  border: 1px solid rgba(255, 255, 255, 0.1);
  overflow: hidden;
}

.stat-box-fill {
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #fbbf24, #f59e0b);
}

.attack-box .stat-box-fill {
  background: linear-gradient(90deg, #60a5fa, #2563eb);
}

.special-box .stat-box-fill {
  background: linear-gradient(90deg, #a78bfa, #7c3aed);
}

.stat-box-desc {
  color: #cbd5e1;
  font-size: 12px;
  line-height: 1.3;
  margin-top: 8px;
}

.stat-box-detail {
  color: #9ca3af;
  font-size: 11px;
  line-height: 1.2;
}

.health-box .stat-box-value {
  color: #fca5a5;
}

.attack-box .stat-box-value {
  color: #fbbf24;
}

.special-box .stat-box-value {
  color: #c4b5fd;
}

/* Attack and Special side by side */
.character-details-stat-boxes-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

/* Description */
.character-details-description {
  padding: 10px 12px;
  background: rgba(10, 17, 34, 0.5);
  border: 2px solid rgba(100, 100, 100, 0.4);
  box-shadow: 0 2px 0 #0a0a0a;
  font-size: 11px;
  line-height: 1.4;
  color: #cbd5e1;
}

.character-details-description p {
  margin: 0;
  color: #e2e8f0;
}

/* Footer section */
.character-details-footer-section {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px;
  background: rgba(20, 30, 50, 0.6);
  border: 2px solid rgba(100, 100, 100, 0.4);
  box-shadow: 0 2px 0 #0a0a0a;
}

.skin-selector-section {
  justify-content: center;
}

.character-details-skin-stepper {
  width: 50px;
  height: 50px;
  background: linear-gradient(180deg, #10b981, #059669);
  box-shadow:
    0 2px 0 #065f46,
    0 4px 8px rgba(0, 0, 0, 0.3);
  color: #f7fafc;
  font-weight: 800;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.2s;
}

.character-details-skin-stepper:hover:not(:disabled) {
  background: linear-gradient(180deg, #1ecb8f, #17a678);
  transform: translateY(-1px);
}

.character-details-skin-stepper:active:not(:disabled) {
  transform: translateY(1px);
}

.character-details-skin-stepper:disabled {
  opacity: 0.4;
  cursor: default;
}

.character-details-skin-name-box {
  flex: 0 1 180px;
  height: 50px;
  text-align: center;
  padding: 8px 10px;
  box-sizing: border-box;
  background: linear-gradient(180deg, #10b981, #059669);
  box-shadow:
    0 2px 0 #065f46,
    0 4px 8px rgba(0, 0, 0, 0.3);
  color: #f7fafc;
  font-weight: 800;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.upgrade-icon {
  width: 20px;
  height: 20px;
  object-fit: contain;
}

/* Footer buttons */
.character-details-footer-buttons {
  display: none;
}

.character-details-action {
  flex: 0 0 auto;
  height: 34px;
  padding: 7px 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-family: "Press Start 2P", "Lato", sans-serif;
  font-size: 8px;
  font-weight: 800;
  text-transform: uppercase;
  cursor: pointer;
  transition: all 0.2s;
  border: 2px solid;
  box-shadow: 0 2px 0 #0a0a0a;
  text-align: center;
  letter-spacing: 0.5px;
}

.character-details-action:hover:not(:disabled) {
  transform: translateY(-1px);
}

.character-details-action:active:not(:disabled) {
  transform: translateY(1px);
  box-shadow: 0 1px 0 #0a0a0a;
}

.upgrade-button {
  background: linear-gradient(180deg, #d4a017, #9d7a1a);
  border-color: #f5c542;
  height: 50px;
  color: #f7fafc;
  box-shadow:
    0 2px 0 #7b6312,
    0 4px 8px rgba(0, 0, 0, 0.3);
}

.upgrade-button:not(:disabled):hover {
  background: linear-gradient(180deg, #e4b73b, #ad8a28);
  box-shadow:
    0 2px 0 #7b6312,
    0 6px 12px rgba(244, 197, 66, 0.3);
}

.upgrade-button.disabled {
  background: linear-gradient(180deg, #5a5a5a, #4a4a4a);
  border-color: #7a7a7a;
  color: #9ca3af;
  opacity: 0.6;
  cursor: not-allowed;
}

.buy-button {
  background: linear-gradient(180deg, #3b82f6, #2563eb);
  border-color: #60a5fa;
  height: 50px;
  color: #f7fafc;
  box-shadow:
    0 2px 0 #1e40af,
    0 4px 8px rgba(0, 0, 0, 0.3);
}

.buy-button:hover {
  background: linear-gradient(180deg, #4b94fc, #3574f0);
  box-shadow:
    0 2px 0 #1e40af,
    0 6px 12px rgba(59, 130, 246, 0.3);
}

.select-button {
  background: linear-gradient(180deg, #10b981, #059669);
  height: 50px;
  border-color: #34d399;
  color: #f7fafc;
  box-shadow:
    0 2px 0 #065f46,
    0 4px 8px rgba(0, 0, 0, 0.3);
}

.select-button:hover {
  background: linear-gradient(180deg, #1ecb8f, #17a678);
  box-shadow:
    0 2px 0 #065f46,
    0 6px 12px rgba(16, 185, 129, 0.3);
}

.character-details-maxed-label {
  flex: 0 0 auto;
  height: 34px;
  padding: 7px 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, #10b981, #059669);
  border: 2px solid #34d399;
  box-shadow:
    0 2px 0 #065f46,
    0 4px 8px rgba(0, 0, 0, 0.3);
  color: #f7fafc;
  font-family: "Press Start 2P", "Lato", sans-serif;
  font-size: 8px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.button-price {
  margin-left: 2px;
  padding: 2px 6px;
  border-radius: 2px;
  font-weight: 800;
  color: #fef3c7;
  font-size: 14px;
  display: inline-flex;
  align-items: center;
  gap: 3px;
}

.character-details-action.buy-button .upgrade-icon,
.character-details-action.buy-button .cs-currency {
  width: 18px;
  height: 18px;
  object-fit: contain;
}

.cs-currency {
  width: 12px;
  height: 12px;
  object-fit: contain;
  display: inline-block;
}

/* Success animation - heavy with effects */
.character-details-success {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 100;
  pointer-events: none;
}

.character-details-success-beams {
  position: absolute;
  inset: -20%;
  border-radius: 50%;
  background: repeating-conic-gradient(
    from 0deg,
    rgba(255, 255, 255, 0) 0deg 20deg,
    rgba(255, 255, 255, 0.3) 20deg 28deg
  );
  animation: successBeamsSpin 1.2s linear;
  filter: blur(4px) saturate(1.5) brightness(1.2);
}

.character-details-success-beams.coin {
  filter: hue-rotate(35deg) saturate(2) brightness(1.3) blur(4px);
}

.character-details-success-beams.gem {
  filter: hue-rotate(250deg) saturate(2) brightness(1.25) blur(4px);
}

@keyframes successBeamsSpin {
  from {
    transform: rotate(0deg) scale(0.8);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  to {
    transform: rotate(360deg) scale(1.3);
    opacity: 0;
  }
}

.character-details-success-label {
  position: relative;
  z-index: 1;
  font-family: "Press Start 2P", "Lato", sans-serif;
  font-size: 24px;
  font-weight: 900;
  text-transform: uppercase;
  color: #fef3c7;
  text-shadow:
    0 2px 0 #7b6312,
    0 4px 8px rgba(0, 0, 0, 0.6),
    0 0 20px rgba(254, 243, 199, 0.4);
  letter-spacing: 1px;
  animation: successLabelPop 1.2s ease-out;
}

@keyframes successLabelPop {
  0% {
    transform: scale(0) translateY(20px);
    opacity: 0;
  }
  40% {
    transform: scale(1.1) translateY(-5px);
    opacity: 1;
  }
  70% {
    transform: scale(1) translateY(0);
  }
  100% {
    transform: scale(1) translateY(0);
    opacity: 0;
  }
}

/* Responsive adjustments */
@media (max-width: 980px) {
  .character-details-content {
    grid-template-columns: 1fr;
    max-height: 70vh;
  }

  .character-details-footer-line {
    flex-wrap: wrap;
  }

  .character-details-inline-actions {
    width: 100%;
    justify-content: flex-end;
  }

  .character-details-stat-boxes-row {
    grid-template-columns: 1fr;
  }

  .character-details-preview-frame {
    height: 240px;
  }
}

@media (max-width: 640px) {
  .character-card {
    grid-template-columns: 60px 1fr;
    gap: 8px;
    padding: 8px;
  }

  .character-card-image-wrap {
    width: 60px;
    height: 60px;
  }

  .character-card-name {
    font-size: 9px;
  }

  .character-card-stats-row {
    font-size: 8px;
  }

  .character-details-popup {
    max-width: 95vw;
  }

  .character-details-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  .character-details-close {
    align-self: flex-end;
  }

  .character-details-title {
    font-size: 16px;
  }

  .character-details-header-description {
    font-size: 11px;
  }

  .character-details-inline-skin {
    width: 100%;
    justify-content: center;
  }

  .character-details-inline-actions {
    width: 100%;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 10px;
  }

  .character-details-footer-line {
    flex-direction: column;
    align-items: stretch;
  }

  .character-details-action,
  .character-details-maxed-label {
    flex: 1 1 46%;
    min-width: 140px;
    height: 44px;
  }

  .character-details-skin-stepper,
  .character-details-skin-name-box {
    height: 44px;
  }

  .character-details-preview-frame {
    height: 200px;
  }
}

/* Particles canvas */
.particles-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
}

/* Confirmation modal styles (existing) */
.cs-vars,
:root {
  --cs-level-size: 80px;
  --cs-level-wrap: calc(var(--cs-level-size) + 8px);
}

.cs-confirm-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1100;
}

.cs-confirm {
  width: 90%;
  max-width: 420px;
  background: #1f2937;
  box-shadow:
    0px 5px black,
    0px -5px black,
    5px 0px black,
    -5px 0px black,
    0px 10px #00000038,
    5px 5px #00000038,
    -5px 5px #00000038,
    inset 0px 5px #ffffff36;
  color: #f3f4f6;
  padding: 16px 18px;
  border: 2px solid rgba(80, 80, 80, 0.5);
}

.cs-confirm-title {
  font-weight: 800;
  font-size: 16px;
  margin-bottom: 8px;
  font-family: "Press Start 2P", "Lato", sans-serif;
  text-transform: uppercase;
}

.cs-confirm-body p {
  margin: 6px 0;
  font-size: 12px;
  color: #e5e7eb;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.cs-price-row {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  vertical-align: middle;
}

.cs-confirm-actions {
  margin-top: 14px;
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}

.cs-btn {
  padding: 10px 14px;
  font-weight: 700;
  border: 2px solid;
  cursor: pointer;
  font-family: "Press Start 2P", "Lato", sans-serif;
  font-size: 9px;
  text-transform: uppercase;
}

.cs-btn.cancel {
  background: #374151;
  color: #e5e7eb;
  border-color: #555;
}

.cs-btn.cancel:hover {
  background: #4a5568;
}

.cs-btn.confirm {
  background: linear-gradient(180deg, #4a9eff, #3182ce);
  color: #fff;
  border-color: #60a5fa;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.cs-btn.confirm:hover {
  background: linear-gradient(180deg, #5ba4ff, #4090dd);
}

/* Level upgrade beams (from confirm dialogs) */
.cs-level-line {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 20px 0;
}

.cs-level-img,
.cs-next-badge {
  width: var(--cs-level-size);
  height: var(--cs-level-size);
  object-fit: contain;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.4));
  display: block;
}

.cs-arrow {
  width: 40px;
  height: 40px;
  opacity: 0.85;
}

.cs-next-wrap {
  position: relative;
  width: var(--cs-level-wrap);
  height: var(--cs-level-wrap);
  display: grid;
  place-items: center;
}

.cs-beams {
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  background: repeating-conic-gradient(
    from 0deg,
    rgba(255, 255, 255, 0) 0deg 28deg,
    rgba(255, 255, 255, 0.22) 28deg 36deg
  );
  animation: csSpin 10s linear infinite;
  filter: blur(3px) saturate(1.2);
  -webkit-mask-image: radial-gradient(
    circle,
    rgba(0, 0, 0, 0) 0 24%,
    rgba(0, 0, 0, 0.5) 62%,
    rgba(0, 0, 0, 1) 100%
  );
  mask-image: radial-gradient(
    circle,
    rgba(0, 0, 0, 0) 0 24%,
    rgba(0, 0, 0, 0.5) 62%,
    rgba(0, 0, 0, 1) 100%
  );
}

.cs-beams.coin {
  filter: hue-rotate(40deg) saturate(1.8) brightness(1.15);
}

.cs-beams.gem {
  filter: hue-rotate(210deg) saturate(1.8) brightness(1.1);
}

@keyframes csSpin {
  to {
    transform: rotate(360deg);
  }
}

.cs-hero {
  position: relative;
  width: 100%;
  display: grid;
  place-items: center;
  margin-bottom: 8px;
}

.cs-hero-img {
  width: 96px;
  height: 96px;
  object-fit: contain;
  filter: drop-shadow(0 3px 6px rgba(0, 0, 0, 0.5));
}

.cs-hero-beams {
  position: absolute;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: repeating-conic-gradient(
    from 0deg,
    rgba(255, 255, 255, 0) 0deg 28deg,
    rgba(255, 255, 255, 0.22) 28deg 36deg
  );
  animation: csSpin 14s linear infinite;
  filter: blur(1px) saturate(1.2);
  -webkit-mask-image: radial-gradient(
    circle,
    rgba(0, 0, 0, 0) 0 20%,
    rgba(0, 0, 0, 0.5) 58%,
    rgba(0, 0, 0, 1) 100%
  );
  mask-image: radial-gradient(
    circle,
    rgba(0, 0, 0, 0) 0 20%,
    rgba(0, 0, 0, 0.5) 58%,
    rgba(0, 0, 0, 1) 100%
  );
}

.cs-hero-beams.gem {
  filter: hue-rotate(210deg) saturate(1.8) brightness(1.1);
}

.cs-hero-beams.coin {
  filter: hue-rotate(40deg) saturate(1.8) brightness(1.15);
}

/* Success overlay displayed after card unlock/upgrade */
.cs-card-success {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  animation: cs-pop-in 250ms ease-out;
}

.cs-card-success.fade-out {
  animation: cs-fade-out 300ms ease-in forwards;
}

.cs-card-beams {
  position: absolute;
  width: 160px;
  height: 160px;
  border-radius: 50%;
  background: repeating-conic-gradient(
    rgba(255, 230, 150, 0) 0deg,
    rgba(255, 230, 150, 0) 8deg,
    rgba(255, 230, 150, 0.65) 12deg,
    rgba(255, 230, 150, 0.65) 20deg
  );
  mask: radial-gradient(
    circle at 50% 50%,
    rgba(0, 0, 0, 0) 0%,
    rgba(0, 0, 0, 0.8) 55%,
    rgba(0, 0, 0, 1) 100%
  );
  -webkit-mask: radial-gradient(
    circle at 50% 50%,
    rgba(0, 0, 0, 0) 0%,
    rgba(0, 0, 0, 0.8) 55%,
    rgba(0, 0, 0, 1) 100%
  );
  animation: cs-spin 6s linear infinite;
  filter: drop-shadow(0 0 10px rgba(255, 222, 96, 0.4));
}

.cs-card-beams.gem {
  filter: hue-rotate(210deg) saturate(1.2)
    drop-shadow(0 0 10px rgba(80, 180, 255, 0.5));
}

.cs-card-success-label {
  position: relative;
  z-index: 1;
  background: rgba(0, 0, 0, 0.65);
  color: #fff;
  font-weight: 700;
  padding: 6px 12px;
  border-radius: 999px;
  letter-spacing: 0.4px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}

@keyframes cs-pop-in {
  from {
    transform: scale(0.95);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes cs-fade-out {
  to {
    opacity: 0;
    transform: scale(1.02);
  }
}

@keyframes cs-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

@font-face {
  font-family: "Press Start 2P";
  src: url("/assets/PressStart2P.woff2") format("woff2");
  font-display: swap;
}

html {
  width: var(--bb-viewport-width, 100vw);
  height: var(--bb-viewport-height, 100dvh);
}

body {
  margin: 0;
  /* Use root-relative path served by Express/DevServer static from dist */
  background-image: url("/assets/lushy/lobbyBg.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  font-family: "Lato", sans-serif;
  width: var(--bb-viewport-width, 100vw);
  height: var(--bb-viewport-height, 100dvh);
  overflow: hidden;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
  overscroll-behavior: none;
}

input,
textarea,
select {
  user-select: text;
  -webkit-user-select: text;
}

button,
.pixel-menu-button,
.party-button,
.mode-picker,
.map-picker,
.account,
.dropdown,
#ready {
  touch-action: manipulation;
}

body.mobile-game-ui #game-timer-hud,
body.mobile-game-ui #team-status-hud,
body.mobile-game-ui #battle-keybind-hud {
  transform: scale(0.82);
  transform-origin: top center;
}

body.mobile-game-ui #game-timer-hud {
  top: 18px;
}

body.mobile-game-ui #team-status-hud {
  top: 18px;
}

body.mobile-game-ui #battle-keybind-hud {
  bottom: 8px;
  right: 8px;
  opacity: 0.78;
}

body.mobile-game-ui #game-timer-display,
body.mobile-game-ui .team-hud-player,
body.mobile-game-ui .team-hud-player-name {
  font-size: 0.88em;
}

body.mobile-game-ui #battle-start-overlay {
  zoom: 0.9;
}

#lobby-bg-fade {
  position: fixed;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  z-index: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: opacity 220ms ease;
}

#lobby-bg-fade.active {
  opacity: 1;
}

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

.flex {
  display: flex;
  align-items: center;
}
h2 {
  margin-left: 10px;
}
h3 {
  margin: 0;
  font-weight: 200;
}

/* Fortnite-style navbar with gradient and glow */
#navbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  top: 0;
  height: 60px;
  padding: 5px 20px;
  box-sizing: border-box;
  background: linear-gradient(
    135deg,
    rgba(17, 17, 48, 0.9),
    rgba(8, 8, 16, 0.9)
  );
  color: white;
  border-bottom: 2px solid #363c0f;
  box-shadow: 0 4px 20px rgba(0, 212, 255, 0.3);
  z-index: 1000;
  position: relative;
}

.fullscreen-toggle {
  min-width: 48px;
  padding: 0 10px;
  margin-left: -2px;
  letter-spacing: 1px;
}

.fullscreen-toggle.is-active {
  background:
    linear-gradient(135deg, rgba(67, 126, 255, 0.94), rgba(36, 92, 194, 0.86)),
    rgba(14, 30, 70, 0.38);
}

.button {
  padding: 5px 10px;
  border: none;
  border-radius: 5px;
  cursor: pointer;
}

.pixel-menu-button {
  font-size: 12px;
  text-transform: uppercase;
  font-family: "Press Start 2P", system-ui;
  border: 0;
  box-shadow:
    0px 5px black,
    0px -5px black,
    5px 0px black,
    -5px 0px black,
    0px 10px #00000038,
    5px 5px #00000038,
    -5px 5px #00000038,
    inset 0px 5px #ffffff36;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.pixel-menu-button:active {
  transform: translateY(5px);
  box-shadow:
    0px 5px black,
    0px -5px black,
    5px 0px black,
    -5px 0px black,
    inset 0px 5px #00000038;
}

.resources {
  margin-right: 0;
  gap: 5px;
}

#navbar-right {
  display: flex;
  align-items: center;
  gap: 15px;
}

.trophy-resource {
  height: 30px;
  padding: 0 10px;
  margin-left: 10px;
  margin-right: 0;
  color: #fff4c8;
  background:
    linear-gradient(135deg, rgba(176, 131, 34, 0.92), rgba(137, 95, 18, 0.84)),
    rgba(35, 22, 8, 0.42);
  box-shadow:
    0px 5px rgb(85, 58, 8),
    0px -5px rgb(85, 58, 8),
    5px 0px rgb(85, 58, 8),
    -5px 0px rgb(85, 58, 8),
    0px 10px #00000038,
    5px 5px #00000038,
    -5px 5px #00000038,
    inset 0px 5px #ffffff36;
}

.trophy-resource:hover {
  background:
    linear-gradient(135deg, rgba(208, 153, 38, 0.96), rgba(154, 103, 18, 0.88)),
    rgba(40, 25, 8, 0.44);
}

.trophy-resource p {
  margin: 0;
}

.trophy-resource {
  position: relative;
}

.trophy-claim-badge {
  position: absolute;
  right: -7px;
  top: -8px;
  min-width: 19px;
  height: 19px;
  padding: 0 4px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  font-family: "Press Start 2P", system-ui;
  color: #fff;
  background: linear-gradient(135deg, #f25555, #c72f2f);
  box-shadow: 0 0 0 2px rgba(9, 15, 30, 0.96);
}

.trophy-resource.has-claimable {
  animation: trophyPulseGlow 1.2s ease-in-out infinite;
}

@keyframes trophyPulseGlow {
  0%,
  100% {
    filter: drop-shadow(0 0 0 rgba(255, 213, 122, 0));
  }
  50% {
    filter: drop-shadow(0 0 10px rgba(255, 213, 122, 0.74));
  }
}

#gem-count,
#coin-count {
  font-family: "Press Start 2P", "Lato", sans-serif;
  font-size: 12px;
}

#party {
  height: 45px;
  background: linear-gradient(135deg, #00d4ff, #0099cc);
  border-radius: 8px;
  padding: 0px 15px;
  box-sizing: border-box;
  color: white;
  margin-left: 15px;
  cursor: pointer;
  transition: all 0.3s ease;
  border: 2px solid rgba(255, 255, 255, 0.3);
  box-shadow: 0 4px 15px rgba(0, 212, 255, 0.4);
  font-weight: 600;
}
#party:hover {
  background: linear-gradient(135deg, #0099cc, #007399);
  box-shadow: 0 6px 20px rgba(0, 212, 255, 0.6);
  transform: translateY(-2px);
}

/* Lobby area with platforms */
#lobby-area {
  position: relative;
  width: 100%;
  height: calc(var(--bb-viewport-height, 100dvh) - 140px);
  margin-top: 20px;
  --lobby-character-seam-overlap: clamp(6px, 1.2vh, 14px);
}

/* Platform styling - responsive and mode-based sizing */
.platform {
  position: absolute;
  --platform-width: clamp(220px, 30vw, 420px);
  --platform-base-y: 0px;
  --platform-float-distance: 10px;
  /* Remove background image from container to avoid overlap with character slot */
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0; /* ensure no space between children */
  width: var(--platform-width);
  padding-top: 10px;
  transition: all 0.3s ease;
  isolation: isolate;
  will-change: transform;
  animation: lobbyPlatformHoverFloat 7s ease-in-out infinite;
}

.platform[data-team="your-team"][data-slot="1"] {
  animation-delay: -0.15s;
}

.platform[data-team="your-team"][data-slot="2"] {
  animation-delay: -0.7s;
}

.platform[data-team="your-team"][data-slot="3"] {
  animation-delay: -5.2s;
}

.platform[data-team="op-team"][data-slot="1"] {
  animation-delay: -0.4s;
}

.platform[data-team="op-team"][data-slot="2"] {
  animation-delay: -3s;
}

.platform[data-team="op-team"][data-slot="3"] {
  animation-delay: -4.45s;
}

/* Visual platform image placed as a separate element to stack vertically */
.platform-image {
  position: relative;
  z-index: 1;
  width: 100%;
  aspect-ratio: 638 / 300;
  height: auto;
  background-image: url("/assets/lushy/lobbyPlatform.webp");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center bottom;
  pointer-events: none;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.35));
  transition:
    transform 200ms ease,
    filter 200ms ease;
}

#lobby-area.map-switching .platform {
  animation: platformMapShift 240ms ease;
}

.platform-image.map-switch {
  animation: platformImagePop 240ms ease;
}

@keyframes platformMapShift {
  0% {
    transform: translateY(6px);
    opacity: 0.82;
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes platformImagePop {
  0% {
    transform: scale(0.96);
    filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.25));
  }
  100% {
    transform: scale(1);
    filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.35));
  }
}

@keyframes lobbyPlatformHoverFloat {
  0%,
  100% {
    transform: translateY(var(--platform-base-y));
  }
  50% {
    transform: translateY(
      calc(var(--platform-base-y) - var(--platform-float-distance))
    );
  }
}

/* 1v1 Mode - Much larger platforms utilizing more space */
.mode-1 .platform {
  --platform-width: clamp(220px, 34vw, 420px);
}

.mode-1 .platform.your-team-1 {
  left: 5%; /* Moved closer to center */
  top: 45%; /* Adjusted to use more bottom space */
  --platform-base-y: -30%; /* Less centering to use bottom space */
}

.mode-1 .platform.op-team-1 {
  right: 5%; /* Moved closer to center */
  top: 45%; /* Adjusted to use more bottom space */
  --platform-base-y: -30%; /* Less centering to use bottom space */
}

/* 2v2 Mode - Medium platforms positioned diagonally, bigger */
.mode-2 .platform {
  --platform-width: clamp(250px, 20vw, 380px);
}

.mode-2 .platform.your-team-1 {
  left: 5%; /* Moved out slightly for bigger platforms */
  top: 15%; /* Adjusted to use more bottom space */
}

.mode-2 .platform.your-team-2 {
  left: 15%; /* Adjusted spacing */
  top: 53%; /* Moved down to use bottom space */
}

.mode-2 .platform.op-team-1 {
  right: 5%; /* Moved out slightly for bigger platforms */
  top: 15%; /* Adjusted to use more bottom space */
}

.mode-2 .platform.op-team-2 {
  right: 15%; /* Adjusted spacing */
  top: 53%; /* Moved down to use bottom space */
}

/* 3v3 Mode - Triangular formation with better spacing, bigger platforms */
.mode-3 .platform {
  --platform-width: clamp(120px, 15vw, 230px);
}

.mode-3 .platform.your-team-1 {
  left: 3%; /* Slightly adjusted for bigger platforms */
  top: 15%; /* Moved up to use more bottom space */
}

.mode-3 .platform.your-team-2 {
  left: 12%; /* Adjusted spacing */
  top: 40%; /* Adjusted positioning */
}

.mode-3 .platform.your-team-3 {
  left: 21%; /* Adjusted spacing */
  top: 65%; /* Moved down to use bottom space */
}

.mode-3 .platform.op-team-1 {
  right: 3%; /* Slightly adjusted for bigger platforms */
  top: 15%; /* Moved up to use more bottom space */
}

.mode-3 .platform.op-team-2 {
  right: 12%; /* Adjusted spacing */
  top: 40%; /* Adjusted positioning */
}

.mode-3 .platform.op-team-3 {
  right: 21%; /* Adjusted spacing */
  top: 65%; /* Moved down to use bottom space */
}

/* VS indicator in the center */
#vs-container {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 100;
}

#vs {
  filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.8));
}

/* Character container on platforms - anchored so the character sits on the platform */
.character-slot {
  position: relative;
  z-index: 2;
  width: min(9vw, 104px);
  height: min(15vh, 154px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end; /* push content to bottom so sprite sits on platform */
  cursor: pointer;
  transition: all 0.2s ease;
  margin-top: 0;
  /* Keep character feet merged with platform across responsive scales. */
  margin-bottom: calc(-1 * var(--lobby-character-seam-overlap));
  border-radius: 14px;
  padding: 8px 8px 0px 8px;
  /* Ensure sprite stays at top regardless of platform size */
  min-height: 80px;
  transform: translateY(var(--lobby-character-offset-y, 0px));
  overflow: visible;
}

.character-slot:not([data-is-current-user="true"]):hover {
  transform: translateY(calc(var(--lobby-character-offset-y, 0px) - 4px));
}

.character-slot::before,
.character-slot::after {
  content: "";
  position: absolute;
  inset: -12px;
  border-radius: 18px;
  opacity: 0;
  pointer-events: none;
  transition:
    opacity 180ms ease,
    transform 180ms ease;
}

.character-slot::before {
  background:
    radial-gradient(
      circle at 50% 22%,
      rgba(255, 255, 255, 0.18),
      transparent 44%
    ),
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.08),
      rgba(255, 255, 255, 0) 38%
    );
}

.character-slot::after {
  inset: -18px;
  background: radial-gradient(
    circle,
    rgba(255, 234, 167, 0.24) 0%,
    rgba(114, 214, 255, 0.16) 38%,
    rgba(114, 214, 255, 0) 72%
  );
  filter: blur(10px);
  transform: scale(0.9);
}

.character-slot.player-display {
  border: 2px solid #00d4ff;
  border-radius: 14px;
  background: linear-gradient(
    135deg,
    rgba(0, 212, 255, 0.22),
    rgba(0, 153, 204, 0.12)
  );
  box-shadow:
    0 0 18px rgba(0, 212, 255, 0.32),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.character-slot.op-display {
  border: 2px solid #ff4757;
  border-radius: 14px;
  background: linear-gradient(
    135deg,
    rgba(255, 71, 87, 0.22),
    rgba(220, 56, 56, 0.12)
  );
  box-shadow:
    0 0 18px rgba(255, 71, 87, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

/* Character sprite - responsive sizing, anchored to bottom */
.character-sprite {
  width: min(8vw, 102px);
  height: min(8vw, 116px);
  display: block;
  margin-top: auto; /* push sprite to bottom within the slot */
  margin-bottom: 0;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.5));
  object-fit: contain;
  flex-shrink: 0; /* Prevent shrinking */
  transform-origin: 50% 100%;
  transition:
    transform 220ms ease,
    filter 220ms ease;
}

.switch-character {
  position: absolute;
  right: 6px;
  top: 6px;
  width: 28px;
  height: 28px;
  background-color: #a7e90e;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition:
    transform 0.2s ease,
    filter 0.2s ease;
  box-shadow:
    0 3px 0 rgba(35, 55, 6, 0.9),
    0 8px 16px rgba(0, 0, 0, 0.2);
}

.random {
  width: 60px;
  height: 60px;
  margin-bottom: 10px;
}

/* Username above character - positioned relative to sprite at top */
.username {
  position: absolute;
  top: -30px; /* Positioned above the sprite */
  left: 50%;
  transform: translateX(-50%);
  font-size: min(1.15vw, 12px);
  font-weight: 700;
  font-family: "Press Start 2P", system-ui;
  color: white;
  text-shadow:
    0 2px 0 rgba(0, 0, 0, 0.85),
    0 6px 14px rgba(0, 0, 0, 0.42);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  z-index: 10; /* Ensure it appears above platform */
  max-width: 160px;
}

.username.op-player {
  color: #fff7f4;
}

/* Status indicator - overlaps seam between character and platform */
.status {
  position: absolute;
  bottom: -12px; /* Slight overlap into platform image */
  left: 50%;
  transform: translateX(-50%);
  font-size: min(0.92vw, 9px);
  font-weight: 600;
  padding: 3px 7px;
  border-radius: 999px;
  white-space: nowrap;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.8);
  z-index: 50;
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.22);
}

.status.ready {
  background: linear-gradient(135deg, #26b662, #5aaf2c);
  color: white;
}

.status.online {
  /* Distinct from ready: calming blue/cyan */
  background: linear-gradient(135deg, #1e90ff, #00bcd4);
  color: white;
}

.status.not-ready {
  background: linear-gradient(135deg, #ff4757, #ff3742);
  color: white;
}

.status.offline {
  background: linear-gradient(135deg, #e11d48, #b91c1c);
  color: white;
}

.status.invite {
  background: linear-gradient(135deg, #ffa502, #ff6348);
  color: white;
  cursor: pointer;
}

.status.in-battle {
  background: linear-gradient(135deg, #8b5cf6, #6d28d9);
  color: white;
}

.status.end-screen {
  background: linear-gradient(135deg, #f59e0b, #d97706);
  color: white;
}

.status.selecting-character {
  background: linear-gradient(135deg, #10b981, #059669);
  color: white;
}

/* Tips strip inside the matchmaking card */
#mm-tips {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 12px 0 0;
  padding: 9px 14px;
  background: rgba(8, 18, 58, 0.55);
  border: 1px solid rgba(30, 58, 138, 0.5);
  border-radius: 8px;
  overflow: hidden;
}
.mm-tips-icon {
  font-size: 13px;
  flex-shrink: 0;
}
#tips-text {
  font-family: "Poppins", sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: #bfdbfe;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: opacity 0.35s ease;
}

/* Fortnite-style bottom UI */
#bottom-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: 70px;
  background: linear-gradient(
    135deg,
    rgba(20, 20, 50, 0.3),
    rgba(40, 40, 80, 0.3)
  );
  box-shadow: 0 -4px 20px rgba(0, 212, 255, 0.3);
  backdrop-filter: blur(8px);
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 30px;
  z-index: 1000;
  padding-bottom: env(safe-area-inset-bottom);
}

/* Scope dropdown baseline styles to the bottom bar only */
#bottom-bar select.dropdown {
  padding: 12px 20px;
  font-size: 16px;
  cursor: pointer;
  outline: none;
  transition: all 0.3s ease;
  color: #ffffff;
  /* Remove native arrow and add a consistent chevron */
  padding-right: 20px; /* space for chevron */
  color-scheme: dark; /* hint UA to use dark popups */
}

/* Custom chevron using an inline SVG (white) */
#bottom-bar #character,
#bottom-bar #mode,
#bottom-bar #map {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="%23ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>');
}

/* Improve readability in the native popup list */
#bottom-bar select.dropdown option {
  background-color: rgba(18, 22, 40, 0.98);
  color: #f5f7ff;
}
/* Selected option background tint per dropdown (best-effort; UA-dependent) */
#bottom-bar #character option:checked {
  background-color: rgba(61, 129, 177, 0.85);
}
#bottom-bar #mode option:checked {
  background-color: rgba(88, 178, 55, 0.85);
}
#bottom-bar #map option:checked {
  background-color: rgba(206, 150, 53, 0.85);
}

/* Hide default arrow in legacy IE */
#bottom-bar select.dropdown::-ms-expand {
  display: none;
}

/* Consistent focus ring behavior within the bottom bar */
#bottom-bar select.dropdown:focus {
  border-color: rgba(255, 255, 255, 0.6);
}

#bottom-bar #character {
  background: linear-gradient(135deg, #4da1dc, #3d81b1);
  color: white;
}
#bottom-bar #character:hover {
  background: linear-gradient(135deg, #3d81b1, #2d6191);
  box-shadow: 0 6px 20px rgba(77, 161, 220, 0.4);
}
#bottom-bar #character:focus {
  border-color: #4da1dc;
  box-shadow:
    0 0 0 2px rgba(77, 161, 220, 0.35),
    0 6px 20px rgba(77, 161, 220, 0.4);
}

#bottom-bar #mode {
  background: linear-gradient(135deg, #49d15d, #58b237);
  color: white;
}
#bottom-bar #mode:hover {
  background: linear-gradient(135deg, #58b237, #48a227);
  box-shadow: 0 6px 20px rgba(73, 209, 93, 0.4);
}
#bottom-bar #mode:focus {
  border-color: #49d15d;
}

#bottom-bar #map {
  background: linear-gradient(135deg, #ce9635, #9f9814);
  color: rgb(255, 255, 255);
}
#bottom-bar #map:hover {
  background: linear-gradient(135deg, #9f9814, #8f8804);
  box-shadow: 0 6px 20px rgba(206, 150, 53, 0.4);
}
#bottom-bar #map:focus {
  border-color: #ce9635;
  box-shadow:
    0 0 0 2px rgba(206, 150, 53, 0.35),
    0 6px 20px rgba(206, 150, 53, 0.4);
}

.dropdown-group {
  display: flex;
  gap: 15px;
  align-items: center;
  flex-wrap: wrap;
}

#map {
  display: none;
}

#mode {
  display: none;
}

.mode-picker,
.map-picker {
  display: flex;
  gap: 10px;
  padding: 7px 10px;

  height: 45px;
  min-width: 270px;
  background: linear-gradient(
    135deg,
    rgba(9, 97, 72, 0.55),
    rgba(80, 8, 29, 0.7)
  );
  align-items: center;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.12);
  transition:
    transform 180ms ease,
    box-shadow 180ms ease,
    border-color 180ms ease,
    background 180ms ease;
}

.mode-picker::before,
.map-picker::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    115deg,
    rgba(255, 255, 255, 0) 18%,
    rgba(255, 255, 255, 0.16) 32%,
    rgba(255, 255, 255, 0) 48%
  );
  transform: translateX(-120%);
  transition: transform 320ms ease;
  pointer-events: none;
}

.mode-picker:hover,
.map-picker:hover {
  background: linear-gradient(
    135deg,
    rgba(9, 32, 76, 0.66),
    rgba(19, 3, 47, 0.78)
  );
  transform: translateY(-2px) scale(1.01);
}

.mode-picker:hover::before,
.map-picker:hover::before {
  transform: translateX(120%);
}

#mode-preview-img,
#map-preview-img {
  width: 72px;
  height: 40px;
  border-radius: 7px;
  object-fit: cover;
  border: 2px solid rgba(0, 0, 0, 0.45);
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.18);
}

#mode-preview-name,
#map-preview-name {
  font-size: 11px;
  color: #fff;
  line-height: 1.25;
  max-width: 156px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mode-picker-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.2;
}

#mode-preview-subtitle {
  font-size: 9px;
  color: rgba(214, 232, 255, 0.86);
  text-transform: uppercase;
  letter-spacing: 0.6px;
}

.map-select-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  width: 100%;
  max-width: 860px;
  margin: 0 auto;
  justify-items: center;
}

.selection-popup-scroll {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 6px 12px 22px;
  margin: 0 -12px -12px;
  box-sizing: border-box;
}

.map-selection-popup-scroll {
  width: 100%;
}

.selection-popup-stack {
  display: flex;
  flex-direction: column;
  gap: 14px;
  width: 100%;
  align-items: center;
  flex: 1 1 auto;
  min-height: 0;
}

.selection-popup-back {
  align-self: flex-start;
  min-height: 36px;
  padding: 0 14px;
  background: linear-gradient(135deg, #4b95e6, #3678c3);
  color: #fff;
}

.character-select-popup .map-select-grid {
  width: min(100%, 600px);
  flex: 0 0 auto;
  min-height: auto;
  overflow: visible;
  overscroll-behavior: contain;
  padding: 4px 6px 18px;
  box-sizing: border-box;
}

.map-select-card {
  position: relative;
  display: flex;
  flex-direction: column;
  border: 2px solid rgba(157, 195, 249, 0.4);
  border-radius: 10px;
  box-sizing: border-box;
  padding: 12px 12px 16px;
  background: linear-gradient(
    180deg,
    rgba(8, 17, 34, 0.94),
    rgba(4, 12, 28, 0.98)
  );
  color: #e5f0ff;
  text-align: left;
  overflow: visible;
  isolation: isolate;
  transform: translateY(0);
  transition:
    transform 180ms ease,
    box-shadow 180ms ease,
    border-color 180ms ease,
    background 180ms ease;
}

.map-select-card::before {
  content: none;
  pointer-events: none;
}

.map-select-card:hover,
.map-select-card:focus-visible {
  transform: translateY(-4px);
  border-color: rgba(196, 229, 255, 0.78);
  background: linear-gradient(
    180deg,
    rgba(13, 27, 53, 0.98),
    rgba(6, 15, 34, 1)
  );
  box-shadow:
    0 16px 28px rgba(0, 0, 0, 0.26),
    0 0 0 1px rgba(126, 194, 255, 0.2) inset;
}

.map-select-card:hover::before,
.map-select-card:focus-visible::before {
  content: none;
}

.map-select-card:hover img,
.map-select-card:focus-visible img {
  transform: none;
  filter: none;
}

.mode-select-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 20px;
  width: min(100%, 760px);
  margin: 0 auto;
  padding: 4px 6px 18px;
  box-sizing: border-box;
  overflow: visible;
  align-content: start;
  min-height: 0;
}

.mode-select-grid.subcards {
  grid-template-columns: repeat(3, minmax(180px, 1fr));
  width: min(100%, 860px);
  align-items: stretch;
}

.mode-select-card {
  min-height: 310px;
}

.mode-select-card.is-disabled {
  opacity: 0.78;
}

.mode-select-badge {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 1;
  border-radius: 999px;
  padding: 4px 8px;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: #fff7d1;
  background: rgba(122, 92, 22, 0.86);
  border: 1px solid rgba(255, 230, 149, 0.5);
}

.mode-select-subtitle {
  margin-top: 8px;
  font-family: "Lato", sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: rgba(220, 232, 255, 0.88);
  line-height: 1.35;
  letter-spacing: 0.1px;
  text-transform: none;
}

.mode-select-meta {
  margin-top: auto;
  padding-top: 14px;
  font-family: "Lato", sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: rgba(157, 195, 249, 0.88);
}

.mode-select-empty {
  padding: 22px 18px;
  text-align: center;
  color: #e5f0ff;
  border: 2px dashed rgba(157, 195, 249, 0.35);
  border-radius: 10px;
  background: rgba(6, 13, 29, 0.8);
}

.map-select-card.active {
  border-color: rgba(255, 215, 125, 0.8);
  box-shadow:
    0 0 0 2px rgba(255, 215, 125, 0.25),
    0 14px 24px rgba(0, 0, 0, 0.22);
}

.map-select-card img {
  width: 100%;
  height: 162px;
  border-radius: 8px;
  object-fit: cover;
  display: block;
  margin-bottom: 10px;
  transition: none;
}

.character-select-popup .map-select-card {
  width: min(100%, 820px);
}

.character-select-popup .map-select-grid .map-select-card img {
  height: 220px;
}

.mode-select-grid .map-select-card,
.mode-select-grid.subcards .map-select-card {
  width: 100%;
}

.mode-select-grid.subcards .mode-select-card {
  min-height: 285px;
}

.map-select-name {
  font-weight: 700;
  font-size: 12px;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  text-shadow: 0 2px 0 rgba(0, 0, 0, 0.35);
  text-align: center;
  padding: 0 4px;
  overflow-wrap: anywhere;
}

.profile-card-rarity {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  border-radius: 999px;
  padding: 2px 8px;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.25);
}

.profile-card-rarity.common {
  background: rgba(107, 114, 128, 0.72);
}

.profile-card-rarity.rare {
  background: rgba(37, 99, 235, 0.82);
}

.profile-card-rarity.epic {
  background: rgba(126, 34, 206, 0.82);
}

.profile-card-rarity.legendary {
  background: rgba(217, 119, 6, 0.85);
}

.profile-card-tile.rare,
.profile-card-tile.epic,
.profile-card-tile.legendary {
  position: relative;
  overflow: hidden;
}

.profile-card-tile.rare::before,
.profile-card-tile.epic::before,
.profile-card-tile.legendary::before {
  content: "";
  position: absolute;
  top: -120%;
  left: -40%;
  width: 30%;
  height: 320%;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0),
    rgba(255, 255, 255, 0.42),
    rgba(255, 255, 255, 0)
  );
  transform: rotate(20deg);
  animation: cardGlimmer 2.8s linear infinite;
  pointer-events: none;
}

@keyframes cardGlimmer {
  0% {
    transform: translateX(-170%) rotate(20deg);
  }
  100% {
    transform: translateX(420%) rotate(20deg);
  }
}

.profile-cost {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.profile-cost img {
  width: 13px;
  height: 13px;
  object-fit: contain;
}

#ready {
  background: linear-gradient(135deg, #b49e20, #bda322);
  padding: 13px 35px;
  font-size: 18px;
  cursor: pointer;
  transition: all 0.3s ease;
  color: #ffffff;
}
#ready:hover {
  background: linear-gradient(135deg, #d4ba3a, #c6991b);
}

#ready:disabled,
#ready.is-disabled {
  cursor: not-allowed;
  opacity: 0.68;
  filter: saturate(0.55);
}

/* Cancel (red) visual state for Ready button */
#ready.cancel {
  background: linear-gradient(135deg, #ff4757, #dc3545);
}
#ready.cancel:hover {
  background: linear-gradient(135deg, #dc3545, #c82333);
}

#username-text {
  margin-right: 0;
}

#username-button {
  border: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

#username-button #username-text {
  display: inline-block;
  max-width: 140px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.account,
.party-button,
.mode-picker,
.map-picker,
.mm-btn {
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(10px) saturate(1.18);
  -webkit-backdrop-filter: blur(10px) saturate(1.18);
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.55);
}

.account::before,
.party-button::before,
.mode-picker::before,
.map-picker::before,
.mm-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.2),
      rgba(255, 255, 255, 0.04)
    ),
    linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(0, 0, 0, 0));
  pointer-events: none;
  opacity: 0.9;
}

.account {
  height: 30px;
  background:
    linear-gradient(135deg, rgba(154, 173, 68, 0.9), rgba(130, 158, 28, 0.82)),
    rgba(18, 34, 17, 0.38);
  padding: 0px 10px;
  color: white;
  margin-left: 0;
  cursor: pointer;
  transition: all 0.3s ease;
  font-weight: 400;
  box-shadow:
    0px 5px rgb(16, 80, 19),
    0px -5px rgb(16, 80, 19),
    5px 0px rgb(16, 80, 19),
    -5px 0px rgb(16, 80, 19),
    0px 10px #00000038,
    5px 5px #00000038,
    -5px 5px #00000038,
    inset 0px 5px #ffffff36;
}
.account:hover {
  background:
    linear-gradient(135deg, rgba(187, 119, 60, 0.92), rgba(162, 100, 42, 0.84)),
    rgba(32, 21, 10, 0.42);
}

.party-button {
  position: fixed;
  top: 80px;
  left: 20px;
  font-size: 11px;
  height: 35px;
  background:
    linear-gradient(135deg, rgba(105, 71, 255, 0.9), rgba(142, 53, 220, 0.82)),
    rgba(16, 12, 44, 0.34);
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  color: white;
  font-weight: 600;
  z-index: 1;
  transition: all 0.3s ease;
}

.party-button p {
  margin: 0;
}

.party-search-button {
  left: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 45px;
  padding: 0;
  background:
    linear-gradient(135deg, rgba(43, 99, 152, 0.94), rgba(45, 95, 188, 0.86)),
    rgba(12, 43, 38, 0.4);
}

.party-search-button:hover {
  background:
    linear-gradient(135deg, rgba(34, 120, 93, 0.94), rgba(31, 124, 107, 0.86)),
    rgba(11, 44, 39, 0.4);
}

.party-settings-button {
  left: 240px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 45px;
  padding: 0;
  background:
    linear-gradient(135deg, rgba(111, 111, 111, 0.9), rgba(75, 75, 75, 0.82)),
    rgba(89, 89, 89, 0.36);
}

.party-settings-button:hover {
  background:
    linear-gradient(135deg, rgba(71, 71, 71, 0.94), rgba(75, 75, 75, 0.82)),
    rgba(89, 89, 89, 0.36);
}

.leaderboard-button {
  left: auto;
  right: 20px;
  width: max-content;
  min-width: 0;
  padding: 0 10px;
  white-space: nowrap;
  background:
    linear-gradient(135deg, rgba(26, 105, 167, 0.9), rgba(14, 80, 138, 0.82)),
    rgba(10, 23, 48, 0.36);
}

.leaderboard-button:hover {
  background:
    linear-gradient(135deg, rgba(29, 126, 198, 0.94), rgba(17, 94, 161, 0.86)),
    rgba(12, 28, 55, 0.4);
}

.trophy-overlay {
  position: fixed;
  inset: 0;
  z-index: 9997;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  box-sizing: border-box;
}

.trophy-overlay-backdrop {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      circle at 14% 16%,
      rgba(255, 201, 85, 0.18),
      transparent 44%
    ),
    radial-gradient(
      circle at 85% 18%,
      rgba(81, 170, 255, 0.18),
      transparent 48%
    ),
    rgba(5, 10, 22, 0.74);
}

.trophy-overlay-panel {
  position: relative;
  z-index: 1;
  width: min(1100px, 97vw);
  max-height: min(860px, 95vh);
  overflow: hidden;
  border-radius: 14px;
  border: 3px solid #183362;
  background: linear-gradient(
    165deg,
    rgba(16, 28, 55, 0.96),
    rgba(10, 18, 36, 0.98)
  );
  box-shadow:
    0 0 0 4px rgba(166, 202, 255, 0.2),
    0 24px 60px rgba(0, 0, 0, 0.54);
  padding: 16px;
}

.trophy-overlay-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.trophy-overlay-head h2 {
  margin: 0;
  font-family: "Press Start 2P", system-ui;
  font-size: clamp(13px, 1.6vw, 20px);
  color: #eef8ff;
}

.trophy-overlay-head p {
  margin: 6px 0 0;
  color: #b7d8ff;
  font-size: 13px;
}

.trophy-overlay-close {
  min-height: 30px;
  padding: 0 14px;
  background: linear-gradient(135deg, #d14b42, #ab2e2e);
  color: #fff;
}

.party-join-request-panel,
.party-join-request-owner-panel {
  width: min(380px, 92vw);
}

.party-join-request-panel {
  width: min(420px, 92vw);
}

.party-join-request-overlay .trophy-overlay-backdrop {
  background: #000;
}

.party-join-request-panel {
  background: linear-gradient(
    165deg,
    rgba(12, 16, 26, 0.98),
    rgba(6, 10, 18, 0.99)
  );
  border-color: rgba(83, 111, 154, 0.72);
}

.party-join-request-owner-panel {
  width: min(420px, 92vw);
  background: linear-gradient(
    165deg,
    rgba(10, 16, 28, 0.98),
    rgba(6, 10, 18, 0.99)
  );
  border-color: rgba(83, 111, 154, 0.72);
}

.party-request-banner {
  margin-bottom: 14px;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid rgba(99, 177, 255, 0.38);
  background: linear-gradient(
    135deg,
    rgba(19, 42, 79, 0.88),
    rgba(11, 23, 45, 0.92)
  );
  color: #e8f5ff;
  font-weight: 700;
}

.party-request-banner[data-status="pending"] {
  border-color: rgba(100, 182, 255, 0.5);
  background: linear-gradient(
    135deg,
    rgba(20, 52, 96, 0.9),
    rgba(11, 28, 56, 0.96)
  );
}

.party-request-banner[data-status="accepted"] {
  border-color: rgba(112, 221, 154, 0.48);
  background: linear-gradient(
    135deg,
    rgba(22, 78, 48, 0.92),
    rgba(10, 39, 24, 0.96)
  );
}

.party-request-banner[data-status="rejected"] {
  border-color: rgba(232, 112, 112, 0.5);
  background: linear-gradient(
    135deg,
    rgba(85, 28, 34, 0.92),
    rgba(43, 16, 20, 0.96)
  );
}

.party-request-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}

.party-request-summary-card {
  border-radius: 12px;
  border: 1px solid rgba(103, 146, 203, 0.28);
  background: rgba(8, 18, 33, 0.74);
  padding: 12px;
  display: grid;
  gap: 4px;
}

.party-request-summary-card span,
.party-request-attempts {
  color: #9fc2ef;
  font-size: 12px;
}

.party-request-summary-card strong {
  color: #f4fbff;
  font-size: 15px;
}

.party-request-foot {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}

.party-request-actions-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  width: 100%;
}

.party-request-actions-row .party-request-submit,
.party-request-actions-row .party-request-return {
  width: 100%;
}

.party-request-submit {
  min-height: 34px;
  padding: 0 16px;
  background: linear-gradient(135deg, #2c9af0, #1d6fc2);
  color: #fff;
}

.party-request-submit:disabled {
  opacity: 0.72;
  cursor: not-allowed;
}

.party-request-return {
  min-height: 34px;
  padding: 0 16px;
  background: linear-gradient(135deg, #4d5f77, #334055);
  color: #f0f7ff;
}

.party-request-owner-list {
  display: grid;
  gap: 12px;
  max-height: 44vh;
  overflow: auto;
}

.party-request-empty {
  display: grid;
  place-items: center;
  min-height: 88px;
  color: #b7d8ff;
  border-radius: 12px;
  border: 1px dashed rgba(103, 146, 203, 0.35);
  background: rgba(8, 18, 33, 0.42);
  margin-bottom: 8px;
}

.party-request-card {
  border-radius: 14px;
  border: 1px solid rgba(94, 140, 198, 0.34);
  background: linear-gradient(
    135deg,
    rgba(16, 31, 56, 0.94),
    rgba(9, 19, 35, 0.98)
  );
  padding: 10px;
  display: grid;
  gap: 10px;
}

.party-request-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.party-request-card-copy {
  display: grid;
  gap: 4px;
}

.party-request-card-copy strong {
  font-size: 17px;
  color: #f5fbff;
}

.party-request-card-copy span {
  color: #a9c8ef;
  font-size: 12px;
}

.party-request-pill {
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  padding: 5px 10px;
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
  font-size: 12px;
  text-transform: capitalize;
}

.party-request-card-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.join-request-overlay-open .bb-chat-lobby-wrap {
  display: none !important;
}

.party-request-button {
  min-height: 32px;
  padding: 0 14px;
}

.party-request-accept {
  background: linear-gradient(135deg, #2f944f, #1f6d3a);
  color: #fff;
}

.party-request-reject {
  background: linear-gradient(135deg, #cf4c44, #a92f2d);
  color: #fff;
}

.trophy-overlay-summary {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 10px;
  border: 1px solid rgba(221, 186, 77, 0.44);
  background: rgba(29, 29, 13, 0.35);
  color: #ffeeb9;
  margin-bottom: 14px;
}

.trophy-overlay-summary img {
  width: 18px;
  height: 18px;
  object-fit: contain;
}

.trophy-track-list {
  position: relative;
  width: 100%;
  min-height: 380px;
  max-height: 72vh;
  overflow-y: auto;
  overflow-x: auto;
  padding: 16px 16px 26px;
  box-sizing: border-box;
}

#trophy-track-rail-fill {
  display: none;
}

.trophy-track-canvas {
  position: absolute;
  left: 0;
  top: 0;
  min-height: 360px;
  --trophy-progress: 0%;
}

.trophy-track-line-shell {
  position: absolute;
  left: 28px;
  right: 28px;
  bottom: 66px;
  height: 14px;
}

.trophy-track-line-bg {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 14px;
  border-radius: 999px;
  background:
    repeating-linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.09) 0,
      rgba(255, 255, 255, 0.09) 22px,
      rgba(255, 255, 255, 0) 22px,
      rgba(255, 255, 255, 0) 44px
    ),
    linear-gradient(180deg, #f59b1c 0%, #cf6808 100%);
  border: 2px solid rgba(67, 26, 3, 0.78);
  box-shadow:
    inset 0 2px 0 rgba(255, 220, 172, 0.46),
    0 8px 16px rgba(12, 6, 1, 0.46);
}

.trophy-track-line-fill {
  position: absolute;
  left: 2px;
  top: 2px;
  height: 10px;
  border-radius: 999px;
  background:
    linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.34),
      rgba(255, 255, 255, 0.06) 25%,
      rgba(255, 255, 255, 0.34) 50%,
      rgba(255, 255, 255, 0.06) 75%,
      rgba(255, 255, 255, 0.34)
    ),
    linear-gradient(90deg, #64e8ff, #2fa3ff 52%, #1a6be1);
  background-size:
    100% 100%,
    100% 100%;
  box-shadow:
    0 0 16px rgba(78, 202, 255, 0.76),
    inset 0 1px 0 rgba(235, 252, 255, 0.58);
  transition: width 320ms ease;
}

.trophy-track-line-glint {
  position: absolute;
  top: -3px;
  left: max(4px, var(--trophy-progress));
  transform: translateX(-50%);
  width: 20px;
  height: 20px;
  border-radius: 999px;
  background: radial-gradient(
    circle,
    rgba(180, 240, 255, 0.98) 0%,
    rgba(116, 219, 255, 0.72) 35%,
    rgba(80, 176, 255, 0) 75%
  );
  pointer-events: none;
  filter: drop-shadow(0 0 9px rgba(99, 202, 255, 0.86));
}

.trophy-track-card-row {
  position: absolute;
  inset: 0;
}

.trophy-track-marker-row {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 18px;
  height: 44px;
}

.trophy-track-player-pin {
  position: absolute;
  bottom: 4px;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: linear-gradient(145deg, #ffd56b, #f09c1a 48%, #d87910 100%);
  border: 2px solid #402100;
  border-radius: 10px;
  padding: 5px 10px;
  box-shadow:
    0 8px 16px rgba(0, 0, 0, 0.32),
    0 0 16px rgba(255, 192, 94, 0.38);
  z-index: 7;
  animation: trophyPinBob 2.4s ease-in-out infinite;
}

.trophy-track-player-pin::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -11px;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 9px solid transparent;
  border-right: 9px solid transparent;
  border-bottom: 11px solid #e59017;
}

.trophy-track-player-pin img {
  width: 15px;
  height: 15px;
  object-fit: contain;
}

.trophy-track-player-pin span {
  color: #fff;
  font-weight: 900;
  font-size: 16px;
}

@keyframes trophyPinBob {
  0%,
  100% {
    transform: translateX(-50%) translateY(0);
  }
  50% {
    transform: translateX(-50%) translateY(-3px);
  }
}

.trophy-lane-card {
  position: absolute;
  bottom: 132px;
  width: 196px;
  transform: translateX(-50%);
  border-radius: 14px;
  border: 2px solid rgba(13, 52, 94, 0.95);
  background: linear-gradient(145deg, #1a4d8d 0%, #113664 50%, #0a2547 100%);
  box-shadow:
    0 10px 18px rgba(0, 0, 0, 0.3),
    inset 0 2px 0 rgba(255, 255, 255, 0.2);
  padding: 10px;
  display: grid;
  justify-items: center;
  gap: 8px;
  z-index: 3;
  overflow: hidden;
  transition:
    transform 180ms ease,
    filter 180ms ease,
    border-color 220ms ease,
    box-shadow 220ms ease;
}

.trophy-lane-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background-size: 240% 240%;
  background-position: 0% 50%;
  opacity: 0.5;
  animation: trophyCardGradientDrift 18s ease-in-out infinite;
  pointer-events: none;
}

.trophy-lane-card-sheen {
  position: absolute;
  top: -58%;
  left: -44%;
  width: 84%;
  height: 210%;
  transform: rotate(22deg);
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.22) 50%,
    rgba(255, 255, 255, 0) 100%
  );
  animation: trophyCardSheen 4.2s ease-in-out infinite;
  pointer-events: none;
  opacity: 0.45;
}

@keyframes trophyCardSheen {
  0%,
  100% {
    transform: translateX(-130%) rotate(22deg);
  }
  35% {
    transform: translateX(180%) rotate(22deg);
  }
}

@keyframes trophyCardGradientDrift {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.trophy-lane-card.claimed::before {
  background-image: linear-gradient(
    120deg,
    rgba(255, 255, 255, 0.02) 0%,
    rgba(80, 140, 255, 0.1) 33%,
    rgba(255, 255, 255, 0.02) 66%
  );
}

.trophy-lane-card.claimable::before {
  background-image: linear-gradient(
    120deg,
    rgba(255, 255, 255, 0.03) 0%,
    rgba(134, 255, 186, 0.16) 33%,
    rgba(255, 255, 255, 0.03) 66%
  );
}

.trophy-lane-card.locked::before {
  background-image: linear-gradient(
    120deg,
    rgba(255, 255, 255, 0.02) 0%,
    rgba(12, 22, 36, 0.18) 33%,
    rgba(255, 255, 255, 0.02) 66%
  );
}

.trophy-lane-item-glow {
  display: none;
}

.trophy-lane-item {
  width: 62px;
  height: 62px;
  object-fit: contain;
  position: relative;
  z-index: 1;
  filter: drop-shadow(0 5px 8px rgba(0, 0, 0, 0.32));
}

.trophy-lane-item-wrap {
  position: relative;
  width: 84px;
  height: 76px;
  display: grid;
  place-items: center;
}

.trophy-lane-meta {
  display: grid;
  justify-items: center;
  gap: 3px;
  text-align: center;
}

.trophy-lane-meta strong {
  color: #fff;
  font-size: 16px;
  line-height: 1.1;
  text-shadow: 0 2px 0 rgba(0, 0, 0, 0.5);
}

.trophy-lane-meta span {
  color: #d7edff;
  font-size: 10px;
  line-height: 1.25;
  min-height: 16px;
}

.trophy-tier-claim {
  min-height: 28px;
  width: 100%;
  padding: 0 8px;
  background: linear-gradient(135deg, #2f9652, #247543);
  color: #fff;
  font-size: 10px;
}

.trophy-tier-claim:disabled {
  opacity: 0.66;
  cursor: not-allowed;
}

.trophy-tier-claim.is-busy {
  background: linear-gradient(135deg, #9a7d2c, #7a611d);
}

.trophy-lane-card.locked .trophy-tier-claim {
  background: linear-gradient(135deg, #5b6c80, #415263);
}

.trophy-lane-card.claimed .trophy-tier-claim {
  background: linear-gradient(135deg, #4f6b7e, #3b5060);
}

.trophy-lane-card.claimable {
  border-color: #85e29f;
  background: linear-gradient(145deg, #1f6f46 0%, #174f34 50%, #113b27 100%);
  box-shadow:
    0 10px 18px rgba(0, 0, 0, 0.3),
    0 0 18px rgba(122, 236, 159, 0.52),
    inset 0 2px 0 rgba(255, 255, 255, 0.28);
}

.trophy-lane-card.locked {
  background: linear-gradient(145deg, #133152 0%, #0e2540 50%, #08182b 100%);
}

.trophy-lane-card.claimable:hover {
  transform: translateX(-50%) translateY(-3px);
  filter: brightness(1.05);
}

.trophy-lane-card.major {
  border-color: rgba(255, 218, 119, 0.95);
  box-shadow:
    0 12px 20px rgba(0, 0, 0, 0.35),
    0 0 20px rgba(255, 210, 110, 0.32),
    inset 0 2px 0 rgba(255, 255, 255, 0.24);
}

.trophy-lane-marker {
  position: absolute;
  transform: translateX(-50%);
  width: auto;
}

.trophy-lane-marker-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 24px;
  padding: 3px 10px;
  border-radius: 999px;
  border: 2px solid rgba(14, 42, 74, 0.95);
  background: linear-gradient(165deg, #74d8ff, #2b9fe8);
  color: #e8f7ff;
  box-shadow:
    0 0 0 2px rgba(8, 23, 46, 0.45),
    0 2px 8px rgba(0, 0, 0, 0.35);
  font-size: 11px;
  font-weight: 900;
}

.trophy-lane-marker-chip img {
  width: 12px;
  height: 12px;
  object-fit: contain;
}

.trophy-lane-marker.claimable .trophy-lane-marker-chip {
  background: linear-gradient(165deg, #ffe39b, #f6b329);
  color: #3b2100;
  box-shadow:
    0 0 0 2px rgba(8, 23, 46, 0.45),
    0 0 14px rgba(255, 215, 110, 0.75);
}

.trophy-lane-marker.claimed .trophy-lane-marker-chip {
  background: linear-gradient(165deg, #9ff0c5, #49be83);
  color: #0d311e;
}

.trophy-lane-marker.locked .trophy-lane-marker-chip {
  background: linear-gradient(165deg, #76b9ea, #3b88c8);
}

.trophy-lane-marker.major .trophy-lane-marker-chip {
  border-color: rgba(93, 55, 0, 0.92);
}

.trophy-lane-card.claim-success {
  animation: trophyClaimCardBurst 520ms ease;
}

.trophy-lane-marker.claim-success {
  animation: trophyClaimMarkerPulse 540ms ease;
}

.trophy-overlay-summary {
  position: relative;
  overflow: hidden;
}

.trophy-overlay-summary.reward-pop {
  animation: trophySummaryRewardPop 520ms ease;
}

.trophy-track-canvas.claim-flash .trophy-track-line-fill {
  animation: trophyRailClaimPulse 640ms ease;
}

.trophy-claim-spark {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  pointer-events: none;
  opacity: 0;
  transform: translate(-50%, -50%);
  animation: trophyClaimSpark var(--spark-dur, 520ms) ease-out forwards;
  animation-delay: var(--spark-delay, 0ms);
}

.trophy-claim-spark.tone-gold {
  background: radial-gradient(circle, #fff7c6 0%, #ffc95c 64%, #ffb42f 100%);
}

.trophy-claim-spark.tone-blue {
  background: radial-gradient(circle, #dbf5ff 0%, #74d2ff 62%, #3a96ff 100%);
}

@keyframes trophyClaimSpark {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.2);
  }
  18% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translate(
        calc(-50% + var(--spark-dx)),
        calc(-50% + var(--spark-dy))
      )
      scale(0.9);
  }
}

@keyframes trophyClaimCardBurst {
  0% {
    transform: translateX(-50%) scale(1);
  }
  35% {
    transform: translateX(-50%) scale(1.06);
  }
  100% {
    transform: translateX(-50%) scale(1);
  }
}

@keyframes trophyClaimMarkerPulse {
  0% {
    transform: translateX(-50%) scale(1);
  }
  45% {
    transform: translateX(-50%) scale(1.14);
  }
  100% {
    transform: translateX(-50%) scale(1);
  }
}

@keyframes trophyRailClaimPulse {
  0% {
    box-shadow:
      0 0 16px rgba(78, 202, 255, 0.76),
      inset 0 1px 0 rgba(235, 252, 255, 0.58);
  }
  50% {
    box-shadow:
      0 0 28px rgba(140, 226, 255, 0.92),
      inset 0 1px 0 rgba(235, 252, 255, 0.86);
  }
  100% {
    box-shadow:
      0 0 16px rgba(78, 202, 255, 0.76),
      inset 0 1px 0 rgba(235, 252, 255, 0.58);
  }
}

@keyframes trophySummaryRewardPop {
  0% {
    transform: scale(1);
  }
  45% {
    transform: scale(1.06);
  }
  100% {
    transform: scale(1);
  }
}

.trophy-track-list::-webkit-scrollbar,
.leaderboard-list::-webkit-scrollbar {
  height: 10px;
  width: 10px;
}

.trophy-track-list::-webkit-scrollbar-track,
.leaderboard-list::-webkit-scrollbar-track {
  background: rgba(8, 20, 40, 0.72);
  border-radius: 999px;
}

.trophy-track-list::-webkit-scrollbar-thumb,
.leaderboard-list::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #57b9ff, #2f7dd7);
  border-radius: 999px;
  border: 1px solid rgba(185, 225, 255, 0.55);
}

.trophy-track-list,
.leaderboard-list {
  scrollbar-color: #2f7dd7 rgba(8, 20, 40, 0.72);
}

.leaderboard-panel {
  width: min(840px, 96vw);
}

@media (max-width: 640px) {
  .leaderboard-panel {
    width: min(520px, 88vw);
  }
}

.party-discovery-panel {
  width: min(640px, 46vw);
  max-height: min(760px, 92vh);
  display: grid;
  grid-template-rows: auto auto auto 1fr;
  gap: 10px;
}

.party-discovery-search-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
}

.party-discovery-search-row input {
  box-sizing: border-box;
}

.party-discovery-input,
.party-public-name-input {
  width: 100%;
  height: 30px;
  background: rgba(54, 54, 54, 0.5);
  border: none;
  padding: 0 16px;
  font-size: 12px;
  letter-spacing: -1px;
  color: #e2e8f0;
  font-family: "Press Start 2P", "Lato", sans-serif;
  transition: all 0.3s ease;
  box-sizing: border-box;
  box-shadow:
    0px 5px black,
    0px -5px black,
    5px 0px black,
    -5px 0px black,
    inset 0px 5px #00000038;
}

.party-discovery-input:focus,
.party-public-name-input:focus {
  outline: none;
  background: rgba(86, 86, 86, 0.4);
}

.party-discovery-input::placeholder,
.party-public-name-input::placeholder {
  color: #a0aec0;
}

.party-discovery-refresh {
  height: 30px;
  padding: 0 14px;
  background: linear-gradient(135deg, #2d78d5, #1f59af);
  color: #fff;
}

.party-discovery-status,
.party-settings-status {
  min-height: 18px;
  color: #b7d8ff;
  font-size: 12px;
}

.party-discovery-list {
  display: grid;
  gap: 10px;
  overflow-y: auto;
  padding-right: 4px;
}

.party-discovery-card {
  border-radius: 12px;
  border: 1px solid rgba(121, 182, 240, 0.3);
  background: linear-gradient(
    150deg,
    rgba(13, 32, 59, 0.9),
    rgba(8, 20, 42, 0.94)
  );
  padding: 14px;
  display: grid;
  gap: 12px;
}

.party-discovery-card-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
}

.party-discovery-card-head > div:first-child {
  display: grid;
  gap: 12px;
}

.party-discovery-title {
  margin: 0;
  font-size: 16px;
  color: #f2f8ff;
  font-weight: 700;
}

.party-discovery-info-row {
  display: grid;
  grid-template-columns: auto auto auto auto;
  gap: 16px;
  align-items: center;
}

.party-discovery-meta {
  color: #b7d8ff;
  font-size: 11px;
  display: flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
}

.party-discovery-meta-label {
  color: #8eb8e8;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  font-weight: 600;
}

.party-discovery-meta-value {
  color: #ecf6ff;
  font-size: 11px;
  font-weight: 600;
}

.party-discovery-members {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 8px;
}

.party-discovery-member {
  border-radius: 8px;
  border: 1px solid rgba(115, 180, 235, 0.28);
  background: rgba(10, 24, 45, 0.76);
  padding: 8px;
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 8px;
  align-items: center;
}

.party-discovery-member img {
  width: 32px;
  height: 32px;
  object-fit: contain;
}

.party-discovery-member-name {
  color: #ecf6ff;
  font-size: 11px;
  font-weight: 700;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.party-discovery-member-char {
  color: #a5cdf8;
  font-size: 9px;
  text-transform: capitalize;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.party-discovery-join {
  justify-self: end;
  min-height: 34px;
  padding: 0 14px;
  color: #fff;
  background: linear-gradient(135deg, #2a9650, #1f7640);
  align-self: start;
}

.party-settings-panel {
  width: min(540px, 94vw);
  display: grid;
  gap: 10px;
}

.party-settings-panel .form-group {
  margin-bottom: 20px;
  text-align: left;
}

.party-visibility-toggle {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #e2f3ff;
  font-weight: 700;
  font-size: 14px;
}

.party-visibility-toggle input[type="checkbox"] {
  width: 22px;
  height: 22px;
  cursor: pointer;
  accent-color: #4fc3f7;
  appearance: none;
  -webkit-appearance: none;
  background: linear-gradient(
    135deg,
    rgba(15, 76, 129, 0.9),
    rgba(8, 48, 81, 0.9)
  );
  border: 2px solid rgba(79, 195, 247, 0.5);
  border-radius: 3px;
  position: relative;
  transition: all 0.2s ease;
}

.party-visibility-toggle input[type="checkbox"]:hover {
  border-color: rgba(79, 195, 247, 0.8);
  box-shadow: 0 0 8px rgba(79, 195, 247, 0.3);
}

.party-visibility-toggle input[type="checkbox"]:checked {
  background: linear-gradient(
    135deg,
    rgba(76, 175, 80, 0.92),
    rgba(56, 142, 60, 0.92)
  );
  border-color: rgba(129, 199, 132, 0.8);
  box-shadow: 0 0 12px rgba(129, 199, 132, 0.4);
}

.party-visibility-toggle input[type="checkbox"]:checked::after {
  content: "✓";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: -0.5px;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}

.party-public-name-label,
.party-visibility-toggle-label {
  display: block;
  margin-bottom: 8px;
  font-weight: 600;
  color: #f7fafc;
  font-size: 14px;
}

.party-settings-hint {
  margin: 0;
  color: #8eb8e8;
  font-size: 11px;
}

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

.party-settings-save {
  min-height: 34px;
  padding: 0 14px;
  color: #fff;
  background: linear-gradient(135deg, #2a9650, #1f7640);
}

.leaderboard-list {
  display: grid;
  gap: 8px;
  max-height: 64vh;
  overflow-y: auto;
  padding: 10px 6px 12px;
  box-sizing: border-box;
}

.leaderboard-row {
  display: grid;
  grid-template-columns: 70px 74px 1fr 170px;
  gap: 10px;
  align-items: center;
  padding: 14px 14px;
  border-radius: 14px;
  background: linear-gradient(
    145deg,
    rgba(10, 22, 43, 0.92),
    rgba(7, 16, 31, 0.92)
  );
  border: 1px solid rgba(122, 180, 241, 0.28);
  color: #deeeff;
  font-size: 13px;
  cursor: pointer;
  text-align: left;
  width: 100%;
}

.leaderboard-row:hover {
  border-color: rgba(168, 210, 255, 0.65);
  transform: translateY(-2px) scale(1.01);
  box-shadow: 0 14px 24px rgba(0, 0, 0, 0.26);
}

.leaderboard-row.top-1,
.leaderboard-row.top-2,
.leaderboard-row.top-3 {
  position: relative;
  overflow: hidden;
}

.leaderboard-row.top-1::before,
.leaderboard-row.top-2::before,
.leaderboard-row.top-3::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    110deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.12) 35%,
    rgba(255, 255, 255, 0.16) 50%,
    rgba(255, 255, 255, 0.12) 65%,
    rgba(255, 255, 255, 0) 100%
  );
  background-size: 240% 100%;
  animation: leaderboardTopGlowDrift 9s ease-in-out infinite;
  pointer-events: none;
}

.leaderboard-row.top-1 {
  border-color: rgba(255, 215, 110, 0.58);
  box-shadow: 0 0 12px rgba(255, 215, 110, 0.18);
  background: linear-gradient(
    145deg,
    rgba(77, 58, 11, 0.25),
    rgba(121, 93, 27, 0.25)
  );
}

.leaderboard-row.top-3 {
  border-color: rgba(212, 220, 233, 0.55);
  box-shadow: 0 0 12px rgba(212, 220, 233, 0.14);
  background: linear-gradient(
    145deg,
    rgba(62, 50, 13, 0.2),
    rgba(60, 48, 7, 0.2)
  );
}

.leaderboard-row.top-2 {
  border-color: rgba(198, 137, 88, 0.56);
  box-shadow: 0 0 12px rgba(198, 137, 88, 0.16);
  background: linear-gradient(
    145deg,
    rgba(98, 54, 27, 0.15),
    rgba(90, 49, 29, 0.15)
  );
}

@keyframes leaderboardTopGlowDrift {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.leaderboard-rank {
  color: #f7d06f;
  font-weight: 700;
  font-size: 18px;
}

.leaderboard-avatar {
  width: 60px;
  height: 60px;
  object-fit: cover;
}

.leaderboard-main {
  display: grid;
  gap: 5px;
}

.leaderboard-name {
  color: #ffffff;
  font-weight: 700;
  font-size: 17px;
}

.leaderboard-trophies {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #ffe8a8;
  font-weight: 700;
  font-size: 20px;
}

.leaderboard-trophies img {
  width: 21px;
  height: 21px;
}

.leaderboard-wins {
  color: #b8d5ff;
  text-align: left;
  font-size: 12px;
}

.trophy-overlay-loading {
  color: #c4defd;
  padding: 14px 6px;
}

@media (max-width: 768px) {
  .party-button,
  .leaderboard-button {
    top: 68px;
    font-size: 9px;
    height: 30px;
  }

  .party-search-button {
    left: 160px;
  }

  .party-settings-button {
    left: 300px;
  }

  .leaderboard-row {
    grid-template-columns: 48px 58px 1fr;
    gap: 6px;
  }

  .leaderboard-trophies {
    grid-column: 2;
    text-align: left;
  }

  .leaderboard-wins {
    grid-column: 3;
  }

  .trophy-track-list {
    min-height: 380px;
    padding: 12px 10px 22px;
  }

  .trophy-track-canvas {
    min-height: 360px;
  }

  .trophy-lane-card {
    width: 176px;
    bottom: 134px;
    padding: 8px;
  }

  .trophy-track-player-pin {
    padding: 4px 8px;
  }

  .trophy-track-player-pin span {
    font-size: 14px;
  }

  .trophy-lane-marker {
    width: auto;
  }

  .trophy-lane-marker-chip {
    font-size: 10px;
    min-height: 22px;
    padding: 3px 8px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .trophy-track-player-pin,
  .trophy-lane-card::before,
  .trophy-lane-card-sheen,
  .trophy-lane-card.claim-success,
  .trophy-lane-marker.claim-success,
  .trophy-track-canvas.claim-flash .trophy-track-line-fill,
  .trophy-overlay-summary.reward-pop,
  .trophy-claim-spark {
    animation: none !important;
  }
}
.party-button:hover {
  background:
    linear-gradient(135deg, rgba(115, 86, 247, 0.94), rgba(158, 80, 227, 0.86)),
    rgba(22, 15, 55, 0.38);
  transform: translateY(-1px);
}

/* Drag and drop visual feedback - less obnoxious */
.platform.drag-over {
  filter: brightness(1.2) drop-shadow(0 0 10px #ffff00);
}

/* Empty slot styling - more subtle */
.character-slot.empty {
  border: 2px dashed rgba(255, 255, 255, 0.4);
  background: rgba(255, 255, 255, 0.05);
}

.slot-level-badge {
  position: absolute;
  top: -10px;
  left: -10px;
  width: 45px;
  height: 45px;
  z-index: 14;
  opacity: 0;
  transform: translateY(-3px) scale(0.96);
  transition:
    opacity 160ms ease,
    transform 160ms ease;
  animation: badgePop 5s ease-in-out infinite;
  pointer-events: none;
}

@keyframes badgePop {
  0% {
    rotate: -5deg;
    transform: translateY(-2px) scale(0.98);
  }
  50% {
    rotate: 2deg;
    transform: translateY(2px) scale(1);
  }
  100% {
    rotate: -5deg;
    transform: translateY(-2px) scale(0.98);
  }
}

.character-slot.has-level .slot-level-badge {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.slot-level-badge img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 10px 16px rgba(0, 0, 0, 0.34));
}

/* Party invite popup styling with higher z-index */
.party-popup {
  position: absolute;
  padding: 8px 12px;
  color: white;
  border-radius: 6px;
  background: linear-gradient(135deg, #2f2f2f, #1f1f1f);
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
  z-index: 10000;
  font-size: 12px;
  white-space: nowrap;
  backdrop-filter: blur(10px);
}

#your-slot-1:hover {
  background-color: #5a5a5a1c;
}
.character-slot:hover::after,
.character-slot:hover::before {
  opacity: 1;
}

.character-slot:hover .switch-character,
.character-slot[data-is-current-user="true"]:hover .switch-character {
  transform: rotate(-10deg);
  filter: brightness(1.05);
}

.character-slot:hover .character-sprite {
  transform: translateY(-3px) scale(1.04);
  filter: drop-shadow(0 8px 12px rgba(0, 0, 0, 0.3)) brightness(1.03);
}

.character-slot.character-splash::before {
  opacity: 1;
  animation: lobbySplashSheen 520ms ease-out forwards;
}

.character-slot.character-splash::after {
  opacity: 1;
  animation: lobbySplashBloom 620ms cubic-bezier(0.16, 0.84, 0.31, 1) forwards;
}

.character-slot.character-splash .character-sprite {
  animation: lobbySplashSprite 520ms cubic-bezier(0.16, 0.84, 0.31, 1);
}

@keyframes lobbySplashBloom {
  0% {
    opacity: 0.85;
    transform: scale(0.58);
  }
  100% {
    opacity: 0;
    transform: scale(1.35);
  }
}

@keyframes lobbySplashSheen {
  0% {
    opacity: 0.7;
    transform: scale(0.94);
  }
  100% {
    opacity: 0;
    transform: scale(1.12);
  }
}

@keyframes lobbySplashSprite {
  0% {
    transform: scale(0.88) translateY(8px);
    filter: drop-shadow(0 0 0 rgba(255, 255, 255, 0)) brightness(1.18);
  }
  48% {
    transform: scale(1.12) translateY(-6px);
    filter: drop-shadow(0 0 22px rgba(255, 243, 195, 0.55)) brightness(1.08);
  }
  100% {
    transform: scale(1) translateY(0);
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.5)) brightness(1);
  }
}

@media (hover: none) and (pointer: coarse) and (max-height: 520px) and (orientation: landscape) {
  #navbar {
    height: 42px;
    padding: 3px calc(8px + env(safe-area-inset-right)) 3px
      calc(8px + env(safe-area-inset-left));
  }

  #navbar h2 {
    display: none;
  }

  #navbar-right {
    gap: 6px;
  }

  .resources {
    gap: 3px;
  }

  .resources p,
  #username-button #username-text {
    font-size: 8px;
  }

  #username-button #username-text {
    max-width: 88px;
  }

  .resources img {
    width: 14px;
    height: 14px;
  }

  .account,
  .fullscreen-toggle,
  .trophy-resource {
    height: 24px;
    padding: 0 6px;
    font-size: 8px;
  }

  .party-button,
  .leaderboard-button {
    top: 50px;
    height: 24px;
    font-size: 8px;
  }

  .party-button {
    left: 8px;
  }

  .party-search-button {
    left: 122px;
    width: 38px;
  }

  .party-settings-button {
    left: 170px;
    width: 38px;
  }

  .leaderboard-button {
    left: auto;
    right: 8px;
  }

  #lobby-area {
    height: calc(var(--bb-viewport-height, 100dvh) - 92px);
    margin-top: 6px;
  }

  #bottom-bar {
    height: 48px;
    padding: 0 calc(8px + env(safe-area-inset-right))
      env(safe-area-inset-bottom) calc(8px + env(safe-area-inset-left));
  }

  .dropdown-group {
    gap: 6px;
    max-width: calc(100vw - 96px);
  }

  .mode-picker,
  .map-picker {
    min-width: 154px;
    height: 34px;
    padding: 4px 7px;
    gap: 8px;
  }

  #mode-preview-img,
  #map-preview-img {
    width: 48px;
    height: 26px;
  }

  #mode-preview-name,
  #map-preview-name {
    font-size: 9px;
    max-width: 96px;
  }

  #mode-preview-subtitle {
    display: none;
  }

  #ready {
    min-width: 72px;
    height: 34px;
    font-size: 10px;
    padding: 8px 14px;
  }

  .mode-1 .platform {
    --platform-width: clamp(190px, 45vw, 260px);
  }

  .mode-2 .platform {
    --platform-width: clamp(155px, 36vw, 210px);
  }

  .mode-3 .platform {
    --platform-width: clamp(130px, 31vw, 175px);
  }

  .character-slot {
    width: min(15vw, 70px);
    height: min(18vh, 90px);
    min-height: 60px;
  }

  .character-sprite {
    width: min(10vw, 40px);
    height: min(10vw, 40px);
  }

  .username {
    font-size: min(2vw, 10px);
    top: -20px;
  }
}

/* Responsive adjustments for smaller screens */
@media (max-width: 768px) {
  .mode-1 .platform {
    --platform-width: clamp(250px, 42vw, 360px);
  }

  .mode-2 .platform {
    --platform-width: clamp(200px, 33vw, 300px);
  }

  .mode-2 .platform.your-team-2,
  .mode-2 .platform.op-team-2 {
    top: 55%;
  }

  .mode-3 .platform {
    --platform-width: clamp(150px, 27vw, 230px);
  }

  .mode-3 .platform.your-team-2,
  .mode-3 .platform.op-team-2 {
    top: 45%;
  }

  .mode-3 .platform.your-team-3,
  .mode-3 .platform.op-team-3 {
    top: 65%;
  }

  .character-slot {
    width: min(12vw, 80px);
    height: min(15vh, 100px);
    min-height: 70px;
    margin-bottom: calc(-1 * var(--lobby-character-seam-overlap));
  }

  .character-sprite {
    width: max(8vw, 50px);
    height: max(8vw, 50px);
  }

  #navbar {
    height: 46px;
    padding: 4px 10px;
  }

  #navbar h2 {
    margin-left: 6px;
    font-size: 14px;
  }

  #navbar-right {
    gap: 8px;
  }

  .resources {
    gap: 4px;
  }

  .resources img {
    width: 16px;
    height: 16px;
  }

  .account,
  .fullscreen-toggle {
    height: 28px;
    padding: 0 8px;
    font-size: 9px;
  }

  #username-button #username-text {
    max-width: 92px;
  }

  .party-button,
  .leaderboard-button {
    top: 56px;
    height: 28px;
    font-size: 8px;
  }

  .party-button {
    left: 10px;
  }

  .party-search-button {
    left: 142px;
  }

  .party-settings-button {
    left: 200px;
  }

  .leaderboard-button {
    left: auto;
    right: 10px;
  }

  #lobby-area {
    height: calc(var(--bb-viewport-height, 100dvh) - 100px);
    margin-top: 8px;
  }

  #vs {
    width: 74px;
  }

  #bottom-bar {
    height: 54px;
    padding: 0 10px;
    gap: 8px;
  }

  .dropdown-group {
    gap: 8px;
    flex-wrap: nowrap;
    overflow-x: auto;
    max-width: calc(100vw - 112px);
    -webkit-overflow-scrolling: touch;
  }

  .mode-picker,
  .map-picker {
    min-width: 188px;
    height: 38px;
    padding: 5px 8px;
  }

  #mode-preview-img,
  #map-preview-img {
    width: 54px;
    height: 30px;
  }

  #mode-preview-name,
  #map-preview-name {
    font-size: 10px;
  }

  #mode-preview-subtitle {
    font-size: 8px;
  }

  #ready {
    min-width: 84px;
    height: 38px;
    font-size: 11px;
  }

  .fullscreen-toggle {
    min-width: 42px;
  }
}

@media (max-width: 480px) {
  .party-search-button,
  .party-settings-button {
    top: 106px;
  }

  .party-settings-button {
    left: 20px;
  }

  .party-discovery-members {
    grid-template-columns: 1fr;
  }

  .mode-1 .platform {
    --platform-width: clamp(190px, 45vw, 260px);
  }

  .mode-2 .platform {
    --platform-width: clamp(155px, 36vw, 210px);
  }

  .mode-3 .platform {
    --platform-width: clamp(130px, 31vw, 175px);
  }

  .character-slot {
    width: min(15vw, 70px);
    height: min(18vh, 90px);
    min-height: 60px;
    margin-bottom: calc(-1 * var(--lobby-character-seam-overlap));
  }

  .character-sprite {
    width: min(10vw, 40px);
    height: min(10vw, 40px);
  }

  .username {
    font-size: min(2vw, 10px);
    top: -20px;
  }

  .status {
    font-size: min(1.5vw, 8px);
    bottom: -8px;
  }

  #navbar {
    height: 42px;
    padding: 3px 8px;
  }

  #navbar h2 {
    display: none;
  }

  #navbar-right {
    gap: 6px;
  }

  .resources p,
  #username-button #username-text {
    font-size: 8px;
  }

  .resources img {
    width: 14px;
    height: 14px;
  }

  .account,
  .fullscreen-toggle {
    height: 26px;
    padding: 0 7px;
    font-size: 8px;
  }

  .party-search-button,
  .party-settings-button {
    top: 106px;
  }

  .party-settings-button {
    left: 20px;
  }

  .party-discovery-members {
    grid-template-columns: 1fr;
  }

  .mode-1 .platform {
    --platform-width: clamp(190px, 45vw, 260px);
  }

  .mode-2 .platform {
    --platform-width: clamp(155px, 36vw, 210px);
  }

  .mode-3 .platform {
    --platform-width: clamp(130px, 31vw, 175px);
  }

  .character-slot {
    width: min(15vw, 70px);
    height: min(18vh, 90px);
    min-height: 60px;
    margin-bottom: calc(-1 * var(--lobby-character-seam-overlap));
  }

  .character-sprite {
    width: min(10vw, 40px);
    height: min(10vw, 40px);
  }

  .username {
    font-size: min(2vw, 10px);
    top: -20px;
  }

  .status {
    font-size: min(1.5vw, 8px);
    bottom: -8px;
  }

  #lobby-area {
    height: calc(var(--bb-viewport-height, 100dvh) - 90px);
  }

  #bottom-bar {
    height: 50px;
    padding: 0 8px;
  }

  .dropdown-group {
    max-width: calc(100vw - 92px);
  }

  .mode-picker,
  .map-picker {
    min-width: 156px;
    height: 34px;
    padding: 4px 7px;
    gap: 8px;
  }

  .mode-picker-copy {
    display: none;
  }

  #mode-preview-img,
  #map-preview-img {
    width: 48px;
    height: 26px;
  }

  #ready {
    min-width: 70px;
    height: 34px;
    font-size: 10px;
  }

  .party-button {
    left: 8px;
  }

  .party-search-button {
    left: 132px;
  }

  .party-settings-button {
    left: 184px;
  }

  .leaderboard-button {
    left: auto;
    right: 8px;
  }
}

#profile-overlay {
  position: fixed;
  inset: 0;
  z-index: 9998;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  box-sizing: border-box;
}

.profile-overlay-backdrop {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      circle at 18% 15%,
      rgba(255, 193, 74, 0.24),
      transparent 52%
    ),
    radial-gradient(
      circle at 85% 20%,
      rgba(42, 187, 255, 0.2),
      transparent 56%
    ),
    rgba(6, 12, 25, 0.72);
  backdrop-filter: blur(2px);
}

.profile-popup {
  position: relative;
  z-index: 1;
  width: min(880px, 96vw);
  max-height: min(700px, 92vh);
  overflow: auto;
  padding: 16px;
  border-radius: 14px;
  border: 3px solid #132d59;
  background:
    linear-gradient(145deg, rgba(16, 32, 64, 0.96), rgba(10, 20, 42, 0.97)),
    linear-gradient(0deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.04));
  box-shadow:
    0 0 0 4px rgba(123, 191, 255, 0.24),
    0 24px 60px rgba(0, 0, 0, 0.55);
}

.profile-popup-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 14px;
}

.profile-head-copy {
  display: grid;
  gap: 6px;
}

.profile-popup-head h2 {
  margin: 0;
  font-family: "Press Start 2P", system-ui;
  font-size: clamp(14px, 2vw, 22px);
  color: #e5f6ff;
  text-shadow: 0 2px 0 rgba(17, 54, 103, 0.75);
}

.profile-popup-subtitle {
  margin: 0;
  color: #a9d5ff;
  font-size: 13px;
}

.profile-close {
  height: 30px;
  padding: 0 14px;
  background: linear-gradient(135deg, #d14b42, #ab2e2e);
  color: #fff;
}

.profile-popup-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.profile-panel {
  border: 2px solid rgba(130, 197, 255, 0.38);
  border-radius: 12px;
  padding: 14px;
  background: linear-gradient(
    180deg,
    rgba(20, 38, 74, 0.88),
    rgba(13, 26, 52, 0.9)
  );
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.profile-panel h3 {
  margin: 0 0 12px;
  color: #d8edff;
  font-size: 13px;
  letter-spacing: 0.4px;
  text-transform: uppercase;
}

.profile-hero-panel {
  display: grid;
  gap: 12px;
}

.profile-hero-top {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(240px, 1.2fr) minmax(0, 0.9fr);
  align-items: start;
  gap: 16px;
}

.profile-hero-center {
  display: grid;
  justify-items: center;
  gap: 12px;
}

.profile-hero-side {
  display: grid;
  gap: 8px;
}

.profile-hero-side-right {
  align-content: start;
}

.profile-metric-stack-title {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: #8fc3f4;
  padding-left: 2px;
}

.profile-card-showcase {
  width: min(100%, 210px);
  position: relative;
  display: grid;
  place-items: center;
}

.profile-card-edit-trigger {
  position: absolute;
  right: 8px;
  top: 8px;
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  padding: 0;
  cursor: pointer;
  z-index: 3;
}

.profile-card-edit-trigger:disabled {
  cursor: default;
}

.profile-card-edit-badge {
  width: 100%;
  height: 100%;
  border-radius: 999px;
  border: 2px solid rgba(255, 214, 123, 0.9);
  background: linear-gradient(180deg, #263f7a, #1c2f5d);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.35);
}

.profile-card-edit-badge img {
  width: 13px;
  height: 13px;
  object-fit: contain;
}

.profile-hero-card-frame {
  width: 100%;
  max-height: 300px;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 14px 22px rgba(0, 0, 0, 0.45));
}

.profile-hero-avatar {
  position: relative;
  width: 96px;
  height: 96px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -42%);
}

.profile-hero-avatar-trigger {
  position: relative;
  width: 100%;
  height: 100%;
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
  border-radius: inherit;
  cursor: pointer;
}

.profile-hero-avatar-trigger:disabled {
  cursor: default;
}

.profile-hero-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}

.profile-icon-edit-badge {
  position: absolute;
  right: 8px;
  bottom: 8px;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  border: 2px solid rgba(255, 214, 123, 0.9);
  background: linear-gradient(180deg, #263f7a, #1c2f5d);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.35);
}

.profile-icon-edit-badge img {
  width: 13px;
  height: 13px;
  object-fit: contain;
}

.profile-hero-copy {
  display: grid;
  gap: 5px;
  text-align: center;
}

.profile-hero-name {
  font-family: "Press Start 2P", system-ui;
  font-size: clamp(14px, 1.8vw, 20px);
  color: #fff;
}

.profile-hero-class {
  color: #ffe69a;
  font-size: 14px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.8px;
}

.profile-hero-tag {
  color: #a9d5ff;
  font-size: 12px;
}

.profile-metric-card {
  display: grid;
  gap: 6px;
  padding: 10px;
  border-radius: 12px;
  background: rgba(7, 18, 39, 0.58);
  border: 1px solid rgba(126, 191, 255, 0.2);
}

.profile-metric-card span {
  font-size: 11px;
  color: #a9d5ff;
  text-transform: uppercase;
  letter-spacing: 0.4px;
}

.profile-metric-card strong {
  font-size: 20px;
  color: #fff;
}

.profile-metric-card-generic strong {
  font-size: 26px;
}

.profile-character-levels-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 8px;
}

.profile-character-level-card {
  position: relative;
  overflow: visible;
  border: 1px solid rgba(157, 195, 249, 0.35);
  border-radius: 10px;
  padding: 10px 8px 8px;
  display: grid;
  gap: 8px;
  justify-items: center;
  background: linear-gradient(
    180deg,
    rgba(8, 17, 34, 0.84),
    rgba(4, 12, 28, 0.92)
  );
}

.profile-character-level-card img {
  width: 100%;
  height: 84px;
  object-fit: contain;
  filter: drop-shadow(0 6px 10px rgba(0, 0, 0, 0.45));
}

.profile-character-level-badge {
  position: absolute;
  top: -14px;
  left: -12px;
  width: 42px;
  height: 42px;
  z-index: 2;
  pointer-events: none;
}

.profile-character-level-badge img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 8px 12px rgba(0, 0, 0, 0.4));
}

.profile-character-level-name {
  color: #eaf5ff;
  font-size: 12px;
  font-weight: 800;
  text-transform: capitalize;
  text-align: center;
  width: 100%;
}

.profile-character-level-empty {
  color: #a9d5ff;
  font-size: 12px;
  padding: 6px 2px;
}

.profile-stat-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 7px 8px;
  border-radius: 8px;
  margin-bottom: 6px;
  background: rgba(7, 18, 39, 0.58);
  border: 1px solid rgba(126, 191, 255, 0.2);
  color: #cfe8ff;
}

.profile-stat-row strong {
  color: #ffffff;
}

.profile-form {
  display: grid;
  gap: 6px;
  margin-bottom: 14px;
}

.profile-form label {
  font-size: 11px;
  color: #b8ddff;
  letter-spacing: 0.2px;
}

.profile-form input {
  border: 1px solid rgba(153, 211, 255, 0.42);
  border-radius: 8px;
  background: rgba(8, 18, 38, 0.84);
  color: #f2f8ff;
  padding: 10px;
}

.profile-action-btn {
  justify-self: start;
  min-height: 30px;
  padding: 0 14px;
  background: linear-gradient(135deg, #18a462, #0e8255);
  color: #fff;
}

.profile-message {
  min-height: 18px;
  margin: 0;
  color: #bfe2ff;
  font-size: 12px;
}

.profile-panel.is-hidden {
  display: none;
}

.profile-loadout-modal .is-hidden {
  display: none !important;
}

.profile-cards-panel {
  margin-top: 0;
}

.profile-loadout-overlay {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  box-sizing: border-box;
}

.profile-loadout-overlay.hidden {
  display: none;
}

.profile-loadout-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(4, 10, 22, 0.76);
  backdrop-filter: blur(1px);
}

.profile-loadout-modal {
  position: relative;
  z-index: 1;
  width: min(760px, calc(100% - 12px));
  max-height: min(620px, 80vh);
  overflow: auto;
  border-radius: 12px;
  border: 2px solid rgba(130, 197, 255, 0.42);
  background:
    linear-gradient(180deg, rgba(18, 34, 66, 0.98), rgba(10, 22, 45, 0.98)),
    rgba(10, 22, 45, 0.96);
  padding: 12px;
  display: grid;
  gap: 10px;
}

.profile-loadout-section {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.profile-loadout-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.profile-loadout-head h3 {
  margin: 0;
  color: #d8edff;
  font-size: 13px;
  letter-spacing: 0.4px;
  text-transform: uppercase;
}

.profile-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 10px;
}

.profile-card-tile {
  border: 1px solid rgba(157, 195, 249, 0.4);
  border-radius: 10px;
  padding: 8px;
  background: linear-gradient(
    180deg,
    rgba(8, 17, 34, 0.88),
    rgba(4, 12, 28, 0.92)
  );
}

.profile-card-tile:hover {
  transform: translateY(-2px) scale(1.02);
  border-color: rgba(167, 220, 255, 0.75);
  box-shadow: 0 8px 18px rgba(57, 127, 211, 0.28);
}

.profile-card-tile {
  transition:
    transform 140ms ease,
    border-color 140ms ease,
    box-shadow 140ms ease;
}

.profile-card-tile img {
  width: 100%;
  aspect-ratio: 650 / 1250;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 6px 10px rgba(0, 0, 0, 0.45));
}

.profile-icon-tile img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 8px;
}

.profile-icon-choice-tile {
  position: relative;
  border: 0;
  border-radius: 18px;
  padding: 0;
  background: transparent;
  cursor: pointer;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 1 / 1;
  min-height: 0;
}

.profile-icon-choice-tile > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: inherit;
}

.profile-icon-choice-tile:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 8px 18px rgba(57, 127, 211, 0.3);
}

.profile-icon-choice-tile.is-unowned > img {
  filter: brightness(0.54) saturate(0.8);
}

.profile-icon-choice-tile.is-selected {
  border-radius: 18px;
  box-shadow:
    inset 0 0 0 4px rgba(132, 225, 172, 0.96),
    0 0 0 2px rgba(28, 74, 46, 0.82),
    0 0 18px rgba(132, 225, 172, 0.4);
}

.profile-icon-choice-tile:disabled {
  cursor: default;
}

.profile-icon-choice-tile {
  transition:
    transform 140ms ease,
    box-shadow 140ms ease;
}

.profile-icon-name-badge {
  position: absolute;
  left: 10px;
  top: 10px;
  max-width: calc(100% - 20px);
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(5, 13, 28, 0.82);
  border: 1px solid rgba(137, 185, 245, 0.55);
  color: #eaf5ff;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.profile-icon-gem-badge {
  position: absolute;
  right: 10px;
  bottom: 10px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 7px;
  border-radius: 999px;
  background: rgba(5, 13, 28, 0.82);
  border: 1px solid rgba(126, 191, 255, 0.44);
  color: #d7ecff;
  font-size: 10px;
  font-weight: 800;
}

.profile-icon-gem-badge img {
  width: 12px;
  height: 12px;
  object-fit: contain;
}

.profile-icon-limited-tag {
  position: absolute;
  right: 10px;
  top: 10px;
  padding: 2px 6px;
  border-radius: 999px;
  border: 1px solid rgba(255, 198, 198, 0.6);
  background: linear-gradient(180deg, #b43333, #862222);
  color: #fff0f0;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.4px;
}

.profile-icon-lock-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.profile-icon-lock-overlay img {
  width: 30px;
  height: 30px;
  object-fit: contain;
  filter: drop-shadow(0 8px 14px rgba(0, 0, 0, 0.55));
  opacity: 0.95;
}

.profile-card-meta {
  margin-top: 6px;
  display: grid;
  gap: 3px;
  color: #d8ecff;
  font-size: 11px;
}

.profile-card-meta strong {
  font-size: 12px;
  color: #ffffff;
}

.profile-card-actions {
  margin-top: 7px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}

.profile-card-state {
  font-size: 10px;
  text-transform: uppercase;
  color: #9fd2ff;
}

.profile-card-btn {
  min-height: 28px;
  padding: 0 10px;
  font-size: 10px;
  background: linear-gradient(135deg, #2d78d5, #1f59af);
  color: #fff;
}

.profile-card-btn:disabled {
  opacity: 0.65;
  cursor: default;
}

.profile-slot-menu {
  position: fixed;
  z-index: 12040;
  min-width: 180px;
  padding: 8px;
  border-radius: 14px;
  border: 2px solid rgba(130, 197, 255, 0.38);
  background:
    linear-gradient(180deg, rgba(16, 32, 64, 0.97), rgba(10, 20, 42, 0.98)),
    rgba(10, 20, 42, 0.96);
  box-shadow:
    0 18px 42px rgba(0, 0, 0, 0.42),
    0 0 0 4px rgba(123, 191, 255, 0.14);
}

.profile-slot-menu[hidden] {
  display: none;
}

.profile-slot-menu-head {
  padding: 6px 8px 10px;
  color: #d8edff;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.3px;
}

.profile-slot-menu-actions {
  display: grid;
  gap: 8px;
}

.profile-slot-menu-btn {
  min-height: 34px;
  width: 100%;
  justify-content: flex-start;
  padding: 0 12px;
  font-size: 10px;
  color: #fff;
}

.profile-slot-menu-btn[hidden] {
  display: none;
}

.profile-slot-menu-btn.view {
  background: linear-gradient(135deg, #2d78d5, #1f59af);
}

.profile-slot-menu-btn.owner {
  background: linear-gradient(135deg, #9c6d18, #c48b1d);
}

.profile-slot-menu-btn.kick {
  background: linear-gradient(135deg, #cc4040, #a92424);
}

@media (max-width: 880px) {
  .profile-popup-grid {
    grid-template-columns: 1fr;
  }

  .profile-hero-top {
    grid-template-columns: 1fr;
  }

  .profile-hero-side {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .profile-hero-side-right {
    grid-template-columns: 1fr;
  }

  .profile-metric-stack-title {
    grid-column: 1 / -1;
  }

  .profile-card-showcase {
    width: min(100%, 190px);
  }

  .profile-hero-avatar {
    width: 88px;
    height: 88px;
  }
}

/* Matchmaking Overlay */
.mm-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mm-bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: linear-gradient(
    120deg,
    rgba(18, 22, 40, 0.67),
    rgba(10, 12, 22, 0.7)
  );
}
.mm-bg::before {
  content: "";
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(
    ellipse at center,
    rgba(0, 212, 255, 0.5) 0%,
    rgba(0, 212, 255, 0.5) 40%,
    transparent 70%
  );
  transform: rotate(25deg);
  animation: beamPulse 6s ease-in-out infinite;
  pointer-events: none; /* don’t block clicks */
}

@keyframes beamPulse {
  0% {
    opacity: 0;
    transform: rotate(25deg) scale(0.8);
  }
  40% {
    opacity: 0.6;
    transform: rotate(25deg) scale(1);
  }
  60% {
    opacity: 0.6;
    transform: rotate(25deg) scale(1);
  }
  100% {
    opacity: 0;
    transform: rotate(25deg) scale(1.2);
  }
}

.mm-card {
  position: relative;
  width: 95vw;
  height: 90vh;
  padding: 28px;
  display: flex;
  flex-direction: column;
  align-items: center; /* centers the grid block itself */
  background: linear-gradient(
    135deg,
    rgba(24, 28, 48, 0.85),
    rgba(16, 18, 30, 0.85)
  );
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 16px;
  box-shadow:
    0 10px 40px rgba(0, 0, 0, 0.45),
    0 0 0 1px rgba(0, 212, 255, 0.15) inset;
  color: #e8f2ff;
  backdrop-filter: blur(10px);
  animation: pulse 2.2s ease-in-out infinite;
}

.mm-heading {
  margin: 40px;
  font-size: clamp(20px, 5vw, 60px);
  font-family: "Press Start 2P", "Lato", sans-serif;
  text-align: center;
  text-shadow: 0 2px 10px rgba(0, 212, 255, 0.3);
  text-transform: uppercase;
}

.mm-progress {
  display: grid;
  grid-template-columns: 1fr;
  justify-items: center;
  gap: 6px;
  margin-bottom: 14px;
}
.mm-label {
  font-size: clamp(14px, 3vw, 24px);
  opacity: 0.9;
}

.mm-label::after {
  content: "";
  animation: dots 2s steps(4, end) infinite;
}

@keyframes dots {
  0% {
    content: "";
  }
  25% {
    content: ".";
  }
  50% {
    content: "..";
  }
  75% {
    content: "...";
  }
  100% {
    content: "";
  }
}
.mm-count {
  font-size: clamp(28px, 4vw, 40px);
  margin: 15px;
  letter-spacing: -10px;
  font-family: "Press Start 2P", "Lato", sans-serif;
}

.mm-info {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  width: 80%;
}

.mm-meta {
  display: flex;
  gap: 18px;
  justify-content: center;
  flex-wrap: wrap;
  padding: 12px 14px;
  border-radius: 10px;
  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.06),
    rgba(255, 255, 255, 0.02)
  );
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.mm-players-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 180px));
  gap: 12px;

  /* center the grid as a whole and the items within each cell */
  justify-content: center; /* centers the columns block */
  justify-items: center; /* centers item content inside each cell */

  /* optional: keep it from getting too wide */
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
}

.mm-player {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  box-sizing: border-box;
  padding: 10px 8px;
  border-radius: 10px;
  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.06),
    rgba(255, 255, 255, 0.02)
  );
  border: 1px solid rgba(255, 255, 255, 0.1);
  min-height: 140px;
  animation: popIn 260ms ease-out;
}

.mm-player img {
  width: 60px;
  height: 60px;
  object-fit: contain;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.5));
}

.mm-player .mm-name {
  margin-top: 8px;
  font-size: 12px;
  font-weight: 600;
  color: #f0f6ff;
}

.mm-player.placeholder {
  opacity: 0.5;
  border-style: dashed;
  border-color: rgba(255, 255, 255, 0.2);
}

.mm-actions {
  position: absolute;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.mm-fill-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
}

.mm-btn {
  background:
    linear-gradient(135deg, rgba(234, 200, 9, 0.92), rgba(212, 176, 0, 0.84)),
    rgba(41, 31, 2, 0.26);
  padding: 14px 26px;
  min-width: 220px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s ease;
  color: white;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}

.mm-btn:hover {
  background:
    linear-gradient(135deg, rgba(212, 176, 0, 0.94), rgba(196, 160, 0, 0.86)),
    rgba(48, 36, 4, 0.3);
}

.mm-fill-bots {
  background:
    linear-gradient(135deg, rgba(0, 193, 255, 0.9), rgba(0, 129, 214, 0.82)),
    rgba(4, 26, 42, 0.26);
}

.mm-fill-bots:hover {
  background:
    linear-gradient(135deg, rgba(31, 205, 255, 0.94), rgba(13, 152, 234, 0.86)),
    rgba(7, 34, 56, 0.3);
}

.mm-fill-bots-unlimited {
  background:
    linear-gradient(135deg, rgba(233, 89, 89, 0.92), rgba(190, 45, 45, 0.84)),
    rgba(52, 8, 8, 0.26);
}

.mm-fill-bots-unlimited:hover {
  background:
    linear-gradient(135deg, rgba(247, 108, 108, 0.94), rgba(216, 58, 58, 0.86)),
    rgba(70, 10, 10, 0.3);
}

/* Animations */
@keyframes popIn {
  0% {
    transform: scale(0.9);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
@keyframes pulse {
  0% {
    box-shadow:
      0 10px 40px rgba(0, 0, 0, 0.45),
      0 0 0 1px rgba(0, 212, 255, 0.1) inset;
  }
  50% {
    box-shadow:
      0 12px 46px rgba(0, 0, 0, 0.5),
      0 0 0 1px rgba(0, 212, 255, 0.2) inset;
  }
  100% {
    box-shadow:
      0 10px 40px rgba(0, 0, 0, 0.45),
      0 0 0 1px rgba(0, 212, 255, 0.1) inset;
  }
}

.bb-chat-root {
  position: fixed;
  z-index: 10012;
  font-family: "Lato", sans-serif;
  color: #eff8ff;
}

.bb-chat-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  min-height: 48px;
  min-width: 56px;
  padding: 6px 8px 6px;
  border-radius: 0;
  border: 0;
  background: rgba(28, 72, 121, 0.96);
  color: #fff;
  box-shadow:
    0px 5px black,
    0px -5px black,
    5px 0px black,
    -5px 0px black,
    0px 10px #00000038,
    5px 5px #00000038,
    -5px 5px #00000038,
    inset 0px 5px #ffffff36;
  cursor: pointer;
  flex-direction: column;
}

.bb-chat-launcher {
  pointer-events: auto;
}

.bb-chat-launcher-icon {
  width: 22px;
  height: 22px;
  object-fit: contain;
  display: block;
  image-rendering: auto;
}

.bb-chat-launcher-label {
  font-size: 8px;
  line-height: 1;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  font-family: "Press Start 2P", system-ui;
}

.bb-chat-button:hover {
  background: rgba(34, 104, 170, 0.98);
}

.bb-chat-is-suspended .bb-chat-send,
.bb-chat-is-suspended .bb-chat-textarea,
.bb-chat-is-suspended .bb-chat-hover-btn,
.bb-chat-is-suspended .bb-chat-inline-reaction {
  opacity: 0.6;
}

.bb-chat-is-suspended .bb-chat-textarea {
  color: #fca5a5;
  border-color: rgba(239, 68, 68, 0.55);
}

.bb-chat-button .bb-chat-badge,
.bb-chat-launcher .bb-chat-badge {
  position: absolute;
  top: -7px;
  right: -7px;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: 999px;
  background: linear-gradient(180deg, #fb7185, #e11d48);
  color: #fff;
  font-size: 9px;
  line-height: 20px;
  text-align: center;
  border: 1px solid rgba(255, 255, 255, 0.5);
  box-shadow: 0 8px 18px rgba(225, 29, 72, 0.28);
}

.bb-chat-reaction-badge {
  position: absolute;
  left: 50%;
  bottom: -10px;
  transform: translateX(-50%);
  min-width: 20px;
  height: 20px;
  padding: 0 4px;
  border-radius: 0;
  background: rgba(148, 27, 50, 0.96);
  color: #fff;
  font-size: 10px;
  line-height: 20px;
  text-align: center;
  border: 1px solid rgba(255, 255, 255, 0.42);
  box-shadow: 0 5px 0 rgba(87, 17, 31, 0.95);
  pointer-events: none;
}

.bb-chat-reaction-badge img {
  display: block;
}

.bb-chat-shell {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(126, 211, 255, 0.42);
  background: rgba(8, 18, 30, 0.96);
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.45),
    inset 0 0 0 1px rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(8px);
}

.bb-chat-shell.is-idle {
  opacity: 0.32;
}

.bb-chat-shell.is-muted {
  opacity: 0;
  pointer-events: none;
}

.bb-chat-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-bottom: 1px solid rgba(126, 211, 255, 0.16);
  background: rgba(15, 30, 48, 0.98);
}

.bb-chat-title {
  margin: 0;
  font-size: 11px;
  color: #dff3ff;
  letter-spacing: 0.4px;
  font-family: "Press Start 2P", system-ui;
}

.bb-chat-subtitle {
  margin-top: 4px;
  font-size: 10px;
  color: #8fb8d8;
  line-height: 1.35;
}

.bb-chat-header-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}

.bb-chat-mini-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 25px;
  min-height: 25px;
  padding: 0 8px;
  border-radius: 10px;
  border: 1px solid rgba(148, 163, 184, 0.26);
  background: rgba(14, 24, 44, 0.88);
  color: #eff8ff;
  cursor: pointer;
  line-height: 1;
}

.bb-chat-close {
  background: linear-gradient(135deg, #d14b42, #ab2e2e);
  color: #fff;
  font-size: 12px;
  text-transform: uppercase;
  font-family: "Press Start 2P", system-ui;
  border: 0;
  box-shadow:
    0px 5px black,
    0px -5px black,
    5px 0px black,
    -5px 0px black,
    0px 10px #00000038,
    5px 5px #00000038,
    -5px 5px #00000038,
    inset 0px 5px #ffffff36;
  cursor: pointer;
}

.bb-chat-body {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.bb-chat-messages {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px;
  overflow: auto;
  align-content: flex-start;
  scrollbar-width: thin;
  scrollbar-color: rgba(126, 211, 255, 0.72) transparent;
}

.bb-chat-messages::-webkit-scrollbar {
  width: 9px;
}

.bb-chat-messages::-webkit-scrollbar-track {
  background: transparent;
}

.bb-chat-messages::-webkit-scrollbar-thumb {
  border-radius: 999px;
  border: 2px solid transparent;
  background-clip: content-box;
  background-color: rgba(126, 211, 255, 0.7);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
}

.bb-chat-messages::-webkit-scrollbar-thumb:hover {
  background-color: rgba(147, 224, 255, 0.92);
}

.bb-chat-divider {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 2px 0;
  font-size: 9px;
  color: #7dd3fc;
  letter-spacing: 0.4px;
}

.bb-chat-divider::before,
.bb-chat-divider::after {
  content: "";
  height: 1px;
  flex: 1 1 auto;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(125, 211, 252, 0.65),
    transparent
  );
}

.bb-chat-divider span {
  padding: 0 10px;
  font-family: "Press Start 2P", system-ui;
}

.bb-chat-message {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
}

.bb-chat-message.is-self {
  grid-template-columns: minmax(0, 1fr) 34px;
}

.bb-chat-avatar {
  width: 34px;
  height: 34px;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(126, 211, 255, 0.35);
  background: rgba(14, 24, 44, 0.8);
}

.bb-chat-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bb-chat-bubble {
  display: grid;
  gap: 6px;
  padding: 10px 11px 9px;
  border-radius: 14px;
  border: 1px solid rgba(126, 211, 255, 0.14);
  background: rgba(19, 31, 52, 0.94);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.bb-chat-message.is-self .bb-chat-bubble {
  background: rgba(23, 57, 92, 0.95);
  border-color: rgba(125, 189, 255, 0.34);
}

.bb-chat-message-header {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
  font-size: 10px;
  color: #9bd1ff;
}

.bb-chat-author {
  color: #f6fbff;
  font-family: "Press Start 2P", system-ui;
  font-size: 8px;
  line-height: 1.3;
  letter-spacing: 0.1px;
}

.bb-chat-time {
  color: #7fb7df;
  font-family: "Press Start 2P", system-ui;
  font-size: 7px;
  line-height: 1.3;
  letter-spacing: 0.1px;
}

.bb-chat-reply-preview {
  padding: 7px 8px;
  border-radius: 10px;
  border-left: 2px solid rgba(125, 211, 252, 0.75);
  background: rgba(12, 20, 34, 0.72);
  font-size: 8px;
  color: #b8ddf5;
  line-height: 1.45;
}

.bb-chat-reply-preview.is-link {
  cursor: pointer;
}

.bb-chat-reply-preview.is-link:hover {
  border-left-color: rgba(147, 216, 255, 0.95);
}

.bb-chat-body-text {
  font-family: "Lato", sans-serif;
  font-size: 15px;
  line-height: 1.45;
  color: #eff8ff;
  white-space: pre-wrap;
  word-break: break-word;
}

.bb-chat-message-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  position: relative;
  min-height: 24px;
}

.bb-chat-hover-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  opacity: 0;
  pointer-events: none;
  transform: translateY(3px);
  transition:
    opacity 140ms ease,
    transform 140ms ease;
}

.bb-chat-message:hover .bb-chat-hover-actions,
.bb-chat-message:focus-within .bb-chat-hover-actions {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.bb-chat-hover-reactions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
}

.bb-chat-inline-reactions {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
  margin-left: auto;
  margin-right: 52px;
}

.bb-chat-inline-reaction {
  position: relative;
  min-height: 20px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid rgba(125, 211, 252, 0.35);
  background: rgba(18, 38, 60, 0.9);
  color: #eff8ff;
  font-size: 10px;
  cursor: pointer;
}

.bb-chat-inline-reaction:hover,
.bb-chat-inline-reaction:focus-visible {
  border-color: rgba(170, 227, 255, 0.95);
  background: rgba(34, 82, 131, 0.95);
}

.bb-chat-inline-reaction[data-tooltip]:hover::after,
.bb-chat-inline-reaction[data-tooltip]:focus-visible::after {
  content: attr(data-tooltip);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 8px);
  transform: translateX(-50%);
  white-space: pre-line;
  font-size: 10px;
  line-height: 1.35;
  color: #f0f8ff;
  background: rgba(8, 14, 24, 0.96);
  border: 1px solid rgba(126, 211, 255, 0.35);
  border-radius: 8px;
  padding: 6px 8px;
  min-width: 110px;
  z-index: 2;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.35);
}

.bb-chat-inline-reaction.is-active {
  border-color: rgba(125, 211, 252, 0.95);
  background: rgba(33, 76, 122, 0.95);
}

.bb-chat-inline-reaction.is-pop {
  animation: bb-reaction-pop 260ms ease;
}

@keyframes bb-reaction-pop {
  0% {
    transform: scale(0.76);
    opacity: 0.75;
  }
  60% {
    transform: scale(1.12);
    opacity: 1;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

.bb-chat-hover-btn {
  min-height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid rgba(125, 211, 252, 0.22);
  background: rgba(9, 18, 30, 0.88);
  color: #eff8ff;
  font-size: 10px;
  cursor: pointer;
}

.bb-chat-hover-btn:hover,
.bb-chat-hover-btn:focus-visible {
  border-color: rgba(170, 227, 255, 0.95);
  background: rgba(34, 82, 131, 0.95);
}

.bb-chat-hover-btn.is-active {
  border-color: rgba(125, 211, 252, 0.9);
  background: rgba(28, 68, 111, 0.96);
}

.bb-chat-view-count {
  position: absolute;
  right: 0;
  bottom: 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 18px;
  padding: 0 4px;
  border: 0;
  background: transparent;
  color: #86a8c4;
  font-size: 10px;
  cursor: pointer;
}

.bb-chat-view-count:hover,
.bb-chat-view-count:focus-visible {
  color: #ffffff;
}

.bb-chat-view-count.is-read {
  color: #5bb2ff;
}

.bb-chat-message-target .bb-chat-bubble {
  box-shadow:
    0 0 0 2px rgba(125, 211, 252, 0.9),
    inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.bb-chat-viewers-popup {
  position: fixed;
  inset: 0;
  z-index: 10030;
}

.bb-chat-viewers-popup.hidden {
  display: none;
}

.bb-chat-viewers-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.38);
}

.bb-chat-viewers-card {
  position: absolute;
  width: min(280px, calc(100vw - 20px));
  max-height: min(240px, 46vh);
  overflow: auto;
  border-radius: 10px;
  border: 1px solid rgba(126, 211, 255, 0.5);
  background: rgba(9, 22, 36, 0.98);
  box-shadow: 0 16px 30px rgba(0, 0, 0, 0.42);
  opacity: 0;
  transform: translateY(-4px) scale(0.96);
  transition:
    opacity 140ms ease,
    transform 140ms ease;
}

.bb-chat-viewers-card.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.bb-chat-viewers-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 10px;
  border-bottom: 1px solid rgba(126, 211, 255, 0.16);
}

.bb-chat-viewers-title {
  font-size: 10px;
  color: #dff3ff;
  font-family: "Press Start 2P", system-ui;
}

.bb-chat-viewers-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px;
}

.bb-chat-viewers-empty {
  font-size: 10px;
  color: #9dbdd8;
  padding: 8px 4px;
}

.bb-chat-viewer-row {
  display: grid;
  grid-template-columns: 28px 1fr auto;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  border-radius: 10px;
  background: rgba(12, 20, 34, 0.74);
  border: 1px solid rgba(126, 211, 255, 0.12);
}

.bb-chat-viewer-avatar {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid rgba(126, 211, 255, 0.35);
}

.bb-chat-viewer-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bb-chat-viewer-name {
  font-size: 11px;
  color: #e6f5ff;
}

.bb-chat-viewer-time {
  font-size: 9px;
  color: #8fb8d8;
}

.bb-chat-composer {
  position: relative;
  padding: 10px;
  border-top: 1px solid rgba(126, 211, 255, 0.16);
  display: grid;
  gap: 8px;
  background: rgba(6, 14, 24, 0.96);
}

.bb-chat-reply-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 0;
  background: rgba(15, 30, 48, 0.98);
  border: 1px solid rgba(125, 189, 255, 0.22);
  font-size: 10px;
  color: #cbeaff;
}

.bb-chat-input-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: end;
}

.bb-chat-typing {
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: calc(100% + 6px);
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 22px;
  pointer-events: none;
}

.bb-chat-typing.hidden {
  display: none;
}

.bb-chat-typing-icons {
  display: flex;
  align-items: center;
  min-width: 18px;
}

.bb-chat-typing-icon {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid rgba(197, 227, 255, 0.6);
  background: rgba(14, 25, 46, 0.95);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.24);
}

.bb-chat-typing-icon + .bb-chat-typing-icon {
  margin-left: -7px;
}

.bb-chat-typing-icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bb-chat-typing-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.bb-chat-typing-text {
  font-size: 10px;
  color: #8fc4f4;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.bb-chat-typing-dots {
  width: 18px;
  height: 12px;
  object-fit: contain;
  opacity: 0.9;
}

.bb-chat-textarea {
  width: 100%;
  min-height: 35px;
  max-height: 120px;
  resize: none;
  box-sizing: border-box;
  border-radius: 0;
  border: none;
  background: rgba(0, 0, 0, 0.22);
  color: #e5edf7;
  padding: 3px 8px;
  font-family: "Lato", sans-serif;
  font-size: 15px;
  box-shadow:
    0px 5px black,
    0px -5px black,
    5px 0px black,
    -5px 0px black,
    inset 0px 5px #00000038;
}

.bb-chat-textarea:focus {
  outline: none;
  background: rgba(0, 0, 0, 0.34);
}

.bb-chat-send {
  min-width: 94px;
  min-height: 40px;
  border-radius: 0;
  border: 0;
  background: #3f86da;
  color: #fff;
  cursor: pointer;
  font-family: "Press Start 2P", system-ui;
  font-size: 10px;
  letter-spacing: 0.2px;
  box-shadow:
    0px 5px black,
    0px -5px black,
    5px 0px black,
    -5px 0px black,
    0px 10px #00000038,
    5px 5px #00000038,
    -5px 5px #00000038,
    inset 0px 5px #ffffff36;
}

.bb-chat-send:hover {
  background: #2f73bb;
}

.bb-chat-send:active {
  transform: translateY(5px);
  box-shadow:
    0px 5px black,
    0px -5px black,
    5px 0px black,
    -5px 0px black,
    inset 0px 5px #00000038;
}

.bb-chat-drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.38);
  opacity: 0;
  pointer-events: none;
  transition: opacity 200ms ease;
}

.bb-chat-drawer-backdrop.is-visible {
  opacity: 1;
  pointer-events: auto;
}

.bb-chat-lobby-wrap {
  top: 0;
  right: 0;
  width: min(420px, 100vw);
  height: 100dvh;
  pointer-events: none;
}

.bb-chat-lobby-launcher {
  position: fixed;
  top: 50%;
  right: 14px;
  transform: translateY(-50%);
  pointer-events: auto;
  width: 58px;
  min-height: 56px;
}

.bb-chat-lobby-panel {
  position: absolute;
  top: 0;
  right: 0;
  width: min(390px, calc(100vw - 18px));
  height: 100dvh;
  border-radius: 13px 0 0 13px;
  transform: translateX(100%);
  transition: transform 240ms cubic-bezier(0.22, 0.9, 0.32, 1);
  pointer-events: auto;
  overflow: hidden;
}

.bb-chat-lobby-panel.is-open {
  transform: translateX(0);
}

.bb-chat-lobby-panel .bb-chat-body {
  flex: 1 1 auto;
  min-height: 0;
}

.bb-chat-lobby-panel .bb-chat-messages {
  flex: 1 1 auto;
  max-height: none;
}

.bb-lobby-chat-bubble {
  position: absolute;
  left: 50%;
  top: -70px;
  transform: translateX(-50%) translateY(4px);
  max-width: 152px;
  padding: 4px 8px;
  border: 2px dashed rgba(250, 250, 250, 0.7);
  background: rgba(10, 22, 37, 0.92);
  border-radius: 10px;
  color: #f3fbff;
  font-size: min(2vw, 14px);
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  pointer-events: none;
  z-index: 58;
  opacity: 0;
  transition:
    opacity 140ms ease,
    transform 140ms ease;
}

.bb-lobby-chat-bubble::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -5px;
  width: 8px;
  height: 8px;
  background: rgba(10, 22, 37, 0.92);
  border-right: 1px solid rgba(205, 233, 255, 0.7);
  border-bottom: 1px solid rgba(205, 233, 255, 0.7);
  transform: translateX(-50%) rotate(45deg);
}

.bb-lobby-chat-bubble.is-visible {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.bb-chat-game-wrap {
  top: 72px;
  left: 114px;
  width: min(360px, calc(100vw - 28px));
  pointer-events: none;
}

.bb-chat-game-launcher {
  position: absolute;
  top: 12px;
  left: 122px;
  min-height: 40px;
  min-width: 44px;
  z-index: 10013;
  pointer-events: auto;
}

.bb-chat-game-panel {
  width: 100%;
  height: min(246px, 28vh);
  max-height: min(246px, 28vh);
  border-radius: 12px;
  opacity: 0.6;
  transition:
    opacity 220ms ease,
    transform 220ms ease;
  pointer-events: auto;
}

.bb-chat-game-panel.is-open {
  pointer-events: auto;
}

.bb-chat-game-panel.is-idle {
  opacity: 0.6;
}

.bb-chat-game-panel.is-active {
  opacity: 0.9;
}

.bb-chat-game-panel.is-notice {
  opacity: 0.7;
}

.bb-chat-game-panel.is-muted {
  opacity: 0;
  transform: translateY(-10px);
  pointer-events: none;
}

.bb-chat-game-panel .bb-chat-messages {
  max-height: none;
}

.bb-chat-game-panel .bb-chat-composer {
  padding: 6px;
}

.bb-chat-game-panel .bb-chat-header {
  padding: 6px 8px;
  min-height: 28px;
}

.bb-chat-game-panel .bb-chat-textarea {
  min-height: 28px;
  max-height: 44px;
  padding: 6px 8px;
  font-size: 10px;
}

.bb-chat-game-panel .bb-chat-send {
  min-width: 48px;
  min-height: 28px;
  padding: 0 8px;
  font-size: 8px;
}

.bb-chat-game-panel .bb-chat-title {
  font-size: 7px;
}

.bb-chat-game-panel .bb-chat-subtitle {
  display: none;
}

.bb-chat-game-panel .bb-chat-message {
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 7px;
}

.bb-chat-game-panel .bb-chat-message.is-self {
  grid-template-columns: minmax(0, 1fr) 26px;
}

.bb-chat-game-panel .bb-chat-audience-select {
  min-height: 22px;
  border: 1px solid rgba(125, 189, 255, 0.55);
  background: rgba(12, 22, 38, 0.92);
  color: #d9eeff;
  font-family: "Press Start 2P", system-ui;
  font-size: 7px;
  padding: 0 6px;
}

.bb-chat-game-panel .bb-chat-body {
  gap: 0;
  flex: 1 1 auto;
  min-height: 0;
}

.bb-chat-game-panel .bb-chat-messages {
  gap: 3px;
  padding: 7px 8px;
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}

.bb-chat-game-line {
  display: flex;
  align-items: baseline;
  gap: 5px;
  font-size: 10px;
  line-height: 1.2;
  color: #e5f2ff;
}

.bb-chat-game-line.is-team-blue {
  color: #d8ecff;
}

.bb-chat-game-line.is-team-red {
  color: #ffd9dc;
}

.bb-chat-game-line-name {
  font-family: "Press Start 2P", system-ui;
  font-size: 6px;
  color: #9bd1ff;
  white-space: nowrap;
  flex: 0 0 auto;
}

.bb-chat-game-line.is-team-red .bb-chat-game-line-name {
  color: #ff8f9a;
}

.bb-chat-game-line.is-team-blue .bb-chat-game-line-name {
  color: #83c3ff;
}

.bb-chat-game-line-body {
  font-family: "Lato", sans-serif;
  font-size: 10px;
  color: #eff8ff;
  white-space: pre-wrap;
  word-break: break-word;
  flex: 1 1 auto;
}

.bb-chat-game-line.is-team-red .bb-chat-game-line-body {
  color: #ffd6dc;
}

.bb-chat-game-line.is-team-blue .bb-chat-game-line-body {
  color: #e7f4ff;
}

.bb-chat-game-line.is-self .bb-chat-game-line-name {
  color: #bfe0ff;
}

.bb-chat-game-panel .bb-chat-avatar {
  width: 26px;
  height: 26px;
  border-radius: 9px;
}

.bb-chat-game-panel .bb-chat-bubble {
  padding: 7px 8px 6px;
  gap: 4px;
}

.bb-chat-game-panel .bb-chat-message-header {
  gap: 5px;
  font-size: 8px;
}

.bb-chat-game-panel .bb-chat-author {
  font-size: 6px;
}

.bb-chat-game-panel .bb-chat-time {
  font-size: 6px;
}

.bb-chat-game-panel .bb-chat-body-text {
  font-size: 11px;
  line-height: 1.28;
}

.bb-chat-game-panel .bb-chat-hover-btn,
.bb-chat-game-panel .bb-chat-inline-reaction {
  font-size: 8px;
}

.bb-chat-game-panel .bb-chat-reply-preview,
.bb-chat-game-panel .bb-chat-view-count {
  font-size: 7px;
}

@media (max-width: 768px) {
  .bb-chat-lobby-panel {
    width: min(360px, calc(100vw - 12px));
  }

  .bb-chat-game-wrap {
    top: 64px;
    left: 110px;
    width: min(320px, calc(100vw - 20px));
  }

  .bb-chat-game-launcher {
    top: 10px;
    left: 114px;
    min-height: 38px;
    min-width: 42px;
  }
}

@media (max-width: 480px) {
  .bb-chat-lobby-launcher {
    right: 8px;
  }

  .bb-chat-lobby-panel {
    width: min(100vw, 100vw);
  }

  .bb-lobby-chat-bubble {
    max-width: 126px;
    top: -48px;
    font-size: 9px;
  }

  .bb-chat-game-wrap {
    top: 58px;
    left: 80px;
    width: min(300px, calc(100vw - 16px));
  }

  .bb-chat-game-launcher {
    top: 8px;
    left: 90px;
    min-height: 36px;
    min-width: 40px;
  }
}

@font-face {
  font-family: "Press Start 2P";
  src: url("/assets/PressStart2P.woff2") format("woff2");
  font-display: swap;
}

body.profile-page-body {
  margin: 0;
  background: radial-gradient(circle at 20% 20%, #223f7c, #0b1630 60%);
  color: #e7f2ff;
}

.profile-page {
  min-height: 100vh;
  padding: 20px;
}

.profile-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.profile-header h1 {
  margin: 0;
  font-family: "Press Start 2P", Lato, sans-serif;
  font-size: clamp(16px, 2vw, 24px);
}

.profile-grid {
  margin-top: 18px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.profile-card {
  background: rgba(13, 28, 61, 0.75);
  border: 2px solid rgba(156, 201, 255, 0.5);
  border-radius: 14px;
  padding: 16px;
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.34);
}

.profile-card h2,
.profile-card h3 {
  margin-top: 0;
}

.profile-icon-row {
  display: flex;
  justify-content: center;
  margin: 10px 0 16px;
}

.profile-icon-trigger {
  position: relative;
  border: 2px solid rgba(157, 195, 249, 0.6);
  background: rgba(5, 14, 30, 0.9);
  border-radius: 16px;
  width: 108px;
  height: 108px;
  padding: 6px;
  cursor: pointer;
  transition:
    transform 0.16s ease,
    box-shadow 0.16s ease;
}

.profile-icon-trigger:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 18px rgba(0, 0, 0, 0.35);
}

.profile-icon-trigger img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 12px;
  display: block;
}

.profile-icon-edit-badge {
  position: absolute;
  right: -4px;
  bottom: -4px;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.profile-icon-edit-badge img {
  width: 15px;
  height: 15px;
  object-fit: contain;
}

.stat-row {
  display: flex;
  justify-content: space-between;
  margin-bottom: 8px;
}

.actions-row {
  margin-top: 14px;
}

.profile-btn {
  border: 0;
  border-radius: 10px;
  padding: 10px 14px;
  font-weight: 600;
  color: #f8fbff;
  background: linear-gradient(180deg, #3f78d3, #2c4e92);
  cursor: pointer;
}

.profile-btn.primary {
  background: linear-gradient(180deg, #4fb058, #2f8640);
}

.profile-form {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 14px;
}

.profile-form input {
  border: 1px solid rgba(192, 220, 255, 0.45);
  border-radius: 8px;
  background: rgba(9, 20, 41, 0.76);
  color: #f2f8ff;
  padding: 9px 10px;
}

.account-message {
  min-height: 20px;
  margin: 0;
  color: #bfe2ff;
}

.cards-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
}

.cards-modal.hidden {
  display: none;
}

.cards-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(3, 8, 19, 0.72);
}

.cards-modal-panel {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(1000px, 94vw);
  max-height: 88vh;
  overflow: auto;
  background: linear-gradient(180deg, #17356a, #102649);
  border: 2px solid rgba(139, 191, 252, 0.6);
  border-radius: 14px;
  padding: 14px;
}

.cards-modal-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
  margin-top: 12px;
}

.card-tile {
  background: rgba(6, 16, 32, 0.72);
  border: 1px solid rgba(157, 195, 249, 0.4);
  border-radius: 10px;
  padding: 8px;
}

.card-tile img {
  width: 100%;
  aspect-ratio: 650 / 1250;
  object-fit: contain;
  display: block;
}

.icon-tile img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 10px;
}

.card-meta {
  display: grid;
  gap: 4px;
  margin-top: 8px;
}

.card-actions {
  margin-top: 8px;
  display: flex;
  justify-content: space-between;
}

.profile-card-rarity {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  border-radius: 999px;
  padding: 2px 8px;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.25);
}

.profile-card-rarity.common {
  background: rgba(107, 114, 128, 0.72);
}

.profile-card-rarity.rare {
  background: rgba(37, 99, 235, 0.82);
}

.profile-card-rarity.epic {
  background: rgba(126, 34, 206, 0.82);
}

.profile-card-rarity.legendary {
  background: rgba(217, 119, 6, 0.85);
}

.profile-card-tile.rare,
.profile-card-tile.epic,
.profile-card-tile.legendary,
.card-tile.rare,
.card-tile.epic,
.card-tile.legendary {
  position: relative;
  overflow: hidden;
}

.profile-card-tile.rare::before,
.profile-card-tile.epic::before,
.profile-card-tile.legendary::before,
.card-tile.rare::before,
.card-tile.epic::before,
.card-tile.legendary::before {
  content: "";
  position: absolute;
  top: -120%;
  left: -40%;
  width: 30%;
  height: 320%;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0),
    rgba(255, 255, 255, 0.42),
    rgba(255, 255, 255, 0)
  );
  transform: rotate(20deg);
  animation: cardGlimmer 2.8s linear infinite;
  pointer-events: none;
}

@keyframes cardGlimmer {
  0% {
    transform: translateX(-170%) rotate(20deg);
  }
  100% {
    transform: translateX(420%) rotate(20deg);
  }
}

.profile-cost {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.profile-cost img {
  width: 13px;
  height: 13px;
  object-fit: contain;
}

@media (max-width: 900px) {
  .profile-grid {
    grid-template-columns: 1fr;
  }
}

.cs-confirm-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 12050;
}

.cs-confirm {
  width: 90%;
  max-width: 420px;
  background: #1f2937;
  color: #f3f4f6;
  padding: 16px 18px;
}

.cs-confirm-title {
  font-weight: 800;
  font-size: 18px;
  margin-bottom: 8px;
}

.cs-confirm-body p {
  margin: 6px 0;
  font-size: 14px;
  color: #e5e7eb;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.cs-confirm-actions {
  margin-top: 14px;
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}

.cs-btn {
  padding: 8px 14px;
  font-weight: 700;
  border: none;
  cursor: pointer;
}

.cs-btn.cancel {
  background: #374151;
  color: #e5e7eb;
}

.cs-btn.cancel:hover {
  filter: brightness(1.05);
}

.cs-btn.confirm {
  background: linear-gradient(145deg, #4a9eff, #3182ce);
  color: #fff;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.cs-btn.confirm:hover {
  filter: brightness(1.06);
}

.cs-currency {
  width: 18px;
  height: 18px;
  object-fit: contain;
  display: inline-block;
  vertical-align: middle;
}

/* Container: stack top-center with gap */
.sonner-wrap {
  position: fixed;
  top: 12px;
  left: 0;
  right: 0;
  display: flex;
  flex-direction: column; /* stack vertically */
  align-items: center; /* center horizontally */
  gap: 10px; /* space between toasts */
  pointer-events: none;
  z-index: 9999;
}

/* Toast card */
.sonner {
  pointer-events: auto;
  max-width: 500px; /* a bit wider so inline layout breathes */
  width: calc(100% - 24px);
  box-sizing: border-box;
  background: #22202e;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
  overflow: hidden;
  opacity: 0;
  transform: translateY(-16px); /* enter from top */
  transition:
    transform 0.28s ease,
    opacity 0.28s ease;
  will-change: transform, opacity;
  font-family: "Lato", sans-serif;

  /* Inline layout: content + actions in one row */
  display: grid;
  grid-template-columns: 1fr auto; /* text takes remaining space, button fits */
  grid-auto-rows: auto;
}

/* Entered state */
.sonner.show {
  opacity: 1;
  transform: translateY(0);
}

/* Inline content area */
.sonner__content {
  padding: 12px 12px 10px 14px;
  min-width: 0; /* allow text to wrap instead of overflowing */
}

.sonner__hdr {
  font-weight: 700;
  line-height: 1.1;
  margin-top: 3px;
  font-size: 15px;
  word-break: break-word;
}

.sonner__msg {
  margin: 4px 0 0 0;
  line-height: 1.35;
  font-size: 13px;
  word-break: break-word;
  white-space: pre-wrap;
}

/* Actions: inline with text, same row, aligned center */
.sonner__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding: 8px 12px 8px 8px;
}

.sonner__btn {
  appearance: none;
  border: 0;
  border-radius: 10px;
  background: #fff;
  color: #111;
  padding: 8px 12px;
  font-weight: 600;
  font-size: 13px;
  cursor: pointer;
}
.sonner__btn:hover {
  filter: brightness(0.95);
}

/* Progress bar spans full width on its own row */
.sonner__progress {
  grid-column: 1 / -1;
  height: 3px;
  background: linear-gradient(to right, #18a0fb, #53f);
  width: 100%;
}
.sonner__progress.anim {
  animation: sonnerBar var(--sonner-duration, 5s) linear forwards;
}
@keyframes sonnerBar {
  from {
    width: 100%;
  }
  to {
    width: 0;
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .sonner {
    transition: none;
  }
  .sonner__progress.anim {
    animation: none;
  }
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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QkFBZ0I7RUFDaEIsZUFBZTtFQUNmLGVBQWU7RUFDZixzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZixzQkFBc0I7RUFDdEIscUJBQXFCO0FBQ3ZCOztBQUVBLHdEQUF3RDtBQUN4RDtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIseUJBQXlCO0VBQ3pCLFFBQVE7RUFDUix5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsU0FBUztFQUNULG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsV0FBVztFQUNYLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsZUFBZTtFQUNmLGVBQWU7QUFDakI7QUFDQTtFQUNFLHdCQUF3QjtBQUMxQjs7QUFFQSxpREFBaUQ7QUFDakQ7RUFDRSxtQkFBbUI7RUFDbkIsV0FBVztFQUNYLG9EQUFvRDtFQUNwRCxXQUFXO0FBQ2I7QUFDQTtFQUNFLCtEQUErRDtBQUNqRTtBQUNBO0VBQ0U7SUFDRSxXQUFXO0VBQ2I7RUFDQTtJQUNFLFFBQVE7RUFDVjtBQUNGOztBQUVBLG1CQUFtQjtBQUNuQjtFQUNFO0lBQ0UsZ0JBQWdCO0VBQ2xCO0VBQ0E7SUFDRSxlQUFlO0VBQ2pCO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9hcGNzcC1jcmVhdGUtcHJvamVjdC0tLWZpbmFsLy4vc3JjL3N0eWxlcy9jaGFyYWN0ZXJTZWxlY3QuY3NzIiwid2VicGFjazovL2FwY3NwLWNyZWF0ZS1wcm9qZWN0LS0tZmluYWwvLi9zcmMvc3R5bGVzL2luZGV4LmNzcyIsIndlYnBhY2s6Ly9hcGNzcC1jcmVhdGUtcHJvamVjdC0tLWZpbmFsLy4vc3JjL3N0eWxlcy9jaGF0LmNzcyIsIndlYnBhY2s6Ly9hcGNzcC1jcmVhdGUtcHJvamVjdC0tLWZpbmFsLy4vc3JjL3N0eWxlcy9wcm9maWxlLmNzcyIsIndlYnBhY2s6Ly9hcGNzcC1jcmVhdGUtcHJvamVjdC0tLWZpbmFsLy4vc3JjL3N0eWxlcy9zZWxlY3Rpb25Qb3B1cC5jc3MiLCJ3ZWJwYWNrOi8vYXBjc3AtY3JlYXRlLXByb2plY3QtLS1maW5hbC8uL3NyYy9zdHlsZXMvc29ubmVyLmNzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIuY2hhcmFjdGVyLXNlbGVjdC1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTAsIDEyLCAyMCwgMC42KTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDNweCk7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB6LWluZGV4OiAxMDAwO1xufVxuXG4uY2hhcmFjdGVyLXNlbGVjdC1wb3B1cCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsICMxZTFlMmUsICMyNjI2M2EpO1xuICBib3JkZXI6IDNweCBzb2xpZCByZ2JhKDc0LCA4NSwgMTA0LCAwLjg1KTtcbiAgYm94LXNoYWRvdzpcbiAgICAwcHggNXB4IGJsYWNrLFxuICAgIDBweCAtNXB4IGJsYWNrLFxuICAgIDVweCAwcHggYmxhY2ssXG4gICAgLTVweCAwcHggYmxhY2ssXG4gICAgMHB4IDEwcHggIzAwMDAwMDM4LFxuICAgIDVweCA1cHggIzAwMDAwMDM4LFxuICAgIC01cHggNXB4ICMwMDAwMDAzOCxcbiAgICBpbnNldCAwcHggNXB4ICNmZmZmZmYzNjtcbiAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgd2lkdGg6IG1pbigxMTgwcHgsIDk0dncpO1xuICBtYXgtd2lkdGg6IDExODBweDtcbiAgaGVpZ2h0OiBtaW4oODh2aCwgOTIwcHgpO1xuICBtYXgtaGVpZ2h0OiA4OHZoO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDAgMzBweCAzMHB4O1xuICBjb2xvcjogI2UyZThmMDtcbiAgei1pbmRleDogMTsgLyogYWJvdmUgcGFydGljbGVzIGNhbnZhcyAqL1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY2hhcmFjdGVyLXNlbGVjdC1wb3B1cDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDY2cHg7XG4gIGJhY2tncm91bmQ6XG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDc0LCAxNTgsIDI1NSwgMC45MiksIHJnYmEoMTA3LCA3MCwgMTkzLCAwLjkpKSxcbiAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgOTBkZWcsXG4gICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIDAsXG4gICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpIDJweCxcbiAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMnB4LFxuICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSA4cHhcbiAgICApO1xuICB6LWluZGV4OiAtMTtcbiAgYm9yZGVyLXJhZGl1czogMTRweCAxNHB4IDAgMDtcbn1cblxuLnBvcHVwLWhlYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXg6IDAgMCA2NnB4O1xuICBtaW4taGVpZ2h0OiA2NnB4O1xuICBtYXJnaW46IDAgLTMwcHggMThweCAtMzBweDtcbiAgcGFkZGluZzogMCA3MnB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KTtcbn1cblxuLnBvcHVwLXRpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IGNsYW1wKDIwcHgsIDJ2dywgMjhweCk7XG4gIGZvbnQtZmFtaWx5OiBcIlByZXNzIFN0YXJ0IDJQXCIsIFwiTGF0b1wiLCBzYW5zLXNlcmlmO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgdGV4dC1zaGFkb3c6XG4gICAgMCAycHggMCByZ2JhKDExLCAyNCwgNTIsIDAuOSksXG4gICAgMCA2cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuNDUpO1xufVxuXG4uY2xvc2UtcG9wdXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTRweDtcbiAgcmlnaHQ6IDE2cHg7XG4gIHBhZGRpbmc6IDAgMTRweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2QxNGI0MiwgI2FiMmUyZSk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBmb250LXdlaWdodDogODAwO1xuICB3aWR0aDogMzhweDtcbiAgaGVpZ2h0OiAzOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmNsb3NlLXBvcHVwLnByb2ZpbGUtY2xvc2Uge1xuICB3aWR0aDogYXV0bztcbiAgbWluLXdpZHRoOiA5OHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmc6IDAgMTRweDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LWZhbWlseTogXCJQcmVzcyBTdGFydCAyUFwiLCBcIkxhdG9cIiwgc2Fucy1zZXJpZjtcbn1cblxuLmNsb3NlLXBvcHVwOmhvdmVyIHtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDEuMDYpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi5jbG9zZS1wb3B1cDphY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMnB4KTtcbiAgYm94LXNoYWRvdzogMCAycHggMCAjN2IxZjFmO1xufVxuXG4vKiBGaWdodGVyIGNhcmQgZ3JpZCAqL1xuLmNoYXJhY3RlcnMtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzAwcHgsIDFmcikpO1xuICBwYWRkaW5nOiAxMHB4O1xuICBnYXA6IDIwcHg7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gODBweCk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIGFsaWduLWNvbnRlbnQ6IHN0YXJ0O1xufVxuXG4vKiBGaWdodGVyIGNhcmRzOiBlcXVhbCBzaXplIHdpdGggbGFyZ2VyIHNjYWxlICovXG4uY2hhcmFjdGVyLWNhcmQge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTgwZGVnLFxuICAgIHJnYmEoOCwgMTcsIDM0LCAwLjk0KSxcbiAgICByZ2JhKDQsIDEyLCAyOCwgMC45OClcbiAgKTtcbiAgYm9yZGVyOiAwO1xuICBib3gtc2hhZG93OlxuICAgIDBweCA1cHggYmxhY2ssXG4gICAgMHB4IC01cHggYmxhY2ssXG4gICAgNXB4IDBweCBibGFjayxcbiAgICAtNXB4IDBweCBibGFjayxcbiAgICAwcHggMTBweCAjMDAwMDAwMzgsXG4gICAgNXB4IDVweCAjMDAwMDAwMzgsXG4gICAgLTVweCA1cHggIzAwMDAwMDM4LFxuICAgIGluc2V0IDBweCA1cHggI2ZmZmZmZjFmO1xuICBwYWRkaW5nOiAxNHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEyMHB4IDFmcjtcbiAgZ2FwOiAxNHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWluLWhlaWdodDogMTg2cHg7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLmNoYXJhY3Rlci1jYXJkOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICBib3gtc2hhZG93OlxuICAgIDBweCA1cHggYmxhY2ssXG4gICAgMHB4IC01cHggYmxhY2ssXG4gICAgNXB4IDBweCBibGFjayxcbiAgICAtNXB4IDBweCBibGFjayxcbiAgICAwcHggMTBweCAjMDAwMDAwMzgsXG4gICAgNXB4IDVweCAjMDAwMDAwMzgsXG4gICAgLTVweCA1cHggIzAwMDAwMDM4LFxuICAgIDAgMCAwIDJweCByZ2JhKDEyNiwgMTk0LCAyNTUsIDAuMjIpIGluc2V0O1xufVxuXG4uY2hhcmFjdGVyLWNhcmQ6YWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDNweCk7XG4gIGJveC1zaGFkb3c6XG4gICAgMHB4IDVweCBibGFjayxcbiAgICAwcHggLTVweCBibGFjayxcbiAgICA1cHggMHB4IGJsYWNrLFxuICAgIC01cHggMHB4IGJsYWNrLFxuICAgIGluc2V0IDBweCA1cHggIzAwMDAwMDM4O1xufVxuXG4uY2hhcmFjdGVyLWNhcmQuc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTgwZGVnLFxuICAgIHJnYmEoMjQsIDQ0LCA3OCwgMC45OCksXG4gICAgcmdiYSgxMywgMzAsIDYwLCAwLjk4KVxuICApO1xuICBib3gtc2hhZG93OlxuICAgIDBweCA1cHggYmxhY2ssXG4gICAgMHB4IC01cHggYmxhY2ssXG4gICAgNXB4IDBweCBibGFjayxcbiAgICAtNXB4IDBweCBibGFjayxcbiAgICAwcHggMTBweCAjMDAwMDAwMzgsXG4gICAgNXB4IDVweCAjMDAwMDAwMzgsXG4gICAgLTVweCA1cHggIzAwMDAwMDM4LFxuICAgIGluc2V0IDAgMCAxOHB4IHJnYmEoMTg2LCAyMTksIDI1NSwgMC4zNCksXG4gICAgaW5zZXQgMCA1cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xufVxuXG4uY2hhcmFjdGVyLWNhcmQuc2VsZWN0ZWQ6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMnB4O1xuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoXG4gICAgY2lyY2xlIGF0IDUyJSA0NCUsXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE0KSAwJSxcbiAgICByZ2JhKDE4NiwgMjE5LCAyNTUsIDAuMTIpIDI4JSxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDY4JVxuICApO1xuICBtaXgtYmxlbmQtbW9kZTogc2NyZWVuO1xuICBvcGFjaXR5OiAwLjg7XG59XG5cbi5jaGFyYWN0ZXItY2FyZC5pcy1tYXhlZCB7XG4gIGJveC1zaGFkb3c6XG4gICAgMHB4IDVweCBibGFjayxcbiAgICAwcHggLTVweCBibGFjayxcbiAgICA1cHggMHB4IGJsYWNrLFxuICAgIC01cHggMHB4IGJsYWNrLFxuICAgIDBweCAxMHB4ICMwMDAwMDAzOCxcbiAgICA1cHggNXB4ICMwMDAwMDAzOCxcbiAgICAtNXB4IDVweCAjMDAwMDAwMzg7XG59XG5cbi5jaGFyYWN0ZXItY2FyZC5pcy1tYXhlZDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxMjVkZWcsXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAyMCUsXG4gICAgcmdiYSgyNTAsIDIwNCwgMjEsIDAuMTIpIDQ1JSxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpIDUyJSxcbiAgICByZ2JhKDI1MCwgMjA0LCAyMSwgMC4xMikgNjAlLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgODAlXG4gICk7XG4gIGJhY2tncm91bmQtc2l6ZTogMjQwJSAyNDAlO1xuICBhbmltYXRpb246IG1heGVkQ2FyZEdsaW1tZXIgMi44cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgbWl4LWJsZW5kLW1vZGU6IHNjcmVlbjtcbiAgb3BhY2l0eTogMC40Njtcbn1cblxuQGtleWZyYW1lcyBtYXhlZENhcmRHbGltbWVyIHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDglO1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgfVxuICA1MCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgb3BhY2l0eTogMC42O1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgOTIlO1xuICAgIG9wYWNpdHk6IDAuNDtcbiAgfVxufVxuXG4uY2hhcmFjdGVyLWNhcmQubG9ja2VkIHtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDAuODUpO1xufVxuXG4uY2hhcmFjdGVyLWNhcmQuaXMtdXBncmFkZS1yZWFkeSB7XG4gIGJveC1zaGFkb3c6XG4gICAgMHB4IDVweCBibGFjayxcbiAgICAwcHggLTVweCBibGFjayxcbiAgICA1cHggMHB4IGJsYWNrLFxuICAgIC01cHggMHB4IGJsYWNrLFxuICAgIDBweCAxMHB4ICMwMDAwMDAzOCxcbiAgICA1cHggNXB4ICMwMDAwMDAzOCxcbiAgICAtNXB4IDVweCAjMDAwMDAwMzgsXG4gICAgaW5zZXQgMHB4IDVweCAjZmZmZmZmMWY7XG59XG5cbi8qIEltYWdlIHdyYXBwZXIgLSBwcm9maWxlIGljb24gKi9cbi5jaGFyYWN0ZXItY2FyZC1pbWFnZS13cmFwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTIwcHg7XG4gIGhlaWdodDogMTIwcHg7XG4gIGZsZXg6IDAgMCAxMjBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBnYXA6IDRweDtcbn1cblxuLmNoYXJhY3Rlci1wcm9maWxlLWljb24ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm9yZGVyOiAwO1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xuICBjbGlwLXBhdGg6IGluc2V0KDFweCByb3VuZCAxMHB4KTtcbn1cblxuLmNoYXJhY3Rlci1jYXJkLWxldmVsLWljb24ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNHB4O1xuICBsZWZ0OiA0cHg7XG4gIHdpZHRoOiA0NXB4O1xuICBoZWlnaHQ6IDQ1cHg7XG4gIHotaW5kZXg6IDQwO1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuNTUpKVxuICAgIGRyb3Atc2hhZG93KDAgMCA2cHggcmdiYSgyNTUsIDI0NSwgMjAwLCAwLjUyKSk7XG4gIGFuaW1hdGlvbjogbGV2ZWxJY29uR2xvd1B1bHNlIDIuMjVzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSBpbmZpbml0ZVxuICAgIGFsdGVybmF0ZTtcbn1cblxuLmNoYXJhY3Rlci1kZXRhaWxzLXByZXZpZXctbGV2ZWwtYmFkZ2Uge1xuICBhbmltYXRpb246IGxldmVsSWNvbkdsb3dQdWxzZSAyLjI1cyBjdWJpYy1iZXppZXIoMC40MiwgMCwgMC41OCwgMSkgaW5maW5pdGVcbiAgICBhbHRlcm5hdGU7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAzcHggNnB4IHJnYmEoMCwgMCwgMCwgMC41NSkpXG4gICAgZHJvcC1zaGFkb3coMCAwIDdweCByZ2JhKDI1NSwgMjQ1LCAyMDAsIDAuNSkpO1xufVxuXG5Aa2V5ZnJhbWVzIGxldmVsSWNvbkdsb3dQdWxzZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDAuOTI7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjU1KSlcbiAgICAgIGRyb3Atc2hhZG93KDAgMCA0cHggcmdiYSgyNTUsIDI0NSwgMjAwLCAwLjM4KSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA2KTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC41OCkpXG4gICAgICBkcm9wLXNoYWRvdygwIDAgOHB4IHJnYmEoMjU1LCAyNDUsIDIwMCwgMC41NikpO1xuICB9XG59XG5cbi5jaGFyYWN0ZXItY2FyZC1sb2NrLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBkaXNwbGF5OiBncmlkO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDgsIDEwLCAxNiwgMC41KTtcbiAgei1pbmRleDogMjtcbn1cblxuLmNoYXJhY3Rlci1jYXJkLWxvY2stb3ZlcmxheSBpbWcge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuNikpO1xufVxuXG4vKiBDYXJkIGluZm8gc2VjdGlvbiAqL1xuLmNoYXJhY3Rlci1jYXJkLWluZm8ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGdhcDogMTBweDtcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY2hhcmFjdGVyLWNhcmQtbmFtZS1zZWN0aW9uIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmNoYXJhY3Rlci1jYXJkLW5hbWUge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1mYW1pbHk6IFwiUHJlc3MgU3RhcnQgMlBcIiwgXCJMYXRvXCIsIHNhbnMtc2VyaWY7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjZjdmYWZjO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG59XG5cbi8qIEhQL0FUSyBzdGF0IGJsb2NrcyAqL1xuLmNoYXJhY3Rlci1jYXJkLXN0YXRzLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNnB4O1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uY2hhcmFjdGVyLWNhcmQtc3RhdCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgcGFkZGluZzogM3B4IDZweDtcbiAgY29sb3I6ICNlNWU3ZWI7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTgsIDcxLCA4OCwgMC43KTtcbiAgYm9yZGVyLXJhZGl1czogN3B4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogNXB4O1xufVxuXG4uc3RhdC1sYWJlbCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiAjOWNhM2FmO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDVweDtcbn1cblxuLnN0YXQtdmFsdWUge1xuICBmb250LXdlaWdodDogODAwO1xuICBmb250LWZhbWlseTogXCJQcmVzcyBTdGFydCAyUFwiLCBcIkxhdG9cIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiA4cHg7XG59XG5cbi8qIFN0YXR1cyBzZWN0aW9uICovXG4uY2hhcmFjdGVyLWNhcmQtc3RhdHVzIHtcbiAgbWluLWhlaWdodDogMzBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uY2hhcmFjdGVyLWNhcmQtc3RhdHVzLXRleHQge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA1cHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogNXB4IDhweDtcbiAgYmFja2dyb3VuZDogcmdiYSg1NCwgNjAsIDEwNiwgMC41KTtcbiAgY29sb3I6ICNjYmQ1ZTE7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDExcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuLmNoYXJhY3Rlci1jYXJkLXN0YXR1cy1wcmljZSB7XG4gIG1pbi13aWR0aDogMzRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZvbnQtZmFtaWx5OiBcIlByZXNzIFN0YXJ0IDJQXCIsIFwiTGF0b1wiLCBzYW5zLXNlcmlmO1xufVxuXG4uY2hhcmFjdGVyLWNhcmQtc3RhdHVzLXRleHQgaW1nIHtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuLmNoYXJhY3Rlci1jYXJkLmlzLXVwZ3JhZGUtcmVhZHkge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTgwZGVnLFxuICAgIHJnYmEoOCwgMTcsIDM0LCAwLjk0KSxcbiAgICByZ2JhKDQsIDEyLCAyOCwgMC45OClcbiAgKTtcbiAgYm94LXNoYWRvdzpcbiAgICAwcHggNXB4IGJsYWNrLFxuICAgIDBweCAtNXB4IGJsYWNrLFxuICAgIDVweCAwcHggYmxhY2ssXG4gICAgLTVweCAwcHggYmxhY2ssXG4gICAgMHB4IDEwcHggIzAwMDAwMDM4LFxuICAgIDVweCA1cHggIzAwMDAwMDM4LFxuICAgIC01cHggNXB4ICMwMDAwMDAzOCxcbiAgICBpbnNldCAwcHggNXB4ICNmZmZmZmYxZjtcbn1cblxuLmNoYXJhY3Rlci1jYXJkLnNlbGVjdGVkLmlzLXVwZ3JhZGUtcmVhZHksXG4uY2hhcmFjdGVyLWNhcmQuc2VsZWN0ZWQuaXMtbWF4ZWQsXG4uY2hhcmFjdGVyLWNhcmQuc2VsZWN0ZWQuaXMtdXBncmFkZS1yZWFkeS5pcy1tYXhlZCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxODBkZWcsXG4gICAgcmdiYSgyNCwgNDQsIDc4LCAwLjk4KSxcbiAgICByZ2JhKDEzLCAzMCwgNjAsIDAuOTgpXG4gICk7XG4gIGJveC1zaGFkb3c6XG4gICAgMHB4IDVweCBibGFjayxcbiAgICAwcHggLTVweCBibGFjayxcbiAgICA1cHggMHB4IGJsYWNrLFxuICAgIC01cHggMHB4IGJsYWNrLFxuICAgIDBweCAxMHB4ICMwMDAwMDAzOCxcbiAgICA1cHggNXB4ICMwMDAwMDAzOCxcbiAgICAtNXB4IDVweCAjMDAwMDAwMzgsXG4gICAgaW5zZXQgMCAwIDE4cHggcmdiYSgxODYsIDIxOSwgMjU1LCAwLjM0KSxcbiAgICBpbnNldCAwIDVweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG59XG5cbi5jaGFyYWN0ZXItY2FyZC1zdGF0dXMtdGV4dC5tYXhlZCB7XG4gIGNvbG9yOiAjMTBiOTgxO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE2LCAxODUsIDEyOSwgMC4xNSk7XG4gIGZvbnQtZmFtaWx5OiBcIlByZXNzIFN0YXJ0IDJQXCIsIFwiTGF0b1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogODAwO1xufVxuXG4uY2hhcmFjdGVyLWNhcmQtc3RhdHVzLXRleHQudXBncmFkYWJsZSB7XG4gIGNvbG9yOiAjZmNkMzRkO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1MiwgMjEyLCA3NywgMC4yKTtcbn1cblxuLmNoYXJhY3Rlci1jYXJkLXN0YXR1cy10ZXh0Lmluc3VmZmljaWVudCB7XG4gIGNvbG9yOiAjZmNhNWE1O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI0OCwgMTEzLCAxMTMsIDAuMTgpO1xufVxuXG4uY2hhcmFjdGVyLWRldGFpbHMtb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDQsIDgsIDE4LCAwLjYpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNnB4KTtcbiAgei1pbmRleDogMTExMDtcbn1cblxuLmNoYXJhY3Rlci1kZXRhaWxzLXBvcHVwIHtcbiAgd2lkdGg6IG1pbig5MjBweCwgOTB2dyk7XG4gIG1heC1oZWlnaHQ6IG1pbig5MHZoLCA5MDBweCk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxNDVkZWcsXG4gICAgcmdiYSgxMiwgMTgsIDM0LCAwLjk4KSxcbiAgICByZ2JhKDIxLCAyOCwgNDksIDAuOTgpXG4gICk7XG4gIGJvcmRlcjogM3B4IHNvbGlkIHJnYmEoNTAsIDUwLCA1MCwgMC44KTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzpcbiAgICAwcHggNXB4IGJsYWNrLFxuICAgIDBweCAtNXB4IGJsYWNrLFxuICAgIDVweCAwcHggYmxhY2ssXG4gICAgLTVweCAwcHggYmxhY2ssXG4gICAgMHB4IDEwcHggIzAwMDAwMDM4LFxuICAgIDVweCA1cHggIzAwMDAwMDM4LFxuICAgIC01cHggNXB4ICMwMDAwMDAzOCxcbiAgICBpbnNldCAwcHggNXB4ICNmZmZmZmYyNDtcbiAgY29sb3I6ICNlNWVlZmI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFuaW1hdGlvbjogY2hhcmFjdGVyRGV0YWlsc1BvcCAxODBtcyBlYXNlLW91dDtcbn1cblxuQGtleWZyYW1lcyBjaGFyYWN0ZXJEZXRhaWxzUG9wIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkyKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmNoYXJhY3Rlci1kZXRhaWxzLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAxNnB4O1xuICBwYWRkaW5nOiAxNnB4IDIwcHg7XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCByZ2JhKDUwLCA1MCwgNTAsIDAuNik7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICA5MGRlZyxcbiAgICByZ2JhKDgsIDE1LCAzMSwgMC45NSksXG4gICAgcmdiYSgxMCwgMTcsIDM0LCAwLjkpXG4gICk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmNoYXJhY3Rlci1kZXRhaWxzLXRpdGxlLXdyYXAge1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5jaGFyYWN0ZXItZGV0YWlscy10aXRsZSB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1mYW1pbHk6IFwiUHJlc3MgU3RhcnQgMlBcIiwgXCJMYXRvXCIsIHNhbnMtc2VyaWY7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMTVweCwgMS43dncsIDIxcHgpO1xuICBjb2xvcjogI2Y4ZmJmZjtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgdGV4dC1zaGFkb3c6IDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG5cbi5jaGFyYWN0ZXItZGV0YWlscy1oZWFkZXItZGVzY3JpcHRpb24ge1xuICBtYXJnaW46IDhweCAwIDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICNiZmRiZmU7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICBtYXgtd2lkdGg6IDcyY2g7XG59XG5cbi5jaGFyYWN0ZXItZGV0YWlscy1jbG9zZSB7XG4gIHdpZHRoOiAzNnB4O1xuICBoZWlnaHQ6IDM2cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMxMGI5ODEsICMwNTk2NjkpO1xuICBib3JkZXI6IDJweCBzb2xpZCAjMzRkMzk5O1xuICBjb2xvcjogd2hpdGU7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDJweCAwICMwNjVmNDYsXG4gICAgMCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG59XG5cbi5jaGFyYWN0ZXItZGV0YWlscy1jbG9zZTpob3ZlciB7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygxLjA1KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4uY2hhcmFjdGVyLWRldGFpbHMtY2xvc2U6YWN0aXZlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7XG4gIGJveC1zaGFkb3c6XG4gICAgMCAxcHggMCAjMDY1ZjQ2LFxuICAgIDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5cbi8qIE1haW4gY29udGVudCBhcmVhICovXG4uY2hhcmFjdGVyLWRldGFpbHMtY29udGVudCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDI1MHB4LCAwLjk1ZnIpIG1pbm1heCgwLCAxLjA1ZnIpO1xuICBnYXA6IDIycHg7XG4gIHBhZGRpbmc6IDE2cHg7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBmbGV4OiAxO1xuICBtaW4taGVpZ2h0OiAwO1xufVxuXG4vKiBQcmV2aWV3IC0gc21hbGxlciwgbm8gcm91bmRlZCBjb3JuZXJzICovXG4uY2hhcmFjdGVyLWRldGFpbHMtcHJldmlldyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDA7XG59XG5cbi5jaGFyYWN0ZXItZGV0YWlscy1wcmV2aWV3LWZyYW1lIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzMDBweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcblxuICBiYWNrZ3JvdW5kOlxuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgdG9wLCByZ2JhKDc0LCAxNTgsIDI1NSwgMC4xNSksIHRyYW5zcGFyZW50IDQwJSksXG4gICAgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgxMCwgMTcsIDM0LCAwLjk1KSwgcmdiYSg2LCAxMCwgMjAsIDAuOTgpKTtcbiAgYm9yZGVyOiAzcHggc29saWQgcmdiYSgxMDAsIDEwMCwgMTAwLCAwLjYpO1xuICBib3gtc2hhZG93OlxuICAgIDBweCA1cHggYmxhY2ssXG4gICAgMHB4IC01cHggYmxhY2ssXG4gICAgNXB4IDBweCBibGFjayxcbiAgICAtNXB4IDBweCBibGFjayxcbiAgICAwcHggMTBweCAjMDAwMDAwMzgsXG4gICAgNXB4IDVweCAjMDAwMDAwMzgsXG4gICAgLTVweCA1cHggIzAwMDAwMDM4LFxuICAgIGluc2V0IDBweCA1cHggI2ZmZmZmZjFmO1xuICBkaXNwbGF5OiBncmlkO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY2hhcmFjdGVyLWRldGFpbHMtcHJldmlldy1mcmFtZS5pcy1sb2NrZWQge1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgwLjUpIGJyaWdodG5lc3MoMC44KTtcbn1cblxuLmNoYXJhY3Rlci1kZXRhaWxzLXByZXZpZXctZ2xvdyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IC0zMCU7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoOTYsIDE2NSwgMjUwLCAwLjIpLCB0cmFuc3BhcmVudCA1MCUpO1xuICBmaWx0ZXI6IGJsdXIoMTVweCk7XG4gIGFuaW1hdGlvbjogY2hhcmFjdGVyR2xvd1B1bHNlIDRzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuQGtleWZyYW1lcyBjaGFyYWN0ZXJHbG93UHVsc2Uge1xuICAwJSxcbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMC42O1xuICB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4uY2hhcmFjdGVyLWRldGFpbHMtcHJldmlldy1pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgd2lkdGg6IG1pbigxMDAlLCAyODBweCk7XG4gIG1heC1oZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCA4cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuNTUpKTtcbn1cblxuLmNoYXJhY3Rlci1kZXRhaWxzLXByZXZpZXctbGV2ZWwtYmFkZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgbGVmdDogMTBweDtcbiAgd2lkdGg6IDcwcHg7XG4gIGhlaWdodDogNzBweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgei1pbmRleDogNDtcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDNweCA2cHggcmdiYSgwLCAwLCAwLCAwLjU1KSlcbiAgICBkcm9wLXNoYWRvdygwIDAgN3B4IHJnYmEoMjU1LCAyNDUsIDIwMCwgMC41KSk7XG4gIGFuaW1hdGlvbjogbGV2ZWxJY29uR2xvd1B1bHNlIDIuMjVzIGN1YmljLWJlemllcigwLjQyLCAwLCAwLjU4LCAxKSBpbmZpbml0ZVxuICAgIGFsdGVybmF0ZTtcbn1cblxuLmNoYXJhY3Rlci1kZXRhaWxzLWxvY2stb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gIHotaW5kZXg6IDM7XG4gIGJhY2tncm91bmQ6IHJnYmEoNSwgMTAsIDIwLCAwLjIpO1xufVxuXG4uY2hhcmFjdGVyLWRldGFpbHMtbG9jay1vdmVybGF5IGltZyB7XG4gIHdpZHRoOiA2NHB4O1xuICBoZWlnaHQ6IDY0cHg7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCA2cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuNSkpO1xufVxuXG4uY2hhcmFjdGVyLWRldGFpbHMtaW5mbyB7XG4gIG1pbi13aWR0aDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxMHB4O1xufVxuXG4uY2hhcmFjdGVyLWRldGFpbHMtc3RpY2t5LWZvb3RlciB7XG4gIHBvc2l0aW9uOiBzdGlja3k7XG4gIGJvdHRvbTogMDtcbiAgei1pbmRleDogNTtcbiAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHJnYmEoMTAwLCAxMDAsIDEwMCwgMC40NSk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxODBkZWcsXG4gICAgcmdiYSgxMCwgMTcsIDM0LCAwLjkyKSxcbiAgICByZ2JhKDgsIDEzLCAyNiwgMC45NSlcbiAgKTtcbiAgcGFkZGluZzogMTBweCAxNHB4O1xufVxuXG4uY2hhcmFjdGVyLWRldGFpbHMtZm9vdGVyLWxpbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMTBweDtcbiAgZmxleC13cmFwOiBub3dyYXA7XG59XG5cbi5jaGFyYWN0ZXItZGV0YWlscy1pbmxpbmUtc2tpbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgbWluLXdpZHRoOiAwO1xuICBmbGV4OiAxIDEgYXV0bztcbn1cblxuLmNoYXJhY3Rlci1kZXRhaWxzLWlubGluZS1hY3Rpb25zIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTRweDtcbiAgZmxleDogMCAwIGF1dG87XG59XG5cbi8qIFN0YXRzIGNvbnRhaW5lciAtIDMgYm94ZXMgKi9cbi5jaGFyYWN0ZXItZGV0YWlscy1zdGF0cy1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDE4cHg7XG59XG5cbi5jaGFyYWN0ZXItZGV0YWlscy1zdGF0LWJveCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjAsIDMwLCA1MCwgMC44KTtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiYSgxMDAsIDEwMCwgMTAwLCAwLjUpO1xuICBib3gtc2hhZG93OlxuICAgIDBweCA1cHggYmxhY2ssXG4gICAgMHB4IC01cHggYmxhY2ssXG4gICAgNXB4IDBweCBibGFjayxcbiAgICAtNXB4IDBweCBibGFjayxcbiAgICAwcHggMTBweCAjMDAwMDAwMzgsXG4gICAgNXB4IDVweCAjMDAwMDAwMzgsXG4gICAgLTVweCA1cHggIzAwMDAwMDM4LFxuICAgIGluc2V0IDBweCA1cHggI2ZmZmZmZjFmO1xuICBwYWRkaW5nOiAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xufVxuXG4uc3RhdC1ib3gtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICNmN2ZhZmM7XG59XG5cbi5zdGF0LWJveC1pY29uIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjMpKTtcbn1cblxuLnN0YXQtYm94LWxhYmVsIHtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG59XG5cbi5zdGF0LWJveC12YWx1ZSB7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgY29sb3I6ICNmZWYzYzc7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBmb250LWZhbWlseTogXCJQcmVzcyBTdGFydCAyUFwiLCBcIkxhdG9cIiwgc2Fucy1zZXJpZjtcbn1cblxuLnN0YXQtYm94LWNvbnRlbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDZweDtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuXG4uc3RhdC1ib3gtY29udGVudCAuc3RhdC1ib3gtdmFsdWUge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGNvbG9yOiAjZmVmM2M3O1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuLnN0YXQtYm94LXRyYWNrIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnN0YXQtYm94LWZpbGwge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgI2ZiYmYyNCwgI2Y1OWUwYik7XG59XG5cbi5hdHRhY2stYm94IC5zdGF0LWJveC1maWxsIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjNjBhNWZhLCAjMjU2M2ViKTtcbn1cblxuLnNwZWNpYWwtYm94IC5zdGF0LWJveC1maWxsIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjYTc4YmZhLCAjN2MzYWVkKTtcbn1cblxuLnN0YXQtYm94LWRlc2Mge1xuICBjb2xvcjogI2NiZDVlMTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsaW5lLWhlaWdodDogMS4zO1xuICBtYXJnaW4tdG9wOiA4cHg7XG59XG5cbi5zdGF0LWJveC1kZXRhaWwge1xuICBjb2xvcjogIzljYTNhZjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBsaW5lLWhlaWdodDogMS4yO1xufVxuXG4uaGVhbHRoLWJveCAuc3RhdC1ib3gtdmFsdWUge1xuICBjb2xvcjogI2ZjYTVhNTtcbn1cblxuLmF0dGFjay1ib3ggLnN0YXQtYm94LXZhbHVlIHtcbiAgY29sb3I6ICNmYmJmMjQ7XG59XG5cbi5zcGVjaWFsLWJveCAuc3RhdC1ib3gtdmFsdWUge1xuICBjb2xvcjogI2M0YjVmZDtcbn1cblxuLyogQXR0YWNrIGFuZCBTcGVjaWFsIHNpZGUgYnkgc2lkZSAqL1xuLmNoYXJhY3Rlci1kZXRhaWxzLXN0YXQtYm94ZXMtcm93IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICBnYXA6IDE4cHg7XG59XG5cbi8qIERlc2NyaXB0aW9uICovXG4uY2hhcmFjdGVyLWRldGFpbHMtZGVzY3JpcHRpb24ge1xuICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTAsIDE3LCAzNCwgMC41KTtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiYSgxMDAsIDEwMCwgMTAwLCAwLjQpO1xuICBib3gtc2hhZG93OiAwIDJweCAwICMwYTBhMGE7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICNjYmQ1ZTE7XG59XG5cbi5jaGFyYWN0ZXItZGV0YWlscy1kZXNjcmlwdGlvbiBwIHtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogI2UyZThmMDtcbn1cblxuLyogRm9vdGVyIHNlY3Rpb24gKi9cbi5jaGFyYWN0ZXItZGV0YWlscy1mb290ZXItc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIwLCAzMCwgNTAsIDAuNik7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMTAwLCAxMDAsIDEwMCwgMC40KTtcbiAgYm94LXNoYWRvdzogMCAycHggMCAjMGEwYTBhO1xufVxuXG4uc2tpbi1zZWxlY3Rvci1zZWN0aW9uIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5jaGFyYWN0ZXItZGV0YWlscy1za2luLXN0ZXBwZXIge1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMTBiOTgxLCAjMDU5NjY5KTtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDJweCAwICMwNjVmNDYsXG4gICAgMCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgY29sb3I6ICNmN2ZhZmM7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbn1cblxuLmNoYXJhY3Rlci1kZXRhaWxzLXNraW4tc3RlcHBlcjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMxZWNiOGYsICMxN2E2NzgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi5jaGFyYWN0ZXItZGV0YWlscy1za2luLXN0ZXBwZXI6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7XG59XG5cbi5jaGFyYWN0ZXItZGV0YWlscy1za2luLXN0ZXBwZXI6ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjQ7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLmNoYXJhY3Rlci1kZXRhaWxzLXNraW4tbmFtZS1ib3gge1xuICBmbGV4OiAwIDEgMTgwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiA4cHggMTBweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzEwYjk4MSwgIzA1OTY2OSk7XG4gIGJveC1zaGFkb3c6XG4gICAgMCAycHggMCAjMDY1ZjQ2LFxuICAgIDAgNHB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG4gIGNvbG9yOiAjZjdmYWZjO1xuICBmb250LXdlaWdodDogODAwO1xuICBmb250LXNpemU6IDExcHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbn1cblxuLnVwZ3JhZGUtaWNvbiB7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi8qIEZvb3RlciBidXR0b25zICovXG4uY2hhcmFjdGVyLWRldGFpbHMtZm9vdGVyLWJ1dHRvbnMge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uY2hhcmFjdGVyLWRldGFpbHMtYWN0aW9uIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIGhlaWdodDogMzRweDtcbiAgcGFkZGluZzogN3B4IDExcHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIGZvbnQtZmFtaWx5OiBcIlByZXNzIFN0YXJ0IDJQXCIsIFwiTGF0b1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDhweDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgYm9yZGVyOiAycHggc29saWQ7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDAgIzBhMGEwYTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG59XG5cbi5jaGFyYWN0ZXItZGV0YWlscy1hY3Rpb246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi5jaGFyYWN0ZXItZGV0YWlscy1hY3Rpb246YWN0aXZlOm5vdCg6ZGlzYWJsZWQpIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7XG4gIGJveC1zaGFkb3c6IDAgMXB4IDAgIzBhMGEwYTtcbn1cblxuLnVwZ3JhZGUtYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2Q0YTAxNywgIzlkN2ExYSk7XG4gIGJvcmRlci1jb2xvcjogI2Y1YzU0MjtcbiAgaGVpZ2h0OiA1MHB4O1xuICBjb2xvcjogI2Y3ZmFmYztcbiAgYm94LXNoYWRvdzpcbiAgICAwIDJweCAwICM3YjYzMTIsXG4gICAgMCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbn1cblxuLnVwZ3JhZGUtYnV0dG9uOm5vdCg6ZGlzYWJsZWQpOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2U0YjczYiwgI2FkOGEyOCk7XG4gIGJveC1zaGFkb3c6XG4gICAgMCAycHggMCAjN2I2MzEyLFxuICAgIDAgNnB4IDEycHggcmdiYSgyNDQsIDE5NywgNjYsIDAuMyk7XG59XG5cbi51cGdyYWRlLWJ1dHRvbi5kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICM1YTVhNWEsICM0YTRhNGEpO1xuICBib3JkZXItY29sb3I6ICM3YTdhN2E7XG4gIGNvbG9yOiAjOWNhM2FmO1xuICBvcGFjaXR5OiAwLjY7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5idXktYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgIzNiODJmNiwgIzI1NjNlYik7XG4gIGJvcmRlci1jb2xvcjogIzYwYTVmYTtcbiAgaGVpZ2h0OiA1MHB4O1xuICBjb2xvcjogI2Y3ZmFmYztcbiAgYm94LXNoYWRvdzpcbiAgICAwIDJweCAwICMxZTQwYWYsXG4gICAgMCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbn1cblxuLmJ1eS1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjNGI5NGZjLCAjMzU3NGYwKTtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDJweCAwICMxZTQwYWYsXG4gICAgMCA2cHggMTJweCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4zKTtcbn1cblxuLnNlbGVjdC1idXR0b24ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMTBiOTgxLCAjMDU5NjY5KTtcbiAgaGVpZ2h0OiA1MHB4O1xuICBib3JkZXItY29sb3I6ICMzNGQzOTk7XG4gIGNvbG9yOiAjZjdmYWZjO1xuICBib3gtc2hhZG93OlxuICAgIDAgMnB4IDAgIzA2NWY0NixcbiAgICAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuXG4uc2VsZWN0LWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMxZWNiOGYsICMxN2E2NzgpO1xuICBib3gtc2hhZG93OlxuICAgIDAgMnB4IDAgIzA2NWY0NixcbiAgICAwIDZweCAxMnB4IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjMpO1xufVxuXG4uY2hhcmFjdGVyLWRldGFpbHMtbWF4ZWQtbGFiZWwge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgaGVpZ2h0OiAzNHB4O1xuICBwYWRkaW5nOiA3cHggMTFweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMxMGI5ODEsICMwNTk2NjkpO1xuICBib3JkZXI6IDJweCBzb2xpZCAjMzRkMzk5O1xuICBib3gtc2hhZG93OlxuICAgIDAgMnB4IDAgIzA2NWY0NixcbiAgICAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBjb2xvcjogI2Y3ZmFmYztcbiAgZm9udC1mYW1pbHk6IFwiUHJlc3MgU3RhcnQgMlBcIiwgXCJMYXRvXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogOHB4O1xuICBmb250LXdlaWdodDogODAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG59XG5cbi5idXR0b24tcHJpY2Uge1xuICBtYXJnaW4tbGVmdDogMnB4O1xuICBwYWRkaW5nOiAycHggNnB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGNvbG9yOiAjZmVmM2M3O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDNweDtcbn1cblxuLmNoYXJhY3Rlci1kZXRhaWxzLWFjdGlvbi5idXktYnV0dG9uIC51cGdyYWRlLWljb24sXG4uY2hhcmFjdGVyLWRldGFpbHMtYWN0aW9uLmJ1eS1idXR0b24gLmNzLWN1cnJlbmN5IHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuLmNzLWN1cnJlbmN5IHtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKiBTdWNjZXNzIGFuaW1hdGlvbiAtIGhlYXZ5IHdpdGggZWZmZWN0cyAqL1xuLmNoYXJhY3Rlci1kZXRhaWxzLXN1Y2Nlc3Mge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgei1pbmRleDogMTAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmNoYXJhY3Rlci1kZXRhaWxzLXN1Y2Nlc3MtYmVhbXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAtMjAlO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHJlcGVhdGluZy1jb25pYy1ncmFkaWVudChcbiAgICBmcm9tIDBkZWcsXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAwZGVnIDIwZGVnLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKSAyMGRlZyAyOGRlZ1xuICApO1xuICBhbmltYXRpb246IHN1Y2Nlc3NCZWFtc1NwaW4gMS4ycyBsaW5lYXI7XG4gIGZpbHRlcjogYmx1cig0cHgpIHNhdHVyYXRlKDEuNSkgYnJpZ2h0bmVzcygxLjIpO1xufVxuXG4uY2hhcmFjdGVyLWRldGFpbHMtc3VjY2Vzcy1iZWFtcy5jb2luIHtcbiAgZmlsdGVyOiBodWUtcm90YXRlKDM1ZGVnKSBzYXR1cmF0ZSgyKSBicmlnaHRuZXNzKDEuMykgYmx1cig0cHgpO1xufVxuXG4uY2hhcmFjdGVyLWRldGFpbHMtc3VjY2Vzcy1iZWFtcy5nZW0ge1xuICBmaWx0ZXI6IGh1ZS1yb3RhdGUoMjUwZGVnKSBzYXR1cmF0ZSgyKSBicmlnaHRuZXNzKDEuMjUpIGJsdXIoNHB4KTtcbn1cblxuQGtleWZyYW1lcyBzdWNjZXNzQmVhbXNTcGluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgc2NhbGUoMC44KTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSBzY2FsZSgxLjMpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmNoYXJhY3Rlci1kZXRhaWxzLXN1Y2Nlc3MtbGFiZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG4gIGZvbnQtZmFtaWx5OiBcIlByZXNzIFN0YXJ0IDJQXCIsIFwiTGF0b1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiAjZmVmM2M3O1xuICB0ZXh0LXNoYWRvdzpcbiAgICAwIDJweCAwICM3YjYzMTIsXG4gICAgMCA0cHggOHB4IHJnYmEoMCwgMCwgMCwgMC42KSxcbiAgICAwIDAgMjBweCByZ2JhKDI1NCwgMjQzLCAxOTksIDAuNCk7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIGFuaW1hdGlvbjogc3VjY2Vzc0xhYmVsUG9wIDEuMnMgZWFzZS1vdXQ7XG59XG5cbkBrZXlmcmFtZXMgc3VjY2Vzc0xhYmVsUG9wIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCkgdHJhbnNsYXRlWSgyMHB4KTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpIHRyYW5zbGF0ZVkoLTVweCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4vKiBSZXNwb25zaXZlIGFkanVzdG1lbnRzICovXG5AbWVkaWEgKG1heC13aWR0aDogOTgwcHgpIHtcbiAgLmNoYXJhY3Rlci1kZXRhaWxzLWNvbnRlbnQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIG1heC1oZWlnaHQ6IDcwdmg7XG4gIH1cblxuICAuY2hhcmFjdGVyLWRldGFpbHMtZm9vdGVyLWxpbmUge1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgfVxuXG4gIC5jaGFyYWN0ZXItZGV0YWlscy1pbmxpbmUtYWN0aW9ucyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgfVxuXG4gIC5jaGFyYWN0ZXItZGV0YWlscy1zdGF0LWJveGVzLXJvdyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cblxuICAuY2hhcmFjdGVyLWRldGFpbHMtcHJldmlldy1mcmFtZSB7XG4gICAgaGVpZ2h0OiAyNDBweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmNoYXJhY3Rlci1jYXJkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDYwcHggMWZyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDhweDtcbiAgfVxuXG4gIC5jaGFyYWN0ZXItY2FyZC1pbWFnZS13cmFwIHtcbiAgICB3aWR0aDogNjBweDtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gIH1cblxuICAuY2hhcmFjdGVyLWNhcmQtbmFtZSB7XG4gICAgZm9udC1zaXplOiA5cHg7XG4gIH1cblxuICAuY2hhcmFjdGVyLWNhcmQtc3RhdHMtcm93IHtcbiAgICBmb250LXNpemU6IDhweDtcbiAgfVxuXG4gIC5jaGFyYWN0ZXItZGV0YWlscy1wb3B1cCB7XG4gICAgbWF4LXdpZHRoOiA5NXZ3O1xuICB9XG5cbiAgLmNoYXJhY3Rlci1kZXRhaWxzLWhlYWRlciB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDEwcHg7XG4gIH1cblxuICAuY2hhcmFjdGVyLWRldGFpbHMtY2xvc2Uge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICB9XG5cbiAgLmNoYXJhY3Rlci1kZXRhaWxzLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gIH1cblxuICAuY2hhcmFjdGVyLWRldGFpbHMtaGVhZGVyLWRlc2NyaXB0aW9uIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gIH1cblxuICAuY2hhcmFjdGVyLWRldGFpbHMtaW5saW5lLXNraW4ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG5cbiAgLmNoYXJhY3Rlci1kZXRhaWxzLWlubGluZS1hY3Rpb25zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTBweDtcbiAgfVxuXG4gIC5jaGFyYWN0ZXItZGV0YWlscy1mb290ZXItbGluZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgfVxuXG4gIC5jaGFyYWN0ZXItZGV0YWlscy1hY3Rpb24sXG4gIC5jaGFyYWN0ZXItZGV0YWlscy1tYXhlZC1sYWJlbCB7XG4gICAgZmxleDogMSAxIDQ2JTtcbiAgICBtaW4td2lkdGg6IDE0MHB4O1xuICAgIGhlaWdodDogNDRweDtcbiAgfVxuXG4gIC5jaGFyYWN0ZXItZGV0YWlscy1za2luLXN0ZXBwZXIsXG4gIC5jaGFyYWN0ZXItZGV0YWlscy1za2luLW5hbWUtYm94IHtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gIH1cblxuICAuY2hhcmFjdGVyLWRldGFpbHMtcHJldmlldy1mcmFtZSB7XG4gICAgaGVpZ2h0OiAyMDBweDtcbiAgfVxufVxuXG4vKiBQYXJ0aWNsZXMgY2FudmFzICovXG4ucGFydGljbGVzLWNhbnZhcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAwO1xufVxuXG4vKiBDb25maXJtYXRpb24gbW9kYWwgc3R5bGVzIChleGlzdGluZykgKi9cbi5jcy12YXJzLFxuOnJvb3Qge1xuICAtLWNzLWxldmVsLXNpemU6IDgwcHg7XG4gIC0tY3MtbGV2ZWwtd3JhcDogY2FsYyh2YXIoLS1jcy1sZXZlbC1zaXplKSArIDhweCk7XG59XG5cbi5jcy1jb25maXJtLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBpbnNldDogMDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgei1pbmRleDogMTEwMDtcbn1cblxuLmNzLWNvbmZpcm0ge1xuICB3aWR0aDogOTAlO1xuICBtYXgtd2lkdGg6IDQyMHB4O1xuICBiYWNrZ3JvdW5kOiAjMWYyOTM3O1xuICBib3gtc2hhZG93OlxuICAgIDBweCA1cHggYmxhY2ssXG4gICAgMHB4IC01cHggYmxhY2ssXG4gICAgNXB4IDBweCBibGFjayxcbiAgICAtNXB4IDBweCBibGFjayxcbiAgICAwcHggMTBweCAjMDAwMDAwMzgsXG4gICAgNXB4IDVweCAjMDAwMDAwMzgsXG4gICAgLTVweCA1cHggIzAwMDAwMDM4LFxuICAgIGluc2V0IDBweCA1cHggI2ZmZmZmZjM2O1xuICBjb2xvcjogI2YzZjRmNjtcbiAgcGFkZGluZzogMTZweCAxOHB4O1xuICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDgwLCA4MCwgODAsIDAuNSk7XG59XG5cbi5jcy1jb25maXJtLXRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGZvbnQtZmFtaWx5OiBcIlByZXNzIFN0YXJ0IDJQXCIsIFwiTGF0b1wiLCBzYW5zLXNlcmlmO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uY3MtY29uZmlybS1ib2R5IHAge1xuICBtYXJnaW46IDZweCAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjZTVlN2ViO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG59XG5cbi5jcy1wcmljZS1yb3cge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5jcy1jb25maXJtLWFjdGlvbnMge1xuICBtYXJnaW4tdG9wOiAxNHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEwcHg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi5jcy1idG4ge1xuICBwYWRkaW5nOiAxMHB4IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGJvcmRlcjogMnB4IHNvbGlkO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtZmFtaWx5OiBcIlByZXNzIFN0YXJ0IDJQXCIsIFwiTGF0b1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDlweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmNzLWJ0bi5jYW5jZWwge1xuICBiYWNrZ3JvdW5kOiAjMzc0MTUxO1xuICBjb2xvcjogI2U1ZTdlYjtcbiAgYm9yZGVyLWNvbG9yOiAjNTU1O1xufVxuXG4uY3MtYnRuLmNhbmNlbDpob3ZlciB7XG4gIGJhY2tncm91bmQ6ICM0YTU1Njg7XG59XG5cbi5jcy1idG4uY29uZmlybSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICM0YTllZmYsICMzMTgyY2UpO1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjNjBhNWZhO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG59XG5cbi5jcy1idG4uY29uZmlybTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICM1YmE0ZmYsICM0MDkwZGQpO1xufVxuXG4vKiBMZXZlbCB1cGdyYWRlIGJlYW1zIChmcm9tIGNvbmZpcm0gZGlhbG9ncykgKi9cbi5jcy1sZXZlbC1saW5lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgbWFyZ2luOiAyMHB4IDA7XG59XG5cbi5jcy1sZXZlbC1pbWcsXG4uY3MtbmV4dC1iYWRnZSB7XG4gIHdpZHRoOiB2YXIoLS1jcy1sZXZlbC1zaXplKTtcbiAgaGVpZ2h0OiB2YXIoLS1jcy1sZXZlbC1zaXplKTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjQpKTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5jcy1hcnJvdyB7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIG9wYWNpdHk6IDAuODU7XG59XG5cbi5jcy1uZXh0LXdyYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiB2YXIoLS1jcy1sZXZlbC13cmFwKTtcbiAgaGVpZ2h0OiB2YXIoLS1jcy1sZXZlbC13cmFwKTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbn1cblxuLmNzLWJlYW1zIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogLTZweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiByZXBlYXRpbmctY29uaWMtZ3JhZGllbnQoXG4gICAgZnJvbSAwZGVnLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMGRlZyAyOGRlZyxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjIpIDI4ZGVnIDM2ZGVnXG4gICk7XG4gIGFuaW1hdGlvbjogY3NTcGluIDEwcyBsaW5lYXIgaW5maW5pdGU7XG4gIGZpbHRlcjogYmx1cigzcHgpIHNhdHVyYXRlKDEuMik7XG4gIC13ZWJraXQtbWFzay1pbWFnZTogcmFkaWFsLWdyYWRpZW50KFxuICAgIGNpcmNsZSxcbiAgICByZ2JhKDAsIDAsIDAsIDApIDAgMjQlLFxuICAgIHJnYmEoMCwgMCwgMCwgMC41KSA2MiUsXG4gICAgcmdiYSgwLCAwLCAwLCAxKSAxMDAlXG4gICk7XG4gIG1hc2staW1hZ2U6IHJhZGlhbC1ncmFkaWVudChcbiAgICBjaXJjbGUsXG4gICAgcmdiYSgwLCAwLCAwLCAwKSAwIDI0JSxcbiAgICByZ2JhKDAsIDAsIDAsIDAuNSkgNjIlLFxuICAgIHJnYmEoMCwgMCwgMCwgMSkgMTAwJVxuICApO1xufVxuXG4uY3MtYmVhbXMuY29pbiB7XG4gIGZpbHRlcjogaHVlLXJvdGF0ZSg0MGRlZykgc2F0dXJhdGUoMS44KSBicmlnaHRuZXNzKDEuMTUpO1xufVxuXG4uY3MtYmVhbXMuZ2VtIHtcbiAgZmlsdGVyOiBodWUtcm90YXRlKDIxMGRlZykgc2F0dXJhdGUoMS44KSBicmlnaHRuZXNzKDEuMSk7XG59XG5cbkBrZXlmcmFtZXMgY3NTcGluIHtcbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cblxuLmNzLWhlcm8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBncmlkO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi5jcy1oZXJvLWltZyB7XG4gIHdpZHRoOiA5NnB4O1xuICBoZWlnaHQ6IDk2cHg7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAzcHggNnB4IHJnYmEoMCwgMCwgMCwgMC41KSk7XG59XG5cbi5jcy1oZXJvLWJlYW1zIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTUwcHg7XG4gIGhlaWdodDogMTUwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogcmVwZWF0aW5nLWNvbmljLWdyYWRpZW50KFxuICAgIGZyb20gMGRlZyxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDBkZWcgMjhkZWcsXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIyKSAyOGRlZyAzNmRlZ1xuICApO1xuICBhbmltYXRpb246IGNzU3BpbiAxNHMgbGluZWFyIGluZmluaXRlO1xuICBmaWx0ZXI6IGJsdXIoMXB4KSBzYXR1cmF0ZSgxLjIpO1xuICAtd2Via2l0LW1hc2staW1hZ2U6IHJhZGlhbC1ncmFkaWVudChcbiAgICBjaXJjbGUsXG4gICAgcmdiYSgwLCAwLCAwLCAwKSAwIDIwJSxcbiAgICByZ2JhKDAsIDAsIDAsIDAuNSkgNTglLFxuICAgIHJnYmEoMCwgMCwgMCwgMSkgMTAwJVxuICApO1xuICBtYXNrLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoXG4gICAgY2lyY2xlLFxuICAgIHJnYmEoMCwgMCwgMCwgMCkgMCAyMCUsXG4gICAgcmdiYSgwLCAwLCAwLCAwLjUpIDU4JSxcbiAgICByZ2JhKDAsIDAsIDAsIDEpIDEwMCVcbiAgKTtcbn1cblxuLmNzLWhlcm8tYmVhbXMuZ2VtIHtcbiAgZmlsdGVyOiBodWUtcm90YXRlKDIxMGRlZykgc2F0dXJhdGUoMS44KSBicmlnaHRuZXNzKDEuMSk7XG59XG5cbi5jcy1oZXJvLWJlYW1zLmNvaW4ge1xuICBmaWx0ZXI6IGh1ZS1yb3RhdGUoNDBkZWcpIHNhdHVyYXRlKDEuOCkgYnJpZ2h0bmVzcygxLjE1KTtcbn1cblxuLyogU3VjY2VzcyBvdmVybGF5IGRpc3BsYXllZCBhZnRlciBjYXJkIHVubG9jay91cGdyYWRlICovXG4uY3MtY2FyZC1zdWNjZXNzIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBhbmltYXRpb246IGNzLXBvcC1pbiAyNTBtcyBlYXNlLW91dDtcbn1cblxuLmNzLWNhcmQtc3VjY2Vzcy5mYWRlLW91dCB7XG4gIGFuaW1hdGlvbjogY3MtZmFkZS1vdXQgMzAwbXMgZWFzZS1pbiBmb3J3YXJkcztcbn1cblxuLmNzLWNhcmQtYmVhbXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxNjBweDtcbiAgaGVpZ2h0OiAxNjBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiByZXBlYXRpbmctY29uaWMtZ3JhZGllbnQoXG4gICAgcmdiYSgyNTUsIDIzMCwgMTUwLCAwKSAwZGVnLFxuICAgIHJnYmEoMjU1LCAyMzAsIDE1MCwgMCkgOGRlZyxcbiAgICByZ2JhKDI1NSwgMjMwLCAxNTAsIDAuNjUpIDEyZGVnLFxuICAgIHJnYmEoMjU1LCAyMzAsIDE1MCwgMC42NSkgMjBkZWdcbiAgKTtcbiAgbWFzazogcmFkaWFsLWdyYWRpZW50KFxuICAgIGNpcmNsZSBhdCA1MCUgNTAlLFxuICAgIHJnYmEoMCwgMCwgMCwgMCkgMCUsXG4gICAgcmdiYSgwLCAwLCAwLCAwLjgpIDU1JSxcbiAgICByZ2JhKDAsIDAsIDAsIDEpIDEwMCVcbiAgKTtcbiAgLXdlYmtpdC1tYXNrOiByYWRpYWwtZ3JhZGllbnQoXG4gICAgY2lyY2xlIGF0IDUwJSA1MCUsXG4gICAgcmdiYSgwLCAwLCAwLCAwKSAwJSxcbiAgICByZ2JhKDAsIDAsIDAsIDAuOCkgNTUlLFxuICAgIHJnYmEoMCwgMCwgMCwgMSkgMTAwJVxuICApO1xuICBhbmltYXRpb246IGNzLXNwaW4gNnMgbGluZWFyIGluZmluaXRlO1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAxMHB4IHJnYmEoMjU1LCAyMjIsIDk2LCAwLjQpKTtcbn1cblxuLmNzLWNhcmQtYmVhbXMuZ2VtIHtcbiAgZmlsdGVyOiBodWUtcm90YXRlKDIxMGRlZykgc2F0dXJhdGUoMS4yKVxuICAgIGRyb3Atc2hhZG93KDAgMCAxMHB4IHJnYmEoODAsIDE4MCwgMjU1LCAwLjUpKTtcbn1cblxuLmNzLWNhcmQtc3VjY2Vzcy1sYWJlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjY1KTtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHBhZGRpbmc6IDZweCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4O1xuICBib3gtc2hhZG93OiAwIDRweCAxOHB4IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG59XG5cbkBrZXlmcmFtZXMgY3MtcG9wLWluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjcy1mYWRlLW91dCB7XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBjcy1zcGluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbiIsIkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJQcmVzcyBTdGFydCAyUFwiO1xuICBzcmM6IHVybChcIi9hc3NldHMvUHJlc3NTdGFydDJQLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5cbmh0bWwge1xuICB3aWR0aDogdmFyKC0tYmItdmlld3BvcnQtd2lkdGgsIDEwMHZ3KTtcbiAgaGVpZ2h0OiB2YXIoLS1iYi12aWV3cG9ydC1oZWlnaHQsIDEwMGR2aCk7XG59XG5cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIC8qIFVzZSByb290LXJlbGF0aXZlIHBhdGggc2VydmVkIGJ5IEV4cHJlc3MvRGV2U2VydmVyIHN0YXRpYyBmcm9tIGRpc3QgKi9cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2Fzc2V0cy9sdXNoeS9sb2JieUJnLndlYnBcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgZm9udC1mYW1pbHk6IFwiTGF0b1wiLCBzYW5zLXNlcmlmO1xuICB3aWR0aDogdmFyKC0tYmItdmlld3BvcnQtd2lkdGgsIDEwMHZ3KTtcbiAgaGVpZ2h0OiB2YXIoLS1iYi12aWV3cG9ydC1oZWlnaHQsIDEwMGR2aCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmU7XG59XG5cbmlucHV0LFxudGV4dGFyZWEsXG5zZWxlY3Qge1xuICB1c2VyLXNlbGVjdDogdGV4dDtcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogdGV4dDtcbn1cblxuYnV0dG9uLFxuLnBpeGVsLW1lbnUtYnV0dG9uLFxuLnBhcnR5LWJ1dHRvbixcbi5tb2RlLXBpY2tlcixcbi5tYXAtcGlja2VyLFxuLmFjY291bnQsXG4uZHJvcGRvd24sXG4jcmVhZHkge1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbn1cblxuYm9keS5tb2JpbGUtZ2FtZS11aSAjZ2FtZS10aW1lci1odWQsXG5ib2R5Lm1vYmlsZS1nYW1lLXVpICN0ZWFtLXN0YXR1cy1odWQsXG5ib2R5Lm1vYmlsZS1nYW1lLXVpICNiYXR0bGUta2V5YmluZC1odWQge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuODIpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xufVxuXG5ib2R5Lm1vYmlsZS1nYW1lLXVpICNnYW1lLXRpbWVyLWh1ZCB7XG4gIHRvcDogMThweDtcbn1cblxuYm9keS5tb2JpbGUtZ2FtZS11aSAjdGVhbS1zdGF0dXMtaHVkIHtcbiAgdG9wOiAxOHB4O1xufVxuXG5ib2R5Lm1vYmlsZS1nYW1lLXVpICNiYXR0bGUta2V5YmluZC1odWQge1xuICBib3R0b206IDhweDtcbiAgcmlnaHQ6IDhweDtcbiAgb3BhY2l0eTogMC43ODtcbn1cblxuYm9keS5tb2JpbGUtZ2FtZS11aSAjZ2FtZS10aW1lci1kaXNwbGF5LFxuYm9keS5tb2JpbGUtZ2FtZS11aSAudGVhbS1odWQtcGxheWVyLFxuYm9keS5tb2JpbGUtZ2FtZS11aSAudGVhbS1odWQtcGxheWVyLW5hbWUge1xuICBmb250LXNpemU6IDAuODhlbTtcbn1cblxuYm9keS5tb2JpbGUtZ2FtZS11aSAjYmF0dGxlLXN0YXJ0LW92ZXJsYXkge1xuICB6b29tOiAwLjk7XG59XG5cbiNsb2JieS1iZy1mYWRlIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBpbnNldDogMDtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDA7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMjBtcyBlYXNlO1xufVxuXG4jbG9iYnktYmctZmFkZS5hY3RpdmUge1xuICBvcGFjaXR5OiAxO1xufVxuXG4vKiBVdGlsaXR5ICovXG4uaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5oMiB7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuaDMge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtd2VpZ2h0OiAyMDA7XG59XG5cbi8qIEZvcnRuaXRlLXN0eWxlIG5hdmJhciB3aXRoIGdyYWRpZW50IGFuZCBnbG93ICovXG4jbmF2YmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB3aWR0aDogMTAwJTtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IDYwcHg7XG4gIHBhZGRpbmc6IDVweCAyMHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTM1ZGVnLFxuICAgIHJnYmEoMTcsIDE3LCA0OCwgMC45KSxcbiAgICByZ2JhKDgsIDgsIDE2LCAwLjkpXG4gICk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICMzNjNjMGY7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDIwcHggcmdiYSgwLCAyMTIsIDI1NSwgMC4zKTtcbiAgei1pbmRleDogMTAwMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZnVsbHNjcmVlbi10b2dnbGUge1xuICBtaW4td2lkdGg6IDQ4cHg7XG4gIHBhZGRpbmc6IDAgMTBweDtcbiAgbWFyZ2luLWxlZnQ6IC0ycHg7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG59XG5cbi5mdWxsc2NyZWVuLXRvZ2dsZS5pcy1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOlxuICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoNjcsIDEyNiwgMjU1LCAwLjk0KSwgcmdiYSgzNiwgOTIsIDE5NCwgMC44NikpLFxuICAgIHJnYmEoMTQsIDMwLCA3MCwgMC4zOCk7XG59XG5cbi5idXR0b24ge1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLnBpeGVsLW1lbnUtYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LWZhbWlseTogXCJQcmVzcyBTdGFydCAyUFwiLCBzeXN0ZW0tdWk7XG4gIGJvcmRlcjogMDtcbiAgYm94LXNoYWRvdzpcbiAgICAwcHggNXB4IGJsYWNrLFxuICAgIDBweCAtNXB4IGJsYWNrLFxuICAgIDVweCAwcHggYmxhY2ssXG4gICAgLTVweCAwcHggYmxhY2ssXG4gICAgMHB4IDEwcHggIzAwMDAwMDM4LFxuICAgIDVweCA1cHggIzAwMDAwMDM4LFxuICAgIC01cHggNXB4ICMwMDAwMDAzOCxcbiAgICBpbnNldCAwcHggNXB4ICNmZmZmZmYzNjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5waXhlbC1tZW51LWJ1dHRvbjphY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNXB4KTtcbiAgYm94LXNoYWRvdzpcbiAgICAwcHggNXB4IGJsYWNrLFxuICAgIDBweCAtNXB4IGJsYWNrLFxuICAgIDVweCAwcHggYmxhY2ssXG4gICAgLTVweCAwcHggYmxhY2ssXG4gICAgaW5zZXQgMHB4IDVweCAjMDAwMDAwMzg7XG59XG5cbi5yZXNvdXJjZXMge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIGdhcDogNXB4O1xufVxuXG4jbmF2YmFyLXJpZ2h0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxNXB4O1xufVxuXG4udHJvcGh5LXJlc291cmNlIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIGNvbG9yOiAjZmZmNGM4O1xuICBiYWNrZ3JvdW5kOlxuICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTc2LCAxMzEsIDM0LCAwLjkyKSwgcmdiYSgxMzcsIDk1LCAxOCwgMC44NCkpLFxuICAgIHJnYmEoMzUsIDIyLCA4LCAwLjQyKTtcbiAgYm94LXNoYWRvdzpcbiAgICAwcHggNXB4IHJnYig4NSwgNTgsIDgpLFxuICAgIDBweCAtNXB4IHJnYig4NSwgNTgsIDgpLFxuICAgIDVweCAwcHggcmdiKDg1LCA1OCwgOCksXG4gICAgLTVweCAwcHggcmdiKDg1LCA1OCwgOCksXG4gICAgMHB4IDEwcHggIzAwMDAwMDM4LFxuICAgIDVweCA1cHggIzAwMDAwMDM4LFxuICAgIC01cHggNXB4ICMwMDAwMDAzOCxcbiAgICBpbnNldCAwcHggNXB4ICNmZmZmZmYzNjtcbn1cblxuLnRyb3BoeS1yZXNvdXJjZTpob3ZlciB7XG4gIGJhY2tncm91bmQ6XG4gICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyMDgsIDE1MywgMzgsIDAuOTYpLCByZ2JhKDE1NCwgMTAzLCAxOCwgMC44OCkpLFxuICAgIHJnYmEoNDAsIDI1LCA4LCAwLjQ0KTtcbn1cblxuLnRyb3BoeS1yZXNvdXJjZSBwIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4udHJvcGh5LXJlc291cmNlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4udHJvcGh5LWNsYWltLWJhZGdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogLTdweDtcbiAgdG9wOiAtOHB4O1xuICBtaW4td2lkdGg6IDE5cHg7XG4gIGhlaWdodDogMTlweDtcbiAgcGFkZGluZzogMCA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICBmb250LWZhbWlseTogXCJQcmVzcyBTdGFydCAyUFwiLCBzeXN0ZW0tdWk7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjI1NTU1LCAjYzcyZjJmKTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoOSwgMTUsIDMwLCAwLjk2KTtcbn1cblxuLnRyb3BoeS1yZXNvdXJjZS5oYXMtY2xhaW1hYmxlIHtcbiAgYW5pbWF0aW9uOiB0cm9waHlQdWxzZUdsb3cgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyB0cm9waHlQdWxzZUdsb3cge1xuICAwJSxcbiAgMTAwJSB7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgMCByZ2JhKDI1NSwgMjEzLCAxMjIsIDApKTtcbiAgfVxuICA1MCUge1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDEwcHggcmdiYSgyNTUsIDIxMywgMTIyLCAwLjc0KSk7XG4gIH1cbn1cblxuI2dlbS1jb3VudCxcbiNjb2luLWNvdW50IHtcbiAgZm9udC1mYW1pbHk6IFwiUHJlc3MgU3RhcnQgMlBcIiwgXCJMYXRvXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuI3BhcnR5IHtcbiAgaGVpZ2h0OiA0NXB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMDBkNGZmLCAjMDA5OWNjKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBwYWRkaW5nOiAwcHggMTVweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6IHdoaXRlO1xuICBtYXJnaW4tbGVmdDogMTVweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xuICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE1cHggcmdiYSgwLCAyMTIsIDI1NSwgMC40KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbiNwYXJ0eTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwMDk5Y2MsICMwMDczOTkpO1xuICBib3gtc2hhZG93OiAwIDZweCAyMHB4IHJnYmEoMCwgMjEyLCAyNTUsIDAuNik7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbn1cblxuLyogTG9iYnkgYXJlYSB3aXRoIHBsYXRmb3JtcyAqL1xuI2xvYmJ5LWFyZWEge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGNhbGModmFyKC0tYmItdmlld3BvcnQtaGVpZ2h0LCAxMDBkdmgpIC0gMTQwcHgpO1xuICBtYXJnaW4tdG9wOiAyMHB4O1xuICAtLWxvYmJ5LWNoYXJhY3Rlci1zZWFtLW92ZXJsYXA6IGNsYW1wKDZweCwgMS4ydmgsIDE0cHgpO1xufVxuXG4vKiBQbGF0Zm9ybSBzdHlsaW5nIC0gcmVzcG9uc2l2ZSBhbmQgbW9kZS1iYXNlZCBzaXppbmcgKi9cbi5wbGF0Zm9ybSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLS1wbGF0Zm9ybS13aWR0aDogY2xhbXAoMjIwcHgsIDMwdncsIDQyMHB4KTtcbiAgLS1wbGF0Zm9ybS1iYXNlLXk6IDBweDtcbiAgLS1wbGF0Zm9ybS1mbG9hdC1kaXN0YW5jZTogMTBweDtcbiAgLyogUmVtb3ZlIGJhY2tncm91bmQgaW1hZ2UgZnJvbSBjb250YWluZXIgdG8gYXZvaWQgb3ZlcmxhcCB3aXRoIGNoYXJhY3RlciBzbG90ICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMDsgLyogZW5zdXJlIG5vIHNwYWNlIGJldHdlZW4gY2hpbGRyZW4gKi9cbiAgd2lkdGg6IHZhcigtLXBsYXRmb3JtLXdpZHRoKTtcbiAgcGFkZGluZy10b3A6IDEwcHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIGlzb2xhdGlvbjogaXNvbGF0ZTtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgYW5pbWF0aW9uOiBsb2JieVBsYXRmb3JtSG92ZXJGbG9hdCA3cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLnBsYXRmb3JtW2RhdGEtdGVhbT1cInlvdXItdGVhbVwiXVtkYXRhLXNsb3Q9XCIxXCJdIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC4xNXM7XG59XG5cbi5wbGF0Zm9ybVtkYXRhLXRlYW09XCJ5b3VyLXRlYW1cIl1bZGF0YS1zbG90PVwiMlwiXSB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuN3M7XG59XG5cbi5wbGF0Zm9ybVtkYXRhLXRlYW09XCJ5b3VyLXRlYW1cIl1bZGF0YS1zbG90PVwiM1wiXSB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTUuMnM7XG59XG5cbi5wbGF0Zm9ybVtkYXRhLXRlYW09XCJvcC10ZWFtXCJdW2RhdGEtc2xvdD1cIjFcIl0ge1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjRzO1xufVxuXG4ucGxhdGZvcm1bZGF0YS10ZWFtPVwib3AtdGVhbVwiXVtkYXRhLXNsb3Q9XCIyXCJdIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAtM3M7XG59XG5cbi5wbGF0Zm9ybVtkYXRhLXRlYW09XCJvcC10ZWFtXCJdW2RhdGEtc2xvdD1cIjNcIl0ge1xuICBhbmltYXRpb24tZGVsYXk6IC00LjQ1cztcbn1cblxuLyogVmlzdWFsIHBsYXRmb3JtIGltYWdlIHBsYWNlZCBhcyBhIHNlcGFyYXRlIGVsZW1lbnQgdG8gc3RhY2sgdmVydGljYWxseSAqL1xuLnBsYXRmb3JtLWltYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogMTAwJTtcbiAgYXNwZWN0LXJhdGlvOiA2MzggLyAzMDA7XG4gIGhlaWdodDogYXV0bztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2Fzc2V0cy9sdXNoeS9sb2JieVBsYXRmb3JtLndlYnBcIik7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGJvdHRvbTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4zNSkpO1xuICB0cmFuc2l0aW9uOlxuICAgIHRyYW5zZm9ybSAyMDBtcyBlYXNlLFxuICAgIGZpbHRlciAyMDBtcyBlYXNlO1xufVxuXG4jbG9iYnktYXJlYS5tYXAtc3dpdGNoaW5nIC5wbGF0Zm9ybSB7XG4gIGFuaW1hdGlvbjogcGxhdGZvcm1NYXBTaGlmdCAyNDBtcyBlYXNlO1xufVxuXG4ucGxhdGZvcm0taW1hZ2UubWFwLXN3aXRjaCB7XG4gIGFuaW1hdGlvbjogcGxhdGZvcm1JbWFnZVBvcCAyNDBtcyBlYXNlO1xufVxuXG5Aa2V5ZnJhbWVzIHBsYXRmb3JtTWFwU2hpZnQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDZweCk7XG4gICAgb3BhY2l0eTogMC44MjtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHBsYXRmb3JtSW1hZ2VQb3Age1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk2KTtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMjUpKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4zNSkpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgbG9iYnlQbGF0Zm9ybUhvdmVyRmxvYXQge1xuICAwJSxcbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKHZhcigtLXBsYXRmb3JtLWJhc2UteSkpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKFxuICAgICAgY2FsYyh2YXIoLS1wbGF0Zm9ybS1iYXNlLXkpIC0gdmFyKC0tcGxhdGZvcm0tZmxvYXQtZGlzdGFuY2UpKVxuICAgICk7XG4gIH1cbn1cblxuLyogMXYxIE1vZGUgLSBNdWNoIGxhcmdlciBwbGF0Zm9ybXMgdXRpbGl6aW5nIG1vcmUgc3BhY2UgKi9cbi5tb2RlLTEgLnBsYXRmb3JtIHtcbiAgLS1wbGF0Zm9ybS13aWR0aDogY2xhbXAoMjIwcHgsIDM0dncsIDQyMHB4KTtcbn1cblxuLm1vZGUtMSAucGxhdGZvcm0ueW91ci10ZWFtLTEge1xuICBsZWZ0OiA1JTsgLyogTW92ZWQgY2xvc2VyIHRvIGNlbnRlciAqL1xuICB0b3A6IDQ1JTsgLyogQWRqdXN0ZWQgdG8gdXNlIG1vcmUgYm90dG9tIHNwYWNlICovXG4gIC0tcGxhdGZvcm0tYmFzZS15OiAtMzAlOyAvKiBMZXNzIGNlbnRlcmluZyB0byB1c2UgYm90dG9tIHNwYWNlICovXG59XG5cbi5tb2RlLTEgLnBsYXRmb3JtLm9wLXRlYW0tMSB7XG4gIHJpZ2h0OiA1JTsgLyogTW92ZWQgY2xvc2VyIHRvIGNlbnRlciAqL1xuICB0b3A6IDQ1JTsgLyogQWRqdXN0ZWQgdG8gdXNlIG1vcmUgYm90dG9tIHNwYWNlICovXG4gIC0tcGxhdGZvcm0tYmFzZS15OiAtMzAlOyAvKiBMZXNzIGNlbnRlcmluZyB0byB1c2UgYm90dG9tIHNwYWNlICovXG59XG5cbi8qIDJ2MiBNb2RlIC0gTWVkaXVtIHBsYXRmb3JtcyBwb3NpdGlvbmVkIGRpYWdvbmFsbHksIGJpZ2dlciAqL1xuLm1vZGUtMiAucGxhdGZvcm0ge1xuICAtLXBsYXRmb3JtLXdpZHRoOiBjbGFtcCgyNTBweCwgMjB2dywgMzgwcHgpO1xufVxuXG4ubW9kZS0yIC5wbGF0Zm9ybS55b3VyLXRlYW0tMSB7XG4gIGxlZnQ6IDUlOyAvKiBNb3ZlZCBvdXQgc2xpZ2h0bHkgZm9yIGJpZ2dlciBwbGF0Zm9ybXMgKi9cbiAgdG9wOiAxNSU7IC8qIEFkanVzdGVkIHRvIHVzZSBtb3JlIGJvdHRvbSBzcGFjZSAqL1xufVxuXG4ubW9kZS0yIC5wbGF0Zm9ybS55b3VyLXRlYW0tMiB7XG4gIGxlZnQ6IDE1JTsgLyogQWRqdXN0ZWQgc3BhY2luZyAqL1xuICB0b3A6IDUzJTsgLyogTW92ZWQgZG93biB0byB1c2UgYm90dG9tIHNwYWNlICovXG59XG5cbi5tb2RlLTIgLnBsYXRmb3JtLm9wLXRlYW0tMSB7XG4gIHJpZ2h0OiA1JTsgLyogTW92ZWQgb3V0IHNsaWdodGx5IGZvciBiaWdnZXIgcGxhdGZvcm1zICovXG4gIHRvcDogMTUlOyAvKiBBZGp1c3RlZCB0byB1c2UgbW9yZSBib3R0b20gc3BhY2UgKi9cbn1cblxuLm1vZGUtMiAucGxhdGZvcm0ub3AtdGVhbS0yIHtcbiAgcmlnaHQ6IDE1JTsgLyogQWRqdXN0ZWQgc3BhY2luZyAqL1xuICB0b3A6IDUzJTsgLyogTW92ZWQgZG93biB0byB1c2UgYm90dG9tIHNwYWNlICovXG59XG5cbi8qIDN2MyBNb2RlIC0gVHJpYW5ndWxhciBmb3JtYXRpb24gd2l0aCBiZXR0ZXIgc3BhY2luZywgYmlnZ2VyIHBsYXRmb3JtcyAqL1xuLm1vZGUtMyAucGxhdGZvcm0ge1xuICAtLXBsYXRmb3JtLXdpZHRoOiBjbGFtcCgxMjBweCwgMTV2dywgMjMwcHgpO1xufVxuXG4ubW9kZS0zIC5wbGF0Zm9ybS55b3VyLXRlYW0tMSB7XG4gIGxlZnQ6IDMlOyAvKiBTbGlnaHRseSBhZGp1c3RlZCBmb3IgYmlnZ2VyIHBsYXRmb3JtcyAqL1xuICB0b3A6IDE1JTsgLyogTW92ZWQgdXAgdG8gdXNlIG1vcmUgYm90dG9tIHNwYWNlICovXG59XG5cbi5tb2RlLTMgLnBsYXRmb3JtLnlvdXItdGVhbS0yIHtcbiAgbGVmdDogMTIlOyAvKiBBZGp1c3RlZCBzcGFjaW5nICovXG4gIHRvcDogNDAlOyAvKiBBZGp1c3RlZCBwb3NpdGlvbmluZyAqL1xufVxuXG4ubW9kZS0zIC5wbGF0Zm9ybS55b3VyLXRlYW0tMyB7XG4gIGxlZnQ6IDIxJTsgLyogQWRqdXN0ZWQgc3BhY2luZyAqL1xuICB0b3A6IDY1JTsgLyogTW92ZWQgZG93biB0byB1c2UgYm90dG9tIHNwYWNlICovXG59XG5cbi5tb2RlLTMgLnBsYXRmb3JtLm9wLXRlYW0tMSB7XG4gIHJpZ2h0OiAzJTsgLyogU2xpZ2h0bHkgYWRqdXN0ZWQgZm9yIGJpZ2dlciBwbGF0Zm9ybXMgKi9cbiAgdG9wOiAxNSU7IC8qIE1vdmVkIHVwIHRvIHVzZSBtb3JlIGJvdHRvbSBzcGFjZSAqL1xufVxuXG4ubW9kZS0zIC5wbGF0Zm9ybS5vcC10ZWFtLTIge1xuICByaWdodDogMTIlOyAvKiBBZGp1c3RlZCBzcGFjaW5nICovXG4gIHRvcDogNDAlOyAvKiBBZGp1c3RlZCBwb3NpdGlvbmluZyAqL1xufVxuXG4ubW9kZS0zIC5wbGF0Zm9ybS5vcC10ZWFtLTMge1xuICByaWdodDogMjElOyAvKiBBZGp1c3RlZCBzcGFjaW5nICovXG4gIHRvcDogNjUlOyAvKiBNb3ZlZCBkb3duIHRvIHVzZSBib3R0b20gc3BhY2UgKi9cbn1cblxuLyogVlMgaW5kaWNhdG9yIGluIHRoZSBjZW50ZXIgKi9cbiN2cy1jb250YWluZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB6LWluZGV4OiAxMDA7XG59XG5cbiN2cyB7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDEwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpKTtcbn1cblxuLyogQ2hhcmFjdGVyIGNvbnRhaW5lciBvbiBwbGF0Zm9ybXMgLSBhbmNob3JlZCBzbyB0aGUgY2hhcmFjdGVyIHNpdHMgb24gdGhlIHBsYXRmb3JtICovXG4uY2hhcmFjdGVyLXNsb3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG4gIHdpZHRoOiBtaW4oOXZ3LCAxMDRweCk7XG4gIGhlaWdodDogbWluKDE1dmgsIDE1NHB4KTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgLyogcHVzaCBjb250ZW50IHRvIGJvdHRvbSBzbyBzcHJpdGUgc2l0cyBvbiBwbGF0Zm9ybSAqL1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIG1hcmdpbi10b3A6IDA7XG4gIC8qIEtlZXAgY2hhcmFjdGVyIGZlZXQgbWVyZ2VkIHdpdGggcGxhdGZvcm0gYWNyb3NzIHJlc3BvbnNpdmUgc2NhbGVzLiAqL1xuICBtYXJnaW4tYm90dG9tOiBjYWxjKC0xICogdmFyKC0tbG9iYnktY2hhcmFjdGVyLXNlYW0tb3ZlcmxhcCkpO1xuICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICBwYWRkaW5nOiA4cHggOHB4IDBweCA4cHg7XG4gIC8qIEVuc3VyZSBzcHJpdGUgc3RheXMgYXQgdG9wIHJlZ2FyZGxlc3Mgb2YgcGxhdGZvcm0gc2l6ZSAqL1xuICBtaW4taGVpZ2h0OiA4MHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkodmFyKC0tbG9iYnktY2hhcmFjdGVyLW9mZnNldC15LCAwcHgpKTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi5jaGFyYWN0ZXItc2xvdDpub3QoW2RhdGEtaXMtY3VycmVudC11c2VyPVwidHJ1ZVwiXSk6aG92ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoY2FsYyh2YXIoLS1sb2JieS1jaGFyYWN0ZXItb2Zmc2V0LXksIDBweCkgLSA0cHgpKTtcbn1cblxuLmNoYXJhY3Rlci1zbG90OjpiZWZvcmUsXG4uY2hhcmFjdGVyLXNsb3Q6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogLTEycHg7XG4gIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOlxuICAgIG9wYWNpdHkgMTgwbXMgZWFzZSxcbiAgICB0cmFuc2Zvcm0gMTgwbXMgZWFzZTtcbn1cblxuLmNoYXJhY3Rlci1zbG90OjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOlxuICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgIGNpcmNsZSBhdCA1MCUgMjIlLFxuICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KSxcbiAgICAgIHRyYW5zcGFyZW50IDQ0JVxuICAgICksXG4gICAgbGluZWFyLWdyYWRpZW50KFxuICAgICAgMTgwZGVnLFxuICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KSxcbiAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMzglXG4gICAgKTtcbn1cblxuLmNoYXJhY3Rlci1zbG90OjphZnRlciB7XG4gIGluc2V0OiAtMThweDtcbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KFxuICAgIGNpcmNsZSxcbiAgICByZ2JhKDI1NSwgMjM0LCAxNjcsIDAuMjQpIDAlLFxuICAgIHJnYmEoMTE0LCAyMTQsIDI1NSwgMC4xNikgMzglLFxuICAgIHJnYmEoMTE0LCAyMTQsIDI1NSwgMCkgNzIlXG4gICk7XG4gIGZpbHRlcjogYmx1cigxMHB4KTtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xufVxuXG4uY2hhcmFjdGVyLXNsb3QucGxheWVyLWRpc3BsYXkge1xuICBib3JkZXI6IDJweCBzb2xpZCAjMDBkNGZmO1xuICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTM1ZGVnLFxuICAgIHJnYmEoMCwgMjEyLCAyNTUsIDAuMjIpLFxuICAgIHJnYmEoMCwgMTUzLCAyMDQsIDAuMTIpXG4gICk7XG4gIGJveC1zaGFkb3c6XG4gICAgMCAwIDE4cHggcmdiYSgwLCAyMTIsIDI1NSwgMC4zMiksXG4gICAgaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xufVxuXG4uY2hhcmFjdGVyLXNsb3Qub3AtZGlzcGxheSB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNmZjQ3NTc7XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxMzVkZWcsXG4gICAgcmdiYSgyNTUsIDcxLCA4NywgMC4yMiksXG4gICAgcmdiYSgyMjAsIDU2LCA1NiwgMC4xMilcbiAgKTtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDAgMThweCByZ2JhKDI1NSwgNzEsIDg3LCAwLjI4KSxcbiAgICBpbnNldCAwIDFweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cblxuLyogQ2hhcmFjdGVyIHNwcml0ZSAtIHJlc3BvbnNpdmUgc2l6aW5nLCBhbmNob3JlZCB0byBib3R0b20gKi9cbi5jaGFyYWN0ZXItc3ByaXRlIHtcbiAgd2lkdGg6IG1pbig4dncsIDEwMnB4KTtcbiAgaGVpZ2h0OiBtaW4oOHZ3LCAxMTZweCk7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tdG9wOiBhdXRvOyAvKiBwdXNoIHNwcml0ZSB0byBib3R0b20gd2l0aGluIHRoZSBzbG90ICovXG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC41KSk7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIGZsZXgtc2hyaW5rOiAwOyAvKiBQcmV2ZW50IHNocmlua2luZyAqL1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTAwJTtcbiAgdHJhbnNpdGlvbjpcbiAgICB0cmFuc2Zvcm0gMjIwbXMgZWFzZSxcbiAgICBmaWx0ZXIgMjIwbXMgZWFzZTtcbn1cblxuLnN3aXRjaC1jaGFyYWN0ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA2cHg7XG4gIHRvcDogNnB4O1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTdlOTBlO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0cmFuc2l0aW9uOlxuICAgIHRyYW5zZm9ybSAwLjJzIGVhc2UsXG4gICAgZmlsdGVyIDAuMnMgZWFzZTtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDNweCAwIHJnYmEoMzUsIDU1LCA2LCAwLjkpLFxuICAgIDAgOHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuXG4ucmFuZG9tIHtcbiAgd2lkdGg6IDYwcHg7XG4gIGhlaWdodDogNjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLyogVXNlcm5hbWUgYWJvdmUgY2hhcmFjdGVyIC0gcG9zaXRpb25lZCByZWxhdGl2ZSB0byBzcHJpdGUgYXQgdG9wICovXG4udXNlcm5hbWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTMwcHg7IC8qIFBvc2l0aW9uZWQgYWJvdmUgdGhlIHNwcml0ZSAqL1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgZm9udC1zaXplOiBtaW4oMS4xNXZ3LCAxMnB4KTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1mYW1pbHk6IFwiUHJlc3MgU3RhcnQgMlBcIiwgc3lzdGVtLXVpO1xuICBjb2xvcjogd2hpdGU7XG4gIHRleHQtc2hhZG93OlxuICAgIDAgMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjg1KSxcbiAgICAwIDZweCAxNHB4IHJnYmEoMCwgMCwgMCwgMC40Mik7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB6LWluZGV4OiAxMDsgLyogRW5zdXJlIGl0IGFwcGVhcnMgYWJvdmUgcGxhdGZvcm0gKi9cbiAgbWF4LXdpZHRoOiAxNjBweDtcbn1cblxuLnVzZXJuYW1lLm9wLXBsYXllciB7XG4gIGNvbG9yOiAjZmZmN2Y0O1xufVxuXG4vKiBTdGF0dXMgaW5kaWNhdG9yIC0gb3ZlcmxhcHMgc2VhbSBiZXR3ZWVuIGNoYXJhY3RlciBhbmQgcGxhdGZvcm0gKi9cbi5zdGF0dXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogLTEycHg7IC8qIFNsaWdodCBvdmVybGFwIGludG8gcGxhdGZvcm0gaW1hZ2UgKi9cbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGZvbnQtc2l6ZTogbWluKDAuOTJ2dywgOXB4KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgcGFkZGluZzogM3B4IDdweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtc2hhZG93OiAxcHggMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gIHotaW5kZXg6IDUwO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpO1xuICBib3gtc2hhZG93OiAwIDZweCAxNHB4IHJnYmEoMCwgMCwgMCwgMC4yMik7XG59XG5cbi5zdGF0dXMucmVhZHkge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMjZiNjYyLCAjNWFhZjJjKTtcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4uc3RhdHVzLm9ubGluZSB7XG4gIC8qIERpc3RpbmN0IGZyb20gcmVhZHk6IGNhbG1pbmcgYmx1ZS9jeWFuICovXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxZTkwZmYsICMwMGJjZDQpO1xuICBjb2xvcjogd2hpdGU7XG59XG5cbi5zdGF0dXMubm90LXJlYWR5IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZmNDc1NywgI2ZmMzc0Mik7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLnN0YXR1cy5vZmZsaW5lIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2UxMWQ0OCwgI2I5MWMxYyk7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLnN0YXR1cy5pbnZpdGUge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZmZhNTAyLCAjZmY2MzQ4KTtcbiAgY29sb3I6IHdoaXRlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5zdGF0dXMuaW4tYmF0dGxlIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzhiNWNmNiwgIzZkMjhkOSk7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLnN0YXR1cy5lbmQtc2NyZWVuIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2Y1OWUwYiwgI2Q5NzcwNik7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLnN0YXR1cy5zZWxlY3RpbmctY2hhcmFjdGVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzEwYjk4MSwgIzA1OTY2OSk7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLyogVGlwcyBzdHJpcCBpbnNpZGUgdGhlIG1hdGNobWFraW5nIGNhcmQgKi9cbiNtbS10aXBzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIG1hcmdpbjogMTJweCAwIDA7XG4gIHBhZGRpbmc6IDlweCAxNHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDgsIDE4LCA1OCwgMC41NSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzAsIDU4LCAxMzgsIDAuNSk7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5tbS10aXBzLWljb24ge1xuICBmb250LXNpemU6IDEzcHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuI3RpcHMtdGV4dCB7XG4gIGZvbnQtZmFtaWx5OiBcIlBvcHBpbnNcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogI2JmZGJmZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zNXMgZWFzZTtcbn1cblxuLyogRm9ydG5pdGUtc3R5bGUgYm90dG9tIFVJICovXG4jYm90dG9tLWJhciB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgaGVpZ2h0OiA3MHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTM1ZGVnLFxuICAgIHJnYmEoMjAsIDIwLCA1MCwgMC4zKSxcbiAgICByZ2JhKDQwLCA0MCwgODAsIDAuMylcbiAgKTtcbiAgYm94LXNoYWRvdzogMCAtNHB4IDIwcHggcmdiYSgwLCAyMTIsIDI1NSwgMC4zKTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMCAzMHB4O1xuICB6LWluZGV4OiAxMDAwO1xuICBwYWRkaW5nLWJvdHRvbTogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xufVxuXG4vKiBTY29wZSBkcm9wZG93biBiYXNlbGluZSBzdHlsZXMgdG8gdGhlIGJvdHRvbSBiYXIgb25seSAqL1xuI2JvdHRvbS1iYXIgc2VsZWN0LmRyb3Bkb3duIHtcbiAgcGFkZGluZzogMTJweCAyMHB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgb3V0bGluZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIC8qIFJlbW92ZSBuYXRpdmUgYXJyb3cgYW5kIGFkZCBhIGNvbnNpc3RlbnQgY2hldnJvbiAqL1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4OyAvKiBzcGFjZSBmb3IgY2hldnJvbiAqL1xuICBjb2xvci1zY2hlbWU6IGRhcms7IC8qIGhpbnQgVUEgdG8gdXNlIGRhcmsgcG9wdXBzICovXG59XG5cbi8qIEN1c3RvbSBjaGV2cm9uIHVzaW5nIGFuIGlubGluZSBTVkcgKHdoaXRlKSAqL1xuI2JvdHRvbS1iYXIgI2NoYXJhY3RlcixcbiNib3R0b20tYmFyICNtb2RlLFxuI2JvdHRvbS1iYXIgI21hcCB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiJTIzZmZmZmZmXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiPjxwb2x5bGluZSBwb2ludHM9XCI2IDkgMTIgMTUgMTggOVwiLz48L3N2Zz4nKTtcbn1cblxuLyogSW1wcm92ZSByZWFkYWJpbGl0eSBpbiB0aGUgbmF0aXZlIHBvcHVwIGxpc3QgKi9cbiNib3R0b20tYmFyIHNlbGVjdC5kcm9wZG93biBvcHRpb24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE4LCAyMiwgNDAsIDAuOTgpO1xuICBjb2xvcjogI2Y1ZjdmZjtcbn1cbi8qIFNlbGVjdGVkIG9wdGlvbiBiYWNrZ3JvdW5kIHRpbnQgcGVyIGRyb3Bkb3duIChiZXN0LWVmZm9ydDsgVUEtZGVwZW5kZW50KSAqL1xuI2JvdHRvbS1iYXIgI2NoYXJhY3RlciBvcHRpb246Y2hlY2tlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNjEsIDEyOSwgMTc3LCAwLjg1KTtcbn1cbiNib3R0b20tYmFyICNtb2RlIG9wdGlvbjpjaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg4OCwgMTc4LCA1NSwgMC44NSk7XG59XG4jYm90dG9tLWJhciAjbWFwIG9wdGlvbjpjaGVja2VkIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDYsIDE1MCwgNTMsIDAuODUpO1xufVxuXG4vKiBIaWRlIGRlZmF1bHQgYXJyb3cgaW4gbGVnYWN5IElFICovXG4jYm90dG9tLWJhciBzZWxlY3QuZHJvcGRvd246Oi1tcy1leHBhbmQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBDb25zaXN0ZW50IGZvY3VzIHJpbmcgYmVoYXZpb3Igd2l0aGluIHRoZSBib3R0b20gYmFyICovXG4jYm90dG9tLWJhciBzZWxlY3QuZHJvcGRvd246Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbn1cblxuI2JvdHRvbS1iYXIgI2NoYXJhY3RlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM0ZGExZGMsICMzZDgxYjEpO1xuICBjb2xvcjogd2hpdGU7XG59XG4jYm90dG9tLWJhciAjY2hhcmFjdGVyOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzNkODFiMSwgIzJkNjE5MSk7XG4gIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggcmdiYSg3NywgMTYxLCAyMjAsIDAuNCk7XG59XG4jYm90dG9tLWJhciAjY2hhcmFjdGVyOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiAjNGRhMWRjO1xuICBib3gtc2hhZG93OlxuICAgIDAgMCAwIDJweCByZ2JhKDc3LCAxNjEsIDIyMCwgMC4zNSksXG4gICAgMCA2cHggMjBweCByZ2JhKDc3LCAxNjEsIDIyMCwgMC40KTtcbn1cblxuI2JvdHRvbS1iYXIgI21vZGUge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNDlkMTVkLCAjNThiMjM3KTtcbiAgY29sb3I6IHdoaXRlO1xufVxuI2JvdHRvbS1iYXIgI21vZGU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNThiMjM3LCAjNDhhMjI3KTtcbiAgYm94LXNoYWRvdzogMCA2cHggMjBweCByZ2JhKDczLCAyMDksIDkzLCAwLjQpO1xufVxuI2JvdHRvbS1iYXIgI21vZGU6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICM0OWQxNWQ7XG59XG5cbiNib3R0b20tYmFyICNtYXAge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjY2U5NjM1LCAjOWY5ODE0KTtcbiAgY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTtcbn1cbiNib3R0b20tYmFyICNtYXA6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjOWY5ODE0LCAjOGY4ODA0KTtcbiAgYm94LXNoYWRvdzogMCA2cHggMjBweCByZ2JhKDIwNiwgMTUwLCA1MywgMC40KTtcbn1cbiNib3R0b20tYmFyICNtYXA6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICNjZTk2MzU7XG4gIGJveC1zaGFkb3c6XG4gICAgMCAwIDAgMnB4IHJnYmEoMjA2LCAxNTAsIDUzLCAwLjM1KSxcbiAgICAwIDZweCAyMHB4IHJnYmEoMjA2LCAxNTAsIDUzLCAwLjQpO1xufVxuXG4uZHJvcGRvd24tZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDE1cHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuI21hcCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbiNtb2RlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1vZGUtcGlja2VyLFxuLm1hcC1waWNrZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEwcHg7XG4gIHBhZGRpbmc6IDdweCAxMHB4O1xuXG4gIGhlaWdodDogNDVweDtcbiAgbWluLXdpZHRoOiAyNzBweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDEzNWRlZyxcbiAgICByZ2JhKDksIDk3LCA3MiwgMC41NSksXG4gICAgcmdiYSg4MCwgOCwgMjksIDAuNylcbiAgKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xuICB0cmFuc2l0aW9uOlxuICAgIHRyYW5zZm9ybSAxODBtcyBlYXNlLFxuICAgIGJveC1zaGFkb3cgMTgwbXMgZWFzZSxcbiAgICBib3JkZXItY29sb3IgMTgwbXMgZWFzZSxcbiAgICBiYWNrZ3JvdW5kIDE4MG1zIGVhc2U7XG59XG5cbi5tb2RlLXBpY2tlcjo6YmVmb3JlLFxuLm1hcC1waWNrZXI6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxMTVkZWcsXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxOCUsXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KSAzMiUsXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSA0OCVcbiAgKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMjAlKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDMyMG1zIGVhc2U7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubW9kZS1waWNrZXI6aG92ZXIsXG4ubWFwLXBpY2tlcjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxMzVkZWcsXG4gICAgcmdiYSg5LCAzMiwgNzYsIDAuNjYpLFxuICAgIHJnYmEoMTksIDMsIDQ3LCAwLjc4KVxuICApO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCkgc2NhbGUoMS4wMSk7XG59XG5cbi5tb2RlLXBpY2tlcjpob3Zlcjo6YmVmb3JlLFxuLm1hcC1waWNrZXI6aG92ZXI6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMjAlKTtcbn1cblxuI21vZGUtcHJldmlldy1pbWcsXG4jbWFwLXByZXZpZXctaW1nIHtcbiAgd2lkdGg6IDcycHg7XG4gIGhlaWdodDogNDBweDtcbiAgYm9yZGVyLXJhZGl1czogN3B4O1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjQ1KTtcbiAgYm94LXNoYWRvdzogMCA2cHggMTRweCByZ2JhKDAsIDAsIDAsIDAuMTgpO1xufVxuXG4jbW9kZS1wcmV2aWV3LW5hbWUsXG4jbWFwLXByZXZpZXctbmFtZSB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICNmZmY7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICBtYXgtd2lkdGg6IDE1NnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1vZGUtcGlja2VyLWNvcHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuI21vZGUtcHJldmlldy1zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICBjb2xvcjogcmdiYSgyMTQsIDIzMiwgMjU1LCAwLjg2KTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNnB4O1xufVxuXG4ubWFwLXNlbGVjdC1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIGdhcDogMThweDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogODYwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5zZWxlY3Rpb24tcG9wdXAtc2Nyb2xsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgcGFkZGluZzogNnB4IDEycHggMjJweDtcbiAgbWFyZ2luOiAwIC0xMnB4IC0xMnB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubWFwLXNlbGVjdGlvbi1wb3B1cC1zY3JvbGwge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnNlbGVjdGlvbi1wb3B1cC1zdGFjayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMTRweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4taGVpZ2h0OiAwO1xufVxuXG4uc2VsZWN0aW9uLXBvcHVwLWJhY2sge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICBtaW4taGVpZ2h0OiAzNnB4O1xuICBwYWRkaW5nOiAwIDE0cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM0Yjk1ZTYsICMzNjc4YzMpO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLmNoYXJhY3Rlci1zZWxlY3QtcG9wdXAgLm1hcC1zZWxlY3QtZ3JpZCB7XG4gIHdpZHRoOiBtaW4oMTAwJSwgNjAwcHgpO1xuICBmbGV4OiAwIDAgYXV0bztcbiAgbWluLWhlaWdodDogYXV0bztcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gIHBhZGRpbmc6IDRweCA2cHggMThweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLm1hcC1zZWxlY3QtY2FyZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiYSgxNTcsIDE5NSwgMjQ5LCAwLjQpO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAxMnB4IDEycHggMTZweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDE4MGRlZyxcbiAgICByZ2JhKDgsIDE3LCAzNCwgMC45NCksXG4gICAgcmdiYSg0LCAxMiwgMjgsIDAuOTgpXG4gICk7XG4gIGNvbG9yOiAjZTVmMGZmO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgaXNvbGF0aW9uOiBpc29sYXRlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIHRyYW5zaXRpb246XG4gICAgdHJhbnNmb3JtIDE4MG1zIGVhc2UsXG4gICAgYm94LXNoYWRvdyAxODBtcyBlYXNlLFxuICAgIGJvcmRlci1jb2xvciAxODBtcyBlYXNlLFxuICAgIGJhY2tncm91bmQgMTgwbXMgZWFzZTtcbn1cblxuLm1hcC1zZWxlY3QtY2FyZDo6YmVmb3JlIHtcbiAgY29udGVudDogbm9uZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5tYXAtc2VsZWN0LWNhcmQ6aG92ZXIsXG4ubWFwLXNlbGVjdC1jYXJkOmZvY3VzLXZpc2libGUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgxOTYsIDIyOSwgMjU1LCAwLjc4KTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDE4MGRlZyxcbiAgICByZ2JhKDEzLCAyNywgNTMsIDAuOTgpLFxuICAgIHJnYmEoNiwgMTUsIDM0LCAxKVxuICApO1xuICBib3gtc2hhZG93OlxuICAgIDAgMTZweCAyOHB4IHJnYmEoMCwgMCwgMCwgMC4yNiksXG4gICAgMCAwIDAgMXB4IHJnYmEoMTI2LCAxOTQsIDI1NSwgMC4yKSBpbnNldDtcbn1cblxuLm1hcC1zZWxlY3QtY2FyZDpob3Zlcjo6YmVmb3JlLFxuLm1hcC1zZWxlY3QtY2FyZDpmb2N1cy12aXNpYmxlOjpiZWZvcmUge1xuICBjb250ZW50OiBub25lO1xufVxuXG4ubWFwLXNlbGVjdC1jYXJkOmhvdmVyIGltZyxcbi5tYXAtc2VsZWN0LWNhcmQ6Zm9jdXMtdmlzaWJsZSBpbWcge1xuICB0cmFuc2Zvcm06IG5vbmU7XG4gIGZpbHRlcjogbm9uZTtcbn1cblxuLm1vZGUtc2VsZWN0LWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDIzMHB4LCAxZnIpKTtcbiAgZ2FwOiAyMHB4O1xuICB3aWR0aDogbWluKDEwMCUsIDc2MHB4KTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDRweCA2cHggMThweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGFsaWduLWNvbnRlbnQ6IHN0YXJ0O1xuICBtaW4taGVpZ2h0OiAwO1xufVxuXG4ubW9kZS1zZWxlY3QtZ3JpZC5zdWJjYXJkcyB7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgxODBweCwgMWZyKSk7XG4gIHdpZHRoOiBtaW4oMTAwJSwgODYwcHgpO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbn1cblxuLm1vZGUtc2VsZWN0LWNhcmQge1xuICBtaW4taGVpZ2h0OiAzMTBweDtcbn1cblxuLm1vZGUtc2VsZWN0LWNhcmQuaXMtZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjc4O1xufVxuXG4ubW9kZS1zZWxlY3QtYmFkZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTJweDtcbiAgcmlnaHQ6IDEycHg7XG4gIHotaW5kZXg6IDE7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBwYWRkaW5nOiA0cHggOHB4O1xuICBmb250LXNpemU6IDhweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogI2ZmZjdkMTtcbiAgYmFja2dyb3VuZDogcmdiYSgxMjIsIDkyLCAyMiwgMC44Nik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyMzAsIDE0OSwgMC41KTtcbn1cblxuLm1vZGUtc2VsZWN0LXN1YnRpdGxlIHtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBmb250LWZhbWlseTogXCJMYXRvXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IHJnYmEoMjIwLCAyMzIsIDI1NSwgMC44OCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICBsZXR0ZXItc3BhY2luZzogMC4xcHg7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4ubW9kZS1zZWxlY3QtbWV0YSB7XG4gIG1hcmdpbi10b3A6IGF1dG87XG4gIHBhZGRpbmctdG9wOiAxNHB4O1xuICBmb250LWZhbWlseTogXCJMYXRvXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDEuMnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogcmdiYSgxNTcsIDE5NSwgMjQ5LCAwLjg4KTtcbn1cblxuLm1vZGUtc2VsZWN0LWVtcHR5IHtcbiAgcGFkZGluZzogMjJweCAxOHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjZTVmMGZmO1xuICBib3JkZXI6IDJweCBkYXNoZWQgcmdiYSgxNTcsIDE5NSwgMjQ5LCAwLjM1KTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYmFja2dyb3VuZDogcmdiYSg2LCAxMywgMjksIDAuOCk7XG59XG5cbi5tYXAtc2VsZWN0LWNhcmQuYWN0aXZlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjE1LCAxMjUsIDAuOCk7XG4gIGJveC1zaGFkb3c6XG4gICAgMCAwIDAgMnB4IHJnYmEoMjU1LCAyMTUsIDEyNSwgMC4yNSksXG4gICAgMCAxNHB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjIyKTtcbn1cblxuLm1hcC1zZWxlY3QtY2FyZCBpbWcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxNjJweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIHRyYW5zaXRpb246IG5vbmU7XG59XG5cbi5jaGFyYWN0ZXItc2VsZWN0LXBvcHVwIC5tYXAtc2VsZWN0LWNhcmQge1xuICB3aWR0aDogbWluKDEwMCUsIDgyMHB4KTtcbn1cblxuLmNoYXJhY3Rlci1zZWxlY3QtcG9wdXAgLm1hcC1zZWxlY3QtZ3JpZCAubWFwLXNlbGVjdC1jYXJkIGltZyB7XG4gIGhlaWdodDogMjIwcHg7XG59XG5cbi5tb2RlLXNlbGVjdC1ncmlkIC5tYXAtc2VsZWN0LWNhcmQsXG4ubW9kZS1zZWxlY3QtZ3JpZC5zdWJjYXJkcyAubWFwLXNlbGVjdC1jYXJkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5tb2RlLXNlbGVjdC1ncmlkLnN1YmNhcmRzIC5tb2RlLXNlbGVjdC1jYXJkIHtcbiAgbWluLWhlaWdodDogMjg1cHg7XG59XG5cbi5tYXAtc2VsZWN0LW5hbWUge1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjVweDtcbiAgdGV4dC1zaGFkb3c6IDAgMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjM1KTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAwIDRweDtcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG5cbi5wcm9maWxlLWNhcmQtcmFyaXR5IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBwYWRkaW5nOiAycHggOHB4O1xuICBmb250LXNpemU6IDlweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbn1cblxuLnByb2ZpbGUtY2FyZC1yYXJpdHkuY29tbW9uIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxMDcsIDExNCwgMTI4LCAwLjcyKTtcbn1cblxuLnByb2ZpbGUtY2FyZC1yYXJpdHkucmFyZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMzcsIDk5LCAyMzUsIDAuODIpO1xufVxuXG4ucHJvZmlsZS1jYXJkLXJhcml0eS5lcGljIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxMjYsIDM0LCAyMDYsIDAuODIpO1xufVxuXG4ucHJvZmlsZS1jYXJkLXJhcml0eS5sZWdlbmRhcnkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIxNywgMTE5LCA2LCAwLjg1KTtcbn1cblxuLnByb2ZpbGUtY2FyZC10aWxlLnJhcmUsXG4ucHJvZmlsZS1jYXJkLXRpbGUuZXBpYyxcbi5wcm9maWxlLWNhcmQtdGlsZS5sZWdlbmRhcnkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5wcm9maWxlLWNhcmQtdGlsZS5yYXJlOjpiZWZvcmUsXG4ucHJvZmlsZS1jYXJkLXRpbGUuZXBpYzo6YmVmb3JlLFxuLnByb2ZpbGUtY2FyZC10aWxlLmxlZ2VuZGFyeTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0xMjAlO1xuICBsZWZ0OiAtNDAlO1xuICB3aWR0aDogMzAlO1xuICBoZWlnaHQ6IDMyMCU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxODBkZWcsXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDIpLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMClcbiAgKTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMjBkZWcpO1xuICBhbmltYXRpb246IGNhcmRHbGltbWVyIDIuOHMgbGluZWFyIGluZmluaXRlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuQGtleWZyYW1lcyBjYXJkR2xpbW1lciB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTE3MCUpIHJvdGF0ZSgyMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQyMCUpIHJvdGF0ZSgyMGRlZyk7XG4gIH1cbn1cblxuLnByb2ZpbGUtY29zdCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbn1cblxuLnByb2ZpbGUtY29zdCBpbWcge1xuICB3aWR0aDogMTNweDtcbiAgaGVpZ2h0OiAxM3B4O1xuICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4jcmVhZHkge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjYjQ5ZTIwLCAjYmRhMzIyKTtcbiAgcGFkZGluZzogMTNweCAzNXB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG4jcmVhZHk6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZDRiYTNhLCAjYzY5OTFiKTtcbn1cblxuI3JlYWR5OmRpc2FibGVkLFxuI3JlYWR5LmlzLWRpc2FibGVkIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgb3BhY2l0eTogMC42ODtcbiAgZmlsdGVyOiBzYXR1cmF0ZSgwLjU1KTtcbn1cblxuLyogQ2FuY2VsIChyZWQpIHZpc3VhbCBzdGF0ZSBmb3IgUmVhZHkgYnV0dG9uICovXG4jcmVhZHkuY2FuY2VsIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZmNDc1NywgI2RjMzU0NSk7XG59XG4jcmVhZHkuY2FuY2VsOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2RjMzU0NSwgI2M4MjMzMyk7XG59XG5cbiN1c2VybmFtZS10ZXh0IHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4jdXNlcm5hbWUtYnV0dG9uIHtcbiAgYm9yZGVyOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbiN1c2VybmFtZS1idXR0b24gI3VzZXJuYW1lLXRleHQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogMTQwcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4uYWNjb3VudCxcbi5wYXJ0eS1idXR0b24sXG4ubW9kZS1waWNrZXIsXG4ubWFwLXBpY2tlcixcbi5tbS1idG4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KSBzYXR1cmF0ZSgxLjE4KTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCkgc2F0dXJhdGUoMS4xOCk7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwIHJnYmEoMCwgMCwgMCwgMC41NSk7XG59XG5cbi5hY2NvdW50OjpiZWZvcmUsXG4ucGFydHktYnV0dG9uOjpiZWZvcmUsXG4ubW9kZS1waWNrZXI6OmJlZm9yZSxcbi5tYXAtcGlja2VyOjpiZWZvcmUsXG4ubW0tYnRuOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOlxuICAgIGxpbmVhci1ncmFkaWVudChcbiAgICAgIDE4MGRlZyxcbiAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSxcbiAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNClcbiAgICApLFxuICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiAwLjk7XG59XG5cbi5hY2NvdW50IHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBiYWNrZ3JvdW5kOlxuICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTU0LCAxNzMsIDY4LCAwLjkpLCByZ2JhKDEzMCwgMTU4LCAyOCwgMC44MikpLFxuICAgIHJnYmEoMTgsIDM0LCAxNywgMC4zOCk7XG4gIHBhZGRpbmc6IDBweCAxMHB4O1xuICBjb2xvcjogd2hpdGU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGJveC1zaGFkb3c6XG4gICAgMHB4IDVweCByZ2IoMTYsIDgwLCAxOSksXG4gICAgMHB4IC01cHggcmdiKDE2LCA4MCwgMTkpLFxuICAgIDVweCAwcHggcmdiKDE2LCA4MCwgMTkpLFxuICAgIC01cHggMHB4IHJnYigxNiwgODAsIDE5KSxcbiAgICAwcHggMTBweCAjMDAwMDAwMzgsXG4gICAgNXB4IDVweCAjMDAwMDAwMzgsXG4gICAgLTVweCA1cHggIzAwMDAwMDM4LFxuICAgIGluc2V0IDBweCA1cHggI2ZmZmZmZjM2O1xufVxuLmFjY291bnQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kOlxuICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTg3LCAxMTksIDYwLCAwLjkyKSwgcmdiYSgxNjIsIDEwMCwgNDIsIDAuODQpKSxcbiAgICByZ2JhKDMyLCAyMSwgMTAsIDAuNDIpO1xufVxuXG4ucGFydHktYnV0dG9uIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDgwcHg7XG4gIGxlZnQ6IDIwcHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgaGVpZ2h0OiAzNXB4O1xuICBiYWNrZ3JvdW5kOlxuICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTA1LCA3MSwgMjU1LCAwLjkpLCByZ2JhKDE0MiwgNTMsIDIyMCwgMC44MikpLFxuICAgIHJnYmEoMTYsIDEyLCA0NCwgMC4zNCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgei1pbmRleDogMTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuLnBhcnR5LWJ1dHRvbiBwIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4ucGFydHktc2VhcmNoLWJ1dHRvbiB7XG4gIGxlZnQ6IDE4MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDQ1cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6XG4gICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg0MywgOTksIDE1MiwgMC45NCksIHJnYmEoNDUsIDk1LCAxODgsIDAuODYpKSxcbiAgICByZ2JhKDEyLCA0MywgMzgsIDAuNCk7XG59XG5cbi5wYXJ0eS1zZWFyY2gtYnV0dG9uOmhvdmVyIHtcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDM0LCAxMjAsIDkzLCAwLjk0KSwgcmdiYSgzMSwgMTI0LCAxMDcsIDAuODYpKSxcbiAgICByZ2JhKDExLCA0NCwgMzksIDAuNCk7XG59XG5cbi5wYXJ0eS1zZXR0aW5ncy1idXR0b24ge1xuICBsZWZ0OiAyNDBweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiA0NXB4O1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOlxuICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTExLCAxMTEsIDExMSwgMC45KSwgcmdiYSg3NSwgNzUsIDc1LCAwLjgyKSksXG4gICAgcmdiYSg4OSwgODksIDg5LCAwLjM2KTtcbn1cblxuLnBhcnR5LXNldHRpbmdzLWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6XG4gICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg3MSwgNzEsIDcxLCAwLjk0KSwgcmdiYSg3NSwgNzUsIDc1LCAwLjgyKSksXG4gICAgcmdiYSg4OSwgODksIDg5LCAwLjM2KTtcbn1cblxuLmxlYWRlcmJvYXJkLWJ1dHRvbiB7XG4gIGxlZnQ6IGF1dG87XG4gIHJpZ2h0OiAyMHB4O1xuICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gIG1pbi13aWR0aDogMDtcbiAgcGFkZGluZzogMCAxMHB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBiYWNrZ3JvdW5kOlxuICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjYsIDEwNSwgMTY3LCAwLjkpLCByZ2JhKDE0LCA4MCwgMTM4LCAwLjgyKSksXG4gICAgcmdiYSgxMCwgMjMsIDQ4LCAwLjM2KTtcbn1cblxuLmxlYWRlcmJvYXJkLWJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6XG4gICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyOSwgMTI2LCAxOTgsIDAuOTQpLCByZ2JhKDE3LCA5NCwgMTYxLCAwLjg2KSksXG4gICAgcmdiYSgxMiwgMjgsIDU1LCAwLjQpO1xufVxuXG4udHJvcGh5LW92ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiA5OTk3O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMjBweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLnRyb3BoeS1vdmVybGF5LWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYmFja2dyb3VuZDpcbiAgICByYWRpYWwtZ3JhZGllbnQoXG4gICAgICBjaXJjbGUgYXQgMTQlIDE2JSxcbiAgICAgIHJnYmEoMjU1LCAyMDEsIDg1LCAwLjE4KSxcbiAgICAgIHRyYW5zcGFyZW50IDQ0JVxuICAgICksXG4gICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgY2lyY2xlIGF0IDg1JSAxOCUsXG4gICAgICByZ2JhKDgxLCAxNzAsIDI1NSwgMC4xOCksXG4gICAgICB0cmFuc3BhcmVudCA0OCVcbiAgICApLFxuICAgIHJnYmEoNSwgMTAsIDIyLCAwLjc0KTtcbn1cblxuLnRyb3BoeS1vdmVybGF5LXBhbmVsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogbWluKDExMDBweCwgOTd2dyk7XG4gIG1heC1oZWlnaHQ6IG1pbig4NjBweCwgOTV2aCk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIGJvcmRlcjogM3B4IHNvbGlkICMxODMzNjI7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxNjVkZWcsXG4gICAgcmdiYSgxNiwgMjgsIDU1LCAwLjk2KSxcbiAgICByZ2JhKDEwLCAxOCwgMzYsIDAuOTgpXG4gICk7XG4gIGJveC1zaGFkb3c6XG4gICAgMCAwIDAgNHB4IHJnYmEoMTY2LCAyMDIsIDI1NSwgMC4yKSxcbiAgICAwIDI0cHggNjBweCByZ2JhKDAsIDAsIDAsIDAuNTQpO1xuICBwYWRkaW5nOiAxNnB4O1xufVxuXG4udHJvcGh5LW92ZXJsYXktaGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAxMnB4O1xuICBtYXJnaW4tYm90dG9tOiAxNHB4O1xufVxuXG4udHJvcGh5LW92ZXJsYXktaGVhZCBoMiB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1mYW1pbHk6IFwiUHJlc3MgU3RhcnQgMlBcIiwgc3lzdGVtLXVpO1xuICBmb250LXNpemU6IGNsYW1wKDEzcHgsIDEuNnZ3LCAyMHB4KTtcbiAgY29sb3I6ICNlZWY4ZmY7XG59XG5cbi50cm9waHktb3ZlcmxheS1oZWFkIHAge1xuICBtYXJnaW46IDZweCAwIDA7XG4gIGNvbG9yOiAjYjdkOGZmO1xuICBmb250LXNpemU6IDEzcHg7XG59XG5cbi50cm9waHktb3ZlcmxheS1jbG9zZSB7XG4gIG1pbi1oZWlnaHQ6IDMwcHg7XG4gIHBhZGRpbmc6IDAgMTRweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2QxNGI0MiwgI2FiMmUyZSk7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4ucGFydHktam9pbi1yZXF1ZXN0LXBhbmVsLFxuLnBhcnR5LWpvaW4tcmVxdWVzdC1vd25lci1wYW5lbCB7XG4gIHdpZHRoOiBtaW4oMzgwcHgsIDkydncpO1xufVxuXG4ucGFydHktam9pbi1yZXF1ZXN0LXBhbmVsIHtcbiAgd2lkdGg6IG1pbig0MjBweCwgOTJ2dyk7XG59XG5cbi5wYXJ0eS1qb2luLXJlcXVlc3Qtb3ZlcmxheSAudHJvcGh5LW92ZXJsYXktYmFja2Ryb3Age1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xufVxuXG4ucGFydHktam9pbi1yZXF1ZXN0LXBhbmVsIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDE2NWRlZyxcbiAgICByZ2JhKDEyLCAxNiwgMjYsIDAuOTgpLFxuICAgIHJnYmEoNiwgMTAsIDE4LCAwLjk5KVxuICApO1xuICBib3JkZXItY29sb3I6IHJnYmEoODMsIDExMSwgMTU0LCAwLjcyKTtcbn1cblxuLnBhcnR5LWpvaW4tcmVxdWVzdC1vd25lci1wYW5lbCB7XG4gIHdpZHRoOiBtaW4oNDIwcHgsIDkydncpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTY1ZGVnLFxuICAgIHJnYmEoMTAsIDE2LCAyOCwgMC45OCksXG4gICAgcmdiYSg2LCAxMCwgMTgsIDAuOTkpXG4gICk7XG4gIGJvcmRlci1jb2xvcjogcmdiYSg4MywgMTExLCAxNTQsIDAuNzIpO1xufVxuXG4ucGFydHktcmVxdWVzdC1iYW5uZXIge1xuICBtYXJnaW4tYm90dG9tOiAxNHB4O1xuICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoOTksIDE3NywgMjU1LCAwLjM4KTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDEzNWRlZyxcbiAgICByZ2JhKDE5LCA0MiwgNzksIDAuODgpLFxuICAgIHJnYmEoMTEsIDIzLCA0NSwgMC45MilcbiAgKTtcbiAgY29sb3I6ICNlOGY1ZmY7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5wYXJ0eS1yZXF1ZXN0LWJhbm5lcltkYXRhLXN0YXR1cz1cInBlbmRpbmdcIl0ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMTAwLCAxODIsIDI1NSwgMC41KTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDEzNWRlZyxcbiAgICByZ2JhKDIwLCA1MiwgOTYsIDAuOSksXG4gICAgcmdiYSgxMSwgMjgsIDU2LCAwLjk2KVxuICApO1xufVxuXG4ucGFydHktcmVxdWVzdC1iYW5uZXJbZGF0YS1zdGF0dXM9XCJhY2NlcHRlZFwiXSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgxMTIsIDIyMSwgMTU0LCAwLjQ4KTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDEzNWRlZyxcbiAgICByZ2JhKDIyLCA3OCwgNDgsIDAuOTIpLFxuICAgIHJnYmEoMTAsIDM5LCAyNCwgMC45NilcbiAgKTtcbn1cblxuLnBhcnR5LXJlcXVlc3QtYmFubmVyW2RhdGEtc3RhdHVzPVwicmVqZWN0ZWRcIl0ge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjMyLCAxMTIsIDExMiwgMC41KTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDEzNWRlZyxcbiAgICByZ2JhKDg1LCAyOCwgMzQsIDAuOTIpLFxuICAgIHJnYmEoNDMsIDE2LCAyMCwgMC45NilcbiAgKTtcbn1cblxuLnBhcnR5LXJlcXVlc3Qtc3VtbWFyeS1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICBnYXA6IDEycHg7XG4gIG1hcmdpbi1ib3R0b206IDE0cHg7XG59XG5cbi5wYXJ0eS1yZXF1ZXN0LXN1bW1hcnktY2FyZCB7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTAzLCAxNDYsIDIwMywgMC4yOCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoOCwgMTgsIDMzLCAwLjc0KTtcbiAgcGFkZGluZzogMTJweDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiA0cHg7XG59XG5cbi5wYXJ0eS1yZXF1ZXN0LXN1bW1hcnktY2FyZCBzcGFuLFxuLnBhcnR5LXJlcXVlc3QtYXR0ZW1wdHMge1xuICBjb2xvcjogIzlmYzJlZjtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ucGFydHktcmVxdWVzdC1zdW1tYXJ5LWNhcmQgc3Ryb25nIHtcbiAgY29sb3I6ICNmNGZiZmY7XG4gIGZvbnQtc2l6ZTogMTVweDtcbn1cblxuLnBhcnR5LXJlcXVlc3QtZm9vdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGdhcDogMTJweDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4ucGFydHktcmVxdWVzdC1hY3Rpb25zLXJvdyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICBnYXA6IDEwcHg7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ucGFydHktcmVxdWVzdC1hY3Rpb25zLXJvdyAucGFydHktcmVxdWVzdC1zdWJtaXQsXG4ucGFydHktcmVxdWVzdC1hY3Rpb25zLXJvdyAucGFydHktcmVxdWVzdC1yZXR1cm4ge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLnBhcnR5LXJlcXVlc3Qtc3VibWl0IHtcbiAgbWluLWhlaWdodDogMzRweDtcbiAgcGFkZGluZzogMCAxNnB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMmM5YWYwLCAjMWQ2ZmMyKTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5wYXJ0eS1yZXF1ZXN0LXN1Ym1pdDpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNzI7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5wYXJ0eS1yZXF1ZXN0LXJldHVybiB7XG4gIG1pbi1oZWlnaHQ6IDM0cHg7XG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzRkNWY3NywgIzMzNDA1NSk7XG4gIGNvbG9yOiAjZjBmN2ZmO1xufVxuXG4ucGFydHktcmVxdWVzdC1vd25lci1saXN0IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAxMnB4O1xuICBtYXgtaGVpZ2h0OiA0NHZoO1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLnBhcnR5LXJlcXVlc3QtZW1wdHkge1xuICBkaXNwbGF5OiBncmlkO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBtaW4taGVpZ2h0OiA4OHB4O1xuICBjb2xvcjogI2I3ZDhmZjtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgYm9yZGVyOiAxcHggZGFzaGVkIHJnYmEoMTAzLCAxNDYsIDIwMywgMC4zNSk7XG4gIGJhY2tncm91bmQ6IHJnYmEoOCwgMTgsIDMzLCAwLjQyKTtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4ucGFydHktcmVxdWVzdC1jYXJkIHtcbiAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg5NCwgMTQwLCAxOTgsIDAuMzQpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTM1ZGVnLFxuICAgIHJnYmEoMTYsIDMxLCA1NiwgMC45NCksXG4gICAgcmdiYSg5LCAxOSwgMzUsIDAuOTgpXG4gICk7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMTBweDtcbn1cblxuLnBhcnR5LXJlcXVlc3QtY2FyZC1oZWFkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAxMnB4O1xufVxuXG4ucGFydHktcmVxdWVzdC1jYXJkLWNvcHkge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDRweDtcbn1cblxuLnBhcnR5LXJlcXVlc3QtY2FyZC1jb3B5IHN0cm9uZyB7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgY29sb3I6ICNmNWZiZmY7XG59XG5cbi5wYXJ0eS1yZXF1ZXN0LWNhcmQtY29weSBzcGFuIHtcbiAgY29sb3I6ICNhOWM4ZWY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnBhcnR5LXJlcXVlc3QtcGlsbCB7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQpO1xuICBwYWRkaW5nOiA1cHggMTBweDtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG59XG5cbi5wYXJ0eS1yZXF1ZXN0LWNhcmQtYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4uam9pbi1yZXF1ZXN0LW92ZXJsYXktb3BlbiAuYmItY2hhdC1sb2JieS13cmFwIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4ucGFydHktcmVxdWVzdC1idXR0b24ge1xuICBtaW4taGVpZ2h0OiAzMnB4O1xuICBwYWRkaW5nOiAwIDE0cHg7XG59XG5cbi5wYXJ0eS1yZXF1ZXN0LWFjY2VwdCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMyZjk0NGYsICMxZjZkM2EpO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLnBhcnR5LXJlcXVlc3QtcmVqZWN0IHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2NmNGM0NCwgI2E5MmYyZCk7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4udHJvcGh5LW92ZXJsYXktc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIyMSwgMTg2LCA3NywgMC40NCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjksIDI5LCAxMywgMC4zNSk7XG4gIGNvbG9yOiAjZmZlZWI5O1xuICBtYXJnaW4tYm90dG9tOiAxNHB4O1xufVxuXG4udHJvcGh5LW92ZXJsYXktc3VtbWFyeSBpbWcge1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4udHJvcGh5LXRyYWNrLWxpc3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAzODBweDtcbiAgbWF4LWhlaWdodDogNzJ2aDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgcGFkZGluZzogMTZweCAxNnB4IDI2cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbiN0cm9waHktdHJhY2stcmFpbC1maWxsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnRyb3BoeS10cmFjay1jYW52YXMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgbWluLWhlaWdodDogMzYwcHg7XG4gIC0tdHJvcGh5LXByb2dyZXNzOiAwJTtcbn1cblxuLnRyb3BoeS10cmFjay1saW5lLXNoZWxsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAyOHB4O1xuICByaWdodDogMjhweDtcbiAgYm90dG9tOiA2NnB4O1xuICBoZWlnaHQ6IDE0cHg7XG59XG5cbi50cm9waHktdHJhY2stbGluZS1iZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYmFja2dyb3VuZDpcbiAgICByZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KFxuICAgICAgOTBkZWcsXG4gICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDkpIDAsXG4gICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDkpIDIycHgsXG4gICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDIycHgsXG4gICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDQ0cHhcbiAgICApLFxuICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmNTliMWMgMCUsICNjZjY4MDggMTAwJSk7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoNjcsIDI2LCAzLCAwLjc4KTtcbiAgYm94LXNoYWRvdzpcbiAgICBpbnNldCAwIDJweCAwIHJnYmEoMjU1LCAyMjAsIDE3MiwgMC40NiksXG4gICAgMCA4cHggMTZweCByZ2JhKDEyLCA2LCAxLCAwLjQ2KTtcbn1cblxuLnRyb3BoeS10cmFjay1saW5lLWZpbGwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDJweDtcbiAgdG9wOiAycHg7XG4gIGhlaWdodDogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6XG4gICAgbGluZWFyLWdyYWRpZW50KFxuICAgICAgOTBkZWcsXG4gICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzQpLFxuICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSAyNSUsXG4gICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzQpIDUwJSxcbiAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikgNzUlLFxuICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM0KVxuICAgICksXG4gICAgbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjNjRlOGZmLCAjMmZhM2ZmIDUyJSwgIzFhNmJlMSk7XG4gIGJhY2tncm91bmQtc2l6ZTpcbiAgICAxMDAlIDEwMCUsXG4gICAgMTAwJSAxMDAlO1xuICBib3gtc2hhZG93OlxuICAgIDAgMCAxNnB4IHJnYmEoNzgsIDIwMiwgMjU1LCAwLjc2KSxcbiAgICBpbnNldCAwIDFweCAwIHJnYmEoMjM1LCAyNTIsIDI1NSwgMC41OCk7XG4gIHRyYW5zaXRpb246IHdpZHRoIDMyMG1zIGVhc2U7XG59XG5cbi50cm9waHktdHJhY2stbGluZS1nbGludCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtM3B4O1xuICBsZWZ0OiBtYXgoNHB4LCB2YXIoLS10cm9waHktcHJvZ3Jlc3MpKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KFxuICAgIGNpcmNsZSxcbiAgICByZ2JhKDE4MCwgMjQwLCAyNTUsIDAuOTgpIDAlLFxuICAgIHJnYmEoMTE2LCAyMTksIDI1NSwgMC43MikgMzUlLFxuICAgIHJnYmEoODAsIDE3NiwgMjU1LCAwKSA3NSVcbiAgKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDlweCByZ2JhKDk5LCAyMDIsIDI1NSwgMC44NikpO1xufVxuXG4udHJvcGh5LXRyYWNrLWNhcmQtcm93IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbn1cblxuLnRyb3BoeS10cmFjay1tYXJrZXItcm93IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAxOHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG59XG5cbi50cm9waHktdHJhY2stcGxheWVyLXBpbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiA0cHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCAjZmZkNTZiLCAjZjA5YzFhIDQ4JSwgI2Q4NzkxMCAxMDAlKTtcbiAgYm9yZGVyOiAycHggc29saWQgIzQwMjEwMDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgcGFkZGluZzogNXB4IDEwcHg7XG4gIGJveC1zaGFkb3c6XG4gICAgMCA4cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMzIpLFxuICAgIDAgMCAxNnB4IHJnYmEoMjU1LCAxOTIsIDk0LCAwLjM4KTtcbiAgei1pbmRleDogNztcbiAgYW5pbWF0aW9uOiB0cm9waHlQaW5Cb2IgMi40cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLnRyb3BoeS10cmFjay1wbGF5ZXItcGluOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiAtMTFweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXItbGVmdDogOXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDlweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWJvdHRvbTogMTFweCBzb2xpZCAjZTU5MDE3O1xufVxuXG4udHJvcGh5LXRyYWNrLXBsYXllci1waW4gaW1nIHtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuLnRyb3BoeS10cmFjay1wbGF5ZXItcGluIHNwYW4ge1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG5Aa2V5ZnJhbWVzIHRyb3BoeVBpbkJvYiB7XG4gIDAlLFxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgwKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC0zcHgpO1xuICB9XG59XG5cbi50cm9waHktbGFuZS1jYXJkIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDEzMnB4O1xuICB3aWR0aDogMTk2cHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiYSgxMywgNTIsIDk0LCAwLjk1KTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgIzFhNGQ4ZCAwJSwgIzExMzY2NCA1MCUsICMwYTI1NDcgMTAwJSk7XG4gIGJveC1zaGFkb3c6XG4gICAgMCAxMHB4IDE4cHggcmdiYSgwLCAwLCAwLCAwLjMpLFxuICAgIGluc2V0IDAgMnB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICBwYWRkaW5nOiAxMHB4O1xuICBkaXNwbGF5OiBncmlkO1xuICBqdXN0aWZ5LWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICB6LWluZGV4OiAzO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOlxuICAgIHRyYW5zZm9ybSAxODBtcyBlYXNlLFxuICAgIGZpbHRlciAxODBtcyBlYXNlLFxuICAgIGJvcmRlci1jb2xvciAyMjBtcyBlYXNlLFxuICAgIGJveC1zaGFkb3cgMjIwbXMgZWFzZTtcbn1cblxuLnRyb3BoeS1sYW5lLWNhcmQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGJhY2tncm91bmQtc2l6ZTogMjQwJSAyNDAlO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwJSA1MCU7XG4gIG9wYWNpdHk6IDAuNTtcbiAgYW5pbWF0aW9uOiB0cm9waHlDYXJkR3JhZGllbnREcmlmdCAxOHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4udHJvcGh5LWxhbmUtY2FyZC1zaGVlbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtNTglO1xuICBsZWZ0OiAtNDQlO1xuICB3aWR0aDogODQlO1xuICBoZWlnaHQ6IDIxMCU7XG4gIHRyYW5zZm9ybTogcm90YXRlKDIyZGVnKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDkwZGVnLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCUsXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIyKSA1MCUsXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlXG4gICk7XG4gIGFuaW1hdGlvbjogdHJvcGh5Q2FyZFNoZWVuIDQuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvcGFjaXR5OiAwLjQ1O1xufVxuXG5Aa2V5ZnJhbWVzIHRyb3BoeUNhcmRTaGVlbiB7XG4gIDAlLFxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEzMCUpIHJvdGF0ZSgyMmRlZyk7XG4gIH1cbiAgMzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTgwJSkgcm90YXRlKDIyZGVnKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHRyb3BoeUNhcmRHcmFkaWVudERyaWZ0IHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUwJTtcbiAgfVxuICA1MCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUwJTtcbiAgfVxufVxuXG4udHJvcGh5LWxhbmUtY2FyZC5jbGFpbWVkOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTIwZGVnLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMikgMCUsXG4gICAgcmdiYSg4MCwgMTQwLCAyNTUsIDAuMSkgMzMlLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMikgNjYlXG4gICk7XG59XG5cbi50cm9waHktbGFuZS1jYXJkLmNsYWltYWJsZTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuICAgIDEyMGRlZyxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDMpIDAlLFxuICAgIHJnYmEoMTM0LCAyNTUsIDE4NiwgMC4xNikgMzMlLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMykgNjYlXG4gICk7XG59XG5cbi50cm9waHktbGFuZS1jYXJkLmxvY2tlZDo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuICAgIDEyMGRlZyxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpIDAlLFxuICAgIHJnYmEoMTIsIDIyLCAzNiwgMC4xOCkgMzMlLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMikgNjYlXG4gICk7XG59XG5cbi50cm9waHktbGFuZS1pdGVtLWdsb3cge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4udHJvcGh5LWxhbmUtaXRlbSB7XG4gIHdpZHRoOiA2MnB4O1xuICBoZWlnaHQ6IDYycHg7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDVweCA4cHggcmdiYSgwLCAwLCAwLCAwLjMyKSk7XG59XG5cbi50cm9waHktbGFuZS1pdGVtLXdyYXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA4NHB4O1xuICBoZWlnaHQ6IDc2cHg7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi50cm9waHktbGFuZS1tZXRhIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICBnYXA6IDNweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4udHJvcGh5LWxhbmUtbWV0YSBzdHJvbmcge1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMS4xO1xuICB0ZXh0LXNoYWRvdzogMCAycHggMCByZ2JhKDAsIDAsIDAsIDAuNSk7XG59XG5cbi50cm9waHktbGFuZS1tZXRhIHNwYW4ge1xuICBjb2xvcjogI2Q3ZWRmZjtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgbWluLWhlaWdodDogMTZweDtcbn1cblxuLnRyb3BoeS10aWVyLWNsYWltIHtcbiAgbWluLWhlaWdodDogMjhweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMmY5NjUyLCAjMjQ3NTQzKTtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cblxuLnRyb3BoeS10aWVyLWNsYWltOmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC42NjtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLnRyb3BoeS10aWVyLWNsYWltLmlzLWJ1c3kge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjOWE3ZDJjLCAjN2E2MTFkKTtcbn1cblxuLnRyb3BoeS1sYW5lLWNhcmQubG9ja2VkIC50cm9waHktdGllci1jbGFpbSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM1YjZjODAsICM0MTUyNjMpO1xufVxuXG4udHJvcGh5LWxhbmUtY2FyZC5jbGFpbWVkIC50cm9waHktdGllci1jbGFpbSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM0ZjZiN2UsICMzYjUwNjApO1xufVxuXG4udHJvcGh5LWxhbmUtY2FyZC5jbGFpbWFibGUge1xuICBib3JkZXItY29sb3I6ICM4NWUyOWY7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNDVkZWcsICMxZjZmNDYgMCUsICMxNzRmMzQgNTAlLCAjMTEzYjI3IDEwMCUpO1xuICBib3gtc2hhZG93OlxuICAgIDAgMTBweCAxOHB4IHJnYmEoMCwgMCwgMCwgMC4zKSxcbiAgICAwIDAgMThweCByZ2JhKDEyMiwgMjM2LCAxNTksIDAuNTIpLFxuICAgIGluc2V0IDAgMnB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI4KTtcbn1cblxuLnRyb3BoeS1sYW5lLWNhcmQubG9ja2VkIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE0NWRlZywgIzEzMzE1MiAwJSwgIzBlMjU0MCA1MCUsICMwODE4MmIgMTAwJSk7XG59XG5cbi50cm9waHktbGFuZS1jYXJkLmNsYWltYWJsZTpob3ZlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC0zcHgpO1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMS4wNSk7XG59XG5cbi50cm9waHktbGFuZS1jYXJkLm1ham9yIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjE4LCAxMTksIDAuOTUpO1xuICBib3gtc2hhZG93OlxuICAgIDAgMTJweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4zNSksXG4gICAgMCAwIDIwcHggcmdiYSgyNTUsIDIxMCwgMTEwLCAwLjMyKSxcbiAgICBpbnNldCAwIDJweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNCk7XG59XG5cbi50cm9waHktbGFuZS1tYXJrZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgd2lkdGg6IGF1dG87XG59XG5cbi50cm9waHktbGFuZS1tYXJrZXItY2hpcCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgbWluLWhlaWdodDogMjRweDtcbiAgcGFkZGluZzogM3B4IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDE0LCA0MiwgNzQsIDAuOTUpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTY1ZGVnLCAjNzRkOGZmLCAjMmI5ZmU4KTtcbiAgY29sb3I6ICNlOGY3ZmY7XG4gIGJveC1zaGFkb3c6XG4gICAgMCAwIDAgMnB4IHJnYmEoOCwgMjMsIDQ2LCAwLjQ1KSxcbiAgICAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjM1KTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogOTAwO1xufVxuXG4udHJvcGh5LWxhbmUtbWFya2VyLWNoaXAgaW1nIHtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuLnRyb3BoeS1sYW5lLW1hcmtlci5jbGFpbWFibGUgLnRyb3BoeS1sYW5lLW1hcmtlci1jaGlwIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE2NWRlZywgI2ZmZTM5YiwgI2Y2YjMyOSk7XG4gIGNvbG9yOiAjM2IyMTAwO1xuICBib3gtc2hhZG93OlxuICAgIDAgMCAwIDJweCByZ2JhKDgsIDIzLCA0NiwgMC40NSksXG4gICAgMCAwIDE0cHggcmdiYSgyNTUsIDIxNSwgMTEwLCAwLjc1KTtcbn1cblxuLnRyb3BoeS1sYW5lLW1hcmtlci5jbGFpbWVkIC50cm9waHktbGFuZS1tYXJrZXItY2hpcCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNjVkZWcsICM5ZmYwYzUsICM0OWJlODMpO1xuICBjb2xvcjogIzBkMzExZTtcbn1cblxuLnRyb3BoeS1sYW5lLW1hcmtlci5sb2NrZWQgLnRyb3BoeS1sYW5lLW1hcmtlci1jaGlwIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE2NWRlZywgIzc2YjllYSwgIzNiODhjOCk7XG59XG5cbi50cm9waHktbGFuZS1tYXJrZXIubWFqb3IgLnRyb3BoeS1sYW5lLW1hcmtlci1jaGlwIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDkzLCA1NSwgMCwgMC45Mik7XG59XG5cbi50cm9waHktbGFuZS1jYXJkLmNsYWltLXN1Y2Nlc3Mge1xuICBhbmltYXRpb246IHRyb3BoeUNsYWltQ2FyZEJ1cnN0IDUyMG1zIGVhc2U7XG59XG5cbi50cm9waHktbGFuZS1tYXJrZXIuY2xhaW0tc3VjY2VzcyB7XG4gIGFuaW1hdGlvbjogdHJvcGh5Q2xhaW1NYXJrZXJQdWxzZSA1NDBtcyBlYXNlO1xufVxuXG4udHJvcGh5LW92ZXJsYXktc3VtbWFyeSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnRyb3BoeS1vdmVybGF5LXN1bW1hcnkucmV3YXJkLXBvcCB7XG4gIGFuaW1hdGlvbjogdHJvcGh5U3VtbWFyeVJld2FyZFBvcCA1MjBtcyBlYXNlO1xufVxuXG4udHJvcGh5LXRyYWNrLWNhbnZhcy5jbGFpbS1mbGFzaCAudHJvcGh5LXRyYWNrLWxpbmUtZmlsbCB7XG4gIGFuaW1hdGlvbjogdHJvcGh5UmFpbENsYWltUHVsc2UgNjQwbXMgZWFzZTtcbn1cblxuLnRyb3BoeS1jbGFpbS1zcGFyayB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDUwJTtcbiAgd2lkdGg6IDZweDtcbiAgaGVpZ2h0OiA2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIGFuaW1hdGlvbjogdHJvcGh5Q2xhaW1TcGFyayB2YXIoLS1zcGFyay1kdXIsIDUyMG1zKSBlYXNlLW91dCBmb3J3YXJkcztcbiAgYW5pbWF0aW9uLWRlbGF5OiB2YXIoLS1zcGFyay1kZWxheSwgMG1zKTtcbn1cblxuLnRyb3BoeS1jbGFpbS1zcGFyay50b25lLWdvbGQge1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCAjZmZmN2M2IDAlLCAjZmZjOTVjIDY0JSwgI2ZmYjQyZiAxMDAlKTtcbn1cblxuLnRyb3BoeS1jbGFpbS1zcGFyay50b25lLWJsdWUge1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCAjZGJmNWZmIDAlLCAjNzRkMmZmIDYyJSwgIzNhOTZmZiAxMDAlKTtcbn1cblxuQGtleWZyYW1lcyB0cm9waHlDbGFpbVNwYXJrIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMC4yKTtcbiAgfVxuICAxOCUge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShcbiAgICAgICAgY2FsYygtNTAlICsgdmFyKC0tc3BhcmstZHgpKSxcbiAgICAgICAgY2FsYygtNTAlICsgdmFyKC0tc3BhcmstZHkpKVxuICAgICAgKVxuICAgICAgc2NhbGUoMC45KTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHRyb3BoeUNsYWltQ2FyZEJ1cnN0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSBzY2FsZSgxKTtcbiAgfVxuICAzNSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSBzY2FsZSgxLjA2KTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB0cm9waHlDbGFpbU1hcmtlclB1bHNlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSBzY2FsZSgxKTtcbiAgfVxuICA0NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSBzY2FsZSgxLjE0KTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2NhbGUoMSk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyB0cm9waHlSYWlsQ2xhaW1QdWxzZSB7XG4gIDAlIHtcbiAgICBib3gtc2hhZG93OlxuICAgICAgMCAwIDE2cHggcmdiYSg3OCwgMjAyLCAyNTUsIDAuNzYpLFxuICAgICAgaW5zZXQgMCAxcHggMCByZ2JhKDIzNSwgMjUyLCAyNTUsIDAuNTgpO1xuICB9XG4gIDUwJSB7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgIDAgMCAyOHB4IHJnYmEoMTQwLCAyMjYsIDI1NSwgMC45MiksXG4gICAgICBpbnNldCAwIDFweCAwIHJnYmEoMjM1LCAyNTIsIDI1NSwgMC44Nik7XG4gIH1cbiAgMTAwJSB7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgIDAgMCAxNnB4IHJnYmEoNzgsIDIwMiwgMjU1LCAwLjc2KSxcbiAgICAgIGluc2V0IDAgMXB4IDAgcmdiYSgyMzUsIDI1MiwgMjU1LCAwLjU4KTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHRyb3BoeVN1bW1hcnlSZXdhcmRQb3Age1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxuICA0NSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNik7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgfVxufVxuXG4udHJvcGh5LXRyYWNrLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLFxuLmxlYWRlcmJvYXJkLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgaGVpZ2h0OiAxMHB4O1xuICB3aWR0aDogMTBweDtcbn1cblxuLnRyb3BoeS10cmFjay1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayxcbi5sZWFkZXJib2FyZC1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gIGJhY2tncm91bmQ6IHJnYmEoOCwgMjAsIDQwLCAwLjcyKTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG59XG5cbi50cm9waHktdHJhY2stbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIsXG4ubGVhZGVyYm9hcmQtbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjNTdiOWZmLCAjMmY3ZGQ3KTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTg1LCAyMjUsIDI1NSwgMC41NSk7XG59XG5cbi50cm9waHktdHJhY2stbGlzdCxcbi5sZWFkZXJib2FyZC1saXN0IHtcbiAgc2Nyb2xsYmFyLWNvbG9yOiAjMmY3ZGQ3IHJnYmEoOCwgMjAsIDQwLCAwLjcyKTtcbn1cblxuLmxlYWRlcmJvYXJkLXBhbmVsIHtcbiAgd2lkdGg6IG1pbig4NDBweCwgOTZ2dyk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkge1xuICAubGVhZGVyYm9hcmQtcGFuZWwge1xuICAgIHdpZHRoOiBtaW4oNTIwcHgsIDg4dncpO1xuICB9XG59XG5cbi5wYXJ0eS1kaXNjb3ZlcnktcGFuZWwge1xuICB3aWR0aDogbWluKDY0MHB4LCA0NnZ3KTtcbiAgbWF4LWhlaWdodDogbWluKDc2MHB4LCA5MnZoKTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIGF1dG8gYXV0byAxZnI7XG4gIGdhcDogMTBweDtcbn1cblxuLnBhcnR5LWRpc2NvdmVyeS1zZWFyY2gtcm93IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSBhdXRvO1xuICBnYXA6IDIwcHg7XG59XG5cbi5wYXJ0eS1kaXNjb3Zlcnktc2VhcmNoLXJvdyBpbnB1dCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5wYXJ0eS1kaXNjb3ZlcnktaW5wdXQsXG4ucGFydHktcHVibGljLW5hbWUtaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAzMHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDU0LCA1NCwgNTQsIDAuNSk7XG4gIGJvcmRlcjogbm9uZTtcbiAgcGFkZGluZzogMCAxNnB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxldHRlci1zcGFjaW5nOiAtMXB4O1xuICBjb2xvcjogI2UyZThmMDtcbiAgZm9udC1mYW1pbHk6IFwiUHJlc3MgU3RhcnQgMlBcIiwgXCJMYXRvXCIsIHNhbnMtc2VyaWY7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaGFkb3c6XG4gICAgMHB4IDVweCBibGFjayxcbiAgICAwcHggLTVweCBibGFjayxcbiAgICA1cHggMHB4IGJsYWNrLFxuICAgIC01cHggMHB4IGJsYWNrLFxuICAgIGluc2V0IDBweCA1cHggIzAwMDAwMDM4O1xufVxuXG4ucGFydHktZGlzY292ZXJ5LWlucHV0OmZvY3VzLFxuLnBhcnR5LXB1YmxpYy1uYW1lLWlucHV0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDogcmdiYSg4NiwgODYsIDg2LCAwLjQpO1xufVxuXG4ucGFydHktZGlzY292ZXJ5LWlucHV0OjpwbGFjZWhvbGRlcixcbi5wYXJ0eS1wdWJsaWMtbmFtZS1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2EwYWVjMDtcbn1cblxuLnBhcnR5LWRpc2NvdmVyeS1yZWZyZXNoIHtcbiAgaGVpZ2h0OiAzMHB4O1xuICBwYWRkaW5nOiAwIDE0cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMyZDc4ZDUsICMxZjU5YWYpO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLnBhcnR5LWRpc2NvdmVyeS1zdGF0dXMsXG4ucGFydHktc2V0dGluZ3Mtc3RhdHVzIHtcbiAgbWluLWhlaWdodDogMThweDtcbiAgY29sb3I6ICNiN2Q4ZmY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLnBhcnR5LWRpc2NvdmVyeS1saXN0IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiAxMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG59XG5cbi5wYXJ0eS1kaXNjb3ZlcnktY2FyZCB7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTIxLCAxODIsIDI0MCwgMC4zKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDE1MGRlZyxcbiAgICByZ2JhKDEzLCAzMiwgNTksIDAuOSksXG4gICAgcmdiYSg4LCAyMCwgNDIsIDAuOTQpXG4gICk7XG4gIHBhZGRpbmc6IDE0cHg7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMTJweDtcbn1cblxuLnBhcnR5LWRpc2NvdmVyeS1jYXJkLWhlYWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIGF1dG87XG4gIGdhcDogMTJweDtcbiAgYWxpZ24taXRlbXM6IHN0YXJ0O1xufVxuXG4ucGFydHktZGlzY292ZXJ5LWNhcmQtaGVhZCA+IGRpdjpmaXJzdC1jaGlsZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMTJweDtcbn1cblxuLnBhcnR5LWRpc2NvdmVyeS10aXRsZSB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogI2YyZjhmZjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLnBhcnR5LWRpc2NvdmVyeS1pbmZvLXJvdyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvIGF1dG8gYXV0bztcbiAgZ2FwOiAxNnB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ucGFydHktZGlzY292ZXJ5LW1ldGEge1xuICBjb2xvcjogI2I3ZDhmZjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnBhcnR5LWRpc2NvdmVyeS1tZXRhLWxhYmVsIHtcbiAgY29sb3I6ICM4ZWI4ZTg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuM3B4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ucGFydHktZGlzY292ZXJ5LW1ldGEtdmFsdWUge1xuICBjb2xvcjogI2VjZjZmZjtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ucGFydHktZGlzY292ZXJ5LW1lbWJlcnMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxMjBweCwgMWZyKSk7XG4gIGdhcDogOHB4O1xufVxuXG4ucGFydHktZGlzY292ZXJ5LW1lbWJlciB7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMTUsIDE4MCwgMjM1LCAwLjI4KTtcbiAgYmFja2dyb3VuZDogcmdiYSgxMCwgMjQsIDQ1LCAwLjc2KTtcbiAgcGFkZGluZzogOHB4O1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDMycHggMWZyO1xuICBnYXA6IDhweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnBhcnR5LWRpc2NvdmVyeS1tZW1iZXIgaW1nIHtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMzJweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuLnBhcnR5LWRpc2NvdmVyeS1tZW1iZXItbmFtZSB7XG4gIGNvbG9yOiAjZWNmNmZmO1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ucGFydHktZGlzY292ZXJ5LW1lbWJlci1jaGFyIHtcbiAgY29sb3I6ICNhNWNkZjg7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5wYXJ0eS1kaXNjb3Zlcnktam9pbiB7XG4gIGp1c3RpZnktc2VsZjogZW5kO1xuICBtaW4taGVpZ2h0OiAzNHB4O1xuICBwYWRkaW5nOiAwIDE0cHg7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMmE5NjUwLCAjMWY3NjQwKTtcbiAgYWxpZ24tc2VsZjogc3RhcnQ7XG59XG5cbi5wYXJ0eS1zZXR0aW5ncy1wYW5lbCB7XG4gIHdpZHRoOiBtaW4oNTQwcHgsIDk0dncpO1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDEwcHg7XG59XG5cbi5wYXJ0eS1zZXR0aW5ncy1wYW5lbCAuZm9ybS1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5wYXJ0eS12aXNpYmlsaXR5LXRvZ2dsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIGNvbG9yOiAjZTJmM2ZmO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5wYXJ0eS12aXNpYmlsaXR5LXRvZ2dsZSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICB3aWR0aDogMjJweDtcbiAgaGVpZ2h0OiAyMnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGFjY2VudC1jb2xvcjogIzRmYzNmNztcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTM1ZGVnLFxuICAgIHJnYmEoMTUsIDc2LCAxMjksIDAuOSksXG4gICAgcmdiYSg4LCA0OCwgODEsIDAuOSlcbiAgKTtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiYSg3OSwgMTk1LCAyNDcsIDAuNSk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4ucGFydHktdmlzaWJpbGl0eS10b2dnbGUgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDc5LCAxOTUsIDI0NywgMC44KTtcbiAgYm94LXNoYWRvdzogMCAwIDhweCByZ2JhKDc5LCAxOTUsIDI0NywgMC4zKTtcbn1cblxuLnBhcnR5LXZpc2liaWxpdHktdG9nZ2xlIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDEzNWRlZyxcbiAgICByZ2JhKDc2LCAxNzUsIDgwLCAwLjkyKSxcbiAgICByZ2JhKDU2LCAxNDIsIDYwLCAwLjkyKVxuICApO1xuICBib3JkZXItY29sb3I6IHJnYmEoMTI5LCAxOTksIDEzMiwgMC44KTtcbiAgYm94LXNoYWRvdzogMCAwIDEycHggcmdiYSgxMjksIDE5OSwgMTMyLCAwLjQpO1xufVxuXG4ucGFydHktdmlzaWJpbGl0eS10b2dnbGUgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQ6OmFmdGVyIHtcbiAgY29udGVudDogXCLinJNcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjVweDtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuNCk7XG59XG5cbi5wYXJ0eS1wdWJsaWMtbmFtZS1sYWJlbCxcbi5wYXJ0eS12aXNpYmlsaXR5LXRvZ2dsZS1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiAjZjdmYWZjO1xuICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5wYXJ0eS1zZXR0aW5ncy1oaW50IHtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogIzhlYjhlODtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuXG4ucGFydHktc2V0dGluZ3MtYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi5wYXJ0eS1zZXR0aW5ncy1zYXZlIHtcbiAgbWluLWhlaWdodDogMzRweDtcbiAgcGFkZGluZzogMCAxNHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzJhOTY1MCwgIzFmNzY0MCk7XG59XG5cbi5sZWFkZXJib2FyZC1saXN0IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiA4cHg7XG4gIG1heC1oZWlnaHQ6IDY0dmg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmc6IDEwcHggNnB4IDEycHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5sZWFkZXJib2FyZC1yb3cge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDcwcHggNzRweCAxZnIgMTcwcHg7XG4gIGdhcDogMTBweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMTRweCAxNHB4O1xuICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTQ1ZGVnLFxuICAgIHJnYmEoMTAsIDIyLCA0MywgMC45MiksXG4gICAgcmdiYSg3LCAxNiwgMzEsIDAuOTIpXG4gICk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTIyLCAxODAsIDI0MSwgMC4yOCk7XG4gIGNvbG9yOiAjZGVlZWZmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5sZWFkZXJib2FyZC1yb3c6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMTY4LCAyMTAsIDI1NSwgMC42NSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KSBzY2FsZSgxLjAxKTtcbiAgYm94LXNoYWRvdzogMCAxNHB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjI2KTtcbn1cblxuLmxlYWRlcmJvYXJkLXJvdy50b3AtMSxcbi5sZWFkZXJib2FyZC1yb3cudG9wLTIsXG4ubGVhZGVyYm9hcmQtcm93LnRvcC0zIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubGVhZGVyYm9hcmQtcm93LnRvcC0xOjpiZWZvcmUsXG4ubGVhZGVyYm9hcmQtcm93LnRvcC0yOjpiZWZvcmUsXG4ubGVhZGVyYm9hcmQtcm93LnRvcC0zOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTEwZGVnLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCUsXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSAzNSUsXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE2KSA1MCUsXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKSA2NSUsXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlXG4gICk7XG4gIGJhY2tncm91bmQtc2l6ZTogMjQwJSAxMDAlO1xuICBhbmltYXRpb246IGxlYWRlcmJvYXJkVG9wR2xvd0RyaWZ0IDlzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmxlYWRlcmJvYXJkLXJvdy50b3AtMSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDIxNSwgMTEwLCAwLjU4KTtcbiAgYm94LXNoYWRvdzogMCAwIDEycHggcmdiYSgyNTUsIDIxNSwgMTEwLCAwLjE4KTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDE0NWRlZyxcbiAgICByZ2JhKDc3LCA1OCwgMTEsIDAuMjUpLFxuICAgIHJnYmEoMTIxLCA5MywgMjcsIDAuMjUpXG4gICk7XG59XG5cbi5sZWFkZXJib2FyZC1yb3cudG9wLTMge1xuICBib3JkZXItY29sb3I6IHJnYmEoMjEyLCAyMjAsIDIzMywgMC41NSk7XG4gIGJveC1zaGFkb3c6IDAgMCAxMnB4IHJnYmEoMjEyLCAyMjAsIDIzMywgMC4xNCk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxNDVkZWcsXG4gICAgcmdiYSg2MiwgNTAsIDEzLCAwLjIpLFxuICAgIHJnYmEoNjAsIDQ4LCA3LCAwLjIpXG4gICk7XG59XG5cbi5sZWFkZXJib2FyZC1yb3cudG9wLTIge1xuICBib3JkZXItY29sb3I6IHJnYmEoMTk4LCAxMzcsIDg4LCAwLjU2KTtcbiAgYm94LXNoYWRvdzogMCAwIDEycHggcmdiYSgxOTgsIDEzNywgODgsIDAuMTYpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTQ1ZGVnLFxuICAgIHJnYmEoOTgsIDU0LCAyNywgMC4xNSksXG4gICAgcmdiYSg5MCwgNDksIDI5LCAwLjE1KVxuICApO1xufVxuXG5Aa2V5ZnJhbWVzIGxlYWRlcmJvYXJkVG9wR2xvd0RyaWZ0IHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUwJTtcbiAgfVxuICA1MCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUwJTtcbiAgfVxufVxuXG4ubGVhZGVyYm9hcmQtcmFuayB7XG4gIGNvbG9yOiAjZjdkMDZmO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5sZWFkZXJib2FyZC1hdmF0YXIge1xuICB3aWR0aDogNjBweDtcbiAgaGVpZ2h0OiA2MHB4O1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuLmxlYWRlcmJvYXJkLW1haW4ge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDVweDtcbn1cblxuLmxlYWRlcmJvYXJkLW5hbWUge1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAxN3B4O1xufVxuXG4ubGVhZGVyYm9hcmQtdHJvcGhpZXMge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIGNvbG9yOiAjZmZlOGE4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDIwcHg7XG59XG5cbi5sZWFkZXJib2FyZC10cm9waGllcyBpbWcge1xuICB3aWR0aDogMjFweDtcbiAgaGVpZ2h0OiAyMXB4O1xufVxuXG4ubGVhZGVyYm9hcmQtd2lucyB7XG4gIGNvbG9yOiAjYjhkNWZmO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi50cm9waHktb3ZlcmxheS1sb2FkaW5nIHtcbiAgY29sb3I6ICNjNGRlZmQ7XG4gIHBhZGRpbmc6IDE0cHggNnB4O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnBhcnR5LWJ1dHRvbixcbiAgLmxlYWRlcmJvYXJkLWJ1dHRvbiB7XG4gICAgdG9wOiA2OHB4O1xuICAgIGZvbnQtc2l6ZTogOXB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgfVxuXG4gIC5wYXJ0eS1zZWFyY2gtYnV0dG9uIHtcbiAgICBsZWZ0OiAxNjBweDtcbiAgfVxuXG4gIC5wYXJ0eS1zZXR0aW5ncy1idXR0b24ge1xuICAgIGxlZnQ6IDMwMHB4O1xuICB9XG5cbiAgLmxlYWRlcmJvYXJkLXJvdyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0OHB4IDU4cHggMWZyO1xuICAgIGdhcDogNnB4O1xuICB9XG5cbiAgLmxlYWRlcmJvYXJkLXRyb3BoaWVzIHtcbiAgICBncmlkLWNvbHVtbjogMjtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG5cbiAgLmxlYWRlcmJvYXJkLXdpbnMge1xuICAgIGdyaWQtY29sdW1uOiAzO1xuICB9XG5cbiAgLnRyb3BoeS10cmFjay1saXN0IHtcbiAgICBtaW4taGVpZ2h0OiAzODBweDtcbiAgICBwYWRkaW5nOiAxMnB4IDEwcHggMjJweDtcbiAgfVxuXG4gIC50cm9waHktdHJhY2stY2FudmFzIHtcbiAgICBtaW4taGVpZ2h0OiAzNjBweDtcbiAgfVxuXG4gIC50cm9waHktbGFuZS1jYXJkIHtcbiAgICB3aWR0aDogMTc2cHg7XG4gICAgYm90dG9tOiAxMzRweDtcbiAgICBwYWRkaW5nOiA4cHg7XG4gIH1cblxuICAudHJvcGh5LXRyYWNrLXBsYXllci1waW4ge1xuICAgIHBhZGRpbmc6IDRweCA4cHg7XG4gIH1cblxuICAudHJvcGh5LXRyYWNrLXBsYXllci1waW4gc3BhbiB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICB9XG5cbiAgLnRyb3BoeS1sYW5lLW1hcmtlciB7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cblxuICAudHJvcGh5LWxhbmUtbWFya2VyLWNoaXAge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBtaW4taGVpZ2h0OiAyMnB4O1xuICAgIHBhZGRpbmc6IDNweCA4cHg7XG4gIH1cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnRyb3BoeS10cmFjay1wbGF5ZXItcGluLFxuICAudHJvcGh5LWxhbmUtY2FyZDo6YmVmb3JlLFxuICAudHJvcGh5LWxhbmUtY2FyZC1zaGVlbixcbiAgLnRyb3BoeS1sYW5lLWNhcmQuY2xhaW0tc3VjY2VzcyxcbiAgLnRyb3BoeS1sYW5lLW1hcmtlci5jbGFpbS1zdWNjZXNzLFxuICAudHJvcGh5LXRyYWNrLWNhbnZhcy5jbGFpbS1mbGFzaCAudHJvcGh5LXRyYWNrLWxpbmUtZmlsbCxcbiAgLnRyb3BoeS1vdmVybGF5LXN1bW1hcnkucmV3YXJkLXBvcCxcbiAgLnRyb3BoeS1jbGFpbS1zcGFyayB7XG4gICAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5wYXJ0eS1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOlxuICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTE1LCA4NiwgMjQ3LCAwLjk0KSwgcmdiYSgxNTgsIDgwLCAyMjcsIDAuODYpKSxcbiAgICByZ2JhKDIyLCAxNSwgNTUsIDAuMzgpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi8qIERyYWcgYW5kIGRyb3AgdmlzdWFsIGZlZWRiYWNrIC0gbGVzcyBvYm5veGlvdXMgKi9cbi5wbGF0Zm9ybS5kcmFnLW92ZXIge1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMS4yKSBkcm9wLXNoYWRvdygwIDAgMTBweCAjZmZmZjAwKTtcbn1cblxuLyogRW1wdHkgc2xvdCBzdHlsaW5nIC0gbW9yZSBzdWJ0bGUgKi9cbi5jaGFyYWN0ZXItc2xvdC5lbXB0eSB7XG4gIGJvcmRlcjogMnB4IGRhc2hlZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XG59XG5cbi5zbG90LWxldmVsLWJhZGdlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0xMHB4O1xuICBsZWZ0OiAtMTBweDtcbiAgd2lkdGg6IDQ1cHg7XG4gIGhlaWdodDogNDVweDtcbiAgei1pbmRleDogMTQ7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KSBzY2FsZSgwLjk2KTtcbiAgdHJhbnNpdGlvbjpcbiAgICBvcGFjaXR5IDE2MG1zIGVhc2UsXG4gICAgdHJhbnNmb3JtIDE2MG1zIGVhc2U7XG4gIGFuaW1hdGlvbjogYmFkZ2VQb3AgNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5Aa2V5ZnJhbWVzIGJhZGdlUG9wIHtcbiAgMCUge1xuICAgIHJvdGF0ZTogLTVkZWc7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpIHNjYWxlKDAuOTgpO1xuICB9XG4gIDUwJSB7XG4gICAgcm90YXRlOiAyZGVnO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgycHgpIHNjYWxlKDEpO1xuICB9XG4gIDEwMCUge1xuICAgIHJvdGF0ZTogLTVkZWc7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpIHNjYWxlKDAuOTgpO1xuICB9XG59XG5cbi5jaGFyYWN0ZXItc2xvdC5oYXMtbGV2ZWwgLnNsb3QtbGV2ZWwtYmFkZ2Uge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7XG59XG5cbi5zbG90LWxldmVsLWJhZGdlIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMTBweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4zNCkpO1xufVxuXG4vKiBQYXJ0eSBpbnZpdGUgcG9wdXAgc3R5bGluZyB3aXRoIGhpZ2hlciB6LWluZGV4ICovXG4ucGFydHktcG9wdXAge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzJmMmYyZiwgIzFmMWYxZik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgYm94LXNoYWRvdzogMCA0cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIHotaW5kZXg6IDEwMDAwO1xuICBmb250LXNpemU6IDEycHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbn1cblxuI3lvdXItc2xvdC0xOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVhNWE1YTFjO1xufVxuLmNoYXJhY3Rlci1zbG90OmhvdmVyOjphZnRlcixcbi5jaGFyYWN0ZXItc2xvdDpob3Zlcjo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmNoYXJhY3Rlci1zbG90OmhvdmVyIC5zd2l0Y2gtY2hhcmFjdGVyLFxuLmNoYXJhY3Rlci1zbG90W2RhdGEtaXMtY3VycmVudC11c2VyPVwidHJ1ZVwiXTpob3ZlciAuc3dpdGNoLWNoYXJhY3RlciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC0xMGRlZyk7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygxLjA1KTtcbn1cblxuLmNoYXJhY3Rlci1zbG90OmhvdmVyIC5jaGFyYWN0ZXItc3ByaXRlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpIHNjYWxlKDEuMDQpO1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgOHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpKSBicmlnaHRuZXNzKDEuMDMpO1xufVxuXG4uY2hhcmFjdGVyLXNsb3QuY2hhcmFjdGVyLXNwbGFzaDo6YmVmb3JlIHtcbiAgb3BhY2l0eTogMTtcbiAgYW5pbWF0aW9uOiBsb2JieVNwbGFzaFNoZWVuIDUyMG1zIGVhc2Utb3V0IGZvcndhcmRzO1xufVxuXG4uY2hhcmFjdGVyLXNsb3QuY2hhcmFjdGVyLXNwbGFzaDo6YWZ0ZXIge1xuICBvcGFjaXR5OiAxO1xuICBhbmltYXRpb246IGxvYmJ5U3BsYXNoQmxvb20gNjIwbXMgY3ViaWMtYmV6aWVyKDAuMTYsIDAuODQsIDAuMzEsIDEpIGZvcndhcmRzO1xufVxuXG4uY2hhcmFjdGVyLXNsb3QuY2hhcmFjdGVyLXNwbGFzaCAuY2hhcmFjdGVyLXNwcml0ZSB7XG4gIGFuaW1hdGlvbjogbG9iYnlTcGxhc2hTcHJpdGUgNTIwbXMgY3ViaWMtYmV6aWVyKDAuMTYsIDAuODQsIDAuMzEsIDEpO1xufVxuXG5Aa2V5ZnJhbWVzIGxvYmJ5U3BsYXNoQmxvb20ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMC44NTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNTgpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjM1KTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGxvYmJ5U3BsYXNoU2hlZW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMC43O1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMTIpO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgbG9iYnlTcGxhc2hTcHJpdGUge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjg4KSB0cmFuc2xhdGVZKDhweCk7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApKSBicmlnaHRuZXNzKDEuMTgpO1xuICB9XG4gIDQ4JSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEyKSB0cmFuc2xhdGVZKC02cHgpO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDIycHggcmdiYSgyNTUsIDI0MywgMTk1LCAwLjU1KSkgYnJpZ2h0bmVzcygxLjA4KTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjUpKSBicmlnaHRuZXNzKDEpO1xuICB9XG59XG5cbkBtZWRpYSAoaG92ZXI6IG5vbmUpIGFuZCAocG9pbnRlcjogY29hcnNlKSBhbmQgKG1heC1oZWlnaHQ6IDUyMHB4KSBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgI25hdmJhciB7XG4gICAgaGVpZ2h0OiA0MnB4O1xuICAgIHBhZGRpbmc6IDNweCBjYWxjKDhweCArIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpKSAzcHhcbiAgICAgIGNhbGMoOHB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7XG4gIH1cblxuICAjbmF2YmFyIGgyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgI25hdmJhci1yaWdodCB7XG4gICAgZ2FwOiA2cHg7XG4gIH1cblxuICAucmVzb3VyY2VzIHtcbiAgICBnYXA6IDNweDtcbiAgfVxuXG4gIC5yZXNvdXJjZXMgcCxcbiAgI3VzZXJuYW1lLWJ1dHRvbiAjdXNlcm5hbWUtdGV4dCB7XG4gICAgZm9udC1zaXplOiA4cHg7XG4gIH1cblxuICAjdXNlcm5hbWUtYnV0dG9uICN1c2VybmFtZS10ZXh0IHtcbiAgICBtYXgtd2lkdGg6IDg4cHg7XG4gIH1cblxuICAucmVzb3VyY2VzIGltZyB7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICB9XG5cbiAgLmFjY291bnQsXG4gIC5mdWxsc2NyZWVuLXRvZ2dsZSxcbiAgLnRyb3BoeS1yZXNvdXJjZSB7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIHBhZGRpbmc6IDAgNnB4O1xuICAgIGZvbnQtc2l6ZTogOHB4O1xuICB9XG5cbiAgLnBhcnR5LWJ1dHRvbixcbiAgLmxlYWRlcmJvYXJkLWJ1dHRvbiB7XG4gICAgdG9wOiA1MHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBmb250LXNpemU6IDhweDtcbiAgfVxuXG4gIC5wYXJ0eS1idXR0b24ge1xuICAgIGxlZnQ6IDhweDtcbiAgfVxuXG4gIC5wYXJ0eS1zZWFyY2gtYnV0dG9uIHtcbiAgICBsZWZ0OiAxMjJweDtcbiAgICB3aWR0aDogMzhweDtcbiAgfVxuXG4gIC5wYXJ0eS1zZXR0aW5ncy1idXR0b24ge1xuICAgIGxlZnQ6IDE3MHB4O1xuICAgIHdpZHRoOiAzOHB4O1xuICB9XG5cbiAgLmxlYWRlcmJvYXJkLWJ1dHRvbiB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogOHB4O1xuICB9XG5cbiAgI2xvYmJ5LWFyZWEge1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1iYi12aWV3cG9ydC1oZWlnaHQsIDEwMGR2aCkgLSA5MnB4KTtcbiAgICBtYXJnaW4tdG9wOiA2cHg7XG4gIH1cblxuICAjYm90dG9tLWJhciB7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIHBhZGRpbmc6IDAgY2FsYyg4cHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSlcbiAgICAgIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSBjYWxjKDhweCArIGVudihzYWZlLWFyZWEtaW5zZXQtbGVmdCkpO1xuICB9XG5cbiAgLmRyb3Bkb3duLWdyb3VwIHtcbiAgICBnYXA6IDZweDtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwdncgLSA5NnB4KTtcbiAgfVxuXG4gIC5tb2RlLXBpY2tlcixcbiAgLm1hcC1waWNrZXIge1xuICAgIG1pbi13aWR0aDogMTU0cHg7XG4gICAgaGVpZ2h0OiAzNHB4O1xuICAgIHBhZGRpbmc6IDRweCA3cHg7XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAjbW9kZS1wcmV2aWV3LWltZyxcbiAgI21hcC1wcmV2aWV3LWltZyB7XG4gICAgd2lkdGg6IDQ4cHg7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICB9XG5cbiAgI21vZGUtcHJldmlldy1uYW1lLFxuICAjbWFwLXByZXZpZXctbmFtZSB7XG4gICAgZm9udC1zaXplOiA5cHg7XG4gICAgbWF4LXdpZHRoOiA5NnB4O1xuICB9XG5cbiAgI21vZGUtcHJldmlldy1zdWJ0aXRsZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICNyZWFkeSB7XG4gICAgbWluLXdpZHRoOiA3MnB4O1xuICAgIGhlaWdodDogMzRweDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgcGFkZGluZzogOHB4IDE0cHg7XG4gIH1cblxuICAubW9kZS0xIC5wbGF0Zm9ybSB7XG4gICAgLS1wbGF0Zm9ybS13aWR0aDogY2xhbXAoMTkwcHgsIDQ1dncsIDI2MHB4KTtcbiAgfVxuXG4gIC5tb2RlLTIgLnBsYXRmb3JtIHtcbiAgICAtLXBsYXRmb3JtLXdpZHRoOiBjbGFtcCgxNTVweCwgMzZ2dywgMjEwcHgpO1xuICB9XG5cbiAgLm1vZGUtMyAucGxhdGZvcm0ge1xuICAgIC0tcGxhdGZvcm0td2lkdGg6IGNsYW1wKDEzMHB4LCAzMXZ3LCAxNzVweCk7XG4gIH1cblxuICAuY2hhcmFjdGVyLXNsb3Qge1xuICAgIHdpZHRoOiBtaW4oMTV2dywgNzBweCk7XG4gICAgaGVpZ2h0OiBtaW4oMTh2aCwgOTBweCk7XG4gICAgbWluLWhlaWdodDogNjBweDtcbiAgfVxuXG4gIC5jaGFyYWN0ZXItc3ByaXRlIHtcbiAgICB3aWR0aDogbWluKDEwdncsIDQwcHgpO1xuICAgIGhlaWdodDogbWluKDEwdncsIDQwcHgpO1xuICB9XG5cbiAgLnVzZXJuYW1lIHtcbiAgICBmb250LXNpemU6IG1pbigydncsIDEwcHgpO1xuICAgIHRvcDogLTIwcHg7XG4gIH1cbn1cblxuLyogUmVzcG9uc2l2ZSBhZGp1c3RtZW50cyBmb3Igc21hbGxlciBzY3JlZW5zICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLm1vZGUtMSAucGxhdGZvcm0ge1xuICAgIC0tcGxhdGZvcm0td2lkdGg6IGNsYW1wKDI1MHB4LCA0MnZ3LCAzNjBweCk7XG4gIH1cblxuICAubW9kZS0yIC5wbGF0Zm9ybSB7XG4gICAgLS1wbGF0Zm9ybS13aWR0aDogY2xhbXAoMjAwcHgsIDMzdncsIDMwMHB4KTtcbiAgfVxuXG4gIC5tb2RlLTIgLnBsYXRmb3JtLnlvdXItdGVhbS0yLFxuICAubW9kZS0yIC5wbGF0Zm9ybS5vcC10ZWFtLTIge1xuICAgIHRvcDogNTUlO1xuICB9XG5cbiAgLm1vZGUtMyAucGxhdGZvcm0ge1xuICAgIC0tcGxhdGZvcm0td2lkdGg6IGNsYW1wKDE1MHB4LCAyN3Z3LCAyMzBweCk7XG4gIH1cblxuICAubW9kZS0zIC5wbGF0Zm9ybS55b3VyLXRlYW0tMixcbiAgLm1vZGUtMyAucGxhdGZvcm0ub3AtdGVhbS0yIHtcbiAgICB0b3A6IDQ1JTtcbiAgfVxuXG4gIC5tb2RlLTMgLnBsYXRmb3JtLnlvdXItdGVhbS0zLFxuICAubW9kZS0zIC5wbGF0Zm9ybS5vcC10ZWFtLTMge1xuICAgIHRvcDogNjUlO1xuICB9XG5cbiAgLmNoYXJhY3Rlci1zbG90IHtcbiAgICB3aWR0aDogbWluKDEydncsIDgwcHgpO1xuICAgIGhlaWdodDogbWluKDE1dmgsIDEwMHB4KTtcbiAgICBtaW4taGVpZ2h0OiA3MHB4O1xuICAgIG1hcmdpbi1ib3R0b206IGNhbGMoLTEgKiB2YXIoLS1sb2JieS1jaGFyYWN0ZXItc2VhbS1vdmVybGFwKSk7XG4gIH1cblxuICAuY2hhcmFjdGVyLXNwcml0ZSB7XG4gICAgd2lkdGg6IG1heCg4dncsIDUwcHgpO1xuICAgIGhlaWdodDogbWF4KDh2dywgNTBweCk7XG4gIH1cblxuICAjbmF2YmFyIHtcbiAgICBoZWlnaHQ6IDQ2cHg7XG4gICAgcGFkZGluZzogNHB4IDEwcHg7XG4gIH1cblxuICAjbmF2YmFyIGgyIHtcbiAgICBtYXJnaW4tbGVmdDogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxuXG4gICNuYXZiYXItcmlnaHQge1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgLnJlc291cmNlcyB7XG4gICAgZ2FwOiA0cHg7XG4gIH1cblxuICAucmVzb3VyY2VzIGltZyB7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICB9XG5cbiAgLmFjY291bnQsXG4gIC5mdWxsc2NyZWVuLXRvZ2dsZSB7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgIGZvbnQtc2l6ZTogOXB4O1xuICB9XG5cbiAgI3VzZXJuYW1lLWJ1dHRvbiAjdXNlcm5hbWUtdGV4dCB7XG4gICAgbWF4LXdpZHRoOiA5MnB4O1xuICB9XG5cbiAgLnBhcnR5LWJ1dHRvbixcbiAgLmxlYWRlcmJvYXJkLWJ1dHRvbiB7XG4gICAgdG9wOiA1NnB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBmb250LXNpemU6IDhweDtcbiAgfVxuXG4gIC5wYXJ0eS1idXR0b24ge1xuICAgIGxlZnQ6IDEwcHg7XG4gIH1cblxuICAucGFydHktc2VhcmNoLWJ1dHRvbiB7XG4gICAgbGVmdDogMTQycHg7XG4gIH1cblxuICAucGFydHktc2V0dGluZ3MtYnV0dG9uIHtcbiAgICBsZWZ0OiAyMDBweDtcbiAgfVxuXG4gIC5sZWFkZXJib2FyZC1idXR0b24ge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IDEwcHg7XG4gIH1cblxuICAjbG9iYnktYXJlYSB7XG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLWJiLXZpZXdwb3J0LWhlaWdodCwgMTAwZHZoKSAtIDEwMHB4KTtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gIH1cblxuICAjdnMge1xuICAgIHdpZHRoOiA3NHB4O1xuICB9XG5cbiAgI2JvdHRvbS1iYXIge1xuICAgIGhlaWdodDogNTRweDtcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAuZHJvcGRvd24tZ3JvdXAge1xuICAgIGdhcDogOHB4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gMTEycHgpO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgfVxuXG4gIC5tb2RlLXBpY2tlcixcbiAgLm1hcC1waWNrZXIge1xuICAgIG1pbi13aWR0aDogMTg4cHg7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIHBhZGRpbmc6IDVweCA4cHg7XG4gIH1cblxuICAjbW9kZS1wcmV2aWV3LWltZyxcbiAgI21hcC1wcmV2aWV3LWltZyB7XG4gICAgd2lkdGg6IDU0cHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICB9XG5cbiAgI21vZGUtcHJldmlldy1uYW1lLFxuICAjbWFwLXByZXZpZXctbmFtZSB7XG4gICAgZm9udC1zaXplOiAxMHB4O1xuICB9XG5cbiAgI21vZGUtcHJldmlldy1zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiA4cHg7XG4gIH1cblxuICAjcmVhZHkge1xuICAgIG1pbi13aWR0aDogODRweDtcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICB9XG5cbiAgLmZ1bGxzY3JlZW4tdG9nZ2xlIHtcbiAgICBtaW4td2lkdGg6IDQycHg7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5wYXJ0eS1zZWFyY2gtYnV0dG9uLFxuICAucGFydHktc2V0dGluZ3MtYnV0dG9uIHtcbiAgICB0b3A6IDEwNnB4O1xuICB9XG5cbiAgLnBhcnR5LXNldHRpbmdzLWJ1dHRvbiB7XG4gICAgbGVmdDogMjBweDtcbiAgfVxuXG4gIC5wYXJ0eS1kaXNjb3ZlcnktbWVtYmVycyB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gIH1cblxuICAubW9kZS0xIC5wbGF0Zm9ybSB7XG4gICAgLS1wbGF0Zm9ybS13aWR0aDogY2xhbXAoMTkwcHgsIDQ1dncsIDI2MHB4KTtcbiAgfVxuXG4gIC5tb2RlLTIgLnBsYXRmb3JtIHtcbiAgICAtLXBsYXRmb3JtLXdpZHRoOiBjbGFtcCgxNTVweCwgMzZ2dywgMjEwcHgpO1xuICB9XG5cbiAgLm1vZGUtMyAucGxhdGZvcm0ge1xuICAgIC0tcGxhdGZvcm0td2lkdGg6IGNsYW1wKDEzMHB4LCAzMXZ3LCAxNzVweCk7XG4gIH1cblxuICAuY2hhcmFjdGVyLXNsb3Qge1xuICAgIHdpZHRoOiBtaW4oMTV2dywgNzBweCk7XG4gICAgaGVpZ2h0OiBtaW4oMTh2aCwgOTBweCk7XG4gICAgbWluLWhlaWdodDogNjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiBjYWxjKC0xICogdmFyKC0tbG9iYnktY2hhcmFjdGVyLXNlYW0tb3ZlcmxhcCkpO1xuICB9XG5cbiAgLmNoYXJhY3Rlci1zcHJpdGUge1xuICAgIHdpZHRoOiBtaW4oMTB2dywgNDBweCk7XG4gICAgaGVpZ2h0OiBtaW4oMTB2dywgNDBweCk7XG4gIH1cblxuICAudXNlcm5hbWUge1xuICAgIGZvbnQtc2l6ZTogbWluKDJ2dywgMTBweCk7XG4gICAgdG9wOiAtMjBweDtcbiAgfVxuXG4gIC5zdGF0dXMge1xuICAgIGZvbnQtc2l6ZTogbWluKDEuNXZ3LCA4cHgpO1xuICAgIGJvdHRvbTogLThweDtcbiAgfVxuXG4gICNuYXZiYXIge1xuICAgIGhlaWdodDogNDJweDtcbiAgICBwYWRkaW5nOiAzcHggOHB4O1xuICB9XG5cbiAgI25hdmJhciBoMiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICNuYXZiYXItcmlnaHQge1xuICAgIGdhcDogNnB4O1xuICB9XG5cbiAgLnJlc291cmNlcyBwLFxuICAjdXNlcm5hbWUtYnV0dG9uICN1c2VybmFtZS10ZXh0IHtcbiAgICBmb250LXNpemU6IDhweDtcbiAgfVxuXG4gIC5yZXNvdXJjZXMgaW1nIHtcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gIH1cblxuICAuYWNjb3VudCxcbiAgLmZ1bGxzY3JlZW4tdG9nZ2xlIHtcbiAgICBoZWlnaHQ6IDI2cHg7XG4gICAgcGFkZGluZzogMCA3cHg7XG4gICAgZm9udC1zaXplOiA4cHg7XG4gIH1cblxuICAucGFydHktc2VhcmNoLWJ1dHRvbixcbiAgLnBhcnR5LXNldHRpbmdzLWJ1dHRvbiB7XG4gICAgdG9wOiAxMDZweDtcbiAgfVxuXG4gIC5wYXJ0eS1zZXR0aW5ncy1idXR0b24ge1xuICAgIGxlZnQ6IDIwcHg7XG4gIH1cblxuICAucGFydHktZGlzY292ZXJ5LW1lbWJlcnMge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG5cbiAgLm1vZGUtMSAucGxhdGZvcm0ge1xuICAgIC0tcGxhdGZvcm0td2lkdGg6IGNsYW1wKDE5MHB4LCA0NXZ3LCAyNjBweCk7XG4gIH1cblxuICAubW9kZS0yIC5wbGF0Zm9ybSB7XG4gICAgLS1wbGF0Zm9ybS13aWR0aDogY2xhbXAoMTU1cHgsIDM2dncsIDIxMHB4KTtcbiAgfVxuXG4gIC5tb2RlLTMgLnBsYXRmb3JtIHtcbiAgICAtLXBsYXRmb3JtLXdpZHRoOiBjbGFtcCgxMzBweCwgMzF2dywgMTc1cHgpO1xuICB9XG5cbiAgLmNoYXJhY3Rlci1zbG90IHtcbiAgICB3aWR0aDogbWluKDE1dncsIDcwcHgpO1xuICAgIGhlaWdodDogbWluKDE4dmgsIDkwcHgpO1xuICAgIG1pbi1oZWlnaHQ6IDYwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogY2FsYygtMSAqIHZhcigtLWxvYmJ5LWNoYXJhY3Rlci1zZWFtLW92ZXJsYXApKTtcbiAgfVxuXG4gIC5jaGFyYWN0ZXItc3ByaXRlIHtcbiAgICB3aWR0aDogbWluKDEwdncsIDQwcHgpO1xuICAgIGhlaWdodDogbWluKDEwdncsIDQwcHgpO1xuICB9XG5cbiAgLnVzZXJuYW1lIHtcbiAgICBmb250LXNpemU6IG1pbigydncsIDEwcHgpO1xuICAgIHRvcDogLTIwcHg7XG4gIH1cblxuICAuc3RhdHVzIHtcbiAgICBmb250LXNpemU6IG1pbigxLjV2dywgOHB4KTtcbiAgICBib3R0b206IC04cHg7XG4gIH1cblxuICAjbG9iYnktYXJlYSB7XG4gICAgaGVpZ2h0OiBjYWxjKHZhcigtLWJiLXZpZXdwb3J0LWhlaWdodCwgMTAwZHZoKSAtIDkwcHgpO1xuICB9XG5cbiAgI2JvdHRvbS1iYXIge1xuICAgIGhlaWdodDogNTBweDtcbiAgICBwYWRkaW5nOiAwIDhweDtcbiAgfVxuXG4gIC5kcm9wZG93bi1ncm91cCB7XG4gICAgbWF4LXdpZHRoOiBjYWxjKDEwMHZ3IC0gOTJweCk7XG4gIH1cblxuICAubW9kZS1waWNrZXIsXG4gIC5tYXAtcGlja2VyIHtcbiAgICBtaW4td2lkdGg6IDE1NnB4O1xuICAgIGhlaWdodDogMzRweDtcbiAgICBwYWRkaW5nOiA0cHggN3B4O1xuICAgIGdhcDogOHB4O1xuICB9XG5cbiAgLm1vZGUtcGlja2VyLWNvcHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAjbW9kZS1wcmV2aWV3LWltZyxcbiAgI21hcC1wcmV2aWV3LWltZyB7XG4gICAgd2lkdGg6IDQ4cHg7XG4gICAgaGVpZ2h0OiAyNnB4O1xuICB9XG5cbiAgI3JlYWR5IHtcbiAgICBtaW4td2lkdGg6IDcwcHg7XG4gICAgaGVpZ2h0OiAzNHB4O1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgfVxuXG4gIC5wYXJ0eS1idXR0b24ge1xuICAgIGxlZnQ6IDhweDtcbiAgfVxuXG4gIC5wYXJ0eS1zZWFyY2gtYnV0dG9uIHtcbiAgICBsZWZ0OiAxMzJweDtcbiAgfVxuXG4gIC5wYXJ0eS1zZXR0aW5ncy1idXR0b24ge1xuICAgIGxlZnQ6IDE4NHB4O1xuICB9XG5cbiAgLmxlYWRlcmJvYXJkLWJ1dHRvbiB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogOHB4O1xuICB9XG59XG5cbiNwcm9maWxlLW92ZXJsYXkge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiA5OTk4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMjBweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLnByb2ZpbGUtb3ZlcmxheS1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGJhY2tncm91bmQ6XG4gICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgY2lyY2xlIGF0IDE4JSAxNSUsXG4gICAgICByZ2JhKDI1NSwgMTkzLCA3NCwgMC4yNCksXG4gICAgICB0cmFuc3BhcmVudCA1MiVcbiAgICApLFxuICAgIHJhZGlhbC1ncmFkaWVudChcbiAgICAgIGNpcmNsZSBhdCA4NSUgMjAlLFxuICAgICAgcmdiYSg0MiwgMTg3LCAyNTUsIDAuMiksXG4gICAgICB0cmFuc3BhcmVudCA1NiVcbiAgICApLFxuICAgIHJnYmEoNiwgMTIsIDI1LCAwLjcyKTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDJweCk7XG59XG5cbi5wcm9maWxlLXBvcHVwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogbWluKDg4MHB4LCA5NnZ3KTtcbiAgbWF4LWhlaWdodDogbWluKDcwMHB4LCA5MnZoKTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHBhZGRpbmc6IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIGJvcmRlcjogM3B4IHNvbGlkICMxMzJkNTk7XG4gIGJhY2tncm91bmQ6XG4gICAgbGluZWFyLWdyYWRpZW50KDE0NWRlZywgcmdiYSgxNiwgMzIsIDY0LCAwLjk2KSwgcmdiYSgxMCwgMjAsIDQyLCAwLjk3KSksXG4gICAgbGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCkpO1xuICBib3gtc2hhZG93OlxuICAgIDAgMCAwIDRweCByZ2JhKDEyMywgMTkxLCAyNTUsIDAuMjQpLFxuICAgIDAgMjRweCA2MHB4IHJnYmEoMCwgMCwgMCwgMC41NSk7XG59XG5cbi5wcm9maWxlLXBvcHVwLWhlYWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTRweDtcbn1cblxuLnByb2ZpbGUtaGVhZC1jb3B5IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ2FwOiA2cHg7XG59XG5cbi5wcm9maWxlLXBvcHVwLWhlYWQgaDIge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtZmFtaWx5OiBcIlByZXNzIFN0YXJ0IDJQXCIsIHN5c3RlbS11aTtcbiAgZm9udC1zaXplOiBjbGFtcCgxNHB4LCAydncsIDIycHgpO1xuICBjb2xvcjogI2U1ZjZmZjtcbiAgdGV4dC1zaGFkb3c6IDAgMnB4IDAgcmdiYSgxNywgNTQsIDEwMywgMC43NSk7XG59XG5cbi5wcm9maWxlLXBvcHVwLXN1YnRpdGxlIHtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogI2E5ZDVmZjtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuXG4ucHJvZmlsZS1jbG9zZSB7XG4gIGhlaWdodDogMzBweDtcbiAgcGFkZGluZzogMCAxNHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZDE0YjQyLCAjYWIyZTJlKTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5wcm9maWxlLXBvcHVwLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgZ2FwOiAxMnB4O1xufVxuXG4ucHJvZmlsZS1wYW5lbCB7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMTMwLCAxOTcsIDI1NSwgMC4zOCk7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIHBhZGRpbmc6IDE0cHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxODBkZWcsXG4gICAgcmdiYSgyMCwgMzgsIDc0LCAwLjg4KSxcbiAgICByZ2JhKDEzLCAyNiwgNTIsIDAuOSlcbiAgKTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xufVxuXG4ucHJvZmlsZS1wYW5lbCBoMyB7XG4gIG1hcmdpbjogMCAwIDEycHg7XG4gIGNvbG9yOiAjZDhlZGZmO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjRweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLnByb2ZpbGUtaGVyby1wYW5lbCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMTJweDtcbn1cblxuLnByb2ZpbGUtaGVyby10b3Age1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAwLjlmcikgbWlubWF4KDI0MHB4LCAxLjJmcikgbWlubWF4KDAsIDAuOWZyKTtcbiAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICBnYXA6IDE2cHg7XG59XG5cbi5wcm9maWxlLWhlcm8tY2VudGVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICBnYXA6IDEycHg7XG59XG5cbi5wcm9maWxlLWhlcm8tc2lkZSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogOHB4O1xufVxuXG4ucHJvZmlsZS1oZXJvLXNpZGUtcmlnaHQge1xuICBhbGlnbi1jb250ZW50OiBzdGFydDtcbn1cblxuLnByb2ZpbGUtbWV0cmljLXN0YWNrLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC44cHg7XG4gIGNvbG9yOiAjOGZjM2Y0O1xuICBwYWRkaW5nLWxlZnQ6IDJweDtcbn1cblxuLnByb2ZpbGUtY2FyZC1zaG93Y2FzZSB7XG4gIHdpZHRoOiBtaW4oMTAwJSwgMjEwcHgpO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5wcm9maWxlLWNhcmQtZWRpdC10cmlnZ2VyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogOHB4O1xuICB0b3A6IDhweDtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHBhZGRpbmc6IDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogMztcbn1cblxuLnByb2ZpbGUtY2FyZC1lZGl0LXRyaWdnZXI6ZGlzYWJsZWQge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5wcm9maWxlLWNhcmQtZWRpdC1iYWRnZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDI1NSwgMjE0LCAxMjMsIDAuOSk7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICMyNjNmN2EsICMxYzJmNWQpO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjM1KTtcbn1cblxuLnByb2ZpbGUtY2FyZC1lZGl0LWJhZGdlIGltZyB7XG4gIHdpZHRoOiAxM3B4O1xuICBoZWlnaHQ6IDEzcHg7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi5wcm9maWxlLWhlcm8tY2FyZC1mcmFtZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAxNHB4IDIycHggcmdiYSgwLCAwLCAwLCAwLjQ1KSk7XG59XG5cbi5wcm9maWxlLWhlcm8tYXZhdGFyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogOTZweDtcbiAgaGVpZ2h0OiA5NnB4O1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNDIlKTtcbn1cblxuLnByb2ZpbGUtaGVyby1hdmF0YXItdHJpZ2dlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5wcm9maWxlLWhlcm8tYXZhdGFyLXRyaWdnZXI6ZGlzYWJsZWQge1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5wcm9maWxlLWhlcm8tYXZhdGFyIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xufVxuXG4ucHJvZmlsZS1pY29uLWVkaXQtYmFkZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA4cHg7XG4gIGJvdHRvbTogOHB4O1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyNTUsIDIxNCwgMTIzLCAwLjkpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMjYzZjdhLCAjMWMyZjVkKTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3gtc2hhZG93OiAwIDhweCAxNnB4IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG59XG5cbi5wcm9maWxlLWljb24tZWRpdC1iYWRnZSBpbWcge1xuICB3aWR0aDogMTNweDtcbiAgaGVpZ2h0OiAxM3B4O1xuICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4ucHJvZmlsZS1oZXJvLWNvcHkge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ucHJvZmlsZS1oZXJvLW5hbWUge1xuICBmb250LWZhbWlseTogXCJQcmVzcyBTdGFydCAyUFwiLCBzeXN0ZW0tdWk7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMTRweCwgMS44dncsIDIwcHgpO1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLnByb2ZpbGUtaGVyby1jbGFzcyB7XG4gIGNvbG9yOiAjZmZlNjlhO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjhweDtcbn1cblxuLnByb2ZpbGUtaGVyby10YWcge1xuICBjb2xvcjogI2E5ZDVmZjtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ucHJvZmlsZS1tZXRyaWMtY2FyZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogNnB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDcsIDE4LCAzOSwgMC41OCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI2LCAxOTEsIDI1NSwgMC4yKTtcbn1cblxuLnByb2ZpbGUtbWV0cmljLWNhcmQgc3BhbiB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICNhOWQ1ZmY7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjRweDtcbn1cblxuLnByb2ZpbGUtbWV0cmljLWNhcmQgc3Ryb25nIHtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLnByb2ZpbGUtbWV0cmljLWNhcmQtZ2VuZXJpYyBzdHJvbmcge1xuICBmb250LXNpemU6IDI2cHg7XG59XG5cbi5wcm9maWxlLWNoYXJhY3Rlci1sZXZlbHMtZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDEzMHB4LCAxZnIpKTtcbiAgZ2FwOiA4cHg7XG59XG5cbi5wcm9maWxlLWNoYXJhY3Rlci1sZXZlbC1jYXJkIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNTcsIDE5NSwgMjQ5LCAwLjM1KTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgcGFkZGluZzogMTBweCA4cHggOHB4O1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDhweDtcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTgwZGVnLFxuICAgIHJnYmEoOCwgMTcsIDM0LCAwLjg0KSxcbiAgICByZ2JhKDQsIDEyLCAyOCwgMC45MilcbiAgKTtcbn1cblxuLnByb2ZpbGUtY2hhcmFjdGVyLWxldmVsLWNhcmQgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogODRweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDZweCAxMHB4IHJnYmEoMCwgMCwgMCwgMC40NSkpO1xufVxuXG4ucHJvZmlsZS1jaGFyYWN0ZXItbGV2ZWwtYmFkZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogLTE0cHg7XG4gIGxlZnQ6IC0xMnB4O1xuICB3aWR0aDogNDJweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICB6LWluZGV4OiAyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnByb2ZpbGUtY2hhcmFjdGVyLWxldmVsLWJhZGdlIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCA4cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuNCkpO1xufVxuXG4ucHJvZmlsZS1jaGFyYWN0ZXItbGV2ZWwtbmFtZSB7XG4gIGNvbG9yOiAjZWFmNWZmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ucHJvZmlsZS1jaGFyYWN0ZXItbGV2ZWwtZW1wdHkge1xuICBjb2xvcjogI2E5ZDVmZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBwYWRkaW5nOiA2cHggMnB4O1xufVxuXG4ucHJvZmlsZS1zdGF0LXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICBwYWRkaW5nOiA3cHggOHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIG1hcmdpbi1ib3R0b206IDZweDtcbiAgYmFja2dyb3VuZDogcmdiYSg3LCAxOCwgMzksIDAuNTgpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyNiwgMTkxLCAyNTUsIDAuMik7XG4gIGNvbG9yOiAjY2ZlOGZmO1xufVxuXG4ucHJvZmlsZS1zdGF0LXJvdyBzdHJvbmcge1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnByb2ZpbGUtZm9ybSB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogNnB4O1xuICBtYXJnaW4tYm90dG9tOiAxNHB4O1xufVxuXG4ucHJvZmlsZS1mb3JtIGxhYmVsIHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogI2I4ZGRmZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMnB4O1xufVxuXG4ucHJvZmlsZS1mb3JtIGlucHV0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNTMsIDIxMSwgMjU1LCAwLjQyKTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDgsIDE4LCAzOCwgMC44NCk7XG4gIGNvbG9yOiAjZjJmOGZmO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuXG4ucHJvZmlsZS1hY3Rpb24tYnRuIHtcbiAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgbWluLWhlaWdodDogMzBweDtcbiAgcGFkZGluZzogMCAxNHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMThhNDYyLCAjMGU4MjU1KTtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5wcm9maWxlLW1lc3NhZ2Uge1xuICBtaW4taGVpZ2h0OiAxOHB4O1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiAjYmZlMmZmO1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5wcm9maWxlLXBhbmVsLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wcm9maWxlLWxvYWRvdXQtbW9kYWwgLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLnByb2ZpbGUtY2FyZHMtcGFuZWwge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4ucHJvZmlsZS1sb2Fkb3V0LW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAzO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMThweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLnByb2ZpbGUtbG9hZG91dC1vdmVybGF5LmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5wcm9maWxlLWxvYWRvdXQtYmFja2Ryb3Age1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDQsIDEwLCAyMiwgMC43Nik7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxcHgpO1xufVxuXG4ucHJvZmlsZS1sb2Fkb3V0LW1vZGFsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogbWluKDc2MHB4LCBjYWxjKDEwMCUgLSAxMnB4KSk7XG4gIG1heC1oZWlnaHQ6IG1pbig2MjBweCwgODB2aCk7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDEzMCwgMTk3LCAyNTUsIDAuNDIpO1xuICBiYWNrZ3JvdW5kOlxuICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMTgsIDM0LCA2NiwgMC45OCksIHJnYmEoMTAsIDIyLCA0NSwgMC45OCkpLFxuICAgIHJnYmEoMTAsIDIyLCA0NSwgMC45Nik7XG4gIHBhZGRpbmc6IDEycHg7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogMTBweDtcbn1cblxuLnByb2ZpbGUtbG9hZG91dC1zZWN0aW9uIHtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLnByb2ZpbGUtbG9hZG91dC1oZWFkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDEwcHg7XG59XG5cbi5wcm9maWxlLWxvYWRvdXQtaGVhZCBoMyB7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6ICNkOGVkZmY7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4ucHJvZmlsZS1jYXJkcy1ncmlkIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTUwcHgsIDFmcikpO1xuICBnYXA6IDEwcHg7XG59XG5cbi5wcm9maWxlLWNhcmQtdGlsZSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTU3LCAxOTUsIDI0OSwgMC40KTtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgcGFkZGluZzogOHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTgwZGVnLFxuICAgIHJnYmEoOCwgMTcsIDM0LCAwLjg4KSxcbiAgICByZ2JhKDQsIDEyLCAyOCwgMC45MilcbiAgKTtcbn1cblxuLnByb2ZpbGUtY2FyZC10aWxlOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpIHNjYWxlKDEuMDIpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMTY3LCAyMjAsIDI1NSwgMC43NSk7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDE4cHggcmdiYSg1NywgMTI3LCAyMTEsIDAuMjgpO1xufVxuXG4ucHJvZmlsZS1jYXJkLXRpbGUge1xuICB0cmFuc2l0aW9uOlxuICAgIHRyYW5zZm9ybSAxNDBtcyBlYXNlLFxuICAgIGJvcmRlci1jb2xvciAxNDBtcyBlYXNlLFxuICAgIGJveC1zaGFkb3cgMTQwbXMgZWFzZTtcbn1cblxuLnByb2ZpbGUtY2FyZC10aWxlIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBhc3BlY3QtcmF0aW86IDY1MCAvIDEyNTA7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgNnB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjQ1KSk7XG59XG5cbi5wcm9maWxlLWljb24tdGlsZSBpbWcge1xuICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4ucHJvZmlsZS1pY29uLWNob2ljZS10aWxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdpZHRoOiAxMDAlO1xuICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICBtaW4taGVpZ2h0OiAwO1xufVxuXG4ucHJvZmlsZS1pY29uLWNob2ljZS10aWxlID4gaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xufVxuXG4ucHJvZmlsZS1pY29uLWNob2ljZS10aWxlOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpIHNjYWxlKDEuMDIpO1xuICBib3gtc2hhZG93OiAwIDhweCAxOHB4IHJnYmEoNTcsIDEyNywgMjExLCAwLjMpO1xufVxuXG4ucHJvZmlsZS1pY29uLWNob2ljZS10aWxlLmlzLXVub3duZWQgPiBpbWcge1xuICBmaWx0ZXI6IGJyaWdodG5lc3MoMC41NCkgc2F0dXJhdGUoMC44KTtcbn1cblxuLnByb2ZpbGUtaWNvbi1jaG9pY2UtdGlsZS5pcy1zZWxlY3RlZCB7XG4gIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gIGJveC1zaGFkb3c6XG4gICAgaW5zZXQgMCAwIDAgNHB4IHJnYmEoMTMyLCAyMjUsIDE3MiwgMC45NiksXG4gICAgMCAwIDAgMnB4IHJnYmEoMjgsIDc0LCA0NiwgMC44MiksXG4gICAgMCAwIDE4cHggcmdiYSgxMzIsIDIyNSwgMTcyLCAwLjQpO1xufVxuXG4ucHJvZmlsZS1pY29uLWNob2ljZS10aWxlOmRpc2FibGVkIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ucHJvZmlsZS1pY29uLWNob2ljZS10aWxlIHtcbiAgdHJhbnNpdGlvbjpcbiAgICB0cmFuc2Zvcm0gMTQwbXMgZWFzZSxcbiAgICBib3gtc2hhZG93IDE0MG1zIGVhc2U7XG59XG5cbi5wcm9maWxlLWljb24tbmFtZS1iYWRnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTBweDtcbiAgdG9wOiAxMHB4O1xuICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpO1xuICBwYWRkaW5nOiAzcHggOHB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYmFja2dyb3VuZDogcmdiYSg1LCAxMywgMjgsIDAuODIpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEzNywgMTg1LCAyNDUsIDAuNTUpO1xuICBjb2xvcjogI2VhZjVmZjtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogODAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLnByb2ZpbGUtaWNvbi1nZW0tYmFkZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxMHB4O1xuICBib3R0b206IDEwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgcGFkZGluZzogM3B4IDdweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoNSwgMTMsIDI4LCAwLjgyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjYsIDE5MSwgMjU1LCAwLjQ0KTtcbiAgY29sb3I6ICNkN2VjZmY7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cblxuLnByb2ZpbGUtaWNvbi1nZW0tYmFkZ2UgaW1nIHtcbiAgd2lkdGg6IDEycHg7XG4gIGhlaWdodDogMTJweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuLnByb2ZpbGUtaWNvbi1saW1pdGVkLXRhZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDEwcHg7XG4gIHRvcDogMTBweDtcbiAgcGFkZGluZzogMnB4IDZweDtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAxOTgsIDE5OCwgMC42KTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2I0MzMzMywgIzg2MjIyMik7XG4gIGNvbG9yOiAjZmZmMGYwO1xuICBmb250LXNpemU6IDlweDtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4O1xufVxuXG4ucHJvZmlsZS1pY29uLWxvY2stb3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLnByb2ZpbGUtaWNvbi1sb2NrLW92ZXJsYXkgaW1nIHtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDhweCAxNHB4IHJnYmEoMCwgMCwgMCwgMC41NSkpO1xuICBvcGFjaXR5OiAwLjk1O1xufVxuXG4ucHJvZmlsZS1jYXJkLW1ldGEge1xuICBtYXJnaW4tdG9wOiA2cHg7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogM3B4O1xuICBjb2xvcjogI2Q4ZWNmZjtcbiAgZm9udC1zaXplOiAxMXB4O1xufVxuXG4ucHJvZmlsZS1jYXJkLW1ldGEgc3Ryb25nIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnByb2ZpbGUtY2FyZC1hY3Rpb25zIHtcbiAgbWFyZ2luLXRvcDogN3B4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogNnB4O1xufVxuXG4ucHJvZmlsZS1jYXJkLXN0YXRlIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogIzlmZDJmZjtcbn1cblxuLnByb2ZpbGUtY2FyZC1idG4ge1xuICBtaW4taGVpZ2h0OiAyOHB4O1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzJkNzhkNSwgIzFmNTlhZik7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4ucHJvZmlsZS1jYXJkLWJ0bjpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNjU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLnByb2ZpbGUtc2xvdC1tZW51IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMjA0MDtcbiAgbWluLXdpZHRoOiAxODBweDtcbiAgcGFkZGluZzogOHB4O1xuICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDEzMCwgMTk3LCAyNTUsIDAuMzgpO1xuICBiYWNrZ3JvdW5kOlxuICAgIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMTYsIDMyLCA2NCwgMC45NyksIHJnYmEoMTAsIDIwLCA0MiwgMC45OCkpLFxuICAgIHJnYmEoMTAsIDIwLCA0MiwgMC45Nik7XG4gIGJveC1zaGFkb3c6XG4gICAgMCAxOHB4IDQycHggcmdiYSgwLCAwLCAwLCAwLjQyKSxcbiAgICAwIDAgMCA0cHggcmdiYSgxMjMsIDE5MSwgMjU1LCAwLjE0KTtcbn1cblxuLnByb2ZpbGUtc2xvdC1tZW51W2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ucHJvZmlsZS1zbG90LW1lbnUtaGVhZCB7XG4gIHBhZGRpbmc6IDZweCA4cHggMTBweDtcbiAgY29sb3I6ICNkOGVkZmY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuM3B4O1xufVxuXG4ucHJvZmlsZS1zbG90LW1lbnUtYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogOHB4O1xufVxuXG4ucHJvZmlsZS1zbG90LW1lbnUtYnRuIHtcbiAgbWluLWhlaWdodDogMzRweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgcGFkZGluZzogMCAxMnB4O1xuICBmb250LXNpemU6IDEwcHg7XG4gIGNvbG9yOiAjZmZmO1xufVxuXG4ucHJvZmlsZS1zbG90LW1lbnUtYnRuW2hpZGRlbl0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ucHJvZmlsZS1zbG90LW1lbnUtYnRuLnZpZXcge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMmQ3OGQ1LCAjMWY1OWFmKTtcbn1cblxuLnByb2ZpbGUtc2xvdC1tZW51LWJ0bi5vd25lciB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM5YzZkMTgsICNjNDhiMWQpO1xufVxuXG4ucHJvZmlsZS1zbG90LW1lbnUtYnRuLmtpY2sge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjY2M0MDQwLCAjYTkyNDI0KTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDg4MHB4KSB7XG4gIC5wcm9maWxlLXBvcHVwLWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG5cbiAgLnByb2ZpbGUtaGVyby10b3Age1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG5cbiAgLnByb2ZpbGUtaGVyby1zaWRlIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gIH1cblxuICAucHJvZmlsZS1oZXJvLXNpZGUtcmlnaHQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG5cbiAgLnByb2ZpbGUtbWV0cmljLXN0YWNrLXRpdGxlIHtcbiAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICB9XG5cbiAgLnByb2ZpbGUtY2FyZC1zaG93Y2FzZSB7XG4gICAgd2lkdGg6IG1pbigxMDAlLCAxOTBweCk7XG4gIH1cblxuICAucHJvZmlsZS1oZXJvLWF2YXRhciB7XG4gICAgd2lkdGg6IDg4cHg7XG4gICAgaGVpZ2h0OiA4OHB4O1xuICB9XG59XG5cbi8qIE1hdGNobWFraW5nIE92ZXJsYXkgKi9cbi5tbS1vdmVybGF5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogOTk5OTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5tbS1iZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxMjBkZWcsXG4gICAgcmdiYSgxOCwgMjIsIDQwLCAwLjY3KSxcbiAgICByZ2JhKDEwLCAxMiwgMjIsIDAuNylcbiAgKTtcbn1cbi5tbS1iZzo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC01MCU7XG4gIGxlZnQ6IC01MCU7XG4gIHdpZHRoOiAyMDAlO1xuICBoZWlnaHQ6IDIwMCU7XG4gIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChcbiAgICBlbGxpcHNlIGF0IGNlbnRlcixcbiAgICByZ2JhKDAsIDIxMiwgMjU1LCAwLjUpIDAlLFxuICAgIHJnYmEoMCwgMjEyLCAyNTUsIDAuNSkgNDAlLFxuICAgIHRyYW5zcGFyZW50IDcwJVxuICApO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgyNWRlZyk7XG4gIGFuaW1hdGlvbjogYmVhbVB1bHNlIDZzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogZG9u4oCZdCBibG9jayBjbGlja3MgKi9cbn1cblxuQGtleWZyYW1lcyBiZWFtUHVsc2Uge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNWRlZykgc2NhbGUoMC44KTtcbiAgfVxuICA0MCUge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNWRlZykgc2NhbGUoMSk7XG4gIH1cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMjVkZWcpIHNjYWxlKDEpO1xuICB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMjVkZWcpIHNjYWxlKDEuMik7XG4gIH1cbn1cblxuLm1tLWNhcmQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA5NXZ3O1xuICBoZWlnaHQ6IDkwdmg7XG4gIHBhZGRpbmc6IDI4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIGNlbnRlcnMgdGhlIGdyaWQgYmxvY2sgaXRzZWxmICovXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxMzVkZWcsXG4gICAgcmdiYSgyNCwgMjgsIDQ4LCAwLjg1KSxcbiAgICByZ2JhKDE2LCAxOCwgMzAsIDAuODUpXG4gICk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDEwcHggNDBweCByZ2JhKDAsIDAsIDAsIDAuNDUpLFxuICAgIDAgMCAwIDFweCByZ2JhKDAsIDIxMiwgMjU1LCAwLjE1KSBpbnNldDtcbiAgY29sb3I6ICNlOGYyZmY7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgYW5pbWF0aW9uOiBwdWxzZSAyLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG4ubW0taGVhZGluZyB7XG4gIG1hcmdpbjogNDBweDtcbiAgZm9udC1zaXplOiBjbGFtcCgyMHB4LCA1dncsIDYwcHgpO1xuICBmb250LWZhbWlseTogXCJQcmVzcyBTdGFydCAyUFwiLCBcIkxhdG9cIiwgc2Fucy1zZXJpZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDAsIDIxMiwgMjU1LCAwLjMpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4ubW0tcHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAganVzdGlmeS1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgbWFyZ2luLWJvdHRvbTogMTRweDtcbn1cbi5tbS1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMTRweCwgM3Z3LCAyNHB4KTtcbiAgb3BhY2l0eTogMC45O1xufVxuXG4ubW0tbGFiZWw6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgYW5pbWF0aW9uOiBkb3RzIDJzIHN0ZXBzKDQsIGVuZCkgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgZG90cyB7XG4gIDAlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICB9XG4gIDI1JSB7XG4gICAgY29udGVudDogXCIuXCI7XG4gIH1cbiAgNTAlIHtcbiAgICBjb250ZW50OiBcIi4uXCI7XG4gIH1cbiAgNzUlIHtcbiAgICBjb250ZW50OiBcIi4uLlwiO1xuICB9XG4gIDEwMCUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gIH1cbn1cbi5tbS1jb3VudCB7XG4gIGZvbnQtc2l6ZTogY2xhbXAoMjhweCwgNHZ3LCA0MHB4KTtcbiAgbWFyZ2luOiAxNXB4O1xuICBsZXR0ZXItc3BhY2luZzogLTEwcHg7XG4gIGZvbnQtZmFtaWx5OiBcIlByZXNzIFN0YXJ0IDJQXCIsIFwiTGF0b1wiLCBzYW5zLXNlcmlmO1xufVxuXG4ubW0taW5mbyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICBnYXA6IDE2cHg7XG4gIHdpZHRoOiA4MCU7XG59XG5cbi5tbS1tZXRhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAxOHB4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxMzVkZWcsXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KSxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpXG4gICk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG59XG5cbi5tbS1wbGF5ZXJzLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDEyMHB4LCAxODBweCkpO1xuICBnYXA6IDEycHg7XG5cbiAgLyogY2VudGVyIHRoZSBncmlkIGFzIGEgd2hvbGUgYW5kIHRoZSBpdGVtcyB3aXRoaW4gZWFjaCBjZWxsICovXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyAvKiBjZW50ZXJzIHRoZSBjb2x1bW5zIGJsb2NrICovXG4gIGp1c3RpZnktaXRlbXM6IGNlbnRlcjsgLyogY2VudGVycyBpdGVtIGNvbnRlbnQgaW5zaWRlIGVhY2ggY2VsbCAqL1xuXG4gIC8qIG9wdGlvbmFsOiBrZWVwIGl0IGZyb20gZ2V0dGluZyB0b28gd2lkZSAqL1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA5NjBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5tbS1wbGF5ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDEwcHggOHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTM1ZGVnLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNiksXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAyKVxuICApO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIG1pbi1oZWlnaHQ6IDE0MHB4O1xuICBhbmltYXRpb246IHBvcEluIDI2MG1zIGVhc2Utb3V0O1xufVxuXG4ubW0tcGxheWVyIGltZyB7XG4gIHdpZHRoOiA2MHB4O1xuICBoZWlnaHQ6IDYwcHg7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIGZpbHRlcjogZHJvcC1zaGFkb3coMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC41KSk7XG59XG5cbi5tbS1wbGF5ZXIgLm1tLW5hbWUge1xuICBtYXJnaW4tdG9wOiA4cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY29sb3I6ICNmMGY2ZmY7XG59XG5cbi5tbS1wbGF5ZXIucGxhY2Vob2xkZXIge1xuICBvcGFjaXR5OiAwLjU7XG4gIGJvcmRlci1zdHlsZTogZGFzaGVkO1xuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cblxuLm1tLWFjdGlvbnMge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMjhweDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDEycHg7XG59XG5cbi5tbS1maWxsLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5tbS1idG4ge1xuICBiYWNrZ3JvdW5kOlxuICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMjM0LCAyMDAsIDksIDAuOTIpLCByZ2JhKDIxMiwgMTc2LCAwLCAwLjg0KSksXG4gICAgcmdiYSg0MSwgMzEsIDIsIDAuMjYpO1xuICBwYWRkaW5nOiAxNHB4IDI2cHg7XG4gIG1pbi13aWR0aDogMjIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LXNoYWRvdzogMXB4IDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjUpO1xufVxuXG4ubW0tYnRuOmhvdmVyIHtcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDIxMiwgMTc2LCAwLCAwLjk0KSwgcmdiYSgxOTYsIDE2MCwgMCwgMC44NikpLFxuICAgIHJnYmEoNDgsIDM2LCA0LCAwLjMpO1xufVxuXG4ubW0tZmlsbC1ib3RzIHtcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDAsIDE5MywgMjU1LCAwLjkpLCByZ2JhKDAsIDEyOSwgMjE0LCAwLjgyKSksXG4gICAgcmdiYSg0LCAyNiwgNDIsIDAuMjYpO1xufVxuXG4ubW0tZmlsbC1ib3RzOmhvdmVyIHtcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDMxLCAyMDUsIDI1NSwgMC45NCksIHJnYmEoMTMsIDE1MiwgMjM0LCAwLjg2KSksXG4gICAgcmdiYSg3LCAzNCwgNTYsIDAuMyk7XG59XG5cbi5tbS1maWxsLWJvdHMtdW5saW1pdGVkIHtcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDIzMywgODksIDg5LCAwLjkyKSwgcmdiYSgxOTAsIDQ1LCA0NSwgMC44NCkpLFxuICAgIHJnYmEoNTIsIDgsIDgsIDAuMjYpO1xufVxuXG4ubW0tZmlsbC1ib3RzLXVubGltaXRlZDpob3ZlciB7XG4gIGJhY2tncm91bmQ6XG4gICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgyNDcsIDEwOCwgMTA4LCAwLjk0KSwgcmdiYSgyMTYsIDU4LCA1OCwgMC44NikpLFxuICAgIHJnYmEoNzAsIDEwLCAxMCwgMC4zKTtcbn1cblxuLyogQW5pbWF0aW9ucyAqL1xuQGtleWZyYW1lcyBwb3BJbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkBrZXlmcmFtZXMgcHVsc2Uge1xuICAwJSB7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgIDAgMTBweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC40NSksXG4gICAgICAwIDAgMCAxcHggcmdiYSgwLCAyMTIsIDI1NSwgMC4xKSBpbnNldDtcbiAgfVxuICA1MCUge1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAwIDEycHggNDZweCByZ2JhKDAsIDAsIDAsIDAuNSksXG4gICAgICAwIDAgMCAxcHggcmdiYSgwLCAyMTIsIDI1NSwgMC4yKSBpbnNldDtcbiAgfVxuICAxMDAlIHtcbiAgICBib3gtc2hhZG93OlxuICAgICAgMCAxMHB4IDQwcHggcmdiYSgwLCAwLCAwLCAwLjQ1KSxcbiAgICAgIDAgMCAwIDFweCByZ2JhKDAsIDIxMiwgMjU1LCAwLjEpIGluc2V0O1xuICB9XG59XG4iLCIuYmItY2hhdC1yb290IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMDAxMjtcbiAgZm9udC1mYW1pbHk6IFwiTGF0b1wiLCBzYW5zLXNlcmlmO1xuICBjb2xvcjogI2VmZjhmZjtcbn1cblxuLmJiLWNoYXQtYnV0dG9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogM3B4O1xuICBtaW4taGVpZ2h0OiA0OHB4O1xuICBtaW4td2lkdGg6IDU2cHg7XG4gIHBhZGRpbmc6IDZweCA4cHggNnB4O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjgsIDcyLCAxMjEsIDAuOTYpO1xuICBjb2xvcjogI2ZmZjtcbiAgYm94LXNoYWRvdzpcbiAgICAwcHggNXB4IGJsYWNrLFxuICAgIDBweCAtNXB4IGJsYWNrLFxuICAgIDVweCAwcHggYmxhY2ssXG4gICAgLTVweCAwcHggYmxhY2ssXG4gICAgMHB4IDEwcHggIzAwMDAwMDM4LFxuICAgIDVweCA1cHggIzAwMDAwMDM4LFxuICAgIC01cHggNXB4ICMwMDAwMDAzOCxcbiAgICBpbnNldCAwcHggNXB4ICNmZmZmZmYzNjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uYmItY2hhdC1sYXVuY2hlciB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4uYmItY2hhdC1sYXVuY2hlci1pY29uIHtcbiAgd2lkdGg6IDIycHg7XG4gIGhlaWdodDogMjJweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGltYWdlLXJlbmRlcmluZzogYXV0bztcbn1cblxuLmJiLWNoYXQtbGF1bmNoZXItbGFiZWwge1xuICBmb250LXNpemU6IDhweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAwLjNweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1mYW1pbHk6IFwiUHJlc3MgU3RhcnQgMlBcIiwgc3lzdGVtLXVpO1xufVxuXG4uYmItY2hhdC1idXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDM0LCAxMDQsIDE3MCwgMC45OCk7XG59XG5cbi5iYi1jaGF0LWlzLXN1c3BlbmRlZCAuYmItY2hhdC1zZW5kLFxuLmJiLWNoYXQtaXMtc3VzcGVuZGVkIC5iYi1jaGF0LXRleHRhcmVhLFxuLmJiLWNoYXQtaXMtc3VzcGVuZGVkIC5iYi1jaGF0LWhvdmVyLWJ0bixcbi5iYi1jaGF0LWlzLXN1c3BlbmRlZCAuYmItY2hhdC1pbmxpbmUtcmVhY3Rpb24ge1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbi5iYi1jaGF0LWlzLXN1c3BlbmRlZCAuYmItY2hhdC10ZXh0YXJlYSB7XG4gIGNvbG9yOiAjZmNhNWE1O1xuICBib3JkZXItY29sb3I6IHJnYmEoMjM5LCA2OCwgNjgsIDAuNTUpO1xufVxuXG4uYmItY2hhdC1idXR0b24gLmJiLWNoYXQtYmFkZ2UsXG4uYmItY2hhdC1sYXVuY2hlciAuYmItY2hhdC1iYWRnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtN3B4O1xuICByaWdodDogLTdweDtcbiAgbWluLXdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDAgNnB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2ZiNzE4NSwgI2UxMWQ0OCk7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDlweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICBib3gtc2hhZG93OiAwIDhweCAxOHB4IHJnYmEoMjI1LCAyOSwgNzIsIDAuMjgpO1xufVxuXG4uYmItY2hhdC1yZWFjdGlvbi1iYWRnZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICBib3R0b206IC0xMHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gIG1pbi13aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBwYWRkaW5nOiAwIDRweDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYmFja2dyb3VuZDogcmdiYSgxNDgsIDI3LCA1MCwgMC45Nik7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40Mik7XG4gIGJveC1zaGFkb3c6IDAgNXB4IDAgcmdiYSg4NywgMTcsIDMxLCAwLjk1KTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5iYi1jaGF0LXJlYWN0aW9uLWJhZGdlIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uYmItY2hhdC1zaGVsbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI2LCAyMTEsIDI1NSwgMC40Mik7XG4gIGJhY2tncm91bmQ6IHJnYmEoOCwgMTgsIDMwLCAwLjk2KTtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDI0cHggNDhweCByZ2JhKDAsIDAsIDAsIDAuNDUpLFxuICAgIGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbn1cblxuLmJiLWNoYXQtc2hlbGwuaXMtaWRsZSB7XG4gIG9wYWNpdHk6IDAuMzI7XG59XG5cbi5iYi1jaGF0LXNoZWxsLmlzLW11dGVkIHtcbiAgb3BhY2l0eTogMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5iYi1jaGF0LWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiAxMHB4O1xuICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDEyNiwgMjExLCAyNTUsIDAuMTYpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAzMCwgNDgsIDAuOTgpO1xufVxuXG4uYmItY2hhdC10aXRsZSB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBjb2xvcjogI2RmZjNmZjtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4O1xuICBmb250LWZhbWlseTogXCJQcmVzcyBTdGFydCAyUFwiLCBzeXN0ZW0tdWk7XG59XG5cbi5iYi1jaGF0LXN1YnRpdGxlIHtcbiAgbWFyZ2luLXRvcDogNHB4O1xuICBmb250LXNpemU6IDEwcHg7XG4gIGNvbG9yOiAjOGZiOGQ4O1xuICBsaW5lLWhlaWdodDogMS4zNTtcbn1cblxuLmJiLWNoYXQtaGVhZGVyLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDhweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmJiLWNoYXQtbWluaS1idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1pbi13aWR0aDogMjVweDtcbiAgbWluLWhlaWdodDogMjVweDtcbiAgcGFkZGluZzogMCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4yNik7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTQsIDI0LCA0NCwgMC44OCk7XG4gIGNvbG9yOiAjZWZmOGZmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4uYmItY2hhdC1jbG9zZSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNkMTRiNDIsICNhYjJlMmUpO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LWZhbWlseTogXCJQcmVzcyBTdGFydCAyUFwiLCBzeXN0ZW0tdWk7XG4gIGJvcmRlcjogMDtcbiAgYm94LXNoYWRvdzpcbiAgICAwcHggNXB4IGJsYWNrLFxuICAgIDBweCAtNXB4IGJsYWNrLFxuICAgIDVweCAwcHggYmxhY2ssXG4gICAgLTVweCAwcHggYmxhY2ssXG4gICAgMHB4IDEwcHggIzAwMDAwMDM4LFxuICAgIDVweCA1cHggIzAwMDAwMDM4LFxuICAgIC01cHggNXB4ICMwMDAwMDAzOCxcbiAgICBpbnNldCAwcHggNXB4ICNmZmZmZmYzNjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYmItY2hhdC1ib2R5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLWhlaWdodDogMDtcbn1cblxuLmJiLWNoYXQtbWVzc2FnZXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDEwcHg7XG4gIHBhZGRpbmc6IDEycHg7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XG4gIHNjcm9sbGJhci1jb2xvcjogcmdiYSgxMjYsIDIxMSwgMjU1LCAwLjcyKSB0cmFuc3BhcmVudDtcbn1cblxuLmJiLWNoYXQtbWVzc2FnZXM6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgd2lkdGg6IDlweDtcbn1cblxuLmJiLWNoYXQtbWVzc2FnZXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5iYi1jaGF0LW1lc3NhZ2VzOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBib3JkZXI6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1jbGlwOiBjb250ZW50LWJveDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMjYsIDIxMSwgMjU1LCAwLjcpO1xuICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcbn1cblxuLmJiLWNoYXQtbWVzc2FnZXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNDcsIDIyNCwgMjU1LCAwLjkyKTtcbn1cblxuLmJiLWNoYXQtZGl2aWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbjogMnB4IDA7XG4gIGZvbnQtc2l6ZTogOXB4O1xuICBjb2xvcjogIzdkZDNmYztcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4O1xufVxuXG4uYmItY2hhdC1kaXZpZGVyOjpiZWZvcmUsXG4uYmItY2hhdC1kaXZpZGVyOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGhlaWdodDogMXB4O1xuICBmbGV4OiAxIDEgYXV0bztcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDkwZGVnLFxuICAgIHRyYW5zcGFyZW50LFxuICAgIHJnYmEoMTI1LCAyMTEsIDI1MiwgMC42NSksXG4gICAgdHJhbnNwYXJlbnRcbiAgKTtcbn1cblxuLmJiLWNoYXQtZGl2aWRlciBzcGFuIHtcbiAgcGFkZGluZzogMCAxMHB4O1xuICBmb250LWZhbWlseTogXCJQcmVzcyBTdGFydCAyUFwiLCBzeXN0ZW0tdWk7XG59XG5cbi5iYi1jaGF0LW1lc3NhZ2Uge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDM0cHggbWlubWF4KDAsIDFmcik7XG4gIGdhcDogMTBweDtcbiAgYWxpZ24taXRlbXM6IHN0YXJ0O1xufVxuXG4uYmItY2hhdC1tZXNzYWdlLmlzLXNlbGYge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIDM0cHg7XG59XG5cbi5iYi1jaGF0LWF2YXRhciB7XG4gIHdpZHRoOiAzNHB4O1xuICBoZWlnaHQ6IDM0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI2LCAyMTEsIDI1NSwgMC4zNSk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTQsIDI0LCA0NCwgMC44KTtcbn1cblxuLmJiLWNoYXQtYXZhdGFyIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4uYmItY2hhdC1idWJibGUge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDZweDtcbiAgcGFkZGluZzogMTBweCAxMXB4IDlweDtcbiAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjYsIDIxMSwgMjU1LCAwLjE0KTtcbiAgYmFja2dyb3VuZDogcmdiYSgxOSwgMzEsIDUyLCAwLjk0KTtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG5cbi5iYi1jaGF0LW1lc3NhZ2UuaXMtc2VsZiAuYmItY2hhdC1idWJibGUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIzLCA1NywgOTIsIDAuOTUpO1xuICBib3JkZXItY29sb3I6IHJnYmEoMTI1LCAxODksIDI1NSwgMC4zNCk7XG59XG5cbi5iYi1jaGF0LW1lc3NhZ2UtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDhweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGNvbG9yOiAjOWJkMWZmO1xufVxuXG4uYmItY2hhdC1hdXRob3Ige1xuICBjb2xvcjogI2Y2ZmJmZjtcbiAgZm9udC1mYW1pbHk6IFwiUHJlc3MgU3RhcnQgMlBcIiwgc3lzdGVtLXVpO1xuICBmb250LXNpemU6IDhweDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMXB4O1xufVxuXG4uYmItY2hhdC10aW1lIHtcbiAgY29sb3I6ICM3ZmI3ZGY7XG4gIGZvbnQtZmFtaWx5OiBcIlByZXNzIFN0YXJ0IDJQXCIsIHN5c3RlbS11aTtcbiAgZm9udC1zaXplOiA3cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIGxldHRlci1zcGFjaW5nOiAwLjFweDtcbn1cblxuLmJiLWNoYXQtcmVwbHktcHJldmlldyB7XG4gIHBhZGRpbmc6IDdweCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgcmdiYSgxMjUsIDIxMSwgMjUyLCAwLjc1KTtcbiAgYmFja2dyb3VuZDogcmdiYSgxMiwgMjAsIDM0LCAwLjcyKTtcbiAgZm9udC1zaXplOiA4cHg7XG4gIGNvbG9yOiAjYjhkZGY1O1xuICBsaW5lLWhlaWdodDogMS40NTtcbn1cblxuLmJiLWNoYXQtcmVwbHktcHJldmlldy5pcy1saW5rIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYmItY2hhdC1yZXBseS1wcmV2aWV3LmlzLWxpbms6aG92ZXIge1xuICBib3JkZXItbGVmdC1jb2xvcjogcmdiYSgxNDcsIDIxNiwgMjU1LCAwLjk1KTtcbn1cblxuLmJiLWNoYXQtYm9keS10ZXh0IHtcbiAgZm9udC1mYW1pbHk6IFwiTGF0b1wiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICBjb2xvcjogI2VmZjhmZjtcbiAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG4uYmItY2hhdC1tZXNzYWdlLW1ldGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogOHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDI0cHg7XG59XG5cbi5iYi1jaGF0LWhvdmVyLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogNnB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDNweCk7XG4gIHRyYW5zaXRpb246XG4gICAgb3BhY2l0eSAxNDBtcyBlYXNlLFxuICAgIHRyYW5zZm9ybSAxNDBtcyBlYXNlO1xufVxuXG4uYmItY2hhdC1tZXNzYWdlOmhvdmVyIC5iYi1jaGF0LWhvdmVyLWFjdGlvbnMsXG4uYmItY2hhdC1tZXNzYWdlOmZvY3VzLXdpdGhpbiAuYmItY2hhdC1ob3Zlci1hY3Rpb25zIHtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbn1cblxuLmJiLWNoYXQtaG92ZXItcmVhY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDRweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmJiLWNoYXQtaW5saW5lLXJlYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiA1MnB4O1xufVxuXG4uYmItY2hhdC1pbmxpbmUtcmVhY3Rpb24ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi1oZWlnaHQ6IDIwcHg7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjUsIDIxMSwgMjUyLCAwLjM1KTtcbiAgYmFja2dyb3VuZDogcmdiYSgxOCwgMzgsIDYwLCAwLjkpO1xuICBjb2xvcjogI2VmZjhmZjtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5iYi1jaGF0LWlubGluZS1yZWFjdGlvbjpob3Zlcixcbi5iYi1jaGF0LWlubGluZS1yZWFjdGlvbjpmb2N1cy12aXNpYmxlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDE3MCwgMjI3LCAyNTUsIDAuOTUpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDM0LCA4MiwgMTMxLCAwLjk1KTtcbn1cblxuLmJiLWNoYXQtaW5saW5lLXJlYWN0aW9uW2RhdGEtdG9vbHRpcF06aG92ZXI6OmFmdGVyLFxuLmJiLWNoYXQtaW5saW5lLXJlYWN0aW9uW2RhdGEtdG9vbHRpcF06Zm9jdXMtdmlzaWJsZTo6YWZ0ZXIge1xuICBjb250ZW50OiBhdHRyKGRhdGEtdG9vbHRpcCk7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICBib3R0b206IGNhbGMoMTAwJSArIDhweCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICBjb2xvcjogI2YwZjhmZjtcbiAgYmFja2dyb3VuZDogcmdiYSg4LCAxNCwgMjQsIDAuOTYpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyNiwgMjExLCAyNTUsIDAuMzUpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHBhZGRpbmc6IDZweCA4cHg7XG4gIG1pbi13aWR0aDogMTEwcHg7XG4gIHotaW5kZXg6IDI7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDE4cHggcmdiYSgwLCAwLCAwLCAwLjM1KTtcbn1cblxuLmJiLWNoYXQtaW5saW5lLXJlYWN0aW9uLmlzLWFjdGl2ZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgxMjUsIDIxMSwgMjUyLCAwLjk1KTtcbiAgYmFja2dyb3VuZDogcmdiYSgzMywgNzYsIDEyMiwgMC45NSk7XG59XG5cbi5iYi1jaGF0LWlubGluZS1yZWFjdGlvbi5pcy1wb3Age1xuICBhbmltYXRpb246IGJiLXJlYWN0aW9uLXBvcCAyNjBtcyBlYXNlO1xufVxuXG5Aa2V5ZnJhbWVzIGJiLXJlYWN0aW9uLXBvcCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNzYpO1xuICAgIG9wYWNpdHk6IDAuNzU7XG4gIH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMTIpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5iYi1jaGF0LWhvdmVyLWJ0biB7XG4gIG1pbi1oZWlnaHQ6IDIycHg7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjUsIDIxMSwgMjUyLCAwLjIyKTtcbiAgYmFja2dyb3VuZDogcmdiYSg5LCAxOCwgMzAsIDAuODgpO1xuICBjb2xvcjogI2VmZjhmZjtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5iYi1jaGF0LWhvdmVyLWJ0bjpob3Zlcixcbi5iYi1jaGF0LWhvdmVyLWJ0bjpmb2N1cy12aXNpYmxlIHtcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDE3MCwgMjI3LCAyNTUsIDAuOTUpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDM0LCA4MiwgMTMxLCAwLjk1KTtcbn1cblxuLmJiLWNoYXQtaG92ZXItYnRuLmlzLWFjdGl2ZSB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgxMjUsIDIxMSwgMjUyLCAwLjkpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI4LCA2OCwgMTExLCAwLjk2KTtcbn1cblxuLmJiLWNoYXQtdmlldy1jb3VudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNHB4O1xuICBtaW4taGVpZ2h0OiAxOHB4O1xuICBwYWRkaW5nOiAwIDRweDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICM4NmE4YzQ7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYmItY2hhdC12aWV3LWNvdW50OmhvdmVyLFxuLmJiLWNoYXQtdmlldy1jb3VudDpmb2N1cy12aXNpYmxlIHtcbiAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5iYi1jaGF0LXZpZXctY291bnQuaXMtcmVhZCB7XG4gIGNvbG9yOiAjNWJiMmZmO1xufVxuXG4uYmItY2hhdC1tZXNzYWdlLXRhcmdldCAuYmItY2hhdC1idWJibGUge1xuICBib3gtc2hhZG93OlxuICAgIDAgMCAwIDJweCByZ2JhKDEyNSwgMjExLCAyNTIsIDAuOSksXG4gICAgaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG59XG5cbi5iYi1jaGF0LXZpZXdlcnMtcG9wdXAge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAxMDAzMDtcbn1cblxuLmJiLWNoYXQtdmlld2Vycy1wb3B1cC5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uYmItY2hhdC12aWV3ZXJzLWJhY2tkcm9wIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjM4KTtcbn1cblxuLmJiLWNoYXQtdmlld2Vycy1jYXJkIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogbWluKDI4MHB4LCBjYWxjKDEwMHZ3IC0gMjBweCkpO1xuICBtYXgtaGVpZ2h0OiBtaW4oMjQwcHgsIDQ2dmgpO1xuICBvdmVyZmxvdzogYXV0bztcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjYsIDIxMSwgMjU1LCAwLjUpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDksIDIyLCAzNiwgMC45OCk7XG4gIGJveC1zaGFkb3c6IDAgMTZweCAzMHB4IHJnYmEoMCwgMCwgMCwgMC40Mik7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KSBzY2FsZSgwLjk2KTtcbiAgdHJhbnNpdGlvbjpcbiAgICBvcGFjaXR5IDE0MG1zIGVhc2UsXG4gICAgdHJhbnNmb3JtIDE0MG1zIGVhc2U7XG59XG5cbi5iYi1jaGF0LXZpZXdlcnMtY2FyZC5pcy12aXNpYmxlIHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xufVxuXG4uYmItY2hhdC12aWV3ZXJzLWhlYWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiAxMHB4IDEwcHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDEyNiwgMjExLCAyNTUsIDAuMTYpO1xufVxuXG4uYmItY2hhdC12aWV3ZXJzLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBjb2xvcjogI2RmZjNmZjtcbiAgZm9udC1mYW1pbHk6IFwiUHJlc3MgU3RhcnQgMlBcIiwgc3lzdGVtLXVpO1xufVxuXG4uYmItY2hhdC12aWV3ZXJzLWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDZweDtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuLmJiLWNoYXQtdmlld2Vycy1lbXB0eSB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgY29sb3I6ICM5ZGJkZDg7XG4gIHBhZGRpbmc6IDhweCA0cHg7XG59XG5cbi5iYi1jaGF0LXZpZXdlci1yb3cge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDI4cHggMWZyIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiA2cHggOHB4O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEyLCAyMCwgMzQsIDAuNzQpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyNiwgMjExLCAyNTUsIDAuMTIpO1xufVxuXG4uYmItY2hhdC12aWV3ZXItYXZhdGFyIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMjhweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyNiwgMjExLCAyNTUsIDAuMzUpO1xufVxuXG4uYmItY2hhdC12aWV3ZXItYXZhdGFyIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4uYmItY2hhdC12aWV3ZXItbmFtZSB7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgY29sb3I6ICNlNmY1ZmY7XG59XG5cbi5iYi1jaGF0LXZpZXdlci10aW1lIHtcbiAgZm9udC1zaXplOiA5cHg7XG4gIGNvbG9yOiAjOGZiOGQ4O1xufVxuXG4uYmItY2hhdC1jb21wb3NlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMTI2LCAyMTEsIDI1NSwgMC4xNik7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdhcDogOHB4O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDYsIDE0LCAyNCwgMC45Nik7XG59XG5cbi5iYi1jaGF0LXJlcGx5LWJhbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAzMCwgNDgsIDAuOTgpO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyNSwgMTg5LCAyNTUsIDAuMjIpO1xuICBmb250LXNpemU6IDEwcHg7XG4gIGNvbG9yOiAjY2JlYWZmO1xufVxuXG4uYmItY2hhdC1pbnB1dC1yb3cge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIGF1dG87XG4gIGdhcDogOHB4O1xuICBhbGlnbi1pdGVtczogZW5kO1xufVxuXG4uYmItY2hhdC10eXBpbmcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDEwcHg7XG4gIHJpZ2h0OiAxMHB4O1xuICBib3R0b206IGNhbGMoMTAwJSArIDZweCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBtaW4taGVpZ2h0OiAyMnB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmJiLWNoYXQtdHlwaW5nLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5iYi1jaGF0LXR5cGluZy1pY29ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1pbi13aWR0aDogMThweDtcbn1cblxuLmJiLWNoYXQtdHlwaW5nLWljb24ge1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxOTcsIDIyNywgMjU1LCAwLjYpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDE0LCAyNSwgNDYsIDAuOTUpO1xuICBib3gtc2hhZG93OiAwIDRweCA4cHggcmdiYSgwLCAwLCAwLCAwLjI0KTtcbn1cblxuLmJiLWNoYXQtdHlwaW5nLWljb24gKyAuYmItY2hhdC10eXBpbmctaWNvbiB7XG4gIG1hcmdpbi1sZWZ0OiAtN3B4O1xufVxuXG4uYmItY2hhdC10eXBpbmctaWNvbiBpbWcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cblxuLmJiLWNoYXQtdHlwaW5nLWxhYmVsIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5iYi1jaGF0LXR5cGluZy10ZXh0IHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBjb2xvcjogIzhmYzRmNDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5iYi1jaGF0LXR5cGluZy1kb3RzIHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMTJweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgb3BhY2l0eTogMC45O1xufVxuXG4uYmItY2hhdC10ZXh0YXJlYSB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAzNXB4O1xuICBtYXgtaGVpZ2h0OiAxMjBweDtcbiAgcmVzaXplOiBub25lO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yMik7XG4gIGNvbG9yOiAjZTVlZGY3O1xuICBwYWRkaW5nOiAzcHggOHB4O1xuICBmb250LWZhbWlseTogXCJMYXRvXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgYm94LXNoYWRvdzpcbiAgICAwcHggNXB4IGJsYWNrLFxuICAgIDBweCAtNXB4IGJsYWNrLFxuICAgIDVweCAwcHggYmxhY2ssXG4gICAgLTVweCAwcHggYmxhY2ssXG4gICAgaW5zZXQgMHB4IDVweCAjMDAwMDAwMzg7XG59XG5cbi5iYi1jaGF0LXRleHRhcmVhOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjM0KTtcbn1cblxuLmJiLWNoYXQtc2VuZCB7XG4gIG1pbi13aWR0aDogOTRweDtcbiAgbWluLWhlaWdodDogNDBweDtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kOiAjM2Y4NmRhO1xuICBjb2xvcjogI2ZmZjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogXCJQcmVzcyBTdGFydCAyUFwiLCBzeXN0ZW0tdWk7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMnB4O1xuICBib3gtc2hhZG93OlxuICAgIDBweCA1cHggYmxhY2ssXG4gICAgMHB4IC01cHggYmxhY2ssXG4gICAgNXB4IDBweCBibGFjayxcbiAgICAtNXB4IDBweCBibGFjayxcbiAgICAwcHggMTBweCAjMDAwMDAwMzgsXG4gICAgNXB4IDVweCAjMDAwMDAwMzgsXG4gICAgLTVweCA1cHggIzAwMDAwMDM4LFxuICAgIGluc2V0IDBweCA1cHggI2ZmZmZmZjM2O1xufVxuXG4uYmItY2hhdC1zZW5kOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogIzJmNzNiYjtcbn1cblxuLmJiLWNoYXQtc2VuZDphY3RpdmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNXB4KTtcbiAgYm94LXNoYWRvdzpcbiAgICAwcHggNXB4IGJsYWNrLFxuICAgIDBweCAtNXB4IGJsYWNrLFxuICAgIDVweCAwcHggYmxhY2ssXG4gICAgLTVweCAwcHggYmxhY2ssXG4gICAgaW5zZXQgMHB4IDVweCAjMDAwMDAwMzg7XG59XG5cbi5iYi1jaGF0LWRyYXdlci1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2U7XG59XG5cbi5iYi1jaGF0LWRyYXdlci1iYWNrZHJvcC5pcy12aXNpYmxlIHtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi5iYi1jaGF0LWxvYmJ5LXdyYXAge1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogbWluKDQyMHB4LCAxMDB2dyk7XG4gIGhlaWdodDogMTAwZHZoO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmJiLWNoYXQtbG9iYnktbGF1bmNoZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogNTAlO1xuICByaWdodDogMTRweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgd2lkdGg6IDU4cHg7XG4gIG1pbi1oZWlnaHQ6IDU2cHg7XG59XG5cbi5iYi1jaGF0LWxvYmJ5LXBhbmVsIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICB3aWR0aDogbWluKDM5MHB4LCBjYWxjKDEwMHZ3IC0gMThweCkpO1xuICBoZWlnaHQ6IDEwMGR2aDtcbiAgYm9yZGVyLXJhZGl1czogMTNweCAwIDAgMTNweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjQwbXMgY3ViaWMtYmV6aWVyKDAuMjIsIDAuOSwgMC4zMiwgMSk7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uYmItY2hhdC1sb2JieS1wYW5lbC5pcy1vcGVuIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xufVxuXG4uYmItY2hhdC1sb2JieS1wYW5lbCAuYmItY2hhdC1ib2R5IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDA7XG59XG5cbi5iYi1jaGF0LWxvYmJ5LXBhbmVsIC5iYi1jaGF0LW1lc3NhZ2VzIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG59XG5cbi5iYi1sb2JieS1jaGF0LWJ1YmJsZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0b3A6IC03MHB4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSg0cHgpO1xuICBtYXgtd2lkdGg6IDE1MnB4O1xuICBwYWRkaW5nOiA0cHggOHB4O1xuICBib3JkZXI6IDJweCBkYXNoZWQgcmdiYSgyNTAsIDI1MCwgMjUwLCAwLjcpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEwLCAyMiwgMzcsIDAuOTIpO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBjb2xvcjogI2YzZmJmZjtcbiAgZm9udC1zaXplOiBtaW4oMnZ3LCAxNHB4KTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiA1ODtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjpcbiAgICBvcGFjaXR5IDE0MG1zIGVhc2UsXG4gICAgdHJhbnNmb3JtIDE0MG1zIGVhc2U7XG59XG5cbi5iYi1sb2JieS1jaGF0LWJ1YmJsZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgYm90dG9tOiAtNXB4O1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYmFja2dyb3VuZDogcmdiYSgxMCwgMjIsIDM3LCAwLjkyKTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyMDUsIDIzMywgMjU1LCAwLjcpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyMDUsIDIzMywgMjU1LCAwLjcpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbn1cblxuLmJiLWxvYmJ5LWNoYXQtYnViYmxlLmlzLXZpc2libGUge1xuICBvcGFjaXR5OiAxO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgwKTtcbn1cblxuLmJiLWNoYXQtZ2FtZS13cmFwIHtcbiAgdG9wOiA3MnB4O1xuICBsZWZ0OiAxMTRweDtcbiAgd2lkdGg6IG1pbigzNjBweCwgY2FsYygxMDB2dyAtIDI4cHgpKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5iYi1jaGF0LWdhbWUtbGF1bmNoZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTJweDtcbiAgbGVmdDogMTIycHg7XG4gIG1pbi1oZWlnaHQ6IDQwcHg7XG4gIG1pbi13aWR0aDogNDRweDtcbiAgei1pbmRleDogMTAwMTM7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4uYmItY2hhdC1nYW1lLXBhbmVsIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogbWluKDI0NnB4LCAyOHZoKTtcbiAgbWF4LWhlaWdodDogbWluKDI0NnB4LCAyOHZoKTtcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgb3BhY2l0eTogMC42O1xuICB0cmFuc2l0aW9uOlxuICAgIG9wYWNpdHkgMjIwbXMgZWFzZSxcbiAgICB0cmFuc2Zvcm0gMjIwbXMgZWFzZTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi5iYi1jaGF0LWdhbWUtcGFuZWwuaXMtb3BlbiB7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4uYmItY2hhdC1nYW1lLXBhbmVsLmlzLWlkbGUge1xuICBvcGFjaXR5OiAwLjY7XG59XG5cbi5iYi1jaGF0LWdhbWUtcGFuZWwuaXMtYWN0aXZlIHtcbiAgb3BhY2l0eTogMC45O1xufVxuXG4uYmItY2hhdC1nYW1lLXBhbmVsLmlzLW5vdGljZSB7XG4gIG9wYWNpdHk6IDAuNztcbn1cblxuLmJiLWNoYXQtZ2FtZS1wYW5lbC5pcy1tdXRlZCB7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uYmItY2hhdC1nYW1lLXBhbmVsIC5iYi1jaGF0LW1lc3NhZ2VzIHtcbiAgbWF4LWhlaWdodDogbm9uZTtcbn1cblxuLmJiLWNoYXQtZ2FtZS1wYW5lbCAuYmItY2hhdC1jb21wb3NlciB7XG4gIHBhZGRpbmc6IDZweDtcbn1cblxuLmJiLWNoYXQtZ2FtZS1wYW5lbCAuYmItY2hhdC1oZWFkZXIge1xuICBwYWRkaW5nOiA2cHggOHB4O1xuICBtaW4taGVpZ2h0OiAyOHB4O1xufVxuXG4uYmItY2hhdC1nYW1lLXBhbmVsIC5iYi1jaGF0LXRleHRhcmVhIHtcbiAgbWluLWhlaWdodDogMjhweDtcbiAgbWF4LWhlaWdodDogNDRweDtcbiAgcGFkZGluZzogNnB4IDhweDtcbiAgZm9udC1zaXplOiAxMHB4O1xufVxuXG4uYmItY2hhdC1nYW1lLXBhbmVsIC5iYi1jaGF0LXNlbmQge1xuICBtaW4td2lkdGg6IDQ4cHg7XG4gIG1pbi1oZWlnaHQ6IDI4cHg7XG4gIHBhZGRpbmc6IDAgOHB4O1xuICBmb250LXNpemU6IDhweDtcbn1cblxuLmJiLWNoYXQtZ2FtZS1wYW5lbCAuYmItY2hhdC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogN3B4O1xufVxuXG4uYmItY2hhdC1nYW1lLXBhbmVsIC5iYi1jaGF0LXN1YnRpdGxlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLmJiLWNoYXQtZ2FtZS1wYW5lbCAuYmItY2hhdC1tZXNzYWdlIHtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyNnB4IG1pbm1heCgwLCAxZnIpO1xuICBnYXA6IDdweDtcbn1cblxuLmJiLWNoYXQtZ2FtZS1wYW5lbCAuYmItY2hhdC1tZXNzYWdlLmlzLXNlbGYge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIDI2cHg7XG59XG5cbi5iYi1jaGF0LWdhbWUtcGFuZWwgLmJiLWNoYXQtYXVkaWVuY2Utc2VsZWN0IHtcbiAgbWluLWhlaWdodDogMjJweDtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjUsIDE4OSwgMjU1LCAwLjU1KTtcbiAgYmFja2dyb3VuZDogcmdiYSgxMiwgMjIsIDM4LCAwLjkyKTtcbiAgY29sb3I6ICNkOWVlZmY7XG4gIGZvbnQtZmFtaWx5OiBcIlByZXNzIFN0YXJ0IDJQXCIsIHN5c3RlbS11aTtcbiAgZm9udC1zaXplOiA3cHg7XG4gIHBhZGRpbmc6IDAgNnB4O1xufVxuXG4uYmItY2hhdC1nYW1lLXBhbmVsIC5iYi1jaGF0LWJvZHkge1xuICBnYXA6IDA7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4taGVpZ2h0OiAwO1xufVxuXG4uYmItY2hhdC1nYW1lLXBhbmVsIC5iYi1jaGF0LW1lc3NhZ2VzIHtcbiAgZ2FwOiAzcHg7XG4gIHBhZGRpbmc6IDdweCA4cHg7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4uYmItY2hhdC1nYW1lLWxpbmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGdhcDogNXB4O1xuICBmb250LXNpemU6IDEwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGNvbG9yOiAjZTVmMmZmO1xufVxuXG4uYmItY2hhdC1nYW1lLWxpbmUuaXMtdGVhbS1ibHVlIHtcbiAgY29sb3I6ICNkOGVjZmY7XG59XG5cbi5iYi1jaGF0LWdhbWUtbGluZS5pcy10ZWFtLXJlZCB7XG4gIGNvbG9yOiAjZmZkOWRjO1xufVxuXG4uYmItY2hhdC1nYW1lLWxpbmUtbmFtZSB7XG4gIGZvbnQtZmFtaWx5OiBcIlByZXNzIFN0YXJ0IDJQXCIsIHN5c3RlbS11aTtcbiAgZm9udC1zaXplOiA2cHg7XG4gIGNvbG9yOiAjOWJkMWZmO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBmbGV4OiAwIDAgYXV0bztcbn1cblxuLmJiLWNoYXQtZ2FtZS1saW5lLmlzLXRlYW0tcmVkIC5iYi1jaGF0LWdhbWUtbGluZS1uYW1lIHtcbiAgY29sb3I6ICNmZjhmOWE7XG59XG5cbi5iYi1jaGF0LWdhbWUtbGluZS5pcy10ZWFtLWJsdWUgLmJiLWNoYXQtZ2FtZS1saW5lLW5hbWUge1xuICBjb2xvcjogIzgzYzNmZjtcbn1cblxuLmJiLWNoYXQtZ2FtZS1saW5lLWJvZHkge1xuICBmb250LWZhbWlseTogXCJMYXRvXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgY29sb3I6ICNlZmY4ZmY7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgZmxleDogMSAxIGF1dG87XG59XG5cbi5iYi1jaGF0LWdhbWUtbGluZS5pcy10ZWFtLXJlZCAuYmItY2hhdC1nYW1lLWxpbmUtYm9keSB7XG4gIGNvbG9yOiAjZmZkNmRjO1xufVxuXG4uYmItY2hhdC1nYW1lLWxpbmUuaXMtdGVhbS1ibHVlIC5iYi1jaGF0LWdhbWUtbGluZS1ib2R5IHtcbiAgY29sb3I6ICNlN2Y0ZmY7XG59XG5cbi5iYi1jaGF0LWdhbWUtbGluZS5pcy1zZWxmIC5iYi1jaGF0LWdhbWUtbGluZS1uYW1lIHtcbiAgY29sb3I6ICNiZmUwZmY7XG59XG5cbi5iYi1jaGF0LWdhbWUtcGFuZWwgLmJiLWNoYXQtYXZhdGFyIHtcbiAgd2lkdGg6IDI2cHg7XG4gIGhlaWdodDogMjZweDtcbiAgYm9yZGVyLXJhZGl1czogOXB4O1xufVxuXG4uYmItY2hhdC1nYW1lLXBhbmVsIC5iYi1jaGF0LWJ1YmJsZSB7XG4gIHBhZGRpbmc6IDdweCA4cHggNnB4O1xuICBnYXA6IDRweDtcbn1cblxuLmJiLWNoYXQtZ2FtZS1wYW5lbCAuYmItY2hhdC1tZXNzYWdlLWhlYWRlciB7XG4gIGdhcDogNXB4O1xuICBmb250LXNpemU6IDhweDtcbn1cblxuLmJiLWNoYXQtZ2FtZS1wYW5lbCAuYmItY2hhdC1hdXRob3Ige1xuICBmb250LXNpemU6IDZweDtcbn1cblxuLmJiLWNoYXQtZ2FtZS1wYW5lbCAuYmItY2hhdC10aW1lIHtcbiAgZm9udC1zaXplOiA2cHg7XG59XG5cbi5iYi1jaGF0LWdhbWUtcGFuZWwgLmJiLWNoYXQtYm9keS10ZXh0IHtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBsaW5lLWhlaWdodDogMS4yODtcbn1cblxuLmJiLWNoYXQtZ2FtZS1wYW5lbCAuYmItY2hhdC1ob3Zlci1idG4sXG4uYmItY2hhdC1nYW1lLXBhbmVsIC5iYi1jaGF0LWlubGluZS1yZWFjdGlvbiB7XG4gIGZvbnQtc2l6ZTogOHB4O1xufVxuXG4uYmItY2hhdC1nYW1lLXBhbmVsIC5iYi1jaGF0LXJlcGx5LXByZXZpZXcsXG4uYmItY2hhdC1nYW1lLXBhbmVsIC5iYi1jaGF0LXZpZXctY291bnQge1xuICBmb250LXNpemU6IDdweDtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5iYi1jaGF0LWxvYmJ5LXBhbmVsIHtcbiAgICB3aWR0aDogbWluKDM2MHB4LCBjYWxjKDEwMHZ3IC0gMTJweCkpO1xuICB9XG5cbiAgLmJiLWNoYXQtZ2FtZS13cmFwIHtcbiAgICB0b3A6IDY0cHg7XG4gICAgbGVmdDogMTEwcHg7XG4gICAgd2lkdGg6IG1pbigzMjBweCwgY2FsYygxMDB2dyAtIDIwcHgpKTtcbiAgfVxuXG4gIC5iYi1jaGF0LWdhbWUtbGF1bmNoZXIge1xuICAgIHRvcDogMTBweDtcbiAgICBsZWZ0OiAxMTRweDtcbiAgICBtaW4taGVpZ2h0OiAzOHB4O1xuICAgIG1pbi13aWR0aDogNDJweDtcbiAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLmJiLWNoYXQtbG9iYnktbGF1bmNoZXIge1xuICAgIHJpZ2h0OiA4cHg7XG4gIH1cblxuICAuYmItY2hhdC1sb2JieS1wYW5lbCB7XG4gICAgd2lkdGg6IG1pbigxMDB2dywgMTAwdncpO1xuICB9XG5cbiAgLmJiLWxvYmJ5LWNoYXQtYnViYmxlIHtcbiAgICBtYXgtd2lkdGg6IDEyNnB4O1xuICAgIHRvcDogLTQ4cHg7XG4gICAgZm9udC1zaXplOiA5cHg7XG4gIH1cblxuICAuYmItY2hhdC1nYW1lLXdyYXAge1xuICAgIHRvcDogNThweDtcbiAgICBsZWZ0OiA4MHB4O1xuICAgIHdpZHRoOiBtaW4oMzAwcHgsIGNhbGMoMTAwdncgLSAxNnB4KSk7XG4gIH1cblxuICAuYmItY2hhdC1nYW1lLWxhdW5jaGVyIHtcbiAgICB0b3A6IDhweDtcbiAgICBsZWZ0OiA5MHB4O1xuICAgIG1pbi1oZWlnaHQ6IDM2cHg7XG4gICAgbWluLXdpZHRoOiA0MHB4O1xuICB9XG59XG4iLCJAZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiUHJlc3MgU3RhcnQgMlBcIjtcbiAgc3JjOiB1cmwoXCIvYXNzZXRzL1ByZXNzU3RhcnQyUC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5ib2R5LnByb2ZpbGUtcGFnZS1ib2R5IHtcbiAgbWFyZ2luOiAwO1xuICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDIwJSAyMCUsICMyMjNmN2MsICMwYjE2MzAgNjAlKTtcbiAgY29sb3I6ICNlN2YyZmY7XG59XG5cbi5wcm9maWxlLXBhZ2Uge1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgcGFkZGluZzogMjBweDtcbn1cblxuLnByb2ZpbGUtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IDEycHg7XG59XG5cbi5wcm9maWxlLWhlYWRlciBoMSB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1mYW1pbHk6IFwiUHJlc3MgU3RhcnQgMlBcIiwgTGF0bywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiBjbGFtcCgxNnB4LCAydncsIDI0cHgpO1xufVxuXG4ucHJvZmlsZS1ncmlkIHtcbiAgbWFyZ2luLXRvcDogMThweDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICBnYXA6IDE2cHg7XG59XG5cbi5wcm9maWxlLWNhcmQge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEzLCAyOCwgNjEsIDAuNzUpO1xuICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDE1NiwgMjAxLCAyNTUsIDAuNSk7XG4gIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gIHBhZGRpbmc6IDE2cHg7XG4gIGJveC1zaGFkb3c6IDAgMTBweCAyNnB4IHJnYmEoMCwgMCwgMCwgMC4zNCk7XG59XG5cbi5wcm9maWxlLWNhcmQgaDIsXG4ucHJvZmlsZS1jYXJkIGgzIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLnByb2ZpbGUtaWNvbi1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luOiAxMHB4IDAgMTZweDtcbn1cblxuLnByb2ZpbGUtaWNvbi10cmlnZ2VyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDE1NywgMTk1LCAyNDksIDAuNik7XG4gIGJhY2tncm91bmQ6IHJnYmEoNSwgMTQsIDMwLCAwLjkpO1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICB3aWR0aDogMTA4cHg7XG4gIGhlaWdodDogMTA4cHg7XG4gIHBhZGRpbmc6IDZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOlxuICAgIHRyYW5zZm9ybSAwLjE2cyBlYXNlLFxuICAgIGJveC1zaGFkb3cgMC4xNnMgZWFzZTtcbn1cblxuLnByb2ZpbGUtaWNvbi10cmlnZ2VyOmhvdmVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICBib3gtc2hhZG93OiAwIDEwcHggMThweCByZ2JhKDAsIDAsIDAsIDAuMzUpO1xufVxuXG4ucHJvZmlsZS1pY29uLXRyaWdnZXIgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ucHJvZmlsZS1pY29uLWVkaXQtYmFkZ2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAtNHB4O1xuICBib3R0b206IC00cHg7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5wcm9maWxlLWljb24tZWRpdC1iYWRnZSBpbWcge1xuICB3aWR0aDogMTVweDtcbiAgaGVpZ2h0OiAxNXB4O1xuICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4uc3RhdC1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG1hcmdpbi1ib3R0b206IDhweDtcbn1cblxuLmFjdGlvbnMtcm93IHtcbiAgbWFyZ2luLXRvcDogMTRweDtcbn1cblxuLnByb2ZpbGUtYnRuIHtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBwYWRkaW5nOiAxMHB4IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiAjZjhmYmZmO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjM2Y3OGQzLCAjMmM0ZTkyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ucHJvZmlsZS1idG4ucHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICM0ZmIwNTgsICMyZjg2NDApO1xufVxuXG4ucHJvZmlsZS1mb3JtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA4cHg7XG4gIG1hcmdpbi1ib3R0b206IDE0cHg7XG59XG5cbi5wcm9maWxlLWZvcm0gaW5wdXQge1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE5MiwgMjIwLCAyNTUsIDAuNDUpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoOSwgMjAsIDQxLCAwLjc2KTtcbiAgY29sb3I6ICNmMmY4ZmY7XG4gIHBhZGRpbmc6IDlweCAxMHB4O1xufVxuXG4uYWNjb3VudC1tZXNzYWdlIHtcbiAgbWluLWhlaWdodDogMjBweDtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogI2JmZTJmZjtcbn1cblxuLmNhcmRzLW1vZGFsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogOTk5OTtcbn1cblxuLmNhcmRzLW1vZGFsLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jYXJkcy1tb2RhbC1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMywgOCwgMTksIDAuNzIpO1xufVxuXG4uY2FyZHMtbW9kYWwtcGFuZWwge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB3aWR0aDogbWluKDEwMDBweCwgOTR2dyk7XG4gIG1heC1oZWlnaHQ6IDg4dmg7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjMTczNTZhLCAjMTAyNjQ5KTtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiYSgxMzksIDE5MSwgMjUyLCAwLjYpO1xuICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICBwYWRkaW5nOiAxNHB4O1xufVxuXG4uY2FyZHMtbW9kYWwtaGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLmNhcmRzLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxODBweCwgMWZyKSk7XG4gIGdhcDogMTJweDtcbiAgbWFyZ2luLXRvcDogMTJweDtcbn1cblxuLmNhcmQtdGlsZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoNiwgMTYsIDMyLCAwLjcyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNTcsIDE5NSwgMjQ5LCAwLjQpO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBwYWRkaW5nOiA4cHg7XG59XG5cbi5jYXJkLXRpbGUgaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGFzcGVjdC1yYXRpbzogNjUwIC8gMTI1MDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5pY29uLXRpbGUgaW1nIHtcbiAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG59XG5cbi5jYXJkLW1ldGEge1xuICBkaXNwbGF5OiBncmlkO1xuICBnYXA6IDRweDtcbiAgbWFyZ2luLXRvcDogOHB4O1xufVxuXG4uY2FyZC1hY3Rpb25zIHtcbiAgbWFyZ2luLXRvcDogOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5wcm9maWxlLWNhcmQtcmFyaXR5IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICBwYWRkaW5nOiAycHggOHB4O1xuICBmb250LXNpemU6IDlweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbn1cblxuLnByb2ZpbGUtY2FyZC1yYXJpdHkuY29tbW9uIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxMDcsIDExNCwgMTI4LCAwLjcyKTtcbn1cblxuLnByb2ZpbGUtY2FyZC1yYXJpdHkucmFyZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMzcsIDk5LCAyMzUsIDAuODIpO1xufVxuXG4ucHJvZmlsZS1jYXJkLXJhcml0eS5lcGljIHtcbiAgYmFja2dyb3VuZDogcmdiYSgxMjYsIDM0LCAyMDYsIDAuODIpO1xufVxuXG4ucHJvZmlsZS1jYXJkLXJhcml0eS5sZWdlbmRhcnkge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDIxNywgMTE5LCA2LCAwLjg1KTtcbn1cblxuLnByb2ZpbGUtY2FyZC10aWxlLnJhcmUsXG4ucHJvZmlsZS1jYXJkLXRpbGUuZXBpYyxcbi5wcm9maWxlLWNhcmQtdGlsZS5sZWdlbmRhcnksXG4uY2FyZC10aWxlLnJhcmUsXG4uY2FyZC10aWxlLmVwaWMsXG4uY2FyZC10aWxlLmxlZ2VuZGFyeSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnByb2ZpbGUtY2FyZC10aWxlLnJhcmU6OmJlZm9yZSxcbi5wcm9maWxlLWNhcmQtdGlsZS5lcGljOjpiZWZvcmUsXG4ucHJvZmlsZS1jYXJkLXRpbGUubGVnZW5kYXJ5OjpiZWZvcmUsXG4uY2FyZC10aWxlLnJhcmU6OmJlZm9yZSxcbi5jYXJkLXRpbGUuZXBpYzo6YmVmb3JlLFxuLmNhcmQtdGlsZS5sZWdlbmRhcnk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAtMTIwJTtcbiAgbGVmdDogLTQwJTtcbiAgd2lkdGg6IDMwJTtcbiAgaGVpZ2h0OiAzMjAlO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTgwZGVnLFxuICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCksXG4gICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQyKSxcbiAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDApXG4gICk7XG4gIHRyYW5zZm9ybTogcm90YXRlKDIwZGVnKTtcbiAgYW5pbWF0aW9uOiBjYXJkR2xpbW1lciAyLjhzIGxpbmVhciBpbmZpbml0ZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbkBrZXlmcmFtZXMgY2FyZEdsaW1tZXIge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xNzAlKSByb3RhdGUoMjBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg0MjAlKSByb3RhdGUoMjBkZWcpO1xuICB9XG59XG5cbi5wcm9maWxlLWNvc3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG59XG5cbi5wcm9maWxlLWNvc3QgaW1nIHtcbiAgd2lkdGg6IDEzcHg7XG4gIGhlaWdodDogMTNweDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDkwMHB4KSB7XG4gIC5wcm9maWxlLWdyaWQge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG59XG4iLCIuY3MtY29uZmlybS1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41NSk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB6LWluZGV4OiAxMjA1MDtcbn1cblxuLmNzLWNvbmZpcm0ge1xuICB3aWR0aDogOTAlO1xuICBtYXgtd2lkdGg6IDQyMHB4O1xuICBiYWNrZ3JvdW5kOiAjMWYyOTM3O1xuICBjb2xvcjogI2YzZjRmNjtcbiAgcGFkZGluZzogMTZweCAxOHB4O1xufVxuXG4uY3MtY29uZmlybS10aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4uY3MtY29uZmlybS1ib2R5IHAge1xuICBtYXJnaW46IDZweCAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiAjZTVlN2ViO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG59XG5cbi5jcy1jb25maXJtLWFjdGlvbnMge1xuICBtYXJnaW4tdG9wOiAxNHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEwcHg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi5jcy1idG4ge1xuICBwYWRkaW5nOiA4cHggMTRweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jcy1idG4uY2FuY2VsIHtcbiAgYmFja2dyb3VuZDogIzM3NDE1MTtcbiAgY29sb3I6ICNlNWU3ZWI7XG59XG5cbi5jcy1idG4uY2FuY2VsOmhvdmVyIHtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDEuMDUpO1xufVxuXG4uY3MtYnRuLmNvbmZpcm0ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCAjNGE5ZWZmLCAjMzE4MmNlKTtcbiAgY29sb3I6ICNmZmY7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbn1cblxuLmNzLWJ0bi5jb25maXJtOmhvdmVyIHtcbiAgZmlsdGVyOiBicmlnaHRuZXNzKDEuMDYpO1xufVxuXG4uY3MtY3VycmVuY3kge1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBvYmplY3QtZml0OiBjb250YWluO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4iLCIvKiBDb250YWluZXI6IHN0YWNrIHRvcC1jZW50ZXIgd2l0aCBnYXAgKi9cbi5zb25uZXItd3JhcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAxMnB4O1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgLyogc3RhY2sgdmVydGljYWxseSAqL1xuICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiBjZW50ZXIgaG9yaXpvbnRhbGx5ICovXG4gIGdhcDogMTBweDsgLyogc3BhY2UgYmV0d2VlbiB0b2FzdHMgKi9cbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDk5OTk7XG59XG5cbi8qIFRvYXN0IGNhcmQgKi9cbi5zb25uZXIge1xuICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgbWF4LXdpZHRoOiA1MDBweDsgLyogYSBiaXQgd2lkZXIgc28gaW5saW5lIGxheW91dCBicmVhdGhlcyAqL1xuICB3aWR0aDogY2FsYygxMDAlIC0gMjRweCk7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQ6ICMyMjIwMmU7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNnB4KTsgLyogZW50ZXIgZnJvbSB0b3AgKi9cbiAgdHJhbnNpdGlvbjpcbiAgICB0cmFuc2Zvcm0gMC4yOHMgZWFzZSxcbiAgICBvcGFjaXR5IDAuMjhzIGVhc2U7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIG9wYWNpdHk7XG4gIGZvbnQtZmFtaWx5OiBcIkxhdG9cIiwgc2Fucy1zZXJpZjtcblxuICAvKiBJbmxpbmUgbGF5b3V0OiBjb250ZW50ICsgYWN0aW9ucyBpbiBvbmUgcm93ICovXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIGF1dG87IC8qIHRleHQgdGFrZXMgcmVtYWluaW5nIHNwYWNlLCBidXR0b24gZml0cyAqL1xuICBncmlkLWF1dG8tcm93czogYXV0bztcbn1cblxuLyogRW50ZXJlZCBzdGF0ZSAqL1xuLnNvbm5lci5zaG93IHtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4vKiBJbmxpbmUgY29udGVudCBhcmVhICovXG4uc29ubmVyX19jb250ZW50IHtcbiAgcGFkZGluZzogMTJweCAxMnB4IDEwcHggMTRweDtcbiAgbWluLXdpZHRoOiAwOyAvKiBhbGxvdyB0ZXh0IHRvIHdyYXAgaW5zdGVhZCBvZiBvdmVyZmxvd2luZyAqL1xufVxuXG4uc29ubmVyX19oZHIge1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBtYXJnaW4tdG9wOiAzcHg7XG4gIGZvbnQtc2l6ZTogMTVweDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cblxuLnNvbm5lcl9fbXNnIHtcbiAgbWFyZ2luOiA0cHggMCAwIDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICBmb250LXNpemU6IDEzcHg7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbn1cblxuLyogQWN0aW9uczogaW5saW5lIHdpdGggdGV4dCwgc2FtZSByb3csIGFsaWduZWQgY2VudGVyICovXG4uc29ubmVyX19hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZ2FwOiA4cHg7XG4gIHBhZGRpbmc6IDhweCAxMnB4IDhweCA4cHg7XG59XG5cbi5zb25uZXJfX2J0biB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICMxMTE7XG4gIHBhZGRpbmc6IDhweCAxMnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBmb250LXNpemU6IDEzcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5zb25uZXJfX2J0bjpob3ZlciB7XG4gIGZpbHRlcjogYnJpZ2h0bmVzcygwLjk1KTtcbn1cblxuLyogUHJvZ3Jlc3MgYmFyIHNwYW5zIGZ1bGwgd2lkdGggb24gaXRzIG93biByb3cgKi9cbi5zb25uZXJfX3Byb2dyZXNzIHtcbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgaGVpZ2h0OiAzcHg7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzE4YTBmYiwgIzUzZik7XG4gIHdpZHRoOiAxMDAlO1xufVxuLnNvbm5lcl9fcHJvZ3Jlc3MuYW5pbSB7XG4gIGFuaW1hdGlvbjogc29ubmVyQmFyIHZhcigtLXNvbm5lci1kdXJhdGlvbiwgNXMpIGxpbmVhciBmb3J3YXJkcztcbn1cbkBrZXlmcmFtZXMgc29ubmVyQmFyIHtcbiAgZnJvbSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgdG8ge1xuICAgIHdpZHRoOiAwO1xuICB9XG59XG5cbi8qIFJlZHVjZWQgbW90aW9uICovXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuc29ubmVyIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG4gIC5zb25uZXJfX3Byb2dyZXNzLmFuaW0ge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/