/* app:src/styles.css */
:root {
  --ink: #2b1d2e;
  --ink-soft: #5b4a5e;
  --paper: #fff4dc;
  --paper-2: #f6e5c2;
  --paper-3: #ecd3a4;
  --bg: #2a2238;
  --bg-2: #3a2f4d;
  --accent: #ff9e5e;
  --accent-2: #ffcf6e;
  --good: #58c48a;
  --bad: #e5646a;
  --info: #6aa8ff;
  --pink: #ff9eb5;
  --shadow: #1a1422;
  --px: 3px;
  --font:
    "Pixelify Sans",
    ui-monospace,
    "Courier New",
    monospace;
  --font-head:
    "Silkscreen",
    "Pixelify Sans",
    ui-monospace,
    monospace;
}
* {
  box-sizing: border-box;
}
html,
body {
  margin: 0;
  height: 100%;
}
body {
  background: var(--bg);
  background-image: radial-gradient(var(--bg-2) 1px, transparent 1px);
  background-size: 12px 12px;
  color: var(--ink);
  font-family: var(--font);
  font-size: 17px;
  line-height: 1.3;
  -webkit-font-smoothing: none;
  overscroll-behavior: none;
}
button,
input {
  font: inherit;
  color: inherit;
}
#app {
  max-width: 1100px;
  margin: 0 auto;
  padding: 10px 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 100%;
}
.panel {
  background: var(--paper);
  border: var(--px) solid var(--ink);
  box-shadow:
    inset calc(var(--px) * -1) calc(var(--px) * -1) 0 var(--paper-3),
    inset var(--px) var(--px) 0 #fffaf0,
    0 var(--px) 0 var(--shadow);
  border-radius: 2px;
  padding: 10px 12px;
}
.panel.dark {
  background: #3b2f4f;
  color: #fff4dc;
  box-shadow:
    inset -3px -3px 0 #2c2340,
    inset 3px 3px 0 #4d3f66,
    0 3px 0 var(--shadow);
}
#hud {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 14px;
  padding: 6px 10px;
}
.hud-title {
  font-family: var(--font-head);
  font-size: 15px;
  margin-right: auto;
  white-space: nowrap;
}
.stat {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  font-size: 17px;
}
.stat .ico {
  width: 18px;
  height: 18px;
  image-rendering: pixelated;
  flex: none;
}
.stat b {
  font-weight: 600;
}
.stat.neg b {
  color: var(--bad);
}
.speed {
  display: inline-flex;
  gap: 4px;
}
#goalbar {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  align-items: center;
  padding: 6px 10px;
  font-size: 15px;
}
#goalbar .goal {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.meter {
  width: 70px;
  height: 10px;
  border: 2px solid var(--ink);
  background: var(--paper-2);
  position: relative;
}
.meter > i {
  position: absolute;
  inset: 0 auto 0 0;
  background: var(--accent);
}
.meter.ok > i {
  background: var(--good);
}
.goal .tick {
  color: var(--good);
  font-weight: 700;
}
#stage {
  position: relative;
  border: var(--px) solid var(--ink);
  box-shadow: 0 var(--px) 0 var(--shadow);
  background: #000;
  line-height: 0;
}
#scene {
  width: 100%;
  aspect-ratio: 16 / 9;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  display: block;
  cursor: pointer;
  touch-action: manipulation;
}
#banner {
  position: absolute;
  left: 50%;
  top: 8px;
  transform: translateX(-50%);
  line-height: 1.3;
  font-size: 15px;
  padding: 4px 10px;
  display: none;
  white-space: nowrap;
}
#banner.show {
  display: block;
}
#banner.bad {
  background: var(--bad);
  color: #fff;
  border: 3px solid var(--ink);
}
#toolbar {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
}
#toolbar .btn {
  flex-direction: column;
  gap: 2px;
  padding: 6px 4px;
  font-size: 15px;
}
#toolbar .btn .key {
  font-size: 11px;
  opacity: 0.6;
}
#toolbar .btn img {
  width: 24px;
  height: 24px;
  image-rendering: pixelated;
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 36px;
  padding: 4px 12px;
  background: var(--accent-2);
  border: var(--px) solid var(--ink);
  border-radius: 2px;
  box-shadow:
    inset -3px -3px 0 rgba(0, 0, 0, 0.18),
    inset 3px 3px 0 rgba(255, 255, 255, 0.5),
    0 3px 0 var(--shadow);
  cursor: pointer;
  user-select: none;
  position: relative;
  top: 0;
  text-align: center;
}
.btn:hover {
  filter: brightness(1.06);
}
.btn:active {
  top: 3px;
  box-shadow: inset 3px 3px 0 rgba(0, 0, 0, 0.18), 0 0 0 var(--shadow);
}
.btn:focus-visible {
  outline: 3px dashed var(--info);
  outline-offset: 3px;
}
.btn[disabled] {
  background: #d8cdb8;
  color: #8a7f86;
  cursor: not-allowed;
  filter: none;
  top: 0;
  box-shadow: inset -3px -3px 0 rgba(0, 0, 0, 0.08), 0 3px 0 var(--shadow);
}
.btn.primary {
  background: var(--accent);
}
.btn.good {
  background: var(--good);
}
.btn.bad {
  background: var(--bad);
  color: #fff;
}
.btn.ghost {
  background: var(--paper-2);
}
.btn.small {
  min-height: 30px;
  padding: 2px 8px;
  font-size: 15px;
}
.btn.on {
  background: var(--info);
  color: #fff;
}
.btn.icon {
  min-width: 36px;
  padding: 2px 6px;
}
.modal-back {
  position: fixed;
  inset: 0;
  background: rgba(20, 12, 30, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
  z-index: 20;
  animation: fade 0.15s ease-out;
}
.dialog {
  width: min(560px, 100%);
  max-height: calc(100vh - 24px);
  display: flex;
  flex-direction: column;
  padding: 0;
  animation: pop 0.18s steps(3);
}
.dialog.wide {
  width: min(820px, 100%);
}
.dialog > header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: var(--accent);
  border-bottom: var(--px) solid var(--ink);
}
.dialog > header h2 {
  margin: 0;
  font-family: var(--font-head);
  font-size: 17px;
  flex: 1;
  font-weight: 400;
}
.dialog .body {
  padding: 12px;
  overflow: auto;
}
.dialog > footer {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
  padding: 10px 12px;
  border-top: 2px dashed var(--paper-3);
}
.dialog p {
  margin: 0 0 10px;
}
@keyframes pop {
  from {
    transform: scale(0.9);
  }
  to {
    transform: scale(1);
  }
}
@keyframes fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 10px;
}
.card {
  background: var(--paper-2);
  border: 2px solid var(--ink);
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  box-shadow: 0 2px 0 var(--paper-3);
}
.card.locked {
  opacity: 0.55;
}
.card .row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.card h3 {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
}
.card .muted,
.muted {
  color: var(--ink-soft);
  font-size: 15px;
}
.card .btn {
  margin-top: auto;
}
.portrait {
  width: 56px;
  height: 56px;
  image-rendering: pixelated;
  border: 2px solid var(--ink);
  flex: none;
  background: #fff;
}
.thumb {
  width: 64px;
  height: 48px;
  image-rendering: pixelated;
  border: 2px solid var(--ink);
  background: #6d7892;
  flex: none;
}
.tag {
  display: inline-block;
  padding: 0 6px;
  border: 2px solid var(--ink);
  font-size: 13px;
  color: #fff;
}
.stars {
  letter-spacing: 1px;
  color: #e59a1a;
  font-size: 15px;
}
.kv {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2px 12px;
  font-size: 16px;
}
.kv dt {
  color: var(--ink-soft);
}
.kv dd {
  margin: 0;
  text-align: right;
  font-weight: 600;
}
.bar {
  height: 10px;
  border: 2px solid var(--ink);
  background: #fff;
  position: relative;
}
.bar > i {
  position: absolute;
  inset: 0 auto 0 0;
  background: var(--info);
}
.table {
  width: 100%;
  border-collapse: collapse;
  font-size: 16px;
}
.table th,
.table td {
  text-align: left;
  padding: 4px 6px;
  border-bottom: 2px dashed var(--paper-3);
}
.table td.num,
.table th.num {
  text-align: right;
}
label.field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 10px;
}
.input {
  border: var(--px) solid var(--ink);
  background: #fff;
  padding: 6px 8px;
  min-height: 38px;
  box-shadow: inset 3px 3px 0 var(--paper-2);
}
.input:focus-visible {
  outline: 3px dashed var(--info);
  outline-offset: 2px;
}
.center {
  text-align: center;
}
.big {
  font-size: 22px;
}
.tabs {
  display: flex;
  gap: 6px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
#toasts {
  position: fixed;
  right: 12px;
  bottom: 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  z-index: 30;
  pointer-events: none;
  max-width: min(340px, calc(100vw - 24px));
}
.toast {
  padding: 6px 10px;
  font-size: 16px;
  animation: slide 0.2s steps(3);
  display: flex;
  gap: 8px;
  align-items: center;
}
.toast.good {
  border-color: #1f5a3a;
  background: #dff7e8;
}
.toast.bad {
  background: #ffe1e1;
}
.toast.info {
  background: #e3efff;
}
.toast.gold {
  background: #fff0b8;
}
@keyframes slide {
  from {
    transform: translateX(20px);
    opacity: 0;
  }
  to {
    transform: none;
    opacity: 1;
  }
}
#tooltip {
  position: fixed;
  z-index: 40;
  pointer-events: none;
  max-width: 260px;
  padding: 4px 8px;
  font-size: 15px;
  background: var(--ink);
  color: var(--paper);
  border: 2px solid var(--paper);
  display: none;
}
#tooltip.show {
  display: block;
}
.title-screen {
  position: fixed;
  inset: 0;
  z-index: 15;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
  background: rgba(28, 20, 40, 0.72);
}
.title-card {
  width: min(520px, 100%);
  text-align: center;
  padding: 18px;
}
.logo {
  width: 100%;
  max-width: 420px;
  image-rendering: pixelated;
}
.title-card .menu {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 12px;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
@media (max-width: 720px) {
  body {
    font-size: 16px;
  }
  #app {
    padding: 6px 6px 10px;
    gap: 6px;
  }
  #toolbar {
    grid-template-columns: repeat(4, 1fr);
  }
  #toolbar .btn .key {
    display: none;
  }
  .hud-title {
    width: 100%;
    font-size: 13px;
  }
  .stat {
    font-size: 15px;
  }
  #goalbar {
    font-size: 14px;
  }
  .meter {
    width: 48px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .dialog,
  .toast,
  .modal-back {
    animation: none;
  }
}
/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiYXBwOnNyYy9zdHlsZXMuY3NzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBEcm9iZWsgVHljb29uIHBpeGVsIFVJIGtpdDogb25lIHNldCBvZiBwYW5lbHMsIGJ1dHRvbnMsIGRpYWxvZ3MsIHRvYXN0cyBhbmQgdG9vbHRpcHMuICovXG46cm9vdCB7XG4gIC0taW5rOiAjMmIxZDJlO1xuICAtLWluay1zb2Z0OiAjNWI0YTVlO1xuICAtLXBhcGVyOiAjZmZmNGRjO1xuICAtLXBhcGVyLTI6ICNmNmU1YzI7XG4gIC0tcGFwZXItMzogI2VjZDNhNDtcbiAgLS1iZzogIzJhMjIzODtcbiAgLS1iZy0yOiAjM2EyZjRkO1xuICAtLWFjY2VudDogI2ZmOWU1ZTtcbiAgLS1hY2NlbnQtMjogI2ZmY2Y2ZTtcbiAgLS1nb29kOiAjNThjNDhhO1xuICAtLWJhZDogI2U1NjQ2YTtcbiAgLS1pbmZvOiAjNmFhOGZmO1xuICAtLXBpbms6ICNmZjllYjU7XG4gIC0tc2hhZG93OiAjMWExNDIyO1xuICAtLXB4OiAzcHg7XG4gIC0tZm9udDogJ1BpeGVsaWZ5IFNhbnMnLCB1aS1tb25vc3BhY2UsICdDb3VyaWVyIE5ldycsIG1vbm9zcGFjZTtcbiAgLS1mb250LWhlYWQ6ICdTaWxrc2NyZWVuJywgJ1BpeGVsaWZ5IFNhbnMnLCB1aS1tb25vc3BhY2UsIG1vbm9zcGFjZTtcbn1cblxuKiB7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbmh0bWwsIGJvZHkgeyBtYXJnaW46IDA7IGhlaWdodDogMTAwJTsgfVxuYm9keSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWJnKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHZhcigtLWJnLTIpIDFweCwgdHJhbnNwYXJlbnQgMXB4KTtcbiAgYmFja2dyb3VuZC1zaXplOiAxMnB4IDEycHg7XG4gIGNvbG9yOiB2YXIoLS1pbmspO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udCk7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogbm9uZTtcbiAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZTtcbn1cbmJ1dHRvbiwgaW5wdXQgeyBmb250OiBpbmhlcml0OyBjb2xvcjogaW5oZXJpdDsgfVxuXG4jYXBwIHtcbiAgbWF4LXdpZHRoOiAxMTAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAxMHB4IDEycHggMTRweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA4cHg7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7XG59XG5cbi8qIC0tLS0tLS0tLS0gcGFuZWwgLS0tLS0tLS0tLSAqL1xuLnBhbmVsIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tcGFwZXIpO1xuICBib3JkZXI6IHZhcigtLXB4KSBzb2xpZCB2YXIoLS1pbmspO1xuICBib3gtc2hhZG93OiBpbnNldCBjYWxjKHZhcigtLXB4KSAqIC0xKSBjYWxjKHZhcigtLXB4KSAqIC0xKSAwIHZhcigtLXBhcGVyLTMpLCBpbnNldCB2YXIoLS1weCkgdmFyKC0tcHgpIDAgI2ZmZmFmMCwgMCB2YXIoLS1weCkgMCB2YXIoLS1zaGFkb3cpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbn1cbi5wYW5lbC5kYXJrIHtcbiAgYmFja2dyb3VuZDogIzNiMmY0ZjtcbiAgY29sb3I6ICNmZmY0ZGM7XG4gIGJveC1zaGFkb3c6IGluc2V0IC0zcHggLTNweCAwICMyYzIzNDAsIGluc2V0IDNweCAzcHggMCAjNGQzZjY2LCAwIDNweCAwIHZhcigtLXNoYWRvdyk7XG59XG5cbi8qIC0tLS0tLS0tLS0gSFVEIC0tLS0tLS0tLS0gKi9cbiNodWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4IDE0cHg7XG4gIHBhZGRpbmc6IDZweCAxMHB4O1xufVxuLmh1ZC10aXRsZSB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWhlYWQpOyBmb250LXNpemU6IDE1cHg7IG1hcmdpbi1yaWdodDogYXV0bzsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuLnN0YXQgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA2cHg7IHdoaXRlLXNwYWNlOiBub3dyYXA7IGZvbnQtc2l6ZTogMTdweDsgfVxuLnN0YXQgLmljbyB7IHdpZHRoOiAxOHB4OyBoZWlnaHQ6IDE4cHg7IGltYWdlLXJlbmRlcmluZzogcGl4ZWxhdGVkOyBmbGV4OiBub25lOyB9XG4uc3RhdCBiIHsgZm9udC13ZWlnaHQ6IDYwMDsgfVxuLnN0YXQubmVnIGIgeyBjb2xvcjogdmFyKC0tYmFkKTsgfVxuLnNwZWVkIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGdhcDogNHB4OyB9XG5cbiNnb2FsYmFyIHsgZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBnYXA6IDZweCAxNnB4OyBhbGlnbi1pdGVtczogY2VudGVyOyBwYWRkaW5nOiA2cHggMTBweDsgZm9udC1zaXplOiAxNXB4OyB9XG4jZ29hbGJhciAuZ29hbCB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDZweDsgfVxuLm1ldGVyIHsgd2lkdGg6IDcwcHg7IGhlaWdodDogMTBweDsgYm9yZGVyOiAycHggc29saWQgdmFyKC0taW5rKTsgYmFja2dyb3VuZDogdmFyKC0tcGFwZXItMik7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuLm1ldGVyID4gaSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDAgYXV0byAwIDA7IGJhY2tncm91bmQ6IHZhcigtLWFjY2VudCk7IH1cbi5tZXRlci5vayA+IGkgeyBiYWNrZ3JvdW5kOiB2YXIoLS1nb29kKTsgfVxuLmdvYWwgLnRpY2sgeyBjb2xvcjogdmFyKC0tZ29vZCk7IGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuLyogLS0tLS0tLS0tLSBzdGFnZSAtLS0tLS0tLS0tICovXG4jc3RhZ2Uge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlcjogdmFyKC0tcHgpIHNvbGlkIHZhcigtLWluayk7XG4gIGJveC1zaGFkb3c6IDAgdmFyKC0tcHgpIDAgdmFyKC0tc2hhZG93KTtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgbGluZS1oZWlnaHQ6IDA7XG59XG4jc2NlbmUge1xuICB3aWR0aDogMTAwJTtcbiAgYXNwZWN0LXJhdGlvOiAxNiAvIDk7XG4gIGltYWdlLXJlbmRlcmluZzogcGl4ZWxhdGVkO1xuICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzO1xuICBkaXNwbGF5OiBibG9jaztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbn1cbiNiYW5uZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA4cHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgZm9udC1zaXplOiAxNXB4O1xuICBwYWRkaW5nOiA0cHggMTBweDtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiNiYW5uZXIuc2hvdyB7IGRpc3BsYXk6IGJsb2NrOyB9XG4jYmFubmVyLmJhZCB7IGJhY2tncm91bmQ6IHZhcigtLWJhZCk7IGNvbG9yOiAjZmZmOyBib3JkZXI6IDNweCBzb2xpZCB2YXIoLS1pbmspOyB9XG5cbi8qIC0tLS0tLS0tLS0gdG9vbGJhciAtLS0tLS0tLS0tICovXG4jdG9vbGJhciB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDcsIDFmcik7IGdhcDogNnB4OyB9XG4jdG9vbGJhciAuYnRuIHsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAycHg7IHBhZGRpbmc6IDZweCA0cHg7IGZvbnQtc2l6ZTogMTVweDsgfVxuI3Rvb2xiYXIgLmJ0biAua2V5IHsgZm9udC1zaXplOiAxMXB4OyBvcGFjaXR5OiAwLjY7IH1cbiN0b29sYmFyIC5idG4gaW1nIHsgd2lkdGg6IDI0cHg7IGhlaWdodDogMjRweDsgaW1hZ2UtcmVuZGVyaW5nOiBwaXhlbGF0ZWQ7IH1cblxuLyogLS0tLS0tLS0tLSBidXR0b24gLS0tLS0tLS0tLSAqL1xuLmJ0biB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiA2cHg7XG4gIG1pbi1oZWlnaHQ6IDM2cHg7XG4gIHBhZGRpbmc6IDRweCAxMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQtMik7XG4gIGJvcmRlcjogdmFyKC0tcHgpIHNvbGlkIHZhcigtLWluayk7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgLTNweCAtM3B4IDAgcmdiYSgwLCAwLCAwLCAwLjE4KSwgaW5zZXQgM3B4IDNweCAwIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KSwgMCAzcHggMCB2YXIoLS1zaGFkb3cpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHRvcDogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmJ0bjpob3ZlciB7IGZpbHRlcjogYnJpZ2h0bmVzcygxLjA2KTsgfVxuLmJ0bjphY3RpdmUgeyB0b3A6IDNweDsgYm94LXNoYWRvdzogaW5zZXQgM3B4IDNweCAwIHJnYmEoMCwgMCwgMCwgMC4xOCksIDAgMCAwIHZhcigtLXNoYWRvdyk7IH1cbi5idG46Zm9jdXMtdmlzaWJsZSB7IG91dGxpbmU6IDNweCBkYXNoZWQgdmFyKC0taW5mbyk7IG91dGxpbmUtb2Zmc2V0OiAzcHg7IH1cbi5idG5bZGlzYWJsZWRdIHsgYmFja2dyb3VuZDogI2Q4Y2RiODsgY29sb3I6ICM4YTdmODY7IGN1cnNvcjogbm90LWFsbG93ZWQ7IGZpbHRlcjogbm9uZTsgdG9wOiAwOyBib3gtc2hhZG93OiBpbnNldCAtM3B4IC0zcHggMCByZ2JhKDAsIDAsIDAsIDAuMDgpLCAwIDNweCAwIHZhcigtLXNoYWRvdyk7IH1cbi5idG4ucHJpbWFyeSB7IGJhY2tncm91bmQ6IHZhcigtLWFjY2VudCk7IH1cbi5idG4uZ29vZCB7IGJhY2tncm91bmQ6IHZhcigtLWdvb2QpOyB9XG4uYnRuLmJhZCB7IGJhY2tncm91bmQ6IHZhcigtLWJhZCk7IGNvbG9yOiAjZmZmOyB9XG4uYnRuLmdob3N0IHsgYmFja2dyb3VuZDogdmFyKC0tcGFwZXItMik7IH1cbi5idG4uc21hbGwgeyBtaW4taGVpZ2h0OiAzMHB4OyBwYWRkaW5nOiAycHggOHB4OyBmb250LXNpemU6IDE1cHg7IH1cbi5idG4ub24geyBiYWNrZ3JvdW5kOiB2YXIoLS1pbmZvKTsgY29sb3I6ICNmZmY7IH1cbi5idG4uaWNvbiB7IG1pbi13aWR0aDogMzZweDsgcGFkZGluZzogMnB4IDZweDsgfVxuXG4vKiAtLS0tLS0tLS0tIGRpYWxvZyAtLS0tLS0tLS0tICovXG4ubW9kYWwtYmFjayB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjAsIDEyLCAzMCwgMC42KTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDEycHg7XG4gIHotaW5kZXg6IDIwO1xuICBhbmltYXRpb246IGZhZGUgMC4xNXMgZWFzZS1vdXQ7XG59XG4uZGlhbG9nIHtcbiAgd2lkdGg6IG1pbig1NjBweCwgMTAwJSk7XG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAyNHB4KTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZzogMDtcbiAgYW5pbWF0aW9uOiBwb3AgMC4xOHMgc3RlcHMoMyk7XG59XG4uZGlhbG9nLndpZGUgeyB3aWR0aDogbWluKDgyMHB4LCAxMDAlKTsgfVxuLmRpYWxvZyA+IGhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuICBwYWRkaW5nOiA4cHggMTJweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTtcbiAgYm9yZGVyLWJvdHRvbTogdmFyKC0tcHgpIHNvbGlkIHZhcigtLWluayk7XG59XG4uZGlhbG9nID4gaGVhZGVyIGgyIHsgbWFyZ2luOiAwOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1oZWFkKTsgZm9udC1zaXplOiAxN3B4OyBmbGV4OiAxOyBmb250LXdlaWdodDogNDAwOyB9XG4uZGlhbG9nIC5ib2R5IHsgcGFkZGluZzogMTJweDsgb3ZlcmZsb3c6IGF1dG87IH1cbi5kaWFsb2cgPiBmb290ZXIgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXA7IGdhcDogOHB4OyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyBwYWRkaW5nOiAxMHB4IDEycHg7IGJvcmRlci10b3A6IDJweCBkYXNoZWQgdmFyKC0tcGFwZXItMyk7IH1cbi5kaWFsb2cgcCB7IG1hcmdpbjogMCAwIDEwcHg7IH1cblxuQGtleWZyYW1lcyBwb3AgeyBmcm9tIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjkpOyB9IHRvIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSB9XG5Aa2V5ZnJhbWVzIGZhZGUgeyBmcm9tIHsgb3BhY2l0eTogMDsgfSB0byB7IG9wYWNpdHk6IDE7IH0gfVxuXG4vKiAtLS0tLS0tLS0tIGNhcmRzIGluIGRpYWxvZ3MgLS0tLS0tLS0tLSAqL1xuLmdyaWQgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyMzBweCwgMWZyKSk7IGdhcDogMTBweDsgfVxuLmNhcmQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1wYXBlci0yKTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0taW5rKTtcbiAgcGFkZGluZzogOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDZweDtcbiAgYm94LXNoYWRvdzogMCAycHggMCB2YXIoLS1wYXBlci0zKTtcbn1cbi5jYXJkLmxvY2tlZCB7IG9wYWNpdHk6IDAuNTU7IH1cbi5jYXJkIC5yb3cgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDhweDsgfVxuLmNhcmQgaDMgeyBtYXJnaW46IDA7IGZvbnQtc2l6ZTogMTdweDsgZm9udC13ZWlnaHQ6IDYwMDsgfVxuLmNhcmQgLm11dGVkLCAubXV0ZWQgeyBjb2xvcjogdmFyKC0taW5rLXNvZnQpOyBmb250LXNpemU6IDE1cHg7IH1cbi5jYXJkIC5idG4geyBtYXJnaW4tdG9wOiBhdXRvOyB9XG4ucG9ydHJhaXQgeyB3aWR0aDogNTZweDsgaGVpZ2h0OiA1NnB4OyBpbWFnZS1yZW5kZXJpbmc6IHBpeGVsYXRlZDsgYm9yZGVyOiAycHggc29saWQgdmFyKC0taW5rKTsgZmxleDogbm9uZTsgYmFja2dyb3VuZDogI2ZmZjsgfVxuLnRodW1iIHsgd2lkdGg6IDY0cHg7IGhlaWdodDogNDhweDsgaW1hZ2UtcmVuZGVyaW5nOiBwaXhlbGF0ZWQ7IGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWluayk7IGJhY2tncm91bmQ6ICM2ZDc4OTI7IGZsZXg6IG5vbmU7IH1cbi50YWcgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IHBhZGRpbmc6IDAgNnB4OyBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1pbmspOyBmb250LXNpemU6IDEzcHg7IGNvbG9yOiAjZmZmOyB9XG4uc3RhcnMgeyBsZXR0ZXItc3BhY2luZzogMXB4OyBjb2xvcjogI2U1OWExYTsgZm9udC1zaXplOiAxNXB4OyB9XG4ua3YgeyBkaXNwbGF5OiBncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyOyBnYXA6IDJweCAxMnB4OyBmb250LXNpemU6IDE2cHg7IH1cbi5rdiBkdCB7IGNvbG9yOiB2YXIoLS1pbmstc29mdCk7IH1cbi5rdiBkZCB7IG1hcmdpbjogMDsgdGV4dC1hbGlnbjogcmlnaHQ7IGZvbnQtd2VpZ2h0OiA2MDA7IH1cbi5iYXIgeyBoZWlnaHQ6IDEwcHg7IGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWluayk7IGJhY2tncm91bmQ6ICNmZmY7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuLmJhciA+IGkgeyBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwIGF1dG8gMCAwOyBiYWNrZ3JvdW5kOiB2YXIoLS1pbmZvKTsgfVxuLnRhYmxlIHsgd2lkdGg6IDEwMCU7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IGZvbnQtc2l6ZTogMTZweDsgfVxuLnRhYmxlIHRoLCAudGFibGUgdGQgeyB0ZXh0LWFsaWduOiBsZWZ0OyBwYWRkaW5nOiA0cHggNnB4OyBib3JkZXItYm90dG9tOiAycHggZGFzaGVkIHZhcigtLXBhcGVyLTMpOyB9XG4udGFibGUgdGQubnVtLCAudGFibGUgdGgubnVtIHsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbmxhYmVsLmZpZWxkIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiA0cHg7IG1hcmdpbi1ib3R0b206IDEwcHg7IH1cbi5pbnB1dCB7XG4gIGJvcmRlcjogdmFyKC0tcHgpIHNvbGlkIHZhcigtLWluayk7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHBhZGRpbmc6IDZweCA4cHg7XG4gIG1pbi1oZWlnaHQ6IDM4cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDNweCAzcHggMCB2YXIoLS1wYXBlci0yKTtcbn1cbi5pbnB1dDpmb2N1cy12aXNpYmxlIHsgb3V0bGluZTogM3B4IGRhc2hlZCB2YXIoLS1pbmZvKTsgb3V0bGluZS1vZmZzZXQ6IDJweDsgfVxuLmNlbnRlciB7IHRleHQtYWxpZ246IGNlbnRlcjsgfVxuLmJpZyB7IGZvbnQtc2l6ZTogMjJweDsgfVxuLnRhYnMgeyBkaXNwbGF5OiBmbGV4OyBnYXA6IDZweDsgbWFyZ2luLWJvdHRvbTogMTBweDsgZmxleC13cmFwOiB3cmFwOyB9XG5cbi8qIC0tLS0tLS0tLS0gdG9hc3RzIC0tLS0tLS0tLS0gKi9cbiN0b2FzdHMge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAxMnB4O1xuICBib3R0b206IDEycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogNnB4O1xuICB6LWluZGV4OiAzMDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG1heC13aWR0aDogbWluKDM0MHB4LCBjYWxjKDEwMHZ3IC0gMjRweCkpO1xufVxuLnRvYXN0IHsgcGFkZGluZzogNnB4IDEwcHg7IGZvbnQtc2l6ZTogMTZweDsgYW5pbWF0aW9uOiBzbGlkZSAwLjJzIHN0ZXBzKDMpOyBkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuLnRvYXN0Lmdvb2QgeyBib3JkZXItY29sb3I6ICMxZjVhM2E7IGJhY2tncm91bmQ6ICNkZmY3ZTg7IH1cbi50b2FzdC5iYWQgeyBiYWNrZ3JvdW5kOiAjZmZlMWUxOyB9XG4udG9hc3QuaW5mbyB7IGJhY2tncm91bmQ6ICNlM2VmZmY7IH1cbi50b2FzdC5nb2xkIHsgYmFja2dyb3VuZDogI2ZmZjBiODsgfVxuQGtleWZyYW1lcyBzbGlkZSB7IGZyb20geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjBweCk7IG9wYWNpdHk6IDA7IH0gdG8geyB0cmFuc2Zvcm06IG5vbmU7IG9wYWNpdHk6IDE7IH0gfVxuXG4vKiAtLS0tLS0tLS0tIHRvb2x0aXAgLS0tLS0tLS0tLSAqL1xuI3Rvb2x0aXAge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDQwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgbWF4LXdpZHRoOiAyNjBweDtcbiAgcGFkZGluZzogNHB4IDhweDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1pbmspO1xuICBjb2xvcjogdmFyKC0tcGFwZXIpO1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1wYXBlcik7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4jdG9vbHRpcC5zaG93IHsgZGlzcGxheTogYmxvY2s7IH1cblxuLyogLS0tLS0tLS0tLSB0aXRsZSBzY3JlZW4gLS0tLS0tLS0tLSAqL1xuLnRpdGxlLXNjcmVlbiB7IHBvc2l0aW9uOiBmaXhlZDsgaW5zZXQ6IDA7IHotaW5kZXg6IDE1OyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgcGFkZGluZzogMTJweDsgYmFja2dyb3VuZDogcmdiYSgyOCwgMjAsIDQwLCAwLjcyKTsgfVxuLnRpdGxlLWNhcmQgeyB3aWR0aDogbWluKDUyMHB4LCAxMDAlKTsgdGV4dC1hbGlnbjogY2VudGVyOyBwYWRkaW5nOiAxOHB4OyB9XG4ubG9nbyB7IHdpZHRoOiAxMDAlOyBtYXgtd2lkdGg6IDQyMHB4OyBpbWFnZS1yZW5kZXJpbmc6IHBpeGVsYXRlZDsgfVxuLnRpdGxlLWNhcmQgLm1lbnUgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDEwcHg7IG1hcmdpbi10b3A6IDEycHg7IH1cbi5zci1vbmx5IHsgcG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMXB4OyBoZWlnaHQ6IDFweDsgb3ZlcmZsb3c6IGhpZGRlbjsgY2xpcDogcmVjdCgwIDAgMCAwKTsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgYm9keSB7IGZvbnQtc2l6ZTogMTZweDsgfVxuICAjYXBwIHsgcGFkZGluZzogNnB4IDZweCAxMHB4OyBnYXA6IDZweDsgfVxuICAjdG9vbGJhciB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7IH1cbiAgI3Rvb2xiYXIgLmJ0biAua2V5IHsgZGlzcGxheTogbm9uZTsgfVxuICAuaHVkLXRpdGxlIHsgd2lkdGg6IDEwMCU7IGZvbnQtc2l6ZTogMTNweDsgfVxuICAuc3RhdCB7IGZvbnQtc2l6ZTogMTVweDsgfVxuICAjZ29hbGJhciB7IGZvbnQtc2l6ZTogMTRweDsgfVxuICAubWV0ZXIgeyB3aWR0aDogNDhweDsgfVxufVxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmRpYWxvZywgLnRvYXN0LCAubW9kYWwtYmFjayB7IGFuaW1hdGlvbjogbm9uZTsgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUNBO0FBQ0UsU0FBTztBQUNQLGNBQVk7QUFDWixXQUFTO0FBQ1QsYUFBVztBQUNYLGFBQVc7QUFDWCxRQUFNO0FBQ04sVUFBUTtBQUNSLFlBQVU7QUFDVixjQUFZO0FBQ1osVUFBUTtBQUNSLFNBQU87QUFDUCxVQUFRO0FBQ1IsVUFBUTtBQUNSLFlBQVU7QUFDVixRQUFNO0FBQ047QUFBQSxJQUFRLGVBQWU7QUFBQSxJQUFFLFlBQVk7QUFBQSxJQUFFLGFBQWE7QUFBQSxJQUFFO0FBQ3REO0FBQUEsSUFBYSxZQUFZO0FBQUEsSUFBRSxlQUFlO0FBQUEsSUFBRSxZQUFZO0FBQUEsSUFBRTtBQUM1RDtBQUVBO0FBQUksY0FBWTtBQUFZO0FBQzVCO0FBQU07QUFBTyxVQUFRO0FBQUcsVUFBUTtBQUFNO0FBQ3RDO0FBQ0UsY0FBWSxJQUFJO0FBQ2hCLG9CQUFrQixnQkFBZ0IsSUFBSSxRQUFRLEdBQUcsRUFBRSxZQUFZO0FBQy9ELG1CQUFpQixLQUFLO0FBQ3RCLFNBQU8sSUFBSTtBQUNYLGVBQWEsSUFBSTtBQUNqQixhQUFXO0FBQ1gsZUFBYTtBQUNiLDBCQUF3QjtBQUN4Qix1QkFBcUI7QUFDdkI7QUFDQTtBQUFRO0FBQVEsUUFBTTtBQUFTLFNBQU87QUFBUztBQUUvQyxDQUFDO0FBQ0MsYUFBVztBQUNYLFVBQVEsRUFBRTtBQUNWLFdBQVMsS0FB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 */
