/* src/theme.css */
@font-face {
  font-family: "Hack";
  src: url("./hack-regular-NP4XGBPU.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Hack";
  src: url("./hack-bold-6UMZLGUA.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Hack";
  src: url("./hack-italic-4QISFEFD.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Hack";
  src: url("./hack-bolditalic-3IG7NGX7.woff2") format("woff2");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "JetBrains Mono";
  src: url("./jetbrains-mono-regular-XDEX5OV5.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "JetBrains Mono";
  src: url("./jetbrains-mono-bold-XTEGTLGW.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "JetBrains Mono";
  src: url("./jetbrains-mono-italic-BTB4HDQ2.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "JetBrains Mono";
  src: url("./jetbrains-mono-bolditalic-C3KKG45S.woff2") format("woff2");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Fira Code";
  src: url("./fira-code-regular-U6A44NPN.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Fira Code";
  src: url("./fira-code-bold-3G4P6IXL.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Cascadia Code";
  src: url("./cascadia-code-regular-FOAY2RTF.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Cascadia Code";
  src: url("./cascadia-code-bold-5LM6FL3F.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Cascadia Code";
  src: url("./cascadia-code-italic-MRQR3L2J.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Cascadia Code";
  src: url("./cascadia-code-bolditalic-T7FU5KY3.woff2") format("woff2");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}
:root {
  --chalk-bg: #000000;
  --chalk-bg-elev: #001a00;
  --chalk-bg-elev-2: #002a00;
  --chalk-fg: #00ff41;
  --chalk-fg-dim: #4ca96a;
  --chalk-fg-bright: #5cffb1;
  --chalk-fg-muted: #338050;
  --chalk-border: #003a00;
  --chalk-accent: #5cffb1;
  --chalk-warn: #ffcc00;
  --chalk-error: #ff4d4d;
  --chalk-presence-online: #17a557;
  --chalk-presence-online-glow: rgba(23, 165, 87, 0.45);
  --chalk-presence-away: #c47f00;
  --chalk-presence-offline: #7f8a82;
  --chalk-font-mono:
    "Hack",
    ui-monospace,
    "SF Mono",
    Consolas,
    "Roboto Mono",
    monospace;
  --chalk-font-jetbrains: "JetBrains Mono", var(--chalk-font-mono);
  --chalk-font-fira: "Fira Code", var(--chalk-font-mono);
  --chalk-font-cascadia: "Cascadia Code", var(--chalk-font-mono);
  --chalk-font-sans:
    system-ui,
    -apple-system,
    "Segoe UI",
    Roboto,
    "Helvetica Neue",
    Arial,
    sans-serif;
  --chalk-font-serif:
    ui-serif,
    Georgia,
    Cambria,
    "Times New Roman",
    serif;
  --chalk-font: var(--chalk-font-mono);
  --chalk-font-scale: 1;
  --chalk-size-base: calc(14px * var(--chalk-font-scale));
  --chalk-size-small: calc(12px * var(--chalk-font-scale));
  --chalk-size-title: calc(18px * var(--chalk-font-scale));
  --chalk-s1: 4px;
  --chalk-s2: 8px;
  --chalk-s3: 12px;
  --chalk-s4: 16px;
  --chalk-s5: 24px;
  --chalk-s6: 32px;
  --chalk-radius: 2px;
  color-scheme: dark;
}
* {
  box-sizing: border-box;
}
html,
body {
  margin: 0;
  padding: 0;
  background: var(--chalk-bg);
  color: var(--chalk-fg);
  font-family: var(--chalk-font);
  font-size: var(--chalk-size-base);
  line-height: 1.4;
  min-height: 100dvh;
  touch-action: manipulation;
  overscroll-behavior-x: none;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
::selection {
  background: var(--chalk-fg);
  color: var(--chalk-bg);
}
html {
  scrollbar-width: var(--chalk-scrollbar-width, thin);
  scrollbar-color: var(--chalk-fg-muted) transparent;
}
.chalk-noscript {
  color: #00ff41;
  background: #000;
  font-family: monospace;
  padding: 2rem;
}
.chalk-app {
  display: grid;
  grid-template-rows: auto 1fr auto;
  height: 100dvh;
  min-height: 0;
  max-width: 900px;
  margin: 0 auto;
  padding: 0 var(--chalk-s4);
}
.chalk-app--phase08b {
  display: grid;
  grid-template-columns: var(--chalk-sidebar-w, 220px) 1fr;
  grid-template-rows: auto 1fr auto;
  grid-template-areas: "header header" "sidebar main" "footer footer";
  height: 100dvh;
  min-height: 0;
  max-width: var(--chalk-app-max-w, 1100px);
  column-gap: var(--chalk-s3);
}
.chalk-app--phase08b .chalk-header {
  grid-area: header;
}
.chalk-app--phase08b .chalk-sidebar {
  grid-area: sidebar;
}
.chalk-app--phase08b .chalk-main {
  grid-area: main;
}
.chalk-app--phase08b .chalk-footer {
  grid-area: footer;
}
.chalk-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: var(--chalk-s4) 0 var(--chalk-s3) 0;
  border-bottom: 1px solid var(--chalk-border);
}
.chalk-header h1 {
  margin: 0;
  font-size: var(--chalk-size-title);
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: lowercase;
  color: var(--chalk-fg-bright);
}
.chalk-brand {
  display: flex;
  align-items: center;
  gap: 0.35em;
  font-size: var(--chalk-size-title);
}
.chalk-logo {
  width: 1.15em;
  height: 1.15em;
  flex: none;
}
.chalk-main {
  overflow-y: auto;
  overflow-anchor: none;
  min-height: 0;
  padding: var(--chalk-s4) var(--chalk-scroll-lane, var(--chalk-s2)) var(--chalk-s4) 0;
}
.chalk-footer {
  border-top: 1px solid var(--chalk-border);
  padding: var(--chalk-s3) 0 var(--chalk-s4) 0;
  display: grid;
  grid-template-columns: var(--chalk-sidebar-w, 220px) 1fr;
  column-gap: var(--chalk-s3);
  align-items: end;
  position: relative;
}
.chalk-footer,
.chalk-footer-left,
.chalk-footer-main {
  min-width: 0;
}
.chalk-swipe-x {
  transform: translateX(var(--chalk-swipe-x, 0px));
}
.chalk-swipe-x--settling {
  transition: transform 160ms ease-out;
}
.chalk-app--swiping .chalk-main,
.chalk-app--swiping .chalk-footer-main {
  transform: translateX(var(--chalk-swipe-x, 0px));
}
.chalk-app--swiping-settle .chalk-main,
.chalk-app--swiping-settle .chalk-footer-main {
  transition: transform 160ms ease-out;
}
.chalk-typing {
  min-height: 1.6em;
  line-height: 1.6;
  margin-bottom: var(--chalk-s2);
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-dim);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
@media (min-width: 768px) {
  .chalk-typing::before {
    content: "";
    display: inline-block;
    font-size: var(--chalk-size-base);
    width: calc(var(--chalk-s2) + var(--chalk-msg-gutter) + var(--chalk-msg-time-col) + var(--chalk-msg-col-gap));
  }
}
.chalk-typing-wave {
  white-space: nowrap;
}
.chalk-typing-wave-ch {
  display: inline-block;
  animation-name: chalk-typing-wave;
  animation-duration: 1.8s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}
@keyframes chalk-typing-wave {
  0% {
    transform: translateY(0);
  }
  12% {
    transform: translateY(-0.22em);
  }
  24% {
    transform: translateY(0.04em);
  }
  32% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(0);
  }
}
.chalk-typing-wave-ch:nth-child(1) {
  animation-delay: 0ms;
}
.chalk-typing-wave-ch:nth-child(2) {
  animation-delay: 70ms;
}
.chalk-typing-wave-ch:nth-child(3) {
  animation-delay: 140ms;
}
.chalk-typing-wave-ch:nth-child(4) {
  animation-delay: 210ms;
}
.chalk-typing-wave-ch:nth-child(5) {
  animation-delay: 280ms;
}
.chalk-typing-wave-ch:nth-child(6) {
  animation-delay: 350ms;
}
.chalk-typing-wave-ch:nth-child(7) {
  animation-delay: 420ms;
}
.chalk-typing-wave-ch:nth-child(8) {
  animation-delay: 490ms;
}
.chalk-typing-wave-ch:nth-child(9) {
  animation-delay: 560ms;
}
@media (prefers-reduced-motion: reduce) {
  .chalk-typing-wave-ch {
    animation: none;
  }
}
.chalk-status {
  display: inline-flex;
  align-items: center;
  gap: var(--chalk-s2);
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-dim);
}
.chalk-status-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--chalk-fg-muted);
}
.chalk-status-dot--open {
  background: var(--chalk-presence-online);
  box-shadow: 0 0 4px var(--chalk-presence-online-glow);
}
.chalk-status-dot--connecting {
  background: var(--chalk-warn);
  animation: chalk-pulse 1s infinite;
}
.chalk-status-dot--closed {
  background: transparent;
  border: 1px solid var(--chalk-presence-offline);
  width: 6px;
  height: 6px;
}
.chalk-status-dot--error {
  background: var(--chalk-error);
}
@keyframes chalk-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.4;
  }
}
.chalk-status-detail {
  color: var(--chalk-fg-muted);
}
.chalk-status-user {
  color: var(--chalk-fg-bright);
  margin-left: var(--chalk-s2);
}
.chalk-messages {
  display: flex;
  flex-direction: column;
  --chalk-msg-gap: var(--chalk-s2);
  gap: var(--chalk-msg-gap);
}
.chalk-messages--empty {
  display: grid;
  place-items: center;
  min-height: 200px;
  color: var(--chalk-fg-muted);
  font-style: italic;
}
.chalk-main--voice {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.chalk-main--voice .chalk-channel-header,
.chalk-main--voice .chalk-channel-headwrap {
  flex: none;
}
.chalk-main--voice .chalk-voice-panel {
  flex: 0 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.chalk-main--voice .chalk-voice-stage {
  flex: 0 1 auto;
  min-height: 0;
  overflow: hidden;
}
.chalk-main--voice .chalk-voice-big {
  flex: 0 1 auto;
  min-height: 0;
}
.chalk-main--voice .chalk-voice-strip,
.chalk-main--voice .chalk-voice-bar,
.chalk-main--voice .chalk-voice-error,
.chalk-main--voice .chalk-voice-scratch {
  flex: none;
}
.chalk-main--voice .chalk-voice-drawer {
  flex: 0 1 auto;
  min-height: 0;
  overflow-y: auto;
}
.chalk-main--voice:has(.chalk-voice-grid--crowded) .chalk-messages--ephemeral {
  min-height: 3em;
}
.chalk-main--voice:has(.chalk-voice-grid--crowded) .chalk-voice-scratch > span:last-child {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.chalk-messages--ephemeral {
  flex: 1 1 0;
  min-height: 6em;
  overflow: hidden;
  justify-content: flex-end;
}
.chalk-messages--ephemeral.chalk-messages--empty {
  min-height: 0;
}
.chalk-empty-hint {
  margin: 0;
}
.chalk-history-sentinel {
  height: 1px;
  flex-shrink: 0;
}
.chalk-history-cap {
  text-align: center;
  color: var(--chalk-fg-dim);
  font-size: var(--chalk-size-small);
  padding: var(--chalk-s2) 0;
  user-select: none;
}
.chalk-history-cap--loading {
  font-style: italic;
}
.chalk-history-more {
  display: block;
  margin: var(--chalk-s2) auto;
  background: none;
  border: 1px solid var(--chalk-border);
  color: var(--chalk-fg-dim);
  font-family: inherit;
  font-size: var(--chalk-size-small);
  padding: 0.25rem 0.75rem;
  cursor: pointer;
}
.chalk-history-more:hover {
  color: var(--chalk-fg);
  border-color: var(--chalk-fg-bright);
}
.chalk-message {
  display: grid;
  grid-template-columns: 7ch 9ch 1fr;
  gap: var(--chalk-s2);
  padding: var(--chalk-s1) var(--chalk-s2) var(--chalk-s1) calc(var(--chalk-s2) + var(--chalk-msg-gutter));
  border-radius: var(--chalk-radius);
  background: transparent;
}
.chalk-message:hover {
  background: var(--chalk-bg-elev);
}
.chalk-message--own {
  color: var(--chalk-fg-bright);
}
.chalk-message-time {
  color: var(--chalk-fg-muted);
  font-size: var(--chalk-size-small);
  align-self: center;
}
.chalk-message-sender {
  color: var(--chalk-fg-dim);
  font-size: var(--chalk-size-small);
  align-self: center;
  overflow: hidden;
  text-overflow: ellipsis;
}
.chalk-message-body {
  word-break: break-word;
  white-space: pre-wrap;
}
.chalk-composer {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s2);
}
.chalk-composer--railed {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s2);
}
.chalk-composer-rail {
  flex: none;
  min-width: 56px;
}
.chalk-composer-main {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s2);
  min-width: 0;
  position: relative;
}
.chalk-composer-mentions {
  position: absolute;
  bottom: calc(100% + var(--chalk-s1));
  left: 0;
  right: 0;
  z-index: 40;
  display: flex;
  flex-direction: column;
  padding: var(--chalk-s1);
  background: var(--chalk-bg-elev);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
  max-height: 40vh;
  overflow-y: auto;
}
.chalk-composer-mention-item {
  background: transparent;
  border: none;
  border-radius: var(--chalk-radius);
  padding: var(--chalk-s1) var(--chalk-s2);
  text-align: left;
  font-family: inherit;
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg);
  cursor: pointer;
}
.chalk-composer-mention-item--active {
  background: var(--chalk-bg-elev-2);
  color: var(--chalk-fg-bright);
}
.chalk-composer-row {
  display: flex;
  gap: var(--chalk-s2);
  align-items: end;
}
.chalk-composer-input {
  flex: 1 1 auto;
  background: var(--chalk-bg-elev);
  color: var(--chalk-fg);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  padding: var(--chalk-s2) var(--chalk-s3);
  font-family: inherit;
  font-size: var(--chalk-size-base);
  resize: vertical;
  min-height: 2.4em;
  height: var(--chalk-composer-h, auto);
  max-height: clamp(30dvh, var(--chalk-composer-h, 30dvh), 60dvh);
}
.chalk-composer-input:focus {
  outline: 1px solid var(--chalk-fg);
  outline-offset: -1px;
  background: var(--chalk-bg-elev-2);
}
.chalk-composer-input::placeholder {
  color: var(--chalk-fg-muted);
}
.chalk-composer-input:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.chalk-composer-send {
  flex: 0 0 auto;
  align-self: stretch;
  padding: 0 var(--chalk-s3);
  background: transparent;
  color: var(--chalk-fg);
  border: 1px solid var(--chalk-fg);
  border-radius: var(--chalk-radius);
  font-family: inherit;
  font-size: var(--chalk-size-small);
  line-height: 1;
  text-transform: lowercase;
  letter-spacing: 0.05em;
  cursor: pointer;
}
.chalk-composer-send:hover:not(:disabled) {
  background: var(--chalk-fg);
  color: var(--chalk-bg);
}
.chalk-composer-send:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  border-color: var(--chalk-fg-muted);
  color: var(--chalk-fg-muted);
}
.chalk-composer-attach {
  flex: 0 0 auto;
  align-self: stretch;
  padding: 0 var(--chalk-s3);
  background: transparent;
  color: var(--chalk-fg-muted);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  font-family: inherit;
  font-size: var(--chalk-size-base);
  cursor: pointer;
}
.chalk-composer-attach:hover:not(:disabled) {
  color: var(--chalk-fg);
  border-color: var(--chalk-fg);
}
.chalk-composer-attach:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.chalk-composer-tray {
  display: flex;
  flex-wrap: wrap;
  gap: var(--chalk-s2);
}
.chalk-composer-editing {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  padding: var(--chalk-s1) var(--chalk-s2);
  border-left: 2px solid var(--chalk-accent);
  background: var(--chalk-bg-elev);
  border-radius: var(--chalk-radius);
  font-size: var(--chalk-size-small);
}
.chalk-composer-editing-label {
  color: var(--chalk-accent);
}
.chalk-composer--editing .chalk-composer-input,
.chalk-composer--editing .chalk-composer-input:focus {
  border-color: var(--chalk-accent);
  outline-color: var(--chalk-accent);
}
.chalk-composer--editing .chalk-composer-send {
  border-color: var(--chalk-accent);
  color: var(--chalk-accent);
}
.chalk-composer--editing .chalk-composer-send:hover:not(:disabled) {
  background: var(--chalk-accent);
  color: var(--chalk-bg);
}
.chalk-composer-editing-hint {
  margin-left: auto;
  color: var(--chalk-fg-dim);
  opacity: 0.75;
}
.chalk-composer-editing-cancel {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  font-size: inherit;
  color: var(--chalk-fg-dim);
  cursor: pointer;
  text-decoration: underline;
}
.chalk-composer-editing-cancel:hover {
  color: var(--chalk-fg-bright);
}
.chalk-composer-editing-cancel:focus-visible {
  outline: 1px solid var(--chalk-fg-bright);
  outline-offset: 2px;
}
.chalk-composer-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--chalk-s2);
  max-width: 100%;
  padding: var(--chalk-s1) var(--chalk-s2);
  background: var(--chalk-bg-elev);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  font-size: var(--chalk-size-small);
}
.chalk-composer-chip-thumb {
  width: 1.8em;
  height: 1.8em;
  object-fit: cover;
  border-radius: var(--chalk-radius);
  border: 1px solid var(--chalk-border);
}
.chalk-composer-chip-icon {
  color: var(--chalk-fg-muted);
}
.chalk-composer-chip-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 16em;
}
.chalk-composer-chip-size {
  color: var(--chalk-fg-muted);
}
.chalk-composer-chip-remove {
  background: transparent;
  border: none;
  color: var(--chalk-fg-muted);
  cursor: pointer;
  font-family: inherit;
  font-size: var(--chalk-size-small);
  padding: 0 0.2em;
  line-height: 1;
}
.chalk-composer-chip-remove:hover {
  color: var(--chalk-fg-bright);
}
.chalk-composer-linkpreview {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  padding: var(--chalk-s1) var(--chalk-s2);
  background: var(--chalk-bg-elev);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  font-size: var(--chalk-size-small);
  min-width: 0;
}
.chalk-composer-linkpreview-ask,
.chalk-composer-linkpreview-loading {
  color: var(--chalk-fg-dim);
}
.chalk-composer-linkpreview-enable {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  font-size: inherit;
  color: var(--chalk-accent);
  cursor: pointer;
  text-decoration: underline;
}
.chalk-composer-linkpreview-enable:hover {
  color: var(--chalk-fg-bright);
}
.chalk-composer-linkpreview-thumb {
  width: 3.4em;
  height: 3.4em;
  object-fit: cover;
  border-radius: var(--chalk-radius);
  flex: none;
}
.chalk-composer-linkpreview-text {
  display: flex;
  flex-direction: column;
  gap: 0.1em;
  min-width: 0;
}
.chalk-composer-linkpreview-site {
  color: var(--chalk-fg-muted);
  font-size: 0.85em;
}
.chalk-composer-linkpreview-title {
  color: var(--chalk-fg-bright);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chalk-composer-linkpreview-desc {
  color: var(--chalk-fg-dim);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chalk-composer-linkpreview-host {
  color: var(--chalk-fg-muted);
  font-size: 0.85em;
}
.chalk-composer-linkpreview-dismiss {
  margin-left: auto;
  background: transparent;
  border: none;
  color: var(--chalk-fg-muted);
  cursor: pointer;
  font-family: inherit;
  font-size: var(--chalk-size-small);
  padding: 0 0.2em;
  line-height: 1;
  align-self: flex-start;
}
.chalk-composer-linkpreview-dismiss:hover {
  color: var(--chalk-fg-bright);
}
.chalk-composer-code {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  padding: var(--chalk-s1) var(--chalk-s2);
  background: var(--chalk-bg-elev);
  border: 1px solid var(--chalk-border);
  border-left: 2px solid var(--chalk-accent);
  border-radius: var(--chalk-radius);
  font-size: var(--chalk-size-small);
  min-width: 0;
}
.chalk-composer-code-open {
  display: flex;
  align-items: baseline;
  gap: var(--chalk-s2);
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  font-size: inherit;
  color: inherit;
  cursor: pointer;
  min-width: 0;
}
.chalk-composer-code-label {
  color: var(--chalk-fg-bright);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.chalk-composer-code-lines {
  color: var(--chalk-fg-muted);
}
.chalk-composer-code-open:hover .chalk-composer-code-label {
  text-decoration: underline;
}
.chalk-composer-code-dismiss {
  margin-left: auto;
  background: transparent;
  border: none;
  color: var(--chalk-fg-muted);
  cursor: pointer;
  font-family: inherit;
  font-size: var(--chalk-size-small);
  padding: 0 0.2em;
  line-height: 1;
}
.chalk-composer-code-dismiss:hover {
  color: var(--chalk-fg-bright);
}
.chalk-code-modal-body {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s2);
}
.chalk-code-modal-input {
  width: 100%;
  background: var(--chalk-bg-elev);
  color: var(--chalk-fg);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  padding: var(--chalk-s2);
  font-family: var(--chalk-font-mono);
  font-size: var(--chalk-size-small);
  line-height: 1.4;
  tab-size: 4;
  white-space: pre;
  overflow: auto;
  resize: vertical;
}
.chalk-code-modal-input:focus {
  outline: 1px solid var(--chalk-fg);
  outline-offset: -1px;
  background: var(--chalk-bg-elev-2);
}
.chalk-code-modal-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--chalk-s3);
  font-size: var(--chalk-size-small);
}
.chalk-code-modal-lang {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  color: var(--chalk-fg-dim);
}
.chalk-code-modal-lang select {
  background: var(--chalk-bg-elev);
  color: var(--chalk-fg);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  padding: 2px var(--chalk-s2);
  font-family: inherit;
  font-size: inherit;
}
.chalk-code-modal-count {
  color: var(--chalk-fg-muted);
}
.chalk-code-modal-count--over {
  color: var(--chalk-error);
}
.chalk-message-linkpreview {
  grid-column: 1 / -1;
  margin-top: var(--chalk-s1);
  min-width: 0;
}
.chalk-linkpreview-card {
  display: flex;
  gap: var(--chalk-s2);
  max-width: 28rem;
  padding: var(--chalk-s2);
  background: var(--chalk-bg-elev);
  border: 1px solid var(--chalk-border);
  border-left: 2px solid var(--chalk-accent);
  border-radius: var(--chalk-radius);
  font-size: var(--chalk-size-small);
  color: inherit;
  text-decoration: none;
  min-width: 0;
}
.chalk-linkpreview-card:hover {
  border-color: var(--chalk-fg-dim);
  border-left-color: var(--chalk-accent);
}
.chalk-linkpreview-thumb {
  width: 4.6em;
  height: 4.6em;
  object-fit: cover;
  border-radius: var(--chalk-radius);
  flex: none;
}
.chalk-linkpreview-text {
  display: flex;
  flex-direction: column;
  gap: 0.15em;
  min-width: 0;
}
.chalk-linkpreview-site {
  color: var(--chalk-fg-muted);
  font-size: 0.85em;
}
.chalk-linkpreview-title {
  color: var(--chalk-fg-bright);
}
.chalk-linkpreview-desc {
  color: var(--chalk-fg-dim);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.chalk-linkpreview-host {
  color: var(--chalk-fg-muted);
  font-size: 0.85em;
}
.chalk-linkpreview-card:hover .chalk-linkpreview-title {
  text-decoration: underline;
}
.chalk-message-code {
  grid-column: 1 / -1;
  margin-top: var(--chalk-s1);
  min-width: 0;
}
.chalk-codecard {
  max-width: 44rem;
  background: var(--chalk-bg-elev);
  border: 1px solid var(--chalk-border);
  border-left: 2px solid var(--chalk-accent);
  border-radius: var(--chalk-radius);
  min-width: 0;
  overflow: hidden;
}
.chalk-codecard-head {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  padding: var(--chalk-s1) var(--chalk-s2);
  border-bottom: 1px solid var(--chalk-border);
  font-size: var(--chalk-size-small);
}
.chalk-codecard-lang {
  color: var(--chalk-fg-bright);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.chalk-codecard-lines {
  color: var(--chalk-fg-muted);
}
.chalk-codecard-copy {
  margin-left: auto;
  background: transparent;
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  color: var(--chalk-fg-dim);
  cursor: pointer;
  font-family: inherit;
  font-size: inherit;
  line-height: 1;
  padding: 2px var(--chalk-s2);
}
.chalk-codecard-copy:hover {
  color: var(--chalk-fg);
  border-color: var(--chalk-fg-bright);
}
.chalk-codecard-body {
  margin: 0;
  padding: var(--chalk-s2);
  font-family: var(--chalk-font-mono);
  font-size: var(--chalk-size-small);
  line-height: 1.4;
  tab-size: 4;
  white-space: pre;
  overflow-x: auto;
}
.chalk-codecard-body--clipped {
  max-height: 21em;
  overflow-y: hidden;
}
.chalk-codecard-expand {
  display: block;
  width: 100%;
  background: transparent;
  border: none;
  border-top: 1px solid var(--chalk-border);
  color: var(--chalk-fg-dim);
  cursor: pointer;
  font-family: inherit;
  font-size: var(--chalk-size-small);
  padding: var(--chalk-s1);
  text-align: center;
}
.chalk-codecard-expand:hover {
  color: var(--chalk-fg-bright);
}
.chalk-linkpreview-domains {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s1);
}
.chalk-linkpreview-domain-row {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  font-size: var(--chalk-size-small);
}
.chalk-linkpreview-domain-row--added {
  padding-left: 1.55em;
}
.chalk-linkpreview-domain-remove {
  background: transparent;
  border: none;
  color: var(--chalk-fg-muted);
  cursor: pointer;
  font-family: inherit;
  font-size: var(--chalk-size-small);
  padding: 0 0.2em;
  line-height: 1;
}
.chalk-linkpreview-domain-remove:hover {
  color: var(--chalk-fg-bright);
}
.chalk-linkpreview-domain-add {
  display: flex;
  gap: var(--chalk-s2);
  margin-top: var(--chalk-s1);
}
.chalk-linkpreview-domain-add input {
  flex: 1;
  min-width: 0;
}
.chalk-linkpreview-domain-input--error {
  border-color: var(--chalk-error, #c33) !important;
}
.chalk-composer--drag-active {
  outline: 1px dashed var(--chalk-fg);
  outline-offset: 2px;
  background: var(--chalk-bg-elev);
}
.chalk-composer-drop-hint {
  padding: var(--chalk-s1) var(--chalk-s2);
  color: var(--chalk-fg-bright);
  font-size: var(--chalk-size-small);
  text-align: center;
  border: 1px dashed var(--chalk-fg);
  border-radius: var(--chalk-radius);
}
.chalk-composer-chip-progress {
  display: inline-block;
  width: 6em;
  height: 6px;
  background: var(--chalk-bg);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  overflow: hidden;
}
.chalk-composer-chip-progress-fill {
  display: block;
  height: 100%;
  background: var(--chalk-fg);
  transition: width 0.15s linear;
}
.chalk-message-attachments {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s2);
  margin-top: var(--chalk-s1);
  padding-right: var(--chalk-s5);
}
.chalk-message-giphy {
  grid-column: 1 / -1;
}
.chalk-attachment {
  font-size: var(--chalk-size-small);
}
.chalk-attachment--loading,
.chalk-attachment--locked {
  display: inline-flex;
  align-items: center;
  gap: var(--chalk-s2);
  padding: var(--chalk-s1) var(--chalk-s2);
  color: var(--chalk-fg-muted);
  border: 1px dashed var(--chalk-border);
  border-radius: var(--chalk-radius);
  font-style: italic;
}
.chalk-attachment-img {
  display: block;
  width: auto;
  max-width: min(720px, 100%);
  height: auto;
  max-height: 70dvh;
  object-fit: contain;
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  cursor: zoom-in;
}
.chalk-attachment-img--preview {
  filter: blur(1px);
}
.chalk-attachment-img--full {
  filter: none;
}
.chalk-attachment-img--expanded {
  max-width: 100%;
  max-height: 80dvh;
  cursor: zoom-out;
}
.chalk-attachment-img,
.chalk-attachment-lightbox-img,
.chalk-giphy-img,
.chalk-linkpreview-thumb {
  -webkit-user-drag: none;
}
.chalk-attachment-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--chalk-s4);
  background: rgba(0, 0, 0, 0.92);
  cursor: zoom-out;
  touch-action: none;
  overflow: hidden;
}
.chalk-attachment-lightbox-img {
  max-width: 95vw;
  max-height: calc(100dvh - 5rem);
  object-fit: contain;
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
}
.chalk-attachment-lightbox-caption {
  position: fixed;
  left: 0;
  right: 0;
  bottom: var(--chalk-s3);
  z-index: 1;
  text-align: center;
  color: var(--chalk-fg-muted);
  font-size: var(--chalk-size-small);
  pointer-events: none;
}
.chalk-lightbox-caption-inner {
  display: inline-block;
  max-width: 92vw;
  padding: var(--chalk-s1) var(--chalk-s3);
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.75);
}
.chalk-lightbox-stage {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  max-height: 100%;
}
.chalk-lightbox-stage--dragging {
  transform: translateX(var(--chalk-lightbox-x, 0px));
}
.chalk-lightbox-stage--settling {
  transition: transform 160ms ease-out;
}
.chalk-attachment-lightbox-img--preview {
  filter: blur(2px);
}
.chalk-lightbox-loading,
.chalk-lightbox-locked {
  color: var(--chalk-fg-muted);
  font-size: var(--chalk-size-small);
  padding: var(--chalk-s4);
}
.chalk-lightbox-close,
.chalk-lightbox-nav {
  position: fixed;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 1px solid var(--chalk-border);
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.75);
  color: var(--chalk-fg);
  cursor: pointer;
  line-height: 1;
}
.chalk-lightbox-close:hover:not(:disabled),
.chalk-lightbox-nav:hover:not(:disabled) {
  background: rgba(0, 0, 0, 0.8);
}
.chalk-lightbox-close:disabled,
.chalk-lightbox-nav:disabled {
  opacity: 0.25;
  cursor: default;
}
.chalk-lightbox-close {
  top: var(--chalk-s3);
  right: var(--chalk-s3);
  font-size: var(--chalk-size-body);
}
.chalk-lightbox-nav {
  top: 50%;
  transform: translateY(-50%);
  font-size: 2rem;
  padding-bottom: 0.2em;
}
.chalk-lightbox-nav--prev {
  left: var(--chalk-s3);
}
.chalk-lightbox-nav--next {
  right: var(--chalk-s3);
}
@media (hover: none), (max-width: 640px) {
  .chalk-lightbox-nav {
    display: none;
  }
}
.chalk-lightbox-counter {
  display: inline-block;
  margin-right: var(--chalk-s2);
  color: var(--chalk-fg);
  font-variant-numeric: tabular-nums;
}
.chalk-attachment-lightbox-img {
  cursor: zoom-in;
  transform-origin: center center;
}
.chalk-attachment-lightbox-video {
  display: block;
  max-width: 95vw;
  max-height: calc(100dvh - 5rem);
  background: #000;
  border-radius: var(--chalk-radius);
  outline: none;
}
.chalk-lightbox-video-poster {
  position: relative;
  line-height: 0;
}
.chalk-lightbox-loading--over {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  padding: var(--chalk-s2) var(--chalk-s3);
  background: rgba(0, 0, 0, 0.6);
  border-radius: var(--chalk-radius);
  line-height: 1.3;
}
.chalk-attachment-lightbox--zoomed .chalk-attachment-lightbox-img {
  cursor: grab;
}
.chalk-attachment-lightbox--zoomed .chalk-attachment-lightbox-img:active {
  cursor: grabbing;
}
.chalk-attachment-img-placeholder {
  width: 200px;
  aspect-ratio: 5 / 3;
  background: var(--chalk-bg-elev);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
}
.chalk-attachment-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--chalk-s1);
  width: 100%;
  max-width: min(480px, 100%);
}
.chalk-attachment-tile {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: var(--chalk-radius);
}
.chalk-attachment-grid--widefirst .chalk-attachment-tile:first-child {
  grid-column: 1 / -1;
  aspect-ratio: 2 / 1;
}
.chalk-attachment-tile .chalk-attachment,
.chalk-attachment-tile .chalk-attachment--image {
  width: 100%;
  height: 100%;
}
.chalk-attachment-tile .chalk-attachment-img,
.chalk-attachment-tile .chalk-attachment-img-placeholder {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  border: 1px solid var(--chalk-border);
}
.chalk-attachment-tile .chalk-attachment--loading,
.chalk-attachment-tile .chalk-attachment--locked {
  display: flex;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.chalk-attachment-tile-more {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  font-size: var(--chalk-size-title);
  font-weight: 600;
  border: 0;
  border-radius: var(--chalk-radius);
  cursor: pointer;
}
.chalk-attachment-tile-more:hover {
  background: rgba(0, 0, 0, 0.65);
}
.chalk-attachment--video-inline {
  display: inline-block;
  max-width: 100%;
}
.chalk-attachment-video-box {
  position: relative;
  display: block;
  line-height: 0;
}
.chalk-attachment-video-poster {
  cursor: pointer;
}
.chalk-attachment-video-box .chalk-attachment-video-poster {
  width: 100%;
  height: 100%;
  filter: none;
}
.chalk-attachment-video {
  display: block;
  width: 100%;
  height: 100%;
  max-width: min(720px, 100%);
  max-height: 70dvh;
  background: #000;
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
}
.chalk-attachment-video-play {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 3.2em;
  height: 3.2em;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  padding-left: 0.2em;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  font-size: var(--chalk-size-base);
  line-height: 1;
  border: 2px solid rgba(255, 255, 255, 0.85);
  border-radius: 50%;
  cursor: pointer;
}
.chalk-attachment-video-play:hover:not(:disabled) {
  background: rgba(0, 0, 0, 0.8);
}
.chalk-attachment-video-play--loading {
  padding-left: 0;
  cursor: progress;
}
.chalk-attachment-video-play .chalk-attachment-spinner {
  border-color: rgba(255, 255, 255, 0.35);
  border-top-color: #fff;
}
.chalk-attachment-video-duration {
  position: absolute;
  right: var(--chalk-s2);
  bottom: var(--chalk-s2);
  padding: 0 var(--chalk-s1);
  background: rgba(0, 0, 0, 0.65);
  color: #fff;
  font-size: var(--chalk-size-small);
  font-variant-numeric: tabular-nums;
  line-height: 1.5;
  border-radius: var(--chalk-radius);
  pointer-events: none;
}
.chalk-attachment-video-unplayable {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--chalk-s2);
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  font-size: var(--chalk-size-small);
  line-height: 1.3;
  text-align: center;
  border-radius: var(--chalk-radius);
}
.chalk-attachment-video-caption {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  margin-top: var(--chalk-s1);
  color: var(--chalk-fg-muted);
}
.chalk-attachment-tile .chalk-attachment--video,
.chalk-attachment-tile .chalk-attachment-video-box {
  width: 100%;
  height: 100%;
}
.chalk-attachment-tile .chalk-attachment-video-poster {
  object-fit: cover;
  max-width: none;
  max-height: none;
}
.chalk-attachment--file {
  display: inline-flex;
  align-items: center;
  gap: var(--chalk-s2);
  padding: var(--chalk-s2) var(--chalk-s3);
  background: var(--chalk-bg-elev);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
}
.chalk-attachment-file-icon {
  color: var(--chalk-fg-muted);
}
.chalk-attachment-file-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 18em;
}
.chalk-attachment-file-size {
  color: var(--chalk-fg-muted);
}
.chalk-attachment-download {
  background: transparent;
  color: var(--chalk-fg);
  border: 1px solid var(--chalk-fg);
  border-radius: var(--chalk-radius);
  font-family: inherit;
  font-size: var(--chalk-size-small);
  text-transform: lowercase;
  padding: 0 var(--chalk-s2);
  cursor: pointer;
}
.chalk-attachment-download:hover:not(:disabled) {
  background: var(--chalk-fg);
  color: var(--chalk-bg);
}
.chalk-attachment-download:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.chalk-errors {
  margin-top: var(--chalk-s2);
  padding: var(--chalk-s2) var(--chalk-s3);
  border-left: 2px solid var(--chalk-error);
  background: var(--chalk-bg-elev);
  font-size: var(--chalk-size-small);
}
.chalk-error-code {
  color: var(--chalk-error);
  font-weight: 700;
  margin-right: var(--chalk-s2);
}
.chalk-sidebar {
  border-right: 1px solid var(--chalk-border);
  padding: var(--chalk-s3) 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  position: relative;
}
.chalk-sidebar-resizer {
  position: absolute;
  top: 0;
  bottom: 0;
  right: -4px;
  width: 8px;
  cursor: col-resize;
  z-index: 5;
  background:
    linear-gradient(
      to right,
      transparent 3px,
      var(--chalk-fg-bright) 3px,
      var(--chalk-fg-bright) 5px,
      transparent 5px);
  opacity: 0;
  transition: opacity 120ms ease;
  touch-action: none;
  user-select: none;
}
.chalk-sidebar-resizer:hover,
.chalk-sidebar-resizer:focus-visible {
  opacity: 1;
}
.chalk-sidebar-resizer:focus-visible {
  outline: none;
}
body.chalk-resizing {
  cursor: col-resize;
  user-select: none;
}
body.chalk-resizing .chalk-sidebar-resizer {
  opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
  .chalk-sidebar-resizer {
    transition: none;
  }
}
.chalk-composer-resizer {
  position: absolute;
  left: 0;
  right: 0;
  top: -4px;
  height: 8px;
  cursor: ns-resize;
  z-index: 5;
  background:
    linear-gradient(
      to bottom,
      transparent 3px,
      var(--chalk-fg-bright) 3px,
      var(--chalk-fg-bright) 5px,
      transparent 5px);
  opacity: 0;
  transition: opacity 120ms ease;
  touch-action: none;
  user-select: none;
}
.chalk-composer-resizer:hover,
.chalk-composer-resizer:focus-visible {
  opacity: 1;
}
.chalk-composer-resizer:focus-visible {
  outline: none;
}
body.chalk-resizing-y {
  cursor: ns-resize;
  user-select: none;
}
body.chalk-resizing-y .chalk-composer-resizer {
  opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
  .chalk-composer-resizer {
    transition: none;
  }
}
.chalk-profile-range {
  width: 100%;
  accent-color: var(--chalk-fg-bright);
  cursor: pointer;
}
.chalk-unread-divider {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  margin: var(--chalk-s1) 0;
  user-select: none;
}
.chalk-unread-divider::before,
.chalk-unread-divider::after {
  content: "";
  height: 1px;
  background: var(--chalk-accent);
  opacity: 0.55;
}
.chalk-unread-divider::before {
  flex: 0 0 var(--chalk-s4);
}
.chalk-unread-divider::after {
  flex: 1 1 auto;
}
.chalk-unread-divider-label {
  color: var(--chalk-accent);
  font-size: var(--chalk-size-small);
  letter-spacing: 0.08em;
  white-space: nowrap;
}
.chalk-day-divider {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  user-select: none;
  position: sticky;
  top: var(--chalk-daymark-top, 0px);
  z-index: 6;
  background: var(--chalk-bg);
  box-shadow: 0 var(--chalk-msg-gap) var(--chalk-bg);
  pointer-events: none;
}
.chalk-day-divider::before,
.chalk-day-divider::after {
  content: "";
  height: 1px;
  background: var(--chalk-border);
}
.chalk-day-divider::before {
  flex: 0 0 var(--chalk-s4);
}
.chalk-day-divider::after {
  flex: 1 1 auto;
}
.chalk-day-divider-label {
  color: var(--chalk-fg-muted);
  font-size: var(--chalk-size-small);
  letter-spacing: 0.08em;
  white-space: nowrap;
}
.chalk-message--unread {
  background: color-mix(in srgb, var(--chalk-accent) 8%, transparent);
}
@supports not (background: color-mix(in srgb, red 50%, transparent)) {
  .chalk-message--unread {
    background: var(--chalk-bg-elev);
  }
}
.chalk-message--flash {
  animation: chalk-message-flash 1.4s ease-out 1 forwards;
}
@keyframes chalk-message-flash {
  from {
    background: color-mix(in srgb, var(--chalk-accent) 35%, transparent);
  }
  to {
    background: transparent;
  }
}
@supports not (background: color-mix(in srgb, red 50%, transparent)) {
  .chalk-message--flash {
    animation: none;
    background: var(--chalk-bg-elev);
  }
}
.chalk-sidebar-inner {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}
.chalk-sidebar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--chalk-s2) var(--chalk-s2) var(--chalk-s2);
}
.chalk-sidebar-title {
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-dim);
  text-transform: lowercase;
  letter-spacing: 0.08em;
}
.chalk-sidebar-new {
  background: transparent;
  border: 1px solid var(--chalk-border);
  color: var(--chalk-fg-bright);
  width: 24px;
  height: 24px;
  font-family: inherit;
  font-size: calc(16px * var(--chalk-font-scale));
  line-height: 1;
  cursor: pointer;
  padding: 0;
}
.chalk-sidebar-new:hover {
  border-color: var(--chalk-fg-bright);
  background: var(--chalk-bg-elev);
}
.chalk-sidebar-new:focus-visible {
  outline: 1px solid var(--chalk-fg-bright);
  outline-offset: 1px;
}
.chalk-sidebar-list {
  list-style: none;
  margin: 0;
  padding: 0;
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}
.chalk-sidebar-empty {
  padding: var(--chalk-s2);
  color: var(--chalk-fg-dim);
  font-style: italic;
  font-size: var(--chalk-size-small);
}
.chalk-sidebar-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--chalk-s2);
  cursor: pointer;
  border-left: 2px solid transparent;
  color: var(--chalk-fg);
}
.chalk-sidebar-item:hover {
  background: var(--chalk-bg-elev);
}
.chalk-sidebar-item:focus-visible {
  outline: 1px solid var(--chalk-fg-bright);
  outline-offset: -1px;
}
.chalk-sidebar-item--active {
  border-left-color: var(--chalk-fg-bright);
  background: var(--chalk-bg-elev);
  color: var(--chalk-fg-bright);
}
.chalk-sidebar-item-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chalk-sidebar-item-tag,
.chalk-channel-header-tag {
  font-size: calc(10px * var(--chalk-font-scale));
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--chalk-fg-dim);
  border: 1px solid var(--chalk-border);
  padding: 1px 4px;
  margin-left: var(--chalk-s2);
}
.chalk-mode-badge {
  display: inline-flex;
  align-items: center;
  align-self: center;
  margin-left: var(--chalk-s2);
  color: var(--chalk-fg-dim);
}
.chalk-mode-badge.chalk-mode-democratic {
  color: var(--chalk-accent);
}
.chalk-channel-header {
  display: flex;
  align-items: baseline;
  padding: var(--chalk-s4) 0 var(--chalk-s3) 0;
  border-bottom: 1px solid var(--chalk-border);
  margin-bottom: var(--chalk-s3);
  position: sticky;
  top: calc(-1 * var(--chalk-s4));
  margin-top: calc(-1 * var(--chalk-s4));
  background: var(--chalk-bg);
  box-shadow: 0 var(--chalk-s3) var(--chalk-bg);
  z-index: 5;
}
.chalk-channel-header-name {
  font-size: var(--chalk-size-body);
  color: var(--chalk-fg-bright);
  font-weight: 400;
}
.chalk-channel-headwrap {
  position: sticky;
  top: calc(-1 * var(--chalk-s4));
  margin-top: calc(-1 * var(--chalk-s4));
  margin-bottom: var(--chalk-s3);
  border-bottom: 1px solid var(--chalk-border);
  background: var(--chalk-bg);
  box-shadow: 0 var(--chalk-s3) var(--chalk-bg);
  z-index: 5;
}
.chalk-channel-headwrap .chalk-channel-header {
  position: static;
  top: auto;
  margin-top: 0;
  margin-bottom: 0;
  border-bottom: none;
  box-shadow: none;
  z-index: auto;
}
.chalk-channel-banner {
  position: relative;
  height: 88px;
  overflow: hidden;
  margin-bottom: var(--chalk-s2);
  background: var(--chalk-bg);
}
.chalk-channel-banner[data-height=short] {
  height: 56px;
}
.chalk-channel-banner[data-height=tall] {
  height: 200px;
}
.chalk-channel-banner-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  cursor: zoom-in;
}
.chalk-channel-banner--fit {
  display: flex;
  align-items: stretch;
  justify-content: center;
}
.chalk-channel-banner--fit .chalk-channel-banner-img {
  width: auto;
  max-width: 100%;
  flex: 0 0 auto;
}
.chalk-channel-banner-fade {
  flex: 1 1 0;
  min-width: 0;
  background-size: 100% 100%;
  background-repeat: no-repeat;
}
.chalk-channel-banner-fade--left {
  -webkit-mask-image:
    linear-gradient(
      to right,
      transparent 0%,
      rgba(0, 0, 0, 0.25) 45%,
      rgba(0, 0, 0, 0.7) 75%,
      #000 100%);
  mask-image:
    linear-gradient(
      to right,
      transparent 0%,
      rgba(0, 0, 0, 0.25) 45%,
      rgba(0, 0, 0, 0.7) 75%,
      #000 100%);
}
.chalk-channel-banner-fade--right {
  -webkit-mask-image:
    linear-gradient(
      to left,
      transparent 0%,
      rgba(0, 0, 0, 0.25) 45%,
      rgba(0, 0, 0, 0.7) 75%,
      #000 100%);
  mask-image:
    linear-gradient(
      to left,
      transparent 0%,
      rgba(0, 0, 0, 0.25) 45%,
      rgba(0, 0, 0, 0.7) 75%,
      #000 100%);
}
.chalk-channel-banner-blur {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: blur(26px) brightness(0.86) saturate(1.15);
  transform: scale(1.15) scaleX(-1);
  pointer-events: none;
  z-index: 0;
}
.chalk-channel-banner--poster {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: var(--chalk-s2) 0 var(--chalk-s2) var(--chalk-s4);
  gap: var(--chalk-s3);
}
.chalk-channel-banner--poster .chalk-channel-banner-img {
  width: auto;
  max-width: 45%;
  height: 100%;
  flex: 0 0 auto;
  object-fit: contain;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
}
.chalk-channel-banner--poster .chalk-channel-banner-fade {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.chalk-channel-banner--poster .chalk-channel-banner-blur {
  z-index: 0;
}
.chalk-channel-banner-img,
.chalk-channel-banner-fade {
  position: relative;
  z-index: 1;
}
.chalk-banner-editor-preview {
  border: 1px solid var(--chalk-border);
  overflow: hidden;
}
.chalk-banner-editor-preview .chalk-channel-banner {
  margin-bottom: 0;
}
.chalk-banner-editor-preview--draggable {
  cursor: grab;
  touch-action: none;
}
.chalk-banner-editor-preview--draggable:active {
  cursor: grabbing;
}
.chalk-channel-banner--preview .chalk-channel-banner-img {
  cursor: inherit;
  -webkit-user-drag: none;
  user-select: none;
}
.chalk-banner-editor-loading {
  padding: var(--chalk-s4);
  text-align: center;
  color: var(--chalk-fg-muted);
  font-size: var(--chalk-size-small);
}
.chalk-avatar {
  display: inline-block;
  flex: 0 0 auto;
  object-fit: cover;
  vertical-align: middle;
  background: var(--chalk-bg-elev-2, transparent);
}
.chalk-avatar--line {
  width: 1em;
  height: 1em;
  margin-right: 0.4em;
}
.chalk-avatar--empty {
  background: transparent;
}
.chalk-avatar--row {
  width: 16px;
  height: 16px;
  margin-right: var(--chalk-s2);
}
.chalk-avatar--card {
  width: 44px;
  height: 44px;
}
.chalk-avatar--tile {
  width: 100%;
  height: 100%;
  border-radius: inherit;
}
.chalk-friend-card-avatar {
  margin-bottom: var(--chalk-s2);
}
.chalk-profile-avatar-row {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  flex-wrap: wrap;
}
.chalk-banner-cropper {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s2);
}
.chalk-banner-cropper-surface {
  position: relative;
  align-self: center;
  max-width: 100%;
  max-height: 46vh;
  line-height: 0;
  cursor: crosshair;
  touch-action: none;
  user-select: none;
  border: 1px solid var(--chalk-border);
  background: var(--chalk-bg);
}
.chalk-banner-cropper-img {
  display: block;
  max-width: 100%;
  max-height: 46vh;
  -webkit-user-drag: none;
  user-select: none;
}
.chalk-banner-cropper-rect {
  position: absolute;
  box-sizing: border-box;
  border: 1px solid var(--chalk-accent);
  box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.62);
  cursor: move;
}
.chalk-banner-cropper-handle {
  position: absolute;
  width: 14px;
  height: 14px;
  background: var(--chalk-accent);
  margin: -7px;
}
.chalk-banner-cropper-handle--nw {
  left: 0;
  top: 0;
  cursor: nwse-resize;
}
.chalk-banner-cropper-handle--ne {
  right: 0;
  top: 0;
  cursor: nesw-resize;
}
.chalk-banner-cropper-handle--sw {
  left: 0;
  bottom: 0;
  cursor: nesw-resize;
}
.chalk-banner-cropper-handle--se {
  right: 0;
  bottom: 0;
  cursor: nwse-resize;
}
.chalk-banner-cropper-actions {
  display: flex;
  gap: var(--chalk-s2);
  margin-left: auto;
}
.chalk-banner-editor-controls {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s2);
}
.chalk-banner-editor-row {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
}
.chalk-banner-editor-label {
  color: var(--chalk-fg-dim);
  font-size: var(--chalk-size-small);
  min-width: 5em;
}
.chalk-banner-editor-range {
  flex: 1 1 auto;
  min-width: 0;
  accent-color: var(--chalk-accent);
}
.chalk-banner-editor-value {
  color: var(--chalk-fg-dim);
  font-size: var(--chalk-size-small);
  min-width: 4em;
  text-align: right;
}
.chalk-enc-indicator {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-left: var(--chalk-s2);
  align-self: center;
  line-height: 0;
  cursor: default;
  outline: none;
}
.chalk-enc-indicator.chalk-enc-ready {
  color: var(--chalk-accent);
}
.chalk-enc-indicator.chalk-enc-pending {
  color: var(--chalk-fg-muted);
  animation: chalk-enc-pulse 1.6s ease-in-out infinite;
}
@keyframes chalk-enc-pulse {
  0%, 100% {
    opacity: 0.45;
  }
  50% {
    opacity: 0.9;
  }
}
.chalk-enc-popover {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 40;
  display: none;
  flex-direction: column;
  gap: 2px;
  min-width: 220px;
  padding: var(--chalk-s2) var(--chalk-s3);
  background: var(--chalk-bg, #0a0f0a);
  border: 1px solid var(--chalk-accent);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);
  color: var(--chalk-fg);
  font-size: calc(11px * var(--chalk-font-scale));
  line-height: 1.5;
  text-align: left;
  white-space: nowrap;
  cursor: text;
}
.chalk-enc-indicator:hover .chalk-enc-popover,
.chalk-enc-indicator:focus .chalk-enc-popover,
.chalk-enc-indicator:focus-within .chalk-enc-popover {
  display: flex;
}
.chalk-enc-indicator.chalk-enc-pending .chalk-enc-popover {
  border-color: var(--chalk-fg-muted);
}
.chalk-enc-pop-head {
  color: var(--chalk-fg-bright);
  font-weight: 400;
  margin-bottom: 2px;
  letter-spacing: 0.02em;
}
.chalk-enc-pop-row {
  display: flex;
  justify-content: space-between;
  gap: var(--chalk-s3);
}
.chalk-enc-pop-k {
  color: var(--chalk-fg-dim);
}
.chalk-enc-pop-v {
  color: var(--chalk-accent);
}
.chalk-enc-indicator.chalk-enc-pending .chalk-enc-pop-v {
  color: var(--chalk-fg);
}
.chalk-enc-pop-note {
  margin-top: 4px;
  padding-top: 4px;
  border-top: 1px solid var(--chalk-border);
  color: var(--chalk-fg-muted);
  white-space: normal;
}
.chalk-main-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: var(--chalk-fg-dim);
  font-style: italic;
}
.chalk-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 100;
}
.chalk-modal-backdrop--over {
  z-index: 120;
}
.chalk-modal {
  background: var(--chalk-bg);
  border: 1px solid var(--chalk-fg-bright);
  min-width: 360px;
  max-width: 500px;
  width: 90%;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
}
.chalk-modal--settings {
  height: min(42rem, 90vh);
}
.chalk-modal--settings .chalk-modal-body {
  flex: 1 1 auto;
}
.chalk-modal--code {
  max-width: 46rem;
}
.chalk-modal-card {
  background: var(--chalk-bg);
  border: 1px solid var(--chalk-fg-bright);
  border-radius: var(--chalk-radius);
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}
.chalk-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--chalk-s3) var(--chalk-s4);
  border-bottom: 1px solid var(--chalk-border);
}
.chalk-modal-header h2 {
  margin: 0;
  font-size: var(--chalk-size-body);
  font-weight: 400;
  color: var(--chalk-fg-bright);
  text-transform: lowercase;
  letter-spacing: 0.08em;
}
.chalk-modal-close {
  background: transparent;
  border: none;
  color: var(--chalk-fg-dim);
  font-size: calc(24px * var(--chalk-font-scale));
  line-height: 1;
  cursor: pointer;
  padding: 0;
  width: 24px;
  height: 24px;
}
.chalk-modal-close:hover {
  color: var(--chalk-fg-bright);
}
.chalk-modal-header-actions {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
}
.chalk-modal-refresh {
  background: transparent;
  border: none;
  color: var(--chalk-fg-dim);
  font-size: calc(18px * var(--chalk-font-scale));
  line-height: 1;
  cursor: pointer;
  padding: 0;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.chalk-modal-refresh:hover:not(:disabled) {
  color: var(--chalk-fg-bright);
}
.chalk-modal-refresh:disabled {
  opacity: 0.5;
  cursor: progress;
}
.chalk-modal-refresh--spinning {
  animation: chalk-spin 0.8s linear infinite;
}
@keyframes chalk-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.chalk-modal-body {
  padding: var(--chalk-s4);
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s3);
  overflow-y: auto;
  min-height: 0;
}
.chalk-modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: var(--chalk-s2);
  padding: var(--chalk-s3) var(--chalk-s4);
  border-top: 1px solid var(--chalk-border);
}
.chalk-modal-footer--about {
  justify-content: center;
  font-size: var(--chalk-size-small);
}
.chalk-modal-error {
  color: #ff5555;
  font-size: var(--chalk-size-small);
}
.chalk-field {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s1);
}
.chalk-field--checkbox {
  flex-direction: row;
  align-items: center;
  gap: var(--chalk-s2);
}
.chalk-field-label {
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-dim);
  text-transform: lowercase;
  letter-spacing: 0.08em;
}
.chalk-field-input {
  background: var(--chalk-bg-elev);
  border: 1px solid var(--chalk-border);
  color: var(--chalk-fg);
  font-family: inherit;
  font-size: var(--chalk-size-body);
  padding: var(--chalk-s2);
}
.chalk-field-input:focus {
  outline: none;
  border-color: var(--chalk-fg-bright);
}
.chalk-field-hint {
  color: var(--chalk-fg-dim);
  font-style: italic;
  font-size: var(--chalk-size-small);
  padding: var(--chalk-s2) 0;
}
.chalk-friend-picker {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 200px;
  overflow-y: auto;
  border: 1px solid var(--chalk-border);
}
.chalk-friend-picker-item {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  padding: var(--chalk-s2);
  cursor: pointer;
}
.chalk-friend-picker-item:hover {
  background: var(--chalk-bg-elev);
}
.chalk-friend-picker-item--selected {
  background: var(--chalk-bg-elev);
  color: var(--chalk-fg-bright);
}
.chalk-friend-picker-id {
  font-family: inherit;
}
.chalk-button {
  background: transparent;
  border: 1px solid var(--chalk-border);
  color: var(--chalk-fg);
  font-family: inherit;
  font-size: var(--chalk-size-body);
  padding: var(--chalk-s2) var(--chalk-s3);
  cursor: pointer;
  text-transform: lowercase;
  letter-spacing: 0.04em;
}
.chalk-button:hover {
  border-color: var(--chalk-fg-bright);
  color: var(--chalk-fg-bright);
}
.chalk-button:focus-visible {
  outline: 1px solid var(--chalk-fg-bright);
  outline-offset: 1px;
}
.chalk-button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.chalk-button--primary {
  border-color: var(--chalk-fg-bright);
  color: var(--chalk-fg-bright);
}
.chalk-button--secondary {
}
.chalk-auth {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100dvh;
  padding: var(--chalk-s4);
}
.chalk-auth-card {
  background: var(--chalk-bg-elev);
  border: 1px solid var(--chalk-fg-bright);
  padding: var(--chalk-s5);
  width: 100%;
  max-width: 480px;
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s4);
}
.chalk-auth-card--wide {
  max-width: 640px;
}
.chalk-auth-header h2 {
  margin: 0 0 var(--chalk-s2) 0;
  font-size: var(--chalk-size-title);
  color: var(--chalk-fg-bright);
}
.chalk-auth-subtitle {
  margin: 0;
  color: var(--chalk-fg-dim);
  font-size: var(--chalk-size-small);
}
.chalk-auth-subtitle strong {
  color: var(--chalk-fg-bright);
}
.chalk-auth-form {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s3);
}
.chalk-auth-error {
  border: 1px solid var(--chalk-error);
  background: rgba(255, 77, 77, 0.08);
  color: var(--chalk-error);
  padding: var(--chalk-s3);
  font-size: var(--chalk-size-small);
}
.chalk-auth-warning {
  border: 1px solid var(--chalk-warn);
  background: rgba(255, 204, 0, 0.08);
  color: var(--chalk-warn);
  padding: var(--chalk-s3);
  font-size: var(--chalk-size-small);
  line-height: 1.5;
}
.chalk-auth-warning strong {
  color: var(--chalk-fg-bright);
}
.chalk-field-error {
  color: var(--chalk-error);
  font-size: var(--chalk-size-small);
}
.chalk-field-optional,
.chalk-field-required {
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-muted);
  font-weight: normal;
}
.chalk-field-required {
  color: var(--chalk-warn);
}
.chalk-auth-link {
  background: transparent;
  border: none;
  color: var(--chalk-accent);
  text-decoration: underline;
  cursor: pointer;
  font-family: inherit;
  font-size: var(--chalk-size-small);
  padding: 0;
  align-self: flex-start;
}
.chalk-auth-link:hover {
  color: var(--chalk-fg-bright);
}
.chalk-auth-actions-row {
  display: flex;
  gap: var(--chalk-s2);
  flex-wrap: wrap;
}
.chalk-auth-gate {
  border-top: 1px dashed var(--chalk-border);
  padding-top: var(--chalk-s3);
}
.chalk-auth-meta {
  display: flex;
  gap: var(--chalk-s2);
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-muted);
  border-top: 1px dashed var(--chalk-border);
  padding-top: var(--chalk-s3);
}
.chalk-auth-meta-dev,
.chalk-auth-meta-warn {
  color: var(--chalk-warn);
  border: 1px solid var(--chalk-warn);
  padding: 0 var(--chalk-s1);
  font-size: calc(10px * var(--chalk-font-scale));
  letter-spacing: 0.05em;
}
.chalk-button--primary {
  background: var(--chalk-fg);
  color: var(--chalk-bg);
  border-color: var(--chalk-fg);
}
.chalk-button--primary:hover:not(:disabled) {
  background: var(--chalk-fg-bright);
  border-color: var(--chalk-fg-bright);
  color: var(--chalk-bg);
  color: var(--chalk-bg);
}
.chalk-button--primary:disabled {
  opacity: 1;
  background: var(--chalk-bg-elev);
  color: var(--chalk-fg-muted);
  border-color: var(--chalk-border);
  cursor: not-allowed;
}
.chalk-recovery-words {
  list-style: none;
  margin: 0;
  padding: var(--chalk-s3);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--chalk-s2);
  background: var(--chalk-bg);
  border: 1px solid var(--chalk-fg-bright);
  font-family: var(--chalk-font);
}
@media (max-width: 600px) {
  .chalk-recovery-words {
    grid-template-columns: repeat(2, 1fr);
  }
}
.chalk-recovery-word {
  display: flex;
  gap: var(--chalk-s1);
  align-items: baseline;
}
.chalk-recovery-word-index {
  color: var(--chalk-fg-muted);
  font-size: var(--chalk-size-small);
  min-width: 1.8em;
  text-align: right;
}
.chalk-recovery-word-text {
  color: var(--chalk-fg-bright);
  font-size: var(--chalk-size-base);
  user-select: all;
}
.chalk-identity-challenge {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s3);
  margin-top: var(--chalk-s4);
}
.chalk-auth-alt {
  margin-top: var(--chalk-s4);
  text-align: center;
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-muted);
}
.chalk-auth-alt .chalk-auth-link {
  margin-left: var(--chalk-s1);
}
.chalk-status-menu {
  position: relative;
  display: inline-block;
}
.chalk-status-menu-trigger {
  background: transparent;
  border: 1px solid transparent;
  color: var(--chalk-fg);
  font: inherit;
  font-size: var(--chalk-size-small);
  padding: var(--chalk-s1) var(--chalk-s2);
  cursor: pointer;
  border-radius: 2px;
}
.chalk-status-menu-trigger:hover,
.chalk-status-menu-trigger[aria-expanded=true] {
  background: var(--chalk-bg-elev);
  border-color: var(--chalk-fg-muted);
}
.chalk-status-menu-badge {
  display: inline-block;
  margin-left: var(--chalk-s1);
}
.chalk-status-menu-popover {
  position: absolute;
  top: calc(100% + var(--chalk-s1));
  right: 0;
  min-width: 8rem;
  background: var(--chalk-bg-elev);
  border: 1px solid var(--chalk-fg-muted);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
  z-index: 10;
  display: flex;
  flex-direction: column;
}
.chalk-status-menu-item {
  background: transparent;
  border: 0;
  color: var(--chalk-fg);
  font: inherit;
  font-size: var(--chalk-size-small);
  padding: var(--chalk-s2) var(--chalk-s3);
  text-align: left;
  cursor: pointer;
}
.chalk-status-menu-item:hover,
.chalk-status-menu-item:focus {
  background: var(--chalk-bg);
  outline: none;
}
.chalk-field-input--textarea {
  resize: vertical;
  min-height: 6em;
  font-family: var(--chalk-mono, ui-monospace, monospace);
}
.chalk-field-hint--warn {
  color: var(--chalk-warn);
}
.chalk-modal--wide {
  max-width: 720px;
}
.chalk-modal-body h3 {
  margin: 0 0 var(--chalk-s2);
  font-size: var(--chalk-size-body);
  font-weight: 400;
  color: var(--chalk-fg-bright);
  text-transform: lowercase;
  letter-spacing: 0.08em;
}
.chalk-modal-body > section + section {
  margin-top: var(--chalk-s5);
  padding-top: var(--chalk-s5);
  border-top: 1px solid var(--chalk-border);
}
.chalk-invites-create {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s2);
}
.chalk-invites-list-section {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s2);
}
.chalk-invites-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s3);
}
.chalk-invite-row {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s1);
  padding: var(--chalk-s3);
  background: var(--chalk-bg-elev);
  border: 1px solid var(--chalk-border);
}
.chalk-invite-row-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--chalk-s2);
}
.chalk-invite-email {
  font-weight: 500;
  color: var(--chalk-fg-bright);
}
.chalk-invite-status {
  font-size: var(--chalk-size-small);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 2px var(--chalk-s2);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
}
.chalk-invite-status--active {
  color: var(--chalk-fg);
  border-color: var(--chalk-fg);
}
.chalk-invite-status--used {
  color: var(--chalk-fg-muted);
  border-color: var(--chalk-fg-muted);
}
.chalk-invite-status--revoked {
  color: var(--chalk-fg-dim);
  border-color: var(--chalk-fg-dim);
}
.chalk-invite-status--expired {
  color: var(--chalk-warn);
  border-color: var(--chalk-warn);
}
.chalk-invite-note {
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-dim);
  font-style: italic;
}
.chalk-invite-meta {
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-muted);
}
.chalk-invite-url-row {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  margin-top: var(--chalk-s1);
}
.chalk-invite-url {
  flex: 1;
  font-family: var(--chalk-font);
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg);
  background: var(--chalk-bg);
  padding: var(--chalk-s1) var(--chalk-s2);
  border: 1px solid var(--chalk-border);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}
.chalk-invite-actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--chalk-s2);
  margin-top: var(--chalk-s1);
}
.chalk-profile-identity {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s2);
}
.chalk-profile-fields {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: var(--chalk-s2) var(--chalk-s4);
  margin: 0;
}
.chalk-profile-fields dt {
  color: var(--chalk-fg-muted);
  font-size: var(--chalk-size-small);
  text-transform: lowercase;
  letter-spacing: 0.05em;
}
.chalk-profile-fields dd {
  margin: 0;
  color: var(--chalk-fg-bright);
  word-break: break-word;
}
.chalk-profile-fields dd em {
  color: var(--chalk-fg-muted);
  font-style: italic;
}
.chalk-profile-email-change {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s2);
}
.chalk-profile-pending {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s2);
  padding: var(--chalk-s3);
  background: var(--chalk-bg-elev);
  border: 1px solid var(--chalk-border);
}
.chalk-profile-pending p {
  margin: 0;
}
.chalk-profile-rotate {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s2);
}
.chalk-profile-filter {
  padding: var(--chalk-s2) var(--chalk-s4) 0 var(--chalk-s4);
  flex-shrink: 0;
}
.chalk-profile-filter-input {
  width: 100%;
  background: var(--chalk-bg-elev, #14201a);
  border: 1px solid var(--chalk-border);
  color: var(--chalk-fg);
  padding: 0.3rem 0.5rem;
  font-family: inherit;
  font-size: var(--chalk-size-small);
  box-sizing: border-box;
}
.chalk-profile-filter-input:focus {
  outline: none;
  border-color: var(--chalk-fg-bright);
}
.chalk-profile-filter-input::placeholder {
  color: var(--chalk-fg-dim);
  font-style: italic;
}
.chalk-profile-filter-empty {
  color: var(--chalk-fg-dim);
  font-style: italic;
  margin: 0;
  padding: var(--chalk-s4) 0;
}
.chalk-profile-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--chalk-s2);
  padding: var(--chalk-s2) var(--chalk-s4);
  border-bottom: 1px solid var(--chalk-border);
  flex-shrink: 0;
}
.chalk-profile-tab-btn {
  background: transparent;
  color: var(--chalk-fg-dim);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  padding: var(--chalk-s1) var(--chalk-s2);
  font-family: var(--chalk-font);
  font-size: var(--chalk-size-small);
  white-space: nowrap;
  cursor: pointer;
  transition:
    background 0.1s,
    color 0.1s,
    border-color 0.1s;
}
.chalk-profile-tab-btn:hover {
  color: var(--chalk-fg);
  border-color: var(--chalk-fg-dim);
}
.chalk-profile-tab-btn--active {
  color: var(--chalk-bg);
  background: var(--chalk-fg);
  border-color: var(--chalk-fg);
}
.chalk-profile-tab-btn--active:hover {
  color: var(--chalk-bg);
  background: var(--chalk-fg-bright);
  border-color: var(--chalk-fg-bright);
}
.chalk-modal--settings .chalk-modal-body > section {
  padding: var(--chalk-s2) var(--chalk-s3) var(--chalk-s3);
  background: var(--chalk-bg-elev);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
}
.chalk-modal--settings .chalk-modal-body > section + section {
  margin-top: 0;
  padding-top: var(--chalk-s2);
  border-top: 1px solid var(--chalk-border);
}
.chalk-modal--settings .chalk-modal-body h3 {
  margin: 0 0 var(--chalk-s1);
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-dim);
  letter-spacing: 0.12em;
}
.chalk-modal--settings .chalk-modal-body > section > .chalk-profile-hint {
  margin-top: var(--chalk-s2);
}
.chalk-modal--settings .chalk-profile-field {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s2);
  padding: var(--chalk-s2) 0;
}
.chalk-modal--settings .chalk-profile-field ~ .chalk-profile-field {
  border-top: 1px solid var(--chalk-border);
}
.chalk-modal--settings .chalk-profile-field:last-child {
  padding-bottom: 0;
}
.chalk-modal--settings .chalk-profile-field > * {
  margin-top: 0;
}
.chalk-modal--settings .chalk-profile-field > button {
  align-self: flex-start;
}
.chalk-modal--settings .chalk-profile-field:has(> .chalk-auth-link) {
  display: block;
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-dim);
}
.chalk-modal--settings .chalk-profile-label {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  color: var(--chalk-fg);
}
.chalk-modal--settings .chalk-profile-desc,
.chalk-modal--settings .chalk-profile-hint {
  margin: 0;
  color: var(--chalk-fg-dim);
  font-size: var(--chalk-size-small);
  font-style: normal;
  line-height: 1.4;
}
.chalk-modal--settings .chalk-profile-desc {
  display: block;
}
.chalk-modal--settings .chalk-profile-field:has(> .chalk-profile-select) {
  display: grid;
  grid-template-columns: minmax(45%, 1fr) minmax(0, auto);
  column-gap: var(--chalk-s3);
  row-gap: var(--chalk-s2);
  align-items: center;
}
.chalk-modal--settings .chalk-profile-field:has(> .chalk-profile-select) > .chalk-profile-select {
  justify-self: end;
  min-width: 0;
  max-width: 100%;
}
.chalk-modal--settings .chalk-profile-field:has(> .chalk-profile-select) > :not(.chalk-profile-label):not(.chalk-profile-select) {
  grid-column: 1 / -1;
}
.chalk-modal--settings .chalk-profile-field:has(> .chalk-profile-select:disabled) > .chalk-profile-label,
.chalk-modal--settings .chalk-profile-field:has(> .chalk-profile-range:disabled) > .chalk-profile-label {
  color: var(--chalk-fg-muted);
}
.chalk-modal--settings .chalk-profile-checkbox-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--chalk-s3);
  width: 100%;
}
.chalk-modal--settings .chalk-profile-checkbox-label > span {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1 1 auto;
  min-width: 0;
}
.chalk-modal--settings .chalk-profile-checkbox-label:has(> input:disabled) {
  color: var(--chalk-fg-muted);
  cursor: not-allowed;
}
.chalk-modal--settings .chalk-profile-checkbox-label > input[type=checkbox] {
  appearance: none;
  -webkit-appearance: none;
  order: 1;
  flex: none;
  position: relative;
  width: 30px;
  height: 16px;
  margin: 0;
  padding: 0;
  background: var(--chalk-bg-elev-2);
  border: 1px solid var(--chalk-fg-muted);
  border-radius: var(--chalk-radius);
  cursor: pointer;
  transition: background 120ms ease, border-color 120ms ease;
}
.chalk-modal--settings .chalk-profile-checkbox-label > input[type=checkbox]::before {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 10px;
  height: 10px;
  border-radius: var(--chalk-radius);
  background: var(--chalk-fg-dim);
  transition: transform 120ms ease, background 120ms ease;
}
.chalk-modal--settings .chalk-profile-checkbox-label > input[type=checkbox]:hover {
  border-color: var(--chalk-fg-dim);
}
.chalk-modal--settings .chalk-profile-checkbox-label > input[type=checkbox]:checked {
  background: var(--chalk-accent);
  border-color: var(--chalk-accent);
}
.chalk-modal--settings .chalk-profile-checkbox-label > input[type=checkbox]:checked::before {
  transform: translateX(14px);
  background: var(--chalk-bg);
}
.chalk-modal--settings .chalk-profile-checkbox-label > input[type=checkbox]:focus-visible {
  outline: 1px solid var(--chalk-fg-bright);
  outline-offset: 2px;
}
.chalk-modal--settings .chalk-profile-checkbox-label > input[type=checkbox]:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
@media (prefers-reduced-motion: reduce) {
  .chalk-modal--settings .chalk-profile-checkbox-label > input[type=checkbox],
  .chalk-modal--settings .chalk-profile-checkbox-label > input[type=checkbox]::before {
    transition: none;
  }
}
.chalk-modal--settings .chalk-profile-theme-option--active {
  background: var(--chalk-bg-elev-2);
}
.chalk-modal--settings .chalk-field-input {
  background: var(--chalk-bg);
}
.chalk-modal--settings .chalk-profile-camera-btn:hover,
.chalk-modal--settings .chalk-profile-camera-btn:focus-visible {
  background: var(--chalk-bg-elev-2);
}
.chalk-modal--settings .chalk-profile-sound-list {
  gap: var(--chalk-s1);
}
.chalk-modal--settings .chalk-profile-sound-row {
  gap: var(--chalk-s2);
  padding: var(--chalk-s1) 0;
}
.chalk-modal--settings .chalk-profile-sound-row > .chalk-profile-checkbox-label {
  display: contents;
}
.chalk-modal--settings .chalk-profile-sound-row > span,
.chalk-modal--settings .chalk-profile-sound-row > .chalk-profile-checkbox-label > span {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1 1 auto;
  min-width: 0;
}
.chalk-modal--settings .chalk-profile-sound-row > .chalk-profile-sound-preview {
  order: 1;
}
.chalk-modal--settings .chalk-profile-sound-row > .chalk-profile-checkbox-label > input[type=checkbox] {
  order: 2;
}
.chalk-auth-error .chalk-auth-link {
  margin-left: var(--chalk-s2);
}
.chalk-admin {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100dvh;
  background: var(--chalk-bg);
  color: var(--chalk-fg);
}
.chalk-admin--full {
  position: fixed;
  inset: 0;
  z-index: 50;
  overflow: hidden;
}
.chalk-admin-header {
  display: flex;
  align-items: center;
  gap: var(--chalk-s4);
  padding: var(--chalk-s3) var(--chalk-s4);
  border-bottom: 1px solid var(--chalk-border);
  background: var(--chalk-bg-elev);
  flex-shrink: 0;
}
.chalk-admin-back {
  flex-shrink: 0;
}
.chalk-admin-title {
  margin: 0;
  font-size: var(--chalk-size-title);
  font-weight: bold;
  flex-shrink: 0;
}
.chalk-admin-tabs {
  display: flex;
  gap: var(--chalk-s2);
  margin-left: auto;
}
.chalk-admin-tab-btn {
  background: transparent;
  color: var(--chalk-fg-dim);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  padding: var(--chalk-s2) var(--chalk-s3);
  font-family: var(--chalk-font);
  font-size: var(--chalk-size-base);
  cursor: pointer;
  transition:
    background 0.1s,
    color 0.1s,
    border-color 0.1s;
}
.chalk-admin-tab-btn:hover {
  color: var(--chalk-fg);
  border-color: var(--chalk-fg-dim);
}
.chalk-admin-tab-btn--active {
  color: var(--chalk-bg);
  background: var(--chalk-fg);
  border-color: var(--chalk-fg);
}
.chalk-admin-tab-btn--active:hover {
  color: var(--chalk-bg);
  background: var(--chalk-fg-bright);
  border-color: var(--chalk-fg-bright);
}
.chalk-admin-body {
  flex: 1;
  overflow-y: auto;
  padding: var(--chalk-s4);
}
.chalk-admin-tab {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s3);
  max-width: 1200px;
  margin: 0 auto;
}
.chalk-admin-toolbar {
  display: flex;
  align-items: center;
  gap: var(--chalk-s3);
}
.chalk-admin-toolbar-title {
  font-weight: bold;
  color: var(--chalk-fg-bright);
  margin-right: auto;
}
.chalk-admin-search {
  flex: 1;
}
.chalk-admin-search .chalk-field-input {
  width: 100%;
}
.chalk-admin-refresh {
  flex-shrink: 0;
}
.chalk-admin-action-error {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  padding: var(--chalk-s2) var(--chalk-s3);
  border: 1px solid var(--chalk-error);
  border-radius: var(--chalk-radius);
  background: rgba(255, 77, 77, 0.08);
  color: var(--chalk-error);
}
.chalk-admin-action-error-dismiss {
  background: transparent;
  color: var(--chalk-error);
  border: none;
  cursor: pointer;
  font-size: 1.2em;
  padding: 0 var(--chalk-s1);
  line-height: 1;
  margin-left: auto;
}
.chalk-admin-action-error-dismiss:hover {
  color: var(--chalk-fg-bright);
}
.chalk-admin-empty {
  padding: var(--chalk-s6);
  text-align: center;
  color: var(--chalk-fg-dim);
  font-style: italic;
}
.chalk-admin-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
}
.chalk-admin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--chalk-size-base);
}
.chalk-admin-table thead {
  background: var(--chalk-bg-elev);
}
.chalk-admin-table th {
  text-align: left;
  padding: var(--chalk-s2) var(--chalk-s3);
  font-weight: bold;
  color: var(--chalk-fg-dim);
  border-bottom: 1px solid var(--chalk-border);
}
.chalk-admin-table td {
  padding: var(--chalk-s2) var(--chalk-s3);
  border-bottom: 1px solid var(--chalk-border);
  vertical-align: middle;
}
.chalk-admin-table tr:last-child td {
  border-bottom: none;
}
.chalk-admin-row {
  position: relative;
  transition: background 0.1s;
}
.chalk-admin-row:hover {
  background: var(--chalk-bg-elev);
}
.chalk-admin-row--blocked {
  color: var(--chalk-warn);
}
.chalk-admin-row--deleted {
  color: var(--chalk-fg-muted);
  text-decoration: line-through;
  text-decoration-color: var(--chalk-fg-muted);
}
.chalk-admin-cell-username {
  font-weight: bold;
  white-space: nowrap;
}
.chalk-admin-cell-email {
  font-family: var(--chalk-font);
  color: var(--chalk-fg-dim);
}
.chalk-admin-cell-status {
  white-space: nowrap;
}
.chalk-admin-cell-created,
.chalk-admin-cell-former {
  white-space: nowrap;
  color: var(--chalk-fg-dim);
  font-variant-numeric: tabular-nums;
}
.chalk-admin-cell-actions {
  text-align: right;
  white-space: nowrap;
  min-width: 220px;
}
.chalk-admin-table-actions-col {
  width: 220px;
}
.chalk-admin-status-pill {
  display: inline-block;
  padding: 2px var(--chalk-s2);
  border-radius: var(--chalk-radius);
  font-size: var(--chalk-size-small);
  font-weight: bold;
  text-transform: lowercase;
  border: 1px solid;
}
.chalk-admin-status-pill--active {
  color: var(--chalk-fg);
  border-color: var(--chalk-fg);
}
.chalk-admin-status-pill--admin {
  color: var(--chalk-accent);
  border-color: var(--chalk-accent);
}
.chalk-admin-status-pill--blocked {
  color: var(--chalk-warn);
  border-color: var(--chalk-warn);
}
.chalk-admin-status-pill--deleted {
  color: var(--chalk-fg-muted);
  border-color: var(--chalk-fg-muted);
}
.chalk-admin-row-actions {
  display: flex;
  gap: var(--chalk-s1);
  justify-content: flex-end;
  opacity: 0;
  transition: opacity 0.1s;
}
.chalk-admin-row:hover .chalk-admin-row-actions,
.chalk-admin-row-actions:focus-within {
  opacity: 1;
}
@media (hover: none), (max-width: 640px) {
  .chalk-admin-row-actions {
    opacity: 1;
  }
}
.chalk-admin-row-action {
  background: transparent;
  color: var(--chalk-fg);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  padding: 2px var(--chalk-s2);
  font-family: var(--chalk-font);
  font-size: var(--chalk-size-small);
  cursor: pointer;
  transition:
    background 0.1s,
    color 0.1s,
    border-color 0.1s;
}
.chalk-admin-row-action:hover {
  background: var(--chalk-fg);
  color: var(--chalk-bg);
  border-color: var(--chalk-fg);
}
.chalk-admin-row-action--warn {
  color: var(--chalk-warn);
  border-color: var(--chalk-warn);
}
.chalk-admin-row-action--warn:hover {
  background: var(--chalk-warn);
  color: var(--chalk-bg);
  border-color: var(--chalk-warn);
}
.chalk-admin-row-action--danger {
  color: var(--chalk-error);
  border-color: var(--chalk-error);
}
.chalk-admin-row-action--danger:hover {
  background: var(--chalk-error);
  color: var(--chalk-bg);
  border-color: var(--chalk-error);
}
.chalk-admin-row-pending {
  color: var(--chalk-fg-dim);
  font-size: 1.2em;
  display: inline-block;
  padding: 0 var(--chalk-s2);
}
.chalk-admin-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--chalk-s3);
  padding: var(--chalk-s3) 0;
}
.chalk-admin-pagination-label {
  color: var(--chalk-fg-dim);
  font-variant-numeric: tabular-nums;
}
.chalk-admin-blacklist-add {
  display: flex;
  gap: var(--chalk-s3);
  align-items: flex-end;
  padding: var(--chalk-s3);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  background: var(--chalk-bg-elev);
}
.chalk-admin-blacklist-add .chalk-field {
  flex: 1;
}
.chalk-button--danger {
  background: var(--chalk-error);
  color: var(--chalk-bg);
  border-color: var(--chalk-error);
}
.chalk-button--danger:hover:not(:disabled) {
  background: #ff6666;
  border-color: #ff6666;
}
.chalk-button--danger:disabled {
  background: var(--chalk-fg-muted);
  border-color: var(--chalk-fg-muted);
}
.chalk-modal--confirm {
  max-width: 500px;
}
.chalk-admin-confirm-warning {
  font-size: 2em;
  color: var(--chalk-warn);
  text-align: center;
  margin-bottom: var(--chalk-s2);
}
.chalk-admin-confirm-body p {
  margin: 0 0 var(--chalk-s2) 0;
}
.chalk-admin-confirm-body p:last-child {
  margin-bottom: 0;
}
.chalk-fg-dim {
  color: var(--chalk-fg-dim);
}
.chalk-friends-panel {
  width: min(560px, 92vw);
  max-height: 80vh;
  display: flex;
  flex-direction: column;
}
.chalk-friends-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 0.75rem 1rem 0.5rem;
  border-bottom: 1px solid var(--chalk-border, #1f2a1f);
}
.chalk-friends-title {
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.chalk-friends-tabs {
  display: flex;
  gap: 0.25rem;
  padding: 0.5rem 1rem 0;
  border-bottom: 1px solid var(--chalk-border, #1f2a1f);
}
.chalk-friends-tab {
  background: transparent;
  color: var(--chalk-fg-dim, #5a8a5a);
  border: none;
  padding: 0.4rem 0.75rem;
  cursor: pointer;
  font-family: inherit;
  font-size: 0.9rem;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.chalk-friends-tab:hover {
  color: var(--chalk-fg, #c8ffc8);
}
.chalk-friends-tab--active {
  color: var(--chalk-fg, #c8ffc8);
  border-bottom-color: var(--chalk-accent, #6effa1);
}
.chalk-friends-badge,
.chalk-status-menu-badge {
  background: var(--chalk-accent, #6effa1);
  color: var(--chalk-bg, #0a120a);
  border-radius: 9999px;
  padding: 0 0.45em;
  font-size: 0.75rem;
  line-height: 1.4;
  font-weight: 600;
}
.chalk-friends-refresh {
  margin-left: auto;
  background: transparent;
  color: var(--chalk-fg-dim, #5a8a5a);
  border: none;
  font-family: inherit;
  font-size: 1.1rem;
  cursor: pointer;
  padding: 0.2rem 0.5rem;
}
.chalk-friends-refresh:hover {
  color: var(--chalk-fg, #c8ffc8);
}
.chalk-friends-body {
  padding: 1rem;
  overflow-y: auto;
}
.chalk-friends-help {
  color: var(--chalk-fg-dim, #5a8a5a);
  font-size: 0.85rem;
  margin: 0 0 0.75rem;
  line-height: 1.4;
}
.chalk-friends-add-row {
  display: flex;
  gap: 0.5rem;
}
.chalk-friends-add-input {
  flex: 1;
  background: var(--chalk-bg-elev, #14201a);
  border: 1px solid var(--chalk-border, #1f2a1f);
  color: var(--chalk-fg, #c8ffc8);
  padding: 0.45rem 0.6rem;
  font-family: inherit;
  font-size: 0.95rem;
  border-radius: 3px;
}
.chalk-friends-add-input:focus {
  outline: none;
  border-color: var(--chalk-accent, #6effa1);
}
.chalk-friends-add-submit {
  background: var(--chalk-accent, #6effa1);
  color: var(--chalk-bg, #0a120a);
  border: none;
  padding: 0.45rem 1rem;
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  border-radius: 3px;
}
.chalk-friends-add-submit:disabled {
  background: var(--chalk-fg-dim, #5a8a5a);
  cursor: not-allowed;
}
.chalk-friends-error {
  color: var(--chalk-error, #ff7070);
  font-size: 0.85rem;
  margin-top: 0.5rem;
  padding: 0.4rem 0.6rem;
  background: rgba(255, 112, 112, 0.08);
  border-left: 2px solid var(--chalk-error, #ff7070);
}
.chalk-friends-empty {
  color: var(--chalk-fg-dim, #5a8a5a);
  font-style: italic;
  text-align: center;
  padding: 1.5rem 1rem;
}
.chalk-friends-section-title {
  font-size: 0.8rem;
  color: var(--chalk-fg-dim, #5a8a5a);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin: 0 0 0.5rem;
}
.chalk-friends-pending section + section {
  margin-top: 1rem;
}
.chalk-friends-directory {
  margin-top: 1.25rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--chalk-border, #1f2a1f);
}
.chalk-friends-dim {
  color: var(--chalk-fg-dim, #5a8a5a);
  font-size: 0.85rem;
}
.chalk-friends-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.chalk-friends-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.5rem 0.6rem;
  border-radius: 3px;
}
.chalk-friends-row:hover {
  background: var(--chalk-bg-elev, #14201a);
}
.chalk-friends-handle {
  font-family: inherit;
  color: var(--chalk-fg, #c8ffc8);
}
.chalk-friends-row-actions {
  display: flex;
  gap: 0.4rem;
}
.chalk-friends-action {
  background: transparent;
  border: 1px solid var(--chalk-border, #1f2a1f);
  color: var(--chalk-fg-dim, #5a8a5a);
  font-family: inherit;
  font-size: 0.85rem;
  padding: 0.25rem 0.6rem;
  border-radius: 3px;
  cursor: pointer;
}
.chalk-friends-action:hover {
  color: var(--chalk-fg, #c8ffc8);
  border-color: var(--chalk-fg-dim, #5a8a5a);
}
.chalk-friends-action:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.chalk-friends-action--accept {
  color: var(--chalk-accent, #6effa1);
  border-color: var(--chalk-accent, #6effa1);
}
.chalk-friends-action--accept:hover {
  background: var(--chalk-accent, #6effa1);
  color: var(--chalk-bg, #0a120a);
}
.chalk-friends-action--decline {
  color: var(--chalk-warn, #ffd060);
  border-color: var(--chalk-warn, #ffd060);
}
.chalk-friends-action--decline:hover {
  background: var(--chalk-warn, #ffd060);
  color: var(--chalk-bg, #0a120a);
}
.chalk-sidebar-header--channels {
  margin-top: 1rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--chalk-border, #1f2a1f);
}
.chalk-sidebar-count {
  color: var(--chalk-fg-dim, #5a8a5a);
  font-size: 0.85em;
  font-weight: normal;
  margin-left: 0.25em;
}
.chalk-sidebar-list--friends {
}
.chalk-sidebar-item--friend .chalk-sidebar-item-name {
}
.chalk-sidebar-section {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.chalk-sidebar-section--friends {
  flex: 0 1 auto;
  max-height: 40vh;
  min-height: 4.5em;
}
.chalk-sidebar-section--channels {
  flex: 1;
  min-height: 9em;
}
.chalk-sidebar-section--voice {
  flex: 0 1 auto;
  max-height: 35vh;
  min-height: 4.5em;
  margin-top: 1rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--chalk-border, #1f2a1f);
}
.chalk-sidebar-list--voice {
  flex: 0 1 auto;
  overflow-y: auto;
}
.chalk-sidebar-list--friends {
  flex: 0 1 auto;
  overflow-y: auto;
}
.chalk-sidebar-filter {
  padding: 0 var(--chalk-s2) var(--chalk-s2) var(--chalk-s2);
  flex-shrink: 0;
}
.chalk-sidebar-filter-input {
  width: 100%;
  background: var(--chalk-bg-elev, #14201a);
  border: 1px solid var(--chalk-border);
  color: var(--chalk-fg);
  padding: 0.3rem 0.5rem;
  font-family: inherit;
  font-size: var(--chalk-size-small);
  box-sizing: border-box;
}
.chalk-sidebar-filter-input:focus {
  outline: none;
  border-color: var(--chalk-fg-bright);
}
.chalk-sidebar-filter-input::placeholder {
  color: var(--chalk-fg-dim);
  font-style: italic;
}
.chalk-sidebar-group-header {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  width: 100%;
  background: none;
  border: none;
  padding: 0.25rem var(--chalk-s2);
  margin-top: 0.25rem;
  font-family: inherit;
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-dim);
  cursor: pointer;
  text-align: left;
}
.chalk-sidebar-group-header:hover {
  color: var(--chalk-fg);
}
.chalk-sidebar-group {
  margin-top: 0.9rem;
}
.chalk-sidebar-group:first-child {
  margin-top: 0.15rem;
}
.chalk-sidebar-group .chalk-sidebar-group-header {
  margin-top: 0;
  padding-top: 0.45rem;
  padding-bottom: 0.3rem;
  border-top: 1px solid var(--chalk-border, #1f2a1f);
  letter-spacing: 0.08em;
}
.chalk-sidebar-group:first-child .chalk-sidebar-group-header {
  border-top: none;
  padding-top: 0.25rem;
}
.chalk-sidebar-item--grouped {
  padding-left: calc(var(--chalk-s2) + 0.8em + 0.35rem);
}
.chalk-sidebar-group-arrow {
  flex-shrink: 0;
  width: 0.8em;
}
.chalk-sidebar-group-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chalk-nick-menu-group-input {
  flex: 1;
  min-width: 0;
  background: var(--chalk-bg-elev, #14201a);
  border: 1px solid var(--chalk-border);
  color: var(--chalk-fg);
  padding: 0.2rem 0.4rem;
  font-family: inherit;
  font-size: var(--chalk-size-small);
  box-sizing: border-box;
}
.chalk-nick-menu-group-input:focus {
  outline: none;
  border-color: var(--chalk-fg-bright);
}
.chalk-nick-menu-select {
  flex: 1;
  min-width: 0;
  background: var(--chalk-bg-elev, #14201a);
  border: 1px solid var(--chalk-border);
  color: var(--chalk-fg);
  padding: 0.2rem 0.4rem;
  font-family: inherit;
  font-size: var(--chalk-size-small);
  box-sizing: border-box;
}
.chalk-nick-menu-select:focus {
  outline: none;
  border-color: var(--chalk-fg-bright);
}
.chalk-nick-menu-btn:disabled {
  opacity: 0.4;
  cursor: default;
}
.chalk-nick-menu-btn:disabled:hover {
  color: var(--chalk-fg-dim);
  border-color: var(--chalk-border);
  background: transparent;
}
.chalk-sidebar-list--channels {
  position: relative;
}
.chalk-sidebar-list--dragging {
  user-select: none;
  cursor: grabbing;
}
.chalk-sidebar-dropline {
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  margin-top: -1px;
  background: var(--chalk-accent);
  pointer-events: none;
  z-index: 2;
}
.chalk-sidebar-item[data-dragging=true],
.chalk-sidebar-group[data-dragging=true] {
  opacity: 0.45;
}
.chalk-sidebar-item--hidden .chalk-sidebar-item-name,
.chalk-sidebar-item--hidden .chalk-chglyph {
  opacity: 0.55;
}
.chalk-sidebar-item--hidden:hover .chalk-sidebar-item-name,
.chalk-sidebar-item--hidden:hover .chalk-chglyph {
  opacity: 1;
}
.chalk-zucker-row--hidden .chalk-zucker-row-main,
.chalk-zucker-row--hidden .chalk-zucker-row-badge {
  opacity: 0.55;
}
.chalk-sidebar-item--friend {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.chalk-presence-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 1px;
}
.chalk-presence-dot--online {
  background: var(--chalk-presence-online);
  box-shadow: 0 0 4px var(--chalk-presence-online-glow);
}
.chalk-presence-dot--away {
  background: var(--chalk-presence-away);
}
.chalk-presence-dot--offline {
  background: transparent;
  border: 1px solid var(--chalk-presence-offline);
  width: 6px;
  height: 6px;
}
.chalk-sidebar-item--friend {
  justify-content: flex-start;
}
.chalk-sidebar-item--friend .chalk-sidebar-item-name {
  flex: 0 1 auto;
}
.chalk-lazy-loading {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.4rem;
  padding: 2rem;
  min-height: 6rem;
}
.chalk-lazy-loading-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--chalk-fg-dim);
  animation: chalk-lazy-pulse 1.2s ease-in-out infinite;
}
.chalk-lazy-loading-dot:nth-child(2) {
  animation-delay: 0.15s;
}
.chalk-lazy-loading-dot:nth-child(3) {
  animation-delay: 0.3s;
}
@keyframes chalk-lazy-pulse {
  0%, 80%, 100% {
    opacity: 0.3;
    transform: scale(0.8);
  }
  40% {
    opacity: 1;
    transform: scale(1.0);
  }
}
.chalk-lazy-error {
  padding: 1.5rem;
  color: var(--chalk-error, #ff7070);
  background: rgba(255, 112, 112, 0.08);
  border-left: 2px solid var(--chalk-error, #ff7070);
  margin: 1rem;
  font-size: var(--chalk-size-small);
}
.chalk-presence-picker {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.chalk-presence-trigger {
  background: transparent;
  border: 1px solid transparent;
  color: inherit;
  font: inherit;
  padding: 0 0.5rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  border-radius: 3px;
}
.chalk-presence-trigger:hover {
  border-color: var(--chalk-border, #1f2a1f);
  background: var(--chalk-bg-elev, #14201a);
}
.chalk-presence-trigger:focus-visible {
  outline: 1px solid var(--chalk-fg-bright);
  outline-offset: -1px;
}
.chalk-presence-trigger--online .chalk-status-label {
  color: var(--chalk-presence-online);
}
.chalk-presence-trigger--away .chalk-status-label {
  color: var(--chalk-presence-away);
}
.chalk-presence-trigger--offline .chalk-status-label {
  color: var(--chalk-presence-offline);
}
.chalk-presence-mode-badge {
  font-size: calc(10px * var(--chalk-font-scale));
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--chalk-fg-dim, #5a8a5a);
  padding: 0 0.25rem;
}
.chalk-presence-menu {
  position: absolute;
  top: 100%;
  left: 0;
  margin-top: 4px;
  min-width: 12rem;
  background: var(--chalk-bg-elev, #14201a);
  border: 1px solid var(--chalk-border, #1f2a1f);
  padding: 0.3rem 0;
  z-index: 20;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}
.chalk-presence-menu-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  background: transparent;
  border: none;
  color: var(--chalk-fg, #c8ffc8);
  font: inherit;
  text-align: left;
  padding: 0.4rem 0.75rem;
  cursor: pointer;
}
.chalk-presence-menu-item:hover {
  background: rgba(110, 255, 161, 0.08);
}
.chalk-presence-menu-item--active {
  color: var(--chalk-fg-bright, #6effa1);
  background: rgba(110, 255, 161, 0.05);
}
.chalk-presence-menu-item--active::before {
  content: "\2713  ";
}
.chalk-presence-menu-hint {
  font-size: 0.75rem;
  color: var(--chalk-fg-dim, #5a8a5a);
  font-style: italic;
}
[data-theme=light] {
  --chalk-bg: #f7f5ee;
  --chalk-bg-elev: #ebe7da;
  --chalk-bg-elev-2: #ddd7c4;
  --chalk-fg: #1f1d17;
  --chalk-fg-dim: #6a6657;
  --chalk-fg-bright: #1a4d2a;
  --chalk-fg-muted: #8e8a7a;
  --chalk-border: #c9c2ab;
  --chalk-accent: #2d6e3f;
  --chalk-warn: #a85f00;
  --chalk-error: #9b2a26;
  color-scheme: light;
}
[data-theme=light] .chalk-modal,
[data-theme=light] .chalk-modal-card,
[data-theme=light] .chalk-presence-menu,
[data-theme=light] .chalk-status-menu {
  box-shadow: 0 4px 16px rgba(31, 29, 23, 0.18);
}
[data-theme=light] .chalk-modal-backdrop {
  background: rgba(31, 29, 23, 0.45);
}
[data-theme=light] .chalk-sidebar-item--active {
  background: rgba(45, 110, 63, 0.10);
}
.chalk-profile-theme-picker {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s2);
  margin-top: var(--chalk-s1);
}
.chalk-profile-theme-option {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  padding: var(--chalk-s2);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  cursor: pointer;
  transition: border-color 100ms ease;
}
.chalk-profile-theme-option:hover {
  border-color: var(--chalk-accent);
}
.chalk-profile-theme-option--active {
  border-color: var(--chalk-accent);
  background: var(--chalk-bg-elev);
}
.chalk-profile-theme-option input[type=radio] {
  appearance: none;
  -webkit-appearance: none;
  width: 0;
  height: 0;
  margin: 0;
  padding: 0;
  opacity: 0;
  position: absolute;
}
.chalk-profile-theme-option input[type=radio]:focus-visible + .chalk-profile-theme-swatch {
  outline: 1px solid var(--chalk-fg-bright);
  outline-offset: 2px;
}
.chalk-profile-theme-swatch {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: var(--chalk-s2);
  width: 100%;
}
.chalk-profile-theme-swatch-preview {
  display: inline-block;
  width: 24px;
  height: 24px;
  border-radius: var(--chalk-radius);
  border: 1px solid var(--chalk-border);
}
.chalk-profile-theme-swatch-preview--green {
  background:
    linear-gradient(
      135deg,
      #000000 0%,
      #000000 50%,
      #00ff41 50%,
      #00ff41 100%);
}
.chalk-profile-theme-swatch-preview--light {
  background:
    linear-gradient(
      135deg,
      #f7f5ee 0%,
      #f7f5ee 50%,
      #2d6e3f 50%,
      #2d6e3f 100%);
}
.chalk-profile-font-sample {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: var(--chalk-radius);
  border: 1px solid var(--chalk-border);
  color: var(--chalk-fg-bright);
  font-size: var(--chalk-size-small);
}
.chalk-profile-font-sample--mono {
  font-family: var(--chalk-font-mono);
}
.chalk-profile-font-sample--jetbrains {
  font-family: var(--chalk-font-jetbrains);
}
.chalk-profile-font-sample--fira {
  font-family: var(--chalk-font-fira);
}
.chalk-profile-font-sample--cascadia {
  font-family: var(--chalk-font-cascadia);
}
.chalk-profile-font-sample--sans {
  font-family: var(--chalk-font-sans);
}
.chalk-profile-font-sample--serif {
  font-family: var(--chalk-font-serif);
}
.chalk-profile-theme-name {
  font-weight: 500;
}
.chalk-profile-theme-desc {
  color: var(--chalk-fg-dim);
  font-size: var(--chalk-size-small);
}
.chalk-profile-hint {
  margin-top: var(--chalk-s1);
  color: var(--chalk-fg-dim);
  font-size: var(--chalk-size-small);
  font-style: italic;
}
.chalk-profile-warn {
  margin-top: var(--chalk-s1);
  padding: 0.5rem 0.6rem;
  border: 1px solid var(--chalk-warn);
  color: var(--chalk-warn);
  font-size: var(--chalk-size-small);
  line-height: 1.4;
}
.chalk-profile-keys {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--chalk-s1) var(--chalk-s3);
  margin: var(--chalk-s2) 0 0;
  font-size: var(--chalk-size-small);
}
.chalk-profile-keys-row {
  display: contents;
}
.chalk-profile-keys-row dt,
.chalk-profile-keys-row dd {
  margin: 0;
}
.chalk-profile-keys-row dd {
  color: var(--chalk-fg-dim);
}
.chalk-profile-keys kbd {
  font-family: inherit;
  font-size: inherit;
  color: var(--chalk-fg-bright);
  white-space: nowrap;
}
[data-theme=cyberpunk] {
  --chalk-bg: #0a0420;
  --chalk-bg-elev: #140a32;
  --chalk-bg-elev-2: #1f0f4d;
  --chalk-fg: #f0e8ff;
  --chalk-fg-dim: #8a7ab8;
  --chalk-fg-bright: #ff2eaa;
  --chalk-fg-muted: #7a68ad;
  --chalk-border: #4a2a8a;
  --chalk-accent: #00f0ff;
  --chalk-warn: #ffcc00;
  --chalk-error: #ff3060;
  color-scheme: dark;
}
[data-theme=cyberpunk] .chalk-sidebar-item--active {
  background: rgba(255, 46, 170, 0.12);
}
[data-theme=solarized-dark] {
  --chalk-bg: #002b36;
  --chalk-bg-elev: #073642;
  --chalk-bg-elev-2: #0e4a5c;
  --chalk-fg: #93a1a1;
  --chalk-fg-dim: #839496;
  --chalk-fg-bright: #eee8d5;
  --chalk-fg-muted: #657b83;
  --chalk-border: #073642;
  --chalk-accent: #268bd2;
  --chalk-warn: #b58900;
  --chalk-error: #dc322f;
  color-scheme: dark;
}
[data-theme=solarized-dark] .chalk-modal--settings {
  --chalk-border: var(--chalk-bg-elev-2);
}
[data-theme=solarized-dark] .chalk-sidebar-item--active {
  background: rgba(38, 139, 210, 0.12);
}
.chalk-profile-theme-swatch-preview--cyberpunk {
  background:
    linear-gradient(
      135deg,
      #0a0420 0%,
      #0a0420 50%,
      #ff2eaa 50%,
      #ff2eaa 100%);
}
.chalk-profile-theme-swatch-preview--solarized-dark {
  background:
    linear-gradient(
      135deg,
      #002b36 0%,
      #002b36 50%,
      #268bd2 50%,
      #268bd2 100%);
}
.chalk-messages--compact {
  --chalk-msg-gap: 1px;
}
.chalk-messages--compact .chalk-message {
  padding: 1px var(--chalk-s2) 1px calc(var(--chalk-s2) + var(--chalk-msg-gutter));
}
.chalk-messages--compact .chalk-message-body {
  font-size: var(--chalk-size-small);
}
.chalk-message--no-time {
  grid-template-columns: 9ch 1fr;
}
.chalk-profile-checkbox-label {
  display: inline-flex;
  align-items: center;
  gap: var(--chalk-s2);
  cursor: pointer;
  user-select: none;
}
.chalk-profile-checkbox-label input[type=checkbox] {
  width: 14px;
  height: 14px;
  cursor: pointer;
  accent-color: var(--chalk-accent);
}
.chalk-profile-sound-list {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s1);
  margin-top: var(--chalk-s1);
}
.chalk-profile-sound-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--chalk-s2);
}
.chalk-profile-sound-row .chalk-profile-checkbox-label {
  flex: 1;
  min-width: 0;
  align-items: flex-start;
}
.chalk-profile-sound-preview {
  flex: none;
  background: transparent;
  color: var(--chalk-fg-dim);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  padding: 0 var(--chalk-s2);
  font: inherit;
  font-size: var(--chalk-size-small);
  cursor: pointer;
}
.chalk-profile-sound-preview:hover {
  color: var(--chalk-fg-bright);
  border-color: var(--chalk-accent);
}
.chalk-profile-sound-preview:focus-visible {
  outline: 1px solid var(--chalk-fg-bright);
  outline-offset: -1px;
}
.chalk-notify-panel {
  width: min(560px, 92vw);
  max-height: 80vh;
  display: flex;
  flex-direction: column;
}
.chalk-notify-panel-body {
  overflow-y: auto;
  padding: var(--chalk-s2) var(--chalk-s3) var(--chalk-s3);
}
.chalk-notify-panel-body section + section {
  margin-top: var(--chalk-s3);
}
.chalk-notify-panel-body h3 {
  margin: 0 0 var(--chalk-s1);
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-dim);
  text-transform: lowercase;
}
.chalk-notify-matrix {
  border-collapse: collapse;
}
.chalk-notify-matrix th,
.chalk-notify-matrix td {
  padding: 2px var(--chalk-s2);
  text-align: center;
  font-weight: normal;
  font-size: var(--chalk-size-small);
}
.chalk-notify-matrix td:first-child,
.chalk-notify-matrix th:first-child {
  text-align: left;
  padding-left: 0;
}
.chalk-notify-rule-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--chalk-s2);
}
.chalk-notify-rule-name {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chalk-notify-rule-controls {
  flex: none;
  display: flex;
  align-items: center;
  gap: var(--chalk-s1);
}
.chalk-notify-priority-select {
  background: var(--chalk-bg);
  color: var(--chalk-fg);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  font: inherit;
  font-size: var(--chalk-size-small);
  padding: 1px var(--chalk-s1);
  max-width: 100%;
}
.chalk-notify-permission-btn {
  background: transparent;
  color: var(--chalk-fg-dim);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  padding: 2px var(--chalk-s2);
  font: inherit;
  font-size: var(--chalk-size-small);
  cursor: pointer;
}
.chalk-notify-permission-btn:hover {
  color: var(--chalk-fg-bright);
  border-color: var(--chalk-accent);
}
.chalk-nick-menu-label {
  color: var(--chalk-fg-dim);
  font-size: var(--chalk-size-small);
  margin-right: var(--chalk-s1);
}
.chalk-nick-menu-hint {
  color: var(--chalk-fg-dim);
  font-size: var(--chalk-size-small);
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
}
.chalk-profile-mic-test {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  margin-top: var(--chalk-s1);
}
.chalk-profile-camera-preview {
  display: flex;
  align-items: flex-start;
  gap: var(--chalk-s2);
  margin-top: var(--chalk-s1);
}
.chalk-profile-camera-video {
  width: 240px;
  max-width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  border: 1px solid var(--chalk-border);
  border-radius: 2px;
  object-fit: cover;
}
.chalk-profile-camera-btn {
  background: transparent;
  border: 1px solid var(--chalk-fg-muted);
  border-radius: 2px;
  color: var(--chalk-fg);
  font: inherit;
  font-size: var(--chalk-size-small);
  padding: var(--chalk-s1) var(--chalk-s3);
  cursor: pointer;
  white-space: nowrap;
}
.chalk-profile-camera-btn:hover,
.chalk-profile-camera-btn:focus-visible {
  background: var(--chalk-bg-elev);
}
.chalk-profile-mic-meter {
  position: relative;
  flex: 1;
  min-width: 0;
  height: 16px;
}
.chalk-profile-mic-meter-bar {
  position: absolute;
  inset: 0;
  background: var(--chalk-bg);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  overflow: hidden;
}
.chalk-profile-mic-mark {
  position: absolute;
  top: -3px;
  bottom: -3px;
  width: 14px;
  margin-left: -7px;
  display: flex;
  justify-content: center;
  cursor: ew-resize;
  touch-action: none;
}
.chalk-profile-mic-mark::before {
  content: "";
  width: 3px;
  border-radius: 1px;
}
.chalk-profile-mic-mark--open::before {
  background: var(--chalk-fg-bright);
}
.chalk-profile-mic-mark--close::before {
  background: var(--chalk-fg-dim);
}
.chalk-profile-mic-mark:hover::before,
.chalk-profile-mic-mark:focus-visible::before {
  background: var(--chalk-accent);
}
.chalk-profile-mic-mark:focus-visible {
  outline: none;
}
.chalk-profile-mic-thresholds {
  display: flex;
  gap: var(--chalk-s3);
  flex-wrap: wrap;
  margin-top: var(--chalk-s1);
  font-size: var(--chalk-size-small);
}
.chalk-profile-mic-live {
  flex: none;
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-dim);
}
.chalk-profile-mic-live.is-live {
  color: var(--chalk-accent);
}
.chalk-profile-sound-preview.is-capturing {
  color: var(--chalk-fg-bright);
  border-color: var(--chalk-accent);
}
.chalk-profile-mic-meter-fill {
  height: 100%;
  background: var(--chalk-accent);
}
.chalk-profile-mic-meter-fill.is-clipping {
  background: var(--chalk-error);
}
.chalk-profile-select {
  background: var(--chalk-bg);
  color: var(--chalk-fg);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  padding: var(--chalk-s1) var(--chalk-s2);
  font: inherit;
  cursor: pointer;
}
.chalk-profile-select:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.chalk-profile-select:focus-visible {
  outline: 1px solid var(--chalk-fg-bright);
  outline-offset: -1px;
}
.chalk-user-colors {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s2);
  margin-top: var(--chalk-s2);
}
.chalk-user-colors-empty {
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-dim);
  font-style: italic;
  padding: var(--chalk-s2) 0;
}
.chalk-user-colors-row {
  display: grid;
  grid-template-columns: 1fr 36px minmax(110px, auto) 28px;
  gap: var(--chalk-s2);
  align-items: center;
}
.chalk-user-colors-handle {
  background: var(--chalk-bg);
  color: var(--chalk-fg);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  padding: var(--chalk-s1) var(--chalk-s2);
  font: inherit;
  min-width: 0;
}
.chalk-user-colors-handle:focus-visible {
  outline: 1px solid var(--chalk-fg-bright);
  outline-offset: -1px;
}
.chalk-user-colors-color {
  width: 36px;
  height: 28px;
  padding: 0;
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  background: transparent;
  cursor: pointer;
}
.chalk-user-colors-scope {
  height: 28px;
  padding: 0 var(--chalk-s2);
}
.chalk-user-colors-delete {
  background: transparent;
  color: var(--chalk-fg-dim);
  border: 1px solid transparent;
  border-radius: var(--chalk-radius);
  width: 28px;
  height: 28px;
  cursor: pointer;
  font-size: var(--chalk-size-small);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.chalk-user-colors-delete:hover {
  color: var(--chalk-error);
  border-color: var(--chalk-error);
}
.chalk-user-colors-add {
  align-self: flex-start;
  margin-top: var(--chalk-s2);
  background: transparent;
  color: var(--chalk-fg-bright);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  padding: var(--chalk-s1) var(--chalk-s3);
  font: inherit;
  cursor: pointer;
}
.chalk-user-colors-add:hover {
  border-color: var(--chalk-accent);
}
.chalk-message-group {
  display: contents;
}
.chalk-message {
  position: relative;
}
.chalk-message-marker {
  position: absolute;
  left: var(--chalk-s1);
  top: var(--chalk-s1);
  width: calc(var(--chalk-msg-gutter) - 2px);
  box-sizing: border-box;
  background: none;
  border: none;
  border-radius: var(--chalk-radius);
  color: var(--chalk-fg-muted);
  font: inherit;
  font-size: var(--chalk-size-small);
  line-height: 1;
  padding: 1px 0;
  text-align: center;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 80ms ease;
}
.chalk-messages--compact .chalk-message-marker {
  top: 1px;
}
.chalk-message:hover .chalk-message-marker,
.chalk-message--menu-open .chalk-message-marker,
.chalk-message-marker:focus-visible {
  opacity: 1;
  pointer-events: auto;
}
.chalk-message-marker:hover,
.chalk-message--menu-open .chalk-message-marker {
  color: var(--chalk-fg-bright);
}
.chalk-message-marker:focus-visible {
  outline: 1px solid var(--chalk-fg-bright);
  outline-offset: -1px;
}
.chalk-msgmenu {
  position: fixed;
  z-index: 65;
  min-width: 12rem;
  background: var(--chalk-bg-elev);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);
  padding: 4px;
  font-size: var(--chalk-size-small);
}
.chalk-msgmenu-quick {
  display: flex;
  gap: 2px;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--chalk-border);
}
.chalk-msgmenu-quick-btn {
  background: none;
  border: 1px solid transparent;
  border-radius: var(--chalk-radius);
  font: inherit;
  font-size: var(--chalk-size-base);
  line-height: 1;
  padding: 4px 5px;
  cursor: pointer;
}
.chalk-msgmenu-quick-btn:hover {
  background: var(--chalk-bg);
  border-color: var(--chalk-accent);
}
.chalk-msgmenu-quick-btn:focus-visible {
  outline: 1px solid var(--chalk-fg-bright);
  outline-offset: -1px;
}
.chalk-msgmenu-group {
  display: flex;
  flex-direction: column;
  padding-top: 4px;
}
.chalk-msgmenu-group + .chalk-msgmenu-group {
  border-top: 1px solid var(--chalk-border);
  margin-top: 4px;
}
.chalk-msgmenu-item {
  background: none;
  border: none;
  border-radius: var(--chalk-radius);
  color: var(--chalk-fg-dim);
  font: inherit;
  font-size: var(--chalk-size-small);
  padding: 6px 10px;
  cursor: pointer;
  text-align: left;
  white-space: nowrap;
}
.chalk-msgmenu-item:hover {
  color: var(--chalk-fg-bright);
  background: var(--chalk-bg);
}
.chalk-msgmenu-item--delete:hover {
  color: var(--chalk-danger, #e5484d);
}
.chalk-msgmenu-item:focus-visible {
  outline: 1px solid var(--chalk-fg-bright);
  outline-offset: -1px;
}
.chalk-message-deleted {
  font-style: italic;
  color: var(--chalk-fg-dim);
  opacity: 0.8;
}
.chalk-message-reactions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 3px;
  font-size: var(--chalk-size-base);
  padding-left: calc(var(--chalk-msg-gutter) + var(--chalk-msg-time-col) + var(--chalk-msg-col-gap) + var(--chalk-s2));
}
.chalk-messages--no-time .chalk-message-reactions {
  padding-left: calc(var(--chalk-msg-gutter) + var(--chalk-s2));
}
.chalk-reaction {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 1px 7px;
  border: 1px solid var(--chalk-border);
  border-radius: 999px;
  background: var(--chalk-bg-elev);
  color: var(--chalk-fg-dim);
  font: inherit;
  font-size: var(--chalk-size-small);
  line-height: 1.5;
  cursor: pointer;
}
.chalk-reaction:hover {
  border-color: var(--chalk-fg-dim);
  color: var(--chalk-fg-bright);
}
.chalk-reaction--mine {
  border-color: var(--chalk-accent);
  color: var(--chalk-fg-bright);
}
.chalk-reaction:focus-visible {
  outline: 1px solid var(--chalk-fg-bright);
  outline-offset: 1px;
}
.chalk-reaction-emoji {
  font-size: 1.05em;
}
.chalk-reaction-count {
  font-variant-numeric: tabular-nums;
}
.chalk-reaction-who {
  position: fixed;
  z-index: 66;
  pointer-events: none;
  max-width: 32ch;
  padding: var(--chalk-s1) var(--chalk-s2);
  background: var(--chalk-bg-elev);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);
  font-size: var(--chalk-size-small);
  line-height: 1.5;
  color: var(--chalk-fg);
}
.chalk-reaction-who-head {
  display: flex;
  align-items: center;
  gap: 6px;
  padding-bottom: 3px;
  margin-bottom: 3px;
  border-bottom: 1px solid var(--chalk-border);
  color: var(--chalk-fg-dim);
}
.chalk-reaction-who-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chalk-reaction-who-more {
  color: var(--chalk-fg-dim);
}
.chalk-message-edited {
  margin-left: 0.4em;
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-dim);
  opacity: 0.7;
  cursor: default;
}
.chalk-message-verify {
  margin-left: 0.4em;
  font-size: var(--chalk-size-small);
  cursor: default;
}
.chalk-message-verify-unsigned,
.chalk-message-verify-unpinned,
.chalk-message-verify-verified-former-identity {
  color: var(--chalk-fg-dim);
  opacity: 0.7;
}
.chalk-message-verify-mismatch,
.chalk-message-verify-forged {
  color: var(--chalk-error);
  font-weight: 600;
}
.chalk-message-edited-unverified {
  color: var(--chalk-warn);
  opacity: 0.9;
}
.chalk-message--editing {
  box-shadow: inset 2px 0 0 var(--chalk-accent);
  background: var(--chalk-bg-elev);
}
.chalk-message-thread-indicator {
  align-self: flex-start;
  margin-left: var(--chalk-s2);
  margin-top: 0;
  margin-bottom: var(--chalk-s1);
  background: transparent;
  border: none;
  color: var(--chalk-accent);
  font: inherit;
  font-size: var(--chalk-size-small);
  cursor: pointer;
  padding: 0;
  text-align: left;
}
.chalk-message-thread-indicator:hover {
  color: var(--chalk-fg-bright);
  text-decoration: underline;
}
.chalk-message-thread-indicator:focus-visible {
  outline: 1px solid var(--chalk-fg-bright);
  outline-offset: 2px;
  border-radius: 2px;
}
.chalk-messages--compact .chalk-message-thread-indicator {
  margin-bottom: 0;
}
.chalk-app--phase08b.chalk-app--thread-open {
  grid-template-columns: var(--chalk-sidebar-w, 220px) 1fr clamp(340px, 28%, 560px);
  grid-template-areas: "header  header header" "sidebar main   thread" "footer  footer thread";
}
.chalk-app--phase08b.chalk-app--thread-open .chalk-thread-panel {
  grid-area: thread;
}
.chalk-thread-panel {
  display: flex;
  flex-direction: column;
  min-height: 0;
  border-left: 1px solid var(--chalk-border);
  background: var(--chalk-bg);
}
.chalk-thread-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--chalk-s2);
  padding: var(--chalk-s2) var(--chalk-s3);
  border-bottom: 1px solid var(--chalk-border);
}
.chalk-thread-panel-title {
  color: var(--chalk-fg-bright);
  font-size: var(--chalk-size-body);
  letter-spacing: 0.08em;
  text-transform: lowercase;
}
.chalk-thread-panel-title--head {
  text-transform: none;
  letter-spacing: normal;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chalk-thread-panel-actions {
  display: flex;
  align-items: center;
  gap: var(--chalk-s1);
  flex: 0 0 auto;
}
.chalk-thread-panel-showparent {
  background: transparent;
  border: none;
  color: var(--chalk-fg-dim);
  font-size: var(--chalk-size-small);
  line-height: 1;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: var(--chalk-radius);
  white-space: nowrap;
}
.chalk-thread-panel-showparent:hover {
  color: var(--chalk-fg-bright);
  background: var(--chalk-bg-elev);
}
.chalk-thread-panel-showparent:focus-visible {
  outline: 1px solid var(--chalk-fg-bright);
  outline-offset: -1px;
}
.chalk-thread-panel-close {
  background: transparent;
  border: none;
  color: var(--chalk-fg-dim);
  font-size: calc(18px * var(--chalk-font-scale));
  line-height: 1;
  cursor: pointer;
  padding: 2px 8px;
  border-radius: var(--chalk-radius);
}
.chalk-thread-panel-close:hover {
  color: var(--chalk-fg-bright);
  background: var(--chalk-bg-elev);
}
.chalk-thread-panel-close:focus-visible {
  outline: 1px solid var(--chalk-fg-bright);
  outline-offset: -1px;
}
.chalk-thread-panel-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: var(--chalk-s2) var(--chalk-s2);
}
.chalk-thread-panel-parent {
  padding-bottom: var(--chalk-s2);
}
.chalk-thread-panel-divider {
  height: 1px;
  background: var(--chalk-border);
  margin: var(--chalk-s2) 0;
}
.chalk-thread-panel-loading,
.chalk-thread-panel-empty {
  color: var(--chalk-fg-muted);
  font-style: italic;
  padding: var(--chalk-s2) var(--chalk-s2);
  font-size: var(--chalk-size-small);
}
.chalk-thread-panel-footer {
  border-top: 1px solid var(--chalk-border);
  padding: calc(var(--chalk-s3) + 1.6 * var(--chalk-size-small) + var(--chalk-s2)) var(--chalk-s2) var(--chalk-s4);
}
.chalk-message-thread-indicator--unread {
  color: var(--chalk-fg-bright);
}
.chalk-message-thread-indicator-new {
  color: var(--chalk-fg-bright);
  font-weight: 500;
  letter-spacing: 0.02em;
}
.chalk-message-thread-preview {
  align-self: flex-start;
  margin-left: calc(var(--chalk-s2) + 28px);
  margin-top: -2px;
  margin-bottom: var(--chalk-s1);
  background: transparent;
  border: none;
  color: var(--chalk-fg-dim);
  font: inherit;
  font-size: calc(11px * var(--chalk-font-scale));
  font-style: italic;
  cursor: pointer;
  padding: 0;
  text-align: left;
  max-width: min(60ch, 80%);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
}
.chalk-message-thread-preview:hover {
  color: var(--chalk-fg);
}
.chalk-message-thread-preview:focus-visible {
  outline: 1px solid var(--chalk-fg-bright);
  outline-offset: 2px;
  border-radius: 2px;
}
.chalk-message-thread-preview-sender {
  color: var(--chalk-fg-bright);
}
.chalk-message-thread-preview-body {
}
.chalk-messages--compact .chalk-message-thread-preview {
  margin-bottom: 0;
}
.chalk-channel-members-panel {
  min-width: min(480px, 90vw);
  max-width: min(640px, 95vw);
}
.chalk-channel-members-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s1);
}
.chalk-channel-members-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--chalk-s2);
  border: 1px solid var(--chalk-border);
  background: var(--chalk-bg-elev);
  gap: var(--chalk-s2);
}
.chalk-channel-members-handle {
  color: var(--chalk-fg);
  font-family: inherit;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chalk-channel-members-self-tag,
.chalk-channel-members-creator-tag {
  color: var(--chalk-fg-muted);
  font-size: var(--chalk-size-small);
}
.chalk-channel-members-remove {
  background: transparent;
  border: 1px solid var(--chalk-border);
  color: var(--chalk-fg-dim);
  font-family: inherit;
  font-size: var(--chalk-size-body);
  padding: 0 var(--chalk-s2);
  cursor: pointer;
  text-transform: lowercase;
  flex-shrink: 0;
}
.chalk-channel-members-remove:hover {
  border-color: var(--chalk-warn);
  color: var(--chalk-warn);
}
.chalk-channel-members-remove:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.chalk-channel-members-confirm-row {
  display: flex;
  align-items: center;
  gap: var(--chalk-s1);
  flex-shrink: 0;
}
.chalk-channel-members-confirm-text {
  color: var(--chalk-warn);
  font-size: var(--chalk-size-small);
  margin-right: var(--chalk-s1);
}
.chalk-channel-members-error {
  margin-top: var(--chalk-s2);
  padding: var(--chalk-s2);
  border: 1px solid var(--chalk-warn);
  color: var(--chalk-warn);
  font-size: var(--chalk-size-small);
}
.chalk-channel-members-empty,
.chalk-channel-members-hint {
  color: var(--chalk-fg-muted);
  font-size: var(--chalk-size-small);
  margin: 0 0 var(--chalk-s2) 0;
}
.chalk-button--small {
  padding: 0 var(--chalk-s2);
  font-size: var(--chalk-size-small);
}
.chalk-channel-header-action {
  background: transparent;
  border: 1px solid var(--chalk-border);
  color: var(--chalk-fg-dim);
  font-family: inherit;
  font-size: var(--chalk-size-small);
  padding: 0 var(--chalk-s2);
  cursor: pointer;
  text-transform: lowercase;
  margin-left: auto;
}
.chalk-channel-header-action:hover {
  border-color: var(--chalk-fg-bright);
  color: var(--chalk-fg-bright);
}
.chalk-members-panel {
  width: 360px;
  max-width: 92vw;
}
.chalk-members-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 0.75rem 1rem 0.5rem;
  border-bottom: 1px solid var(--chalk-border, #1f2a1f);
}
.chalk-members-title {
  color: var(--chalk-fg-bright, #c8ffc8);
}
.chalk-members-chan {
  color: var(--chalk-fg-dim, #5a8a5a);
  margin-left: 0.35rem;
}
.chalk-members-header-actions {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}
.chalk-members-refresh {
  background: transparent;
  color: var(--chalk-fg-dim, #5a8a5a);
  border: none;
  font-family: inherit;
  font-size: 0.8rem;
  cursor: pointer;
  padding: 0.2rem 0.5rem;
}
.chalk-members-refresh:hover {
  color: var(--chalk-fg, #c8ffc8);
}
.chalk-members-refresh:disabled {
  opacity: 0.5;
  cursor: default;
}
.chalk-members-body {
  padding: 0.5rem 0;
  max-height: 50vh;
  overflow-y: auto;
}
.chalk-members-empty {
  padding: 1rem;
  color: var(--chalk-fg-dim, #5a8a5a);
  text-align: center;
}
.chalk-members-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.chalk-members-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.4rem 1rem;
}
.chalk-members-row:hover {
  background: var(--chalk-bg-hover, #121912);
}
.chalk-members-handle {
  color: var(--chalk-fg, #c8ffc8);
}
.chalk-members-you {
  color: var(--chalk-fg-dim, #5a8a5a);
}
.chalk-members-status {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 1px 6px;
  border: 1px solid currentColor;
}
.chalk-members-status--has {
  color: var(--chalk-accent, #5cffb1);
}
.chalk-members-status--waiting {
  color: var(--chalk-fg-muted, #6a7a6a);
}
.chalk-members-footer {
  padding: 0.6rem 1rem 0.8rem;
  border-top: 1px solid var(--chalk-border, #1f2a1f);
}
.chalk-members-reshare {
  width: 100%;
  background: transparent;
  color: var(--chalk-accent, #5cffb1);
  border: 1px solid var(--chalk-accent, #5cffb1);
  font-family: inherit;
  font-size: 0.85rem;
  cursor: pointer;
  padding: 0.4rem 0.6rem;
}
.chalk-members-reshare:hover {
  background: rgba(92, 255, 177, 0.08);
}
.chalk-members-reshare:disabled {
  opacity: 0.5;
  cursor: default;
}
.chalk-members-allset,
.chalk-members-nokey {
  display: block;
  text-align: center;
  font-size: 0.8rem;
  color: var(--chalk-fg-dim, #5a8a5a);
}
.chalk-members-badges {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.chalk-verify-badge {
  font-family: inherit;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 1px 6px;
  background: transparent;
  border: 1px solid currentColor;
  cursor: pointer;
}
.chalk-verify-badge:disabled {
  cursor: default;
  opacity: 0.7;
}
.chalk-verify-badge--verified {
  color: var(--chalk-accent, #5cffb1);
}
.chalk-verify-badge--unverified {
  color: var(--chalk-fg-dim, #5a8a5a);
}
.chalk-verify-badge--changed {
  color: var(--chalk-warn, #ffcc66);
}
.chalk-verify-badge--none {
  color: var(--chalk-fg-muted, #6a7a6a);
}
.chalk-verify-badge--pinned {
  color: var(--chalk-fg, #c8ffc8);
  opacity: 0.75;
}
.chalk-identity-wall {
  margin: 0.6rem 1rem 0;
  padding: 0.6rem 0.7rem;
  border: 1px solid var(--chalk-error, #ff4d4d);
  border-left-width: 3px;
  background: color-mix(in srgb, var(--chalk-error, #ff4d4d) 8%, transparent);
}
.chalk-identity-wall-title {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--chalk-error, #ff4d4d);
  margin-bottom: 0.3rem;
}
.chalk-identity-wall-body {
  font-size: 0.8rem;
  line-height: 1.45;
  color: var(--chalk-fg, #c8ffc8);
}
.chalk-identity-wall-who {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.45rem;
}
.chalk-identity-wall-link {
  font-family: inherit;
  font-size: 0.75rem;
  background: transparent;
  border: 1px solid var(--chalk-error, #ff4d4d);
  color: var(--chalk-error, #ff4d4d);
  padding: 1px 8px;
  cursor: pointer;
}
.chalk-identity-wall-link:hover {
  color: var(--chalk-fg, #c8ffc8);
}
.chalk-join-notice {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.3rem 0.6rem;
  border-left: 2px solid var(--chalk-warn, #ffcc66);
  background: color-mix(in srgb, var(--chalk-warn, #ffcc66) 7%, transparent);
  font-size: 0.78rem;
  line-height: 1.4;
}
.chalk-join-notice-text {
  flex: 1;
  color: var(--chalk-fg, #c8ffc8);
}
.chalk-join-notice-dismiss {
  background: transparent;
  border: none;
  color: var(--chalk-fg-muted, #6a7a6a);
  font-family: inherit;
  font-size: 0.8rem;
  line-height: 1;
  cursor: pointer;
  padding: 0 0.15rem;
}
.chalk-join-notice-dismiss:hover {
  color: var(--chalk-fg, #c8ffc8);
}
.chalk-members-provenance {
  font-size: 0.75rem;
  color: var(--chalk-fg-muted, #6a7a6a);
  margin-bottom: 0.4rem;
}
.chalk-members-provenance--weak {
  color: var(--chalk-warn, #ffcc66);
}
.chalk-members-back {
  background: transparent;
  border: none;
  color: var(--chalk-fg-dim, #5a8a5a);
  font-family: inherit;
  font-size: inherit;
  cursor: pointer;
  padding: 0;
}
.chalk-members-back:hover {
  color: var(--chalk-fg, #c8ffc8);
}
.chalk-verify-view {
  padding: 0.75rem 1rem 1rem;
}
.chalk-verify-intro {
  color: var(--chalk-fg-dim, #5a8a5a);
  font-size: 0.85rem;
  line-height: 1.5;
  margin-bottom: 0.75rem;
}
.chalk-verify-warn {
  color: var(--chalk-warn, #ffcc66);
  border: 1px solid var(--chalk-warn, #ffcc66);
  padding: 0.5rem 0.6rem;
  font-size: 0.85rem;
  line-height: 1.4;
  margin-bottom: 0.75rem;
}
.chalk-verify-code {
  background: var(--chalk-bg-alt, #0c130c);
  border: 1px solid var(--chalk-border, #1f2a1f);
  padding: 0.75rem;
  margin-bottom: 0.5rem;
}
.chalk-verify-words {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.4rem 0.6rem;
}
.chalk-verify-word {
  color: var(--chalk-accent, #5cffb1);
  font-size: 0.95rem;
  text-align: center;
}
.chalk-verify-numeric {
  color: var(--chalk-accent, #5cffb1);
  font-size: 0.95rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
  word-spacing: 0.2em;
  text-align: center;
}
.chalk-verify-toggle {
  background: transparent;
  border: none;
  color: var(--chalk-fg-dim, #5a8a5a);
  font-family: inherit;
  font-size: 0.8rem;
  cursor: pointer;
  padding: 0.2rem 0;
  margin-bottom: 0.75rem;
}
.chalk-verify-toggle:hover {
  color: var(--chalk-fg, #c8ffc8);
}
.chalk-verify-actions {
  margin-top: 0.5rem;
}
.chalk-verify-state--verified {
  color: var(--chalk-accent, #5cffb1);
  text-align: center;
  font-size: 0.9rem;
}
.chalk-verify-mark {
  width: 100%;
  background: transparent;
  color: var(--chalk-accent, #5cffb1);
  border: 1px solid var(--chalk-accent, #5cffb1);
  font-family: inherit;
  font-size: 0.85rem;
  cursor: pointer;
  padding: 0.4rem 0.6rem;
}
.chalk-verify-mark:hover {
  background: rgba(92, 255, 177, 0.08);
}
.chalk-verify-confirm-text {
  color: var(--chalk-fg, #c8ffc8);
  font-size: 0.85rem;
  line-height: 1.4;
  margin-bottom: 0.5rem;
}
.chalk-verify-confirm-buttons {
  display: flex;
  gap: 0.5rem;
}
.chalk-verify-confirm-yes {
  flex: 1;
  background: transparent;
  color: var(--chalk-accent, #5cffb1);
  border: 1px solid var(--chalk-accent, #5cffb1);
  font-family: inherit;
  font-size: 0.85rem;
  cursor: pointer;
  padding: 0.4rem 0.6rem;
}
.chalk-verify-confirm-yes:hover {
  background: rgba(92, 255, 177, 0.08);
}
.chalk-verify-confirm-no {
  flex: 1;
  background: transparent;
  color: var(--chalk-fg-dim, #5a8a5a);
  border: 1px solid var(--chalk-border, #1f2a1f);
  font-family: inherit;
  font-size: 0.85rem;
  cursor: pointer;
  padding: 0.4rem 0.6rem;
}
.chalk-verify-confirm-no:hover {
  color: var(--chalk-fg, #c8ffc8);
}
.chalk-verify-empty {
  color: var(--chalk-fg-dim, #5a8a5a);
  font-size: 0.85rem;
  line-height: 1.5;
  text-align: center;
  padding: 1rem 0;
}
.chalk-members-rotate-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.5rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--chalk-border, #1f2a1f);
}
.chalk-members-rotate {
  flex: 1;
  background: transparent;
  color: var(--chalk-fg-dim, #5a8a5a);
  border: 1px solid var(--chalk-border, #1f2a1f);
  font-family: inherit;
  font-size: 0.85rem;
  cursor: pointer;
  padding: 0.4rem 0.6rem;
}
.chalk-members-rotate:hover:not(:disabled) {
  color: var(--chalk-fg, #c8ffc8);
  border-color: var(--chalk-fg-dim, #5a8a5a);
}
.chalk-members-rotate:disabled {
  opacity: 0.5;
  cursor: default;
}
.chalk-members-keyver {
  font-size: 0.75rem;
  color: var(--chalk-fg-muted, #6a7a6a);
  white-space: nowrap;
}
.chalk-members-remove {
  background: transparent;
  border: none;
  color: var(--chalk-fg-muted, #6a7a6a);
  font-family: inherit;
  font-size: 0.85rem;
  line-height: 1;
  cursor: pointer;
  padding: 0 0.25rem;
  margin-left: 0.25rem;
}
.chalk-members-remove:hover {
  color: var(--chalk-danger, #e66);
}
.chalk-members-leave {
  margin-top: 0.5rem;
  width: 100%;
  background: transparent;
  color: var(--chalk-fg-muted, #6a7a6a);
  border: 1px solid var(--chalk-border, #1f2a1f);
  font-family: inherit;
  font-size: 0.8rem;
  cursor: pointer;
  padding: 0.35rem 0.6rem;
}
.chalk-members-leave:hover:not(:disabled) {
  color: var(--chalk-danger, #e66);
  border-color: var(--chalk-danger, #e66);
}
.chalk-members-leave:disabled {
  opacity: 0.4;
  cursor: default;
}
.chalk-members-pending {
  margin-top: 0.5rem;
  font-size: 0.78rem;
  color: var(--chalk-warn, #ffcc66);
  border-left: 2px solid var(--chalk-warn, #ffcc66);
  padding-left: 0.5rem;
}
.chalk-members-add {
  margin-top: 0.5rem;
}
.chalk-members-add-toggle {
  width: 100%;
  background: transparent;
  color: var(--chalk-fg-dim, #5a8a5a);
  border: 1px dashed var(--chalk-border, #1f2a1f);
  font-family: inherit;
  font-size: 0.82rem;
  cursor: pointer;
  padding: 0.35rem 0.6rem;
}
.chalk-members-add-toggle:hover {
  color: var(--chalk-fg, #c8ffc8);
  border-color: var(--chalk-fg-dim, #5a8a5a);
}
.chalk-members-add-list {
  list-style: none;
  margin: 0.4rem 0 0;
  padding: 0;
  max-height: 9rem;
  overflow-y: auto;
}
.chalk-members-add-list li {
  margin: 0;
}
.chalk-members-add-friend {
  width: 100%;
  text-align: left;
  background: transparent;
  color: var(--chalk-fg, #c8ffc8);
  border: none;
  font-family: inherit;
  font-size: 0.85rem;
  cursor: pointer;
  padding: 0.3rem 0.5rem;
}
.chalk-members-add-friend:hover {
  background: var(--chalk-row-hover, #14201410);
  color: var(--chalk-accent, #8effa0);
}
.chalk-members-add-empty {
  font-size: 0.78rem;
  color: var(--chalk-fg-muted, #6a7a6a);
  padding: 0.3rem 0.5rem;
}
.chalk-gov-panel {
  max-width: 460px;
  width: 100%;
}
.chalk-btn {
  background: var(--chalk-bg-elev);
  color: var(--chalk-fg);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  font-family: inherit;
  font-size: var(--chalk-size-small);
  padding: 0.3rem 0.7rem;
  cursor: pointer;
}
.chalk-btn:hover:not(:disabled) {
  background: var(--chalk-bg-hover);
  border-color: var(--chalk-accent);
}
.chalk-btn:disabled {
  opacity: 0.5;
  cursor: default;
}
.chalk-btn-sm {
  padding: 0.15rem 0.5rem;
}
.chalk-btn-on {
  background: var(--chalk-accent);
  color: var(--chalk-bg);
  border-color: var(--chalk-accent);
}
.chalk-btn-danger:hover:not(:disabled) {
  border-color: var(--chalk-danger);
  color: var(--chalk-danger);
}
.chalk-select {
  background: var(--chalk-bg-elev);
  color: var(--chalk-fg);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  font-family: inherit;
  font-size: var(--chalk-size-small);
  padding: 0.25rem 0.4rem;
}
.chalk-gov-mode {
  display: flex;
  align-items: center;
  gap: var(--chalk-s3);
  flex-wrap: wrap;
  margin-bottom: var(--chalk-s3);
}
.chalk-gov-mode-label {
  color: var(--chalk-fg-dim);
}
.chalk-gov-hint {
  color: var(--chalk-fg-muted);
  font-size: var(--chalk-size-small);
  margin: 0 0 var(--chalk-s3) 0;
}
.chalk-gov-propose {
  border-top: 1px solid var(--chalk-border);
  padding-top: var(--chalk-s3);
  margin-bottom: var(--chalk-s3);
}
.chalk-gov-propose-row {
  display: flex;
  gap: var(--chalk-s2);
  align-items: center;
  flex-wrap: wrap;
}
.chalk-gov-error {
  color: var(--chalk-error);
  font-size: var(--chalk-size-small);
  margin-bottom: var(--chalk-s2);
}
.chalk-gov-resolved-head {
  color: var(--chalk-fg-muted);
  font-size: var(--chalk-size-small);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: var(--chalk-s3) 0 var(--chalk-s2) 0;
}
.chalk-gov-prop {
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  padding: var(--chalk-s2) var(--chalk-s3);
  margin-bottom: var(--chalk-s2);
}
.chalk-gov-prop-resolved {
  opacity: 0.7;
}
.chalk-gov-prop-head {
  display: flex;
  align-items: baseline;
  gap: var(--chalk-s2);
}
.chalk-gov-prop-type {
  color: var(--chalk-fg-bright);
}
.chalk-gov-prop-target {
  color: var(--chalk-accent);
}
.chalk-gov-prop-status {
  margin-left: auto;
  color: var(--chalk-fg-dim);
  font-size: var(--chalk-size-small);
}
.chalk-gov-tally {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  margin: var(--chalk-s2) 0;
}
.chalk-gov-tally-bar {
  flex: 1;
  height: 4px;
  background: var(--chalk-bg-elev-2);
  border-radius: 2px;
  overflow: hidden;
}
.chalk-gov-tally-fill {
  display: block;
  height: 100%;
  background: var(--chalk-accent);
}
.chalk-gov-tally-counts {
  color: var(--chalk-fg-dim);
  font-size: var(--chalk-size-small);
  white-space: nowrap;
}
.chalk-gov-prop-actions {
  display: flex;
  gap: var(--chalk-s2);
}
.chalk-composer-giphy {
  flex: 0 0 auto;
  align-self: stretch;
  padding: 0 var(--chalk-s2);
  background: transparent;
  color: var(--chalk-fg-muted);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  font-family: inherit;
  font-size: var(--chalk-size-small);
  font-weight: 700;
  letter-spacing: 0.05em;
  cursor: pointer;
}
.chalk-composer-giphy:hover:not(:disabled) {
  color: var(--chalk-fg);
  border-color: var(--chalk-fg);
}
.chalk-composer-giphy:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.chalk-giphy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  margin-top: var(--chalk-s1);
  max-width: 320px;
}
.chalk-giphy-img {
  display: block;
  max-width: 100%;
  height: auto;
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  background: var(--chalk-bg-elev);
}
.chalk-giphy-tag {
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-muted);
}
.chalk-giphy-blocked {
  display: inline-flex;
  align-items: center;
  gap: var(--chalk-s2);
  margin-top: var(--chalk-s1);
  padding: 2px var(--chalk-s2);
  border: 1px dashed var(--chalk-border);
  border-radius: var(--chalk-radius);
  color: var(--chalk-fg-muted);
  font-size: var(--chalk-size-small);
  max-width: 100%;
}
.chalk-giphy-blocked-icon {
  color: var(--chalk-fg-dim);
}
.chalk-giphy-blocked-text {
  overflow-wrap: anywhere;
}
.chalk-giphy-enable {
  flex: 0 0 auto;
  background: transparent;
  color: var(--chalk-fg-bright);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  font-family: inherit;
  font-size: var(--chalk-size-small);
  padding: 0 var(--chalk-s2);
  cursor: pointer;
}
.chalk-giphy-enable:hover {
  border-color: var(--chalk-fg);
  color: var(--chalk-fg);
}
.chalk-giphy-picker-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 60;
}
.chalk-giphy-picker {
  display: flex;
  flex-direction: column;
  width: min(560px, 92vw);
  max-height: 80vh;
  background: var(--chalk-bg);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  overflow: hidden;
}
.chalk-giphy-picker-search {
  display: flex;
  gap: var(--chalk-s2);
  padding: var(--chalk-s2);
  border-bottom: 1px solid var(--chalk-border);
}
.chalk-giphy-picker-input {
  flex: 1 1 auto;
  background: var(--chalk-bg-elev);
  color: var(--chalk-fg);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  font-family: inherit;
  font-size: var(--chalk-size-base);
  padding: var(--chalk-s1) var(--chalk-s2);
}
.chalk-giphy-picker-close {
  flex: 0 0 auto;
  background: transparent;
  color: var(--chalk-fg-muted);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  font-family: inherit;
  cursor: pointer;
  padding: 0 var(--chalk-s2);
}
.chalk-giphy-picker-close:hover {
  color: var(--chalk-fg);
  border-color: var(--chalk-fg);
}
.chalk-giphy-picker-body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: var(--chalk-s2);
}
.chalk-giphy-picker-hint {
  color: var(--chalk-fg-muted);
  font-size: var(--chalk-size-small);
  margin: var(--chalk-s2) 0;
}
.chalk-giphy-picker-error {
  color: var(--chalk-fg-bright);
}
.chalk-giphy-picker-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: var(--chalk-s2);
}
.chalk-giphy-picker-tile {
  display: block;
  padding: 0;
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  background: var(--chalk-bg-elev);
  cursor: pointer;
  overflow: hidden;
}
.chalk-giphy-picker-tile:hover {
  border-color: var(--chalk-fg);
}
.chalk-giphy-picker-tile img {
  display: block;
  width: 100%;
  height: auto;
}
.chalk-giphy-picker-attribution {
  margin: 0;
  padding: var(--chalk-s1) var(--chalk-s2);
  border-top: 1px solid var(--chalk-border);
  color: var(--chalk-fg-muted);
  font-size: var(--chalk-size-small);
  text-align: right;
  letter-spacing: 0.08em;
}
.chalk-chglyph {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.2em;
  flex: 0 0 auto;
  color: var(--chalk-fg-muted);
  user-select: none;
}
.chalk-chglyph-svg {
  display: block;
}
.chalk-chglyph--voice {
  color: var(--chalk-fg-dim);
}
.chalk-chglyph--header {
  margin-right: var(--chalk-s1);
  color: var(--chalk-fg-dim);
}
.chalk-sidebar-item--active .chalk-chglyph {
  color: var(--chalk-fg-bright);
}
.chalk-sidebar-item-row {
  display: flex;
  align-items: center;
  gap: 2px;
  min-width: 0;
  flex: 1 1 auto;
}
.chalk-sidebar-item-row .chalk-sidebar-item-name {
  flex: 0 1 auto;
  min-width: 0;
  padding-right: 6px;
}
.chalk-sidebar-item--voicech {
  flex-direction: column;
  align-items: stretch;
}
.chalk-sidebar-voicecount {
  margin-left: auto;
  font-size: calc(10px * var(--chalk-font-scale));
  color: var(--chalk-fg-dim);
  border: 1px solid var(--chalk-border);
  padding: 0 4px;
  border-radius: var(--chalk-radius);
}
.chalk-unread-dot {
  margin-left: auto;
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
  background: var(--chalk-fg);
}
.chalk-unread-dot--mention {
  background: var(--chalk-accent);
  box-shadow: 0 0 5px var(--chalk-accent);
}
.chalk-sidebar-voicecount + .chalk-unread-dot {
  margin-left: 4px;
}
.chalk-mention {
  color: var(--chalk-accent);
}
.chalk-mention--self {
  color: var(--chalk-bg);
  background: var(--chalk-accent);
  border-radius: var(--chalk-radius);
  padding: 0 3px;
  font-weight: 600;
}
.chalk-body-link {
  color: var(--chalk-fg-bright);
  text-decoration: underline;
  text-underline-offset: 2px;
  overflow-wrap: anywhere;
}
.chalk-body-link:hover {
  color: var(--chalk-accent);
}
.chalk-body-link:focus-visible {
  outline: 1px solid var(--chalk-fg-bright);
  outline-offset: 1px;
}
.chalk-body-link--label::before {
  content: "[";
}
.chalk-body-link--label::after {
  content: "]";
}
.chalk-body-code {
  font-family: var(--chalk-font-mono);
  font-size: 0.95em;
  background: var(--chalk-bg-elev);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  padding: 0 3px;
  overflow-wrap: anywhere;
}
.chalk-body-strong {
  font-weight: 700;
}
.chalk-body-em {
  font-style: italic;
}
.chalk-body-quote {
  display: block;
  border-left: 2px solid var(--chalk-border);
  padding-left: var(--chalk-s2);
  margin: 2px 0;
  color: var(--chalk-fg-dim);
}
.chalk-body-quote .chalk-body-quote {
  margin: 0;
}
.chalk-sidebar-occupants {
  list-style: none;
  margin: 2px 0 2px 1.2em;
  padding: 0;
}
.chalk-sidebar-occupant {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: calc(12px * var(--chalk-font-scale));
  color: var(--chalk-fg-dim);
  line-height: 1.6;
  min-width: 0;
}
.chalk-sidebar-occupant-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chalk-voice-badge {
  flex: 0 0 auto;
  opacity: 0.85;
}
.chalk-voice-badge--muted {
  color: var(--chalk-error);
}
.chalk-voice-panel {
  border: 1px solid var(--chalk-border);
  padding: var(--chalk-s3);
  margin-bottom: var(--chalk-s3);
  background: var(--chalk-bg-elev);
}
.chalk-voice-lobby {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  flex-wrap: wrap;
}
.chalk-voice-note {
  font-size: calc(12px * var(--chalk-font-scale));
  color: var(--chalk-fg-dim);
}
.chalk-voice-error {
  margin-top: var(--chalk-s2);
  font-size: calc(12px * var(--chalk-font-scale));
  color: var(--chalk-error);
}
.chalk-voice-disabled {
  font-size: calc(12px * var(--chalk-font-scale));
  color: var(--chalk-fg-dim);
}
.chalk-voice-scratch {
  display: flex;
  align-items: baseline;
  gap: var(--chalk-s2);
  margin-top: var(--chalk-s2);
  padding-top: var(--chalk-s2);
  border-top: 1px dashed var(--chalk-border);
  font-size: calc(11px * var(--chalk-font-scale));
  line-height: 1.4;
  color: var(--chalk-fg-dim);
}
.chalk-voice-scratch-tag {
  flex: none;
  font-size: calc(10px * var(--chalk-font-scale));
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--chalk-warn);
}
.chalk-voice-dock {
  margin: var(--chalk-s2) var(--chalk-s2) 0 var(--chalk-s2);
  border: 1px solid var(--chalk-border);
  background: var(--chalk-bg-elev);
  padding: var(--chalk-s2);
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s1);
  flex: 0 0 auto;
  container: voicedock / inline-size;
}
.chalk-voice-dock-row {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  min-width: 0;
}
.chalk-voice-dock-status {
  font-size: calc(11px * var(--chalk-font-scale));
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--chalk-fg-bright);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chalk-voice-dock-status[data-connected=false] {
  color: var(--chalk-warn);
}
.chalk-voice-dock-duration {
  margin-left: auto;
  flex: none;
  font-size: calc(11px * var(--chalk-font-scale));
  color: var(--chalk-fg-dim);
  font-variant-numeric: tabular-nums;
}
.chalk-voice-dock-channel {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  font-size: calc(12px * var(--chalk-font-scale));
  color: var(--chalk-fg);
  cursor: pointer;
  text-align: left;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.chalk-voice-dock-channame {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.chalk-chglyph--inline {
  width: auto;
}
.chalk-voice-dock-channel:hover {
  color: var(--chalk-fg-bright);
  text-decoration: underline;
}
.chalk-voice-dock-spacer {
  flex: 1 1 auto;
}
.chalk-voice-ctl-mini {
  display: none;
}
@container voicedock (max-width: 21em) {
  .chalk-voice-ctl-wide {
    display: none;
  }
  .chalk-voice-ctl-mini {
    display: inline;
  }
  .chalk-voice-dock-row .chalk-voice-ctl {
    padding-left: var(--chalk-s2);
    padding-right: var(--chalk-s2);
  }
}
.chalk-voice-audionudge {
  font-size: calc(11px * var(--chalk-font-scale));
  color: var(--chalk-warn);
  cursor: default;
}
.chalk-voice-pip {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  max-height: 96px;
  padding: 0;
  margin-bottom: var(--chalk-s1);
  border: 1px solid var(--chalk-border);
  background: #000;
  cursor: pointer;
  overflow: hidden;
}
.chalk-voice-pip:hover {
  border-color: var(--chalk-fg-dim);
}
.chalk-voice-pip-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  background: #000;
}
.chalk-voice-pip-mono {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: calc(28px * var(--chalk-font-scale));
  color: var(--chalk-fg-muted);
  background: var(--chalk-bg-elev-2);
  user-select: none;
}
.chalk-voice-pip-hint {
  position: absolute;
  right: 3px;
  bottom: 3px;
  font-size: calc(10px * var(--chalk-font-scale));
  color: var(--chalk-fg-bright);
  background: rgba(0, 0, 0, 0.7);
  padding: 0 4px;
  opacity: 0;
  transition: opacity 0.1s;
}
.chalk-voice-pip:hover .chalk-voice-pip-hint {
  opacity: 1;
}
@media (max-height: 820px) {
  .chalk-voice-pip {
    max-height: 44px;
  }
}
.chalk-voice-stage {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s2);
}
.chalk-voice-big {
  display: flex;
  justify-content: center;
}
.chalk-voice-strip {
  display: flex;
  gap: var(--chalk-s2);
  overflow-x: auto;
  padding-bottom: 2px;
}
.chalk-voice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--chalk-s2);
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
}
.chalk-voice-peer--grid {
  width: 100%;
  aspect-ratio: 16 / 9;
  max-height: calc(56vh / var(--voice-grid-rows, 1));
  cursor: pointer;
}
.chalk-voice-peer--grid:hover {
  border-color: var(--chalk-fg-dim);
}
.chalk-voice-peer--dummy {
  cursor: default;
  border-style: dashed;
  background: var(--chalk-bg-elev-2);
  opacity: 0.4;
}
.chalk-voice-peer--dummy:hover {
  border-color: var(--chalk-border);
}
.chalk-voice-peer {
  position: relative;
  background: #000;
  border: 1px solid var(--chalk-border);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.chalk-voice-peer--big {
  width: 100%;
  max-width: 960px;
  aspect-ratio: 16 / 9;
  max-height: 52vh;
}
.chalk-voice-peer--strip {
  flex: 0 0 auto;
  width: 148px;
  aspect-ratio: 16 / 9;
  cursor: pointer;
}
.chalk-voice-peer--strip:hover {
  border-color: var(--chalk-fg-dim);
}
.chalk-voice-video {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #000;
}
.chalk-voice-video-mirrored {
  transform: scaleX(-1);
}
.chalk-voice-avatar {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: calc(28px * var(--chalk-font-scale));
  color: var(--chalk-fg-muted);
  background: var(--chalk-bg-elev-2);
  user-select: none;
}
.chalk-voice-avatar--overlay {
  position: absolute;
  inset: 0;
}
.chalk-voice-peer--big .chalk-voice-avatar {
  font-size: calc(64px * var(--chalk-font-scale));
}
.chalk-voice-peer--grid .chalk-voice-avatar {
  font-size: calc(44px * var(--chalk-font-scale));
}
.chalk-voice-peer-out {
  position: absolute;
  top: 8px;
  left: 0;
  right: 0;
  text-align: center;
  font-size: calc(11px * var(--chalk-font-scale));
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--chalk-fg-muted);
  pointer-events: none;
  user-select: none;
}
.chalk-voice-speak-dot {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--chalk-accent);
  box-shadow: 0 0 6px var(--chalk-accent);
  pointer-events: none;
}
.chalk-voice-peer--strip .chalk-voice-speak-dot {
  width: 7px;
  height: 7px;
  top: 4px;
  right: 4px;
}
.chalk-voice-rtt {
  position: absolute;
  top: 5px;
  left: 5px;
  padding: 1px 5px;
  font-size: calc(11px * var(--chalk-font-scale));
  font-variant-numeric: tabular-nums;
  color: rgba(255, 255, 255, 0.88);
  background: rgba(0, 0, 0, 0.6);
  pointer-events: none;
}
.chalk-voice-peer--strip .chalk-voice-rtt {
  font-size: calc(10px * var(--chalk-font-scale));
  top: 3px;
  left: 3px;
}
.chalk-voice-rtt--warn {
  color: #ffc24d;
}
.chalk-voice-rtt--bad {
  color: #ff7a70;
}
.chalk-voice-peer-label {
  --voice-on-video: rgba(255, 255, 255, 0.94);
  --voice-on-video-dim: rgba(255, 255, 255, 0.72);
  --voice-on-video-line: rgba(255, 255, 255, 0.45);
  --voice-on-video-alert: #ff7a70;
  --voice-on-video-warn: #ffc24d;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 3px 6px;
  font-size: calc(12px * var(--chalk-font-scale));
  background: rgba(0, 0, 0, 0.72);
  color: var(--voice-on-video);
}
.chalk-voice-peer--strip .chalk-voice-peer-label {
  font-size: calc(11px * var(--chalk-font-scale));
  padding: 2px 4px;
}
.chalk-voice-peer-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chalk-voice-peer-flag {
  flex: 0 0 auto;
  border: 1px solid var(--voice-on-video-line);
  padding: 0 4px;
  font-size: calc(10px * var(--chalk-font-scale));
  text-transform: uppercase;
  color: var(--voice-on-video-dim);
}
.chalk-voice-peer-flag--deaf {
  color: var(--voice-on-video-warn);
  border-color: var(--voice-on-video-warn);
}
.chalk-voice-peer-conn {
  margin-left: auto;
  font-size: calc(11px * var(--chalk-font-scale));
  color: var(--voice-on-video-warn);
}
.chalk-voice-peer-flag--local {
  color: var(--voice-on-video-alert);
  border-color: var(--voice-on-video-alert);
}
.chalk-voice-peer-audio {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.chalk-voice-peer-conn + .chalk-voice-peer-audio,
.chalk-voice-peer-audio + .chalk-voice-peer-conn {
  margin-left: 6px;
}
.chalk-voice-popout {
  flex: 0 0 auto;
  background: transparent;
  border: 1px dotted var(--voice-on-video-line);
  color: var(--voice-on-video-dim);
  font: inherit;
  font-size: calc(11px * var(--chalk-font-scale));
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 2px 6px;
  cursor: pointer;
}
.chalk-voice-popout:hover {
  color: var(--voice-on-video);
  border-color: var(--voice-on-video);
}
.chalk-voice-popout--on {
  border-style: solid;
  border-color: var(--voice-on-video);
  color: var(--voice-on-video);
}
.chalk-voice-expanded {
  position: fixed;
  inset: 0;
  z-index: 80;
  background: rgba(0, 0, 0, 0.92);
  display: grid;
  place-items: center;
  padding: var(--chalk-s3);
}
.chalk-voice-expanded-stage {
  position: relative;
  width: min(100%, 1600px);
  max-height: 100%;
  aspect-ratio: 16 / 9;
  background: #000;
  border: 1px solid var(--chalk-border);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.chalk-voice-expanded-bar {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  padding: var(--chalk-s2);
  background: rgba(0, 0, 0, 0.65);
}
.chalk-voice-expanded-name {
  font-size: calc(12px * var(--chalk-font-scale));
  color: var(--chalk-fg-bright);
}
.chalk-voice-localmute {
  flex: 0 0 auto;
  white-space: nowrap;
  background: transparent;
  border: 1px dotted var(--voice-on-video-line);
  color: var(--voice-on-video-dim);
  font: inherit;
  font-size: calc(11px * var(--chalk-font-scale));
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 2px 6px;
  cursor: pointer;
}
.chalk-voice-localmute:hover {
  color: var(--voice-on-video);
  border-color: var(--voice-on-video);
}
.chalk-voice-localmute--on {
  color: var(--voice-on-video-alert);
  border-color: var(--voice-on-video-alert);
}
.chalk-voice-volume {
  -webkit-appearance: none;
  appearance: none;
  width: 96px;
  height: 4px;
  background: var(--voice-on-video-line);
  outline: none;
  cursor: pointer;
}
.chalk-voice-volume::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 10px;
  height: 16px;
  background: var(--voice-on-video);
  border: none;
}
.chalk-voice-volume::-moz-range-thumb {
  width: 10px;
  height: 16px;
  background: var(--voice-on-video);
  border: none;
  border-radius: 0;
}
.chalk-voice-volume--boost::-webkit-slider-thumb {
  background: var(--voice-on-video-alert);
}
.chalk-voice-volume--boost::-moz-range-thumb {
  background: var(--voice-on-video-alert);
}
.chalk-voice-bar {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  margin-top: var(--chalk-s2);
  flex-wrap: wrap;
}
.chalk-voice-bar-spacer {
  flex: 1 1 auto;
}
.chalk-voice-duration {
  font-size: calc(12px * var(--chalk-font-scale));
  color: var(--chalk-fg-bright);
  font-variant-numeric: tabular-nums;
}
.chalk-voice-relay {
  font-size: calc(10px * var(--chalk-font-scale));
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--chalk-fg-dim);
  border: 1px dashed var(--chalk-border);
  padding: 1px 4px;
}
.chalk-voice-ctl {
  font-size: calc(12px * var(--chalk-font-scale));
}
.chalk-voice-ctl--off {
  color: var(--chalk-warn);
  border-color: var(--chalk-warn);
}
.chalk-voice-ctl--on {
  color: var(--chalk-fg-bright);
  border-color: var(--chalk-fg-bright);
}
.chalk-voice-live {
  flex: none;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--chalk-accent);
}
.chalk-voice-ctl--leave {
  color: var(--chalk-error);
  border-color: var(--chalk-error);
}
.chalk-voice-controls {
  margin: 0 var(--chalk-s2);
  border: 1px solid var(--chalk-border);
  background: var(--chalk-bg-elev);
  padding: var(--chalk-s2);
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--chalk-s2);
}
.chalk-voice-controls.is-idle {
  opacity: 0.45;
  transition: opacity 0.15s ease;
}
.chalk-voice-controls.is-idle:hover,
.chalk-voice-controls.is-idle:focus-within {
  opacity: 1;
}
.chalk-voice-ctlbtn {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1;
  min-height: 32px;
  padding: 0;
  background: transparent;
  color: var(--chalk-fg);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  cursor: pointer;
}
.chalk-voice-ctlbtn:hover {
  color: var(--chalk-fg-bright);
  border-color: var(--chalk-fg-muted);
  background: var(--chalk-bg-elev-2);
}
.chalk-voice-ctlbtn.is-off {
  color: var(--chalk-warn);
  border-color: var(--chalk-warn);
}
.chalk-voice-ctlbtn.is-on {
  color: var(--chalk-warn);
  border-color: var(--chalk-warn);
}
.chalk-voice-ctlbtn:disabled {
  color: var(--chalk-fg-muted);
  border-color: var(--chalk-border);
  background: transparent;
  cursor: default;
}
.chalk-voice-drawer {
  margin-top: var(--chalk-s2);
  border: 1px dashed var(--chalk-border);
  padding: var(--chalk-s2);
  font-size: calc(11px * var(--chalk-font-scale));
}
.chalk-voice-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--chalk-s2);
  margin-bottom: var(--chalk-s1);
}
.chalk-voice-drawer-title {
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--chalk-fg-dim);
}
.chalk-voice-drawer-knobs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--chalk-s1);
  margin-bottom: var(--chalk-s1);
  padding-bottom: var(--chalk-s1);
  border-bottom: 1px solid var(--chalk-border);
}
.chalk-voice-drawer-stats {
  margin-bottom: var(--chalk-s1);
}
.chalk-voice-drawer-pair {
  color: var(--chalk-fg);
  line-height: 1.6;
}
.chalk-voice-drawer-peer {
  color: var(--chalk-fg-bright);
}
.chalk-voice-drawer-events {
  max-height: 140px;
  overflow-y: auto;
  border-top: 1px solid var(--chalk-border);
  padding-top: var(--chalk-s1);
}
.chalk-voice-drawer-event {
  color: var(--chalk-fg-dim);
  line-height: 1.5;
  white-space: pre-wrap;
  word-break: break-word;
}
.chalk-voice-drawer-time {
  color: var(--chalk-fg-muted);
}
.chalk-voice-drawer-hint {
  margin-top: var(--chalk-s1);
  color: var(--chalk-fg-muted);
}
.chalk-voice-drawer-hint code {
  color: var(--chalk-fg-dim);
  user-select: all;
}
.chalk-composer-input {
  line-height: 1.5;
  border-color: var(--chalk-fg-muted);
}
.chalk-composer-input::placeholder {
  color: var(--chalk-fg-dim);
  opacity: 1;
}
.chalk-composer-tools {
  display: grid;
  grid-template-columns: repeat(2, auto);
  align-content: end;
  justify-content: start;
  gap: var(--chalk-s1);
}
.chalk-composer-tool {
  background: transparent;
  color: var(--chalk-fg-dim);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  padding: 1px var(--chalk-s2);
  min-height: 0;
  height: 22px;
  line-height: 1;
  font-family: inherit;
  font-size: var(--chalk-size-small);
  cursor: pointer;
}
.chalk-composer-tool:hover:not(:disabled) {
  color: var(--chalk-fg);
  border-color: var(--chalk-fg-muted);
  background: var(--chalk-bg-elev);
}
.chalk-composer-tool:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.chalk-header-left {
  display: flex;
  align-items: baseline;
  gap: var(--chalk-s3);
}
.chalk-version {
  color: var(--chalk-fg-muted);
  font-size: var(--chalk-size-small);
  text-decoration: none;
  align-self: center;
}
.chalk-version:hover,
.chalk-version:focus-visible {
  color: var(--chalk-fg);
  text-decoration: underline;
}
.chalk-version--badge {
  margin-left: var(--chalk-s2);
}
.chalk-version--row {
  color: var(--chalk-fg);
  text-decoration: underline;
}
[data-theme=snazzy-light] {
  --chalk-bg: #fafbfc;
  --chalk-bg-elev: #f0f2f5;
  --chalk-bg-elev-2: #e2e7ec;
  --chalk-fg: #3b3f51;
  --chalk-fg-dim: #63697d;
  --chalk-fg-bright: #0b7d59;
  --chalk-fg-muted: #7a8195;
  --chalk-border: #dce1e8;
  --chalk-accent: #b52a85;
  --chalk-warn: #c26a00;
  --chalk-error: #c0322f;
  color-scheme: light;
}
[data-theme=snazzy-light] .chalk-modal,
[data-theme=snazzy-light] .chalk-modal-card,
[data-theme=snazzy-light] .chalk-presence-menu,
[data-theme=snazzy-light] .chalk-status-menu {
  box-shadow: 0 4px 16px rgba(27, 30, 43, 0.16);
}
[data-theme=snazzy-light] .chalk-modal-backdrop {
  background: rgba(27, 30, 43, 0.42);
}
[data-theme=snazzy-light] .chalk-sidebar-item--active {
  background: rgba(181, 42, 133, 0.10);
}
[data-theme=tokyo-night] {
  --chalk-bg: #1a1b26;
  --chalk-bg-elev: #1f2335;
  --chalk-bg-elev-2: #292e42;
  --chalk-fg: #c0caf5;
  --chalk-fg-dim: #858eb6;
  --chalk-fg-bright: #c8d3f5;
  --chalk-fg-muted: #6e77a3;
  --chalk-border: #292e42;
  --chalk-accent: #7aa2f7;
  --chalk-warn: #e0af68;
  --chalk-error: #f7768e;
  color-scheme: dark;
}
[data-theme=tokyo-night] .chalk-sidebar-item--active {
  background: rgba(122, 162, 247, 0.14);
}
[data-theme=lcars] {
  --chalk-bg: #000000;
  --chalk-bg-elev: #14101f;
  --chalk-bg-elev-2: #241b3a;
  --chalk-fg: #ffcc99;
  --chalk-fg-dim: #cc99cc;
  --chalk-fg-bright: #ff9900;
  --chalk-fg-muted: #8877aa;
  --chalk-border: #664488;
  --chalk-accent: #99ccff;
  --chalk-warn: #ffcc66;
  --chalk-error: #cc6666;
  --chalk-radius: 10px;
  color-scheme: dark;
}
[data-theme=lcars] .chalk-sidebar-item--active {
  background: rgba(255, 153, 0, 0.16);
}
[data-theme=lcars] .chalk-modal-header h2,
[data-theme=lcars] .chalk-friends-title,
[data-theme=lcars] .chalk-members-title {
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--chalk-fg-bright);
}
[data-theme=lcars] .chalk-modal,
[data-theme=lcars] .chalk-modal-card {
  border: 1px solid var(--chalk-border);
  border-left: 6px solid var(--chalk-fg-bright);
}
.chalk-profile-theme-swatch-preview--lcars {
  background:
    linear-gradient(
      135deg,
      #000000 0%,
      #000000 50%,
      #ff9900 50%,
      #ff9900 100%);
}
.chalk-profile-theme-swatch-preview--snazzy-light {
  background:
    linear-gradient(
      135deg,
      #fafbfc 0%,
      #fafbfc 50%,
      #d3399e 50%,
      #d3399e 100%);
}
.chalk-profile-theme-swatch-preview--tokyo-night {
  background:
    linear-gradient(
      135deg,
      #1a1b26 0%,
      #1a1b26 50%,
      #7aa2f7 50%,
      #7aa2f7 100%);
}
[data-theme=blade-runner] {
  --chalk-bg: #0a0607;
  --chalk-bg-elev: #16090b;
  --chalk-bg-elev-2: #240e11;
  --chalk-fg: #e6d7d0;
  --chalk-fg-dim: #b09088;
  --chalk-fg-bright: #ff2f2f;
  --chalk-fg-muted: #8d6f69;
  --chalk-border: #4a1a1c;
  --chalk-accent: #4fd6d6;
  --chalk-warn: #ffb347;
  --chalk-error: #ff7a8a;
  color-scheme: dark;
}
[data-theme=blade-runner] .chalk-sidebar-item--active {
  background: rgba(255, 47, 47, 0.14);
}
[data-theme=blade-runner] .chalk-modal-header h2,
[data-theme=blade-runner] .chalk-friends-title,
[data-theme=blade-runner] .chalk-members-title {
  color: var(--chalk-fg-bright);
  text-shadow: 0 0 12px rgba(255, 47, 47, 0.45);
}
.chalk-profile-theme-swatch-preview--blade-runner {
  background:
    linear-gradient(
      135deg,
      #0a0607 0%,
      #0a0607 50%,
      #ff2f2f 50%,
      #ff2f2f 100%);
}
[data-theme=warmwhite] {
  --chalk-bg: #fcfbf9;
  --chalk-bg-elev: #f3f1ec;
  --chalk-bg-elev-2: #e8e4dc;
  --chalk-fg: #2a2824;
  --chalk-fg-dim: #67635c;
  --chalk-fg-bright: #100f0d;
  --chalk-fg-muted: #8d8880;
  --chalk-border: #e3ded4;
  --chalk-accent: #2563eb;
  --chalk-warn: #b26a00;
  --chalk-error: #d0342c;
  color-scheme: light;
}
[data-theme=warmwhite] .chalk-modal,
[data-theme=warmwhite] .chalk-modal-card,
[data-theme=warmwhite] .chalk-presence-menu,
[data-theme=warmwhite] .chalk-status-menu {
  box-shadow: 0 4px 16px rgba(42, 40, 36, 0.16);
}
[data-theme=warmwhite] .chalk-modal-backdrop {
  background: rgba(42, 40, 36, 0.42);
}
[data-theme=warmwhite] .chalk-sidebar {
  --chalk-bg: #2b2927;
  --chalk-bg-elev: #3a3835;
  --chalk-bg-elev-2: #454340;
  --chalk-fg: #d8d4cd;
  --chalk-fg-dim: #a8a29a;
  --chalk-fg-bright: #f5f2ec;
  --chalk-fg-muted: #837d74;
  --chalk-border: #3d3a37;
  --chalk-accent: #6ea8ff;
  --chalk-warn: #e0a33c;
  --chalk-error: #ff8079;
  --nick-l: 68%;
  background: var(--chalk-bg);
}
.chalk-profile-theme-swatch-preview--warmwhite {
  background:
    linear-gradient(
      135deg,
      #2b2927 0%,
      #2b2927 40%,
      #fcfbf9 40%,
      #fcfbf9 75%,
      #2563eb 75%,
      #2563eb 100%);
}
[data-theme=azeroth] {
  --chalk-bg: #0b0e08;
  --chalk-bg-elev: #161c10;
  --chalk-bg-elev-2: #232d18;
  --chalk-fg: #eae5cf;
  --chalk-fg-dim: #a9ab85;
  --chalk-fg-bright: #ffd100;
  --chalk-fg-muted: #7f8763;
  --chalk-border: #6b5424;
  --chalk-accent: #2edd4f;
  --chalk-warn: #ff8000;
  --chalk-error: #ff4c4c;
  color-scheme: dark;
}
[data-theme=azeroth] .chalk-sidebar-item--active {
  background: rgba(46, 221, 79, 0.12);
}
[data-theme=azeroth] .chalk-modal,
[data-theme=azeroth] .chalk-modal-card {
  border: 2px solid #a5813a;
  box-shadow: inset 0 0 0 1px rgba(255, 209, 0, 0.35), 0 6px 24px rgba(0, 0, 0, 0.7);
}
.chalk-profile-theme-swatch-preview--azeroth {
  background:
    linear-gradient(
      135deg,
      #0b0e08 0%,
      #0b0e08 50%,
      #2edd4f 50%,
      #2edd4f 100%);
}
[data-theme=darkord] {
  --chalk-bg: #111214;
  --chalk-bg-elev: #1e1f22;
  --chalk-bg-elev-2: #2b2d31;
  --chalk-fg: #dbdee1;
  --chalk-fg-dim: #b5bac1;
  --chalk-fg-bright: #f2f3f5;
  --chalk-fg-muted: #949ba4;
  --chalk-border: #2b2d31;
  --chalk-accent: #7d87f5;
  --chalk-warn: #f0b232;
  --chalk-error: #f16063;
  color-scheme: dark;
}
[data-theme=darkord] .chalk-sidebar-item--active {
  background: rgba(88, 101, 242, 0.18);
}
.chalk-profile-theme-swatch-preview--darkord {
  background:
    linear-gradient(
      135deg,
      #111214 0%,
      #111214 50%,
      #5865f2 50%,
      #5865f2 100%);
}
[data-theme=exchalk] {
  --chalk-bg: #000000;
  --chalk-bg-elev: #1a1a1a;
  --chalk-bg-elev-2: #262626;
  --chalk-fg: #f7f7f7;
  --chalk-fg-dim: #b2b2b2;
  --chalk-fg-bright: #ffffff;
  --chalk-fg-muted: #8f8f8f;
  --chalk-border: #262626;
  --chalk-accent: #64b4fa;
  --chalk-warn: #fc9d03;
  --chalk-error: #fc6b60;
  color-scheme: dark;
}
[data-theme=exchalk] .chalk-sidebar-item--active {
  background: rgba(255, 255, 255, 0.10);
}
.chalk-profile-theme-swatch-preview--exchalk {
  background:
    linear-gradient(
      135deg,
      #000000 0%,
      #000000 50%,
      #64b4fa 50%,
      #64b4fa 100%);
}
[data-theme=vscode-light] {
  --chalk-bg: #ffffff;
  --chalk-bg-elev: #f3f3f3;
  --chalk-bg-elev-2: #e8e8e8;
  --chalk-fg: #000000;
  --chalk-fg-dim: #6f6f6f;
  --chalk-fg-bright: #000080;
  --chalk-fg-muted: #767676;
  --chalk-border: #d4d4d4;
  --chalk-accent: #007acc;
  --chalk-warn: #9a6700;
  --chalk-error: #cd3131;
  color-scheme: light;
}
[data-theme=vscode-light] .chalk-modal,
[data-theme=vscode-light] .chalk-modal-card,
[data-theme=vscode-light] .chalk-presence-menu,
[data-theme=vscode-light] .chalk-status-menu {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.16);
}
[data-theme=vscode-light] .chalk-modal-backdrop {
  background: rgba(0, 0, 0, 0.42);
}
[data-theme=vscode-light] .chalk-sidebar-item--active {
  background: rgba(0, 122, 204, 0.12);
}
.chalk-profile-theme-swatch-preview--vscode-light {
  background:
    linear-gradient(
      135deg,
      #ffffff 0%,
      #ffffff 50%,
      #007acc 50%,
      #007acc 100%);
}
[data-theme=catppuccin-mocha] {
  --chalk-bg: #1e1e2e;
  --chalk-bg-elev: #313244;
  --chalk-bg-elev-2: #45475a;
  --chalk-fg: #cdd6f4;
  --chalk-fg-dim: #bac2de;
  --chalk-fg-bright: #f5e0dc;
  --chalk-fg-muted: #9399b2;
  --chalk-border: #45475a;
  --chalk-accent: #cba6f7;
  --chalk-warn: #f9e2af;
  --chalk-error: #f38ba8;
  color-scheme: dark;
}
[data-theme=catppuccin-mocha] .chalk-sidebar-item--active {
  background: rgba(203, 166, 247, 0.14);
}
.chalk-profile-theme-swatch-preview--catppuccin-mocha {
  background:
    linear-gradient(
      135deg,
      #1e1e2e 0%,
      #1e1e2e 50%,
      #cba6f7 50%,
      #cba6f7 100%);
}
[data-theme=catppuccin-latte] {
  --chalk-bg: #eff1f5;
  --chalk-bg-elev: #e6e9ef;
  --chalk-bg-elev-2: #dce0e8;
  --chalk-fg: #4c4f69;
  --chalk-fg-dim: #5c5f77;
  --chalk-fg-bright: #8839ef;
  --chalk-fg-muted: #7c7f93;
  --chalk-border: #ccd0da;
  --chalk-accent: #1b60ea;
  --chalk-warn: #8f5607;
  --chalk-error: #d20f39;
  color-scheme: light;
}
[data-theme=catppuccin-latte] .chalk-modal,
[data-theme=catppuccin-latte] .chalk-modal-card,
[data-theme=catppuccin-latte] .chalk-presence-menu,
[data-theme=catppuccin-latte] .chalk-status-menu {
  box-shadow: 0 4px 16px rgba(76, 79, 105, 0.16);
}
[data-theme=catppuccin-latte] .chalk-modal-backdrop {
  background: rgba(76, 79, 105, 0.42);
}
[data-theme=catppuccin-latte] .chalk-sidebar-item--active {
  background: rgba(27, 96, 234, 0.12);
}
.chalk-profile-theme-swatch-preview--catppuccin-latte {
  background:
    linear-gradient(
      135deg,
      #eff1f5 0%,
      #eff1f5 50%,
      #8839ef 50%,
      #8839ef 100%);
}
:root {
  --nick-s: 65%;
  --nick-l: 68%;
}
[data-theme=light],
[data-theme=snazzy-light],
[data-theme=warmwhite],
[data-theme=vscode-light],
[data-theme=catppuccin-latte] {
  --nick-s: 68%;
  --nick-l: 32%;
}
.chalk-message-sender--tinted {
  color: hsl(var(--nick-h, 210) var(--nick-s) var(--nick-l));
}
.chalk-nick-tinted {
  color: hsl(var(--nick-h, 210) var(--nick-s) var(--nick-l));
}
.chalk-nick-swatch {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: hsl(var(--nick-h, 210) var(--nick-s) var(--nick-l));
  vertical-align: baseline;
  flex: 0 0 auto;
}
.chalk-nick-preview {
  color: hsl(var(--nick-h, 210) var(--nick-s) var(--nick-l));
  font-weight: 600;
}
.chalk-nick-menu {
  position: fixed;
  z-index: 60;
  min-width: 190px;
  background: var(--chalk-bg-elev);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  padding: var(--chalk-s2);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
  font-size: var(--chalk-size-small);
}
.chalk-nick-menu-title {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  color: var(--chalk-fg-dim);
  margin-bottom: var(--chalk-s2);
}
.chalk-nick-menu-row {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
}
.chalk-hue-slider {
  -webkit-appearance: none;
  appearance: none;
  flex: 1 1 120px;
  min-width: 120px;
  height: 14px;
  padding: 0;
  margin: 0;
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  background:
    linear-gradient(
      to right,
      hsl(0 var(--nick-s) var(--nick-l)),
      hsl(60 var(--nick-s) var(--nick-l)),
      hsl(120 var(--nick-s) var(--nick-l)),
      hsl(180 var(--nick-s) var(--nick-l)),
      hsl(240 var(--nick-s) var(--nick-l)),
      hsl(300 var(--nick-s) var(--nick-l)),
      hsl(360 var(--nick-s) var(--nick-l)));
  outline: none;
  cursor: pointer;
}
.chalk-hue-slider:focus-visible {
  outline: 2px solid var(--chalk-fg-bright);
  outline-offset: 1px;
}
.chalk-hue-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 8px;
  height: 20px;
  background: transparent;
  border: 2px solid var(--chalk-fg-bright);
  border-radius: 3px;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.5);
  cursor: ew-resize;
}
.chalk-hue-slider::-moz-range-thumb {
  width: 4px;
  height: 16px;
  background: transparent;
  border: 2px solid var(--chalk-fg-bright);
  border-radius: 3px;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.5);
  cursor: ew-resize;
}
.chalk-hue-slider::-moz-range-track {
  background: transparent;
}
.chalk-nick-menu-btn {
  background: transparent;
  color: var(--chalk-fg-dim);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  padding: 2px var(--chalk-s2);
  font-family: inherit;
  font-size: var(--chalk-size-small);
  cursor: pointer;
}
.chalk-nick-menu-btn:hover {
  color: var(--chalk-fg);
  border-color: var(--chalk-fg-muted);
  background: var(--chalk-bg-elev-2);
}
.chalk-nick-menu-seg {
  display: inline-flex;
  gap: 2px;
}
.chalk-nick-menu-btn--on,
.chalk-nick-menu-btn--on:hover {
  color: var(--chalk-bg);
  background: var(--chalk-accent);
  border-color: var(--chalk-accent);
}
.chalk-friend-card {
  position: fixed;
  z-index: 60;
  pointer-events: none;
  min-width: 150px;
  max-width: 220px;
  background: var(--chalk-bg-elev);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  padding: var(--chalk-s2);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
  font-size: var(--chalk-size-small);
  line-height: 1.5;
}
.chalk-friend-card-name {
  font-weight: 600;
  color: var(--chalk-fg);
  overflow-wrap: anywhere;
}
.chalk-friend-card-state {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  color: var(--chalk-fg-dim);
}
.chalk-friend-card-display {
  color: var(--chalk-fg-dim);
  overflow-wrap: anywhere;
}
.chalk-friend-card-seen,
.chalk-friend-card-hint {
  color: var(--chalk-fg-muted);
}
.chalk-friend-card-hint {
  margin-top: var(--chalk-s1);
  font-style: italic;
}
.chalk-friend-card-meta {
  margin-top: var(--chalk-s1);
  color: var(--chalk-fg-muted);
  font-size: 0.85em;
  overflow-wrap: anywhere;
}
.chalk-emoji-picker-backdrop {
  position: fixed;
  inset: 0;
  z-index: 70;
  background: transparent;
}
.chalk-emoji-picker {
  position: fixed;
  left: var(--chalk-s4);
  bottom: 96px;
  width: min(360px, calc(100vw - 2 * var(--chalk-s4)));
  max-height: min(420px, 60dvh);
  display: flex;
  flex-direction: column;
  background: var(--chalk-bg-elev);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
}
.chalk-emoji-picker-search {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  padding: var(--chalk-s2);
  border-bottom: 1px solid var(--chalk-border);
}
.chalk-emoji-picker-input {
  flex: 1 1 auto;
  background: var(--chalk-bg);
  color: var(--chalk-fg);
  border: 1px solid var(--chalk-fg-muted);
  border-radius: var(--chalk-radius);
  padding: var(--chalk-s1) var(--chalk-s2);
  font-family: inherit;
  font-size: var(--chalk-size-small);
}
.chalk-emoji-picker-input::placeholder {
  color: var(--chalk-fg-dim);
  opacity: 1;
}
.chalk-emoji-picker-close {
  background: transparent;
  color: var(--chalk-fg-dim);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  padding: 1px var(--chalk-s2);
  font-family: inherit;
  cursor: pointer;
}
.chalk-emoji-picker-close:hover {
  color: var(--chalk-fg);
  border-color: var(--chalk-fg-muted);
}
.chalk-emoji-picker-tabs {
  display: flex;
  gap: 2px;
  padding: var(--chalk-s1) var(--chalk-s2);
  border-bottom: 1px solid var(--chalk-border);
  overflow-x: auto;
}
.chalk-emoji-picker-tab {
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--chalk-radius);
  padding: 2px 6px;
  font-size: calc(16px * var(--chalk-font-scale));
  line-height: 1.2;
  cursor: pointer;
  opacity: 0.6;
}
.chalk-emoji-picker-tab:hover {
  opacity: 1;
  background: var(--chalk-bg-elev-2);
}
.chalk-emoji-picker-tab--active {
  opacity: 1;
  border-color: var(--chalk-fg-muted);
  background: var(--chalk-bg-elev-2);
}
.chalk-emoji-picker-body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: var(--chalk-s2);
}
.chalk-emoji-picker-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(32px, 1fr));
  gap: 2px;
}
.chalk-emoji-picker-item {
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--chalk-radius);
  font-size: calc(20px * var(--chalk-font-scale));
  line-height: 1;
  padding: 4px;
  cursor: pointer;
}
.chalk-emoji-picker-item:hover {
  background: var(--chalk-bg-elev-2);
  border-color: var(--chalk-fg-muted);
}
.chalk-emoji-picker-hint {
  color: var(--chalk-fg-dim);
  font-size: var(--chalk-size-small);
  margin: 0;
}
.chalk-emoji-picker-footer {
  padding: var(--chalk-s1) var(--chalk-s2);
  border-top: 1px solid var(--chalk-border);
  color: var(--chalk-fg-dim);
  font-size: var(--chalk-size-small);
}
.chalk-composer-rail--text .chalk-composer-tool {
  letter-spacing: 0.06em;
}
.chalk-composer-rail--icons .chalk-composer-tool {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  padding: 0;
}
.chalk-composer-rail--icons .chalk-composer-tool svg {
  display: block;
}
:root {
  --chalk-msg-time-col: 8ch;
  --chalk-msg-sender-col: 8ch;
  --chalk-msg-col-gap: var(--chalk-s1);
  --chalk-msg-gutter: 18px;
  --chalk-msg-body-offset: calc( var(--chalk-msg-time-col) + var(--chalk-msg-sender-col) + 2 * var(--chalk-msg-col-gap) );
}
.chalk-message {
  grid-template-columns: var(--chalk-msg-time-col) var(--chalk-msg-sender-col) 1fr;
  column-gap: var(--chalk-msg-col-gap);
  row-gap: 0;
}
.chalk-message--no-time {
  grid-template-columns: var(--chalk-msg-sender-col) 1fr;
}
.chalk-message-time,
.chalk-message-sender {
  align-self: baseline;
}
.chalk-message-giphy,
.chalk-message-attachments,
.chalk-message-code {
  grid-column: 3 / -1;
}
.chalk-message--no-body .chalk-message-giphy,
.chalk-message--no-body .chalk-message-attachments,
.chalk-message--no-body .chalk-message-code {
  margin-top: -1.4em;
}
.chalk-message--no-time .chalk-message-giphy,
.chalk-message--no-time .chalk-message-attachments,
.chalk-message--no-time .chalk-message-code {
  grid-column: 2 / -1;
}
.chalk-message-thread-indicator {
  margin-left: calc(var(--chalk-msg-body-offset) + var(--chalk-s2));
}
.chalk-messages--no-time .chalk-message-thread-indicator {
  margin-left: calc(var(--chalk-msg-sender-col) + var(--chalk-msg-col-gap) + var(--chalk-s2));
}
.chalk-message-thread-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  font-size: var(--chalk-size-base);
  padding-left: calc(var(--chalk-msg-gutter) + var(--chalk-msg-time-col) + var(--chalk-msg-col-gap) + var(--chalk-s2));
}
.chalk-messages--no-time .chalk-message-thread-meta {
  padding-left: calc(var(--chalk-msg-gutter) + var(--chalk-s2));
}
.chalk-message-thread-indicator,
.chalk-message-thread-preview {
  margin-left: 0;
}
.chalk-message {
  --chalk-msg-sender-col: 8ch;
}
.chalk-message-sender {
  white-space: normal;
  overflow-wrap: break-word;
  word-break: break-word;
  overflow: visible;
  text-overflow: clip;
  line-height: 1.2;
}
.chalk-message-thread-meta {
  --chalk-msg-sender-col: 8ch;
}
.chalk-auth-title {
  margin: 0;
  font-size: var(--chalk-size-title);
  color: var(--chalk-fg-bright);
}
.chalk-auth-label {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s1);
  color: var(--chalk-fg-dim);
  font-size: var(--chalk-size-small);
}
.chalk-stepup {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s2);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  padding: var(--chalk-s3);
  background: var(--chalk-bg-elev);
}
.chalk-auth-input {
  display: block;
  width: 100%;
  box-sizing: border-box;
  background: var(--chalk-bg);
  color: var(--chalk-fg-bright);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  padding: var(--chalk-s2) var(--chalk-s3);
  font: inherit;
}
.chalk-auth-input:focus {
  outline: none;
  border-color: var(--chalk-fg-bright);
}
.chalk-auth-button {
  display: block;
  width: 100%;
  box-sizing: border-box;
  background: var(--chalk-bg-elev-2);
  color: var(--chalk-fg-bright);
  border: 1px solid var(--chalk-fg-bright);
  border-radius: var(--chalk-radius);
  padding: var(--chalk-s2) var(--chalk-s3);
  font: inherit;
  cursor: pointer;
}
.chalk-auth-button:hover:not(:disabled) {
  background: var(--chalk-bg-hover);
}
.chalk-auth-button:disabled {
  color: var(--chalk-fg-muted);
  border-color: var(--chalk-border);
  cursor: not-allowed;
}
.chalk-auth-checklist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s1);
  font-size: var(--chalk-size-small);
}
.chalk-auth-checklist .met {
  color: var(--chalk-fg-bright);
}
.chalk-auth-checklist .unmet {
  color: var(--chalk-fg-muted);
}
.chalk-auth-strength {
  margin: 0;
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-dim);
}
.chalk-auth-strength.strength-1 {
  color: var(--chalk-danger);
}
.chalk-auth-strength.strength-2 {
  color: var(--chalk-fg-dim);
}
.chalk-auth-strength.strength-3 {
  color: var(--chalk-fg);
}
.chalk-auth-strength.strength-4 {
  color: var(--chalk-fg-bright);
}
.chalk-auth-qr {
  display: block;
  margin: 0 auto;
  background: #fff;
  padding: var(--chalk-s2);
  image-rendering: pixelated;
}
.chalk-auth-secret {
  text-align: center;
  font-family: var(--chalk-mono);
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg);
  word-break: break-all;
  user-select: all;
}
.chalk-auth-footer {
  margin: 0;
  color: var(--chalk-fg-muted);
  font-size: var(--chalk-size-small);
}
.chalk-auth-prose {
  margin: 0;
  color: var(--chalk-fg-dim);
  font-size: var(--chalk-size-body);
}
.chalk-nav-toggle {
  background: transparent;
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  color: var(--chalk-fg-bright);
  font-family: inherit;
  font-size: calc(16px * var(--chalk-font-scale));
  line-height: 1;
  padding: 6px 10px;
  cursor: pointer;
}
.chalk-nav-toggle:focus-visible {
  outline: 1px solid var(--chalk-fg-bright);
  outline-offset: 1px;
}
.chalk-nav-backdrop {
  position: fixed;
  inset: 0;
  z-index: 45;
  background: rgba(0, 0, 0, 0.6);
}
.chalk-drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--chalk-s2) var(--chalk-s3) var(--chalk-s3);
  border-bottom: 1px solid var(--chalk-border);
  margin-bottom: var(--chalk-s2);
}
.chalk-drawer-title {
  display: inline-flex;
  align-items: center;
  gap: var(--chalk-s2);
  color: var(--chalk-fg-bright);
  letter-spacing: 0.08em;
}
.chalk-drawer-close {
  background: transparent;
  border: none;
  color: var(--chalk-fg-dim);
  font-family: inherit;
  font-size: calc(18px * var(--chalk-font-scale));
  line-height: 1;
  padding: var(--chalk-s2);
  cursor: pointer;
}
.chalk-drawer-close:focus-visible {
  outline: 1px solid var(--chalk-fg-bright);
  outline-offset: 1px;
}
@media (max-width: 767px) {
  html,
  body {
    min-height: 0;
    height: var(--chalk-shell-h, 100dvh);
  }
  .chalk-app,
  .chalk-app--phase08b,
  .chalk-app--phase08b.chalk-app--thread-open {
    height: var(--chalk-shell-h, 100dvh);
    grid-template-columns: 1fr;
    grid-template-areas: "header" "main" "footer";
    column-gap: 0;
    max-width: none;
    padding-left: max(var(--chalk-s2), env(safe-area-inset-left));
    padding-right: max(var(--chalk-s2), env(safe-area-inset-right));
  }
  .chalk-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 50;
    width: min(70vw, 270px);
    padding: max(var(--chalk-s3), env(safe-area-inset-top)) 0 max(var(--chalk-s3), env(safe-area-inset-bottom)) 0;
    background: var(--chalk-bg);
    border-right: 1px solid var(--chalk-border);
    box-shadow: 2px 0 16px rgba(0, 0, 0, 0.6);
    transform: translateX(-100%);
    visibility: hidden;
    transition: transform 160ms ease, visibility 160ms ease;
    overscroll-behavior: contain;
  }
  .chalk-app--nav-open .chalk-sidebar {
    transform: none;
    visibility: visible;
  }
  .chalk-sidebar-item {
    min-height: 44px;
  }
  .chalk-header {
    align-items: center;
    flex-wrap: wrap;
    gap: var(--chalk-s2);
    padding: max(var(--chalk-s2), env(safe-area-inset-top)) 0 var(--chalk-s2) 0;
  }
  .chalk-header-left {
    align-items: center;
    gap: var(--chalk-s2);
  }
  .chalk-header h1 {
    font-size: calc(16px * var(--chalk-font-scale));
  }
  .chalk-brand {
    font-size: calc(16px * var(--chalk-font-scale));
  }
  .chalk-status-detail {
    display: none;
  }
  .chalk-version--badge {
    display: none;
  }
  .chalk-main {
    padding: var(--chalk-s2) 0;
    overflow-x: hidden;
  }
  .chalk-channel-header {
    flex-wrap: nowrap;
    gap: var(--chalk-s1);
    padding-bottom: var(--chalk-s2);
    margin-bottom: var(--chalk-s2);
    top: calc(-1 * var(--chalk-s2));
    padding-top: var(--chalk-s2);
    margin-top: 0;
    box-shadow: 0 var(--chalk-s2) var(--chalk-bg);
  }
  .chalk-channel-headwrap {
    top: calc(-1 * var(--chalk-s2));
    margin-top: 0;
    margin-bottom: var(--chalk-s2);
    box-shadow: 0 var(--chalk-s2) var(--chalk-bg);
  }
  .chalk-channel-banner {
    height: 56px;
    margin-bottom: var(--chalk-s1);
  }
  .chalk-channel-banner[data-height=short] {
    height: 40px;
  }
  .chalk-channel-banner[data-height=tall] {
    height: 120px;
  }
  .chalk-channel-header-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .chalk-message {
    grid-template-columns: auto 1fr;
    column-gap: var(--chalk-s2);
    padding: var(--chalk-s1) 0;
  }
  .chalk-message--no-time {
    grid-template-columns: 1fr;
  }
  .chalk-message-time {
    grid-column: 1;
  }
  .chalk-message-sender {
    grid-column: 2;
  }
  .chalk-message-body,
  .chalk-message-giphy,
  .chalk-message-attachments,
  .chalk-message-code,
  .chalk-message--no-time .chalk-message-giphy,
  .chalk-message--no-time .chalk-message-attachments,
  .chalk-message--no-time .chalk-message-code,
  .chalk-message--no-body .chalk-message-giphy,
  .chalk-message--no-body .chalk-message-attachments,
  .chalk-message--no-body .chalk-message-code {
    grid-column: 1 / -1;
    margin-top: 0;
  }
  .chalk-message-attachments {
    padding-right: var(--chalk-s2);
  }
  .chalk-message-body {
    overflow-wrap: anywhere;
  }
  .chalk-message-thread-meta,
  .chalk-messages--no-time .chalk-message-thread-meta,
  .chalk-message-reactions,
  .chalk-messages--no-time .chalk-message-reactions {
    padding-left: var(--chalk-s2);
  }
  .chalk-footer {
    padding: var(--chalk-s2) 0 max(var(--chalk-s2), env(safe-area-inset-bottom)) 0;
    display: flex;
    flex-direction: column-reverse;
    gap: var(--chalk-s2);
    align-items: stretch;
  }
  .chalk-composer-input {
    min-width: 0;
  }
  .chalk-composer-send {
    padding: 0 var(--chalk-s2);
  }
  .chalk-composer-row {
    gap: var(--chalk-s1);
  }
  .chalk-composer-rail--icons .chalk-composer-tool {
    width: 34px;
    height: 34px;
  }
  .chalk-composer-rail--text .chalk-composer-tool {
    width: 34px;
    height: 34px;
    padding: 0;
    text-align: center;
  }
  .chalk-composer-rail {
    min-width: 72px;
  }
  .chalk-composer-input {
    min-height: 72px;
  }
  .chalk-app--phase08b.chalk-app--thread-open .chalk-thread-panel {
    position: fixed;
    inset: 0;
    z-index: 60;
    border-left: none;
    padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
  }
  .chalk-thread-panel-footer {
    padding: var(--chalk-s2);
  }
  .chalk-modal-backdrop {
    padding: var(--chalk-s2);
  }
  .chalk-modal,
  .chalk-modal-card {
    min-width: 0;
    width: 100%;
    max-width: none;
    max-height: 88dvh;
  }
  .chalk-modal--settings {
    height: 88dvh;
  }
  .chalk-modal-body {
    padding: var(--chalk-s3);
  }
  .chalk-modal-close {
    width: 32px;
    height: 32px;
  }
  .chalk-profile-tabs {
    padding: var(--chalk-s2) var(--chalk-s3);
  }
  .chalk-profile-tab-btn {
    padding: var(--chalk-s2) var(--chalk-s3);
    min-height: 36px;
  }
  .chalk-profile-filter {
    padding: var(--chalk-s2) var(--chalk-s3) 0 var(--chalk-s3);
  }
  .chalk-modal--settings .chalk-modal-body > section {
    padding: var(--chalk-s2);
  }
  .chalk-modal--settings .chalk-profile-field {
    padding: var(--chalk-s3) 0;
  }
  .chalk-modal--settings .chalk-profile-checkbox-label > input[type=checkbox] {
    width: 36px;
    height: 20px;
  }
  .chalk-modal--settings .chalk-profile-checkbox-label > input[type=checkbox]::before {
    width: 14px;
    height: 14px;
  }
  .chalk-modal--settings .chalk-profile-checkbox-label > input[type=checkbox]:checked::before {
    transform: translateX(16px);
  }
  .chalk-modal--settings .chalk-profile-field:has(> .chalk-profile-select) {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
  .chalk-modal--settings .chalk-profile-field:has(> .chalk-profile-select) > .chalk-profile-select {
    justify-self: auto;
    width: 100%;
  }
  .chalk-app--zucker .chalk-nav-toggle {
    display: none;
  }
  .chalk-app--zucker-list .chalk-main {
    padding: 0;
  }
  .chalk-zucker {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
  }
  .chalk-zucker-head {
    display: flex;
    align-items: center;
    gap: var(--chalk-s2);
    padding: var(--chalk-s2) var(--chalk-s3);
    border-bottom: 1px solid var(--chalk-border);
  }
  .chalk-zucker-title {
    flex: 1 1 auto;
    color: var(--chalk-fg-bright);
  }
  .chalk-zucker-add {
    min-width: 44px;
    min-height: 44px;
    background: none;
    color: var(--chalk-fg);
    border: 1px solid var(--chalk-border);
    border-radius: var(--chalk-radius);
    font: inherit;
    cursor: pointer;
  }
  .chalk-zucker-add--active {
    background: var(--chalk-bg-elev, #14201a);
    color: var(--chalk-fg-bright);
    border-color: var(--chalk-fg-bright);
  }
  .chalk-zucker-pinned {
    display: flex;
    align-items: center;
    gap: var(--chalk-s2);
    width: 100%;
    min-height: 44px;
    padding: 0 var(--chalk-s3);
    background: none;
    color: var(--chalk-fg);
    border: none;
    border-bottom: 1px solid var(--chalk-border);
    font: inherit;
    text-align: left;
    cursor: pointer;
  }
  .chalk-zucker-pinned-note {
    margin-left: auto;
    font-size: var(--chalk-size-small);
    color: var(--chalk-fg-dim);
  }
  .chalk-zucker-friends {
    flex-shrink: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    max-height: 40vh;
    overflow-y: auto;
    overscroll-behavior: contain;
    border-bottom: 1px solid var(--chalk-border);
  }
  .chalk-zucker-friend {
    display: flex;
    align-items: center;
    gap: var(--chalk-s2);
    width: 100%;
    min-height: 44px;
    padding: 0 var(--chalk-s3) 0 calc(var(--chalk-s3) * 2);
    background: none;
    color: var(--chalk-fg);
    border: none;
    font: inherit;
    text-align: left;
    cursor: pointer;
  }
  .chalk-zucker-friend-name {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--chalk-fg-bright);
  }
  .chalk-zucker-friend-state {
    flex: 0 0 auto;
    font-size: var(--chalk-size-small);
    color: var(--chalk-fg-dim);
  }
  .chalk-zucker-friends-empty {
    padding: var(--chalk-s2) calc(var(--chalk-s3) * 2);
    color: var(--chalk-fg-dim);
    font-style: italic;
  }
  .chalk-zucker-filter {
    flex-shrink: 0;
    padding: var(--chalk-s2) var(--chalk-s3);
    border-bottom: 1px solid var(--chalk-border);
  }
  .chalk-zucker-rows {
    flex: 1 1 auto;
    min-height: 0;
    margin: 0;
    padding: 0;
    list-style: none;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .chalk-zucker-rows--shelf {
    flex: 0 0 auto;
    max-height: 40vh;
    border-bottom: 1px solid var(--chalk-border);
  }
  .chalk-zucker-callbar {
    margin: 0;
  }
  .chalk-zucker-callbar-hint {
    color: var(--chalk-fg-dim);
    flex: none;
  }
  .chalk-zucker-row {
    display: flex;
    align-items: center;
    gap: var(--chalk-s2);
    width: 100%;
    min-height: 56px;
    padding: var(--chalk-s2) var(--chalk-s3);
    background: none;
    color: var(--chalk-fg);
    border: none;
    border-bottom: 1px solid var(--chalk-border);
    font: inherit;
    text-align: left;
    cursor: pointer;
  }
  .chalk-zucker-row-badge {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
  }
  .chalk-zucker-row-main {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
  }
  .chalk-zucker-row-top {
    display: flex;
    align-items: baseline;
    gap: var(--chalk-s2);
  }
  .chalk-zucker-row-name {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--chalk-fg-bright);
  }
  .chalk-zucker-row-when {
    flex: 0 0 auto;
    font-size: var(--chalk-size-small);
    color: var(--chalk-fg-dim);
    white-space: nowrap;
  }
  .chalk-zucker-row-preview {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--chalk-size-small);
    color: var(--chalk-fg-muted);
  }
  .chalk-zucker-row-sender {
    color: var(--chalk-fg-dim);
  }
  .chalk-zucker-row-occupants {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1px var(--chalk-s2);
    min-width: 0;
    font-size: var(--chalk-size-small);
    color: var(--chalk-fg-muted);
  }
  .chalk-zucker-occupant {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    min-width: 0;
  }
  .chalk-zucker-occupant-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .chalk-zucker-row-empty {
    font-style: italic;
    color: var(--chalk-fg-dim);
  }
  .chalk-zucker-back {
    min-width: 44px;
    min-height: 34px;
    margin-right: var(--chalk-s1);
    background: none;
    color: var(--chalk-fg-bright);
    border: 1px solid var(--chalk-border);
    border-radius: var(--chalk-radius);
    font: inherit;
    font-size: calc(18px * var(--chalk-font-scale));
    line-height: 1;
    cursor: pointer;
  }
}
@media (max-width: 767px), (hover: none) {
  input,
  textarea,
  select {
    font-size: max(16px, calc(16px * var(--chalk-font-scale))) !important;
  }
}
@media (hover: none) {
  :root {
    --chalk-msg-gutter: 0px;
  }
  .chalk-message-marker {
    display: none;
  }
  .chalk-message {
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
  }
  .chalk-sidebar-item {
    user-select: none;
    -webkit-user-select: none;
    -webkit-touch-callout: none;
  }
  .chalk-msgmenu-quick {
    gap: var(--chalk-s1);
  }
  .chalk-msgmenu-quick-btn {
    min-width: 42px;
    min-height: 42px;
  }
  .chalk-emoji-picker-grid {
    grid-template-columns: repeat(auto-fill, minmax(42px, 1fr));
  }
  .chalk-emoji-picker-item {
    min-height: 42px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .chalk-sidebar {
    transition: none;
  }
}
.chalk-sidebar-section--threads {
  flex-shrink: 0;
  margin-top: 1rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--chalk-border, #1f2a1f);
}
.chalk-sidebar-threads {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  width: 100%;
  background: transparent;
  border: none;
  color: var(--chalk-fg);
  font: inherit;
  text-align: left;
  padding: var(--chalk-s1) var(--chalk-s2);
  cursor: pointer;
}
.chalk-sidebar-threads:hover,
.chalk-sidebar-threads:focus-visible {
  background: var(--chalk-bg-elev);
}
.chalk-sidebar-threads-glyph {
  color: var(--chalk-fg-dim);
  font-size: var(--chalk-size-small);
}
.chalk-status-update {
  display: inline-flex;
  align-items: center;
}
.chalk-status-update-reload {
  background: transparent;
  border: 1px solid var(--chalk-warn);
  color: var(--chalk-warn);
  font: inherit;
  font-size: var(--chalk-size-small);
  padding: var(--chalk-s1) var(--chalk-s2);
  cursor: pointer;
  border-radius: 2px;
}
.chalk-status-update-reload:hover,
.chalk-status-update-reload:focus-visible {
  background: var(--chalk-warn);
  color: var(--chalk-bg);
}
.chalk-status-update-dismiss {
  background: transparent;
  border: 1px solid transparent;
  color: var(--chalk-fg-muted);
  font: inherit;
  font-size: var(--chalk-size-small);
  padding: var(--chalk-s1);
  margin-left: 2px;
  cursor: pointer;
  line-height: 1;
}
.chalk-status-update-dismiss:hover,
.chalk-status-update-dismiss:focus-visible {
  color: var(--chalk-fg);
}
.chalk-threadinbox-panel {
  width: min(46rem, 92vw);
  padding: 0;
}
.chalk-threadinbox-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--chalk-s3) var(--chalk-s4);
  border-bottom: 1px solid var(--chalk-border);
}
.chalk-threadinbox-title {
  display: flex;
  align-items: baseline;
  gap: var(--chalk-s2);
  font-weight: 600;
}
.chalk-threadinbox-actions {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
}
.chalk-threadinbox-markall {
  background: transparent;
  border: 1px solid var(--chalk-border);
  border-radius: 2px;
  color: var(--chalk-fg-muted);
  font: inherit;
  font-size: var(--chalk-size-small);
  padding: 0 var(--chalk-s2);
  cursor: pointer;
}
.chalk-threadinbox-markall:hover,
.chalk-threadinbox-markall:focus-visible {
  background: var(--chalk-bg-elev);
  color: var(--chalk-fg);
}
.chalk-threadinbox-search {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  padding: var(--chalk-s2) var(--chalk-s4);
  border-bottom: 1px solid var(--chalk-border);
}
.chalk-threadinbox-input {
  flex: 1 1 auto;
  min-width: 0;
  background: var(--chalk-bg);
  color: var(--chalk-fg);
  border: 1px solid var(--chalk-fg-muted);
  border-radius: var(--chalk-radius);
  padding: var(--chalk-s1) var(--chalk-s2);
  font-family: inherit;
  font-size: var(--chalk-size-small);
}
.chalk-threadinbox-input::placeholder {
  color: var(--chalk-fg-dim);
  opacity: 1;
}
.chalk-threadinbox-clear {
  background: transparent;
  border: 0;
  color: var(--chalk-fg-muted);
  font: inherit;
  cursor: pointer;
}
.chalk-threadinbox-clear:hover,
.chalk-threadinbox-clear:focus-visible {
  color: var(--chalk-fg);
}
.chalk-threadinbox-section + .chalk-threadinbox-section {
  border-top: 1px solid var(--chalk-border);
}
.chalk-threadinbox-item {
  list-style: none;
}
.chalk-threadinbox-row {
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: 100%;
  text-align: left;
  background: transparent;
  border: 0;
  border-left: 2px solid transparent;
  color: inherit;
  font: inherit;
  padding: var(--chalk-s2) var(--chalk-s4);
  cursor: pointer;
}
.chalk-threadinbox-row[data-age="1"] {
  opacity: 0.88;
}
.chalk-threadinbox-row[data-age="2"] {
  opacity: 0.78;
}
.chalk-threadinbox-row[data-age="3"] {
  opacity: 0.68;
}
.chalk-threadinbox-row[data-age="4"] {
  opacity: 0.58;
}
.chalk-threadinbox-row[data-age="5"] {
  opacity: 0.5;
}
.chalk-threadinbox-row[data-age="6"] {
  opacity: 0.44;
}
.chalk-threadinbox-row:hover,
.chalk-threadinbox-row:focus-visible {
  background: var(--chalk-bg-elev);
  opacity: 1;
}
.chalk-threadinbox-item--mention .chalk-threadinbox-row {
  border-left-color: var(--chalk-accent);
}
.chalk-threadinbox-meta {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--chalk-s2);
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-muted);
}
.chalk-threadinbox-chan {
  color: var(--chalk-fg);
  font-weight: 600;
}
.chalk-threadinbox-at {
  color: var(--chalk-accent);
}
.chalk-threadinbox-headline {
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-bright);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chalk-threadinbox-preview {
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chalk-threadinbox-preview-sender {
  color: var(--chalk-fg-muted);
}
.chalk-threadinbox-deleted {
  color: var(--chalk-fg-muted);
  font-style: italic;
}
.chalk-threadinbox-skeleton {
  display: inline-block;
  width: 14rem;
  max-width: 100%;
  height: 0.7em;
  border-radius: 2px;
  background: var(--chalk-bg-elev);
}
.chalk-threadinbox-empty {
  padding: var(--chalk-s5) var(--chalk-s4);
  text-align: center;
  color: var(--chalk-fg-muted);
}
.chalk-threadinbox-empty-hint {
  margin-top: var(--chalk-s2);
  font-size: var(--chalk-size-small);
}
.chalk-threadinbox-more {
  margin: var(--chalk-s2) var(--chalk-s4) var(--chalk-s3);
  background: transparent;
  border: 1px solid var(--chalk-fg-muted);
  border-radius: 2px;
  color: var(--chalk-fg);
  font: inherit;
  font-size: var(--chalk-size-small);
  padding: var(--chalk-s1) var(--chalk-s3);
  cursor: pointer;
}
.chalk-threadinbox-more:hover,
.chalk-threadinbox-more:focus-visible {
  background: var(--chalk-bg-elev);
}
.chalk-channel-search {
  margin-left: auto;
  background: transparent;
  border: 1px solid var(--chalk-border);
  border-radius: 2px;
  color: var(--chalk-fg-muted);
  font: inherit;
  font-size: var(--chalk-size-small);
  padding: 0 var(--chalk-s2);
  cursor: pointer;
}
.chalk-channel-search:hover,
.chalk-channel-search:focus-visible {
  background: var(--chalk-bg-elev);
  color: var(--chalk-fg);
}
.chalk-search-panel {
  width: min(46rem, 92vw);
  padding: 0;
  display: flex;
  flex-direction: column;
}
.chalk-search-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--chalk-s3) var(--chalk-s4);
  border-bottom: 1px solid var(--chalk-border);
}
.chalk-search-title {
  font-weight: 600;
}
.chalk-search-controls {
  display: flex;
  align-items: center;
  gap: var(--chalk-s3);
  padding: var(--chalk-s2) var(--chalk-s4);
  border-bottom: 1px solid var(--chalk-border);
  flex-wrap: wrap;
}
.chalk-search-inputwrap {
  flex: 1 1 12rem;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
}
.chalk-search-input {
  flex: 1 1 auto;
  min-width: 0;
  background: var(--chalk-bg);
  color: var(--chalk-fg);
  border: 1px solid var(--chalk-fg-muted);
  border-radius: var(--chalk-radius);
  padding: var(--chalk-s1) var(--chalk-s2);
  font-family: inherit;
  font-size: var(--chalk-size-small);
}
.chalk-search-input::placeholder {
  color: var(--chalk-fg-dim);
  opacity: 1;
}
.chalk-search-clear {
  background: transparent;
  border: 0;
  color: var(--chalk-fg-muted);
  font: inherit;
  cursor: pointer;
}
.chalk-search-clear:hover,
.chalk-search-clear:focus-visible {
  color: var(--chalk-fg);
}
.chalk-search-scopes {
  display: flex;
  gap: var(--chalk-s1);
}
.chalk-search-scope {
  background: transparent;
  border: 1px solid var(--chalk-border);
  border-radius: 2px;
  color: var(--chalk-fg-muted);
  font: inherit;
  font-size: var(--chalk-size-small);
  padding: 0 var(--chalk-s2);
  cursor: pointer;
}
.chalk-search-scope--on {
  border-color: var(--chalk-accent);
  color: var(--chalk-fg);
}
.chalk-search-scope:hover:not(:disabled),
.chalk-search-scope:focus-visible {
  background: var(--chalk-bg-elev);
  color: var(--chalk-fg);
}
.chalk-search-scope:disabled {
  opacity: 0.5;
  cursor: default;
}
.chalk-search-capnote {
  padding: var(--chalk-s1) var(--chalk-s4);
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-dim);
  border-bottom: 1px solid var(--chalk-border);
}
.chalk-search-list {
  margin: 0;
  padding: 0;
  overflow-y: auto;
}
.chalk-search-item {
  list-style: none;
}
.chalk-search-row {
  display: block;
  width: 100%;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--chalk-border);
  color: var(--chalk-fg);
  font: inherit;
  text-align: left;
  padding: var(--chalk-s2) var(--chalk-s4);
  cursor: pointer;
}
.chalk-search-row:hover,
.chalk-search-row:focus-visible {
  background: var(--chalk-bg-elev);
}
.chalk-search-meta {
  display: flex;
  align-items: baseline;
  gap: var(--chalk-s3);
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-muted);
}
.chalk-search-chan {
  color: var(--chalk-accent);
}
.chalk-search-thread {
  font-size: calc(10px * var(--chalk-font-scale));
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--chalk-fg-dim);
  border: 1px solid var(--chalk-border);
  padding: 1px 4px;
}
.chalk-search-when {
  margin-left: auto;
  white-space: nowrap;
}
.chalk-search-snippet {
  margin-top: 2px;
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg);
  overflow-wrap: anywhere;
}
.chalk-search-hit {
  background: transparent;
  color: var(--chalk-accent);
  font-weight: 600;
}
.chalk-search-empty {
  padding: var(--chalk-s5) var(--chalk-s4);
  text-align: center;
  color: var(--chalk-fg-muted);
}
.chalk-search-empty-hint {
  margin-top: var(--chalk-s2);
  font-size: var(--chalk-size-small);
}
.chalk-search-deep {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--chalk-s3);
  padding: var(--chalk-s2) var(--chalk-s4);
  border-top: 1px solid var(--chalk-border);
  font-size: var(--chalk-size-small);
}
.chalk-search-deep-status {
  color: var(--chalk-fg-muted);
}
.chalk-search-deep-btn {
  flex-shrink: 0;
  background: transparent;
  border: 1px solid var(--chalk-fg-muted);
  border-radius: 2px;
  color: var(--chalk-fg);
  font: inherit;
  font-size: var(--chalk-size-small);
  padding: var(--chalk-s1) var(--chalk-s3);
  cursor: pointer;
}
.chalk-search-deep-btn:hover,
.chalk-search-deep-btn:focus-visible {
  background: var(--chalk-bg-elev);
}
.chalk-sidebar-section--parking {
  flex-shrink: 0;
  margin-top: 1rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--chalk-border, #1f2a1f);
}
.chalk-sidebar-parking {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  width: 100%;
  background: transparent;
  border: none;
  color: var(--chalk-fg);
  font: inherit;
  text-align: left;
  padding: var(--chalk-s1) var(--chalk-s2);
  cursor: pointer;
}
.chalk-sidebar-parking:hover,
.chalk-sidebar-parking:focus-visible {
  background: var(--chalk-bg-elev);
}
.chalk-sidebar-parking--active {
  background: var(--chalk-bg-elev);
  color: var(--chalk-fg-bright);
}
.chalk-sidebar-parking-glyph {
  display: inline-flex;
  color: var(--chalk-fg-dim);
  line-height: 0;
}
.chalk-sidebar-parking--active .chalk-sidebar-parking-glyph {
  color: var(--chalk-accent);
}
.chalk-main--parked {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.chalk-parking {
  flex: 1;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.chalk-parking-mark {
  width: min(55%, 45vh);
  height: auto;
  opacity: 0.28;
  animation: chalk-parking-drift 28s ease-in-out infinite;
}
@keyframes chalk-parking-drift {
  0% {
    transform: translate(-3%, 2%) scale(0.98);
  }
  50% {
    transform: translate(3%, -2%) scale(1.02);
  }
  100% {
    transform: translate(-3%, 2%) scale(0.98);
  }
}
@media (prefers-reduced-motion: reduce) {
  .chalk-parking-mark {
    animation: none;
  }
}
.chalk-footer-main--parked {
  display: none;
}
.chalk-app--screened > *:not(.chalk-main) {
  filter: blur(8px);
  user-select: none;
}
.chalk-guest {
  display: flex;
  flex-direction: column;
  height: 100dvh;
  max-width: 720px;
  margin: 0 auto;
  padding: var(--chalk-s3);
  gap: var(--chalk-s3);
}
.chalk-guest-header {
  display: flex;
  align-items: baseline;
  gap: var(--chalk-s3);
  border-bottom: 1px solid var(--chalk-fg-dim);
  padding-bottom: var(--chalk-s2);
}
.chalk-guest-title {
  font-weight: 700;
  font-size: 1.1em;
}
.chalk-guest-expiry {
  color: var(--chalk-warn, #c90);
}
.chalk-guest-conn {
  margin-left: auto;
  color: var(--chalk-fg-dim);
}
.chalk-guest-call {
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s2);
}
.chalk-guest-call-controls {
  display: flex;
  gap: var(--chalk-s2);
}
.chalk-guest-peers {
  display: flex;
  flex-wrap: wrap;
  gap: var(--chalk-s2);
}
.chalk-guest-peer-video {
  max-width: 320px;
  width: 100%;
  background: var(--chalk-bg-elev);
}
.chalk-guest-scratch {
  flex: 1;
  overflow-y: auto;
  border: 1px solid var(--chalk-fg-dim);
  padding: var(--chalk-s2);
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s1);
}
.chalk-guest-msg {
  display: flex;
  gap: var(--chalk-s2);
  align-items: baseline;
}
.chalk-guest-msg-sender {
  font-weight: 700;
  flex-shrink: 0;
}
.chalk-guest-msg-text {
  overflow-wrap: anywhere;
}
.chalk-guest-composer {
  display: flex;
  gap: var(--chalk-s2);
}
.chalk-guest-composer .chalk-field-input {
  flex: 1;
}
.chalk-expiry-badge {
  font-size: 0.85em;
  color: var(--chalk-warn);
  border: 1px solid var(--chalk-warn);
  border-radius: 3px;
  padding: 0 var(--chalk-s1);
  flex-shrink: 0;
}
.chalk-expiry-badge--urgent {
  color: var(--chalk-error, #f33);
  border-color: var(--chalk-error, #f33);
}
@media (display-mode: window-controls-overlay) and (min-width: 768px) {
  .chalk-header {
    position: fixed;
    top: env(titlebar-area-y, 0);
    left: env(titlebar-area-x, 0);
    width: env(titlebar-area-width, 100%);
    height: env(titlebar-area-height, auto);
    align-items: center;
    padding: 0 var(--chalk-s3);
    z-index: 50;
    background: var(--chalk-bg);
    -webkit-app-region: drag;
    app-region: drag;
  }
  .chalk-header button,
  .chalk-header a,
  .chalk-header [role=menu] {
    -webkit-app-region: no-drag;
    app-region: no-drag;
  }
  .chalk-app {
    padding-top: env(titlebar-area-height, 0);
  }
  .chalk-version--badge {
    display: none;
  }
}
.chalk-pinwall {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 1.5rem;
  background: var(--chalk-bg);
  z-index: 1000;
}
.chalk-pinwall-card {
  max-width: 34rem;
  border: 2px solid var(--chalk-error);
  border-radius: 10px;
  padding: 1.5rem 1.75rem;
  background: var(--chalk-surface, var(--chalk-bg));
}
.chalk-pinwall-card h1 {
  color: var(--chalk-error);
  margin-top: 0;
  font-size: 1.3rem;
}
.chalk-pinwall-fps {
  margin: 1.25rem 0;
}
.chalk-pinwall-fps dt {
  font-size: var(--chalk-size-small);
  color: var(--chalk-fg-dim);
  margin-top: 0.75rem;
}
.chalk-pinwall-fps dd {
  margin: 0.15rem 0 0;
}
.chalk-pinwall-fps code {
  font-family: var(--chalk-mono, monospace);
  letter-spacing: 0.03em;
  word-break: break-all;
}
.chalk-pinwall-guidance {
  color: var(--chalk-fg-dim);
  font-size: var(--chalk-size-small);
}
.chalk-pinwall-trust {
  margin-top: 0.5rem;
  padding: 0.6rem 1rem;
  border: 1px solid var(--chalk-error);
  border-radius: 8px;
  background: transparent;
  color: var(--chalk-error);
  cursor: pointer;
  font: inherit;
}
.chalk-pinwall-trust:hover {
  background: var(--chalk-error);
  color: var(--chalk-bg);
}
.chalk-roster-notice {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.3rem 0.6rem;
  border-left: 2px solid var(--chalk-warn, #ffcc66);
  background: color-mix(in srgb, var(--chalk-warn, #ffcc66) 7%, transparent);
  font-size: 0.78rem;
  line-height: 1.4;
}
.chalk-roster-notice--alarm {
  border-left-color: var(--chalk-error);
  background: color-mix(in srgb, var(--chalk-error) 8%, transparent);
}
.chalk-roster-notice-tag {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--chalk-fg-dim);
  border: 1px solid var(--chalk-fg-dim);
  border-radius: 4px;
  padding: 0 0.3em;
  align-self: center;
  cursor: help;
}
.chalk-roster-notice-text {
  flex: 1;
  color: var(--chalk-fg, #c8ffc8);
}
.chalk-roster-notice-dismiss {
  background: none;
  border: none;
  color: var(--chalk-fg-dim);
  cursor: pointer;
  padding: 0 0.2rem;
  font: inherit;
}
.chalk-server-identity-fp code {
  display: inline-block;
  font-family: var(--chalk-mono, monospace);
  font-size: 1.05em;
  letter-spacing: 0.06em;
  padding: 0.35em 0.55em;
  border: 1px solid var(--chalk-fg-dim);
  border-radius: 6px;
  user-select: all;
  word-break: break-all;
}
.chalk-server-identity-explain code {
  font-family: var(--chalk-mono, monospace);
}
.chalk-profile-flair-threshold {
  display: flex;
  align-items: center;
  gap: var(--chalk-s2);
  margin-top: var(--chalk-s2);
  color: var(--chalk-fg-dim);
}
.chalk-profile-number {
  width: 5ch;
  background: var(--chalk-bg);
  color: var(--chalk-fg);
  border: 1px solid var(--chalk-border);
  border-radius: var(--chalk-radius);
  padding: var(--chalk-s1) var(--chalk-s2);
  font: inherit;
  text-align: right;
}
.chalk-profile-number:disabled {
  color: var(--chalk-fg-muted);
  cursor: not-allowed;
}
.chalk-profile-number:focus-visible {
  outline: 1px solid var(--chalk-accent);
  outline-offset: 1px;
}
.chalk-flair-flame {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  color: var(--chalk-warn);
  line-height: 1;
}
.chalk-flair-flame--row {
  margin-right: var(--chalk-s1);
}
.chalk-zucker-row-top .chalk-flair-flame--row {
  align-self: center;
}
.chalk-flair-flame--header {
  margin-left: var(--chalk-s2);
  align-self: center;
}
.chalk-flair-flame-svg {
  display: block;
  transform-origin: 50% 100%;
}
.chalk-flair-flame-inner {
  fill: var(--chalk-bg);
  transform-origin: 50% 100%;
}
html[data-flair-flame] .chalk-flair-flame-svg {
  animation: chalk-flair-flicker 0.9s ease-in-out infinite;
}
html[data-flair-flame] .chalk-flair-flame-inner {
  animation: chalk-flair-flicker-core 0.7s ease-in-out infinite;
}
@keyframes chalk-flair-flicker {
  0% {
    transform: scaleY(1) skewX(0deg);
    opacity: 1;
  }
  30% {
    transform: scaleY(1.08) skewX(-3deg);
    opacity: 0.85;
  }
  55% {
    transform: scaleY(0.94) skewX(2deg);
    opacity: 1;
  }
  80% {
    transform: scaleY(1.05) skewX(-1deg);
    opacity: 0.9;
  }
  100% {
    transform: scaleY(1) skewX(0deg);
    opacity: 1;
  }
}
@keyframes chalk-flair-flicker-core {
  0% {
    transform: scaleY(1);
  }
  50% {
    transform: scaleY(1.2) translateY(-1px);
  }
  100% {
    transform: scaleY(1);
  }
}
.chalk-flair-wave {
  display: inline;
  white-space: nowrap;
}
.chalk-flair-wave-ch {
  display: inline-block;
  transform-origin: 50% 100%;
}
html[data-flair-wave] .chalk-flair-wave-ch {
  animation: chalk-flair-wave 0.6s ease-in-out 2;
}
@keyframes chalk-flair-wave {
  0% {
    transform: translateY(0) scale(1);
  }
  35% {
    transform: translateY(-0.28em) scale(1.06);
  }
  70% {
    transform: translateY(0.06em) scale(1);
  }
  100% {
    transform: translateY(0) scale(1);
  }
}
.chalk-flair-wave-ch:nth-child(1) {
  animation-delay: 0ms;
}
.chalk-flair-wave-ch:nth-child(2) {
  animation-delay: 60ms;
}
.chalk-flair-wave-ch:nth-child(3) {
  animation-delay: 120ms;
}
.chalk-flair-wave-ch:nth-child(4) {
  animation-delay: 180ms;
}
.chalk-flair-wave-ch:nth-child(5) {
  animation-delay: 240ms;
}
.chalk-flair-wave-ch:nth-child(6) {
  animation-delay: 300ms;
}
.chalk-flair-wave-ch:nth-child(7) {
  animation-delay: 360ms;
}
.chalk-flair-wave-ch:nth-child(8) {
  animation-delay: 420ms;
}
.chalk-flair-wave-ch:nth-child(9) {
  animation-delay: 480ms;
}
.chalk-flair-wave-ch:nth-child(10) {
  animation-delay: 540ms;
}
.chalk-flair-wave-ch:nth-child(11) {
  animation-delay: 600ms;
}
.chalk-flair-wave-ch:nth-child(12) {
  animation-delay: 660ms;
}
.chalk-flair-wave-ch:nth-child(13) {
  animation-delay: 720ms;
}
.chalk-flair-wave-ch:nth-child(14) {
  animation-delay: 780ms;
}
.chalk-flair-wave-ch:nth-child(15) {
  animation-delay: 840ms;
}
.chalk-flair-wave-ch:nth-child(16) {
  animation-delay: 900ms;
}
.chalk-flair-wave-ch--tail {
  animation-delay: 900ms;
}
html[data-flair-banner] .chalk-channel-banner:not(.chalk-channel-banner--preview):not(.chalk-channel-banner--poster) .chalk-channel-banner-img {
  animation: chalk-flair-banner-drift 40s ease-in-out infinite alternate;
}
html[data-flair-banner] .chalk-channel-banner--poster:not(.chalk-channel-banner--preview) .chalk-channel-banner-fade {
  animation: chalk-flair-banner-breathe 12s ease-in-out infinite alternate;
}
@keyframes chalk-flair-banner-drift {
  0% {
    translate: -1.5% 1%;
    scale: 1.0;
  }
  100% {
    translate: 1.5% -1%;
    scale: 1.04;
  }
}
@keyframes chalk-flair-banner-breathe {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0.8;
  }
}
.chalk-profile-frame-picker {
  margin-top: var(--chalk-s2);
}
.chalk-profile-frame-swatch {
  background: var(--chalk-bg-elev-2);
  border: 1px solid var(--chalk-border);
  box-sizing: border-box;
}
html[data-flair-frames] .chalk-avatar[data-frame=ember],
.chalk-profile-frame-swatch[data-frame=ember] {
  outline: 2px solid var(--chalk-warn);
  outline-offset: 1px;
  box-shadow: 0 0 6px 1px var(--chalk-warn);
}
html[data-flair-frames] .chalk-avatar[data-frame=ember][data-live],
.chalk-profile-frame-swatch[data-frame=ember] {
  animation: chalk-flair-frame-ember 2.4s ease-in-out infinite alternate;
}
@keyframes chalk-flair-frame-ember {
  0% {
    box-shadow: 0 0 4px 0 var(--chalk-warn);
    opacity: 1;
  }
  100% {
    box-shadow: 0 0 10px 3px var(--chalk-warn);
    opacity: 0.92;
  }
}
html[data-flair-frames] .chalk-avatar[data-frame=aurora],
.chalk-profile-frame-swatch[data-frame=aurora] {
  outline: 2px solid #4fd1c5;
  outline-offset: 1px;
  box-shadow: 0 0 5px 1px #4fd1c5;
}
html[data-flair-frames] .chalk-avatar[data-frame=aurora][data-live],
.chalk-profile-frame-swatch[data-frame=aurora] {
  animation: chalk-flair-frame-aurora 6s linear infinite;
}
@keyframes chalk-flair-frame-aurora {
  0% {
    outline-color: #4fd1c5;
    box-shadow: 0 0 5px 1px #4fd1c5;
  }
  25% {
    outline-color: #63b3ed;
    box-shadow: 0 0 5px 1px #63b3ed;
  }
  50% {
    outline-color: #b794f4;
    box-shadow: 0 0 5px 1px #b794f4;
  }
  75% {
    outline-color: #68d391;
    box-shadow: 0 0 5px 1px #68d391;
  }
  100% {
    outline-color: #4fd1c5;
    box-shadow: 0 0 5px 1px #4fd1c5;
  }
}
html[data-flair-frames] .chalk-avatar[data-frame=pulse],
.chalk-profile-frame-swatch[data-frame=pulse] {
  outline: 2px solid var(--chalk-accent);
  outline-offset: 1px;
}
html[data-flair-frames] .chalk-avatar[data-frame=pulse][data-live],
.chalk-profile-frame-swatch[data-frame=pulse] {
  animation: chalk-flair-frame-pulse 1.6s ease-in-out infinite;
}
@keyframes chalk-flair-frame-pulse {
  0% {
    outline-offset: 1px;
    outline-color: var(--chalk-accent);
  }
  50% {
    outline-offset: 3px;
    outline-color: color-mix(in srgb, var(--chalk-accent) 55%, transparent);
  }
  100% {
    outline-offset: 1px;
    outline-color: var(--chalk-accent);
  }
}
html[data-flair-frames] .chalk-avatar[data-frame=matrix],
.chalk-profile-frame-swatch[data-frame=matrix] {
  outline: 2px solid #00ff41;
  outline-offset: 1px;
  box-shadow: 0 0 6px 1px #00ff41;
}
html[data-flair-frames] .chalk-avatar[data-frame=matrix][data-live],
.chalk-profile-frame-swatch[data-frame=matrix] {
  animation: chalk-flair-frame-matrix 1.4s steps(1, end) infinite;
}
@keyframes chalk-flair-frame-matrix {
  0% {
    outline-color: #00ff41;
    box-shadow: 0 0 6px 1px #00ff41;
  }
  35% {
    outline-color: #0f8f2f;
    box-shadow: 0 0 3px 0 #0f8f2f;
  }
  45% {
    outline-color: #00ff41;
    box-shadow: 0 0 9px 2px #00ff41;
  }
  70% {
    outline-color: #12c43f;
    box-shadow: 0 0 5px 1px #12c43f;
  }
  80% {
    outline-color: #0f8f2f;
    box-shadow: 0 0 3px 0 #0f8f2f;
  }
  100% {
    outline-color: #00ff41;
    box-shadow: 0 0 6px 1px #00ff41;
  }
}
html[data-flair-frames] .chalk-avatar[data-frame=frost],
.chalk-profile-frame-swatch[data-frame=frost] {
  outline: 2px solid #bfefff;
  outline-offset: 1px;
  box-shadow: 0 0 6px 1px #7fd4ff;
}
html[data-flair-frames] .chalk-avatar[data-frame=frost][data-live],
.chalk-profile-frame-swatch[data-frame=frost] {
  animation: chalk-flair-frame-frost 3.2s ease-in-out infinite alternate;
}
@keyframes chalk-flair-frame-frost {
  0% {
    box-shadow: 0 0 4px 0 #7fd4ff;
    filter: brightness(1);
  }
  100% {
    box-shadow: 0 0 12px 3px #bfefff;
    filter: brightness(1.12);
  }
}
html[data-flair-frames] .chalk-avatar[data-frame=gold],
.chalk-profile-frame-swatch[data-frame=gold] {
  outline: 2px solid #f5c542;
  outline-offset: 1px;
  box-shadow: 0 0 5px 1px #c9971c;
}
html[data-flair-frames] .chalk-avatar[data-frame=gold][data-live],
.chalk-profile-frame-swatch[data-frame=gold] {
  animation: chalk-flair-frame-gold 2.8s ease-in-out infinite;
}
@keyframes chalk-flair-frame-gold {
  0% {
    outline-color: #c9971c;
    box-shadow: 0 0 4px 0 #c9971c;
  }
  50% {
    outline-color: #ffe08a;
    box-shadow: 0 0 10px 3px #f5c542;
  }
  100% {
    outline-color: #c9971c;
    box-shadow: 0 0 4px 0 #c9971c;
  }
}
html[data-flair-frames] .chalk-avatar--tile[data-frame] {
  outline-offset: 0;
}
@media (prefers-reduced-motion: reduce) {
  html[data-flair-flame] .chalk-flair-flame-svg,
  html[data-flair-flame] .chalk-flair-flame-inner,
  html[data-flair-wave] .chalk-flair-wave-ch,
  html[data-flair-frames] .chalk-avatar[data-frame=ember][data-live],
  .chalk-profile-frame-swatch[data-frame=ember],
  html[data-flair-frames] .chalk-avatar[data-frame=aurora][data-live],
  .chalk-profile-frame-swatch[data-frame=aurora],
  html[data-flair-frames] .chalk-avatar[data-frame=pulse][data-live],
  .chalk-profile-frame-swatch[data-frame=pulse],
  html[data-flair-frames] .chalk-avatar[data-frame=matrix][data-live],
  .chalk-profile-frame-swatch[data-frame=matrix],
  html[data-flair-frames] .chalk-avatar[data-frame=frost][data-live],
  .chalk-profile-frame-swatch[data-frame=frost],
  html[data-flair-frames] .chalk-avatar[data-frame=gold][data-live],
  .chalk-profile-frame-swatch[data-frame=gold],
  html[data-flair-banner] .chalk-channel-banner:not(.chalk-channel-banner--preview):not(.chalk-channel-banner--poster) .chalk-channel-banner-img,
  html[data-flair-banner] .chalk-channel-banner--poster:not(.chalk-channel-banner--preview) .chalk-channel-banner-fade {
    animation: none;
  }
}
.chalk-whats-new-entry h3 {
  margin: 0 0 var(--chalk-s2) 0;
  font-size: var(--chalk-size-body);
  color: var(--chalk-fg-bright);
  font-weight: 500;
}
.chalk-whats-new-entry ul {
  margin: 0;
  padding-left: 1.2em;
  display: flex;
  flex-direction: column;
  gap: var(--chalk-s1);
}
.chalk-whats-new-footer {
  justify-content: space-between;
  align-items: center;
}
/*! Hack typeface v3.003 -- https://github.com/source-foundry/Hack
 *  Copyright 2018 Source Foundry Authors, MIT License.
 *  Bitstream Vera Sans Mono Copyright 2003 Bitstream Inc., Bitstream
 *  Vera License. Full text: web/fonts/HACK-LICENSE.txt.
 *  Marked as a legal comment so the notice survives minification and
 *  ships with the bundle that carries the font bytes.
 */
/*! JetBrains Mono v2.304 -- https://github.com/JetBrains/JetBrainsMono
 *  Copyright 2020 The JetBrains Mono Project Authors.
 *  SIL Open Font License 1.1. Full text:
 *  web/fonts/JETBRAINS-MONO-LICENSE.txt.
 */
/*! Fira Code v6.2 -- https://github.com/tonsky/FiraCode
 *  Copyright 2014 The Fira Code Project Authors.
 *  SIL Open Font License 1.1. Full text:
 *  web/fonts/FIRA-CODE-LICENSE.txt.
 */
/*! Cascadia Code v2407.24 -- https://github.com/microsoft/cascadia-code
 *  Copyright 2019-present Microsoft Corporation, with Reserved Font Name
 *  Cascadia Code. SIL Open Font License 1.1. Full text:
 *  web/fonts/CASCADIA-CODE-LICENSE.txt.
 */
/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3RoZW1lLmNzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLypcbiAqIGNoYWxrIC0tIHRoZW1lLmNzcyAobWF0cml4LWdyZWVuLW9uLWJsYWNrLCBIYWNrIGZvbnQpXG4gKlxuICogRGVzaWduIHRva2VucyBsaXZlIGFzIENTUyBjdXN0b20gcHJvcGVydGllcyBvbiA6cm9vdCBzbyBmdXR1cmVcbiAqIHRoZW1lcyAoYSBcImRpbVwiIG9yIFwiaGlnaC1jb250cmFzdFwiIHZhcmlhbnQpIGNhbiBvdmVycmlkZSBieSBzZXR0aW5nXG4gKiBkYXRhLXRoZW1lPVwiZGltXCIgb24gPGh0bWw+LiBQaGFzZSAwNyBzaGlwcyBvbmx5IHRoZSBkZWZhdWx0IHRoZW1lLlxuICpcbiAqIEZvdXIgbW9ub3NwYWNlIGZhbWlsaWVzIGFyZSBidW5kbGVkIGFzIHdvZmYyIGluIGZvbnRzLyBzbyB0aGUgcGFnZVxuICogcmVuZGVycyB0aGUgcmlnaHQgZ2x5cGhzIHdpdGggbm8gbmV0d29yayBhbmQgbm8gdGhpcmQtcGFydHkgZm9udCBDRE4uXG4gKlxuICogTm8gQ1NTIGZyYW1ld29yayAtLSB0aGUgd2hvbGUgc2hlZXQgaXMgfjYgS0IgYWZ0ZXIgbWluaWZ5LlxuICovXG5cbi8qISBIYWNrIHR5cGVmYWNlIHYzLjAwMyAtLSBodHRwczovL2dpdGh1Yi5jb20vc291cmNlLWZvdW5kcnkvSGFja1xuICogIENvcHlyaWdodCAyMDE4IFNvdXJjZSBGb3VuZHJ5IEF1dGhvcnMsIE1JVCBMaWNlbnNlLlxuICogIEJpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubyBDb3B5cmlnaHQgMjAwMyBCaXRzdHJlYW0gSW5jLiwgQml0c3RyZWFtXG4gKiAgVmVyYSBMaWNlbnNlLiBGdWxsIHRleHQ6IHdlYi9mb250cy9IQUNLLUxJQ0VOU0UudHh0LlxuICogIE1hcmtlZCBhcyBhIGxlZ2FsIGNvbW1lbnQgc28gdGhlIG5vdGljZSBzdXJ2aXZlcyBtaW5pZmljYXRpb24gYW5kXG4gKiAgc2hpcHMgd2l0aCB0aGUgYnVuZGxlIHRoYXQgY2FycmllcyB0aGUgZm9udCBieXRlcy5cbiAqL1xuXG4vKiEgSmV0QnJhaW5zIE1vbm8gdjIuMzA0IC0tIGh0dHBzOi8vZ2l0aHViLmNvbS9KZXRCcmFpbnMvSmV0QnJhaW5zTW9ub1xuICogIENvcHlyaWdodCAyMDIwIFRoZSBKZXRCcmFpbnMgTW9ubyBQcm9qZWN0IEF1dGhvcnMuXG4gKiAgU0lMIE9wZW4gRm9udCBMaWNlbnNlIDEuMS4gRnVsbCB0ZXh0OlxuICogIHdlYi9mb250cy9KRVRCUkFJTlMtTU9OTy1MSUNFTlNFLnR4dC5cbiAqL1xuXG4vKiEgRmlyYSBDb2RlIHY2LjIgLS0gaHR0cHM6Ly9naXRodWIuY29tL3RvbnNreS9GaXJhQ29kZVxuICogIENvcHlyaWdodCAyMDE0IFRoZSBGaXJhIENvZGUgUHJvamVjdCBBdXRob3JzLlxuICogIFNJTCBPcGVuIEZvbnQgTGljZW5zZSAxLjEuIEZ1bGwgdGV4dDpcbiAqICB3ZWIvZm9udHMvRklSQS1DT0RFLUxJQ0VOU0UudHh0LlxuICovXG5cbi8qISBDYXNjYWRpYSBDb2RlIHYyNDA3LjI0IC0tIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvY2FzY2FkaWEtY29kZVxuICogIENvcHlyaWdodCAyMDE5LXByZXNlbnQgTWljcm9zb2Z0IENvcnBvcmF0aW9uLCB3aXRoIFJlc2VydmVkIEZvbnQgTmFtZVxuICogIENhc2NhZGlhIENvZGUuIFNJTCBPcGVuIEZvbnQgTGljZW5zZSAxLjEuIEZ1bGwgdGV4dDpcbiAqICB3ZWIvZm9udHMvQ0FTQ0FESUEtQ09ERS1MSUNFTlNFLnR4dC5cbiAqL1xuXG4vKiBSZWxhdGl2ZSB1cmxzIHNvIGVzYnVpbGQncyBmaWxlIGxvYWRlciBoYXNoZXMgdGhlIHdvZmYyIGludG8gZGlzdC8uXG4gICBUaGUgYnJvd3NlciBvbmx5IGZldGNoZXMgdGhlIGZhY2VzIGEgcGFnZSBhY3R1YWxseSB1c2VzLCBzbyBhIHR5cGljYWxcbiAgIHNlc3Npb24gcHVsbHMgcmVndWxhciArIGJvbGQgYW5kIG5ldmVyIHRvdWNoZXMgdGhlIGl0YWxpY3MuICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiSGFja1wiO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2hhY2stcmVndWxhci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiSGFja1wiO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2hhY2stYm9sZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiSGFja1wiO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2hhY2staXRhbGljLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJIYWNrXCI7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvaGFjay1ib2xkaXRhbGljLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIkpldEJyYWlucyBNb25vXCI7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvamV0YnJhaW5zLW1vbm8tcmVndWxhci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiSmV0QnJhaW5zIE1vbm9cIjtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9qZXRicmFpbnMtbW9uby1ib2xkLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJKZXRCcmFpbnMgTW9ub1wiO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2pldGJyYWlucy1tb25vLWl0YWxpYy53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiSmV0QnJhaW5zIE1vbm9cIjtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9qZXRicmFpbnMtbW9uby1ib2xkaXRhbGljLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuLyogRmlyYSBDb2RlIGhhcyBubyBpdGFsaWMgdXBzdHJlYW0gLS0gdGhlIGZhbWlseSBpcyBkZXNpZ25lZCB3aXRob3V0XG4gICBvbmUgLS0gc28gdGhlIGJyb3dzZXIgb2JsaXF1ZXMgdGhlIHJlZ3VsYXIgYW5kIGJvbGQgZmFjZXMgaW5zdGVhZC4gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJGaXJhIENvZGVcIjtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9maXJhLWNvZGUtcmVndWxhci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiRmlyYSBDb2RlXCI7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvZmlyYS1jb2RlLWJvbGQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiQ2FzY2FkaWEgQ29kZVwiO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2Nhc2NhZGlhLWNvZGUtcmVndWxhci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiQ2FzY2FkaWEgQ29kZVwiO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2Nhc2NhZGlhLWNvZGUtYm9sZC53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiQ2FzY2FkaWEgQ29kZVwiO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2Nhc2NhZGlhLWNvZGUtaXRhbGljLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJDYXNjYWRpYSBDb2RlXCI7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvY2FzY2FkaWEtY29kZS1ib2xkaXRhbGljLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtZGlzcGxheTogc3dhcDtcbn1cblxuOnJvb3Qge1xuICAvKiBQYWxldHRlIC0tIG1hdHJpeCBncmVlbiB0dW5lZCBqdXN0IGEgaGFpciBvZmYgcHVyZSAjMDBGRjQxIHNvIGl0XG4gICAgIGlzbid0IHJldGluYS12aWJyYXRpbmcgb24gT0xFRC4gKi9cbiAgLS1jaGFsay1iZzogICAgICAgICAgICMwMDAwMDA7XG4gIC0tY2hhbGstYmctZWxldjogICAgICAjMDAxYTAwO1xuICAtLWNoYWxrLWJnLWVsZXYtMjogICAgIzAwMmEwMDtcbiAgLS1jaGFsay1mZzogICAgICAgICAgICMwMGZmNDE7XG4gIC0tY2hhbGstZmctZGltOiAgICAgICAjNGNhOTZhO1xuICAtLWNoYWxrLWZnLWJyaWdodDogICAgIzVjZmZiMTtcbiAgLS1jaGFsay1mZy1tdXRlZDogICAgICMzMzgwNTA7XG4gIC0tY2hhbGstYm9yZGVyOiAgICAgICAjMDAzYTAwO1xuICAtLWNoYWxrLWFjY2VudDogICAgICAgIzVjZmZiMTtcbiAgLS1jaGFsay13YXJuOiAgICAgICAgICNmZmNjMDA7XG4gIC0tY2hhbGstZXJyb3I6ICAgICAgICAjZmY0ZDRkO1xuXG4gIC8qIFByZXNlbmNlIGlzIGEgc3RhdHVzIHNpZ25hbCwgbm90IHBhcnQgb2YgdGhlIHBhbGV0dGU6IHRoZXNlIGFyZVxuICAgICBmaXhlZCBhY3Jvc3MgZXZlcnkgdGhlbWUgc28gXCJvbmxpbmVcIiBhbHdheXMgbWVhbnMgdGhlIHNhbWUgdGhpbmcuXG4gICAgIFR1bmVkIHRvIGNsZWFyIDM6MSBhZ2FpbnN0IGJvdGggdGhlIGRhcmtlc3QgZ3JvdW5kICgjMDAwKSBhbmQgdGhlXG4gICAgIGxpZ2h0IHRoZW1lcycgY3JlYW0vd2hpdGUuIERvIG5vdCBvdmVycmlkZSB0aGVtIGluIGEgdGhlbWUgYmxvY2suICovXG4gIC0tY2hhbGstcHJlc2VuY2Utb25saW5lOiAgICAgICMxN2E1NTc7XG4gIC0tY2hhbGstcHJlc2VuY2Utb25saW5lLWdsb3c6IHJnYmEoMjMsIDE2NSwgODcsIDAuNDUpO1xuICAtLWNoYWxrLXByZXNlbmNlLWF3YXk6ICAgICAgICAjYzQ3ZjAwO1xuICAtLWNoYWxrLXByZXNlbmNlLW9mZmxpbmU6ICAgICAjN2Y4YTgyO1xuXG4gIC8qIFR5cGUuIC0tY2hhbGstZm9udCBhbmQgLS1jaGFsay1mb250LXNjYWxlIGFyZSB0aGUgdHdvIGtub2JzIHRoZVxuICAgICBwZXItZGV2aWNlIGRpc3BsYXkgcHJlZnMgd3JpdGUgYXMgaW5saW5lIHN0eWxlcyBvbiA8aHRtbD4gKHNlZVxuICAgICBzcmMvZGlzcGxheS1wcmVmcy50cyk7IGV2ZXJ5dGhpbmcgYmVsb3cgZGVyaXZlcyBmcm9tIHRoZW0sIHNvIGFcbiAgICAgc2NhbGUgY2hhbmdlIHJlc2l6ZXMgdGhlIHdob2xlIFVJIGluIG9uZSByZXBhaW50LiBUaGUgdmFsdWVzIGhlcmVcbiAgICAgYXJlIHRoZSBkZWZhdWx0cyBmb3IgYSBkZXZpY2UgdGhhdCBoYXMgbmV2ZXIgc2V0IGEgcHJlZmVyZW5jZS5cblxuICAgICBFdmVyeSBidW5kbGVkIGZhbWlseSBmYWxscyB0aHJvdWdoIHRoZSBIYWNrIHN0YWNrLCBzbyBhIGZhY2UgdGhhdFxuICAgICBmYWlscyB0byBsb2FkIHN0aWxsIGxhbmRzIG9uIGEgbW9ub3NwYWNlLiBUaGUgc3lzdGVtIG5hbWVzIGluIHRoYXRcbiAgICAgc3RhY2sgZGVsaWJlcmF0ZWx5IGV4Y2x1ZGUgQ2FzY2FkaWEgQ29kZSBhbmQgSmV0QnJhaW5zIE1vbm86IHRob3NlXG4gICAgIG5hbWVzIG5vdyByZXNvbHZlIHRvIG91ciBvd24gQGZvbnQtZmFjZSBydWxlcywgYW5kIGxpc3RpbmcgdGhlbSBhc1xuICAgICBmYWxsYmFja3Mgd291bGQgcXVpZXRseSBoYW5kIGEgSGFjayByZWFkZXIgYSBkaWZmZXJlbnQgZmFjZS4gKi9cbiAgLS1jaGFsay1mb250LW1vbm86IFwiSGFja1wiLCB1aS1tb25vc3BhY2UsIFwiU0YgTW9ub1wiLCBDb25zb2xhcyxcbiAgICAgICAgICAgICAgICAgICAgIFwiUm9ib3RvIE1vbm9cIiwgbW9ub3NwYWNlO1xuICAtLWNoYWxrLWZvbnQtamV0YnJhaW5zOiBcIkpldEJyYWlucyBNb25vXCIsIHZhcigtLWNoYWxrLWZvbnQtbW9ubyk7XG4gIC0tY2hhbGstZm9udC1maXJhOiBcIkZpcmEgQ29kZVwiLCB2YXIoLS1jaGFsay1mb250LW1vbm8pO1xuICAtLWNoYWxrLWZvbnQtY2FzY2FkaWE6IFwiQ2FzY2FkaWEgQ29kZVwiLCB2YXIoLS1jaGFsay1mb250LW1vbm8pO1xuICAtLWNoYWxrLWZvbnQtc2Fuczogc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBcIlNlZ29lIFVJXCIsIFJvYm90byxcbiAgICAgICAgICAgICAgICAgICAgIFwiSGVsdmV0aWNhIE5ldWVcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIC0tY2hhbGstZm9udC1zZXJpZjogdWktc2VyaWYsIEdlb3JnaWEsIENhbWJyaWEsIFwiVGltZXMgTmV3IFJvbWFuXCIsIHNlcmlmO1xuICAtLWNoYWxrLWZvbnQ6IHZhcigtLWNoYWxrLWZvbnQtbW9ubyk7XG4gIC0tY2hhbGstZm9udC1zY2FsZTogMTtcbiAgLS1jaGFsay1zaXplLWJhc2U6IGNhbGMoMTRweCAqIHZhcigtLWNoYWxrLWZvbnQtc2NhbGUpKTtcbiAgLS1jaGFsay1zaXplLXNtYWxsOiBjYWxjKDEycHggKiB2YXIoLS1jaGFsay1mb250LXNjYWxlKSk7XG4gIC0tY2hhbGstc2l6ZS10aXRsZTogY2FsYygxOHB4ICogdmFyKC0tY2hhbGstZm9udC1zY2FsZSkpO1xuXG4gIC8qIFNwYWNpbmcgcmh5dGhtIC0tIDRweCBncmlkICovXG4gIC0tY2hhbGstczE6IDRweDtcbiAgLS1jaGFsay1zMjogOHB4O1xuICAtLWNoYWxrLXMzOiAxMnB4O1xuICAtLWNoYWxrLXM0OiAxNnB4O1xuICAtLWNoYWxrLXM1OiAyNHB4O1xuICAtLWNoYWxrLXM2OiAzMnB4O1xuXG4gIC8qIFJhZGlpLiBLZWVwIHRpbnkgLS0gdGhlIG1hdHJpeC1ncmVlbiBhZXN0aGV0aWMgaXMgc2hhcnAuICovXG4gIC0tY2hhbGstcmFkaXVzOiAycHg7XG5cbiAgY29sb3Itc2NoZW1lOiBkYXJrO1xufVxuXG4qIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuaHRtbCwgYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmcpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICBmb250LWZhbWlseTogdmFyKC0tY2hhbGstZm9udCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1iYXNlKTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgbWluLWhlaWdodDogMTAwZHZoO1xuICAvKiBQcmV2ZW50IGlPUyBkb3VibGUtdGFwIHpvb20gb24gdGhlIGNvbXBvc2VyIGJ1dHRvbiB3aXRob3V0XG4gICAgIGRpc2FibGluZyBwaW5jaC16b29tIG9uIHRleHQuICovXG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICAvKiA2NC0xMTogdGhlIGFwcCdzIG93biBzd2lwZS1yaWdodC1iYWNrIGFuZCB0aGUgYnJvd3NlcidzIHN3aXBlLXRvLWdvLWJhY2tcbiAgICAgYXJlIHRoZSBzYW1lIGdlc3R1cmUuIE5vdGhpbmcgaW4gdGhlIGFwcCBzY3JvbGxzIHNpZGV3YXlzLCBzbyB0aGVcbiAgICAgaG9yaXpvbnRhbCBwYXJ0IG9mIGV2ZXJ5IGJhY2sgc3dpcGUgcmVhY2hlZCB0aGUgdmlld3BvcnQgYW5kIHRoZSBicm93c2VyXG4gICAgIHRvb2sgaXQ6IHRoZSB3aG9sZSBwYWdlIGRyYWdnZWQgYSBzaG9ydCBkaXN0YW5jZSwgaGl0IHRoZSBlbmQgb2YgdGhlXG4gICAgIGhpc3RvcnkgaXQgZG9lcyBub3QgaGF2ZSwgYW5kIHNwcmFuZyBiYWNrIC0tIGFuZCB3aGljaGV2ZXIgb2YgdGhlIHR3b1xuICAgICBjbGFpbWVkIHRoZSB0b3VjaCBmaXJzdCB3YXMgYSBjb2luIHRvc3MuIFRoaXMgaXMgdGhlIHN3aXRjaCB0aGF0IHR1cm5zXG4gICAgIHRoZSBicm93c2VyJ3MgaGFsZiBvZmYuICovXG4gIG92ZXJzY3JvbGwtYmVoYXZpb3IteDogbm9uZTtcbiAgLyogaU9TIFNhZmFyaSBpbmZsYXRlcyB0ZXh0IGl0IGRlZW1zIHRvbyBzbWFsbCAoXCJmb250IGJvb3N0aW5nXCIpLFxuICAgICBtb3N0IHZpc2libHkgb24gcm90YXRpb24gdG8gbGFuZHNjYXBlLiBUaGUgVUkgc2V0cyBpdHMgb3duIHNpemVzXG4gICAgIGRlbGliZXJhdGVseTsgcGluY2gtem9vbSBhbmQgdGhlIDE2cHggY29udHJvbCBmbG9vciBiZWxvdyByZW1haW5cbiAgICAgdGhlIGFjY2Vzc2liaWxpdHkgb3V0bGV0cy4gKi9cbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICB0ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xufVxuXG46OnNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWZnKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWJnKTtcbn1cblxuLyogU2Nyb2xsYmFycy4gQm90aCBwcm9wZXJ0aWVzIGluaGVyaXQsIHNvIHRoaXMgb25lIHJ1bGUgdGhlbWVzIGV2ZXJ5XG4gICBzY3JvbGxlciBpbiB0aGUgYXBwIGFuZCBmb2xsb3dzIHdoaWNoZXZlciB0aGVtZSBpcyBhY3RpdmUuIFRoZSB0cmFjayBpc1xuICAgdHJhbnNwYXJlbnQgb24gcHVycG9zZTogYSBwbGF0Zm9ybS1ncmV5IHN0cmlwIGRvd24gdGhlIGVkZ2Ugb2YgdGhlIGZlZWRcbiAgIHdhcyB0aGUgb25lIHBpZWNlIG9mIGNocm9tZSB0aGF0IG5ldmVyIG1hdGNoZWQgdGhlIHRlcm1pbmFsIGxvb2ssIGFuZFxuICAgd2l0aCBvbmx5IGEgdGh1bWIgc2hvd2luZyB0aGUgYmFyIGFsc28gc3RvcHMgY3Jvd2RpbmcgdGhlIHdpZGdldHMgcGlubmVkXG4gICB0byB0aGUgcmlnaHQgb2YgYSBwYW5lICh0aGUgY2hhbm5lbCBoZWFkZXIncyBzZWFyY2ggYnV0dG9uKS5cblxuICAgVGhlIHdpZHRoIGNvbWVzIGZyb20gYSBjdXN0b20gcHJvcGVydHkgYmVjYXVzZSB0aGUgZGlzcGxheSBwcmVmcyBsZXQgYVxuICAgZGV2aWNlIHNldCBpdCB0byBgbm9uZWAgLS0gc2Nyb2xsaW5nIHN0aWxsIHdvcmtzIGZyb20gdGhlIHdoZWVsLCB0b3VjaCBhbmRcbiAgIHRoZSBrZXlib2FyZCwgdGhlIGJhcnMganVzdCBzdG9wIGJlaW5nIGRyYXduIChzZWUgc3JjL2Rpc3BsYXktcHJlZnMudHMpLiAqL1xuaHRtbCB7XG4gIHNjcm9sbGJhci13aWR0aDogdmFyKC0tY2hhbGstc2Nyb2xsYmFyLXdpZHRoLCB0aGluKTtcbiAgc2Nyb2xsYmFyLWNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCkgdHJhbnNwYXJlbnQ7XG59XG5cbi8qIFRoZSBuby1KYXZhU2NyaXB0IG5vdGljZS4gTGl2ZXMgaGVyZSByYXRoZXIgdGhhbiBpbiBhIHN0eWxlIGF0dHJpYnV0ZSBvblxuICAgaW5kZXguaHRtbCBiZWNhdXNlIHN0eWxlLXNyYyBpcyBzdHJpY3Q7IGhhcmRjb2RlZCByYXRoZXIgdGhhbiB0aGVtZWRcbiAgIGJlY2F1c2UgdGhlIHRoZW1lcyBhcmUgYXBwbGllZCBieSB0aGUgc2NyaXB0IHRoYXQgZGlkIG5vdCBydW4uICovXG4uY2hhbGstbm9zY3JpcHQge1xuICBjb2xvcjogIzAwZmY0MTtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgcGFkZGluZzogMnJlbTtcbn1cblxuLyogLS0gQXBwIHNoZWxsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmNoYWxrLWFwcCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byAxZnIgYXV0bztcbiAgLyogMzAtNWo6IHBpbiB0aGUgc2hlbGwgdG8gdGhlIHZpZXdwb3J0IChoZWlnaHQsIG5vdCBtaW4taGVpZ2h0KSBzbyBhIHNob3J0XG4gICAgIHdpbmRvdyAtLSBlLmcuIHdpdGggZGV2dG9vbHMgb3BlbiAtLSBtYWtlcyB0aGUgbWlkZGxlIHJvdyBzY3JvbGwgSU5TSURFXG4gICAgIGluc3RlYWQgb2YgdGhlIHdob2xlIHBhZ2Ugb3ZlcmZsb3dpbmcgYmVsb3cgdGhlIGZvbGQgKGNvbXBvc2VyIHB1c2hlZFxuICAgICBvZmYtc2NyZWVuLCBzaWRlYmFyIGRvY2sgZHJpZnRpbmcpLiBtaW4taGVpZ2h0OjAgbGV0cyB0aGUgMWZyIHJvdyBzaHJpbmtcbiAgICAgYmVsb3cgaXRzIGNvbnRlbnQgc28gbWFpbi9zaWRlYmFyIGJlY29tZSB0aGUgc2Nyb2xsIHN1cmZhY2VzLiAqL1xuICBoZWlnaHQ6IDEwMGR2aDtcbiAgbWluLWhlaWdodDogMDtcbiAgbWF4LXdpZHRoOiA5MDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDAgdmFyKC0tY2hhbGstczQpO1xufVxuXG4vKiBQaGFzZSAwOGI6IHR3by1jb2x1bW4gbGF5b3V0IHdpdGggYSBmaXhlZC13aWR0aCBzaWRlYmFyLlxuICAgVGhlIGhlYWRlciBhbmQgZm9vdGVyIHNwYW4gYm90aCBjb2x1bW5zLiAqL1xuLmNoYWxrLWFwcC0tcGhhc2UwOGIge1xuICBkaXNwbGF5OiBncmlkO1xuICAvKiAzMy00OiB0aGUgc2lkZWJhciBjb2x1bW4gaXMgZHJpdmVuIGJ5IC0tY2hhbGstc2lkZWJhci13LCBzZXQgaW5saW5lIG9uXG4gICAgIHRoZSByb290IGZyb20gdGhlIHVzZXIncyBwcmVmIGFuZCBjbGFtcGVkIGluIEpTLiBUaGUgZmFsbGJhY2sga2VlcHMgdGhlXG4gICAgIHByZS0zMy00IHdpZHRoIGZvciBhbnkgcmVuZGVyIGJlZm9yZSBwcmVmcyBsb2FkLiAqL1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLWNoYWxrLXNpZGViYXItdywgMjIwcHgpIDFmcjtcbiAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvIDFmciBhdXRvO1xuICBncmlkLXRlbXBsYXRlLWFyZWFzOlxuICAgIFwiaGVhZGVyIGhlYWRlclwiXG4gICAgXCJzaWRlYmFyIG1haW5cIlxuICAgIFwiZm9vdGVyIGZvb3RlclwiO1xuICAvKiAzMC01ajogaW5oZXJpdCB0aGUgdmlld3BvcnQtcGlubmVkIGhlaWdodCBmcm9tIC5jaGFsay1hcHA7IHRoZSAxZnJcbiAgICAgbWlkZGxlIHJvdyBzaHJpbmtzIChtaW4taGVpZ2h0OjApIHNvIHNpZGViYXIgKyBtYWluIHNjcm9sbCBpbnRlcm5hbGx5XG4gICAgIGFuZCB0aGUgZm9vdGVyIGNvbXBvc2VyIHN0YXlzIGFuY2hvcmVkIGF0IHRoZSBib3R0b20uICovXG4gIGhlaWdodDogMTAwZHZoO1xuICBtaW4taGVpZ2h0OiAwO1xuICAvKiA5My0xOiB0aGUgbGF5b3V0LXdpZHRoIHByZWYgc2V0cyB0aGlzIGlubGluZSBvbiB0aGUgcm9vdCAtLSAxMTAwcHggZm9yIHRoZVxuICAgICBjZW50cmVkIGNvbHVtbiwgbm9uZSB0byBmaWxsIHRoZSB3aW5kb3cuIFRoZSBmYWxsYmFjayBpcyB0aGUgY2VudHJlZCB2YWx1ZVxuICAgICBzbyB0aGUgZmlyc3QgcGFpbnQgaXMgcmlnaHQsIGJlZm9yZSBhcHBseURpc3BsYXlQcmVmcyBoYXMgcnVuLiAqL1xuICBtYXgtd2lkdGg6IHZhcigtLWNoYWxrLWFwcC1tYXgtdywgMTEwMHB4KTtcbiAgY29sdW1uLWdhcDogdmFyKC0tY2hhbGstczMpO1xufVxuLmNoYWxrLWFwcC0tcGhhc2UwOGIgLmNoYWxrLWhlYWRlciAgeyBncmlkLWFyZWE6IGhlYWRlcjsgfVxuLmNoYWxrLWFwcC0tcGhhc2UwOGIgLmNoYWxrLXNpZGViYXIgeyBncmlkLWFyZWE6IHNpZGViYXI7IH1cbi5jaGFsay1hcHAtLXBoYXNlMDhiIC5jaGFsay1tYWluICAgIHsgZ3JpZC1hcmVhOiBtYWluOyB9XG4uY2hhbGstYXBwLS1waGFzZTA4YiAuY2hhbGstZm9vdGVyICB7IGdyaWQtYXJlYTogZm9vdGVyOyB9XG5cbi5jaGFsay1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczQpIDAgdmFyKC0tY2hhbGstczMpIDA7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xufVxuXG4uY2hhbGstaGVhZGVyIGgxIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtdGl0bGUpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbn1cblxuLyogTWFyayArIHdvcmRtYXJrIGFyZSBvbmUgdW5pdDogdGhlaXIgb3duIGJveCBzbyB0aGUgZ2FwIGJldHdlZW4gdGhlbSBzdGF5c1xuICAgdGlnaHQgcmVnYXJkbGVzcyBvZiAuY2hhbGstaGVhZGVyLWxlZnQncyB3aWRlciBzcGFjaW5nLCBhbmQgc28gdGhlIG1hcmtcbiAgIGNlbnRyZXMgb24gdGhlIGxldHRlcmZvcm1zIGluc3RlYWQgb2Ygc2l0dGluZyBvbiB0aGVpciBiYXNlbGluZSAoYW4gc3ZnJ3NcbiAgIGJhc2VsaW5lIGlzIGl0cyBib3R0b20gZWRnZSwgd2hpY2ggd291bGQgbGVhdmUgdGhlIGJveCB0b3dlcmluZyBvdmVyIHRoZVxuICAgY2FwIGhlaWdodCkuICovXG4uY2hhbGstYnJhbmQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMzVlbTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXRpdGxlKTtcbn1cblxuLmNoYWxrLWxvZ28ge1xuICB3aWR0aDogMS4xNWVtO1xuICBoZWlnaHQ6IDEuMTVlbTtcbiAgZmxleDogbm9uZTtcbn1cblxuLmNoYWxrLW1haW4ge1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICAvKiBUaGUgZmVlZCByZXN0b3JlcyBpdHMgb3duIHNjcm9sbCBwb3NpdGlvbiB3aGVuIGEgc2Nyb2xsYmFjayBwYWdlXG4gICAgIHByZXBlbmRzIChNZXNzYWdlTGlzdCdzIDU1LTEgbGF5b3V0IGVmZmVjdCksIGJlY2F1c2UgU2FmYXJpIGhhcyBub1xuICAgICBzY3JvbGwgYW5jaG9yaW5nLiBXaGVyZSB0aGUgYnJvd3NlciBET0VTIGhhdmUgaXQsIGJvdGggY29ycmVjdGlvbnNcbiAgICAgYXBwbGllZCB0byB0aGUgc2FtZSBwcmVwZW5kIGFuZCB0aGUgdmlldyBzaG90IHBhc3QgdGhlIGJvdHRvbSAtLSB3aGljaFxuICAgICB0aGVuIHJlYWQgYXMgXCJ0aGUgcmVhZGVyIGlzIGZvbGxvd2luZyB0aGUgZmVlZFwiIGFuZCB0aHJldyBhd2F5IHRoZVxuICAgICBsYW5kaW5nIG9uIHRoZSB1bnJlYWQgZGl2aWRlci4gT25lIGNvcnJlY3RvciBvbmx5LiAqL1xuICBvdmVyZmxvdy1hbmNob3I6IG5vbmU7XG4gIC8qIDMwLTVqOiBhbGxvdyB0aGUgZ3JpZCBpdGVtIHRvIHNocmluayBiZWxvdyBpdHMgY29udGVudCBoZWlnaHQgc28gdGhlXG4gICAgIG1lc3NhZ2UgbGlzdCBzY3JvbGxzIGFuZCB0aGUgZm9vdGVyIGNvbXBvc2VyIHN0YXlzIG9uLXNjcmVlbi4gKi9cbiAgbWluLWhlaWdodDogMDtcbiAgLyogVGhlIHJpZ2h0IHBhZGRpbmcgaXMgdGhlIHNjcm9sbGJhcidzIGxhbmU6IHRoZSBwYW5lIGlzIHRoZSBhcHAncyB0YWxsZXN0XG4gICAgIHNjcm9sbGVyLCBzbyB3aXRob3V0IGl0IHRoZSB0aHVtYiBzaXRzIGZsdXNoIGFnYWluc3QgdGhlIGZlZWQgYW5kIGFnYWluc3RcbiAgICAgdGhlIHNlYXJjaCBidXR0b24gaW4gdGhlIHBpbm5lZCBoZWFkZXIuIEl0IGNvbGxhcHNlcyB0byAwIHdoZW4gdGhlIGRldmljZVxuICAgICBoaWRlcyBpdHMgc2Nyb2xsYmFycy4gTW9iaWxlIGRyb3BzIGl0IGVpdGhlciB3YXkgLS0gdG91Y2ggc2Nyb2xsYmFycyBhcmVcbiAgICAgb3ZlcmxheXMgdGhhdCBmYWRlIG91dC4gKi9cbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczQpIHZhcigtLWNoYWxrLXNjcm9sbC1sYW5lLCB2YXIoLS1jaGFsay1zMikpIHZhcigtLWNoYWxrLXM0KSAwO1xufVxuXG4vKiA0NC0xOiB0aGUgZm9vdGVyIGNhcnJpZXMgdGhlIHR3by1jb2x1bW4gYWxpZ25tZW50IHRoZSBjb21wb3NlciB1c2VkIHRvIGRvXG4gICBmb3IgaXRzZWxmIC0tIHZvaWNlIGNvbnRyb2xzIHVuZGVyIHRoZSByb3N0ZXIsIGV2ZXJ5dGhpbmcgeW91IHR5cGUgdW5kZXIgdGhlXG4gICBtZXNzYWdlcy4gU2FtZSB2YXJpYWJsZSBhbmQgZ2FwIGFzIHRoZSBzaGVsbCBncmlkLCBzbyB0aGUgY29sdW1ucyBsaW5lIHVwLlxuICAgYWxpZ24taXRlbXM6IGVuZCBrZWVwcyB0aGUgdm9pY2UgY2x1c3RlcidzIGJ1dHRvbnMgb24gdGhlIHNlbmQgYnV0dG9uJ3Mgcm93XG4gICByYXRoZXIgdGhhbiBmbG9hdGluZyBiZXNpZGUgdGhlIHRvcCBvZiB0aGUgZmllbGQuICovXG4uY2hhbGstZm9vdGVyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMzKSAwIHZhcigtLWNoYWxrLXM0KSAwO1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLWNoYWxrLXNpZGViYXItdywgMjIwcHgpIDFmcjtcbiAgY29sdW1uLWdhcDogdmFyKC0tY2hhbGstczMpO1xuICBhbGlnbi1pdGVtczogZW5kO1xuICAvKiA5MS0xOiBhbmNob3IgZm9yIHRoZSBhYnNvbHV0ZWx5LXBvc2l0aW9uZWQgcmVzaXplIGhhbmRsZS4gKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vKiA5NC0xOiB0aGUgZm9vdGVyIGl0c2VsZiBuZWVkcyBpdCBhcyBtdWNoIGFzIGl0cyBjb2x1bW5zIGRvLiBJdCBpcyBhIGdyaWRcbiAgIGl0ZW0sIHNvIGl0cyBhdXRvbWF0aWMgbWluaW11bSBpcyBpdHMgbWluLWNvbnRlbnQgd2lkdGggLS0gYW5kIGEgdGV4dGFyZWEnc1xuICAgbWluLWNvbnRlbnQgaXMgdGhlIGludHJpbnNpYyB3aWR0aCBvZiBpdHMgYGNvbHNgLCB3aGljaCBub3RoaW5nIGluc2lkZSB0aGVcbiAgIGNvbXBvc2VyIHJvdyBjYW4gc2hyaW5rIHBhc3QuIE9uIGEgcGhvbmUgdGhhdCBwdXNoZWQgdGhlIHRyYWNrIH4xOXB4IHdpZGVyXG4gICB0aGFuIHRoZSBzY3JlZW4gYW5kIGNhcnJpZWQgdGhlIHNlbmQgYnV0dG9uIG9mZiB0aGUgcmlnaHQgZWRnZSwgd2hpY2hldmVyXG4gICB0b29sIHN0eWxlIHdhcyBwaWNrZWQuIFdpdGggdGhlIG1pbmltdW0gbGlmdGVkIHRoZSB0cmFjayBpcyB0aGUgc2NyZWVuIGFuZFxuICAgdGhlIHJvdydzIG93biBmbGV4IHNocmlua2luZyAodGhlIGZpZWxkIGhhcyBtaW4td2lkdGg6IDApIGRvZXMgdGhlIHJlc3QuICovXG4uY2hhbGstZm9vdGVyLFxuLmNoYWxrLWZvb3Rlci1sZWZ0LFxuLmNoYWxrLWZvb3Rlci1tYWluIHtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4vKiAtLSA2NC0xMjogdGhlIGJhY2sgZ2VzdHVyZSwgd2hpbGUgdGhlIGZpbmdlciBpcyBvbiBpdCAtLS0tLS0tLS0tLS0tLS1cbiAgIFRoZSBzdXJmYWNlIGZvbGxvd3MgdGhlIHRvdWNoIG9uZS10by1vbmUgYW5kIHNldHRsZXMgb24gcmVsZWFzZS4gVHdvXG4gICBydWxlcyBhYm91dCB3aGVuIHRoZSB0cmFuc2Zvcm0gZXhpc3RzIGF0IGFsbDpcblxuICAgT25seSBtaWQtZ2VzdHVyZS4gQSB0cmFuc2Zvcm0gLS0gZXZlbiB0cmFuc2xhdGVYKDApIC0tIG1ha2VzIGFuIGVsZW1lbnRcbiAgIHRoZSBjb250YWluaW5nIGJsb2NrIGZvciBpdHMgcG9zaXRpb246Zml4ZWQgZGVzY2VuZGFudHMsIHdoaWNoIHdvdWxkIG1vdmVcbiAgIHRoZSBtZXNzYWdlIG1lbnUgYW5kIHRoZSBsaWdodGJveCBvZmYgdGhlIHZpZXdwb3J0IGFuY2hvcnMgdGhleSBhcmVcbiAgIHBvc2l0aW9uZWQgYWdhaW5zdC4gU28gdGhlIGNsYXNzZXMgY29tZSBhbmQgZ28gd2l0aCB0aGUgZHJhZywgYW5kIGFcbiAgIHJlc3Rpbmcgc3VyZmFjZSBoYXMgbm8gdHJhbnNmb3JtIHByb3BlcnR5IGF0IGFsbC5cblxuICAgT25seSBzZXR0bGluZyBhbmltYXRlcy4gRHVyaW5nIHRoZSBkcmFnIHRoZSB0cmFuc2l0aW9uIGlzIG9mZiwgb3IgdGhlXG4gICBzdXJmYWNlIHdvdWxkIGxhZyBhIGZpbmdlciBpdCBpcyBzdXBwb3NlZCB0byBiZSBzdHVjayB0by4gMTYwbXMgZWFzZS1vdXRcbiAgIG1hdGNoZXMgdGhlIHJvc3RlciBkcmF3ZXIgLS0gdGhlIG9uZSBvdGhlciB0aGluZyBvbiBhIHBob25lIHRoYXQgc2xpZGVzLiAqL1xuLmNoYWxrLXN3aXBlLXgge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgodmFyKC0tY2hhbGstc3dpcGUteCwgMHB4KSk7XG59XG5cbi5jaGFsay1zd2lwZS14LS1zZXR0bGluZyB7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxNjBtcyBlYXNlLW91dDtcbn1cblxuLyogVGhlIGNvbnZlcnNhdGlvbiBhbmQgdGhlIGNvbXBvc2VyIGFyZSBzZXBhcmF0ZSBjaGlsZHJlbiBvZiB0aGUgc2hlbGxcbiAgIGdyaWQsIHNvIHRoZSBzaGVsbCBjYXJyaWVzIHRoZSBvZmZzZXQgYW5kIG1vdmVzIGJvdGguIFRoZSBoZWFkZXIgc3RheXM6XG4gICBpdCBpcyB0aGUgc2FtZSBoZWFkZXIgb24gdGhlIGxpc3Qgc2NyZWVuLCBhbmQgcGlubmluZyBpdCBnaXZlcyB0aGVcbiAgIHNsaWRpbmcgcGFuZSBzb21ldGhpbmcgdG8gc2xpZGUgYWdhaW5zdC4gKi9cbi5jaGFsay1hcHAtLXN3aXBpbmcgLmNoYWxrLW1haW4sXG4uY2hhbGstYXBwLS1zd2lwaW5nIC5jaGFsay1mb290ZXItbWFpbiB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCh2YXIoLS1jaGFsay1zd2lwZS14LCAwcHgpKTtcbn1cblxuLmNoYWxrLWFwcC0tc3dpcGluZy1zZXR0bGUgLmNoYWxrLW1haW4sXG4uY2hhbGstYXBwLS1zd2lwaW5nLXNldHRsZSAuY2hhbGstZm9vdGVyLW1haW4ge1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTYwbXMgZWFzZS1vdXQ7XG59XG5cbi8qIDQzLTY6IFwiYWxpY2UgaXMgdHlwaW5nLi4uXCIuIFRoZSByb3cgaXMgcmVzZXJ2ZWQgd2hldGhlciBvciBub3QgYW55b25lIGlzXG4gICB0eXBpbmcgLS0gdGhlIHNoZWxsIGlzIGEgZ3JpZCB3aXRoIGEgMWZyIG1lc3NhZ2UgcGFuZSwgc28gYSBmb290ZXIgdGhhdFxuICAgZ3JldyBhbmQgc2hyYW5rIHdvdWxkIHJlc2l6ZSB0aGUgcGFuZSB1bmRlciBzb21lb25lIHJlYWRpbmcgaXQuIG5vd3JhcCArXG4gICBlbGxpcHNpcyBmb3IgdGhlIHNhbWUgcmVhc29uOiBmaXZlIGhhbmRsZXMgdGhhdCB3cmFwIHRvIHR3byBsaW5lcyB3b3VsZFxuICAgcmVpbnRyb2R1Y2UgZXhhY3RseSB0aGUgc2hpZnQgdGhlIHJlc2VydmF0aW9uIHByZXZlbnRzLlxuXG4gICBUaGUgcmVzZXJ2ZWQgaGVpZ2h0IGFuZCB0aGUgbGluZSBib3ggYXJlIHRoZSBzYW1lIG51bWJlciBzbyB0aGUgcm93IG5ldmVyXG4gICBtb3ZlcywgYW5kIGJvdGggbGVhdmUgcm9vbSBhcm91bmQgdGhlIHRleHQ6IGF0IDEuMiB0aGUgZ2x5cGhzIGZpbGxlZCB0aGVcbiAgIGJveCBlZGdlIHRvIGVkZ2UsIHNvIG92ZXJmbG93OiBoaWRkZW4gLS0gd2hpY2ggaXMgdGhlcmUgZm9yIHRoZSBlbGxpcHNpcyAtLVxuICAgc2hhdmVkIGFzY2VuZGVycyBhbmQgZGVzY2VuZGVycyBhbmQgdGhlIGxpbmUgc2F0IGFnYWluc3QgdGhlIGNvbXBvc2VyLlxuICAgNDMtOTogbGluZS1oZWlnaHQgZml4ZWQgdGhlIGNsaXBwaW5nLiBUaGUgbmV3IG1hcmdpbi1ib3R0b20gcnVsZSBhZGRzIHRoZVxuICAgcm93J3MgbWlzc2luZyBib3R0b20gZ2FwLCBzbyB0aGUgcm93IG5vIGxvbmdlciBzaXRzIGFnYWluc3QgdGhlXG4gICBjb21wb3NlcidzIHRvcCBlZGdlLiAqL1xuLmNoYWxrLXR5cGluZyB7XG4gIG1pbi1oZWlnaHQ6IDEuNmVtO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jaGFsay1zMik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLyogNDMtOTogdGhpcyBzcGFjZXIgcmVzZXJ2ZXMgdGhlIHJvdydzIGxlZnQgcGFkZGluZywgdGhlIHRpbWVzdGFtcCBjb2x1bW4sXG4gICBhbmQgdGhlIGNvbHVtbiBnYXAuIFRoYXQgcGxhY2VzIHRoZSB0eXBpbmcgdGV4dCBhdCB0aGUgc2FtZSB4IHBvc2l0aW9uXG4gICBhcyBhIHNlbmRlciBuYW1lIGluIGEgbWVzc2FnZSByb3cuXG5cbiAgIFRoZSBydWxlIHVzZXMgYSA6OmJlZm9yZSBpbnN0ZWFkIG9mIGEgcGFkZGluZy1sZWZ0IG9uIC5jaGFsay10eXBpbmcuIFRoZVxuICAgY29sdW1uIHdpZHRocyBhcmUgaW4gY2gsIGFuZCBjaCByZXNvbHZlcyBhZ2FpbnN0IHRoZSBlbGVtZW50J3Mgb3duIGZvbnQuXG4gICBUaGUgdHlwaW5nIGxpbmUgcnVucyBhdCBzaXplLXNtYWxsLiBBIG1lc3NhZ2Ugcm93IHJ1bnMgYXQgc2l6ZS1iYXNlLCBzb1xuICAgdGhlIHNhbWUgY2ggdmFsdWUgZGlmZmVycyBiZXR3ZWVuIHRoZW0uIFRoZSBzcGFjZXIgc2V0cyBpdHMgb3duIGZvbnQtc2l6ZVxuICAgdG8gYmFzZSwgc28gaXRzIGNoIHJlc29sdmVzIHRoZSBzYW1lIGFzIHRoZSByb3cncy4gVGhpcyBkb2VzIG5vdCBjaGFuZ2VcbiAgIHRoZSBzaXplIG9mIHRoZSB0eXBpbmcgdGV4dCBuZXh0IHRvIGl0LlxuXG4gICBUaGlzIHNwYWNlciBydW5zIG9uIGRlc2t0b3Agb25seS4gQSBwaG9uZSByb3cgaGFzIG5vIGxlZnQgcGFkZGluZyBhbmQgYW5cbiAgIGF1dG8td2lkdGggdGltZSBjb2x1bW4sIHNvIHRoZSB0eXBpbmcgbGluZSBhbHJlYWR5IHN0YXJ0cyBhdCB0aGVcbiAgIHRpbWVzdGFtcCdzIGVkZ2UuICovXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNoYWxrLXR5cGluZzo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtYmFzZSk7XG4gICAgd2lkdGg6IGNhbGMoXG4gICAgICB2YXIoLS1jaGFsay1zMikgKyB2YXIoLS1jaGFsay1tc2ctZ3V0dGVyKSArIHZhcigtLWNoYWxrLW1zZy10aW1lLWNvbCkgK1xuICAgICAgICB2YXIoLS1jaGFsay1tc2ctY29sLWdhcClcbiAgICApO1xuICB9XG59XG5cbi8qIDQzLTEwOiB0aGUgdHlwaW5nIHdhdmUgLS0gdGhlIHdvcmQgXCJ0eXBpbmcuLi5cIiByaXBwbGVzIGxldHRlciBieSBsZXR0ZXJcbiAgIGZvciBhcyBsb25nIGFzIGl0IHNob3dzLCBiZWhpbmQgaXRzIG93biBwcmVmZXJlbmNlICh0eXBpbmdXYXZlKSxcbiAgIGluZGVwZW5kZW50IG9mIGZsYWlyLlxuXG4gICBGbGFpcidzIHJ1bGUgaHRtbFtkYXRhLWZsYWlyLXdhdmVdIC5jaGFsay1mbGFpci13YXZlLWNoIHNldHMgdGhlXG4gICBhbmltYXRpb24gd2l0aCB0aGUgc2hvcnRoYW5kIHByb3BlcnR5LCBhbmQgdGhlIHNob3J0aGFuZCByZXNldHNcbiAgIGFuaW1hdGlvbi1kZWxheS4gVGhhdCBydWxlIHN0YXlzIG9uIHdoZW5ldmVyIGZsYWlyIGlzIG9uLCBzbyBhIHJ1bGVcbiAgIHRoYXQgbG9vcHMgb24gdGhlIHNhbWUgY2xhc3MgbWl4ZXMgd2l0aCBpdC4gRm9yIHRoYXQgcmVhc29uLCB0aGlzIHdhdmVcbiAgIHVzZXMgaXRzIG93biBjbGFzc2VzIHJhdGhlciB0aGFuIFdhdmVOYW1lJ3MuIFRoZSBmb3VyIGFuaW1hdGlvblxuICAgcHJvcGVydGllcyBiZWxvdyBzdGF5IGFzIGxvbmdoYW5kcyBmb3IgdGhlIHNhbWUgcmVhc29uLiBUaGUgc2hvcnRoYW5kXG4gICBwcm9wZXJ0eSByZXNldHMgYW5pbWF0aW9uLWRlbGF5LCB3aGljaCBjYW5jZWxzIHRoZSBwZXItbGV0dGVyIGRlbGF5XG4gICBydWxlcyBiZWxvdy5cblxuICAgVGhlIGtleWZyYW1lIG1vdmVzIGluIGl0cyBmaXJzdCB0aGlyZCwgdGhlbiBob2xkcyBzdGlsbCBmb3IgdGhlIHJlc3QuXG4gICBUaGF0IHJlYWRzIGFzIGEgcmlwcGxlIHdpdGggYSBwYXVzZSwgbm90IGEgY29uc3RhbnQgd29iYmxlLiBUaGVcbiAgIC0wLjIyZW0gcGVhayBzdGF5cyBpbnNpZGUgdGhlIGxpbmUncyAxLjYgbGluZS1oZWlnaHQuIEZvciBpdHNcbiAgIGVsbGlwc2lzLCAuY2hhbGstdHlwaW5nIGNsaXBzIG92ZXJmbG93LCBhbmQgYSB0YWxsZXIgcGVhayBjdXRzIGFcbiAgIGxldHRlcidzIHRvcCBvZmYuXG5cbiAgIE9uZSBudGgtY2hpbGQgcnVsZSBwZXIgbGV0dGVyIG9mIFwidHlwaW5nLi4uXCIgc3RhZ2dlcnMgdGhlIHJpcHBsZSwgZWFjaFxuICAgNzBtcyBhZnRlciB0aGUgbGFzdC4gUmVkdWNlZCBtb3Rpb24gdHVybnMgdGhlIGFuaW1hdGlvbiBvZmYgYW5kIGxlYXZlc1xuICAgdGhlIGxldHRlcnMgc3RpbGwuICovXG4uY2hhbGstdHlwaW5nLXdhdmUge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmNoYWxrLXR5cGluZy13YXZlLWNoIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBhbmltYXRpb24tbmFtZTogY2hhbGstdHlwaW5nLXdhdmU7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMS44cztcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xufVxuQGtleWZyYW1lcyBjaGFsay10eXBpbmctd2F2ZSB7XG4gIDAlICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbiAgMTIlICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC4yMmVtKTsgfVxuICAyNCUgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAuMDRlbSk7IH1cbiAgMzIlICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG59XG4uY2hhbGstdHlwaW5nLXdhdmUtY2g6bnRoLWNoaWxkKDEpIHsgYW5pbWF0aW9uLWRlbGF5OiAwbXM7IH1cbi5jaGFsay10eXBpbmctd2F2ZS1jaDpudGgtY2hpbGQoMikgeyBhbmltYXRpb24tZGVsYXk6IDcwbXM7IH1cbi5jaGFsay10eXBpbmctd2F2ZS1jaDpudGgtY2hpbGQoMykgeyBhbmltYXRpb24tZGVsYXk6IDE0MG1zOyB9XG4uY2hhbGstdHlwaW5nLXdhdmUtY2g6bnRoLWNoaWxkKDQpIHsgYW5pbWF0aW9uLWRlbGF5OiAyMTBtczsgfVxuLmNoYWxrLXR5cGluZy13YXZlLWNoOm50aC1jaGlsZCg1KSB7IGFuaW1hdGlvbi1kZWxheTogMjgwbXM7IH1cbi5jaGFsay10eXBpbmctd2F2ZS1jaDpudGgtY2hpbGQoNikgeyBhbmltYXRpb24tZGVsYXk6IDM1MG1zOyB9XG4uY2hhbGstdHlwaW5nLXdhdmUtY2g6bnRoLWNoaWxkKDcpIHsgYW5pbWF0aW9uLWRlbGF5OiA0MjBtczsgfVxuLmNoYWxrLXR5cGluZy13YXZlLWNoOm50aC1jaGlsZCg4KSB7IGFuaW1hdGlvbi1kZWxheTogNDkwbXM7IH1cbi5jaGFsay10eXBpbmctd2F2ZS1jaDpudGgtY2hpbGQoOSkgeyBhbmltYXRpb24tZGVsYXk6IDU2MG1zOyB9XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuY2hhbGstdHlwaW5nLXdhdmUtY2gge1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgfVxufVxuXG4vKiAtLSBTdGF0dXNCYXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uY2hhbGstc3RhdHVzIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbn1cblxuLmNoYWxrLXN0YXR1cy1kb3Qge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogOHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbn1cblxuLyogXCJvcGVuXCIgYW5kIFwiY2xvc2VkXCIgcmVhZCBhcyBvbmxpbmUvb2ZmbGluZSB0byB0aGUgdXNlciwgc28gdGhleSB1c2VcbiAgIHRoZSBmaXhlZCAtLWNoYWxrLXByZXNlbmNlLSogdG9rZW5zIChzYW1lIGFzIHRoZSBzaWRlYmFyIGRvdHMpIHJhdGhlclxuICAgdGhhbiB0aGUgdGhlbWUgcGFsZXR0ZS4gQ29ubmVjdGluZy9lcnJvciBhcmUgdHJhbnNpZW50IGNvbm5lY3Rpb25cbiAgIHN0YXRlcyBhbmQga2VlcCB0aGUgdGhlbWUncyB3YXJuL2Vycm9yIGNvbG9ycy4gKi9cbi5jaGFsay1zdGF0dXMtZG90LS1vcGVuIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstcHJlc2VuY2Utb25saW5lKTtcbiAgYm94LXNoYWRvdzogMCAwIDRweCB2YXIoLS1jaGFsay1wcmVzZW5jZS1vbmxpbmUtZ2xvdyk7XG59XG4uY2hhbGstc3RhdHVzLWRvdC0tY29ubmVjdGluZyB7IGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLXdhcm4pOyBhbmltYXRpb246IGNoYWxrLXB1bHNlIDFzIGluZmluaXRlOyB9XG4uY2hhbGstc3RhdHVzLWRvdC0tY2xvc2VkIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLXByZXNlbmNlLW9mZmxpbmUpO1xuICB3aWR0aDogNnB4O1xuICBoZWlnaHQ6IDZweDtcbn1cbi5jaGFsay1zdGF0dXMtZG90LS1lcnJvciAgICAgIHsgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstZXJyb3IpOyB9XG5cbkBrZXlmcmFtZXMgY2hhbGstcHVsc2Uge1xuICAwJSwgMTAwJSB7IG9wYWNpdHk6IDE7IH1cbiAgNTAlICAgICAgeyBvcGFjaXR5OiAwLjQ7IH1cbn1cblxuLmNoYWxrLXN0YXR1cy1kZXRhaWwge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xufVxuXG4uY2hhbGstc3RhdHVzLXVzZXIge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWNoYWxrLXMyKTtcbn1cblxuLyogLS0gTWVzc2FnZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmNoYWxrLW1lc3NhZ2VzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgLyogMTEzLTQ6IHRoZSBnYXAgaXMgYSB0b2tlbiBzbyB0aGUgZGF5IG1hcmsncyB1bmRlci1zdHJpcCBjYW4gYmUgZXhhY3RseVxuICAgICB0aGlzIHdpZGUgYW5kIG5vIHdpZGVyIC0tIGNvbXBhY3QgbW9kZSBvdmVycmlkZXMgYm90aCB0b2dldGhlci4gKi9cbiAgLS1jaGFsay1tc2ctZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIGdhcDogdmFyKC0tY2hhbGstbXNnLWdhcCk7XG59XG5cbi5jaGFsay1tZXNzYWdlcy0tZW1wdHkge1xuICBkaXNwbGF5OiBncmlkO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKiA0NS0zOiB0aGUgdm9pY2UtY2hhbm5lbCBzY3JhdGNocGFkLiBUaGUgcGFuZSBpcyBhIGZpeGVkIGZyYW1lIHJhdGhlciB0aGFuIGFcbiAgIHNjcm9sbGVyIC0tIHRoZXJlIGlzIG5vIGhpc3RvcnkgaGVyZSB0byBzY3JvbGwgYmFjayB0aHJvdWdoLCBzbyB0aGUgY2FsbFxuICAgaG9sZHMgdGhlIHRvcCBhbmQgdGhlIHRleHQgdGFrZXMgd2hhdGV2ZXIgaXMgbGVmdCBhYm92ZSB0aGUgY29tcG9zZXIuICovXG4uY2hhbGstbWFpbi0tdm9pY2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY2hhbGstbWFpbi0tdm9pY2UgLmNoYWxrLWNoYW5uZWwtaGVhZGVyLFxuLmNoYWxrLW1haW4tLXZvaWNlIC5jaGFsay1jaGFubmVsLWhlYWR3cmFwIHtcbiAgZmxleDogbm9uZTtcbn1cblxuLyogVGhlIGNhbGwga2VlcHMgaXRzIG5hdHVyYWwgaGVpZ2h0IHVudGlsIHRoZSBwYW5lIHJ1bnMgb3V0IG9mIHJvb20uIFNocmlua2luZ1xuICAgaXQgKHJhdGhlciB0aGFuIHRoZSBmZWVkKSBpcyB3aGF0IGtlZXBzIGEgbG9uZyBkZWJ1ZyBkcmF3ZXIgc2Nyb2xsaW5nIGluc2lkZVxuICAgdGhlIHBhbmVsIGluc3RlYWQgb2YgcHVzaGluZyB0aGUgdGV4dCBvZmYgdGhlIGJvdHRvbS5cblxuICAgVGhlIHBhbmVsIGlzIGEgY29sdW1uIHRoYXQgY2xpcHMgcmF0aGVyIHRoYW4gc2Nyb2xsczogd2hhdCBnaXZlcyB1cCBoZWlnaHRcbiAgIGlzIHRoZSB2aWRlbywgbmV2ZXIgdGhlIGNvbnRyb2xzIHVuZGVyIGl0LiBTY3JvbGxpbmcgdGhlIHBhbmVsIGFzIGEgd2hvbGVcbiAgIHB1dCB0aGUgYmFyLCB0aGUgZXJyb3IgbGluZSBhbmQgdGhlIHNjcmF0Y2hwYWQgcnVsZXMgYmVsb3cgdGhlIGZvbGQgYXMgc29vblxuICAgYXMgdGhlIHN0YWdlIHdhcyB0YWxsZXIgdGhhbiB0aGUgcm9vbSBsZWZ0IC0tIHRoZSBwaWN0dXJlIHN1cnZpdmVkIGFuZFxuICAgZXZlcnl0aGluZyB5b3UgY291bGQgYWN0IG9uIGRpZCBub3QuICovXG4uY2hhbGstbWFpbi0tdm9pY2UgLmNoYWxrLXZvaWNlLXBhbmVsIHtcbiAgZmxleDogMCAxIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIDQ1LTg6IGFuZCB0aGUgc3RhZ2UgY2xpcHMuIFNxdWVlemluZyBpdCBtb3ZlcyB0aGUgY29udHJvbCBiYXIgdXAsIGJ1dCB0aGVcbiAgIGdyaWQgaW5zaWRlIGl0IGNhbm5vdCBmb2xsb3cgLS0gaXRzIHRpbGVzIHRha2UgdGhlaXIgaGVpZ2h0IGZyb20gdGhlaXIgd2lkdGhcbiAgIHRocm91Z2ggYXNwZWN0LXJhdGlvLCBzbyB0aGUgcm93cyBzdGF5IHB1dCBhbmQgc3BpbGwgb3V0IHRoZSBib3R0b20uIFdpdGhvdXRcbiAgIHRoaXMgdGhlIGJhciBhbmQgdGhlIHNjcmF0Y2hwYWQgcnVsZSB3ZXJlIHBhaW50ZWQgb24gdG9wIG9mIHRoZSBsYXN0IHJvdyBvZlxuICAgZmFjZXMgaW5zdGVhZCBvZiBiZWxvdyB0aGVtLiBDcm9wcGluZyB0aGUgcGljdHVyZSBpcyB0aGUgZG9jdW1lbnRlZCB0cmFkZVxuICAgYWJvdmU6IHdoYXQgZ2l2ZXMgdXAgaGVpZ2h0IGlzIHRoZSB2aWRlbywgbmV2ZXIgdGhlIGNvbnRyb2xzIHVuZGVyIGl0LiAqL1xuLmNoYWxrLW1haW4tLXZvaWNlIC5jaGFsay12b2ljZS1zdGFnZSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBtaW4taGVpZ2h0OiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBUaGUgYmlnIHRpbGUgaXMgc3RyZXRjaGVkIGJ5IHRoaXMgcm93LCBzbyBzcXVlZXppbmcgdGhlIHN0YWdlIHNxdWVlemVzIHRoZVxuICAgcGljdHVyZSB3aXRoIGl0IChvYmplY3QtZml0OiBjb250YWluIGxldHRlcmJveGVzLCBzbyBub3RoaW5nIGlzIGNyb3BwZWQpLlxuICAgVGhlIGZpbG1zdHJpcCBhbmQgZXZlcnl0aGluZyBiZWxvdyB0aGUgc3RhZ2UgaG9sZCB0aGVpciBzaXplLiAqL1xuLmNoYWxrLW1haW4tLXZvaWNlIC5jaGFsay12b2ljZS1iaWcge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgbWluLWhlaWdodDogMDtcbn1cblxuLmNoYWxrLW1haW4tLXZvaWNlIC5jaGFsay12b2ljZS1zdHJpcCxcbi5jaGFsay1tYWluLS12b2ljZSAuY2hhbGstdm9pY2UtYmFyLFxuLmNoYWxrLW1haW4tLXZvaWNlIC5jaGFsay12b2ljZS1lcnJvcixcbi5jaGFsay1tYWluLS12b2ljZSAuY2hhbGstdm9pY2Utc2NyYXRjaCB7XG4gIGZsZXg6IG5vbmU7XG59XG5cbi8qIFRoZSBkaWFnbm9zdGljcyBkcmF3ZXIgaXMgdGhlIG9uZSBwYXJ0IHRoYXQga2VlcHMgaXRzIG93biBzY3JvbGxiYXI6IGl0IGlzXG4gICBhcmJpdHJhcmlseSBsb25nLCBhbmQgY2xpcHBpbmcgaXQgd291bGQgaGlkZSB0aGUgdGFpbCBvZiB0aGUgZXZlbnQgbG9nLiAqL1xuLmNoYWxrLW1haW4tLXZvaWNlIC5jaGFsay12b2ljZS1kcmF3ZXIge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgbWluLWhlaWdodDogMDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLyogNjMtMTogcGFzdCBmb3VyIHBhcnRpY2lwYW50cyB0aGUgZ3JpZCBuZWVkcyBpdHMgcm93cyBtb3JlIHRoYW4gdGhlXG4gICBzY3JhdGNocGFkIG5lZWRzIGl0cyBoZWlnaHQgLS0gaGFsdmUgdGhlIGZlZWQncyBndWFyYW50ZWVkIGZsb29yIGFuZCBmb2xkXG4gICB0aGUgcnVsZXMgbm90ZSB0byBhIHNpbmdsZSBsaW5lLiA6aGFzKCkgYmVjYXVzZSB0aGUgZmVlZCBpcyBhIHNpYmxpbmcgb2ZcbiAgIHRoZSBjYWxsIHBhbmVsLCBub3QgYSBjaGlsZC4gKi9cbi5jaGFsay1tYWluLS12b2ljZTpoYXMoLmNoYWxrLXZvaWNlLWdyaWQtLWNyb3dkZWQpIC5jaGFsay1tZXNzYWdlcy0tZXBoZW1lcmFsIHtcbiAgbWluLWhlaWdodDogM2VtO1xufVxuXG4uY2hhbGstbWFpbi0tdm9pY2U6aGFzKC5jaGFsay12b2ljZS1ncmlkLS1jcm93ZGVkKSAuY2hhbGstdm9pY2Utc2NyYXRjaCA+IHNwYW46bGFzdC1jaGlsZCB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4vKiBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kICsgb3ZlcmZsb3c6IGhpZGRlbiBpcyB0aGUgcm90YXRpb246IHRoZSBuZXdlc3RcbiAgIGxpbmUgc2l0cyBvbiB0aGUgYm90dG9tIGVkZ2UsIGFuZCBlYWNoIG9uZSB0aGF0IGFycml2ZXMgcHVzaGVzIHRoZSBvbGRlc3RcbiAgIHBhc3QgdGhlIHRvcCBvZiB0aGUgZnJhbWUsIHdoZXJlIGl0IGlzIGNsaXBwZWQgYW5kIHVucmVhY2hhYmxlLiAqL1xuLmNoYWxrLW1lc3NhZ2VzLS1lcGhlbWVyYWwge1xuICAvKiA0NS04OiBiYXNpcyAwLCBub3QgYXV0by4gYGF1dG9gIG1ha2VzIHRoZSBmZWVkIGJpZCBmb3IgaXRzIG93biBjb250ZW50XG4gICAgIGhlaWdodCwgYW5kIGEgY2FsbCdzIHNjcmF0Y2hwYWQgZmlsbHMgdXA6IHNpeHR5IHJvd3Mgb2YgYmFzZSBzaXplIGFnYWluc3RcbiAgICAgdGhlIGNhbGwgcGFuZWwncyBmb3VyIGh1bmRyZWQsIGJvdGggc2hyaW5rYWJsZSwgc28gdGhlIGRlZmljaXQgd2FzIHNwbGl0XG4gICAgIGJldHdlZW4gdGhlbSBhbmQgdGhlIGNhbGwgbG9zdCBhIHRoaXJkIG9mIGl0cyBoZWlnaHQgdG8gdGV4dCB0aGF0IGlzXG4gICAgIGNsaXBwZWQgYW55d2F5LiBUaGUgY2FsbCBob2xkcyB0aGUgdG9wIGFuZCB0aGUgZmVlZCB0YWtlcyB3aGF0IGlzIGxlZnQgLS1cbiAgICAgdGhhdCBvbmx5IHdvcmtzIGlmIHRoZSBmZWVkIGFza3MgZm9yIG5vdGhpbmcgdG8gc3RhcnQgd2l0aC4gbWluLWhlaWdodFxuICAgICBiZWxvdyBpcyBpdHMgZmxvb3I7IHBhc3QgZm91ciBpbiB0aGUgcm9vbSwgNjMtMSBoYWx2ZXMgaXQuICovXG4gIGZsZXg6IDEgMSAwO1xuICBtaW4taGVpZ2h0OiA2ZW07XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG59XG5cbi5jaGFsay1tZXNzYWdlcy0tZXBoZW1lcmFsLmNoYWxrLW1lc3NhZ2VzLS1lbXB0eSB7XG4gIG1pbi1oZWlnaHQ6IDA7XG59XG5cbi5jaGFsay1lbXB0eS1oaW50IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFBoYXNlIDU1LTE6IHNjcm9sbC11cCBwYWdpbmF0aW9uXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogVGhlIG9ic2VydmVyIHRhcmdldC4gMXB4IHRhbGwgc28gaW50ZXJzZWN0aW9uIGlzIHVuYW1iaWd1b3VzO1xuICAgdmlzdWFsbHkgbm90aGluZy4gKi9cbi5jaGFsay1oaXN0b3J5LXNlbnRpbmVsIHtcbiAgaGVpZ2h0OiAxcHg7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vKiBFbmQgY2FwIGFuZCBsb2FkaW5nIGxpbmU6IHF1aWV0LCBjZW50ZXJlZCwgb3V0IG9mIHRoZSBmZWVkJ3Mgdm9pY2UuICovXG4uY2hhbGstaGlzdG9yeS1jYXAge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMikgMDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5jaGFsay1oaXN0b3J5LWNhcC0tbG9hZGluZyB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyogVGhlIG1hbnVhbCBmYWxsYmFjayB3aGVuIGF1dG8tZmlsbCBkYW1wcyBvdXQuICovXG4uY2hhbGstaGlzdG9yeS1tb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogdmFyKC0tY2hhbGstczIpIGF1dG87XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjc1cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jaGFsay1oaXN0b3J5LW1vcmU6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG59XG5cbi5jaGFsay1tZXNzYWdlIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA3Y2ggOWNoIDFmcjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIC8qIFRoZSBleHRyYSBsZWZ0IHBhZGRpbmcgaXMgdGhlIGd1dHRlciB0aGUgcm93J3MgXHUwMEI3XHUwMEI3XHUwMEI3IG1hcmtlciBzaXRzIGluLiAqL1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMSkgdmFyKC0tY2hhbGstczIpIHZhcigtLWNoYWxrLXMxKVxuICAgIGNhbGModmFyKC0tY2hhbGstczIpICsgdmFyKC0tY2hhbGstbXNnLWd1dHRlcikpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLmNoYWxrLW1lc3NhZ2U6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbn1cblxuLmNoYWxrLW1lc3NhZ2UtLW93biB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xufVxuXG4uY2hhbGstbWVzc2FnZS10aW1lIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuXG4uY2hhbGstbWVzc2FnZS1zZW5kZXIge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLmNoYWxrLW1lc3NhZ2UtYm9keSB7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbn1cblxuLyogLS0gQ29tcG9zZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmNoYWxrLWNvbXBvc2VyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG59XG5cbi8qIDQ0LTU6IHRoZSBtYWluIGNvbXBvc2VyIGlzIGEgcGxhaW4gc3RhY2tlZCBib3ggbGlrZSB0aGUgdGhyZWFkIG9uZSAtLSB0aGVcbiAgIHRvb2wgYmxvY2sgbGl2ZXMgaW5zaWRlIHRoZSBpbnB1dCByb3cgbm93LCBub3QgaW4gYSBjb2x1bW4gb2YgaXRzIG93bi4gVGhlXG4gICByYWlsIHVzZWQgdG8gb2NjdXB5IHRoZSB3aG9sZSByb3N0ZXIgY29sdW1uLCB3aGljaCBsZWZ0IHRoZSBidXR0b25zIHNpdHRpbmdcbiAgIGEgc2lkZWJhci13aWR0aCBhd2F5IGZyb20gdGhlIGZpZWxkIHRoZXkgYWN0IG9uLiAqL1xuLmNoYWxrLWNvbXBvc2VyLS1yYWlsZWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbn1cblxuLyogVGhlIHJhaWwgcmVuZGVycyBlbXB0eSBkdXJpbmcgYW4gZWRpdCAoaXRzIGJ1dHRvbnMgYXJlIGhpZGRlbiksIHNvIGl0IGhvbGRzXG4gICB0aGUgYmxvY2sncyB3aWR0aCB0byBzdG9wIHRoZSBmaWVsZCBzbGlkaW5nIHNpZGV3YXlzIG1pZC1lZGl0LiAqL1xuLmNoYWxrLWNvbXBvc2VyLXJhaWwge1xuICBmbGV4OiBub25lO1xuICBtaW4td2lkdGg6IDU2cHg7XG59XG5cbi5jaGFsay1jb21wb3Nlci1tYWluIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIG1pbi13aWR0aDogMDtcbiAgLyogNTYtMTogYW5jaG9yIGZvciB0aGUgQG1lbnRpb24gYXV0b2NvbXBsZXRlIHBvcHVwLiAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qIDU2LTE6IHRoZSBAbWVudGlvbiBhdXRvY29tcGxldGUuIE9wZW5zIHVwd2FyZCAtLSB0aGUgY29tcG9zZXIgc2l0cyBhdFxuICAgdGhlIGJvdHRvbSBvZiB0aGUgdmlld3BvcnQgLS0gYW5kIHNwYW5zIHRoZSBjb21wb3NlcidzIHdpZHRoIHNvIGl0IG5ldmVyXG4gICBuZWVkcyBjYXJldC1wb3NpdGlvbiBtYXRoLiBTYW1lIGVsZXZhdGlvbiByZWNpcGUgYXMgdGhlIHNob3J0Y3V0IHNoZWV0LiAqL1xuLmNoYWxrLWNvbXBvc2VyLW1lbnRpb25zIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IGNhbGMoMTAwJSArIHZhcigtLWNoYWxrLXMxKSk7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiA0MDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczEpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMzUpO1xuICBtYXgtaGVpZ2h0OiA0MHZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLmNoYWxrLWNvbXBvc2VyLW1lbnRpb24taXRlbSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMxKSB2YXIoLS1jaGFsay1zMik7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4vKiBTZWxlY3Rpb24gZm9sbG93cyB0aGUga2V5Ym9hcmQgYW5kIHRoZSBwb2ludGVyIHRocm91Z2ggdGhlIHNhbWUgY2xhc3M7XG4gICA6aG92ZXIgYWxvbmUgd291bGQgbGVhdmUgdHdvIHJvd3MgaGlnaGxpZ2h0ZWQgd2hpbGUgYXJyb3dpbmcuICovXG4uY2hhbGstY29tcG9zZXItbWVudGlvbi1pdGVtLS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2LTIpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbn1cblxuLyogYXR0LTI6IHRoZSBpbnB1dCByb3cgKHRleHRhcmVhIHwgc2VuZCkuICovXG4uY2hhbGstY29tcG9zZXItcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIGFsaWduLWl0ZW1zOiBlbmQ7XG59XG5cbi5jaGFsay1jb21wb3Nlci1pbnB1dCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpIHZhcigtLWNoYWxrLXMzKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1iYXNlKTtcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgbWluLWhlaWdodDogMi40ZW07XG4gIC8qIDkxLTE6IC0tY2hhbGstY29tcG9zZXItaCBpcyB0aGUgZm9vdGVyJ3MgZHJhZ2dlZCBoZWlnaHQ7IHVuc2V0ICh0aGVcbiAgICAgdGhyZWFkIGNvbXBvc2VyLCBtb2JpbGUsIGFuIHVudG91Y2hlZCBwcmVmKSBsZWF2ZXMgdGhlIGZpZWxkIHRoZSB0d28gcm93c1xuICAgICBpdCBoYXMgYWx3YXlzIGJlZW4uIFRoZSBjbGFtcCBsZXRzIHRoZSBoYW5kbGUgdGFrZSBpdCBwYXN0IHRoZSAzMGR2aCB0aGVcbiAgICAgY29ybmVyIGdyaXAgc3RvcHMgYXQsIGJ1dCBuZXZlciBwYXN0IDYwZHZoIC0tIGJlbG93IHRoYXQgdGhlIGZlZWQgYWJvdmVcbiAgICAgaXQgc3RvcHMgYmVpbmcgd29ydGggcmVhZGluZy4gKi9cbiAgaGVpZ2h0OiB2YXIoLS1jaGFsay1jb21wb3Nlci1oLCBhdXRvKTtcbiAgbWF4LWhlaWdodDogY2xhbXAoMzBkdmgsIHZhcigtLWNoYWxrLWNvbXBvc2VyLWgsIDMwZHZoKSwgNjBkdmgpO1xufVxuXG4uY2hhbGstY29tcG9zZXItaW5wdXQ6Zm9jdXMge1xuICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tY2hhbGstZmcpO1xuICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldi0yKTtcbn1cblxuLmNoYWxrLWNvbXBvc2VyLWlucHV0OjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG59XG5cbi5jaGFsay1jb21wb3Nlci1pbnB1dDpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLyogNDItMTogYSBxdWlldCBvdXRsaW5lIGJ1dHRvbiAtLSBFbnRlciBzZW5kcywgc28gdGhpcyBkb2VzIG5vdCBuZWVkIHRvIGJlIHRoZVxuICAgbG91ZGVzdCB0aGluZyBpbiB0aGUgZm9vdGVyLlxuICAgOTQtMjogaXQgZG9lcyBuZWVkIHRvIGJlIHRoZSBzYW1lIGhlaWdodCBhcyB0aGUgZmllbGQgaXQgc2l0cyBiZXNpZGUuIEl0IHdhc1xuICAgYSAyNnB4IGJ1dHRvbiBwYXJrZWQgYXQgdGhlIGJvdHRvbSBjb3JuZXIsIHdoaWNoIHJlYWQgYXMgYSBzdHJheSBjb250cm9sXG4gICByYXRoZXIgdGhhbiB0aGUgY29tcG9zZXIncyBvd247IHdpdGggdGhlIGZpZWxkIHJlc2l6YWJsZSAoOTEtMSkgYW5kIEVudGVyIG5vXG4gICBsb25nZXIgc2VuZGluZyBvbiBhIHBob25lICg5NC0zKSwgaXQgaXMgYWxzbyB0aGUgdGFyZ2V0IHlvdSBhY3R1YWxseSBhaW0gYXQuXG4gICBzdHJldGNoIHJhdGhlciB0aGFuIGEgaGVpZ2h0OiB0aGUgcm93J3MgaGVpZ2h0IGlzIHRoZSB0ZXh0YXJlYSdzLCB3aGV0aGVyXG4gICB0aGF0IGlzIHR3byByb3dzIG9yIGEgZHJhZ2dlZCA2MGR2aC4gKi9cbi5jaGFsay1jb21wb3Nlci1zZW5kIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gIHBhZGRpbmc6IDAgdmFyKC0tY2hhbGstczMpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstZmcpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNoYWxrLWNvbXBvc2VyLXNlbmQ6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1mZyk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1iZyk7XG59XG5cbi5jaGFsay1jb21wb3Nlci1zZW5kOmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC40O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbn1cblxuLyogLS0gYXR0LTI6IGNvbXBvc2VyIGF0dGFjaCBidXR0b24gKyBwZW5kaW5nIHRyYXkgLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jaGFsay1jb21wb3Nlci1hdHRhY2gge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgcGFkZGluZzogMCB2YXIoLS1jaGFsay1zMyk7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLWJhc2UpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY2hhbGstY29tcG9zZXItYXR0YWNoOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG59XG4uY2hhbGstY29tcG9zZXItYXR0YWNoOmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC40O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uY2hhbGstY29tcG9zZXItdHJheSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG59XG4vKiAzNy0zOiB0aGUgXCJ5b3UgYXJlIGVkaXRpbmcgYSBtZXNzYWdlXCIgc3RyaXAgYWJvdmUgdGhlIGlucHV0LiBJdCBoYXMgdG8gYmVcbiAgIHVubWlzc2FibGUgLS0gcHJlc3NpbmcgRW50ZXIgaGVyZSByZXBsYWNlcyBhbiBleGlzdGluZyBtZXNzYWdlIGluc3RlYWQgb2ZcbiAgIHNlbmRpbmcgYSBuZXcgb25lIC0tIGhlbmNlIHRoZSBhY2NlbnQgcmFpbCwgd2hpbGUgc3RheWluZyBhIHRoaW4gc3RyaXAgc29cbiAgIGl0IGRvZXNuJ3Qgc2hvdmUgdGhlIGNvbXBvc2VyIGFyb3VuZC4gKi9cbi5jaGFsay1jb21wb3Nlci1lZGl0aW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMxKSB2YXIoLS1jaGFsay1zMik7XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgdmFyKC0tY2hhbGstYWNjZW50KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG59XG4uY2hhbGstY29tcG9zZXItZWRpdGluZy1sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xufVxuLyogNDItMTogdGhlIHN0cmlwIGFsb25lIHdhcyBlYXN5IHRvIG1pc3Mgd2hlbiBpdCBhcHBlYXJlZCBmcm9tIGEgY3Vyc29yLXVwXG4gICB5b3UgaGFsZi1tZWFudC4gUmluZyB0aGUgZmllbGQgaXRzZWxmIGluIHRoZSBhY2NlbnQgY29sb3VyIHRvbywgc28gdGhlXG4gICBjb21wb3NlciB2aXNpYmx5IHN0b3BzIGJlaW5nIFwid3JpdGUgYSBuZXcgbWVzc2FnZVwiLiAqL1xuLmNoYWxrLWNvbXBvc2VyLS1lZGl0aW5nIC5jaGFsay1jb21wb3Nlci1pbnB1dCxcbi5jaGFsay1jb21wb3Nlci0tZWRpdGluZyAuY2hhbGstY29tcG9zZXItaW5wdXQ6Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWFjY2VudCk7XG4gIG91dGxpbmUtY29sb3I6IHZhcigtLWNoYWxrLWFjY2VudCk7XG59XG4uY2hhbGstY29tcG9zZXItLWVkaXRpbmcgLmNoYWxrLWNvbXBvc2VyLXNlbmQge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWFjY2VudCk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xufVxuLmNoYWxrLWNvbXBvc2VyLS1lZGl0aW5nIC5jaGFsay1jb21wb3Nlci1zZW5kOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYWNjZW50KTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWJnKTtcbn1cbi5jaGFsay1jb21wb3Nlci1lZGl0aW5nLWhpbnQge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIG9wYWNpdHk6IDAuNzU7XG59XG4uY2hhbGstY29tcG9zZXItZWRpdGluZy1jYW5jZWwge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uY2hhbGstY29tcG9zZXItZWRpdGluZy1jYW5jZWw6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbn1cbi5jaGFsay1jb21wb3Nlci1lZGl0aW5nLWNhbmNlbDpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG4uY2hhbGstY29tcG9zZXItY2hpcCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMSkgdmFyKC0tY2hhbGstczIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbn1cbi5jaGFsay1jb21wb3Nlci1jaGlwLXRodW1iIHtcbiAgd2lkdGg6IDEuOGVtO1xuICBoZWlnaHQ6IDEuOGVtO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbn1cbi5jaGFsay1jb21wb3Nlci1jaGlwLWljb24ge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xufVxuLmNoYWxrLWNvbXBvc2VyLWNoaXAtbmFtZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBtYXgtd2lkdGg6IDE2ZW07XG59XG4uY2hhbGstY29tcG9zZXItY2hpcC1zaXplIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbn1cbi5jaGFsay1jb21wb3Nlci1jaGlwLXJlbW92ZSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIHBhZGRpbmc6IDAgMC4yZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmNoYWxrLWNvbXBvc2VyLWNoaXAtcmVtb3ZlOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG59XG5cbi8qIC0tIDU3LTM6IGNvbXBvc2VyIGxpbmstcHJldmlldyBjYXJkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogT25lIHN0cmlwIGZvciBhbGwgdGhyZWUgc3RhdGVzIChjb25zZW50IGFzaywgbG9hZGluZywgcmVhZHkgY2FyZCkuXG4gICBTYW1lIHZpc3VhbCBmYW1pbHkgYXMgdGhlIHRyYXkgY2hpcHM6IGVsZXZhdGVkLCBib3JkZXJlZCwgc21hbGwgdHlwZS4gKi9cbi5jaGFsay1jb21wb3Nlci1saW5rcHJldmlldyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMSkgdmFyKC0tY2hhbGstczIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgbWluLXdpZHRoOiAwO1xufVxuLmNoYWxrLWNvbXBvc2VyLWxpbmtwcmV2aWV3LWFzayxcbi5jaGFsay1jb21wb3Nlci1saW5rcHJldmlldy1sb2FkaW5nIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG59XG4uY2hhbGstY29tcG9zZXItbGlua3ByZXZpZXctZW5hYmxlIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmNoYWxrLWNvbXBvc2VyLWxpbmtwcmV2aWV3LWVuYWJsZTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xufVxuLmNoYWxrLWNvbXBvc2VyLWxpbmtwcmV2aWV3LXRodW1iIHtcbiAgd2lkdGg6IDMuNGVtO1xuICBoZWlnaHQ6IDMuNGVtO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgZmxleDogbm9uZTtcbn1cbi5jaGFsay1jb21wb3Nlci1saW5rcHJldmlldy10ZXh0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjFlbTtcbiAgbWluLXdpZHRoOiAwO1xufVxuLmNoYWxrLWNvbXBvc2VyLWxpbmtwcmV2aWV3LXNpdGUge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuODVlbTtcbn1cbi5jaGFsay1jb21wb3Nlci1saW5rcHJldmlldy10aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5jaGFsay1jb21wb3Nlci1saW5rcHJldmlldy1kZXNjIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLyogVGhlIG9uZSB0aGluZyBvbiB0aGUgY2FyZCB0aGUgcmVhZGVyIGNhbiB0cnVzdDogdGhlIHJlYWwgZGVzdGluYXRpb24uICovXG4uY2hhbGstY29tcG9zZXItbGlua3ByZXZpZXctaG9zdCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xufVxuLmNoYWxrLWNvbXBvc2VyLWxpbmtwcmV2aWV3LWRpc21pc3Mge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgcGFkZGluZzogMCAwLjJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG59XG4uY2hhbGstY29tcG9zZXItbGlua3ByZXZpZXctZGlzbWlzczpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xufVxuXG4vKiAtLSA3NC0yOiB0aGUgc3RhZ2VkIGNvZGUgc25pcHBldCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFNhbWUgY2hpcCBzaGFwZSBhcyB0aGUgbGluay1wcmV2aWV3IGNhcmQgYWJvdmUgLS0gYm90aCBtZWFuIFwidGhpcyByaWRlc1xuICAgdGhlIG5leHQgc2VuZFwiIC0tIHdpdGggdGhlIGFjY2VudCBydWxlIHRoZSByZWNlaXZlZCBjYXJkIGFsc28gY2Fycmllcywgc29cbiAgIHRoZSB0d28gcmVhZCBhcyB0aGUgc2FtZSBvYmplY3QgYmVmb3JlIGFuZCBhZnRlciBzZW5kaW5nLlxuICAgOTQtNDogdGhpcyBpcyB0aGUgQ0hJUC4gVGhlIHRvb2wgYnV0dG9uIHRoYXQgc3RhZ2VzIG9uZSBpc1xuICAgLmNoYWxrLWNvbXBvc2VyLWNvZGUtdG9vbCAtLSBpdCB1c2VkIHRvIHNoYXJlIHRoaXMgbmFtZSwgYW5kIGluaGVyaXRlZCB0aGVcbiAgIGRpc3BsYXk6IGZsZXggYmVsb3csIHdoaWNoIGxlZnQgaXRzIGxhYmVsIGF0IGZsZXgtc3RhcnQuICovXG4uY2hhbGstY29tcG9zZXItY29kZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMSkgdmFyKC0tY2hhbGstczIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB2YXIoLS1jaGFsay1hY2NlbnQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBtaW4td2lkdGg6IDA7XG59XG4uY2hhbGstY29tcG9zZXItY29kZS1vcGVuIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5jaGFsay1jb21wb3Nlci1jb2RlLWxhYmVsIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4uY2hhbGstY29tcG9zZXItY29kZS1saW5lcyB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG59XG4uY2hhbGstY29tcG9zZXItY29kZS1vcGVuOmhvdmVyIC5jaGFsay1jb21wb3Nlci1jb2RlLWxhYmVsIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uY2hhbGstY29tcG9zZXItY29kZS1kaXNtaXNzIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIHBhZGRpbmc6IDAgMC4yZW07XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmNoYWxrLWNvbXBvc2VyLWNvZGUtZGlzbWlzczpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xufVxuXG4vKiAtLSA3NC0yOiB0aGUgcGFzdGUtY29kZSBtb2RhbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFRoZSB3aWR0aCBvdmVycmlkZSBsaXZlcyB3aXRoIHRoZSBvdGhlciAuY2hhbGstbW9kYWwgdmFyaWFudHMgZnVydGhlclxuICAgZG93biAtLSBzYW1lIHNwZWNpZmljaXR5IGFzIC5jaGFsay1tb2RhbCwgc28gaXQgb25seSB3aW5zIGFmdGVyIGl0LiAqL1xuLmNoYWxrLWNvZGUtbW9kYWwtYm9keSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xufVxuLyogd3JhcD1cIm9mZlwiIG9uIHRoZSBlbGVtZW50IHBsdXMgb3ZlcmZsb3cgaGVyZTogdGhlIGJveCBzaG93cyB0aGUgc25pcHBldCdzXG4gICByZWFsIGxpbmUgc3RydWN0dXJlLCBob3Jpem9udGFsbHkgc2Nyb2xsZWQsIGV4YWN0bHkgYXMgdGhlIGNhcmQgd2lsbC4gKi9cbi5jaGFsay1jb2RlLW1vZGFsLWlucHV0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMik7XG4gIC8qIE5vdCBgaW5oZXJpdGA6IHRoZSBVSSBmb250IGlzIGEgcGVyLWRldmljZSBwcmVmIGFuZCBjYW4gYmUgc2FucyBvclxuICAgICBzZXJpZiwgd2hpY2ggd291bGQgbWlzYWxpZ24gdGhlIHZlcnkgdGhpbmcgYmVpbmcgcGFzdGVkLiAqL1xuICBmb250LWZhbWlseTogdmFyKC0tY2hhbGstZm9udC1tb25vKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgdGFiLXNpemU6IDQ7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG4gIG92ZXJmbG93OiBhdXRvO1xuICByZXNpemU6IHZlcnRpY2FsO1xufVxuLmNoYWxrLWNvZGUtbW9kYWwtaW5wdXQ6Zm9jdXMge1xuICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tY2hhbGstZmcpO1xuICBvdXRsaW5lLW9mZnNldDogLTFweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldi0yKTtcbn1cbi5jaGFsay1jb2RlLW1vZGFsLW1ldGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogdmFyKC0tY2hhbGstczMpO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xufVxuLmNoYWxrLWNvZGUtbW9kYWwtbGFuZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbn1cbi5jaGFsay1jb2RlLW1vZGFsLWxhbmcgc2VsZWN0IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIHBhZGRpbmc6IDJweCB2YXIoLS1jaGFsay1zMik7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG59XG4uY2hhbGstY29kZS1tb2RhbC1jb3VudCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG59XG4uY2hhbGstY29kZS1tb2RhbC1jb3VudC0tb3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1lcnJvcik7XG59XG5cbi8qIC0tIDU3LTQ6IHJlY2VpdmVkIGxpbmstcHJldmlldyBjYXJkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogQnJlYWtzIG91dCBiZWxvdyB0aGUgYm9keSBsaWtlIGFuIGF0dGFjaG1lbnQuIFRoZSB3aG9sZSBjYXJkIGlzIG9uZVxuICAgYW5jaG9yIHRvIHRoZSByZWFsIGRlc3RpbmF0aW9uOyB0aGUgaG9zdCBsaW5lIGF0IHRoZSBib3R0b20gaXMgdGhlXG4gICB0cnVzdHdvcnRoeSBwYXJ0LCBzbyBpdCBzdGF5cyB2aXNpYmxlIGV2ZW4gb24gYSB0ZXh0LW9ubHkgY2FyZC4gKi9cbi5jaGFsay1tZXNzYWdlLWxpbmtwcmV2aWV3IHtcbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgbWFyZ2luLXRvcDogdmFyKC0tY2hhbGstczEpO1xuICBtaW4td2lkdGg6IDA7XG59XG4uY2hhbGstbGlua3ByZXZpZXctY2FyZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBtYXgtd2lkdGg6IDI4cmVtO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLWNoYWxrLWFjY2VudCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5jaGFsay1saW5rcHJldmlldy1jYXJkOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tY2hhbGstYWNjZW50KTtcbn1cbi5jaGFsay1saW5rcHJldmlldy10aHVtYiB7XG4gIHdpZHRoOiA0LjZlbTtcbiAgaGVpZ2h0OiA0LjZlbTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIGZsZXg6IG5vbmU7XG59XG4uY2hhbGstbGlua3ByZXZpZXctdGV4dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMC4xNWVtO1xuICBtaW4td2lkdGg6IDA7XG59XG4uY2hhbGstbGlua3ByZXZpZXctc2l0ZSB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xufVxuLmNoYWxrLWxpbmtwcmV2aWV3LXRpdGxlIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG59XG4uY2hhbGstbGlua3ByZXZpZXctZGVzYyB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmNoYWxrLWxpbmtwcmV2aWV3LWhvc3Qge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuODVlbTtcbn1cbi5jaGFsay1saW5rcHJldmlldy1jYXJkOmhvdmVyIC5jaGFsay1saW5rcHJldmlldy10aXRsZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4vKiAtLSA3NC0zOiByZWNlaXZlZCBjb2RlIGNhcmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIEJyZWFrcyBvdXQgYmVsb3cgdGhlIGJvZHkgbGlrZSB0aGUgb3RoZXIgcmljaCBibG9ja3MuIFRoZSBncmlkLWNvbHVtblxuICAgaGVyZSBpcyB0aGUgYmFzZTsgdGhlIGFsaWdubWVudCBydWxlcyBmdXJ0aGVyIGRvd24gbW92ZSBpdCB0byB0aGUgYm9keVxuICAgY29sdW1uIGFuZCBoYW5kbGUgdGhlIGNvbXBhY3QgLyBuby10aW1lIC8gbW9iaWxlIHZhcmlhbnRzLCBzYW1lIGFzIGZvclxuICAgZ2lwaHkgYW5kIGF0dGFjaG1lbnRzLiAqL1xuLmNoYWxrLW1lc3NhZ2UtY29kZSB7XG4gIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gIG1hcmdpbi10b3A6IHZhcigtLWNoYWxrLXMxKTtcbiAgbWluLXdpZHRoOiAwO1xufVxuLmNoYWxrLWNvZGVjYXJkIHtcbiAgbWF4LXdpZHRoOiA0NHJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgdmFyKC0tY2hhbGstYWNjZW50KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmNoYWxrLWNvZGVjYXJkLWhlYWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczEpIHZhcigtLWNoYWxrLXMyKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG59XG4uY2hhbGstY29kZWNhcmQtbGFuZyB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmNoYWxrLWNvZGVjYXJkLWxpbmVzIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbn1cbi5jaGFsay1jb2RlY2FyZC1jb3B5IHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZzogMnB4IHZhcigtLWNoYWxrLXMyKTtcbn1cbi5jaGFsay1jb2RlY2FyZC1jb3B5OmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xufVxuLyogVGhlIHNuaXBwZXQgaXRzZWxmLiBUd28gdGhpbmdzIGl0IG11c3QgTk9UIGluaGVyaXQ6IHRoZSBVSSBmb250IChhXG4gICBwZXItZGV2aWNlIHByZWYsIHdoaWNoIGNhbiBiZSBzYW5zIG9yIHNlcmlmIGFuZCB3b3VsZCBtaXNhbGlnbiBldmVyeVxuICAgY29sdW1uIHRoZSBzZW5kZXIgbGluZWQgdXApLCBhbmQgLmNoYWxrLW1lc3NhZ2UtYm9keSdzIHByZS13cmFwIChjb2RlXG4gICB0aGF0IHJld3JhcHMgYXQgdGhlIGNhcmQncyB3aWR0aCBpcyBub3QgdGhlIGNvZGUgdGhhdCB3YXMgcGFzdGVkKS4gSXRcbiAgIHNjcm9sbHMgc2lkZXdheXMgaW5zaWRlIHRoZSBjYXJkIGluc3RlYWQsIHNvIHRoZSBwYWdlIG5ldmVyIGRvZXMuICovXG4uY2hhbGstY29kZWNhcmQtYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpO1xuICBmb250LWZhbWlseTogdmFyKC0tY2hhbGstZm9udC1tb25vKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgdGFiLXNpemU6IDQ7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG4uY2hhbGstY29kZWNhcmQtYm9keS0tY2xpcHBlZCB7XG4gIG1heC1oZWlnaHQ6IDIxZW07XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cbi5jaGFsay1jb2RlY2FyZC1leHBhbmQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczEpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4uY2hhbGstY29kZWNhcmQtZXhwYW5kOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG59XG5cbi8qIC0tIDU3LTQ6IHNldHRpbmdzIGRvbWFpbiBlZGl0b3IgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmNoYWxrLWxpbmtwcmV2aWV3LWRvbWFpbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLWNoYWxrLXMxKTtcbn1cbi5jaGFsay1saW5rcHJldmlldy1kb21haW4tcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG59XG4uY2hhbGstbGlua3ByZXZpZXctZG9tYWluLXJvdy0tYWRkZWQge1xuICBwYWRkaW5nLWxlZnQ6IDEuNTVlbTsgLyogYWxpZ25zIHdpdGggdGhlIGNoZWNrYm94IHJvd3MgYWJvdmUgKi9cbn1cbi5jaGFsay1saW5rcHJldmlldy1kb21haW4tcmVtb3ZlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgcGFkZGluZzogMCAwLjJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4uY2hhbGstbGlua3ByZXZpZXctZG9tYWluLXJlbW92ZTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xufVxuLmNoYWxrLWxpbmtwcmV2aWV3LWRvbWFpbi1hZGQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgbWFyZ2luLXRvcDogdmFyKC0tY2hhbGstczEpO1xufVxuLmNoYWxrLWxpbmtwcmV2aWV3LWRvbWFpbi1hZGQgaW5wdXQge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG59XG4uY2hhbGstbGlua3ByZXZpZXctZG9tYWluLWlucHV0LS1lcnJvciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstZXJyb3IsICNjMzMpICFpbXBvcnRhbnQ7XG59XG5cbi8qIC0tIGF0dC0zOiBkcmFnLWRyb3AgYWZmb3JkYW5jZSArIHBlci1pdGVtIHVwbG9hZCBwcm9ncmVzcyAtLS0tLS0tLSAqL1xuLmNoYWxrLWNvbXBvc2VyLS1kcmFnLWFjdGl2ZSB7XG4gIG91dGxpbmU6IDFweCBkYXNoZWQgdmFyKC0tY2hhbGstZmcpO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbn1cbi5jaGFsay1jb21wb3Nlci1kcm9wLWhpbnQge1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMSkgdmFyKC0tY2hhbGstczIpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tY2hhbGstZmcpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xufVxuLmNoYWxrLWNvbXBvc2VyLWNoaXAtcHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA2ZW07XG4gIGhlaWdodDogNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uY2hhbGstY29tcG9zZXItY2hpcC1wcm9ncmVzcy1maWxsIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstZmcpO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjE1cyBsaW5lYXI7XG59XG5cbi8qIC0tIGF0dC0yOiBhdHRhY2htZW50cyBpbiB0aGUgbWVzc2FnZSBmZWVkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4uY2hhbGstbWVzc2FnZS1hdHRhY2htZW50cyB7XG4gIC8qIE9wdGlvbiBCOiB0aGUgaW1hZ2UgYmxvY2sgYnJlYWtzIG91dCB0byB0aGUgcm93J3MgbGVmdCBlZGdlICh1bmRlciB0aGVcbiAgICAgdGltZXN0YW1wKSBhbmQgc3BhbnMgdGhlIGZ1bGwgd2lkdGgsIHNvIG1lZGlhIHJlYWRzIGFzIGEgZGlzdGluY3QgYmxvY2sgYW5kXG4gICAgIHRoZSByZXBseSBpbmRpY2F0b3JzIGxpbmUgdXAgZGlyZWN0bHkgYmVuZWF0aCBpdC4gKi9cbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIG1hcmdpbi10b3A6IHZhcigtLWNoYWxrLXMxKTtcbiAgLyogQnJlYXRoaW5nIHJvb20gb24gdGhlIHJpZ2h0OiB0aGUgYmxvY2sgc3BhbnMgdGhlIGZ1bGwgcm93LCBzbyB3aXRob3V0XG4gICAgIHRoaXMgYSB3aWRlIGltYWdlIHNpdHMgZmx1c2ggYWdhaW5zdCB0aGUgcm93IGVkZ2UgYW5kIHVuZGVybGFwcyB0aGVcbiAgICAgaG92ZXIgcm93LWFjdGlvbnMgcGlubmVkIHRoZXJlLiAqL1xuICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jaGFsay1zNSk7XG59XG4vKiBnaXBoeS1sYXlvdXQ6IGEgZ2lwaHkgbWVzc2FnZSBicmVha3Mgb3V0IHRvIHRoZSByb3cncyBsZWZ0IGVkZ2UsIHNhbWUgYXMgYW5cbiAgIGF0dGFjaG1lbnQgaW1hZ2UgYmxvY2ssIGluc3RlYWQgb2Ygc2l0dGluZyBpbiB0aGUgbmFycm93IGJvZHkgY29sdW1uLiAqL1xuLmNoYWxrLW1lc3NhZ2UtZ2lwaHkge1xuICBncmlkLWNvbHVtbjogMSAvIC0xO1xufVxuLmNoYWxrLWF0dGFjaG1lbnQge1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xufVxuLmNoYWxrLWF0dGFjaG1lbnQtLWxvYWRpbmcsXG4uY2hhbGstYXR0YWNobWVudC0tbG9ja2VkIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMSkgdmFyKC0tY2hhbGstczIpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuLmNoYWxrLWF0dGFjaG1lbnQtaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIC8qIE5hdHVyYWwgc2l6ZSwgbmV2ZXIgdXBzY2FsZWQ6IHdpZHRoOmF1dG8gbWVhbnMgYSBzbWFsbCBvcmlnaW5hbCByZW5kZXJzIGF0XG4gICAgIGl0cyBvd24gc2l6ZS4gbWF4LXdpZHRoIGNhcHMgbGFyZ2Ugb3JpZ2luYWxzIGF0IDcyMHB4IE9SIHRoZSBhdmFpbGFibGVcbiAgICAgY29sdW1uIHdpZHRoLCB3aGljaGV2ZXIgaXMgc21hbGxlciAtLSBzbyBpdCBkb3duc2NhbGVzIHRvIGZpdCBhbmQgdHJhY2tzXG4gICAgIHdpbmRvdyByZXNpemVzICh0aGUgMTAwJSBpcyB0aGUgY29sdW1uKS4gaGVpZ2h0OmF1dG8ga2VlcHMgdGhlIGFzcGVjdC4gKi9cbiAgd2lkdGg6IGF1dG87XG4gIG1heC13aWR0aDogbWluKDcyMHB4LCAxMDAlKTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiA3MGR2aDtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgY3Vyc29yOiB6b29tLWluO1xufVxuLmNoYWxrLWF0dGFjaG1lbnQtaW1nLS1wcmV2aWV3IHtcbiAgZmlsdGVyOiBibHVyKDFweCk7XG59XG4uY2hhbGstYXR0YWNobWVudC1pbWctLWZ1bGwge1xuICBmaWx0ZXI6IG5vbmU7XG59XG4uY2hhbGstYXR0YWNobWVudC1pbWctLWV4cGFuZGVkIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiA4MGR2aDtcbiAgY3Vyc29yOiB6b29tLW91dDtcbn1cblxuLyogNjQtOTogaU9TIGxldHMgYSBmaW5nZXIgcGljayB1cCBhbmQgZHJhZyBhbiA8aW1nPiwgYW5kIHRoYXQgbmF0aXZlIGRyYWdcbiAgIHN0ZWFscyB0aGUgdG91Y2ggKHRvdWNoY2FuY2VsKSBtaWQtZ2VzdHVyZSAtLSBhIHN3aXBlLWJhY2sgdGhhdCBzdGFydGVkXG4gICBvbiBhIHBpY3R1cmUgbmF2aWdhdGVkIG5vd2hlcmUuIEZlZWQgbWVkaWEgaXMgbm90IGRyYWdnYWJsZS4gKi9cbi5jaGFsay1hdHRhY2htZW50LWltZyxcbi5jaGFsay1hdHRhY2htZW50LWxpZ2h0Ym94LWltZyxcbi5jaGFsay1naXBoeS1pbWcsXG4uY2hhbGstbGlua3ByZXZpZXctdGh1bWIge1xuICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTtcbn1cblxuLyogTGlnaHRib3g6IGNsaWNrIGFuIGltYWdlIHRvIHZpZXcgaXQgYXQgb3JpZ2luYWwgc2l6ZSBvbiBhIGRhcmsgYmFja2Ryb3AuICovXG4uY2hhbGstYXR0YWNobWVudC1saWdodGJveCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zNCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45Mik7XG4gIGN1cnNvcjogem9vbS1vdXQ7XG4gIC8qIDExMC0yOiBldmVyeSB0b3VjaCBvbiB0aGlzIHN1cmZhY2UgaXMgb3VycyAtLSBwaW5jaCwgcGFuLCBwYWdlLiBMZWF2aW5nXG4gICAgIHRoZSBicm93c2VyIGl0cyBkZWZhdWx0cyB3b3VsZCBsZXQgYSBwaW5jaCB6b29tIHRoZSB3aG9sZSBwYWdlIGFuZCBhXG4gICAgIGRyYWcgc2Nyb2xsIHRoZSBmZWVkIHVuZGVybmVhdGggaW5zdGVhZC4gKi9cbiAgdG91Y2gtYWN0aW9uOiBub25lO1xuICAvKiBBIHpvb21lZCBpbWFnZSBpcyBkZWxpYmVyYXRlbHkgYmlnZ2VyIHRoYW4gdGhlIHNjcmVlbjsgY2xpcCBpdCBoZXJlXG4gICAgIHJhdGhlciB0aGFuIGdyb3dpbmcgdGhlIGRvY3VtZW50IGFuZCBwcm9kdWNpbmcgc2Nyb2xsYmFycy4gKi9cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5jaGFsay1hdHRhY2htZW50LWxpZ2h0Ym94LWltZyB7XG4gIG1heC13aWR0aDogOTV2dztcbiAgLyogMTEwLTE6IGxlYXZlIHRoZSBjYXB0aW9uIGl0cyBvd24gYmFuZC4gQXQgOTV2aCB0aGUgcGljdHVyZSByYW4gdW5kZXIgaXRcbiAgICAgYW5kIHRoZSBjb3VudGVyIGFuZCBoaW50cyB3ZXJlIHVucmVhZGFibGUgb3ZlciB0aGUgaW1hZ2UuICovXG4gIG1heC1oZWlnaHQ6IGNhbGMoMTAwZHZoIC0gNXJlbSk7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG59XG4uY2hhbGstYXR0YWNobWVudC1saWdodGJveC1jYXB0aW9uIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiB2YXIoLS1jaGFsay1zMyk7XG4gIHotaW5kZXg6IDE7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4vKiAxMTAtMTogdGhlIHRleHQgc2l0cyBvbiBpdHMgb3duIGdyb3VuZCByYXRoZXIgdGhhbiBvbiB0aGUgcGljdHVyZS4gVGhlXG4gICBiYW5kIGh1Z3MgdGhlIHRleHQgaW5zdGVhZCBvZiBzcGFubmluZyB0aGUgc2NyZWVuLCBzbyBpdCBzdGF5cyBhIGNhcHRpb25cbiAgIGFuZCBub3QgYSB0b29sYmFyLiAqL1xuLmNoYWxrLWxpZ2h0Ym94LWNhcHRpb24taW5uZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1heC13aWR0aDogOTJ2dztcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczEpIHZhcigtLWNoYWxrLXMzKTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43NSk7XG59XG5cbi8qIC0tIDExMC0xOiB0aGUgZ2FsbGVyeSBsaWdodGJveCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiBUaGUgc3RhZ2UgaXMgd2hhdCBhIHN3aXBlIG1vdmVzLCBzbyB0aGUgaW1hZ2UgY2FuIHRyYXZlbCB3aGlsZSB0aGVcbiAgIGJhY2tkcm9wLCB0aGUgY2hyb21lIGFuZCB0aGUgZml4ZWQgY2FwdGlvbiBzdGF5IHB1dC4gU2FtZSBydWxlIGFzXG4gICAuY2hhbGstc3dpcGUteCBhYm92ZTogdGhlIHRyYW5zZm9ybSBvbmx5IGV4aXN0cyBtaWQtZ2VzdHVyZSwgYmVjYXVzZSBhXG4gICByZXN0aW5nIHRyYW5zbGF0ZVgoMCkgd291bGQgbWFrZSB0aGlzIGVsZW1lbnQgdGhlIGNvbnRhaW5pbmcgYmxvY2sgZm9yXG4gICBldmVyeSBwb3NpdGlvbjpmaXhlZCBkZXNjZW5kYW50LiAqL1xuLmNoYWxrLWxpZ2h0Ym94LXN0YWdlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogMTAwJTtcbn1cbi5jaGFsay1saWdodGJveC1zdGFnZS0tZHJhZ2dpbmcge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgodmFyKC0tY2hhbGstbGlnaHRib3gteCwgMHB4KSk7XG59XG4uY2hhbGstbGlnaHRib3gtc3RhZ2UtLXNldHRsaW5nIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE2MG1zIGVhc2Utb3V0O1xufVxuLyogVGhlIHNvZnQgaW5saW5lIHByZXZpZXcsIHN0YW5kaW5nIGluIHVudGlsIHRoZSBvcmlnaW5hbCBkZWNyeXB0cy4gSXQgaXNcbiAgIG1hcmtlZCBhcyBwcm92aXNpb25hbCByYXRoZXIgdGhhbiBwYXNzZWQgb2ZmIGFzIHRoZSBwaWN0dXJlIGl0c2VsZi4gKi9cbi5jaGFsay1hdHRhY2htZW50LWxpZ2h0Ym94LWltZy0tcHJldmlldyB7XG4gIGZpbHRlcjogYmx1cigycHgpO1xufVxuLmNoYWxrLWxpZ2h0Ym94LWxvYWRpbmcsXG4uY2hhbGstbGlnaHRib3gtbG9ja2VkIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczQpO1xufVxuXG4vKiBDaHJvbWUgc2l0cyBhYm92ZSB0aGUgYmFja2Ryb3AncyBjbGljay10by1jbG9zZSBhbmQgYmVsb3cgbm90aGluZyBlbHNlLlxuICAgNDRweCBpcyB0aGUgdGFwLXRhcmdldCBmbG9vciA2MC0xIHNldCBmb3IgZXZlcnkgY29udHJvbCBvbiBhIHBob25lLiAqL1xuLmNoYWxrLWxpZ2h0Ym94LWNsb3NlLFxuLmNoYWxrLWxpZ2h0Ym94LW5hdiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1pbi13aWR0aDogNDRweDtcbiAgbWluLWhlaWdodDogNDRweDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIC8qIE9wYXF1ZSBlbm91Z2ggdG8gcmVhZCBhcyBhIGNvbnRyb2wgb3ZlciBhIHdoaXRlIHNjcmVlbnNob3QsIHdoaWNoIGlzXG4gICAgIHdoYXQgbW9zdCBvZiB0aGVzZSBwaWN0dXJlcyBhcmUuICovXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43NSk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG4uY2hhbGstbGlnaHRib3gtY2xvc2U6aG92ZXI6bm90KDpkaXNhYmxlZCksXG4uY2hhbGstbGlnaHRib3gtbmF2OmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLmNoYWxrLWxpZ2h0Ym94LWNsb3NlOmRpc2FibGVkLFxuLmNoYWxrLWxpZ2h0Ym94LW5hdjpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuMjU7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi5jaGFsay1saWdodGJveC1jbG9zZSB7XG4gIHRvcDogdmFyKC0tY2hhbGstczMpO1xuICByaWdodDogdmFyKC0tY2hhbGstczMpO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtYm9keSk7XG59XG4uY2hhbGstbGlnaHRib3gtbmF2IHtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgLyogVGhlIGdseXBocyBhcmUgc2luZ2xlIGNoZXZyb25zOyB0aGV5IG5lZWQgdGhlIHNpemUgdG8gcmVhZCBhcyBjb250cm9scy4gKi9cbiAgZm9udC1zaXplOiAycmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC4yZW07XG59XG4uY2hhbGstbGlnaHRib3gtbmF2LS1wcmV2IHtcbiAgbGVmdDogdmFyKC0tY2hhbGstczMpO1xufVxuLmNoYWxrLWxpZ2h0Ym94LW5hdi0tbmV4dCB7XG4gIHJpZ2h0OiB2YXIoLS1jaGFsay1zMyk7XG59XG4vKiBPbiBhIHBob25lIHRoZSBzd2lwZSBpcyB0aGUgZ2VzdHVyZSwgYW5kIHR3byA0NHB4IGNpcmNsZXMgcGFya2VkIG92ZXIgYVxuICAgMzcwcHgtd2lkZSBwaWN0dXJlIGNvc3QgbW9yZSB0aGFuIHRoZXkgZ2l2ZS4gVGhlIGNvdW50ZXIgc3RpbGwgc2F5cyB0aGVyZVxuICAgaXMgbW9yZSB0aGFuIG9uZS4gVGhlIFx1MjcxNSBzdGF5czogc3dpcGluZyByaWdodCBvbmx5IGxlYXZlcyBmcm9tIHRoZSBmaXJzdFxuICAgaW1hZ2UsIHNvIHRoZXJlIGhhcyB0byBiZSBhIHdheSBvdXQgZnJvbSBldmVyeSBvdGhlciBvbmUuICovXG5AbWVkaWEgKGhvdmVyOiBub25lKSwgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmNoYWxrLWxpZ2h0Ym94LW5hdiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmNoYWxrLWxpZ2h0Ym94LWNvdW50ZXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tY2hhbGstczIpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xufVxuXG4vKiAtLSAxMTAtMjogem9vbSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogVGhlIHBpY3R1cmUgaXMgdGhlIG9uZSB0aGluZyB0aGUgYmFja2Ryb3AncyBjbGljay10by1jbG9zZSBkb2Vzbid0IGNvdmVyLFxuICAgc28gc2F5IHdoYXQgaXQgZG9lcyBpbnN0ZWFkOiBtYWduaWZ5LCB0aGVuIG1vdmUuICovXG4uY2hhbGstYXR0YWNobWVudC1saWdodGJveC1pbWcge1xuICBjdXJzb3I6IHpvb20taW47XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG59XG4vKiAxMjEtMjogYSB2aWRlbyBpbiB0aGUgZ2FsbGVyeS4gRml0dGVkIGxpa2UgdGhlIHBpY3R1cmUsIG5ldmVyIHpvb21lZDsgdGhlXG4gICBicm93c2VyJ3Mgb3duIGNvbnRyb2xzIGRvIHRoZSByZXN0LiAqL1xuLmNoYWxrLWF0dGFjaG1lbnQtbGlnaHRib3gtdmlkZW8ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiA5NXZ3O1xuICBtYXgtaGVpZ2h0OiBjYWxjKDEwMGR2aCAtIDVyZW0pO1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBvdXRsaW5lOiBub25lO1xufVxuLmNoYWxrLWxpZ2h0Ym94LXZpZGVvLXBvc3RlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDA7XG59XG4uY2hhbGstbGlnaHRib3gtbG9hZGluZy0tb3ZlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKSB2YXIoLS1jaGFsay1zMyk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbn1cbi5jaGFsay1hdHRhY2htZW50LWxpZ2h0Ym94LS16b29tZWQgLmNoYWxrLWF0dGFjaG1lbnQtbGlnaHRib3gtaW1nIHtcbiAgY3Vyc29yOiBncmFiO1xufVxuLmNoYWxrLWF0dGFjaG1lbnQtbGlnaHRib3gtLXpvb21lZCAuY2hhbGstYXR0YWNobWVudC1saWdodGJveC1pbWc6YWN0aXZlIHtcbiAgY3Vyc29yOiBncmFiYmluZztcbn1cblxuLmNoYWxrLWF0dGFjaG1lbnQtaW1nLXBsYWNlaG9sZGVyIHtcbiAgLyogMzMtNTogYXNwZWN0LXJhdGlvIHJhdGhlciB0aGFuIGEgZml4ZWQgaGVpZ2h0LCBzbyB0aGUgaW5saW5lIGJveCB0aGVcbiAgICAgY29tcG9uZW50IGNvbXB1dGVzIGZyb20gdGhlIHJlYWwgaW1hZ2UgZGltZW5zaW9ucyBjYW4gb3ZlcnJpZGUgaXQuIEFcbiAgICAgbGl0ZXJhbCBgaGVpZ2h0YCB3b3VsZCB3aW4gb3ZlciBhbiBpbmxpbmUgYXNwZWN0LXJhdGlvIGFuZCB0aGVcbiAgICAgcGxhY2Vob2xkZXIgd291bGQga2VlcCBpdHMgMTIwcHgsIHJlaW50cm9kdWNpbmcgdGhlIGp1bXAuIFRoZXNlXG4gICAgIGRlZmF1bHRzIHN0aWxsIHJlc29sdmUgdG8gdGhlIHByZXZpb3VzIDIwMHgxMjAgd2hlbiB0aGUgc2VuZGVyJ3NcbiAgICAgY2xpZW50IHJlY29yZGVkIG5vIGRpbWVuc2lvbnMuICovXG4gIHdpZHRoOiAyMDBweDtcbiAgYXNwZWN0LXJhdGlvOiA1IC8gMztcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG59XG4vKiAtLSAxMDEtMTogdGlsZSBncmlkIGZvciBtdWx0aS1pbWFnZSBtZXNzYWdlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogVHdvIGNvbHVtbnMgb2Ygc3F1YXJlIGNvdmVyLWNyb3BzLCBXaGF0c0FwcC1zdHlsZS4gVGhlIGdyaWQgY2FwcyBpdHMgb3duXG4gICB3aWR0aCB3ZWxsIHVuZGVyIHRoZSBzaW5nbGUtaW1hZ2UgNzIwcHg6IGNyb3BzIGFyZSBnbGFuY2VhYmxlIHRodW1ibmFpbHMsXG4gICB0aGUgbGlnaHRib3ggaXMgd2hlcmUgYSBwaWN0dXJlIGdldHMgc2VlbiBwcm9wZXJseS4gKi9cbi5jaGFsay1hdHRhY2htZW50LWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gIGdhcDogdmFyKC0tY2hhbGstczEpO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiBtaW4oNDgwcHgsIDEwMCUpO1xufVxuLmNoYWxrLWF0dGFjaG1lbnQtdGlsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbn1cbi8qIE9kZCB0aWxlIGNvdW50OiB0aGUgZmlyc3Qgc3BhbnMgYm90aCBjb2x1bW5zIGF0IDI6MSAoMyByZWFkcyBhc1xuICAgYmlnLXBsdXMtcGFpciwgNSBhcyBiaWctcGx1cy0yeDIpIHNvIG5vIHJvdyBpcyBsZWZ0IHJhZ2dlZC4gKi9cbi5jaGFsay1hdHRhY2htZW50LWdyaWQtLXdpZGVmaXJzdCAuY2hhbGstYXR0YWNobWVudC10aWxlOmZpcnN0LWNoaWxkIHtcbiAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgYXNwZWN0LXJhdGlvOiAyIC8gMTtcbn1cbi8qIEluc2lkZSBhIHRpbGUgZXZlcnkgc3RhdGUgZmlsbHMgdGhlIGNlbGw7IGltYWdlcyBjcm9wIHRvIGNvdmVyLiBUaGVcbiAgIGNvbXBvbmVudCBkcm9wcyBpdHMgaW5saW5lIG5hdHVyYWwtc2l6ZSBzdHlsZSBpbiB0aWxlIG1vZGUsIHNvIHRoZXNlXG4gICBkZXNjZW5kYW50IHJ1bGVzIG93biB0aGUgYm94LiAqL1xuLmNoYWxrLWF0dGFjaG1lbnQtdGlsZSAuY2hhbGstYXR0YWNobWVudCxcbi5jaGFsay1hdHRhY2htZW50LXRpbGUgLmNoYWxrLWF0dGFjaG1lbnQtLWltYWdlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5jaGFsay1hdHRhY2htZW50LXRpbGUgLmNoYWxrLWF0dGFjaG1lbnQtaW1nLFxuLmNoYWxrLWF0dGFjaG1lbnQtdGlsZSAuY2hhbGstYXR0YWNobWVudC1pbWctcGxhY2Vob2xkZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xufVxuLmNoYWxrLWF0dGFjaG1lbnQtdGlsZSAuY2hhbGstYXR0YWNobWVudC0tbG9hZGluZyxcbi5jaGFsay1hdHRhY2htZW50LXRpbGUgLmNoYWxrLWF0dGFjaG1lbnQtLWxvY2tlZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4vKiBcIitOXCIgb3ZlcmxheSBvbiB0aGUgbGFzdCBjb2xsYXBzZWQgdGlsZTsgY2xpY2tpbmcgZXhwYW5kcyB0aGUgZ3JpZC4gKi9cbi5jaGFsay1hdHRhY2htZW50LXRpbGUtbW9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQ6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNTUpO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXRpdGxlKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY2hhbGstYXR0YWNobWVudC10aWxlLW1vcmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNjUpO1xufVxuXG4vKiAtLSAxMjEtMTogdmlkZW8gLS0gYSBwb3N0ZXIgd2l0aCBhIHBsYXkgYmFkZ2UsIHRoZW4gdGhlIHBsYXllciAtLS0tLS0gKi9cbi8qIFRoZSBib3ggaXMgc2l6ZWQgYnkgdGhlIGNvbXBvbmVudCBmcm9tIHRoZSBwb3N0ZXIncyByZWNvcmRlZCBkaW1lbnNpb25zXG4gICAodGhlIDMzLTUgcnVsZSksIHNvIHBvc3Rlciwgc3Bpbm5lciBhbmQgcGxheWVyIGFsbCBzaGFyZSBvbmUgZm9vdHByaW50XG4gICBhbmQgdGhlIHN3YXAgYmV0d2VlbiB0aGVtIG1vdmVzIG5vdGhpbmcuICovXG4uY2hhbGstYXR0YWNobWVudC0tdmlkZW8taW5saW5lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4uY2hhbGstYXR0YWNobWVudC12aWRlby1ib3gge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBsaW5lLWhlaWdodDogMDtcbn1cbi5jaGFsay1hdHRhY2htZW50LXZpZGVvLXBvc3RlciB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5jaGFsay1hdHRhY2htZW50LXZpZGVvLWJveCAuY2hhbGstYXR0YWNobWVudC12aWRlby1wb3N0ZXIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBmaWx0ZXI6IG5vbmU7XG59XG4uY2hhbGstYXR0YWNobWVudC12aWRlbyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBtYXgtd2lkdGg6IG1pbig3MjBweCwgMTAwJSk7XG4gIG1heC1oZWlnaHQ6IDcwZHZoO1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xufVxuLmNoYWxrLWF0dGFjaG1lbnQtdmlkZW8tcGxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgd2lkdGg6IDMuMmVtO1xuICBoZWlnaHQ6IDMuMmVtO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDA7XG4gIHBhZGRpbmctbGVmdDogMC4yZW07IC8qIHRoZSBnbHlwaCBzaXRzIGxlZnQgb2YgY2VudHJlIGluIG1vc3QgZm9udHMgKi9cbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLWJhc2UpO1xuICBsaW5lLWhlaWdodDogMTtcbiAgYm9yZGVyOiAycHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY2hhbGstYXR0YWNobWVudC12aWRlby1wbGF5OmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xufVxuLmNoYWxrLWF0dGFjaG1lbnQtdmlkZW8tcGxheS0tbG9hZGluZyB7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgY3Vyc29yOiBwcm9ncmVzcztcbn1cbi5jaGFsay1hdHRhY2htZW50LXZpZGVvLXBsYXkgLmNoYWxrLWF0dGFjaG1lbnQtc3Bpbm5lciB7XG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KTtcbiAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZjtcbn1cbi5jaGFsay1hdHRhY2htZW50LXZpZGVvLWR1cmF0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogdmFyKC0tY2hhbGstczIpO1xuICBib3R0b206IHZhcigtLWNoYWxrLXMyKTtcbiAgcGFkZGluZzogMCB2YXIoLS1jaGFsay1zMSk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42NSk7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5jaGFsay1hdHRhY2htZW50LXZpZGVvLXVucGxheWFibGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBsaW5lLWhlaWdodDogMS4zO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG59XG4uY2hhbGstYXR0YWNobWVudC12aWRlby1jYXB0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIG1hcmdpbi10b3A6IHZhcigtLWNoYWxrLXMxKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbn1cbi8qIEluIGEgdGlsZSB0aGUgcG9zdGVyIGNvdmVyLWNyb3BzIGxpa2UgYSBwaWN0dXJlIGFuZCB0aGUgYmFkZ2UgbWFya3MgaXQgYXNcbiAgIHNvbWV0aGluZyBlbHNlOyB0aGUgY2FwdGlvbiBpcyBub3QgcmVuZGVyZWQgdGhlcmUuICovXG4uY2hhbGstYXR0YWNobWVudC10aWxlIC5jaGFsay1hdHRhY2htZW50LS12aWRlbyxcbi5jaGFsay1hdHRhY2htZW50LXRpbGUgLmNoYWxrLWF0dGFjaG1lbnQtdmlkZW8tYm94IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbn1cbi5jaGFsay1hdHRhY2htZW50LXRpbGUgLmNoYWxrLWF0dGFjaG1lbnQtdmlkZW8tcG9zdGVyIHtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgbWF4LWhlaWdodDogbm9uZTtcbn1cblxuLmNoYWxrLWF0dGFjaG1lbnQtLWZpbGUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKSB2YXIoLS1jaGFsay1zMyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xufVxuLmNoYWxrLWF0dGFjaG1lbnQtZmlsZS1pY29uIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbn1cbi5jaGFsay1hdHRhY2htZW50LWZpbGUtbmFtZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBtYXgtd2lkdGg6IDE4ZW07XG59XG4uY2hhbGstYXR0YWNobWVudC1maWxlLXNpemUge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xufVxuLmNoYWxrLWF0dGFjaG1lbnQtZG93bmxvYWQge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstZmcpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgcGFkZGluZzogMCB2YXIoLS1jaGFsay1zMik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5jaGFsay1hdHRhY2htZW50LWRvd25sb2FkOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstZmcpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstYmcpO1xufVxuLmNoYWxrLWF0dGFjaG1lbnQtZG93bmxvYWQ6ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi8qIC0tIEVycm9ycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jaGFsay1lcnJvcnMge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1jaGFsay1zMik7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKSB2YXIoLS1jaGFsay1zMyk7XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgdmFyKC0tY2hhbGstZXJyb3IpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbn1cblxuLmNoYWxrLWVycm9yLWNvZGUge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZXJyb3IpO1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNoYWxrLXMyKTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFBoYXNlIDA4Yjogc2lkZWJhciwgY2hhbm5lbCBoZWFkZXIsIG1vZGFsLCBmcmllbmQgcGlja2VyLCBidXR0b25zICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiAtLSBTaWRlYmFyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmNoYWxrLXNpZGViYXIge1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMykgMDtcbiAgbWluLWhlaWdodDogMDsgLyogYWxsb3cgaW5uZXIgb3ZlcmZsb3cgdG8gc2Nyb2xsICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIC8qIDMzLTQ6IGFuY2hvciBmb3IgdGhlIGFic29sdXRlbHktcG9zaXRpb25lZCByZXNpemUgaGFuZGxlLiAqL1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGhhc2UgMzMtNDogc2lkZWJhciByZXNpemUgaGFuZGxlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogQW4gaW52aXNpYmxlIDhweC13aWRlIGdyYWIgc3RyaXAgc3RyYWRkbGluZyB0aGUgc2lkZWJhcidzIHJpZ2h0IGJvcmRlci5cbiAgIEl0IHNpdHMgb3V0c2lkZSB0aGUgcGFkZGluZyBib3ggKHJpZ2h0OiAtNHB4KSBzbyB0aGUgY3Vyc29yIHRhcmdldFxuICAgY292ZXJzIHRoZSBib3JkZXIgbGluZSBpdHNlbGYsIHdoaWNoIGlzIHdoYXQgcGVvcGxlIGFpbSBhdC4gKi9cbi5jaGFsay1zaWRlYmFyLXJlc2l6ZXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICByaWdodDogLTRweDtcbiAgd2lkdGg6IDhweDtcbiAgY3Vyc29yOiBjb2wtcmVzaXplO1xuICAvKiBBYm92ZSB0aGUgc2lkZWJhcidzIG93biBjb250ZW50IHNvIGEgY2hhbm5lbCByb3cgY2FuJ3Qgc3dhbGxvdyB0aGVcbiAgICAgZ3JhYiwgYnV0IGJlbG93IG1vZGFscyBhbmQgdGhlIHZvaWNlIGRvY2sncyBjb250cm9scy4gKi9cbiAgei1pbmRleDogNTtcbiAgLyogVGhlIHZpc2libGUgYWZmb3JkYW5jZSBpcyBhIDJweCBsaW5lIGRyYXduIGluc2lkZSB0aGUgc3RyaXAsIHNob3duXG4gICAgIG9ubHkgb24gaG92ZXIvZm9jdXMgc28gdGhlIHJlc3Rpbmcgc2lkZWJhciBrZWVwcyBpdHMgY2xlYW4gZWRnZS4gKi9cbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIHRvIHJpZ2h0LFxuICAgIHRyYW5zcGFyZW50IDNweCxcbiAgICB2YXIoLS1jaGFsay1mZy1icmlnaHQpIDNweCxcbiAgICB2YXIoLS1jaGFsay1mZy1icmlnaHQpIDVweCxcbiAgICB0cmFuc3BhcmVudCA1cHhcbiAgKTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAxMjBtcyBlYXNlO1xuICAvKiBTdG9wIGEgZHJhZyBmcm9tIHNlbGVjdGluZyBzaWRlYmFyIHRleHQgb3Iga2lja2luZyBvZmYgYSBuYXRpdmVcbiAgICAgdG91Y2ggc2Nyb2xsLiAqL1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uY2hhbGstc2lkZWJhci1yZXNpemVyOmhvdmVyLFxuLmNoYWxrLXNpZGViYXItcmVzaXplcjpmb2N1cy12aXNpYmxlIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmNoYWxrLXNpZGViYXItcmVzaXplcjpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogbm9uZTsgLyogdGhlIGhpZ2hsaWdodGVkIGxpbmUgSVMgdGhlIGZvY3VzIGluZGljYXRvciAqL1xufVxuXG4vKiBXaGlsZSBkcmFnZ2luZywgdGhlIHBvaW50ZXIgcm91dGluZWx5IGxlYXZlcyB0aGUgOHB4IHN0cmlwLiBQaW5uaW5nIHRoZVxuICAgY3Vyc29yIGFuZCBraWxsaW5nIHNlbGVjdGlvbiBkb2N1bWVudC13aWRlIGtlZXBzIHRoZSBnZXN0dXJlIGZyb21cbiAgIGxvb2tpbmcgYnJva2VuIGhhbGZ3YXkgYWNyb3NzIHRoZSBtZXNzYWdlIGxpc3QuICovXG5ib2R5LmNoYWxrLXJlc2l6aW5nIHtcbiAgY3Vyc29yOiBjb2wtcmVzaXplO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuYm9keS5jaGFsay1yZXNpemluZyAuY2hhbGstc2lkZWJhci1yZXNpemVyIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmNoYWxrLXNpZGViYXItcmVzaXplciB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFBoYXNlIDkxLTE6IGNvbXBvc2VyIHJlc2l6ZSBoYW5kbGVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiBUaGUgc2FtZSBpbnZpc2libGUgZ3JhYiBzdHJpcCBhcyB0aGUgc2lkZWJhcidzLCB0dXJuZWQgdGhyb3VnaCA5MCBkZWdyZWVzXG4gICBhbmQgc3RyYWRkbGluZyB0aGUgZm9vdGVyJ3MgdG9wIGJvcmRlciAtLSB0aGUgbGluZSBwZW9wbGUgYWxyZWFkeSByZWFkIGFzXG4gICB0aGUgYm91bmRhcnkgYmV0d2VlbiB3aGF0IHRoZXkgYXJlIHJlYWRpbmcgYW5kIHdoYXQgdGhleSBhcmUgd3JpdGluZy4gKi9cbi5jaGFsay1jb21wb3Nlci1yZXNpemVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgdG9wOiAtNHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgY3Vyc29yOiBucy1yZXNpemU7XG4gIHotaW5kZXg6IDU7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICB0byBib3R0b20sXG4gICAgdHJhbnNwYXJlbnQgM3B4LFxuICAgIHZhcigtLWNoYWxrLWZnLWJyaWdodCkgM3B4LFxuICAgIHZhcigtLWNoYWxrLWZnLWJyaWdodCkgNXB4LFxuICAgIHRyYW5zcGFyZW50IDVweFxuICApO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDEyMG1zIGVhc2U7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5jaGFsay1jb21wb3Nlci1yZXNpemVyOmhvdmVyLFxuLmNoYWxrLWNvbXBvc2VyLXJlc2l6ZXI6Zm9jdXMtdmlzaWJsZSB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5jaGFsay1jb21wb3Nlci1yZXNpemVyOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiBub25lOyAvKiB0aGUgaGlnaGxpZ2h0ZWQgbGluZSBJUyB0aGUgZm9jdXMgaW5kaWNhdG9yICovXG59XG5cbmJvZHkuY2hhbGstcmVzaXppbmcteSB7XG4gIGN1cnNvcjogbnMtcmVzaXplO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuYm9keS5jaGFsay1yZXNpemluZy15IC5jaGFsay1jb21wb3Nlci1yZXNpemVyIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmNoYWxrLWNvbXBvc2VyLXJlc2l6ZXIge1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gIH1cbn1cblxuLyogVGhlIHdpZHRoIHNsaWRlciBpbiBwcm9maWxlID4gZGlzcGxheSBzZXR0aW5ncy4gYWNjZW50LWNvbG9yIGlzIGVub3VnaCB0b1xuICAgcHVsbCB0aGUgbmF0aXZlIGNvbnRyb2wgaW50byB0aGUgdGhlbWUgd2l0aG91dCByZWJ1aWxkaW5nIHRodW1iIGFuZCB0cmFja1xuICAgcGVyIGJyb3dzZXIgZW5naW5lLiAqL1xuLmNoYWxrLXByb2ZpbGUtcmFuZ2Uge1xuICB3aWR0aDogMTAwJTtcbiAgYWNjZW50LWNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGhhc2UgMzMtNDogdW5yZWFkIGRpdmlkZXIgKyBoaWdobGlnaHRlZCByb3dzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogVGhlIFwibmV3IG1lc3NhZ2VzXCIgcnVsZSwgYSBkaXJlY3QgZmxleCBjaGlsZCBvZiAuY2hhbGstbWVzc2FnZXMgKHRoZVxuICAgbWVzc2FnZSBncm91cCBhYm92ZSBpdCBpcyBkaXNwbGF5OmNvbnRlbnRzLCBzbyBpdCBkb2Vzbid0IGJveCB1cyBpbikuICovXG4uY2hhbGstdW5yZWFkLWRpdmlkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgbWFyZ2luOiB2YXIoLS1jaGFsay1zMSkgMDtcbiAgLyogNzktMTogdGhlIGxhbmRpbmcgc2Nyb2xsIHBvc2l0aW9ucyB0aGlzIGJ5IGhhbmQgcmF0aGVyIHRoYW4gdGhyb3VnaFxuICAgICBzY3JvbGxJbnRvVmlldywgYmVjYXVzZSB0aGUgb2Zmc2V0IGl0IG5lZWRzIGlzIHRoZSBoZWlnaHQgb2YgdGhlIHN0aWNreVxuICAgICBjaGFubmVsIGhlYWRlciBhYm92ZSBpdCAtLSBzZWUgZGl2aWRlclNjcm9sbERlbHRhIGluIGNoYXQvaGlzdG9yeS1wYWdpbmcudHMuXG4gICAgIEEgc2Nyb2xsLW1hcmdpbi10b3AgaGVyZSB3b3VsZCBiZSBkZWFkIHdlaWdodCwgYW5kIGEgc2Vjb25kIG51bWJlciB0byBrZWVwXG4gICAgIGluIHN0ZXAgd2l0aCB0aGF0IG9uZS4gKi9cbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5jaGFsay11bnJlYWQtZGl2aWRlcjo6YmVmb3JlLFxuLmNoYWxrLXVucmVhZC1kaXZpZGVyOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xuICBvcGFjaXR5OiAwLjU1O1xufVxuXG4vKiBTaG9ydCBsZWFkLWluLCB0aGVuIHRoZSBsYWJlbCwgdGhlbiB0aGUgcnVsZSBydW5zIHRvIHRoZSByaWdodCBlZGdlIC0tXG4gICByZWFkcyBhcyBhIHNlY3Rpb24gbWFya2VyIHJhdGhlciB0aGFuIGEgY2VudHJlZCBiYW5uZXIuICovXG4uY2hhbGstdW5yZWFkLWRpdmlkZXI6OmJlZm9yZSB7XG4gIGZsZXg6IDAgMCB2YXIoLS1jaGFsay1zNCk7XG59XG4uY2hhbGstdW5yZWFkLWRpdmlkZXI6OmFmdGVyIHtcbiAgZmxleDogMSAxIGF1dG87XG59XG5cbi5jaGFsay11bnJlYWQtZGl2aWRlci1sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFBoYXNlIDExMzogZGF5IG1hcmtzIFx1MjAxNCB3aGljaCBkYXkgYW0gSSByZWFkaW5nP1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIFRoZSBzYW1lIHNoYXBlIGFzIHRoZSB1bnJlYWQgZGl2aWRlciAoc2hvcnQgbGVhZC1pbiwgbGFiZWwsIHJ1bGUgdG8gdGhlXG4gICByaWdodCBlZGdlKSBpbiB0aGUgYm9yZGVyIGNvbG91ciByYXRoZXIgdGhhbiB0aGUgYWNjZW50OiB0aGlzIGlzIGFcbiAgIHN0cnVjdHVyYWwgbWFya2VyLCBub3QgYW4gZXZlbnQsIGFuZCBpdCBtdXN0IG5vdCBjb21wZXRlIHdpdGggXCJuZXdcbiAgIG1lc3NhZ2VzXCIgd2hlcmUgdGhlIHR3byBsYW5kIG9uIHRoZSBzYW1lIHJvdy4gKi9cbi5jaGFsay1kYXktZGl2aWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLyogMTEzLTI6IHBpbm5lZCwgc28gYSByZWFkZXIgcGFya2VkIGluIHRoZSBtaWRkbGUgb2YgYSBsb25nIGRheSBzdGlsbCBzZWVzXG4gICAgIHdoaWNoIGRheSBpdCBpcy4gVGhlIG9mZnNldCBpcyB3cml0dGVuIGJ5IE1lc3NhZ2VMaXN0IGZyb20gcGlubmVkQm90dG9tXG4gICAgIG92ZXIgdGhlIHNjcm9sbGVyJ3Mgc3RpY2t5IGNoaWxkcmVuIC0tIHRoZSBjaGFubmVsIGhlYWRlcidzIGhlaWdodCBpcyBub3RcbiAgICAgYSBjb25zdGFudCBzaW5jZSAxMTEgcHV0IGEgYmFubmVyIGluc2lkZSBpdCAtLSBhbmQgZGVmYXVsdHMgdG8gMCBmb3IgdGhlXG4gICAgIHBhbmVzIHdpdGggbm90aGluZyBwaW5uZWQgb3ZlciB0aGVtICh0aHJlYWQgcGFuZWwsIHZvaWNlIHNjcmF0Y2hwYWQpLiAqL1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IHZhcigtLWNoYWxrLWRheW1hcmstdG9wLCAwcHgpO1xuICAvKiBBQk9WRSB0aGUgY2hhbm5lbCBoZWFkZXIncyB6LWluZGV4LCB3aGljaCBsb29rcyB3cm9uZyBhbmQgaXNuJ3Q6IHRoZSB0d29cbiAgICAgYm94ZXMgbmV2ZXIgb3ZlcmxhcCAodGhlIG1hcmsncyB0b3AgZWRnZSBJUyB0aGUgaGVhZGVyJ3MgYm90dG9tIGVkZ2UsIGJ5XG4gICAgIG1lYXN1cmVtZW50KSwgYnV0IHRoZSBoZWFkZXIgcGFpbnRzIGEgYmFja2dyb3VuZC1jb2xvdXJlZCBzdHJpcCBzMyB0YWxsXG4gICAgIEJFTE9XIGl0c2VsZiB0byBoaWRlIHRoZSBmZWVkIGluIGl0cyBvd24gbWFyZ2luIGdhcC4gQXQgYSBsb3dlciB6LWluZGV4XG4gICAgIHRoZSBzdHVjayBtYXJrIHNhdCB1bmRlciB0aGF0IHN0cmlwIGFuZCBhbGwgYnV0IH40cHggb2YgaXQgLS0gaXRzIGxhYmVsXG4gICAgIGluY2x1ZGVkIC0tIHdhcyBwYWludGVkIG91dCwgc28gaXQgcmVhZCBhcyBubyBtYXJrIGF0IGFsbC4gKi9cbiAgei1pbmRleDogNjtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmcpO1xuICAvKiBUaGUgZmVlZCBpcyBhIGZsZXggY29sdW1uIHdpdGggYSBnYXA7IHdoaWxlIHN0dWNrLCBhIGNsaXBwZWQgbGluZSBvZiB0aGVcbiAgICAgcm93IGJlbG93IHNob3dlZCB0aHJvdWdoIHRoYXQgZ2FwIHVuZGVyIHRoZSBtYXJrLiBTYW1lIG9mZnNldC1zaGFkb3cgdHJpY2tcbiAgICAgdGhlIGNoYW5uZWwgaGVhZGVyIHVzZXMgZm9yIGl0cyBvd24gbWFyZ2luLiBUaGUgb2Zmc2V0IGlzIHRoZSBmZWVkJ3MgT1dOXG4gICAgIGdhcCB0b2tlbiwgbm90IGEgc3BhY2luZyBjb25zdGFudDogdGhpcyBzaGlwcGVkIGFzIGEgZml4ZWQgczIgYW5kIGNvbXBhY3RcbiAgICAgbW9kZSdzIGdhcCBpcyAxcHgsIHNvIHRoZSBzdHJpcCBwYWludGVkIDdweCBpbnRvIHRoZSB0b3Agb2YgZXZlcnkgcm93XG4gICAgIHVuZGVyIGFuIGluLWZsb3cgbWFyayBhbmQgY2xpcHBlZCBpdHMgZmlyc3QgbGluZS4gKi9cbiAgYm94LXNoYWRvdzogMCB2YXIoLS1jaGFsay1tc2ctZ2FwKSB2YXIoLS1jaGFsay1iZyk7XG4gIC8qIDExMy0yOiBOT1QgY29zbWV0aWMuIDc5LTQncyBrZWVwLWFuY2hvciBmaW5kcyB0aGUgcm93IHRoZSByZWFkZXIgaXNcbiAgICAgaG9sZGluZyB3aXRoIGVsZW1lbnRGcm9tUG9pbnQganVzdCBiZWxvdyB0aGUgcGlubmVkIGluc2V0IC0tIGV4YWN0bHkgd2hlcmVcbiAgICAgdGhpcyBzaXRzIG9uY2Ugc3R1Y2sgLS0gYW5kIGEgaGl0IGhlcmUgcmV0dXJucyBubyByb3csIHdoaWNoIHdvdWxkIHF1aWV0bHlcbiAgICAgc3dpdGNoIG9mZiB0aGUgY29ycmVjdGlvbiB0aGF0IGtlZXBzIGxhdGUtbG9hZGluZyBpbWFnZXMgZnJvbSBzaG92aW5nIHRoZVxuICAgICByZWFkZXIgYXJvdW5kLiBBIGxhYmVsIHdpdGggbm90aGluZyB0byBjbGljayBnaXZlcyB1cCBub3RoaW5nIGJ5IGJlaW5nXG4gICAgIHRyYW5zcGFyZW50IHRvIGhpdC10ZXN0aW5nLiAqL1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmNoYWxrLWRheS1kaXZpZGVyOjpiZWZvcmUsXG4uY2hhbGstZGF5LWRpdmlkZXI6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJvcmRlcik7XG59XG5cbi5jaGFsay1kYXktZGl2aWRlcjo6YmVmb3JlIHtcbiAgZmxleDogMCAwIHZhcigtLWNoYWxrLXM0KTtcbn1cbi5jaGFsay1kYXktZGl2aWRlcjo6YWZ0ZXIge1xuICBmbGV4OiAxIDEgYXV0bztcbn1cblxuLmNoYWxrLWRheS1kaXZpZGVyLWxhYmVsIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLyogUm93cyB0aGF0IHdlcmUgdW5yZWFkIG9uIGFycml2YWwuIEEgdGludCByYXRoZXIgdGhhbiBhIHdlaWdodCBvciBjb2xvclxuICAgY2hhbmdlLCBiZWNhdXNlIHdlaWdodCBhbmQgY29sb3IgYXJlIGFscmVhZHkgY2FycnlpbmcgbmljayBpZGVudGl0eSBhbmRcbiAgIHRoZSBtZW50aW9uIGNoaXAgLS0gYSBmb3VydGggc2lnbmFsIGluIHRoYXQgc3BhY2Ugd291bGQganVzdCBiZSBub2lzZS5cbiAgIFNpdHMgYXQgbG93ZXIgc3BlY2lmaWNpdHkgdGhhbiAuY2hhbGstbWVzc2FnZTpob3ZlciBvbiBwdXJwb3NlLCBzb1xuICAgaG92ZXJpbmcgYW4gdW5yZWFkIHJvdyBzdGlsbCBnaXZlcyB0aGUgbm9ybWFsIGhvdmVyIGZlZWRiYWNrLiAqL1xuLmNoYWxrLW1lc3NhZ2UtLXVucmVhZCB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jaGFsay1hY2NlbnQpIDglLCB0cmFuc3BhcmVudCk7XG59XG5cbi8qIEZhbGxiYWNrIGZvciBlbmdpbmVzIHdpdGhvdXQgY29sb3ItbWl4OiB0aGUgZWxldmF0ZWQgc3VyZmFjZSB0b2tlbiBpc1xuICAgZGVmaW5lZCBieSBldmVyeSB0aGVtZSBhbmQgaXMgdGhlIHNhbWUgdmFsdWUgaG92ZXIgdXNlcywgc28gdGhlIGJsb2NrXG4gICBzdGlsbCByZWFkcyBhcyBsaWZ0ZWQsIGp1c3QgbGVzcyBkaXN0aW5jdGx5LiAqL1xuQHN1cHBvcnRzIG5vdCAoYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHJlZCA1MCUsIHRyYW5zcGFyZW50KSkge1xuICAuY2hhbGstbWVzc2FnZS0tdW5yZWFkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbiAgfVxufVxuXG4vKiA0OS0xOiB0aGUgcm93IHRoZSB0aHJlYWQgcGFuZWwncyBcInNob3cgbWVzc2FnZVwiIGp1bXAgbGFuZGVkIG9uLiBPbmVcbiAgIHB1bHNlIHRoYXQgZmFkZXMgb3V0OyB0aGUgY2xhc3Mgb3V0bGl2ZXMgdGhlIGFuaW1hdGlvbiBidXQgZm9yd2FyZHMgZmlsbFxuICAgbGVhdmVzIHRoZSByb3cgdHJhbnNwYXJlbnQgYWdhaW4uICovXG4uY2hhbGstbWVzc2FnZS0tZmxhc2gge1xuICBhbmltYXRpb246IGNoYWxrLW1lc3NhZ2UtZmxhc2ggMS40cyBlYXNlLW91dCAxIGZvcndhcmRzO1xufVxuQGtleWZyYW1lcyBjaGFsay1tZXNzYWdlLWZsYXNoIHtcbiAgZnJvbSB7XG4gICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNoYWxrLWFjY2VudCkgMzUlLCB0cmFuc3BhcmVudCk7XG4gIH1cbiAgdG8ge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB9XG59XG5Ac3VwcG9ydHMgbm90IChiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgcmVkIDUwJSwgdHJhbnNwYXJlbnQpKSB7XG4gIC8qIE5vIGFuaW1hdGVkIHRpbnQgd2l0aG91dCBjb2xvci1taXg7IGEgc3RhdGljIGxpZnQgdGhhdCBkaXNhcHBlYXJzIHdoZW5cbiAgICAgdGhlIGNsYXNzIGlzIGNsZWFyZWQgc3RpbGwgbWFya3MgdGhlIHJvdy4gKi9cbiAgLmNoYWxrLW1lc3NhZ2UtLWZsYXNoIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG4gIH1cbn1cblxuLmNoYWxrLXNpZGViYXItaW5uZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAvKiAzMC01Zzogc2hyaW5rYWJsZSBzbyB0aGUgcGlubmVkIHZvaWNlIGRvY2sgKHNpYmxpbmcsIGZsZXg6MCAwIGF1dG8pXG4gICAgIGFsd2F5cyBrZWVwcyBpdHMgc3BhY2Ugb24gYSBzaG9ydCB3aW5kb3cuIFRoZSBmcmllbmRzIGFuZCBjaGFubmVsc1xuICAgICBsaXN0cyBpbnNpZGUgYWxyZWFkeSBzY3JvbGwgb24gdGhlaXIgb3duIChiYXNlIC5jaGFsay1zaWRlYmFyLWxpc3QpLFxuICAgICBzbyBubyBzZWNvbmQgc2Nyb2xsIGNvbnRhaW5lciBpcyBpbnRyb2R1Y2VkIC0tIHRoZSBjaGFubmVsIHJvd3Mgc2Nyb2xsXG4gICAgIHdpdGhpbiB0aGVpciBsaXN0IGFuZCB0aGUgZG9jayBzdGF5cyBhIHZpc2libGUgZm9vdGVyLiAqL1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbWluLWhlaWdodDogMDtcbn1cblxuLmNoYWxrLXNpZGViYXItaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiAwIHZhcigtLWNoYWxrLXMyKSB2YXIoLS1jaGFsay1zMikgdmFyKC0tY2hhbGstczIpO1xufVxuXG4uY2hhbGstc2lkZWJhci10aXRsZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xufVxuXG4uY2hhbGstc2lkZWJhci1uZXcge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGNhbGMoMTZweCAqIHZhcigtLWNoYWxrLWZvbnQtc2NhbGUpKTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMDtcbn1cbi5jaGFsay1zaWRlYmFyLW5ldzpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG59XG4uY2hhbGstc2lkZWJhci1uZXc6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBvdXRsaW5lLW9mZnNldDogMXB4O1xufVxuXG4uY2hhbGstc2lkZWJhci1saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBmbGV4OiAxO1xuICBtaW4taGVpZ2h0OiAwO1xufVxuXG4uY2hhbGstc2lkZWJhci1lbXB0eSB7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbn1cblxuLmNoYWxrLXNpZGViYXItaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG59XG4uY2hhbGstc2lkZWJhci1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG59XG4uY2hhbGstc2lkZWJhci1pdGVtOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7XG59XG4uY2hhbGstc2lkZWJhci1pdGVtLS1hY3RpdmUge1xuICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xufVxuXG4uY2hhbGstc2lkZWJhci1pdGVtLW5hbWUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNoYWxrLXNpZGViYXItaXRlbS10YWcsXG4uY2hhbGstY2hhbm5lbC1oZWFkZXItdGFnIHtcbiAgZm9udC1zaXplOiBjYWxjKDEwcHggKiB2YXIoLS1jaGFsay1mb250LXNjYWxlKSk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIHBhZGRpbmc6IDFweCA0cHg7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1jaGFsay1zMik7XG59XG5cbi8qIGdvdi0yOiBnb3Zlcm5hbmNlIG1vZGUgYmFkZ2UgKGNyb3duID0gZGljdGF0b3IsIGJhbGxvdCBib3ggPSBkZW1vY3JhdGljKS4gKi9cbi5jaGFsay1tb2RlLWJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWNoYWxrLXMyKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG59XG5cbi5jaGFsay1tb2RlLWJhZGdlLmNoYWxrLW1vZGUtZGVtb2NyYXRpYyB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xufVxuXG4vKiAtLSBDaGFubmVsIGhlYWRlciAoYWJvdmUgbWVzc2FnZXMpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmNoYWxrLWNoYW5uZWwtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zNCkgMCB2YXIoLS1jaGFsay1zMykgMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWNoYWxrLXMzKTtcbiAgLyogUGluIHRoZSByb29tIG5hbWUgdG8gdGhlIHRvcCBvZiB0aGUgZmVlZCB3aGlsZSBpdCBzY3JvbGxzLiBUaGVcbiAgICAgbmVnYXRpdmUgdG9wIHN3YWxsb3dzIHRoZSBoZWFkZXIncyBvd24gcGFkZGluZy10b3Agd2hlbiBzdHVjaywgc29cbiAgICAgdGhlIGJhciBzaXRzIGZsdXNoIHdpdGggdGhlIHRvcCBvZiB0aGUgcGFuZSBhbmQgbm8gc2xpdmVyIG9mIGZlZWRcbiAgICAgc2hvd3MgYWJvdmUgaXQ7IHRoZSBuZWdhdGl2ZSBtYXJnaW4tdG9wIGNhbmNlbHMgdGhhdCBwYWRkaW5nIGluXG4gICAgIHRoZSByZXN0aW5nIGxheW91dCAoaXQgb3ZlcmxhcHMgLmNoYWxrLW1haW4ncyB0b3AgcGFkZGluZyksIHNvXG4gICAgIG5vdGhpbmcgbW92ZXMgdW50aWwgeW91IHNjcm9sbC4gVGhlIG1vYmlsZSBsYXlvdXQgcmUtYWltcyB0aGVzZVxuICAgICBvZmZzZXRzIGF0IGl0cyBzbWFsbGVyIHBhbmUgcGFkZGluZyAoYmVsb3cpLiAqL1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IGNhbGMoLTEgKiB2YXIoLS1jaGFsay1zNCkpO1xuICBtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tY2hhbGstczQpKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmcpO1xuICAvKiBtYXJnaW4tYm90dG9tIGlzIHRyYW5zcGFyZW50LCBzbyB3aGlsZSBwaW5uZWQgYSBjbGlwcGVkIGxpbmUgb2ZcbiAgICAgZmVlZCB0ZXh0IHNob3dlZCB0aHJvdWdoIHRoZSBnYXAgdW5kZXIgdGhlIGJvcmRlci4gVGhlIG9mZnNldFxuICAgICBzaGFkb3cgcGFpbnRzIHRoYXQgZXhhY3Qgc3RyaXAgaW4gdGhlIGJhY2tncm91bmQgY29sb3I7IGl0IG11c3RcbiAgICAgbWF0Y2ggbWFyZ2luLWJvdHRvbSAodGhlIG1vYmlsZSBvdmVycmlkZSByZS1haW1zIGJvdGgpLiAqL1xuICBib3gtc2hhZG93OiAwIHZhcigtLWNoYWxrLXMzKSB2YXIoLS1jaGFsay1iZyk7XG4gIHotaW5kZXg6IDU7XG59XG5cbi5jaGFsay1jaGFubmVsLWhlYWRlci1uYW1lIHtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLWJvZHkpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLyogMTExLTM6IHRoZSBoZWFkZXIgQkxPQ0sgLS0gdGhlIHRpdGxlIHJvdyBwbHVzIHRoZSBjaGFubmVsJ3MgcGlubmVkIGltYWdlLlxuICAgVGhlIHBpbm5pbmcgbW92ZWQgb3V0IGhlcmUgZnJvbSAuY2hhbGstY2hhbm5lbC1oZWFkZXIgc28gdGhlIGJhbmQgdW5kZXJcbiAgIHRoZSB0aXRsZSBpcyBwaW5uZWQgd2l0aCBpdCByYXRoZXIgdGhhbiBzY3JvbGxpbmcgb3V0IGZyb20gdW5kZXIgaXQ7IHRoZVxuICAgb2Zmc2V0cyBhcmUgdGhlIG9uZXMgdGhlIGhlYWRlciBjYXJyaWVkLCB1bmNoYW5nZWQsIHNvIGEgY2hhbm5lbCB3aXRoIG5vXG4gICBiYW5uZXIgcmVuZGVycyBleGFjdGx5IGFzIGl0IGRpZCBiZWZvcmUgMTExLiBUaGUgdGl0bGUgcm93IGtlZXBzIGl0cyBvd25cbiAgIGZsZXggbGF5b3V0IGFuZCBnaXZlcyB1cCBvbmx5IHRoZSBwcm9wZXJ0aWVzIHRoYXQgd2VyZSBhYm91dCBwaW5uaW5nLlxuICAgKFRoZSBwYXJraW5nIGhlYWRlciBzdGlsbCB1c2VzIHRoZSBiYXJlIC5jaGFsay1jaGFubmVsLWhlYWRlciBydWxlLikgKi9cbi5jaGFsay1jaGFubmVsLWhlYWR3cmFwIHtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiBjYWxjKC0xICogdmFyKC0tY2hhbGstczQpKTtcbiAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLWNoYWxrLXM0KSk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWNoYWxrLXMzKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnKTtcbiAgYm94LXNoYWRvdzogMCB2YXIoLS1jaGFsay1zMykgdmFyKC0tY2hhbGstYmcpO1xuICB6LWluZGV4OiA1O1xufVxuXG4uY2hhbGstY2hhbm5lbC1oZWFkd3JhcCAuY2hhbGstY2hhbm5lbC1oZWFkZXIge1xuICBwb3NpdGlvbjogc3RhdGljO1xuICB0b3A6IGF1dG87XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHotaW5kZXg6IGF1dG87XG59XG5cbi8qIFRoZSBiYW5kIGl0c2VsZi4gRml4ZWQgaGVpZ2h0IGFuZCBgY292ZXJgIHJhdGhlciB0aGFuIGEgZml0dGVkIGltYWdlOlxuICAgdGhlIGhlaWdodCBpcyB3aGF0IGtlZXBzIGEgcGljdHVyZSBmcm9tIGVhdGluZyB0aGUgZmVlZCwgYW5kIGNyb3BwaW5nIGlzXG4gICB3aGF0IGxldHMgYSB3aWRlIHNjcmVlbnNob3QgYW5kIGEgc3F1YXJlIHBpZWNlIG9mIGJveCBhcnQgcmVhZCBhcyB0aGVcbiAgIHNhbWUgc2hhcGUuIG9iamVjdC1wb3NpdGlvbiBzdGF5cyBjZW50cmVkIC0tIHRoZXJlIGlzIG5vIHJlcG9zaXRpb25cbiAgIGNvbnRyb2wgeWV0IChyZWNvcmRlZCBpbiBQSEFTRS0xMTEtQkFOTkVSLm1kKS4gKi9cbi8qIFRoZSBiYW5kLiBJdHMgaGVpZ2h0IGlzIG9uZSBvZiB0aHJlZSBuYW1lcyAoMTExLTcpIHJhdGhlciB0aGFuIGEgbnVtYmVyOlxuICAgd2hhdCBcInRhbGxcIiBtZWFzdXJlcyBpcyBhIGRpZmZlcmVudCBwaXhlbCBjb3VudCBvbiBhIHBob25lLCBhbmQgZXZlcnlvbmVcbiAgIGluIHRoZSBjaGFubmVsIHNlZXMgdGhlIHNhbWUgbmFtZS4gYGNvdmVyYCBhbmQgYSBmb2NhbCBwb2ludCBkbyB0aGVcbiAgIGNyb3BwaW5nLCBzbyBhIHBpY3R1cmUgaXMgbmV2ZXIgc3F1YXNoZWQgLS0gb25seSBldmVyIHNob3duIGxlc3Mgb2YuICovXG4uY2hhbGstY2hhbm5lbC1iYW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogODhweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY2hhbGstczIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZyk7XG59XG5cbi5jaGFsay1jaGFubmVsLWJhbm5lcltkYXRhLWhlaWdodD1cInNob3J0XCJdIHtcbiAgaGVpZ2h0OiA1NnB4O1xufVxuXG4vKiAxMTEtMTE6IHRhbGwgbWVhbnMgdGFsbC4gQXQgMTMycHggYSBmaXR0ZWQgcG9zdGVyIHdhcyA5OXB4IHdpZGUgLS0gYVxuICAgdGh1bWJuYWlsIHdpdGggYSBsb3Qgb2YgY29sb3VyIGJlc2lkZSBpdC4gMjAwcHggaXMgd2hlcmUgYm94IGFydCBiZWNvbWVzXG4gICByZWFkYWJsZSwgYW5kIGl0IGlzIG9wdC1pbiBwZXIgY2hhbm5lbCwgc28gdGhlIHJvb21zIHRoYXQgZG8gbm90IHdhbnQgdGhlXG4gICBzcGFjZSBuZXZlciBwYXkgZm9yIGl0LiAqL1xuLmNoYWxrLWNoYW5uZWwtYmFubmVyW2RhdGEtaGVpZ2h0PVwidGFsbFwiXSB7XG4gIGhlaWdodDogMjAwcHg7XG59XG5cbi5jaGFsay1jaGFubmVsLWJhbm5lci1pbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIG9iamVjdC1wb3NpdGlvbjogY2VudGVyO1xuICBjdXJzb3I6IHpvb20taW47XG59XG5cbi8qIDExMS01OiBcImZpdFwiIC0tIHRoZSB3aG9sZSBwaWN0dXJlIGF0IGJhbmQgaGVpZ2h0LCBjZW50cmVkLCB3aXRoIHRoZSBzcGFjZVxuICAgb24gZWl0aGVyIHNpZGUgZmlsbGVkIGJ5IHRoZSBibGVlZC4gVGhlIGltYWdlIGtlZXBzIGl0cyBhc3BlY3QgcmF0aW8gKHRoZVxuICAgaW5saW5lIGFzcGVjdC1yYXRpbywgd2lkZW5lZCBieSB6b29tKSwgc28gYSBwb3J0cmFpdCBwb3N0ZXIgaXMgYSBuYXJyb3dcbiAgIHBhbmVsIHdpdGggd2lkZSBzaWRlcyBhbmQgYSBuZWFyLXBhbm9yYW1pYyBjYXB0dXJlIGlzIGEgd2lkZSBvbmUgd2l0aFxuICAgYWxtb3N0IG5vbmU7IGJvdGggZW5kIGluIHRoZSBwYWdlIHJhdGhlciB0aGFuIGFnYWluc3QgYW4gZWRnZS4gKi9cbi5jaGFsay1jaGFubmVsLWJhbm5lci0tZml0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uY2hhbGstY2hhbm5lbC1iYW5uZXItLWZpdCAuY2hhbGstY2hhbm5lbC1iYW5uZXItaW1nIHtcbiAgd2lkdGg6IGF1dG87XG4gIG1heC13aWR0aDogMTAwJTtcbiAgZmxleDogMCAwIGF1dG87XG59XG5cbi8qIDExMS02OiB0aGUgZWRnZSBibGVlZC4gSXRzIGJhY2tncm91bmQgaXMgYW4gaW5saW5lIGdyYWRpZW50IGJ1aWx0IGZyb20gdGhlXG4gICBpbWFnZSdzIG93biBlZGdlIGNvbHVtbiAoYmFubmVyLWVkZ2VzLnRzKSwgc3RyZXRjaGVkIGFjcm9zcyB0aGUgc3Bhbiwgc29cbiAgIHdoZXJlIGl0IG1lZXRzIHRoZSBwaWN0dXJlIGl0IElTIHRoZSBwaWN0dXJlJ3MgZWRnZSAtLSBubyBzZWFtLiBUaGUgbWFza1xuICAgaXMgd2hhdCB0dXJucyBpdCBpbnRvIGEgZmFkZTogb3BhcXVlIGFnYWluc3QgdGhlIGltYWdlLCBnb25lIGJ5IHRoZSBmYXJcbiAgIGVuZCwgZWFzZWQgc28gbW9zdCBvZiB0aGUgY29sb3VyIHN0YXlzIG5lYXIgdGhlIHBpY3R1cmUgaW5zdGVhZCBvZiB3YXNoaW5nXG4gICB0aGUgd2hvbGUgaGFsZi13aWR0aC4gV2l0aCBubyBzYW1wbGUgdGhlIHNwYW4gcGFpbnRzIG5vdGhpbmcgYW5kIHRoZVxuICAgYmFuZCdzIHRoZW1lIGJhY2tncm91bmQgc2hvd3MgdGhyb3VnaC4gKi9cbi5jaGFsay1jaGFubmVsLWJhbm5lci1mYWRlIHtcbiAgZmxleDogMSAxIDA7XG4gIG1pbi13aWR0aDogMDtcbiAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5cbi5jaGFsay1jaGFubmVsLWJhbm5lci1mYWRlLS1sZWZ0IHtcbiAgLXdlYmtpdC1tYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgdG8gcmlnaHQsXG4gICAgdHJhbnNwYXJlbnQgMCUsXG4gICAgcmdiYSgwLCAwLCAwLCAwLjI1KSA0NSUsXG4gICAgcmdiYSgwLCAwLCAwLCAwLjcpIDc1JSxcbiAgICAjMDAwIDEwMCVcbiAgKTtcbiAgbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuICAgIHRvIHJpZ2h0LFxuICAgIHRyYW5zcGFyZW50IDAlLFxuICAgIHJnYmEoMCwgMCwgMCwgMC4yNSkgNDUlLFxuICAgIHJnYmEoMCwgMCwgMCwgMC43KSA3NSUsXG4gICAgIzAwMCAxMDAlXG4gICk7XG59XG5cbi5jaGFsay1jaGFubmVsLWJhbm5lci1mYWRlLS1yaWdodCB7XG4gIC13ZWJraXQtbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuICAgIHRvIGxlZnQsXG4gICAgdHJhbnNwYXJlbnQgMCUsXG4gICAgcmdiYSgwLCAwLCAwLCAwLjI1KSA0NSUsXG4gICAgcmdiYSgwLCAwLCAwLCAwLjcpIDc1JSxcbiAgICAjMDAwIDEwMCVcbiAgKTtcbiAgbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuICAgIHRvIGxlZnQsXG4gICAgdHJhbnNwYXJlbnQgMCUsXG4gICAgcmdiYSgwLCAwLCAwLCAwLjI1KSA0NSUsXG4gICAgcmdiYSgwLCAwLCAwLCAwLjcpIDc1JSxcbiAgICAjMDAwIDEwMCVcbiAgKTtcbn1cblxuLyogMTExLTc6IHRoZSBibHVyIGJsZWVkIC0tIHRoZSBzYW1lIHBpY3R1cmUsIGJsb3duIHVwIEJFSElORCB0aGUgc2hhcnAgb25lLlxuICAgc2NhbGUoMS4xKSBrZWVwcyB0aGUgYmx1cidzIG93biBzb2Z0IGVkZ2Ugb3V0c2lkZSB0aGUgYmFuZCwgYW5kIHRoZVxuICAgYnJpZ2h0bmVzcyBrbm9jay1kb3duIHN0b3BzIGEgYnJpZ2h0IHBob3RvIGZyb20gdHVybmluZyB0aGUgaGVhZGVyIGludG8gYVxuICAgbGlnaHRib3guIEl0IGlzIGluZXJ0OiB0aGUgc2hhcnAgaW1hZ2UgdGFrZXMgdGhlIGNsaWNrcy5cblxuICAgei1pbmRleCBpcyBsb2FkLWJlYXJpbmcsIG5vdCBkZWNvcmF0aW9uLiBUaGlzIGxheWVyIGlzIHBvc2l0aW9uZWQgYW5kIHRoZVxuICAgc2hhcnAgaW1hZ2UgaXMgbm90LCBhbmQgYSBwb3NpdGlvbmVkIGVsZW1lbnQgcGFpbnRzIGFib3ZlIGEgc3RhdGljIG9uZSBub1xuICAgbWF0dGVyIHdoaWNoIGNhbWUgZmlyc3QgaW4gdGhlIG1hcmt1cCAtLSBzbyB3aXRob3V0IHRoZXNlIHR3byBydWxlcyB0aGVcbiAgIGJsdXIgY292ZXJzIHRoZSBwaWN0dXJlIGFuZCB0aGUgd2hvbGUgYmFuZCBsb29rcyBibHVycmVkLiBUaGF0IGlzIGV4YWN0bHlcbiAgIHRoZSBidWcgMTExLTEwIGZpeGVkLiAqL1xuLmNoYWxrLWNoYW5uZWwtYmFubmVyLWJsdXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgLyogMTExLTExOiBsZXNzIGRhcmtlbmluZyBhbmQgbW9yZSBibHVyIHRoYW4gdGhlIGZpcnN0IGN1dC4gQXRcbiAgICAgYnJpZ2h0bmVzcygwLjcyKSB0aGUgYmFja2Ryb3AgcmVhZCBhcyBhIGRpbW1lZCBjb3B5IHNpdHRpbmcgYmVoaW5kIHRoZVxuICAgICBwaWN0dXJlOyBhdCAwLjg2IHdpdGggYSB3aWRlciByYWRpdXMgaXQgcmVhZHMgYXMgdGhlIHBpY3R1cmUncyBvd24gbGlnaHRcbiAgICAgc3BpbGxpbmcgb3V0d2FyZC4gc2NhbGVYKC0xKSBtaXJyb3JzIGl0IHNvIGl0cyBmZWF0dXJlcyBkbyBub3QgbGluZSB1cFxuICAgICB3aXRoIHRoZSBzaGFycCBwaWN0dXJlIC0tIGFuIGFsaWduZWQgYmx1ciBsb29rcyBsaWtlIGEgcHJpbnRpbmcgZXJyb3IuICovXG4gIGZpbHRlcjogYmx1cigyNnB4KSBicmlnaHRuZXNzKDAuODYpIHNhdHVyYXRlKDEuMTUpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDEuMTUpIHNjYWxlWCgtMSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAwO1xufVxuXG4vKiAxMTEtMTI6IHRoZSBwb3N0ZXIgc2hhcGUuIFRoZSBhcnQgc2l0cyBhdCBiYW5kIGhlaWdodCBhdCB0aGUgbGVmdCB3aXRoIGFcbiAgIGxpdHRsZSBhaXIgYXJvdW5kIGl0LCBhbmQgdGhlIHdhc2ggcnVucyB0aGUgd2hvbGUgd2lkdGggYmVoaW5kIGl0LCBzbyB0aGVcbiAgIHBpY3R1cmUgcmVhZHMgYXMgcGxhY2VkIG9uIGEgc3VyZmFjZSByYXRoZXIgdGhhbiBzdHVjayB0byBhIGNvcm5lci4gQVxuICAgcGljdHVyZSB0YWxsZXIgdGhhbiBpdCBpcyB3aWRlIGhhcyBubyBnb29kIGFuc3dlciBpbnNpZGUgYSAxMjoxIGJhbmQ7IHRoaXNcbiAgIHN0b3BzIHRyeWluZyB0byBnaXZlIGl0IG9uZSBhbmQgZnJhbWVzIGl0IGluc3RlYWQuICovXG4uY2hhbGstY2hhbm5lbC1iYW5uZXItLXBvc3RlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpIDAgdmFyKC0tY2hhbGstczIpIHZhcigtLWNoYWxrLXM0KTtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMyk7XG59XG5cbi5jaGFsay1jaGFubmVsLWJhbm5lci0tcG9zdGVyIC5jaGFsay1jaGFubmVsLWJhbm5lci1pbWcge1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiA0NSU7XG4gIGhlaWdodDogMTAwJTtcbiAgZmxleDogMCAwIGF1dG87XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gIC8qIFRoZSBhcnQgaXMgYSBjYXJkIG9uIHRoZSB3YXNoOiBhIHNvZnQgZHJvcCBzaGFkb3cgaXMgd2hhdCBzZXBhcmF0ZXMgaXRcbiAgICAgZnJvbSBhIGJhY2tkcm9wIG1hZGUgb2YgaXRzIG93biBjb2xvdXJzLiAqL1xuICBib3gtc2hhZG93OiAwIDJweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC40NSk7XG59XG5cbi8qIFRoZSB3YXNoIHNwYW5zIHRoZSB3aG9sZSBiYW5kIGJlaGluZCB0aGUgYXJ0IHJhdGhlciB0aGFuIGZsYW5raW5nIGl0LiAqL1xuLmNoYWxrLWNoYW5uZWwtYmFubmVyLS1wb3N0ZXIgLmNoYWxrLWNoYW5uZWwtYmFubmVyLWZhZGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiAwO1xufVxuXG4uY2hhbGstY2hhbm5lbC1iYW5uZXItLXBvc3RlciAuY2hhbGstY2hhbm5lbC1iYW5uZXItYmx1ciB7XG4gIHotaW5kZXg6IDA7XG59XG5cbi8qIFRoZSBwaWN0dXJlIGl0c2VsZiwgYWJvdmUgYW55IGJsZWVkIGxheWVyLiBPbmx5IGZpdHRlZCBiYW5kcyBoYXZlIG9uZSxcbiAgIGJ1dCB0aGUgcnVsZSBpcyB1bmNvbmRpdGlvbmFsIHNvIG5vdGhpbmcgY2FuIHNsaXAgdW5kZXJuZWF0aCBsYXRlci4gKi9cbi5jaGFsay1jaGFubmVsLWJhbm5lci1pbWcsXG4uY2hhbGstY2hhbm5lbC1iYW5uZXItZmFkZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbn1cblxuLyogLS0gVGhlIGJhbm5lciBlZGl0b3IgKDExMS05KSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jaGFsay1iYW5uZXItZWRpdG9yLXByZXZpZXcge1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICAvKiBUaGUgYmFuZCBpbnNpZGUgY2FycmllcyBpdHMgb3duIGhlaWdodDsgdGhpcyBvbmx5IGZyYW1lcyBpdC4gVGhlXG4gICAgIGJhbmQncyBvd24gYm90dG9tIG1hcmdpbiBpcyB0aGUgaGVhZGVyJ3Mgc3BhY2luZyB0byB0aGUgZmVlZCBhbmRcbiAgICAgaGFzIG5vIGJ1c2luZXNzIGluc2lkZSBhIGRpYWxvZy4gKi9cbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNoYWxrLWJhbm5lci1lZGl0b3ItcHJldmlldyAuY2hhbGstY2hhbm5lbC1iYW5uZXIge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4vKiBUaGUgZHJhZyBzdXJmYWNlLiBncmFiLCBub3QgY3Jvc3NoYWlyOiB3aGF0IG1vdmVzIGlzIHRoZSBwaWN0dXJlLCBhbmRcbiAgIG9ubHkgd2hlbiBzb21ldGhpbmcgaXMgYWN0dWFsbHkgY3JvcHBlZC4gKi9cbi5jaGFsay1iYW5uZXItZWRpdG9yLXByZXZpZXctLWRyYWdnYWJsZSB7XG4gIGN1cnNvcjogZ3JhYjtcbiAgdG91Y2gtYWN0aW9uOiBub25lO1xufVxuXG4uY2hhbGstYmFubmVyLWVkaXRvci1wcmV2aWV3LS1kcmFnZ2FibGU6YWN0aXZlIHtcbiAgY3Vyc29yOiBncmFiYmluZztcbn1cblxuLyogSW5zaWRlIHRoZSBkaWFsb2cgdGhlIHBpY3R1cmUgaXMgbm90IGEgbGluayB0byBhbnl0aGluZyAtLSBjbGlja2luZyBpdFxuICAgZHJhZ3MgcmF0aGVyIHRoYW4gb3BlbmluZyBhIGxpZ2h0Ym94LiAqL1xuLmNoYWxrLWNoYW5uZWwtYmFubmVyLS1wcmV2aWV3IC5jaGFsay1jaGFubmVsLWJhbm5lci1pbWcge1xuICBjdXJzb3I6IGluaGVyaXQ7XG4gIC8qIEEgZHJhZyB0aGF0IHN0YXJ0cyBvbiB0aGUgaW1hZ2UgbXVzdCBub3QgYmVjb21lIGEgYnJvd3NlciBpbWFnZSBkcmFnLiAqL1xuICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5jaGFsay1iYW5uZXItZWRpdG9yLWxvYWRpbmcge1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zNCk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbn1cblxuLyogLS0gUHJvZmlsZSBwaWN0dXJlcyAoMTEyLTMpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiBUaGUgcnVsZSB0aGlzIHdob2xlIGJsb2NrIGV4aXN0cyBmb3I6IGluIHRoZSBmZWVkIGEgcGljdHVyZSBtdXN0IG5vdCBjb3N0XG4gICBhIHBpeGVsIG9mIHZlcnRpY2FsIHNwYWNlLiBUaGUgYm94IGlzIDFlbSBzcXVhcmUgaW5zaWRlIGEgbGluZSBib3ggdGhhdCBpc1xuICAgMS40ZW0gdGFsbCwgdmVydGljYWxseSBjZW50cmVkLCBzbyBpdCBjYW5ub3QgbWFrZSBhIHJvdyB0YWxsZXIgdGhhbiB0aGVcbiAgIHRleHQgYWxyZWFkeSBkb2VzLiBTcXVhcmUgd2l0aCBzaGFycCBjb3JuZXJzLCBiZWNhdXNlIGV2ZXJ5dGhpbmcgZWxzZSBpblxuICAgdGhlIGZlZWQgaXMgYSByZWN0YW5nbGUgb24gYSBncmlkLlxuXG4gICBvYmplY3QtZml0OiBjb3ZlciBpcyBiZWx0IGFuZCBicmFjZXMgLS0gd2hhdCBpcyB1cGxvYWRlZCBpcyBhbHJlYWR5IGEgOTZ4OTZcbiAgIHNxdWFyZSAoYXR0YWNobWVudHMvYXZhdGFyLnRzKSAtLSBhbmQgY29zdHMgbm90aGluZy4gKi9cbi5jaGFsay1hdmF0YXIge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldi0yLCB0cmFuc3BhcmVudCk7XG59XG5cbi5jaGFsay1hdmF0YXItLWxpbmUge1xuICB3aWR0aDogMWVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgLyogVGhlIGdhcCB0byB0aGUgbmFtZSwgaW4gdGhlIHNhbWUgZW0gYXMgdGhlIGJveCwgc28gaXQgdHJhY2tzIGZvbnQgc2l6ZS4gKi9cbiAgbWFyZ2luLXJpZ2h0OiAwLjRlbTtcbn1cblxuLyogQSBtZW1iZXIgd2l0aCBubyBwaWN0dXJlIGtlZXBzIHRoZSBib3gsIGVtcHR5OiB3aXRob3V0IGl0IHRoZSBuYW1lcyBpbiBhXG4gICBjaGFubmVsIHdoZXJlIG9ubHkgc29tZSBwZW9wbGUgaGF2ZSBvbmUgc2l0IGF0IGRpZmZlcmVudCBpbmRlbnRzIGFuZCB0aGVcbiAgIGNvbHVtbiByZWFkcyBhcyBicm9rZW4uIEludmlzaWJsZSwgbm90IG1lcmVseSB0cmFuc3BhcmVudCAtLSBhbiBvdXRsaW5lXG4gICBoZXJlIHdvdWxkIGJlIGEgcm93IG9mIGVtcHR5IHNxdWFyZXMgZG93biB0aGUgZmVlZC4gKi9cbi5jaGFsay1hdmF0YXItLWVtcHR5IHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi8qIFJvd3MgaW4gdGhlIHJvc3RlciBhbmQgdGhlIG1lbWJlcnMgcGFuZWwgYXJlIHRhbGxlciB0aGFuIGEgZmVlZCBsaW5lLCBzb1xuICAgdGhlIHBpY3R1cmUgY2FuIGJlIGEgZml4ZWQgYm94IHdpdGhvdXQgYW55IHJpc2sgdG8gdGhlaXIgaGVpZ2h0LiAqL1xuLmNoYWxrLWF2YXRhci0tcm93IHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jaGFsay1zMik7XG59XG5cbi8qIFRoZSBob3ZlciBjYXJkIGlzIHRoZSBvbmUgcGxhY2UgYSBwaWN0dXJlIGNhbiBiZSB3b3J0aCBsb29raW5nIGF0LiAqL1xuLmNoYWxrLWF2YXRhci0tY2FyZCB7XG4gIHdpZHRoOiA0NHB4O1xuICBoZWlnaHQ6IDQ0cHg7XG59XG5cbi8qIENhbGwgdGlsZXM6IHRoZSBwaWN0dXJlIGZpbGxzIHRoZSBjaXJjbGUgdGhlIHRpbGUgYWxyZWFkeSBkcmF3cy4gKi9cbi5jaGFsay1hdmF0YXItLXRpbGUge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xufVxuXG4vKiAxMTItNDogdGhlIHBpY3R1cmUgb24gYSBob3ZlciBjYXJkLCBhYm92ZSB0aGUgbmFtZSBpdCBiZWxvbmdzIHRvLiAqL1xuLmNoYWxrLWZyaWVuZC1jYXJkLWF2YXRhciB7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWNoYWxrLXMyKTtcbn1cblxuLyogMTEyLTI6IHRoZSBzZXR0aW5ncyByb3cgdGhhdCBzZXRzIG9uZS4gKi9cbi5jaGFsay1wcm9maWxlLWF2YXRhci1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4vKiAtLSBUaGUgY3JvcHBlciAoMTExLTEzKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmNoYWxrLWJhbm5lci1jcm9wcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG59XG5cbi8qIFRoZSB3aG9sZSBwaWN0dXJlLCBhcyBsYXJnZSBhcyB0aGUgZGlhbG9nIGFsbG93cy4gQSBwbGFpbiBncm91bmQ6IHdoYXRcbiAgIG1hdHRlcnMgaGVyZSBpcyB0aGUgcGljdHVyZSdzIG93biBlZGdlcywgYW5kIGEgYnVzeSBiYWNrZHJvcCB3b3VsZCBjb21wZXRlXG4gICB3aXRoIHRoZSBjcm9wIHJlY3RhbmdsZS4gKi9cbi5jaGFsay1iYW5uZXItY3JvcHBlci1zdXJmYWNlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWF4LWhlaWdodDogNDZ2aDtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIGN1cnNvcjogY3Jvc3NoYWlyO1xuICAvKiBBIGRyYWcgb24gYSBwaWN0dXJlIGlzIGEgZHJhZywgbm90IGEgYnJvd3NlciBpbWFnZS1kcmFnIG9yIGEgdGV4dFxuICAgICBzZWxlY3Rpb24sIGFuZCBvbiBhIHBob25lIGl0IG11c3Qgbm90IHNjcm9sbCB0aGUgZGlhbG9nLiAqL1xuICB0b3VjaC1hY3Rpb246IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZyk7XG59XG5cbi5jaGFsay1iYW5uZXItY3JvcHBlci1pbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXgtaGVpZ2h0OiA0NnZoO1xuICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi8qIFRoZSBrZXB0IHJlZ2lvbi4gVGhlIG91dHdhcmQgc2hhZG93IGlzIHdoYXQgZGltcyBldmVyeXRoaW5nIGVsc2U6IG9uZVxuICAgZWxlbWVudCByYXRoZXIgdGhhbiBmb3VyLCBzbyB0aGUgZGltbWluZyBjYW4gbmV2ZXIgZGlzYWdyZWUgd2l0aCB0aGVcbiAgIHJlY3RhbmdsZSdzIG93biBlZGdlcy4gKi9cbi5jaGFsay1iYW5uZXItY3JvcHBlci1yZWN0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1hY2NlbnQpO1xuICBib3gtc2hhZG93OiAwIDAgMCA5OTk5cHggcmdiYSgwLCAwLCAwLCAwLjYyKTtcbiAgY3Vyc29yOiBtb3ZlO1xufVxuXG4uY2hhbGstYmFubmVyLWNyb3BwZXItaGFuZGxlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTRweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xuICAvKiBTaXQgaGFsZiBvdXRzaWRlIHRoZSByZWN0YW5nbGUgc28gYSBjb3JuZXIgaXMgZ3JhYmJhYmxlIGZyb20gZWl0aGVyXG4gICAgIHNpZGUgb2YgdGhlIGxpbmUsIGluY2x1ZGluZyBvbiBhIHRvdWNoc2NyZWVuLiAqL1xuICBtYXJnaW46IC03cHg7XG59XG5cbi5jaGFsay1iYW5uZXItY3JvcHBlci1oYW5kbGUtLW53IHtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBjdXJzb3I6IG53c2UtcmVzaXplO1xufVxuLmNoYWxrLWJhbm5lci1jcm9wcGVyLWhhbmRsZS0tbmUge1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICBjdXJzb3I6IG5lc3ctcmVzaXplO1xufVxuLmNoYWxrLWJhbm5lci1jcm9wcGVyLWhhbmRsZS0tc3cge1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG4gIGN1cnNvcjogbmVzdy1yZXNpemU7XG59XG4uY2hhbGstYmFubmVyLWNyb3BwZXItaGFuZGxlLS1zZSB7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGN1cnNvcjogbndzZS1yZXNpemU7XG59XG5cbi8qIFRoZSBjcm9wcGVyJ3MgYnV0dG9ucyBzaXQgYXQgdGhlIHJpZ2h0IG9mIGl0cyBvd24gcm93IHJhdGhlciB0aGFuIGluIHRoZVxuICAgZGlhbG9nJ3MgZm9vdGVyIC0tIHRoZSBmb290ZXIgYmVsb25ncyB0byB0aGUgbGF5b3V0LCBhbmQgY3JvcHBpbmcgaXMgYVxuICAgZGV0b3VyIHdpdGggaXRzIG93biB3YXkgYmFjay4gKi9cbi5jaGFsay1iYW5uZXItY3JvcHBlci1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuXG4uY2hhbGstYmFubmVyLWVkaXRvci1jb250cm9scyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xufVxuXG4uY2hhbGstYmFubmVyLWVkaXRvci1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbn1cblxuLmNoYWxrLWJhbm5lci1lZGl0b3ItbGFiZWwge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgbWluLXdpZHRoOiA1ZW07XG59XG5cbi5jaGFsay1iYW5uZXItZWRpdG9yLXJhbmdlIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgYWNjZW50LWNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xufVxuXG4uY2hhbGstYmFubmVyLWVkaXRvci12YWx1ZSB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBtaW4td2lkdGg6IDRlbTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi8qIC0tIEVuY3J5cHRpb24gaW5kaWNhdG9yICsgaG92ZXIgcG9wb3ZlciAocGhhc2UgMjNnLzIzaCkgLS0tLS0tLS0tLSAqL1xuXG4uY2hhbGstZW5jLWluZGljYXRvciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1jaGFsay1zMik7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLyogcmVhZHk6IGtleSBwcmVzZW50IC0+IGFjY2VudCAoc2VjdXJlKSAqL1xuLmNoYWxrLWVuYy1pbmRpY2F0b3IuY2hhbGstZW5jLXJlYWR5IHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWFjY2VudCk7XG59XG5cbi8qIHdhaXRpbmcvaW5pdGlhbGl6aW5nOiBlbmNyeXB0ZWQgYnV0IGtleSBub3QgaGVyZSB5ZXQgLT4gbXV0ZWQgKyBzb2Z0IHB1bHNlICovXG4uY2hhbGstZW5jLWluZGljYXRvci5jaGFsay1lbmMtcGVuZGluZyB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGFuaW1hdGlvbjogY2hhbGstZW5jLXB1bHNlIDEuNnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgY2hhbGstZW5jLXB1bHNlIHtcbiAgMCUsIDEwMCUgeyBvcGFjaXR5OiAwLjQ1OyB9XG4gIDUwJSB7IG9wYWNpdHk6IDAuOTsgfVxufVxuXG4vKiB0aGUgcG9wb3ZlcjogaGlkZGVuIHVudGlsIGhvdmVyL2ZvY3VzIG9mIHRoZSBpbmRpY2F0b3IgKi9cbi5jaGFsay1lbmMtcG9wb3ZlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgKyA2cHgpO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiA0MDtcbiAgZGlzcGxheTogbm9uZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAycHg7XG4gIG1pbi13aWR0aDogMjIwcHg7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKSB2YXIoLS1jaGFsay1zMyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLCAjMGEwZjBhKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYWNjZW50KTtcbiAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG4gIGZvbnQtc2l6ZTogY2FsYygxMXB4ICogdmFyKC0tY2hhbGstZm9udC1zY2FsZSkpO1xuICBsaW5lLWhlaWdodDogMS41O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IHRleHQ7XG59XG5cbi5jaGFsay1lbmMtaW5kaWNhdG9yOmhvdmVyIC5jaGFsay1lbmMtcG9wb3Zlcixcbi5jaGFsay1lbmMtaW5kaWNhdG9yOmZvY3VzIC5jaGFsay1lbmMtcG9wb3Zlcixcbi5jaGFsay1lbmMtaW5kaWNhdG9yOmZvY3VzLXdpdGhpbiAuY2hhbGstZW5jLXBvcG92ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuXG4vKiBwZW5kaW5nIHBvcG92ZXIgdXNlcyBhIG11dGVkIGJvcmRlciBzbyBpdCBtYXRjaGVzIHRoZSBpY29uIHN0YXRlICovXG4uY2hhbGstZW5jLWluZGljYXRvci5jaGFsay1lbmMtcGVuZGluZyAuY2hhbGstZW5jLXBvcG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbn1cblxuLmNoYWxrLWVuYy1wb3AtaGVhZCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG59XG5cbi5jaGFsay1lbmMtcG9wLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMyk7XG59XG5cbi5jaGFsay1lbmMtcG9wLWsge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbn1cblxuLmNoYWxrLWVuYy1wb3AtdiB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xufVxuXG4vKiBwZW5kaW5nOiB2YWx1ZXMgYXJlIG11dGVkLCBub3QgYWNjZW50LCBzbyBpdCBkb2Vzbid0IHJlYWQgYXMgXCJzZWN1cmVkIHlldFwiICovXG4uY2hhbGstZW5jLWluZGljYXRvci5jaGFsay1lbmMtcGVuZGluZyAuY2hhbGstZW5jLXBvcC12IHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbn1cblxuLmNoYWxrLWVuYy1wb3Atbm90ZSB7XG4gIG1hcmdpbi10b3A6IDRweDtcbiAgcGFkZGluZy10b3A6IDRweDtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG59XG5cbi8qIC0tIE1haW4tcGFuZSBlbXB0eSBzdGF0ZSB3aGVuIG5vIGNoYW5uZWwgc2VsZWN0ZWQgLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uY2hhbGstbWFpbi1lbXB0eSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qIC0tIE1vZGFsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uY2hhbGstbW9kYWwtYmFja2Ryb3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB6LWluZGV4OiAxMDA7XG59XG5cbi8qIDExMi0yOiBhIGRpYWxvZyBvcGVuZWQgRlJPTSBhIGRpYWxvZy4gVGhlIHByb2ZpbGUgcGFuZWwgc3RheXMgb3BlbiBiZWhpbmRcbiAgIHRoZSBhdmF0YXIgY3JvcHBlciAtLSBpdCBpcyB3aGVyZSB0aGUgcHJvZ3Jlc3MgYW5kIHRoZSByZW1vdmUgYnV0dG9uIGxpdmVcbiAgIC0tIHNvIHRoZSBjcm9wcGVyIGhhcyB0byBwYWludCBhYm92ZSBpdCB3aGF0ZXZlciB0aGUgRE9NIG9yZGVyIHNheXMuICovXG4uY2hhbGstbW9kYWwtYmFja2Ryb3AtLW92ZXIge1xuICB6LWluZGV4OiAxMjA7XG59XG5cbi5jaGFsay1tb2RhbCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgbWluLXdpZHRoOiAzNjBweDtcbiAgbWF4LXdpZHRoOiA1MDBweDtcbiAgd2lkdGg6IDkwJTtcbiAgLyogUGhhc2UgOS43ZTogY2FwIHRoZSBtb2RhbCB0byB0aGUgdmlld3BvcnQgc28gZ3Jvd2luZyBjb250ZW50XG4gICAgIChQcm9maWxlUGFuZWwgYWNjdW11bGF0ZWQgbWFueSBzZWN0aW9ucykgZG9lc24ndCBzcGlsbCBwYXN0XG4gICAgIHRoZSBib3R0b20uIFRoZSBib2R5IGJlY29tZXMgdGhlIHNjcm9sbCBzdXJmYWNlLiAqL1xuICBtYXgtaGVpZ2h0OiA5MHZoO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4vKiA3MC0yOiB0YWJiZWQgc2V0dGluZ3MgbW9kYWxzIChwcm9maWxlLCB2b2ljZSAmIHZpZGVvKS4gQSBmaXhlZCBoZWlnaHQsXG4gICBzbyBzd2l0Y2hpbmcgdGFicyBjaGFuZ2VzIHRoZSBjb250ZW50IGJ1dCBuZXZlciB0aGUgZnJhbWUgXHUyMDE0IHdpdGhvdXQgaXRcbiAgIHRoZSBtb2RhbCByZXNpemVzIHRvIGVhY2ggdGFiJ3MgY29udGVudCBhbmQganVtcHMgYXJvdW5kIHRoZSBjZW50ZXJlZFxuICAgYmFja2Ryb3AuIFRoZSBib2R5IHNvYWtzIHVwIHRoZSBzbGFjayBzbyBzaG9ydCB0YWJzIGtlZXAgdGhlIGZvb3RlclxuICAgcGlubmVkIHRvIHRoZSBib3R0b20uICovXG4uY2hhbGstbW9kYWwtLXNldHRpbmdzIHtcbiAgaGVpZ2h0OiBtaW4oNDJyZW0sIDkwdmgpO1xufVxuLmNoYWxrLW1vZGFsLS1zZXR0aW5ncyAuY2hhbGstbW9kYWwtYm9keSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xufVxuXG4vKiA3NC0yOiB0aGUgcGFzdGUtY29kZSBtb2RhbCBpcyB3aWRlciB0aGFuIHRoZSA1MDBweCBkZWZhdWx0IC0tIGEgc25pcHBldFxuICAgdGhhdCBoYXMgdG8gd3JhcCBpbiB0aGUgYm94IGl0IHdhcyBwYXN0ZWQgaW50byBnaXZlcyBubyBzZW5zZSBvZiBob3cgdGhlXG4gICBjYXJkIHdpbGwgcmVhZC4gUm91Z2hseSB0aGUgY2FyZCdzIG93biB3aWR0aCwgc28gdGhlIHR3byBhZ3JlZS4gKi9cbi5jaGFsay1tb2RhbC0tY29kZSB7XG4gIG1heC13aWR0aDogNDZyZW07XG59XG5cbi8qIFNpYmxpbmcgb2YgLmNoYWxrLW1vZGFsIGZvciBwYW5lbHMgdGhhdCBzaXplIHRoZW1zZWx2ZXMgKGZyaWVuZHMsXG4gICBtZW1iZXJzLCBnb3Zlcm5hbmNlKS4gSXQgY2FycmllcyB0aGUgU1VSRkFDRSAtLSBiYWNrZ3JvdW5kLCBib3JkZXIsXG4gICBzY3JvbGwgY29udGFpbm1lbnQgLS0gYW5kIGxlYXZlcyB3aWR0aC9oZWlnaHQgdG8gdGhlIHBhbmVsIGNsYXNzLlxuICAgV2l0aG91dCBhIGdyb3VuZCBvZiBpdHMgb3duIGEgcGFuZWwgd291bGQgaW5oZXJpdCB0aGUgYmFja2Ryb3Anc1xuICAgNzAlIGJsYWNrIHNjcmltLCB3aGljaCBvbiBhIGxpZ2h0IHRoZW1lIHR1cm5zIHRoZSB3aG9sZSBkaWFsb2cgaW50b1xuICAgbXVkZHkgb2xpdmUgd2l0aCB1bnJlYWRhYmxlIHRleHQuICovXG4uY2hhbGstbW9kYWwtY2FyZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgbWF4LWhlaWdodDogOTB2aDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgLyogUGFuZWxzIHRoYXQgc2Nyb2xsIGludGVybmFsbHkgKGZyaWVuZHMsIG1lbWJlcnMpIG5ldmVyIHJlYWNoIHRoaXM7XG4gICAgIGl0IGNhdGNoZXMgdGhlIG9uZXMgdGhhdCBkb24ndCAoZ292ZXJuYW5jZSkgc28gYSBsb25nIGxpc3Qgc2Nyb2xsc1xuICAgICBpbnN0ZWFkIG9mIHNwaWxsaW5nIHBhc3QgdGhlIHZpZXdwb3J0LiAqL1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4uY2hhbGstbW9kYWwtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMykgdmFyKC0tY2hhbGstczQpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbn1cblxuLmNoYWxrLW1vZGFsLWhlYWRlciBoMiB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLWJvZHkpO1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbn1cblxuLmNoYWxrLW1vZGFsLWNsb3NlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIGZvbnQtc2l6ZTogY2FsYygyNHB4ICogdmFyKC0tY2hhbGstZm9udC1zY2FsZSkpO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xufVxuLmNoYWxrLW1vZGFsLWNsb3NlOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG59XG5cbi8qIEdyb3VwIG9mIHRyYWlsaW5nIGJ1dHRvbnMgaW4gYSBtb2RhbCBoZWFkZXIgKHJlZnJlc2ggKyBjbG9zZSwgb3JcbiAgIGZ1dHVyZSBhY3Rpb25zKS4gUmlnaHQtYWxpZ25zIHVuZGVyIGZsZXgvc3BhY2UtYmV0d2VlbiBoZWFkZXIuICovXG4uY2hhbGstbW9kYWwtaGVhZGVyLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbn1cblxuLyogUmVmcmVzaCBidXR0b246IHNhbWUgdmlzdWFsIHdlaWdodCBhcyB0aGUgY2xvc2UgXHUwMEQ3OyB1c2VzIFx1MjFCQiBnbHlwaC5cbiAgIFNwaW5zIHdoaWxlIHJlZnJlc2hpbmcgaXMgaW4gZmxpZ2h0LiAqL1xuLmNoYWxrLW1vZGFsLXJlZnJlc2gge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgZm9udC1zaXplOiBjYWxjKDE4cHggKiB2YXIoLS1jaGFsay1mb250LXNjYWxlKSk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDA7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5jaGFsay1tb2RhbC1yZWZyZXNoOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG59XG4uY2hhbGstbW9kYWwtcmVmcmVzaDpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNTtcbiAgY3Vyc29yOiBwcm9ncmVzcztcbn1cbi5jaGFsay1tb2RhbC1yZWZyZXNoLS1zcGlubmluZyB7XG4gIGFuaW1hdGlvbjogY2hhbGstc3BpbiAwLjhzIGxpbmVhciBpbmZpbml0ZTtcbn1cbkBrZXlmcmFtZXMgY2hhbGstc3BpbiB7XG4gIGZyb20geyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICB0byAgIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxufVxuXG4uY2hhbGstbW9kYWwtYm9keSB7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXM0KTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMyk7XG4gIC8qIFBoYXNlIDkuN2U6IHNjcm9sbCBpZiB0aGUgc2VjdGlvbiBzdGFjayBpcyB0YWxsZXIgdGhhbiB0aGVcbiAgICAgcmVtYWluaW5nIG1vZGFsIHNwYWNlLiBUaGUgaGVhZGVyIHN0YXlzIHBpbm5lZCBiZWNhdXNlIGl0IGxpdmVzXG4gICAgIG91dHNpZGUgdGhpcyBlbGVtZW50LiAqL1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICAvKiBBbGxvdyBmbGV4IHRvIHNocmluayB0aGUgYm9keSBiZWxvdyBpdHMgY29udGVudCBoZWlnaHQgc28gdGhlXG4gICAgIHNjcm9sbCB0YWtlcyBlZmZlY3QuIChEZWZhdWx0IG1pbi1oZWlnaHQ6IGF1dG8gd291bGQgcHVzaCB0aGVcbiAgICAgYm9keSB0byBpdHMgY29udGVudCBoZWlnaHQgYW5kIGJ1c3QgdGhlIHBhcmVudCBtYXgtaGVpZ2h0LikgKi9cbiAgbWluLWhlaWdodDogMDtcbn1cblxuLmNoYWxrLW1vZGFsLWZvb3RlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMykgdmFyKC0tY2hhbGstczQpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbn1cblxuLyogTWV0YWRhdGEgdmFyaWFudDogdGhlIHByb2ZpbGUgcGFuZWwncyBhbHdheXMtdmlzaWJsZSB2ZXJzaW9uIHJvdy4gQVxuICAgY29sb3Bob24sIG5vdCBhbiBhY3Rpb24gcm93IFx1MjAxNCBjZW50ZXJlZCBhbmQgc21hbGwuICovXG4uY2hhbGstbW9kYWwtZm9vdGVyLS1hYm91dCB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xufVxuXG4uY2hhbGstbW9kYWwtZXJyb3Ige1xuICBjb2xvcjogI2ZmNTU1NTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbn1cblxuLyogLS0gRm9ybSBmaWVsZHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jaGFsay1maWVsZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tY2hhbGstczEpO1xufVxuXG4uY2hhbGstZmllbGQtLWNoZWNrYm94IHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG59XG5cbi5jaGFsay1maWVsZC1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xufVxuXG4uY2hhbGstZmllbGQtaW5wdXQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1ib2R5KTtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpO1xufVxuLmNoYWxrLWZpZWxkLWlucHV0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xufVxuXG4uY2hhbGstZmllbGQtaGludCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKSAwO1xufVxuXG4vKiAtLSBGcmllbmQgcGlja2VyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmNoYWxrLWZyaWVuZC1waWNrZXIge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1heC1oZWlnaHQ6IDIwMHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xufVxuXG4uY2hhbGstZnJpZW5kLXBpY2tlci1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmNoYWxrLWZyaWVuZC1waWNrZXItaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYpO1xufVxuLmNoYWxrLWZyaWVuZC1waWNrZXItaXRlbS0tc2VsZWN0ZWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG59XG5cbi5jaGFsay1mcmllbmQtcGlja2VyLWlkIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG5cbi8qIC0tIEJ1dHRvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uY2hhbGstYnV0dG9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtYm9keSk7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKSB2YXIoLS1jaGFsay1zMyk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbn1cbi5jaGFsay1idXR0b246aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xufVxuLmNoYWxrLWJ1dHRvbjpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG59XG4uY2hhbGstYnV0dG9uOmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uY2hhbGstYnV0dG9uLS1wcmltYXJ5IHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbn1cblxuLmNoYWxrLWJ1dHRvbi0tc2Vjb25kYXJ5IHtcbiAgLyogZGVmYXVsdCBhcHBlYXJhbmNlOyBleHBsaWNpdCBjbGFzcyBmb3IgcmVhZGFiaWxpdHkgKi9cbn1cblxuLyogLS0gUGhhc2UgMDliIHN1Yi1zdGVwIDQ6IGF1dGggZmxvdyBzY3JlZW5zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uY2hhbGstYXV0aCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtaW4taGVpZ2h0OiAxMDBkdmg7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXM0KTtcbn1cblxuLmNoYWxrLWF1dGgtY2FyZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zNSk7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXgtd2lkdGg6IDQ4MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLWNoYWxrLXM0KTtcbn1cblxuLmNoYWxrLWF1dGgtY2FyZC0td2lkZSB7XG4gIG1heC13aWR0aDogNjQwcHg7XG59XG5cbi5jaGFsay1hdXRoLWhlYWRlciBoMiB7XG4gIG1hcmdpbjogMCAwIHZhcigtLWNoYWxrLXMyKSAwO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtdGl0bGUpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbn1cblxuLmNoYWxrLWF1dGgtc3VidGl0bGUge1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xufVxuXG4uY2hhbGstYXV0aC1zdWJ0aXRsZSBzdHJvbmcge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbn1cblxuLmNoYWxrLWF1dGgtZm9ybSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tY2hhbGstczMpO1xufVxuXG4uY2hhbGstYXV0aC1lcnJvciB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWVycm9yKTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDc3LCA3NywgMC4wOCk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1lcnJvcik7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMzKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbn1cblxuLmNoYWxrLWF1dGgtd2FybmluZyB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLXdhcm4pO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjA0LCAwLCAwLjA4KTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLXdhcm4pO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMyk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5jaGFsay1hdXRoLXdhcm5pbmcgc3Ryb25nIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG59XG5cbi5jaGFsay1maWVsZC1lcnJvciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1lcnJvcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG59XG5cbi5jaGFsay1maWVsZC1vcHRpb25hbCxcbi5jaGFsay1maWVsZC1yZXF1aXJlZCB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5jaGFsay1maWVsZC1yZXF1aXJlZCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay13YXJuKTtcbn1cblxuLmNoYWxrLWF1dGgtbGluayB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgcGFkZGluZzogMDtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cblxuLmNoYWxrLWF1dGgtbGluazpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xufVxuXG4uY2hhbGstYXV0aC1hY3Rpb25zLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5jaGFsay1hdXRoLWdhdGUge1xuICBib3JkZXItdG9wOiAxcHggZGFzaGVkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1jaGFsay1zMyk7XG59XG5cbi5jaGFsay1hdXRoLW1ldGEge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbiAgYm9yZGVyLXRvcDogMXB4IGRhc2hlZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBwYWRkaW5nLXRvcDogdmFyKC0tY2hhbGstczMpO1xufVxuXG4uY2hhbGstYXV0aC1tZXRhLWRldixcbi5jaGFsay1hdXRoLW1ldGEtd2FybiB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay13YXJuKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstd2Fybik7XG4gIHBhZGRpbmc6IDAgdmFyKC0tY2hhbGstczEpO1xuICBmb250LXNpemU6IGNhbGMoMTBweCAqIHZhcigtLWNoYWxrLWZvbnQtc2NhbGUpKTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbn1cblxuLmNoYWxrLWJ1dHRvbi0tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWZnKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWJnKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG59XG5cbi5jaGFsay1idXR0b24tLXByaW1hcnk6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1iZyk7XG4gIC8qIFRoZSBiYXNlIC5jaGFsay1idXR0b246aG92ZXIgcnVsZSBzZXRzIGNvbG9yIHRvIGZnLWJyaWdodCwgd2hpY2hcbiAgICAgY29sbGlkZXMgd2l0aCB0aGUgYnJpZ2h0ZXIgYmFja2dyb3VuZCBvbiBwcmltYXJ5IGFuZCBtYWtlcyB0aGVcbiAgICAgbGFiZWwgaW52aXNpYmxlLiBSZS1zdGF0ZSB0aGUgZGFyayB0ZXh0IGNvbG9yIGhlcmUgc28gaXQgd2luc1xuICAgICBieSBsYXRlci1ydWxlIHByZWNlZGVuY2UuICovXG4gIGNvbG9yOiB2YXIoLS1jaGFsay1iZyk7XG59XG5cbi5jaGFsay1idXR0b24tLXByaW1hcnk6ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uY2hhbGstcmVjb3Zlcnktd29yZHMge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMzKTtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWNoYWxrLWZvbnQpO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgLmNoYWxrLXJlY292ZXJ5LXdvcmRzIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICB9XG59XG5cbi5jaGFsay1yZWNvdmVyeS13b3JkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMSk7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbn1cblxuLmNoYWxrLXJlY292ZXJ5LXdvcmQtaW5kZXgge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBtaW4td2lkdGg6IDEuOGVtO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLmNoYWxrLXJlY292ZXJ5LXdvcmQtdGV4dCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtYmFzZSk7XG4gIHVzZXItc2VsZWN0OiBhbGw7XG59XG5cbi8qIHBoYXNlIDIyYy0zYzogdGhlIFwicmUtZW50ZXIgMyB3b3Jkc1wiIGNoYWxsZW5nZSB1bmRlciB0aGUgZGVjcnlwdGlvblxuICAgcGhyYXNlLiBFYWNoIGZpZWxkIGlzIGEgbm9ybWFsIC5jaGFsay1maWVsZCAobGFiZWwgb3ZlciBpbnB1dCk7IHRoaXNcbiAgIGp1c3Qgc3BhY2VzIHRoZSBncm91cC4gKi9cbi5jaGFsay1pZGVudGl0eS1jaGFsbGVuZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLWNoYWxrLXMzKTtcbiAgbWFyZ2luLXRvcDogdmFyKC0tY2hhbGstczQpO1xufVxuXG4vKiBwaGFzZSAwOWIgc3ViLXN0ZXAgNWI6IGNyb3NzLWxpbmsgYmV0d2VlbiBMb2dpblNjcmVlbiBhbmRcbiAgIFJlZ2lzdGVyU2NyZWVuIChcIm5vIGFjY291bnQ/IHJlZ2lzdGVyXCIgLyBcImhhdmUgYW4gYWNjb3VudD8gbG9nIGluXCIpLiAqL1xuLmNoYWxrLWF1dGgtYWx0IHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tY2hhbGstczQpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG59XG5cbi5jaGFsay1hdXRoLWFsdCAuY2hhbGstYXV0aC1saW5rIHtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWNoYWxrLXMxKTtcbn1cblxuLyogcGhhc2UgMDliIHN1Yi1zdGVwIDViOiBTdGF0dXNCYXIgZHJvcGRvd24gbWVudSAobG9nb3V0KS4gKi9cbi5jaGFsay1zdGF0dXMtbWVudSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uY2hhbGstc3RhdHVzLW1lbnUtdHJpZ2dlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbiAgZm9udDogaW5oZXJpdDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczEpIHZhcigtLWNoYWxrLXMyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG5cbi5jaGFsay1zdGF0dXMtbWVudS10cmlnZ2VyOmhvdmVyLFxuLmNoYWxrLXN0YXR1cy1tZW51LXRyaWdnZXJbYXJpYS1leHBhbmRlZD1cInRydWVcIl0ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG59XG5cbi8qIDg5LTE6IHdhaXRpbmcgZnJpZW5kIHJlcXVlc3RzLCBvbiB0aGUgXCJ5b3VcIiB0cmlnZ2VyIGFuZCBvbiB0aGUgZnJpZW5kcyBpdGVtXG4gICBpbnNpZGUgaXQuIFNoYXJlcyAuY2hhbGstZnJpZW5kcy1iYWRnZSdzIGxvb2sgKHNlZSB0aGUgZnJpZW5kcyBwYW5lbCkgc28gdGhlXG4gICBjb3VudCBhIHVzZXIgZm9sbG93cyBmcm9tIHRoZSB0YWIgdGl0bGUgdGhyb3VnaCB0aGUgbWVudSBpbnRvIHRoZSBwYW5lbCBpc1xuICAgdmlzaWJseSB0aGUgc2FtZSBjb3VudCB0aGUgd2hvbGUgd2F5OyBvbmx5IHRoZSBzcGFjaW5nIGlzIGxvY2FsLiAqL1xuLmNoYWxrLXN0YXR1cy1tZW51LWJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tbGVmdDogdmFyKC0tY2hhbGstczEpO1xufVxuXG4uY2hhbGstc3RhdHVzLW1lbnUtcG9wb3ZlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDEwMCUgKyB2YXIoLS1jaGFsay1zMSkpO1xuICByaWdodDogMDtcbiAgbWluLXdpZHRoOiA4cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjQpO1xuICB6LWluZGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmNoYWxrLXN0YXR1cy1tZW51LWl0ZW0ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMikgdmFyKC0tY2hhbGstczMpO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jaGFsay1zdGF0dXMtbWVudS1pdGVtOmhvdmVyLFxuLmNoYWxrLXN0YXR1cy1tZW51LWl0ZW06Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZyk7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi8qIHBoYXNlIDA5YiBzdWItc3RlcCA2OiByZWNvdmVyeS1sb2dpbiB0ZXh0YXJlYSArIHdhcm4tc3RhdGUgaGludC4gKi9cbi5jaGFsay1maWVsZC1pbnB1dC0tdGV4dGFyZWEge1xuICByZXNpemU6IHZlcnRpY2FsO1xuICBtaW4taGVpZ2h0OiA2ZW07XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1jaGFsay1tb25vLCB1aS1tb25vc3BhY2UsIG1vbm9zcGFjZSk7XG59XG5cbi5jaGFsay1maWVsZC1oaW50LS13YXJuIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLXdhcm4pO1xufVxuXG4vKiA9PT09PSBQaGFzZSAwOWMtMjogaW52aXRlcyArIHByb2ZpbGUgcGFuZWxzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogV2lkZXIgbW9kYWwgdmFyaWFudCBmb3IgUHJvZmlsZVBhbmVsJ3Mgcm90YXRlLXJlY292ZXJ5IHZpZXcsIHdoaWNoXG4gICByZXVzZXMgUmVjb3ZlcnlTY3JlZW4gKGRlc2lnbmVkIGZvciB0aGUgYXV0aCBmbG93J3Mgd2lkZSBjYXJkKS4gKi9cbi5jaGFsay1tb2RhbC0td2lkZSB7XG4gIG1heC13aWR0aDogNzIwcHg7XG59XG5cbi8qIENvbW1vbiB0eXBvZ3JhcGh5IGluc2lkZSBtb2RhbCBib2RpZXMgZm9yIHRoZXNlIHR3byBwYW5lbHM6IGEgc21hbGxcbiAgIHVwcGVyY2FzZS1pc2ggc2VjdGlvbiBoZWFkaW5nIHRoYXQgbWF0Y2hlcyB0aGUgbW9kYWwtaGVhZGVyIHN0eWxlLiAqL1xuLmNoYWxrLW1vZGFsLWJvZHkgaDMge1xuICBtYXJnaW46IDAgMCB2YXIoLS1jaGFsay1zMik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1ib2R5KTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG59XG5cbi5jaGFsay1tb2RhbC1ib2R5ID4gc2VjdGlvbiArIHNlY3Rpb24ge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1jaGFsay1zNSk7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1jaGFsay1zNSk7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xufVxuXG4vKiAtLS0tIEludml0ZXNQYW5lbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jaGFsay1pbnZpdGVzLWNyZWF0ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xufVxuXG4uY2hhbGstaW52aXRlcy1saXN0LXNlY3Rpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbn1cblxuLmNoYWxrLWludml0ZXMtbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMyk7XG59XG5cbi5jaGFsay1pbnZpdGUtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMSk7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMzKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG59XG5cbi5jaGFsay1pbnZpdGUtcm93LW1haW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xufVxuXG4uY2hhbGstaW52aXRlLWVtYWlsIHtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG59XG5cbi5jaGFsay1pbnZpdGUtc3RhdHVzIHtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuICBwYWRkaW5nOiAycHggdmFyKC0tY2hhbGstczIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xufVxuXG4uY2hhbGstaW52aXRlLXN0YXR1cy0tYWN0aXZlIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG59XG5cbi5jaGFsay1pbnZpdGUtc3RhdHVzLS11c2VkIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG59XG5cbi5jaGFsay1pbnZpdGUtc3RhdHVzLS1yZXZva2VkIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbn1cblxuLmNoYWxrLWludml0ZS1zdGF0dXMtLWV4cGlyZWQge1xuICBjb2xvcjogdmFyKC0tY2hhbGstd2Fybik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstd2Fybik7XG59XG5cbi5jaGFsay1pbnZpdGUtbm90ZSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5jaGFsay1pbnZpdGUtbWV0YSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG59XG5cbi5jaGFsay1pbnZpdGUtdXJsLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1jaGFsay1zMSk7XG59XG5cbi5jaGFsay1pbnZpdGUtdXJsIHtcbiAgZmxleDogMTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWNoYWxrLWZvbnQpO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZyk7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMxKSB2YXIoLS1jaGFsay1zMik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5jaGFsay1pbnZpdGUtYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1jaGFsay1zMSk7XG59XG5cbi8qIC0tLS0gUHJvZmlsZVBhbmVsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmNoYWxrLXByb2ZpbGUtaWRlbnRpdHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbn1cblxuLmNoYWxrLXByb2ZpbGUtZmllbGRzIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtYXgtY29udGVudCAxZnI7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpIHZhcigtLWNoYWxrLXM0KTtcbiAgbWFyZ2luOiAwO1xufVxuXG4uY2hhbGstcHJvZmlsZS1maWVsZHMgZHQge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xufVxuXG4uY2hhbGstcHJvZmlsZS1maWVsZHMgZGQge1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG4uY2hhbGstcHJvZmlsZS1maWVsZHMgZGQgZW0ge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5jaGFsay1wcm9maWxlLWVtYWlsLWNoYW5nZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xufVxuXG4uY2hhbGstcHJvZmlsZS1wZW5kaW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMzKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG59XG5cbi5jaGFsay1wcm9maWxlLXBlbmRpbmcgcCB7XG4gIG1hcmdpbjogMDtcbn1cblxuLmNoYWxrLXByb2ZpbGUtcm90YXRlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG59XG5cbi8qIC0tLS0gUGhhc2UgNjg6IHByb2ZpbGUgc2V0dGluZ3MgdGFicyArIGZpbHRlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogQm90aCBzaXQgYmV0d2VlbiB0aGUgbW9kYWwgaGVhZGVyIGFuZCB0aGUgYm9keSBzbyB0aGV5IGRvbid0IHNjcm9sbFxuICAgYXdheSB3aXRoIHRoZSBib2R5ICh0aGUgYm9keSBpcyB0aGUgbW9kYWwncyBzY3JvbGwgc3VyZmFjZSkuICovXG5cbi5jaGFsay1wcm9maWxlLWZpbHRlciB7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKSB2YXIoLS1jaGFsay1zNCkgMCB2YXIoLS1jaGFsay1zNCk7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uY2hhbGstcHJvZmlsZS1maWx0ZXItaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldiwgIzE0MjAxYSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG4gIHBhZGRpbmc6IDAuM3JlbSAwLjVyZW07XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmNoYWxrLXByb2ZpbGUtZmlsdGVyLWlucHV0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xufVxuLmNoYWxrLXByb2ZpbGUtZmlsdGVyLWlucHV0OjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5jaGFsay1wcm9maWxlLWZpbHRlci1lbXB0eSB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczQpIDA7XG59XG5cbi5jaGFsay1wcm9maWxlLXRhYnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICAvKiA3MC0yOiB3cmFwIHJhdGhlciB0aGFuIHNjcm9sbCBcdTIwMTQgYSBwaWxsIHRoYXQgaGFzIHNjcm9sbGVkIG9mZiB0aGUgZWRnZVxuICAgICBpcyBhIHNlY3Rpb24gdGhhdCBkb2Vzbid0IGV4aXN0LCB3aGljaCBpcyBleGFjdGx5IHdyb25nIG9uIGEgcGhvbmUuICovXG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKSB2YXIoLS1jaGFsay1zNCk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLmNoYWxrLXByb2ZpbGUtdGFiLWJ0biB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczEpIHZhcigtLWNoYWxrLXMyKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWNoYWxrLWZvbnQpO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcywgY29sb3IgMC4xcywgYm9yZGVyLWNvbG9yIDAuMXM7XG59XG5cbi5jaGFsay1wcm9maWxlLXRhYi1idG46aG92ZXIge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG59XG5cbi5jaGFsay1wcm9maWxlLXRhYi1idG4tLWFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1iZyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWZnKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG59XG5cbi5jaGFsay1wcm9maWxlLXRhYi1idG4tLWFjdGl2ZTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1iZyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbn1cblxuLyogLS0tLSAxMjQtMTogc2V0dGluZ3MgZGlhbG9ncyAtLSBncm91cCBjYXJkcywgb3B0aW9uIHJvd3MsIHN3aXRjaGVzIC0tLSAqL1xuLyogU2NvcGVkIHVuZGVyIC5jaGFsay1tb2RhbC0tc2V0dGluZ3MsIHdoaWNoIG9ubHkgdGhlIHByb2ZpbGUgcGFuZWwgYW5kXG4gICB0aGUgdm9pY2UgJiB2aWRlbyBkaWFsb2cgY2FycnkuIE5vdGlmaWNhdGlvbnNQYW5lbCwgV2hhdHNOZXdOdWRnZSBhbmRcbiAgIEF2YXRhck51ZGdlIHJldXNlIC5jaGFsay1wcm9maWxlLWhpbnQsIHRoZSBzb3VuZCBsaXN0IGFuZCB0aGUgdGhlbWVcbiAgIHBpY2tlciBtYXJrdXAgYW5kIGtlZXAgdGhlIGVhcmxpZXIgbG9vayBvbiBwdXJwb3NlIC0tIHdpdGhvdXQgdGhlIHNjb3BlXG4gICB0aGlzIHJlc3R5bGUgd291bGQgcmVhY2ggYWxsIHRocmVlIHVuaW52aXRlZC5cblxuICAgQmVmb3JlIHRoaXMgcGhhc2UgLmNoYWxrLXByb2ZpbGUtZmllbGQgYW5kIC5jaGFsay1wcm9maWxlLWxhYmVsIGhhZCBub1xuICAgcnVsZSBhdCBhbGwuIEEgcm93J3Mgb25seSBzZXBhcmF0aW9uIGNhbWUgZnJvbSB0aGUgYnJvd3NlcidzIGRlZmF1bHRcbiAgIDFlbSBtYXJnaW4gdW5kZXIgYSA8cD4sIHNvIG5vdGhpbmcgc2hvd2VkIHdoZXJlIG9uZSBvcHRpb24gZW5kZWQgYW5kXG4gICB0aGUgbmV4dCBiZWdhbi4gQmVsb3csIGVhY2ggPHNlY3Rpb24+IGJlY29tZXMgYSBib3JkZXJlZCBjYXJkIGFuZCBlYWNoXG4gICByb3cncyBkZWZhdWx0IGxheW91dCBpcyBhIHN0YWNrZWQgY29sdW1uOyBhIHNlbGVjdCByb3cgaXMgdGhlIG9uZSBjYXNlXG4gICB0aGF0IGdyaWRzIGludG8gdHdvIGNvbHVtbnMgaW5zdGVhZCAoc2VlIGZ1cnRoZXIgZG93bikuICovXG5cbi5jaGFsay1tb2RhbC0tc2V0dGluZ3MgLmNoYWxrLW1vZGFsLWJvZHkgPiBzZWN0aW9uIHtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpIHZhcigtLWNoYWxrLXMzKSB2YXIoLS1jaGFsay1zMyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xufVxuXG4uY2hhbGstbW9kYWwtLXNldHRpbmdzIC5jaGFsay1tb2RhbC1ib2R5ID4gc2VjdGlvbiArIHNlY3Rpb24ge1xuICBtYXJnaW4tdG9wOiAwO1xuICBwYWRkaW5nLXRvcDogdmFyKC0tY2hhbGstczIpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbn1cblxuLmNoYWxrLW1vZGFsLS1zZXR0aW5ncyAuY2hhbGstbW9kYWwtYm9keSBoMyB7XG4gIG1hcmdpbjogMCAwIHZhcigtLWNoYWxrLXMxKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjEyZW07XG59XG5cbi5jaGFsay1tb2RhbC0tc2V0dGluZ3MgLmNoYWxrLW1vZGFsLWJvZHkgPiBzZWN0aW9uID4gLmNoYWxrLXByb2ZpbGUtaGludCB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWNoYWxrLXMyKTtcbn1cblxuLyogQSByb3cgc3RhY2tzIGl0cyBjaGlsZHJlbiBpbiBhIGNvbHVtbiBieSBkZWZhdWx0LCBzbyByYW5nZXMsIHBpY2tlcnMsXG4gICBzb3VuZCBsaXN0cywgdGhlIG1pYyBtZXRlciBhbmQgYnV0dG9uIHJvd3MgbmVlZCBubyBydWxlIG9mIHRoZWlyIG93bi5cbiAgIE9ubHkgYSBzZWxlY3Qgcm93IChmdXJ0aGVyIGRvd24pIHN3aXRjaGVzIHRvIGEgdHdvLWNvbHVtbiBncmlkLiAqL1xuLmNoYWxrLW1vZGFsLS1zZXR0aW5ncyAuY2hhbGstcHJvZmlsZS1maWVsZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMikgMDtcbn1cblxuLyogfiByYXRoZXIgdGhhbiArOiBNaWNTZXR0aW5ncyBwdXRzIGEgcGxhaW4gPHA+IGJldHdlZW4gdHdvIGZpZWxkcyAodGhlXG4gICBcInByZXNzIHRlc3QgYW5kIHRhbGsgbm9ybWFsbHkuLi5cIiBwYXJhZ3JhcGggdW5kZXIgdGhlIG1ldGVyKSwgYW5kICtcbiAgIHdvdWxkIGxldCB0aGF0IHBhcmFncmFwaCBzd2FsbG93IHRoZSBoYWlybGluZSBtZWFudCBmb3IgdGhlIHJvdyBhZnRlclxuICAgaXQgaW5zdGVhZCBvZiBwYXNzaW5nIGl0IHRocm91Z2ggdG8gdGhlIG5leHQgLmNoYWxrLXByb2ZpbGUtZmllbGQuICovXG4uY2hhbGstbW9kYWwtLXNldHRpbmdzIC5jaGFsay1wcm9maWxlLWZpZWxkIH4gLmNoYWxrLXByb2ZpbGUtZmllbGQge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbn1cblxuLmNoYWxrLW1vZGFsLS1zZXR0aW5ncyAuY2hhbGstcHJvZmlsZS1maWVsZDpsYXN0LWNoaWxkIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi8qIFJldGlyZXMgdGhlIGFkLWhvYyBtYXJnaW4tdG9wIHRoYXQgLmNoYWxrLXByb2ZpbGUtdGhlbWUtcGlja2VyLFxuICAgLXNvdW5kLWxpc3QsIC1taWMtdGVzdCwgLWNhbWVyYS1wcmV2aWV3LCAtZmxhaXItdGhyZXNob2xkLFxuICAgLmNoYWxrLXVzZXItY29sb3JzIGFuZCAtZnJhbWUtcGlja2VyIGVhY2ggY2FycmllZCBvbiB0aGVpciBvd24gYmVmb3JlXG4gICB0aGlzIHBoYXNlLiBUaGUgcm93J3MgZmxleCBnYXAgaXMgdGhlIHJoeXRobSBub3cuICovXG4uY2hhbGstbW9kYWwtLXNldHRpbmdzIC5jaGFsay1wcm9maWxlLWZpZWxkID4gKiB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi5jaGFsay1tb2RhbC0tc2V0dGluZ3MgLmNoYWxrLXByb2ZpbGUtZmllbGQgPiBidXR0b24ge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xufVxuXG4uY2hhbGstbW9kYWwtLXNldHRpbmdzIC5jaGFsay1wcm9maWxlLWZpZWxkOmhhcyg+IC5jaGFsay1hdXRoLWxpbmspIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xufVxuXG4uY2hhbGstbW9kYWwtLXNldHRpbmdzIC5jaGFsay1wcm9maWxlLWxhYmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAycHg7XG4gIG1pbi13aWR0aDogMDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbn1cblxuLyogRGVzY3JpcHRpb24gKHVuZGVyIHRoZSBsYWJlbDogd2hhdCB0aGUgb3B0aW9uIGlzKSBhbmQgaGludCAodW5kZXIgdGhlXG4gICBjb250cm9sOiB3aGF0IHRvIGtub3cpIHNoYXJlIG9uZSBydWxlIGluc2lkZSB0aGVzZSBkaWFsb2dzOiBkaW0sIHNtYWxsXG4gICBhbmQgdXByaWdodC4gUG9zaXRpb24gYWxyZWFkeSB0ZWxscyB0aGUgdHdvIGFwYXJ0LCBhbmQgaXRhbGljIDEycHhcbiAgIG1vbm9zcGFjZSAtLSAuY2hhbGstcHJvZmlsZS1oaW50J3MgdXN1YWwgc3R5bGUgb3V0c2lkZSB0aGlzIHNjb3BlIC0tIGlzXG4gICB0aGUgbGVhc3QgbGVnaWJsZSB0ZXh0IGluIHRoZSBhcHAgb24gc2V2ZXJhbCB0aGVtZXMuICovXG4uY2hhbGstbW9kYWwtLXNldHRpbmdzIC5jaGFsay1wcm9maWxlLWRlc2MsXG4uY2hhbGstbW9kYWwtLXNldHRpbmdzIC5jaGFsay1wcm9maWxlLWhpbnQge1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi5jaGFsay1tb2RhbC0tc2V0dGluZ3MgLmNoYWxrLXByb2ZpbGUtZGVzYyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKiBBIHNlbGVjdCByb3cgZ3JpZHMgaW50byB0d28gY29sdW1ucywgbGFiZWwgb24gdGhlIGxlZnQgYW5kIGNvbnRyb2wgb25cbiAgIHRoZSByaWdodCwgYmVjYXVzZSBhIHRyYWlsaW5nIC5jaGFsay1wcm9maWxlLWhpbnQgdW5kZXIgdGhlIGNvbnRyb2wgaGFzXG4gICB0byBzcGFuIGJvdGggY29sdW1ucyBiZW5lYXRoIGl0IC0tIGEgZmxleCByb3cgY2Fubm90IGRvIHRoYXQgd2l0aG91dFxuICAgd3JhcHBpbmcgdGhlIGhpbnQgaW4gYW5vdGhlciBlbGVtZW50LiAqL1xuLmNoYWxrLW1vZGFsLS1zZXR0aW5ncyAuY2hhbGstcHJvZmlsZS1maWVsZDpoYXMoPiAuY2hhbGstcHJvZmlsZS1zZWxlY3QpIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoNDUlLCAxZnIpIG1pbm1heCgwLCBhdXRvKTtcbiAgY29sdW1uLWdhcDogdmFyKC0tY2hhbGstczMpO1xuICByb3ctZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5jaGFsay1tb2RhbC0tc2V0dGluZ3MgLmNoYWxrLXByb2ZpbGUtZmllbGQ6aGFzKD4gLmNoYWxrLXByb2ZpbGUtc2VsZWN0KSA+IC5jaGFsay1wcm9maWxlLXNlbGVjdCB7XG4gIGp1c3RpZnktc2VsZjogZW5kO1xuICBtaW4td2lkdGg6IDA7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuLmNoYWxrLW1vZGFsLS1zZXR0aW5nc1xuICAuY2hhbGstcHJvZmlsZS1maWVsZDpoYXMoPiAuY2hhbGstcHJvZmlsZS1zZWxlY3QpXG4gID4gOm5vdCguY2hhbGstcHJvZmlsZS1sYWJlbCk6bm90KC5jaGFsay1wcm9maWxlLXNlbGVjdCkge1xuICBncmlkLWNvbHVtbjogMSAvIC0xO1xufVxuXG4uY2hhbGstbW9kYWwtLXNldHRpbmdzIC5jaGFsay1wcm9maWxlLWZpZWxkOmhhcyg+IC5jaGFsay1wcm9maWxlLXNlbGVjdDpkaXNhYmxlZCkgPiAuY2hhbGstcHJvZmlsZS1sYWJlbCxcbi5jaGFsay1tb2RhbC0tc2V0dGluZ3MgLmNoYWxrLXByb2ZpbGUtZmllbGQ6aGFzKD4gLmNoYWxrLXByb2ZpbGUtcmFuZ2U6ZGlzYWJsZWQpID4gLmNoYWxrLXByb2ZpbGUtbGFiZWwge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xufVxuXG4vKiBEcmF3biBhcyBhIHN3aXRjaCBiZWxvdywgYnV0IHN0aWxsIGFuIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIj46IGV2ZXJ5XG4gICBkYXRhLXRlc3RpZCwga2V5Ym9hcmQgaW50ZXJhY3Rpb24gYW5kIGV4aXN0aW5nIHRlc3QgYWdhaW5zdCBpdCBrZWVwc1xuICAgd29ya2luZyB1bmNoYW5nZWQuIG9yZGVyOiAxIG9uIHRoZSBpbnB1dCwgd2l0aCBqdXN0aWZ5LWNvbnRlbnQ6XG4gICBzcGFjZS1iZXR3ZWVuIGhlcmUgb24gdGhlIGxhYmVsLCBtb3ZlcyB0aGUgc3dpdGNoIHRvIHRoZSByaWdodCBlZGdlXG4gICB3aXRob3V0IHJlb3JkZXJpbmcgYW55IEpTWCAtLSB3aGljaCBpcyBhbHNvIHdoeSB0aGUgZm91ciBjaGVja2JveFxuICAgbGFiZWxzIHdpdGggbm8gd3JhcHBpbmcgPHNwYW4+IGFyb3VuZCB0aGVpciB0ZXh0IHN0aWxsIHJlYWQgcmlnaHQuICovXG4uY2hhbGstbW9kYWwtLXNldHRpbmdzIC5jaGFsay1wcm9maWxlLWNoZWNrYm94LWxhYmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IHZhcigtLWNoYWxrLXMzKTtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5jaGFsay1tb2RhbC0tc2V0dGluZ3MgLmNoYWxrLXByb2ZpbGUtY2hlY2tib3gtbGFiZWwgPiBzcGFuIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAycHg7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5jaGFsay1tb2RhbC0tc2V0dGluZ3MgLmNoYWxrLXByb2ZpbGUtY2hlY2tib3gtbGFiZWw6aGFzKD4gaW5wdXQ6ZGlzYWJsZWQpIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLmNoYWxrLW1vZGFsLS1zZXR0aW5ncyAuY2hhbGstcHJvZmlsZS1jaGVja2JveC1sYWJlbCA+IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgb3JkZXI6IDE7XG4gIGZsZXg6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDMwcHg7XG4gIGhlaWdodDogMTZweDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2LTIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1mZy1tdXRlZCk7IC8qIG5vdCAtLWNoYWxrLWJvcmRlcjogb24gdGhlIGRhcmsgdGhlbWVzIGl0IHNpdHMgdG9vIGNsb3NlIHRvIHRoZSBjYXJkIGZpbGwsIGFuZCBhbiB1bmNoZWNrZWQgc3dpdGNoIGhhZCBubyB2aXNpYmxlIG91dGxpbmUgKi9cbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTsgLyogb24gTENBUlMsIDEwcHggdHVybnMgdGhpcyB0cmFjayBhbmQgaXRzIGtub2IgaW50byBhIHBpbGwgd2l0aCBubyBleHRyYSBydWxlIC0tIGJvdGggY29tZSBmcm9tIHRoZSBzYW1lIHRva2VuICovXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxMjBtcyBlYXNlLCBib3JkZXItY29sb3IgMTIwbXMgZWFzZTtcbn1cblxuLmNoYWxrLW1vZGFsLS1zZXR0aW5ncyAuY2hhbGstcHJvZmlsZS1jaGVja2JveC1sYWJlbCA+IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDJweDtcbiAgbGVmdDogMnB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMTIwbXMgZWFzZSwgYmFja2dyb3VuZCAxMjBtcyBlYXNlO1xufVxuXG4uY2hhbGstbW9kYWwtLXNldHRpbmdzIC5jaGFsay1wcm9maWxlLWNoZWNrYm94LWxhYmVsID4gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xufVxuXG4uY2hhbGstbW9kYWwtLXNldHRpbmdzIC5jaGFsay1wcm9maWxlLWNoZWNrYm94LWxhYmVsID4gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmNoZWNrZWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWFjY2VudCk7XG59XG5cbi5jaGFsay1tb2RhbC0tc2V0dGluZ3MgLmNoYWxrLXByb2ZpbGUtY2hlY2tib3gtbGFiZWwgPiBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZDo6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDE0cHgpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZyk7XG59XG5cbi5jaGFsay1tb2RhbC0tc2V0dGluZ3MgLmNoYWxrLXByb2ZpbGUtY2hlY2tib3gtbGFiZWwgPiBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4uY2hhbGstbW9kYWwtLXNldHRpbmdzIC5jaGFsay1wcm9maWxlLWNoZWNrYm94LWxhYmVsID4gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdOmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41O1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4vKiBUdXJucyBvZmYgYm90aCBzd2l0Y2ggdHJhbnNpdGlvbnMgZm9yIGEgcmVhZGVyIHdobyBhc2tlZCBmb3IgbGVzc1xuICAgbW90aW9uLiAqL1xuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLmNoYWxrLW1vZGFsLS1zZXR0aW5ncyAuY2hhbGstcHJvZmlsZS1jaGVja2JveC1sYWJlbCA+IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbiAgLmNoYWxrLW1vZGFsLS1zZXR0aW5ncyAuY2hhbGstcHJvZmlsZS1jaGVja2JveC1sYWJlbCA+IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTo6YmVmb3JlIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG5cbi8qIFRocmVlIGZpbGxzIHRoYXQgZGlzc29sdmVkIG9uY2UgdGhlaXIgZWxlbWVudCBzYXQgb24gYSBjYXJkLCBhbGwgc3RpbGxcbiAgIHRva2VuLWRlcml2ZWQuIFRoZSBhY3RpdmUgdGhlbWUgc3dhdGNoIGFuZCB0aGUgY2FtZXJhIGJ1dHRvbidzIGhvdmVyXG4gICBtb3ZlIHVwIGEgc3RlcCB0byAtLWNoYWxrLWJnLWVsZXYtMiBzbyB0aGV5IHN0aWxsIHNob3cgYWdhaW5zdCB0aGVcbiAgIGNhcmQ7IHRoZSBmaWVsZCBpbnB1dCBkcm9wcyB0byAtLWNoYWxrLWJnIHNvIGl0IHJlYWRzIHN1bmtlbiBpbnN0ZWFkXG4gICBvZiBmbHVzaCB3aXRoIHRoZSBjYXJkIGFyb3VuZCBpdC4gKi9cbi5jaGFsay1tb2RhbC0tc2V0dGluZ3MgLmNoYWxrLXByb2ZpbGUtdGhlbWUtb3B0aW9uLS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2LTIpO1xufVxuXG4uY2hhbGstbW9kYWwtLXNldHRpbmdzIC5jaGFsay1maWVsZC1pbnB1dCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnKTtcbn1cblxuLmNoYWxrLW1vZGFsLS1zZXR0aW5ncyAuY2hhbGstcHJvZmlsZS1jYW1lcmEtYnRuOmhvdmVyLFxuLmNoYWxrLW1vZGFsLS1zZXR0aW5ncyAuY2hhbGstcHJvZmlsZS1jYW1lcmEtYnRuOmZvY3VzLXZpc2libGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2LTIpO1xufVxuXG4uY2hhbGstbW9kYWwtLXNldHRpbmdzIC5jaGFsay1wcm9maWxlLXNvdW5kLWxpc3Qge1xuICBnYXA6IHZhcigtLWNoYWxrLXMxKTtcbn1cblxuLmNoYWxrLW1vZGFsLS1zZXR0aW5ncyAuY2hhbGstcHJvZmlsZS1zb3VuZC1yb3cge1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczEpIDA7XG59XG5cbi8qIGRpc3BsYXk6IGNvbnRlbnRzIGRyb3BzIHRoZSBsYWJlbCdzIG93biBib3gsIHNvIGl0cyBcInBsYXlcIiBidXR0b25cbiAgIHNpYmxpbmcgKC5jaGFsay1wcm9maWxlLXNvdW5kLXByZXZpZXcpIGNhbiBqb2luIHRoZSBzYW1lIGZsZXggbGluZSBhc1xuICAgdGhlIHN3aXRjaDogbmFtZSBhbmQgZGVzY3JpcHRpb24sIHRoZW4gcGxheSwgdGhlbiBzd2l0Y2guIFRoZSBsYWJlbFxuICAgc3RheXMgaW4gdGhlIERPTSwgc28gaXQgc3RpbGwgcGFpcnMgdGhlIGNoZWNrYm94IHdpdGggaXRzIHRleHQuICovXG4uY2hhbGstbW9kYWwtLXNldHRpbmdzIC5jaGFsay1wcm9maWxlLXNvdW5kLXJvdyA+IC5jaGFsay1wcm9maWxlLWNoZWNrYm94LWxhYmVsIHtcbiAgZGlzcGxheTogY29udGVudHM7XG59XG5cbi5jaGFsay1tb2RhbC0tc2V0dGluZ3MgLmNoYWxrLXByb2ZpbGUtc291bmQtcm93ID4gc3Bhbixcbi5jaGFsay1tb2RhbC0tc2V0dGluZ3MgLmNoYWxrLXByb2ZpbGUtc291bmQtcm93ID4gLmNoYWxrLXByb2ZpbGUtY2hlY2tib3gtbGFiZWwgPiBzcGFuIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAycHg7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5jaGFsay1tb2RhbC0tc2V0dGluZ3MgLmNoYWxrLXByb2ZpbGUtc291bmQtcm93ID4gLmNoYWxrLXByb2ZpbGUtc291bmQtcHJldmlldyB7XG4gIG9yZGVyOiAxO1xufVxuXG4uY2hhbGstbW9kYWwtLXNldHRpbmdzIC5jaGFsay1wcm9maWxlLXNvdW5kLXJvdyA+IC5jaGFsay1wcm9maWxlLWNoZWNrYm94LWxhYmVsID4gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgb3JkZXI6IDI7XG59XG5cbi8qIElubGluZSBkaXNtaXNzLWxpbmsgaW5zaWRlIGFuIGVycm9yIGJhbm5lciAodXNlZCBieSBJbnZpdGVzUGFuZWxcbiAgIHJvdy1sZXZlbCByZXZva2UgZXJyb3IpLiAqL1xuLmNoYWxrLWF1dGgtZXJyb3IgLmNoYWxrLWF1dGgtbGluayB7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1jaGFsay1zMik7XG59XG5cbi8qIC0tLS0gUGhhc2UgMDlkLTJiOiBhZG1pbiBtb2RlcmF0aW9uIHBhbmVsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uY2hhbGstYWRtaW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDBkdmg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbn1cblxuLmNoYWxrLWFkbWluLS1mdWxsIHtcbiAgLyogV2hlbiB0aGUgYWRtaW4gcGFuZWwgaXMgdGhlIHRvcC1sZXZlbCB2aWV3IChyb3V0ZSA9PT0gXCJhZG1pblwiKSxcbiAgICAgaXQgb3ducyB0aGUgd2hvbGUgdmlld3BvcnQuICovXG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDUwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY2hhbGstYWRtaW4taGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zNCk7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMzKSB2YXIoLS1jaGFsay1zNCk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5jaGFsay1hZG1pbi1iYWNrIHtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5jaGFsay1hZG1pbi10aXRsZSB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXRpdGxlKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uY2hhbGstYWRtaW4tdGFicyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuLmNoYWxrLWFkbWluLXRhYi1idG4ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKSB2YXIoLS1jaGFsay1zMyk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1jaGFsay1mb250KTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLWJhc2UpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xcywgY29sb3IgMC4xcywgYm9yZGVyLWNvbG9yIDAuMXM7XG59XG5cbi5jaGFsay1hZG1pbi10YWItYnRuOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xufVxuXG4uY2hhbGstYWRtaW4tdGFiLWJ0bi0tYWN0aXZlIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWJnKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstZmcpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbn1cblxuLmNoYWxrLWFkbWluLXRhYi1idG4tLWFjdGl2ZTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1iZyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbn1cblxuLmNoYWxrLWFkbWluLWJvZHkge1xuICBmbGV4OiAxO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zNCk7XG59XG5cbi5jaGFsay1hZG1pbi10YWIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLWNoYWxrLXMzKTtcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4uY2hhbGstYWRtaW4tdG9vbGJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tY2hhbGstczMpO1xufVxuXG4uY2hhbGstYWRtaW4tdG9vbGJhci10aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4uY2hhbGstYWRtaW4tc2VhcmNoIHtcbiAgZmxleDogMTtcbn1cblxuLmNoYWxrLWFkbWluLXNlYXJjaCAuY2hhbGstZmllbGQtaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNoYWxrLWFkbWluLXJlZnJlc2gge1xuICBmbGV4LXNocmluazogMDtcbn1cblxuLmNoYWxrLWFkbWluLWFjdGlvbi1lcnJvciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMikgdmFyKC0tY2hhbGstczMpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1lcnJvcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCA3NywgNzcsIDAuMDgpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZXJyb3IpO1xufVxuXG4uY2hhbGstYWRtaW4tYWN0aW9uLWVycm9yLWRpc21pc3Mge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWVycm9yKTtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIHBhZGRpbmc6IDAgdmFyKC0tY2hhbGstczEpO1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi5jaGFsay1hZG1pbi1hY3Rpb24tZXJyb3ItZGlzbWlzczpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xufVxuXG4uY2hhbGstYWRtaW4tZW1wdHkge1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zNik7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLmNoYWxrLWFkbWluLXRhYmxlLXdyYXAge1xuICBvdmVyZmxvdy14OiBhdXRvO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xufVxuXG4uY2hhbGstYWRtaW4tdGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLWJhc2UpO1xufVxuXG4uY2hhbGstYWRtaW4tdGFibGUgdGhlYWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbn1cblxuLmNoYWxrLWFkbWluLXRhYmxlIHRoIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpIHZhcigtLWNoYWxrLXMzKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbn1cblxuLmNoYWxrLWFkbWluLXRhYmxlIHRkIHtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpIHZhcigtLWNoYWxrLXMzKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5jaGFsay1hZG1pbi10YWJsZSB0cjpsYXN0LWNoaWxkIHRkIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLmNoYWxrLWFkbWluLXJvdyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjFzO1xufVxuXG4uY2hhbGstYWRtaW4tcm93OmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG59XG5cbi5jaGFsay1hZG1pbi1yb3ctLWJsb2NrZWQge1xuICBjb2xvcjogdmFyKC0tY2hhbGstd2Fybik7XG59XG5cbi5jaGFsay1hZG1pbi1yb3ctLWRlbGV0ZWQge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG59XG5cbi5jaGFsay1hZG1pbi1jZWxsLXVzZXJuYW1lIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5jaGFsay1hZG1pbi1jZWxsLWVtYWlsIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWNoYWxrLWZvbnQpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbn1cblxuLmNoYWxrLWFkbWluLWNlbGwtc3RhdHVzIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNoYWxrLWFkbWluLWNlbGwtY3JlYXRlZCxcbi5jaGFsay1hZG1pbi1jZWxsLWZvcm1lciB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xufVxuXG4uY2hhbGstYWRtaW4tY2VsbC1hY3Rpb25zIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG1pbi13aWR0aDogMjIwcHg7XG59XG5cbi5jaGFsay1hZG1pbi10YWJsZS1hY3Rpb25zLWNvbCB7XG4gIHdpZHRoOiAyMjBweDtcbn1cblxuLmNoYWxrLWFkbWluLXN0YXR1cy1waWxsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAycHggdmFyKC0tY2hhbGstczIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgYm9yZGVyOiAxcHggc29saWQ7XG59XG5cbi5jaGFsay1hZG1pbi1zdGF0dXMtcGlsbC0tYWN0aXZlIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG59XG5cbi5jaGFsay1hZG1pbi1zdGF0dXMtcGlsbC0tYWRtaW4ge1xuICBjb2xvcjogdmFyKC0tY2hhbGstYWNjZW50KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xufVxuXG4uY2hhbGstYWRtaW4tc3RhdHVzLXBpbGwtLWJsb2NrZWQge1xuICBjb2xvcjogdmFyKC0tY2hhbGstd2Fybik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstd2Fybik7XG59XG5cbi5jaGFsay1hZG1pbi1zdGF0dXMtcGlsbC0tZGVsZXRlZCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xufVxuXG4uY2hhbGstYWRtaW4tcm93LWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IHZhcigtLWNoYWxrLXMxKTtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgLyogSG92ZXItcmV2ZWFsOiBoaWRkZW4gYnkgZGVmYXVsdCwgdmlzaWJsZSB3aGVuIHRoZSByb3cgaXMgaG92ZXJlZFxuICAgICBvciBhbnkgYnV0dG9uIGluc2lkZSBpcyBmb2N1c2VkIChrZXlib2FyZCBhMTF5KS4gKi9cbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzO1xufVxuXG4uY2hhbGstYWRtaW4tcm93OmhvdmVyIC5jaGFsay1hZG1pbi1yb3ctYWN0aW9ucyxcbi5jaGFsay1hZG1pbi1yb3ctYWN0aW9uczpmb2N1cy13aXRoaW4ge1xuICBvcGFjaXR5OiAxO1xufVxuXG4vKiBQaGFzZSA5LjUgKEI4L0M0KTogb24gdG91Y2ggZGV2aWNlcyBhbmQgbmFycm93IHZpZXdwb3J0cywgdGhlXG4gICBob3Zlci1yZXZlYWwgaGlkZXMgYWN0aW9ucyBwZXJtYW5lbnRseSBiZWNhdXNlIG5vIGhvdmVyIGV2ZW50XG4gICBldmVyIGZpcmVzLiBTaG93IHRoZW0gYnkgZGVmYXVsdCBpbiB0aG9zZSBlbnZpcm9ubWVudHMuICovXG5AbWVkaWEgKGhvdmVyOiBub25lKSwgKG1heC13aWR0aDogNjQwcHgpIHtcbiAgLmNoYWxrLWFkbWluLXJvdy1hY3Rpb25zIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5jaGFsay1hZG1pbi1yb3ctYWN0aW9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIHBhZGRpbmc6IDJweCB2YXIoLS1jaGFsay1zMik7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1jaGFsay1mb250KTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMXMsIGNvbG9yIDAuMXMsIGJvcmRlci1jb2xvciAwLjFzO1xufVxuXG4uY2hhbGstYWRtaW4tcm93LWFjdGlvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWZnKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWJnKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG59XG5cbi5jaGFsay1hZG1pbi1yb3ctYWN0aW9uLS13YXJuIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLXdhcm4pO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLXdhcm4pO1xufVxuXG4uY2hhbGstYWRtaW4tcm93LWFjdGlvbi0td2Fybjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLXdhcm4pO1xuICBjb2xvcjogdmFyKC0tY2hhbGstYmcpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLXdhcm4pO1xufVxuXG4uY2hhbGstYWRtaW4tcm93LWFjdGlvbi0tZGFuZ2VyIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWVycm9yKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1lcnJvcik7XG59XG5cbi5jaGFsay1hZG1pbi1yb3ctYWN0aW9uLS1kYW5nZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1lcnJvcik7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1iZyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstZXJyb3IpO1xufVxuXG4uY2hhbGstYWRtaW4tcm93LXBlbmRpbmcge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwIHZhcigtLWNoYWxrLXMyKTtcbn1cblxuLmNoYWxrLWFkbWluLXBhZ2luYXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMyk7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMzKSAwO1xufVxuXG4uY2hhbGstYWRtaW4tcGFnaW5hdGlvbi1sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xufVxuXG4uY2hhbGstYWRtaW4tYmxhY2tsaXN0LWFkZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0tY2hhbGstczMpO1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMzKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG59XG5cbi5jaGFsay1hZG1pbi1ibGFja2xpc3QtYWRkIC5jaGFsay1maWVsZCB7XG4gIGZsZXg6IDE7XG59XG5cbi8qIERhbmdlciB2YXJpYW50IGZvciB0aGUgY29uZmlybSBtb2RhbCdzIGNvbmZpcm0gYnV0dG9uLiAqL1xuLmNoYWxrLWJ1dHRvbi0tZGFuZ2VyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstZXJyb3IpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstYmcpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWVycm9yKTtcbn1cblxuLmNoYWxrLWJ1dHRvbi0tZGFuZ2VyOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogI2ZmNjY2NjtcbiAgYm9yZGVyLWNvbG9yOiAjZmY2NjY2O1xufVxuXG4uY2hhbGstYnV0dG9uLS1kYW5nZXI6ZGlzYWJsZWQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xufVxuXG4vKiBDb25maXJtIG1vZGFsIGxheW91dCAqL1xuLmNoYWxrLW1vZGFsLS1jb25maXJtIHtcbiAgbWF4LXdpZHRoOiA1MDBweDtcbn1cblxuLmNoYWxrLWFkbWluLWNvbmZpcm0td2FybmluZyB7XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBjb2xvcjogdmFyKC0tY2hhbGstd2Fybik7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY2hhbGstczIpO1xufVxuXG4uY2hhbGstYWRtaW4tY29uZmlybS1ib2R5IHAge1xuICBtYXJnaW46IDAgMCB2YXIoLS1jaGFsay1zMikgMDtcbn1cblxuLmNoYWxrLWFkbWluLWNvbmZpcm0tYm9keSBwOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4vKiBVdGlsaXR5IGNsYXNzIGZvciBpbmxpbmUgZGltIHRleHQgKHVzZWQgaW4gdGFibGUgY2VsbHMgZm9yIFwiXHUyMDE0XCIpICovXG4uY2hhbGstZmctZGltIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGhhc2UgOS42YTogRnJpZW5kc1BhbmVsIHN0eWxlc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5jaGFsay1mcmllbmRzLXBhbmVsIHtcbiAgd2lkdGg6IG1pbig1NjBweCwgOTJ2dyk7XG4gIG1heC1oZWlnaHQ6IDgwdmg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5jaGFsay1mcmllbmRzLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW0gMC41cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyLCAjMWYyYTFmKTtcbn1cblxuLmNoYWxrLWZyaWVuZHMtdGl0bGUge1xuICBmb250LXNpemU6IDEuMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbn1cblxuLmNoYWxrLWZyaWVuZHMtdGFicyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC4yNXJlbTtcbiAgcGFkZGluZzogMC41cmVtIDFyZW0gMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlciwgIzFmMmExZik7XG59XG5cbi5jaGFsay1mcmllbmRzLXRhYiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltLCAjNWE4YTVhKTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwLjRyZW0gMC43NXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAwLjlyZW07XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC40cmVtO1xufVxuLmNoYWxrLWZyaWVuZHMtdGFiOmhvdmVyIHsgY29sb3I6IHZhcigtLWNoYWxrLWZnLCAjYzhmZmM4KTsgfVxuLmNoYWxrLWZyaWVuZHMtdGFiLS1hY3RpdmUge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcsICNjOGZmYzgpO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQsICM2ZWZmYTEpO1xufVxuXG4uY2hhbGstZnJpZW5kcy1iYWRnZSxcbi5jaGFsay1zdGF0dXMtbWVudS1iYWRnZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWFjY2VudCwgIzZlZmZhMSk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1iZywgIzBhMTIwYSk7XG4gIGJvcmRlci1yYWRpdXM6IDk5OTlweDtcbiAgcGFkZGluZzogMCAwLjQ1ZW07XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmNoYWxrLWZyaWVuZHMtcmVmcmVzaCB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSwgIzVhOGE1YSk7XG4gIGJvcmRlcjogbm9uZTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDAuMnJlbSAwLjVyZW07XG59XG4uY2hhbGstZnJpZW5kcy1yZWZyZXNoOmhvdmVyIHsgY29sb3I6IHZhcigtLWNoYWxrLWZnLCAjYzhmZmM4KTsgfVxuXG4uY2hhbGstZnJpZW5kcy1ib2R5IHtcbiAgcGFkZGluZzogMXJlbTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLmNoYWxrLWZyaWVuZHMtaGVscCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0sICM1YThhNWEpO1xuICBmb250LXNpemU6IDAuODVyZW07XG4gIG1hcmdpbjogMCAwIDAuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi5jaGFsay1mcmllbmRzLWFkZC1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNXJlbTtcbn1cblxuLmNoYWxrLWZyaWVuZHMtYWRkLWlucHV0IHtcbiAgZmxleDogMTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldiwgIzE0MjAxYSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlciwgIzFmMmExZik7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZywgI2M4ZmZjOCk7XG4gIHBhZGRpbmc6IDAuNDVyZW0gMC42cmVtO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4uY2hhbGstZnJpZW5kcy1hZGQtaW5wdXQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWFjY2VudCwgIzZlZmZhMSk7XG59XG5cbi5jaGFsay1mcmllbmRzLWFkZC1zdWJtaXQge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1hY2NlbnQsICM2ZWZmYTEpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstYmcsICMwYTEyMGEpO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAuNDVyZW0gMXJlbTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4uY2hhbGstZnJpZW5kcy1hZGQtc3VibWl0OmRpc2FibGVkIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstZmctZGltLCAjNWE4YTVhKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLmNoYWxrLWZyaWVuZHMtZXJyb3Ige1xuICBjb2xvcjogdmFyKC0tY2hhbGstZXJyb3IsICNmZjcwNzApO1xuICBmb250LXNpemU6IDAuODVyZW07XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgcGFkZGluZzogMC40cmVtIDAuNnJlbTtcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDExMiwgMTEyLCAwLjA4KTtcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB2YXIoLS1jaGFsay1lcnJvciwgI2ZmNzA3MCk7XG59XG5cbi5jaGFsay1mcmllbmRzLWVtcHR5IHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSwgIzVhOGE1YSk7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAxLjVyZW0gMXJlbTtcbn1cblxuLmNoYWxrLWZyaWVuZHMtc2VjdGlvbi10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltLCAjNWE4YTVhKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuICBtYXJnaW46IDAgMCAwLjVyZW07XG59XG5cbi5jaGFsay1mcmllbmRzLXBlbmRpbmcgc2VjdGlvbiArIHNlY3Rpb24ge1xuICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuXG4vKiA1OS0xOiB0aGUgc2VydmVyIGRpcmVjdG9yeSB1bmRlciB0aGUgYWRkIHRhYidzIHVzZXJuYW1lIGlucHV0LiAqL1xuLmNoYWxrLWZyaWVuZHMtZGlyZWN0b3J5IHtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgcGFkZGluZy10b3A6IDAuNzVyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIsICMxZjJhMWYpO1xufVxuXG4uY2hhbGstZnJpZW5kcy1kaW0ge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltLCAjNWE4YTVhKTtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xufVxuXG4uY2hhbGstZnJpZW5kcy1saXN0IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4uY2hhbGstZnJpZW5kcy1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjZyZW07XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5jaGFsay1mcmllbmRzLXJvdzpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYsICMxNDIwMWEpO1xufVxuXG4uY2hhbGstZnJpZW5kcy1oYW5kbGUge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLCAjYzhmZmM4KTtcbn1cblxuLmNoYWxrLWZyaWVuZHMtcm93LWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDAuNHJlbTtcbn1cblxuLmNoYWxrLWZyaWVuZHMtYWN0aW9uIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlciwgIzFmMmExZik7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0sICM1YThhNWEpO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBwYWRkaW5nOiAwLjI1cmVtIDAuNnJlbTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY2hhbGstZnJpZW5kcy1hY3Rpb246aG92ZXIge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcsICNjOGZmYzgpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSwgIzVhOGE1YSk7XG59XG4uY2hhbGstZnJpZW5kcy1hY3Rpb246ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4uY2hhbGstZnJpZW5kcy1hY3Rpb24tLWFjY2VwdCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQsICM2ZWZmYTEpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWFjY2VudCwgIzZlZmZhMSk7XG59XG4uY2hhbGstZnJpZW5kcy1hY3Rpb24tLWFjY2VwdDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWFjY2VudCwgIzZlZmZhMSk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1iZywgIzBhMTIwYSk7XG59XG4uY2hhbGstZnJpZW5kcy1hY3Rpb24tLWRlY2xpbmUge1xuICBjb2xvcjogdmFyKC0tY2hhbGstd2FybiwgI2ZmZDA2MCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstd2FybiwgI2ZmZDA2MCk7XG59XG4uY2hhbGstZnJpZW5kcy1hY3Rpb24tLWRlY2xpbmU6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay13YXJuLCAjZmZkMDYwKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWJnLCAjMGExMjBhKTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQaGFzZSA5LjZiOiBzaWRlYmFyIHJvc3RlciBzZWN0aW9uXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogVGhlIHNpZGViYXIgbm93IGhhcyB0d28gaGVhZGVyIHJvd3MgKyB0d28gbGlzdHMuIEdpdmUgdGhlXG4gICBzZWNvbmQgaGVhZGVyIGEgdG9wIG1hcmdpbiBzbyB0aGUgdHdvIHNlY3Rpb25zIGZlZWwgZGlzdGluY3QuICovXG4uY2hhbGstc2lkZWJhci1oZWFkZXItLWNoYW5uZWxzIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlciwgIzFmMmExZik7XG59XG5cbi8qIElubGluZSBjb3VudCBuZXh0IHRvIHNlY3Rpb24gdGl0bGUuIERpbW1lZCBieSBkZWZhdWx0LCB0YWtlcyB0aGVcbiAgIGFjY2VudCBjb2xvciB3aGVuIHRoZXJlJ3Mgc29tZXRoaW5nIHRvIGhpZ2hsaWdodC4gKi9cbi5jaGFsay1zaWRlYmFyLWNvdW50IHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSwgIzVhOGE1YSk7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBtYXJnaW4tbGVmdDogMC4yNWVtO1xufVxuXG4vKiBGcmllbmRzIHNlY3Rpb246IHRpZ2h0ZXIgc3BhY2luZyB0aGFuIGNoYW5uZWxzLCBzbGlnaHQgdmlzdWFsXG4gICBkaXN0aW5jdGlvbiBzbyB1c2VycyBmZWVsIHRoZSBoaWVyYXJjaHkuICovXG4uY2hhbGstc2lkZWJhci1saXN0LS1mcmllbmRzIHtcbiAgLyogbm90aGluZyBvdmVycmlkZS1zcGVjaWZpYzsgaW5oZXJpdHMgY2hhbGstc2lkZWJhci1saXN0ICovXG59XG5cbi5jaGFsay1zaWRlYmFyLWl0ZW0tLWZyaWVuZCAuY2hhbGstc2lkZWJhci1pdGVtLW5hbWUge1xuICAvKiB0aGUgQCBwcmVmaXggaXMgcGFydCBvZiB0aGUgcmVuZGVyZWQgdGV4dDsga2VlcCB0eXBvZ3JhcGh5XG4gICAgIGNvbnNpc3RlbnQgd2l0aCBjaGFubmVsIG5hbWVzICovXG59XG5cbi8qIEVtcHR5IHN0YXRlcyBmb3IgYm90aCBzZWN0aW9ucyB1c2UgdGhlIGV4aXN0aW5nIGNoYWxrLXNpZGViYXItZW1wdHlcbiAgIHJ1bGUuIE5vIGFkZGl0aW9uYWwgQ1NTIG5lZWRlZCB0aGVyZS4gKi9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQaGFzZSA5LjZiIHR3ZWFrOiBzaWRlYmFyIGhlaWdodCArIGZpbHRlclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIFNlY3Rpb24gd3JhcHBlcnMuIEZyaWVuZHMgYW5kIHZvaWNlIHNpemUgdG8gdGhlaXIgY29udGVudCB1bmRlciBhXG4gICB2aWV3cG9ydCBjYXAuIEJvdGggc2Nyb2xsIGluc2lkZS4gQ2hhbm5lbHMgdGFrZXMgdGhlIHJlc3QuXG4gICAxMjMtMTogd2hlbiB0aGUgY29sdW1uIGlzIG92ZXJmdWxsLCBmcmllbmRzIGFuZCB2b2ljZSBnaXZlIHdheSBkb3duXG4gICB0byBhIGZsb29yLiBDaGFubmVscyBrZWVwcyBhIGZsb29yIG9mIGl0cyBvd24uIE5vIHNlY3Rpb24gY2FuIHB1c2hcbiAgIGFub3RoZXIgb2ZmIHRoZSBzY3JlZW4uICovXG4uY2hhbGstc2lkZWJhci1zZWN0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLWhlaWdodDogMDtcbn1cblxuLmNoYWxrLXNpZGViYXItc2VjdGlvbi0tZnJpZW5kcyB7XG4gIC8qIFRoZSBjYXAgbGltaXRzIGEgbGFyZ2Ugcm9zdGVyLiBJdCBjYW5ub3QgdGFrZSBvdmVyIHRoZSB3aG9sZSBjb2x1bW4uXG4gICAgIDEyMy0xOiB0aGUgc2VjdGlvbiBhbHNvIHNocmlua3Mgd2hlbiB0aGUgY29sdW1uIGlzIG92ZXJmdWxsLCBkb3duIHRvXG4gICAgIGl0cyBoZWFkZXIgYW5kIG9uZSByb3cuIFRoZSBsaXN0IGluc2lkZSBzY3JvbGxzLiAqL1xuICBmbGV4OiAwIDEgYXV0bztcbiAgbWF4LWhlaWdodDogNDB2aDtcbiAgbWluLWhlaWdodDogNC41ZW07XG59XG5cbi5jaGFsay1zaWRlYmFyLXNlY3Rpb24tLWNoYW5uZWxzIHtcbiAgLyogQ2hhbm5lbHMgZmlsbHMgdGhlIHJlbWFpbmluZyB2ZXJ0aWNhbCBzcGFjZS4gMTIzLTE6IG5ldmVyIGxlc3MgdGhhblxuICAgICB0aGUgaGVhZGVyLCB0aGUgZmlsdGVyIGFuZCB0d28gcm93cy4gQmVmb3JlIHRoaXMgcGhhc2UsIHRoaXMgd2FzXG4gICAgIHRoZSBvbmx5IHNocmlua2FibGUgc2VjdGlvbi4gT24gYSBzaG9ydCB3aW5kb3cgaXQgc2hyYW5rIHRvIG5vdGhpbmcuICovXG4gIGZsZXg6IDE7XG4gIG1pbi1oZWlnaHQ6IDllbTtcbn1cblxuLyogMTAwLTE6IHRoZSB2b2ljZSBzZWN0aW9uIHNpdHMgZGlyZWN0bHkgYWJvdmUgY2hhbm5lbHMuIExpa2UgZnJpZW5kcywgaXRcbiAgIHNpemVzIHRvIGl0cyBjb250ZW50IChhIGZldyByb29tcyBwbHVzIHRoZWlyIGxpdmUgb2NjdXBhbnQgc3VibGlzdHMpXG4gICB1bmRlciBhIHZpZXdwb3J0IGNhcCwgd2l0aCBpbnRlcm5hbCBzY3JvbGwuIFRoZSBjaGFubmVsIGxpc3QgYmVsb3dcbiAgIGtlZXBzIHRoZSByZW1haW5pbmcgc3BhY2UuIDEyMy0xOiBsaWtlIGZyaWVuZHMgaXQgYWxzbyBnaXZlcyB3YXkgd2hlblxuICAgdGhlIGNvbHVtbiBpcyBvdmVyZnVsbCwgZG93biB0byBpdHMgaGVhZGVyIGFuZCBvbmUgcm93LiAqL1xuLmNoYWxrLXNpZGViYXItc2VjdGlvbi0tdm9pY2Uge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgbWF4LWhlaWdodDogMzV2aDtcbiAgbWluLWhlaWdodDogNC41ZW07XG4gIC8qIFNhbWUgc2VwYXJhdGVkLXNlY3Rpb24gdHJlYXRtZW50IGFzIHRocmVhZHMgYWJvdmUgaXQuICovXG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIsICMxZjJhMWYpO1xufVxuXG4uY2hhbGstc2lkZWJhci1saXN0LS12b2ljZSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4vKiBUaGUgZnJpZW5kcyBsaXN0IHdpdGhpbiB0aGUgZnJpZW5kcyBzZWN0aW9uOiBzY3JvbGwgSU5TSURFIHRoZVxuICAgc2VjdGlvbiB3aGVuIGNvbnRlbnQgb3ZlcmZsb3dzIHRoZSA0MHZoIGNhcC4gT3ZlcnJpZGUgdGhlIGJhc2VcbiAgIC5jaGFsay1zaWRlYmFyLWxpc3QgYGZsZXg6IDFgICh3aGljaCB3b3VsZCBjYXVzZSBib3RoIHNlY3Rpb25zIHRvXG4gICBmaWdodCBmb3Igc3BhY2UpIHdpdGggYGZsZXg6IDAgMSBhdXRvYCBzbyB0aGUgbGlzdCBzaXplcyB0b1xuICAgY29udGVudC4gKi9cbi5jaGFsay1zaWRlYmFyLWxpc3QtLWZyaWVuZHMge1xuICBmbGV4OiAwIDEgYXV0bztcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLyogVGhlIGNoYW5uZWxzIGxpc3Qga2VlcHMgdGhlIGJhc2UgZmxleDogMSBvZiAuY2hhbGstc2lkZWJhci1saXN0LiBJdHNcbiAgIGZsb29yIGlzIG9uIHRoZSBzZWN0aW9uIGFib3ZlLCBub3QgaGVyZS4gKi9cblxuLyogRmlsdGVyIGlucHV0IFx1MjAxNCBvbmx5IGFwcGVhcnMgd2hlbiBcdTIyNjU3IGZyaWVuZHMuIFNpdHMgYmV0d2VlbiB0aGVcbiAgIFwiZnJpZW5kcyAoTilcIiBoZWFkZXIgYW5kIHRoZSBsaXN0LiBJbmhlcml0cyB0aGUgZGFyayB0aGVtZTtcbiAgIG1hdGNoZXMgdGhlIC5jaGFsay1mcmllbmRzLWFkZC1pbnB1dCBzdHlsaW5nIGZvciBjb25zaXN0ZW5jeS4gKi9cbi5jaGFsay1zaWRlYmFyLWZpbHRlciB7XG4gIHBhZGRpbmc6IDAgdmFyKC0tY2hhbGstczIpIHZhcigtLWNoYWxrLXMyKSB2YXIoLS1jaGFsay1zMik7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uY2hhbGstc2lkZWJhci1maWx0ZXItaW5wdXQge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldiwgIzE0MjAxYSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG4gIHBhZGRpbmc6IDAuM3JlbSAwLjVyZW07XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLmNoYWxrLXNpZGViYXItZmlsdGVyLWlucHV0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xufVxuLmNoYWxrLXNpZGViYXItZmlsdGVyLWlucHV0OjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGhhc2UgNTQtMzogY2hhbm5lbCBncm91cHMgaW4gdGhlIHNpZGViYXJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiBBIGdyb3VwIGhlYWRlciBpcyBhIGZ1bGwtd2lkdGggYnV0dG9uIHJvdyBiZXR3ZWVuIGNoYW5uZWwgcm93cy5cbiAgIE11dGVkIGxpa2UgdGhlIHNlY3Rpb24gdGl0bGVzIHNvIHRoZSBjaGFubmVsIG5hbWVzIHN0YXkgdGhlIGxvdWRlc3RcbiAgIHRleHQgaW4gdGhlIGNvbHVtbjsgdGhlIHdob2xlIHJvdyBpcyB0aGUgZm9sZC91bmZvbGQgY2xpY2sgdGFyZ2V0LiAqL1xuLmNoYWxrLXNpZGViYXItZ3JvdXAtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjM1cmVtO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwLjI1cmVtIHZhcigtLWNoYWxrLXMyKTtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5jaGFsay1zaWRlYmFyLWdyb3VwLWhlYWRlcjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG59XG5cbi8qIDEwNi0xOiBhIGdyb3VwIGhhcyB0byByZWFkIGFzIGEgaGVhZGluZywgbm90IGFzIG9uZSBtb3JlIHJvdy4gVGhyZWVcbiAgIGN1ZXMsIG5vbmUgb2YgdGhlbSBjb2xvdXIgKHRoZSBjaGFubmVsIG5hbWVzIHN0YXkgdGhlIGxvdWRlc3QgdGV4dCk6XG4gICBhaXIgYWJvdmUgZWFjaCBncm91cCwgYSBoYWlybGluZSBhY3Jvc3MgdGhlIGNvbHVtbiwgYW5kIHRoZSBzYW1lXG4gICBsZXR0ZXItc3BhY2luZyB0aGUgc2VjdGlvbiB0aXRsZXMgdXNlLiBUaGUgZmlyc3QgZ3JvdXAgc2l0cyBkaXJlY3RseVxuICAgdW5kZXIgdGhlIGZpbHRlciBhbmQgc2tpcHMgdGhlIHJ1bGU7IHRoZSBoaWRkZW4gc2hlbGYgKDc4LTIpIHNoYXJlcyB0aGVcbiAgIGNsYXNzIGFuZCBzbyBnZXRzIHRoZSBzYW1lIHRyZWF0bWVudCwgd2hpY2ggaXMgcmlnaHQgLS0gaXQgaXMgYSBoZWFkaW5nXG4gICB0b28uICovXG4uY2hhbGstc2lkZWJhci1ncm91cCB7XG4gIG1hcmdpbi10b3A6IDAuOXJlbTtcbn1cbi5jaGFsay1zaWRlYmFyLWdyb3VwOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMC4xNXJlbTtcbn1cbi5jaGFsay1zaWRlYmFyLWdyb3VwIC5jaGFsay1zaWRlYmFyLWdyb3VwLWhlYWRlciB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHBhZGRpbmctdG9wOiAwLjQ1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMC4zcmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyLCAjMWYyYTFmKTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbn1cbi5jaGFsay1zaWRlYmFyLWdyb3VwOmZpcnN0LWNoaWxkIC5jaGFsay1zaWRlYmFyLWdyb3VwLWhlYWRlciB7XG4gIGJvcmRlci10b3A6IG5vbmU7XG4gIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xufVxuXG4vKiBUaGUgcm93cyB1bmRlciBhIGhlYWRlciBzdGVwIGluIGJ5IHRoZSB3aWR0aCBvZiB0aGUgZm9sZCBhcnJvdyBwbHVzIGl0c1xuICAgZ2FwLCBzbyB0aGV5IGhhbmcgYmVuZWF0aCB0aGUgZ3JvdXAgbmFtZSByYXRoZXIgdGhhbiBsaW5pbmcgdXAgd2l0aCBpdC5cbiAgIE9ubHkgZ3JvdXBlZCByb3dzOiB0aGUgZmxhdCBsaXN0IGtlZXBzIHRoZSBwcmUtMTA2IGFsaWdubWVudC4gKi9cbi5jaGFsay1zaWRlYmFyLWl0ZW0tLWdyb3VwZWQge1xuICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tY2hhbGstczIpICsgMC44ZW0gKyAwLjM1cmVtKTtcbn1cblxuLmNoYWxrLXNpZGViYXItZ3JvdXAtYXJyb3cge1xuICBmbGV4LXNocmluazogMDtcbiAgd2lkdGg6IDAuOGVtO1xufVxuXG4uY2hhbGstc2lkZWJhci1ncm91cC1uYW1lIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qIDU0LTQ6IHRoZSBjb250ZXh0IG1lbnUncyBtb3ZlLXRvLWdyb3VwIGlucHV0LiBTYW1lIGZhbWlseSBhcyB0aGVcbiAgIHNpZGViYXIgZmlsdGVyIGlucHV0LCBzaXplZCB0byBzaXQgaW4gYSBtZW51IHJvdyBuZXh0IHRvIHRoZSBsYWJlbFxuICAgKGFuZCB0aGUgcmVzZXQgYnV0dG9uIHdoZW4gYW4gb3ZlcnJpZGUgaXMgc2V0KS4gKi9cbi5jaGFsay1uaWNrLW1lbnUtZ3JvdXAtaW5wdXQge1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYsICMxNDIwMWEpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICBwYWRkaW5nOiAwLjJyZW0gMC40cmVtO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbi5jaGFsay1uaWNrLW1lbnUtZ3JvdXAtaW5wdXQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG59XG5cbi8qIDExNC0zOiB0aGUgZ3JvdXAgaGVhZGVyIG1lbnUncyBzb3J0IHBpY2tlci4gU2FtZSBmYW1pbHkgYXMgdGhlIGdyb3VwXG4gICBpbnB1dCBhYm92ZSAtLSBhIG1lbnUgcm93IGlzIGEgbGFiZWwgYW5kIG9uZSBjb250cm9sLCB3aGF0ZXZlciB0aGVcbiAgIGNvbnRyb2wgaGFwcGVucyB0byBiZS4gKi9cbi5jaGFsay1uaWNrLW1lbnUtc2VsZWN0IHtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2LCAjMTQyMDFhKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbiAgcGFkZGluZzogMC4ycmVtIDAuNHJlbTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4uY2hhbGstbmljay1tZW51LXNlbGVjdDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbn1cbi8qIEFuIG9yZGVyIGJ1dHRvbiB0aGF0IGhhcyBub3doZXJlIHRvIGdvIHNheXMgc28gYnkgZGltbWluZywgcmF0aGVyIHRoYW5cbiAgIGJ5IHZhbmlzaGluZyBhbmQgbW92aW5nIHRoZSB0aHJlZSBiZXNpZGUgaXQuICovXG4uY2hhbGstbmljay1tZW51LWJ0bjpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLmNoYWxrLW5pY2stbWVudS1idG46ZGlzYWJsZWQ6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQaGFzZSAxMTQtNDogZHJhZ2dpbmcgYSByb3cgdG8gcmVvcmRlciBpdFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIFRoZSBsaXN0IGlzIHRoZSBwb3NpdGlvbmluZyBjb250ZXh0IGZvciB0aGUgaW5zZXJ0aW9uIGxpbmUsIHdoaWNoIGlzXG4gICBwbGFjZWQgaW4gdGhlIGxpc3QncyBvd24gc2Nyb2xsZWQgY29vcmRpbmF0ZXMgc28gaXQgc3RheXMgcHV0IHdoaWxlIHRoZVxuICAgZWRnZXMgYXV0by1zY3JvbGwgdW5kZXIgaXQuICovXG4uY2hhbGstc2lkZWJhci1saXN0LS1jaGFubmVscyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLyogTm90aGluZyBpcyBzZWxlY3RhYmxlIG1pZC1kcmFnOiBhIGRyYWcgYWNyb3NzIHJvd3Mgd291bGQgb3RoZXJ3aXNlIGxlYXZlXG4gICBhIHRyYWlsIG9mIGhpZ2hsaWdodGVkIGNoYW5uZWwgbmFtZXMgYmVoaW5kIGl0LiAqL1xuLmNoYWxrLXNpZGViYXItbGlzdC0tZHJhZ2dpbmcge1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgY3Vyc29yOiBncmFiYmluZztcbn1cblxuLyogVHdvIHBpeGVscywgdGhlIGFjY2VudCwgZnVsbCB3aWR0aDogd2hlcmUgdGhlIHJvdyB3b3VsZCBsYW5kLiAqL1xuLmNoYWxrLXNpZGViYXItZHJvcGxpbmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDJweDtcbiAgbWFyZ2luLXRvcDogLTFweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYWNjZW50KTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHotaW5kZXg6IDI7XG59XG5cbi8qIFRoZSByb3cgYmVpbmcgY2FycmllZCByZWFkcyBhcyBsaWZ0ZWQgcmF0aGVyIHRoYW4gZ29uZSAtLSBpdCBpcyBzdGlsbFxuICAgd2hlcmUgaXQgd2FzIHVudGlsIHRoZSBwb2ludGVyIGlzIGxldCBnby4gKi9cbi5jaGFsay1zaWRlYmFyLWl0ZW1bZGF0YS1kcmFnZ2luZz1cInRydWVcIl0sXG4uY2hhbGstc2lkZWJhci1ncm91cFtkYXRhLWRyYWdnaW5nPVwidHJ1ZVwiXSB7XG4gIG9wYWNpdHk6IDAuNDU7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGhhc2UgNzgtMjogaGlkZGVuIGNoYW5uZWxzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogQSByZXZlYWxlZCBoaWRkZW4gY2hhbm5lbCBpcyBhIHBlZWsgYXQgc29tZXRoaW5nIHlvdSBwdXQgYXdheSwgc28gaXRcbiAgIHJlYWRzIHF1aWV0ZXIgdGhhbiB0aGUgcm9zdGVyIHByb3BlciAtLSBidXQgbm90IHNvIHF1aWV0IGl0IGxvb2tzXG4gICBkaXNhYmxlZCwgc2luY2UgY2xpY2tpbmcgaXQgc3RpbGwgb3BlbnMgdGhlIGNoYW5uZWwuIEl0cyB1bnJlYWQgZG90XG4gICBrZWVwcyBmdWxsIHN0cmVuZ3RoOiBoaWRpbmcgaXMgbm90IG11dGluZy4gKi9cbi5jaGFsay1zaWRlYmFyLWl0ZW0tLWhpZGRlbiAuY2hhbGstc2lkZWJhci1pdGVtLW5hbWUsXG4uY2hhbGstc2lkZWJhci1pdGVtLS1oaWRkZW4gLmNoYWxrLWNoZ2x5cGgge1xuICBvcGFjaXR5OiAwLjU1O1xufVxuLmNoYWxrLXNpZGViYXItaXRlbS0taGlkZGVuOmhvdmVyIC5jaGFsay1zaWRlYmFyLWl0ZW0tbmFtZSxcbi5jaGFsay1zaWRlYmFyLWl0ZW0tLWhpZGRlbjpob3ZlciAuY2hhbGstY2hnbHlwaCB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8qIDc4LTM6IHRoZSBzYW1lIHBlZWsgaW4gdGhlIFp1Y2tlcm1vZGUgbGlzdC4gKi9cbi5jaGFsay16dWNrZXItcm93LS1oaWRkZW4gLmNoYWxrLXp1Y2tlci1yb3ctbWFpbixcbi5jaGFsay16dWNrZXItcm93LS1oaWRkZW4gLmNoYWxrLXp1Y2tlci1yb3ctYmFkZ2Uge1xuICBvcGFjaXR5OiAwLjU1O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFBoYXNlIDkuNmM6IHByZXNlbmNlIGRvdHNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiBUaGUgZnJpZW5kIHJvdyBpcyBhIGZsZXggbGF5b3V0OiBkb3QgY29sdW1uLCB0aGVuIG5hbWUuIFRoZSBkb3RcbiAgIGNvbHVtbiBpcyBmaXhlZCB3aWR0aCBzbyBhbGwgbmFtZXMgbGluZSB1cCByZWdhcmRsZXNzIG9mIHN0YXRlLiAqL1xuLmNoYWxrLXNpZGViYXItaXRlbS0tZnJpZW5kIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG59XG5cbi8qIFRoZSBkb3Q6IDhweCBjaXJjbGUsIGFsd2F5cyByZW5kZXJlZCAodHJhbnNwYXJlbnQgYm9yZGVyIGZvclxuICAgb2ZmbGluZSBzbyBsYXlvdXQgZG9lc24ndCBzaGlmdCkuICovXG4uY2hhbGstcHJlc2VuY2UtZG90IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogOHB4O1xuICBoZWlnaHQ6IDhweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBmbGV4LXNocmluazogMDtcbiAgLyogVGlueSB2ZXJ0aWNhbCBudWRnZSBzbyB0aGUgZG90IG9wdGljYWxseSBjZW50ZXJzIGFnYWluc3RcbiAgICAgbW9ub3NwYWNlIHRleHQgYmFzZWxpbmUuICovXG4gIG1hcmdpbi10b3A6IDFweDtcbn1cblxuLyogT25saW5lOiBzb2xpZCBncmVlbiB3aXRoIGEgc29mdCBoYWxvLiBUaGUgdGhyZWUgc3RhdGVzIHVzZSB0aGVcbiAgIGZpeGVkIC0tY2hhbGstcHJlc2VuY2UtKiB0b2tlbnMsIG5ldmVyIHRoZSB0aGVtZSBwYWxldHRlLCBzbyBhXG4gICBzdGF0dXMgbGlnaHQgbWVhbnMgdGhlIHNhbWUgdGhpbmcgaW4gZXZlcnkgdGhlbWUuICovXG4uY2hhbGstcHJlc2VuY2UtZG90LS1vbmxpbmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1wcmVzZW5jZS1vbmxpbmUpO1xuICBib3gtc2hhZG93OiAwIDAgNHB4IHZhcigtLWNoYWxrLXByZXNlbmNlLW9ubGluZS1nbG93KTtcbn1cblxuLyogQXdheTogc29saWQgYW1iZXIsIG5vIGdsb3cuICovXG4uY2hhbGstcHJlc2VuY2UtZG90LS1hd2F5IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstcHJlc2VuY2UtYXdheSk7XG59XG5cbi8qIE9mZmxpbmUgLyB1bmtub3duOiBob2xsb3cgZ3JleSBjaXJjbGUuIDFweCBib3JkZXIsIG5vIGZpbGwuICovXG4uY2hhbGstcHJlc2VuY2UtZG90LS1vZmZsaW5lIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLXByZXNlbmNlLW9mZmxpbmUpO1xuICAvKiBDb21wZW5zYXRlIGZvciB0aGUgYm9yZGVyIHNvIHRoZSB2aXN1YWwgZGlhbWV0ZXIgc3RpbGwgYWxpZ25zXG4gICAgIHdpdGggdGhlIGZpbGxlZCBkb3RzIGFib3ZlLiAqL1xuICB3aWR0aDogNnB4O1xuICBoZWlnaHQ6IDZweDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQaGFzZSA5LjZkOiBhbGlnbm1lbnQgZml4ICsgbGF6eS1sb2FkaW5nIGluZGljYXRvclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIE92ZXJyaWRlIC5jaGFsay1zaWRlYmFyLWl0ZW0ncyBganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuYFxuICAgZm9yIHRoZSBmcmllbmQgdmFyaWFudCBzbyB0aGUgZG90IGFuZCBuYW1lIHNpdCB0b2dldGhlciBhdCB0aGVcbiAgIHN0YXJ0IG9mIHRoZSByb3cuIChUaGUgZGVmYXVsdCBpcyBhcHByb3ByaWF0ZSBmb3IgY2hhbm5lbHMsXG4gICB3aGVyZSBcIiNuYW1lXCIgKyBkbS10YWcgZmxvYXQgdG8gb3Bwb3NpdGUgZWRnZXMuKSAqL1xuLmNoYWxrLXNpZGViYXItaXRlbS0tZnJpZW5kIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG4vKiBUaGUgbmFtZSBpbnNpZGUgYSBmcmllbmQgcm93IHNob3VsZG4ndCB0cnkgdG8gZmlsbCByZW1haW5pbmdcbiAgIHNwYWNlOyBpdCdzIGEgbGFiZWwsIG5vdCBhIGZsZXggZ3Jvd2VyLiAqL1xuLmNoYWxrLXNpZGViYXItaXRlbS0tZnJpZW5kIC5jaGFsay1zaWRlYmFyLWl0ZW0tbmFtZSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xufVxuXG4vKiBMYXp5LWxvYWRpbmcgcGxhY2Vob2xkZXI6IHRocmVlIHNtYWxsIGRvdHMgdGhhdCBwdWxzZSB3aGlsZSBhXG4gICBjaHVuayBpcyBiZWluZyBmZXRjaGVkLiBUaGUgY29tcG9uZW50IHNpdHMgaW4gcGxhY2Ugb2YgdGhlXG4gICByZWFsIHBhbmVsLCBzbyB1c2VycyBzZWUgXCJzb21ldGhpbmcgaXMgaGFwcGVuaW5nXCIgcmF0aGVyIHRoYW5cbiAgIGEgZmxhc2ggb2Ygbm90aGluZy4gKi9cbi5jaGFsay1sYXp5LWxvYWRpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjRyZW07XG4gIHBhZGRpbmc6IDJyZW07XG4gIG1pbi1oZWlnaHQ6IDZyZW07XG59XG5cbi5jaGFsay1sYXp5LWxvYWRpbmctZG90IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogNnB4O1xuICBoZWlnaHQ6IDZweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBhbmltYXRpb246IGNoYWxrLWxhenktcHVsc2UgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cbi5jaGFsay1sYXp5LWxvYWRpbmctZG90Om50aC1jaGlsZCgyKSB7IGFuaW1hdGlvbi1kZWxheTogMC4xNXM7IH1cbi5jaGFsay1sYXp5LWxvYWRpbmctZG90Om50aC1jaGlsZCgzKSB7IGFuaW1hdGlvbi1kZWxheTogMC4zczsgfVxuXG5Aa2V5ZnJhbWVzIGNoYWxrLWxhenktcHVsc2Uge1xuICAwJSwgODAlLCAxMDAlIHsgb3BhY2l0eTogMC4zOyB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7IH1cbiAgNDAlICAgICAgICAgICB7IG9wYWNpdHk6IDE7ICAgdHJhbnNmb3JtOiBzY2FsZSgxLjApOyB9XG59XG5cbi5jaGFsay1sYXp5LWVycm9yIHtcbiAgcGFkZGluZzogMS41cmVtO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZXJyb3IsICNmZjcwNzApO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMTEyLCAxMTIsIDAuMDgpO1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLWNoYWxrLWVycm9yLCAjZmY3MDcwKTtcbiAgbWFyZ2luOiAxcmVtO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFBoYXNlIDkuNmo6IHByZXNlbmNlIHBpY2tlclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5jaGFsay1wcmVzZW5jZS1waWNrZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uY2hhbGstcHJlc2VuY2UtdHJpZ2dlciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIHBhZGRpbmc6IDAgMC41cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNHJlbTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLmNoYWxrLXByZXNlbmNlLXRyaWdnZXI6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWJvcmRlciwgIzFmMmExZik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYsICMxNDIwMWEpO1xufVxuLmNoYWxrLXByZXNlbmNlLXRyaWdnZXI6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBvdXRsaW5lLW9mZnNldDogLTFweDtcbn1cblxuLyogRWZmZWN0aXZlLXN0YXRlLWRyaXZlbiBjb2xvcmluZyBvZiB0aGUgdHJpZ2dlciBsYWJlbCAtLSBzYW1lIGZpeGVkXG4gICB0b2tlbnMgYXMgdGhlIGRvdHMgc28geW91ciBvd24gc3RhdHVzIG1hdGNoZXMgZXZlcnlvbmUgZWxzZSdzLiAqL1xuLmNoYWxrLXByZXNlbmNlLXRyaWdnZXItLW9ubGluZSAuY2hhbGstc3RhdHVzLWxhYmVsIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLXByZXNlbmNlLW9ubGluZSk7XG59XG4uY2hhbGstcHJlc2VuY2UtdHJpZ2dlci0tYXdheSAuY2hhbGstc3RhdHVzLWxhYmVsIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLXByZXNlbmNlLWF3YXkpO1xufVxuLmNoYWxrLXByZXNlbmNlLXRyaWdnZXItLW9mZmxpbmUgLmNoYWxrLXN0YXR1cy1sYWJlbCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1wcmVzZW5jZS1vZmZsaW5lKTtcbn1cblxuLmNoYWxrLXByZXNlbmNlLW1vZGUtYmFkZ2Uge1xuICBmb250LXNpemU6IGNhbGMoMTBweCAqIHZhcigtLWNoYWxrLWZvbnQtc2NhbGUpKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSwgIzVhOGE1YSk7XG4gIHBhZGRpbmc6IDAgMC4yNXJlbTtcbn1cblxuLmNoYWxrLXByZXNlbmNlLW1lbnUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTAwJTtcbiAgbGVmdDogMDtcbiAgbWFyZ2luLXRvcDogNHB4O1xuICBtaW4td2lkdGg6IDEycmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2LCAjMTQyMDFhKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyLCAjMWYyYTFmKTtcbiAgcGFkZGluZzogMC4zcmVtIDA7XG4gIHotaW5kZXg6IDIwO1xuICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjUpO1xufVxuXG4uY2hhbGstcHJlc2VuY2UtbWVudS1pdGVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcsICNjOGZmYzgpO1xuICBmb250OiBpbmhlcml0O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nOiAwLjRyZW0gMC43NXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmNoYWxrLXByZXNlbmNlLW1lbnUtaXRlbTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTEwLCAyNTUsIDE2MSwgMC4wOCk7XG59XG4uY2hhbGstcHJlc2VuY2UtbWVudS1pdGVtLS1hY3RpdmUge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0LCAjNmVmZmExKTtcbiAgYmFja2dyb3VuZDogcmdiYSgxMTAsIDI1NSwgMTYxLCAwLjA1KTtcbn1cbi5jaGFsay1wcmVzZW5jZS1tZW51LWl0ZW0tLWFjdGl2ZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcdTI3MTMgXCI7XG59XG5cbi5jaGFsay1wcmVzZW5jZS1tZW51LWhpbnQge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0sICM1YThhNWEpO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGhhc2UgOS43YjogbGlnaHQgdGhlbWVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQWN0aXZhdGVkIGJ5IHNldHRpbmcgZGF0YS10aGVtZT1cImxpZ2h0XCIgb24gdGhlIGRvY3VtZW50IHJvb3QuXG4gICBSZWRlZmluZXMgZXZlcnkgLS1jaGFsay0qIHZhcmlhYmxlIHNvIGNvbXBvbmVudCBDU1MgYWRhcHRzXG4gICBhdXRvbWF0aWNhbGx5LiBBbHNvIG92ZXJyaWRlcyBhIGhhbmRmdWwgb2YgaGFyZC1jb2RlZCByZ2JhKClcbiAgIHZhbHVlcyAoc2hhZG93cywgdGludHMpIHRoYXQgZG9uJ3QgZ28gdGhyb3VnaCB2YXJpYWJsZXMuXG5cbiAgIFBhbGV0dGUgbm90ZXM6XG4gICAtIGJnIGlzIGEgd2FybSBjcmVhbSwgbm90IHB1cmUgd2hpdGUsIHRvIHJlZHVjZSBleWUgc3RyYWluLlxuICAgLSBmZyBpcyB3YXJtIG5lYXItYmxhY2sgZm9yIHNpbWlsYXIgcmVhc29ucy5cbiAgIC0gQWNjZW50IHN0YXlzIGEgZm9yZXN0IGdyZWVuIHNvIHRoZSBicmFuZCBpZGVudGl0eSBzdXJ2aXZlcyB0aGVcbiAgICAgbW9kZSBzd2l0Y2guIChjaGFsayBpcyBcInRoZSBncmVlbiB0ZXJtaW5hbCBjaGF0XCI7IG1ha2luZyB0aGVcbiAgICAgYWNjZW50IGJsdWUgd291bGQgZmVlbCBsaWtlIGEgZGlmZmVyZW50IHByb2R1Y3QuKVxuICAgLSBXYXJuL2Vycm9yIG51ZGdlIHRvd2FyZCBtdXRlZCBhbWJlci9icmljayBzbyB0aGV5IGRvbid0XG4gICAgIHNjcmVhbSBhZ2FpbnN0IHRoZSBzb2Z0IGJhY2tncm91bmQuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuW2RhdGEtdGhlbWU9XCJsaWdodFwiXSB7XG4gIC0tY2hhbGstYmc6ICAgICAgICAgICAjZjdmNWVlO1xuICAtLWNoYWxrLWJnLWVsZXY6ICAgICAgI2ViZTdkYTtcbiAgLS1jaGFsay1iZy1lbGV2LTI6ICAgICNkZGQ3YzQ7XG4gIC0tY2hhbGstZmc6ICAgICAgICAgICAjMWYxZDE3O1xuICAtLWNoYWxrLWZnLWRpbTogICAgICAgIzZhNjY1NztcbiAgLS1jaGFsay1mZy1icmlnaHQ6ICAgICMxYTRkMmE7XG4gIC0tY2hhbGstZmctbXV0ZWQ6ICAgICAjOGU4YTdhO1xuICAtLWNoYWxrLWJvcmRlcjogICAgICAgI2M5YzJhYjtcbiAgLS1jaGFsay1hY2NlbnQ6ICAgICAgICMyZDZlM2Y7XG4gIC0tY2hhbGstd2FybjogICAgICAgICAjYTg1ZjAwO1xuICAtLWNoYWxrLWVycm9yOiAgICAgICAgIzliMmEyNjtcblxuICBjb2xvci1zY2hlbWU6IGxpZ2h0O1xufVxuXG4vKiBUaGUgZGVmYXVsdCBncmVlbiB0aGVtZSB1c2VzIGEgdmVyeSBkaW0gZmF1eC1zaGFkb3cgb24gbW9zdFxuICAgcGFuZWxzIChsaWdodCB0ZXh0IG9uIGJsYWNrKS4gSW4gbGlnaHQgbW9kZSB3ZSB3YW50IGEgdG91Y2ggb2ZcbiAgIHdhcm10aCBvbiBlbGV2YXRlZCBzdXJmYWNlcyAtLSBhIDFweCBpbm5lciBib3JkZXIgcmVhZHMgYmV0dGVyXG4gICB0aGFuIGEgZHJvcCBzaGFkb3cgb24gZmxhdCBjcmVhbS4gVGhlIHNlbGVjdG9ycyBiZWxvdyBhZGQgaXRcbiAgIG9ubHkgdG8gc3VyZmFjZXMgdGhhdCB2aXNpYmx5IGVsZXZhdGUgKG1vZGFscywgZHJvcGRvd25zLFxuICAgbWVudXMpLiBTaWRlYmFyIGFuZCBoZWFkZXJzIGFscmVhZHkgdXNlIGJhY2tncm91bmQgY29udHJhc3QuICovXG5bZGF0YS10aGVtZT1cImxpZ2h0XCJdIC5jaGFsay1tb2RhbCxcbltkYXRhLXRoZW1lPVwibGlnaHRcIl0gLmNoYWxrLW1vZGFsLWNhcmQsXG5bZGF0YS10aGVtZT1cImxpZ2h0XCJdIC5jaGFsay1wcmVzZW5jZS1tZW51LFxuW2RhdGEtdGhlbWU9XCJsaWdodFwiXSAuY2hhbGstc3RhdHVzLW1lbnUge1xuICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMzEsIDI5LCAyMywgMC4xOCk7XG59XG5cbi8qIFRoZSBkZWZhdWx0IHNjcmltIGlzIDcwJSBibGFjaywgdHVuZWQgZm9yIGRyb3BwaW5nIGEgZGFyayBtb2RhbCBvbnRvIGFcbiAgIGRhcmsgYXBwLiBPdmVyIGNyZWFtIGl0IHJlYWRzIGFzIGEgbXVkZHkgb2xpdmUgd2FzaCBhbmQgZHJhZ3MgdGhlIHdob2xlXG4gICB3aW5kb3cgZG93biB3aXRoIGl0LiBMaWdodGVyLCBhbmQgdGludGVkIHdpdGggdGhlIHRoZW1lJ3Mgb3duIG5lYXItYmxhY2tcbiAgIHNvIGl0IGRpbXMgcmF0aGVyIHRoYW4gZGlzY29sb3JzLiAqL1xuW2RhdGEtdGhlbWU9XCJsaWdodFwiXSAuY2hhbGstbW9kYWwtYmFja2Ryb3Age1xuICBiYWNrZ3JvdW5kOiByZ2JhKDMxLCAyOSwgMjMsIDAuNDUpO1xufVxuXG4vKiBJbiBsaWdodCBtb2RlLCB0aGUgYWN0aXZlLWNoYW5uZWwgaGlnaGxpZ2h0IGluIHRoZSBzaWRlYmFyIGlzIGFcbiAgIHN1YnRsZSB3YXJtIHRpbnQgcmF0aGVyIHRoYW4gdGhlIGdyZWVuLW9uLWJsYWNrIHdlIGhhdmUgaW4gdGhlXG4gICBkYXJrIHRoZW1lLiBEb25lIHZpYSBvcGFjaXR5IG9mIHRoZSBhY2NlbnQuICovXG5bZGF0YS10aGVtZT1cImxpZ2h0XCJdIC5jaGFsay1zaWRlYmFyLWl0ZW0tLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoNDUsIDExMCwgNjMsIDAuMTApO1xufVxuXG4vKiBUaGUgcHJlc2VuY2UgdHJpZ2dlcidzIGhvdmVyIHN0YXRlIGluIDkuNmogdXNlcyBhIGJnLWVsZXZcbiAgIHJlZmVyZW5jZSB0aGF0IHdvcmtzIGZpbmUgaGVyZSAtLSBubyBvdmVycmlkZSBuZWVkZWQuICovXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGhhc2UgOS43YjogdGhlbWUgcGlja2VyIHN0eWxpbmdcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uY2hhbGstcHJvZmlsZS10aGVtZS1waWNrZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgbWFyZ2luLXRvcDogdmFyKC0tY2hhbGstczEpO1xufVxuXG4uY2hhbGstcHJvZmlsZS10aGVtZS1vcHRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAxMDBtcyBlYXNlO1xufVxuLmNoYWxrLXByb2ZpbGUtdGhlbWUtb3B0aW9uOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xufVxuLmNoYWxrLXByb2ZpbGUtdGhlbWUtb3B0aW9uLS1hY3RpdmUge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWFjY2VudCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYpO1xufVxuXG4uY2hhbGstcHJvZmlsZS10aGVtZS1vcHRpb24gaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgLyogTmF0aXZlIHJhZGlvcyBsb29rIG91dCBvZiBwbGFjZTsgd2UgaGF2ZSBhIGN1c3RvbSB2aXN1YWwgdmlhXG4gICAgIHRoZSBhY3RpdmUgYm9yZGVyICsgc3dhdGNoLiBIaWRlIHRoZSBuYXRpdmUgY29udHJvbCBidXQga2VlcFxuICAgICBpdCBmb2N1c2FibGUgZm9yIGtleWJvYXJkIG5hdi4gKi9cbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi5jaGFsay1wcm9maWxlLXRoZW1lLW9wdGlvbiBpbnB1dFt0eXBlPVwicmFkaW9cIl06Zm9jdXMtdmlzaWJsZVxuICArIC5jaGFsay1wcm9maWxlLXRoZW1lLXN3YXRjaCB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4uY2hhbGstcHJvZmlsZS10aGVtZS1zd2F0Y2gge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLmNoYWxrLXByb2ZpbGUtdGhlbWUtc3dhdGNoLXByZXZpZXcge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG59XG4vKiBTdGF0aWMgcHJldmlldyBzd2F0Y2hlczogZG8gTk9UIHVzZSB2YXJpYWJsZXMgc28gdGhleSBzaG93IHRoZVxuICAgdGhlbWUncyBhY3R1YWwgY29sb3JzIHJlZ2FyZGxlc3Mgb2Ygd2hpY2ggb25lIGlzIGN1cnJlbnRseSBhY3RpdmUuICovXG4uY2hhbGstcHJvZmlsZS10aGVtZS1zd2F0Y2gtcHJldmlldy0tZ3JlZW4ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMDAwMDAwIDAlLCAjMDAwMDAwIDUwJSwgIzAwZmY0MSA1MCUsICMwMGZmNDEgMTAwJSk7XG59XG4uY2hhbGstcHJvZmlsZS10aGVtZS1zd2F0Y2gtcHJldmlldy0tbGlnaHQge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjdmNWVlIDAlLCAjZjdmNWVlIDUwJSwgIzJkNmUzZiA1MCUsICMyZDZlM2YgMTAwJSk7XG59XG5cbi8qIEZvbnQgcGlja2VyOiBzYW1lIG9wdGlvbiByb3dzIGFzIHRoZSB0aGVtZSBwaWNrZXIsIHdpdGggYW4gXCJBZ1wiXG4gICByZW5kZXJlZCBpbiB0aGUgY2FuZGlkYXRlIGZhbWlseSB3aGVyZSB0aGUgY29sb3Igc3dhdGNoIHNpdHMuIEVhY2hcbiAgIHNhbXBsZSBuYW1lcyBpdHMgb3duIHN0YWNrIHNvIHRoZSByb3cgcHJldmlld3MgdGhlIGZhY2UgeW91J2QgZ2V0XG4gICByYXRoZXIgdGhhbiB0aGUgb25lIGN1cnJlbnRseSBhcHBsaWVkLiAqL1xuLmNoYWxrLXByb2ZpbGUtZm9udC1zYW1wbGUge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xufVxuLmNoYWxrLXByb2ZpbGUtZm9udC1zYW1wbGUtLW1vbm8ge1xuICBmb250LWZhbWlseTogdmFyKC0tY2hhbGstZm9udC1tb25vKTtcbn1cbi5jaGFsay1wcm9maWxlLWZvbnQtc2FtcGxlLS1qZXRicmFpbnMge1xuICBmb250LWZhbWlseTogdmFyKC0tY2hhbGstZm9udC1qZXRicmFpbnMpO1xufVxuLmNoYWxrLXByb2ZpbGUtZm9udC1zYW1wbGUtLWZpcmEge1xuICBmb250LWZhbWlseTogdmFyKC0tY2hhbGstZm9udC1maXJhKTtcbn1cbi5jaGFsay1wcm9maWxlLWZvbnQtc2FtcGxlLS1jYXNjYWRpYSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1jaGFsay1mb250LWNhc2NhZGlhKTtcbn1cbi5jaGFsay1wcm9maWxlLWZvbnQtc2FtcGxlLS1zYW5zIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWNoYWxrLWZvbnQtc2Fucyk7XG59XG4uY2hhbGstcHJvZmlsZS1mb250LXNhbXBsZS0tc2VyaWYge1xuICBmb250LWZhbWlseTogdmFyKC0tY2hhbGstZm9udC1zZXJpZik7XG59XG5cbi5jaGFsay1wcm9maWxlLXRoZW1lLW5hbWUge1xuICBmb250LXdlaWdodDogNTAwO1xufVxuLmNoYWxrLXByb2ZpbGUtdGhlbWUtZGVzYyB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xufVxuXG4uY2hhbGstcHJvZmlsZS1oaW50IHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tY2hhbGstczEpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKiA4NC0zOiBhIGhpbnQgdGhhdCBuZWVkcyBhbnN3ZXJpbmcgcmF0aGVyIHRoYW4gcmVhZGluZyAtLSBjdXJyZW50bHkgb25seSB0aGVcbiAgIHBpbiBiYWNrdXAncyBcInlvdXIgZGV2aWNlcyBkaXNhZ3JlZSBhYm91dCBzb21lb25lJ3Mga2V5XCIuIERpbW1lZCBpdGFsaWNcbiAgIHdvdWxkIGJ1cnkgZXhhY3RseSB0aGUgbGluZSB0aGF0IG11c3Qgbm90IGJlIG1pc3NlZC4gKi9cbi5jaGFsay1wcm9maWxlLXdhcm4ge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1jaGFsay1zMSk7XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjZyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLXdhcm4pO1xuICBjb2xvcjogdmFyKC0tY2hhbGstd2Fybik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi8qIDc2LTE6IHRoZSBrZXlib2FyZCBjaGVhdCBzaGVldC4gVHdvIGNvbHVtbnMgYXMgYSBncmlkIHJhdGhlciB0aGFuIGFcbiAgIHBlci1yb3cgZmxleCBib3gsIHNvIHRoZSBkZXNjcmlwdGlvbnMgbGluZSB1cCBkb3duIHRoZSBsaXN0OyB0aGUgcm93cyBhcmVcbiAgIGRpc3BsYXk6IGNvbnRlbnRzIHNvIHRoZSA8ZHQ+LzxkZD4gcGFpcnMgbGFuZCBpbiB0aGUgZ3JpZCdzIHRyYWNrcy4gKi9cbi5jaGFsay1wcm9maWxlLWtleXMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gMWZyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMxKSB2YXIoLS1jaGFsay1zMyk7XG4gIG1hcmdpbjogdmFyKC0tY2hhbGstczIpIDAgMDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbn1cbi5jaGFsay1wcm9maWxlLWtleXMtcm93IHtcbiAgZGlzcGxheTogY29udGVudHM7XG59XG4uY2hhbGstcHJvZmlsZS1rZXlzLXJvdyBkdCxcbi5jaGFsay1wcm9maWxlLWtleXMtcm93IGRkIHtcbiAgbWFyZ2luOiAwO1xufVxuLmNoYWxrLXByb2ZpbGUta2V5cy1yb3cgZGQge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbn1cbi5jaGFsay1wcm9maWxlLWtleXMga2JkIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGhhc2UgOS43YzogY3liZXJwdW5rIHRoZW1lXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIERlZXAgdmlvbGV0LWJsYWNrIGJhY2tncm91bmQgd2l0aCBob3QgbWFnZW50YSArIGVsZWN0cmljIGN5YW5cbiAgIGFjY2VudHMuIEJvZHkgdGV4dCBzdGF5cyBhIGhpZ2gtY29udHJhc3QgcGFsZSBsYXZlbmRlciBmb3JcbiAgIHJlYWRhYmlsaXR5ICh0aGUgXCJuZW9uIG9uIHBpdGNoLWJsYWNrXCIgbW92aWUgYWVzdGhldGljIGxvb2tzXG4gICBncmVhdCBpbiBzdGlsbHMgYnV0IGlzIGJydXRhbCB0byBhY3R1YWxseSByZWFkKS5cblxuICAgRGVzaWduIGNob2ljZXM6XG4gICAtIEJhY2tncm91bmQgaXMgdmlvbGV0LWJsYWNrICgjMGEwNDIwKSwgbm90IHB1cmUgYmxhY2sgLS0gdGhlXG4gICAgIHZpb2xldCB1bmRlcnRvbmUgaXMgd2hhdCBkaWZmZXJlbnRpYXRlcyB0aGlzIGZyb20gdGhlIGdyZWVuXG4gICAgIHRlcm1pbmFsIHRoZW1lLlxuICAgLSBmZy1icmlnaHQgaXMgaG90IG1hZ2VudGEgKCNmZjJlYWEpIC0tIGVtcGhhc2lzLCBcInlvdVwiIGxhYmVscyxcbiAgICAgYWN0aXZlIHN0YXRlcy5cbiAgIC0gQWNjZW50IGlzIGVsZWN0cmljIGN5YW4gKCMwMGYwZmYpIC0tIGJvcmRlcnMsIHNlY29uZGFyeVxuICAgICBzdXJmYWNlcywgbGlua3MuXG4gICAtIFdhcm4ga2VlcHMgYW4gYW1iZXIveWVsbG93IGJlY2F1c2UgdXJnZW5jeSByZWFkcyBiZXN0IGluXG4gICAgIHllbGxvdyByZWdhcmRsZXNzIG9mIGNvbnRleHQ7IHB1cmUgbmVvbiB3b3VsZCBtZWx0IGludG8gdGhlXG4gICAgIHJlc3Qgb2YgdGhlIHBhbGV0dGUuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuW2RhdGEtdGhlbWU9XCJjeWJlcnB1bmtcIl0ge1xuICAtLWNoYWxrLWJnOiAgICAgICAgICAgIzBhMDQyMDtcbiAgLS1jaGFsay1iZy1lbGV2OiAgICAgICMxNDBhMzI7XG4gIC0tY2hhbGstYmctZWxldi0yOiAgICAjMWYwZjRkO1xuICAtLWNoYWxrLWZnOiAgICAgICAgICAgI2YwZThmZjtcbiAgLS1jaGFsay1mZy1kaW06ICAgICAgICM4YTdhYjg7XG4gIC0tY2hhbGstZmctYnJpZ2h0OiAgICAjZmYyZWFhO1xuICAvKiBMaWZ0ZWQgZnJvbSAjNWE0YThhICgyLjY6MSk6IHRoZSBtdXRlZCB0aWVyIGNhcnJpZXMgdGltZXN0YW1wcyBhbmRcbiAgICAgcGxhY2Vob2xkZXJzLCB3aGljaCB2YW5pc2hlZCBpbnRvIHRoZSB2aW9sZXQgZ3JvdW5kLiAqL1xuICAtLWNoYWxrLWZnLW11dGVkOiAgICAgIzdhNjhhZDtcbiAgLS1jaGFsay1ib3JkZXI6ICAgICAgICM0YTJhOGE7XG4gIC0tY2hhbGstYWNjZW50OiAgICAgICAjMDBmMGZmO1xuICAtLWNoYWxrLXdhcm46ICAgICAgICAgI2ZmY2MwMDtcbiAgLS1jaGFsay1lcnJvcjogICAgICAgICNmZjMwNjA7XG5cbiAgY29sb3Itc2NoZW1lOiBkYXJrO1xufVxuXG4vKiBBY3RpdmUgc2lkZWJhciBpdGVtOiBmYWludCBtYWdlbnRhIHdhc2ggaW5zdGVhZCBvZiB0aGUgZGVmYXVsdFxuICAgZ3JlZW4gdGludC4gKi9cbltkYXRhLXRoZW1lPVwiY3liZXJwdW5rXCJdIC5jaGFsay1zaWRlYmFyLWl0ZW0tLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCA0NiwgMTcwLCAwLjEyKTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQaGFzZSA5LjdjOiBzb2xhcml6ZWQtZGFyayB0aGVtZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBFdGhhbiBTY2hvb25vdmVyJ3Mgd2VsbC1rbm93biBwYWxldHRlLiBVc2VzIHRoZSBwdWJsaXNoZWQgaGV4XG4gICB2YWx1ZXMgZGlyZWN0bHkgc28gaXQgbWF0Y2hlcyB3aGF0IHBlb3BsZSBleHBlY3QgZnJvbVxuICAgXCJzb2xhcml6ZWRcIiBpbiBvdGhlciBlZGl0b3JzLlxuXG4gICBNYXBwaW5nIG5vdGVzOlxuICAgLSBjaGFsay1iZyAgICAgICAgICA9IGJhc2UwMyAgKCMwMDJiMzYpXG4gICAtIGNoYWxrLWJnLWVsZXYgICAgID0gYmFzZTAyICAoIzA3MzY0MilcbiAgIC0gY2hhbGstZmcgICAgICAgICAgPSBiYXNlMCAgICgjODM5NDk2KSAgLS0gYm9keSB0ZXh0IG9uIGRhcmtcbiAgIC0gY2hhbGstZmctYnJpZ2h0ICAgPSBiYXNlMSAgICgjOTNhMWExKSAgLS0gZW1waGFzaXplZFxuICAgLSBjaGFsay1mZy1kaW0gICAgICA9IGJhc2UwMSAgKCM1ODZlNzUpICAtLSBjb21tZW50cy9zZWNvbmRhcnlcbiAgIC0gY2hhbGstYWNjZW50ICAgICAgPSBibHVlICAgICgjMjY4YmQyKSAgLS0gdGhlIHNvbGFyaXplZCBzaWduYXR1cmVcbiAgIC0gY2hhbGstd2FybiAgICAgICAgPSB5ZWxsb3cgICgjYjU4OTAwKVxuICAgLSBjaGFsay1lcnJvciAgICAgICA9IHJlZCAgICAgKCNkYzMyMmYpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuW2RhdGEtdGhlbWU9XCJzb2xhcml6ZWQtZGFya1wiXSB7XG4gIC0tY2hhbGstYmc6ICAgICAgICAgICAjMDAyYjM2O1xuICAtLWNoYWxrLWJnLWVsZXY6ICAgICAgIzA3MzY0MjtcbiAgLS1jaGFsay1iZy1lbGV2LTI6ICAgICMwZTRhNWM7XG4gIC8qIFNoaWZ0ZWQgb25lIHN0ZXAgdXAgc29sYXJpemVkJ3Mgb3duIHJhbXAgKGJhc2UxL2Jhc2UwL2Jhc2UwMC9iYXNlMlxuICAgICByYXRoZXIgdGhhbiBiYXNlMC9iYXNlMDEvYmFzZTAxL2Jhc2UxKS4gYmFzZTAxIGlzIHRoZSBwYWxldHRlJ3NcbiAgICAgKmNvbW1lbnQqIHRvbmUgLS0gYXV0aGVudGljLCBidXQgY2hhbGsgc3BlbmRzIGZnLWRpbSBvbiBkaWFsb2cgaGVscFxuICAgICB0ZXh0IGFuZCBpbmFjdGl2ZSB0YWJzLCB3aGVyZSAyLjQ6MSBvbiBhbiBlbGV2YXRlZCByb3cgaXMgbm90XG4gICAgIHJlYWRhYmxlLiBFdmVyeSB2YWx1ZSBoZXJlIGlzIHN0aWxsIGEgcHVibGlzaGVkIHNvbGFyaXplZCBoZXguICovXG4gIC0tY2hhbGstZmc6ICAgICAgICAgICAjOTNhMWExO1xuICAtLWNoYWxrLWZnLWRpbTogICAgICAgIzgzOTQ5NjtcbiAgLS1jaGFsay1mZy1icmlnaHQ6ICAgICNlZWU4ZDU7XG4gIC0tY2hhbGstZmctbXV0ZWQ6ICAgICAjNjU3YjgzO1xuICAtLWNoYWxrLWJvcmRlcjogICAgICAgIzA3MzY0MjtcbiAgLS1jaGFsay1hY2NlbnQ6ICAgICAgICMyNjhiZDI7XG4gIC0tY2hhbGstd2FybjogICAgICAgICAjYjU4OTAwO1xuICAtLWNoYWxrLWVycm9yOiAgICAgICAgI2RjMzIyZjtcblxuICBjb2xvci1zY2hlbWU6IGRhcms7XG59XG5cbi8qIDEyNC0xOiBzb2xhcml6ZWQtZGFyayBkZWNsYXJlcyAtLWNoYWxrLWJvcmRlciB0aGUgc2FtZSBjb2xvdXIgYXMgaXRzIG93blxuICAgLS1jaGFsay1iZy1lbGV2LCBzbyBldmVyeSBjYXJkIGJvcmRlciBhbmQgcm93IGhhaXJsaW5lIGZyb20gMTI0LTEgd291bGRcbiAgIGJlIGludmlzaWJsZS4gVGhpcyByZS1wb2ludHMgdGhlIHRva2VuIHRvIC0tY2hhbGstYmctZWxldi0yLCBpbnNpZGUgdGhlXG4gICBzZXR0aW5ncyBkaWFsb2dzIG9ubHkuICovXG5bZGF0YS10aGVtZT1cInNvbGFyaXplZC1kYXJrXCJdIC5jaGFsay1tb2RhbC0tc2V0dGluZ3Mge1xuICAtLWNoYWxrLWJvcmRlcjogdmFyKC0tY2hhbGstYmctZWxldi0yKTtcbn1cblxuLyogQWN0aXZlIHNpZGViYXIgaXRlbTogYSBsb3ctb3BhY2l0eSB3YXNoIG9mIHNvbGFyaXplZCBibHVlLiAqL1xuW2RhdGEtdGhlbWU9XCJzb2xhcml6ZWQtZGFya1wiXSAuY2hhbGstc2lkZWJhci1pdGVtLS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDM4LCAxMzksIDIxMCwgMC4xMik7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGhhc2UgOS43YzogcGlja2VyIHN3YXRjaGVzIGZvciBuZXcgdGhlbWVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFN0YXRpYyBwcmV2aWV3IHN3YXRjaGVzIHVzZSBoYXJkLWNvZGVkIGhleCAobm90IHZhcmlhYmxlcykgc29cbiAgIHRoZXkgYWx3YXlzIHNob3cgdGhlIFRIRU1FJ1MgT1dOIGNvbG9ycyByZWdhcmRsZXNzIG9mIHdoaWNoXG4gICB0aGVtZSBpcyBjdXJyZW50bHkgYWN0aXZlLiBTYW1lIGRpYWdvbmFsLXNwbGl0IHBhdHRlcm4gYXMgdGhlXG4gICBncmVlbiArIGxpZ2h0IHN3YXRjaGVzIGZyb20gOS43Yi5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uY2hhbGstcHJvZmlsZS10aGVtZS1zd2F0Y2gtcHJldmlldy0tY3liZXJwdW5rIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZyxcbiAgICAjMGEwNDIwIDAlLCAjMGEwNDIwIDUwJSxcbiAgICAjZmYyZWFhIDUwJSwgI2ZmMmVhYSAxMDAlKTtcbn1cblxuLmNoYWxrLXByb2ZpbGUtdGhlbWUtc3dhdGNoLXByZXZpZXctLXNvbGFyaXplZC1kYXJrIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZyxcbiAgICAjMDAyYjM2IDAlLCAjMDAyYjM2IDUwJSxcbiAgICAjMjY4YmQyIDUwJSwgIzI2OGJkMiAxMDAlKTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQaGFzZSA5LjdkOiBjb21wYWN0IG1vZGUgKyBuby10aW1lc3RhbXAgZ3JpZFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIENvbXBhY3Q6IHRpZ2h0ZXIgZ2FwIGJldHdlZW4gbWVzc2FnZXMsIHNtYWxsZXIgcGVyLXJvdyBwYWRkaW5nLiAqL1xuLmNoYWxrLW1lc3NhZ2VzLS1jb21wYWN0IHtcbiAgLS1jaGFsay1tc2ctZ2FwOiAxcHg7XG59XG4uY2hhbGstbWVzc2FnZXMtLWNvbXBhY3QgLmNoYWxrLW1lc3NhZ2Uge1xuICAvKiBUaGUgc2hvcnRoYW5kIHdpbnMgb3ZlciB0aGUgYmFzZSBydWxlLCBzbyBpdCBoYXMgdG8gY2FycnkgdGhlIG1hcmtlclxuICAgICBndXR0ZXIgdG9vIG9yIGNvbXBhY3QgbW9kZSBsb3NlcyBpdC4gKi9cbiAgcGFkZGluZzogMXB4IHZhcigtLWNoYWxrLXMyKSAxcHggY2FsYyh2YXIoLS1jaGFsay1zMikgKyB2YXIoLS1jaGFsay1tc2ctZ3V0dGVyKSk7XG59XG5cbi8qIFBoYXNlIDkuN2w6IGluIGNvbXBhY3QgbW9kZSwgbWF0Y2ggdGhlIGJvZHkgdG8gdGhlIHRpbWVzdGFtcC9zZW5kZXJcbiAgIHNpemUgKC0tY2hhbGstc2l6ZS1zbWFsbCkgc28gYWxsIHRocmVlIHJlYWQgYXMgb25lIGRlbnNlIGxpbmUuIEluIHRoZVxuICAgbm9ybWFsIChyb29teSkgdmlldyB0aGUgYm9keSBzdGF5cyBhdCB0aGUgbGFyZ2VyIGJhc2Ugc2l6ZSwgd2hpY2ggaXNcbiAgIHdoYXQgeW91IHdhbnQgd2hlbiByb3dzIGhhdmUgYnJlYXRoaW5nIHJvb207IGNvbXBhY3QgaXMgYWJvdXRcbiAgIGZpdHRpbmcgbW9yZSBvbiBzY3JlZW4sIHNvIHVuaWZvcm0tc21hbGwgcmVhZHMgY2xlYW5lciB0aGVyZS4gT25seVxuICAgdGhlIGJvZHkgbmVlZHMgbG93ZXJpbmcgLS0gdGltZSBhbmQgc2VuZGVyIGFyZSBhbHJlYWR5IHNtYWxsLiAqL1xuLmNoYWxrLW1lc3NhZ2VzLS1jb21wYWN0IC5jaGFsay1tZXNzYWdlLWJvZHkge1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xufVxuXG4vKiBOby10aW1lc3RhbXAgdmFyaWFudDogZHJvcCB0aGUgbGVhZGluZyB0aW1lIGNvbHVtbi4gVGhlIGdyaWRcbiAgIHJlZmxvd3MgdG8gc2VuZGVyICsgYm9keSBvbmx5LiAqL1xuLmNoYWxrLW1lc3NhZ2UtLW5vLXRpbWUge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDljaCAxZnI7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGhhc2UgOS43ZDogUHJvZmlsZVBhbmVsIGNoYXQgc2VjdGlvblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBVc2VzIC5jaGFsay1wcm9maWxlLWZpZWxkIGFuZCAuY2hhbGstcHJvZmlsZS1sYWJlbCBhcyBjbGFzcyBuYW1lcywgYnV0XG4gICBhdCB0aGlzIHBvaW50IG5laXRoZXIgY2FycmllZCBhIENTUyBydWxlIC0tIDEyNC0xIGlzIHdoYXQgZmlyc3QgZ2F2ZVxuICAgdGhlbSBvbmUuIEFkZHMgYSBjaGVja2JveC1yb3cgdmFyaWFudCBhbmQgYSBzZWxlY3QtaW5wdXQgdmFyaWFudCBzaW5jZVxuICAgdGhlIGFwcGVhcmFuY2Ugc2VjdGlvbiBvbmx5IGhhZCByYWRpb3MuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmNoYWxrLXByb2ZpbGUtY2hlY2tib3gtbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG4uY2hhbGstcHJvZmlsZS1jaGVja2JveC1sYWJlbCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAvKiBUaGUgZGVmYXVsdCBjaGVja2JveCBsb29rcyBmaW5lIGFjcm9zcyB0aGVtZXM7IGp1c3QgYWxpZ24gaXQuICovXG4gIHdpZHRoOiAxNHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgYWNjZW50LWNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xufVxuXG4vKiBQaGFzZSA0MC0zOiB0aGUgbm90aWZpY2F0aW9uIHNvdW5kIGNhdGVnb3J5IGxpc3QuIEVhY2ggcm93IGlzIGEgdG9nZ2xlXG4gICBwbHVzIGEgcHJldmlldywgc28gdGhlIGxhYmVsIGNvbHVtbiBoYXMgdG8gZ2l2ZSBhbmQgdGhlIGJ1dHRvbiBtdXN0IG5vdC4gKi9cbi5jaGFsay1wcm9maWxlLXNvdW5kLWxpc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLWNoYWxrLXMxKTtcbiAgbWFyZ2luLXRvcDogdmFyKC0tY2hhbGstczEpO1xufVxuLmNoYWxrLXByb2ZpbGUtc291bmQtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbn1cbi5jaGFsay1wcm9maWxlLXNvdW5kLXJvdyAuY2hhbGstcHJvZmlsZS1jaGVja2JveC1sYWJlbCB7XG4gIC8qIExvbmcgZGVzY3JpcHRpb25zIHdyYXAgcmF0aGVyIHRoYW4gcHVzaGluZyB0aGUgYnV0dG9uIG9mZiB0aGUgZWRnZS4gKi9cbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cbi5jaGFsay1wcm9maWxlLXNvdW5kLXByZXZpZXcge1xuICBmbGV4OiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIHBhZGRpbmc6IDAgdmFyKC0tY2hhbGstczIpO1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY2hhbGstcHJvZmlsZS1zb3VuZC1wcmV2aWV3OmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstYWNjZW50KTtcbn1cbi5jaGFsay1wcm9maWxlLXNvdW5kLXByZXZpZXc6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBvdXRsaW5lLW9mZnNldDogLTFweDtcbn1cblxuLyogNTAtNDogdGhlIG5vdGlmaWNhdGlvbiBydWxlcyBwYW5lbC4gU2hhcmVzIHRoZSBtb2RhbCBzaGVsbCBhbmQgdGhlXG4gICBwcm9maWxlIHBhbmVsJ3MgZmllbGQvaGludC9wcmV2aWV3IHN0eWxlczsgb25seSB0aGUgcnVsZSByb3dzIGFuZCB0aGVcbiAgIHByaW9yaXR5IG1hdHJpeCBhcmUgaXRzIG93bi4gKi9cbi5jaGFsay1ub3RpZnktcGFuZWwge1xuICB3aWR0aDogbWluKDU2MHB4LCA5MnZ3KTtcbiAgbWF4LWhlaWdodDogODB2aDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5jaGFsay1ub3RpZnktcGFuZWwtYm9keSB7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKSB2YXIoLS1jaGFsay1zMykgdmFyKC0tY2hhbGstczMpO1xufVxuLmNoYWxrLW5vdGlmeS1wYW5lbC1ib2R5IHNlY3Rpb24gKyBzZWN0aW9uIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tY2hhbGstczMpO1xufVxuLmNoYWxrLW5vdGlmeS1wYW5lbC1ib2R5IGgzIHtcbiAgbWFyZ2luOiAwIDAgdmFyKC0tY2hhbGstczEpO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbn1cbi5jaGFsay1ub3RpZnktbWF0cml4IHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbn1cbi5jaGFsay1ub3RpZnktbWF0cml4IHRoLFxuLmNoYWxrLW5vdGlmeS1tYXRyaXggdGQge1xuICBwYWRkaW5nOiAycHggdmFyKC0tY2hhbGstczIpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG59XG4uY2hhbGstbm90aWZ5LW1hdHJpeCB0ZDpmaXJzdC1jaGlsZCxcbi5jaGFsay1ub3RpZnktbWF0cml4IHRoOmZpcnN0LWNoaWxkIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuLmNoYWxrLW5vdGlmeS1ydWxlLXJvdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG59XG4uY2hhbGstbm90aWZ5LXJ1bGUtbmFtZSB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4uY2hhbGstbm90aWZ5LXJ1bGUtY29udHJvbHMge1xuICBmbGV4OiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMxKTtcbn1cbi5jaGFsay1ub3RpZnktcHJpb3JpdHktc2VsZWN0IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmcpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBwYWRkaW5nOiAxcHggdmFyKC0tY2hhbGstczEpO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4uY2hhbGstbm90aWZ5LXBlcm1pc3Npb24tYnRuIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBwYWRkaW5nOiAycHggdmFyKC0tY2hhbGstczIpO1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY2hhbGstbm90aWZ5LXBlcm1pc3Npb24tYnRuOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstYWNjZW50KTtcbn1cbi8qIDUwLTU6IHRoZSBub3RpZmljYXRpb24gcm93IGluIHRoZSBzaWRlYmFyIGNvbnRleHQgbWVudXMuICovXG4uY2hhbGstbmljay1tZW51LWxhYmVsIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tY2hhbGstczEpO1xufVxuXG4vKiAxMDYtMzogdGhlIHNob3J0LW5hbWUgcm93J3MgY2hhcmFjdGVyIGNvdW50LCB0cmFpbGluZyB0aGUgaW5wdXQuICovXG4uY2hhbGstbmljay1tZW51LWhpbnQge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG59XG5cbi8qIFBoYXNlIDQxLTM6IHRoZSBtaWMgbGV2ZWwgbWV0ZXIsIHNoYXJpbmcgdGhlIHJvdyBzaGFwZSAoYW5kIHRoZSBwcmV2aWV3XG4gICBidXR0b24pIHdpdGggdGhlIHNvdW5kIHJvd3MgYWJvdmUuICovXG4uY2hhbGstcHJvZmlsZS1taWMtdGVzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1jaGFsay1zMSk7XG59XG5cbi8qIDUyLTQ6IHRoZSBjYW1lcmEgcHJldmlldy4gVGhlIGJ1dHRvbiBzaXRzIGJlc2lkZSB0aGUgcGljdHVyZSByYXRoZXIgdGhhblxuICAgdW5kZXIgaXQgc28gdGhlIHJvdyBrZWVwcyBpdHMgaGVpZ2h0IHdoZW4gbm90aGluZyBpcyBwbGF5aW5nLiAqL1xuLmNoYWxrLXByb2ZpbGUtY2FtZXJhLXByZXZpZXcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIG1hcmdpbi10b3A6IHZhcigtLWNoYWxrLXMxKTtcbn1cblxuLmNoYWxrLXByb2ZpbGUtY2FtZXJhLXZpZGVvIHtcbiAgd2lkdGg6IDI0MHB4O1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGFzcGVjdC1yYXRpbzogMTYgLyA5O1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi5jaGFsay1wcm9maWxlLWNhbWVyYS1idG4ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMxKSB2YXIoLS1jaGFsay1zMyk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNoYWxrLXByb2ZpbGUtY2FtZXJhLWJ0bjpob3Zlcixcbi5jaGFsay1wcm9maWxlLWNhbWVyYS1idG46Zm9jdXMtdmlzaWJsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYpO1xufVxuLyogNDQtODogdGhlIG91dGVyIGVsZW1lbnQgaXMgb25seSBhIHBvc2l0aW9uaW5nIGNvbnRleHQgbm93LCBzbyB0aGUgdGhyZXNob2xkXG4gICBoYW5kbGVzIGNhbiBoYW5nIHBhc3QgdGhlIGJhcidzIGVuZHMgd2l0aG91dCBiZWluZyBjbGlwcGVkIGJ5IHRoZSBvdmVyZmxvd1xuICAgcnVsZSB0aGF0IGtlZXBzIHRoZSBmaWxsIGluc2lkZSB0aGUgcm91bmRlZCBjb3JuZXJzLiAqL1xuLmNoYWxrLXByb2ZpbGUtbWljLW1ldGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIGhlaWdodDogMTZweDtcbn1cbi5jaGFsay1wcm9maWxlLW1pYy1tZXRlci1iYXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4vKiBQaGFzZSA0MS01LCBkcmFnZ2FibGUgc2luY2UgNDQtODogdGhlIHR3byBWQUQgdGhyZXNob2xkcywgb24gdGhlIG1ldGVyIHRoZXlcbiAgIHJlZmVyIHRvLiBUaGUgZWxlbWVudCBpcyBhIGdyYWIgdGFyZ2V0IH4xNHB4IHdpZGUgd2l0aCBhIHRoaW4gdmlzaWJsZSBtYXJrXG4gICBkb3duIHRoZSBtaWRkbGUgLS0gYSAzcHggaGl0IGFyZWEgaXMgbm90IHNvbWV0aGluZyB5b3UgY2FuIGNhdGNoIHdpdGggYVxuICAgbW91c2UsIGxldCBhbG9uZSBhIGZpbmdlci4gKi9cbi5jaGFsay1wcm9maWxlLW1pYy1tYXJrIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IC0zcHg7XG4gIGJvdHRvbTogLTNweDtcbiAgd2lkdGg6IDE0cHg7XG4gIG1hcmdpbi1sZWZ0OiAtN3B4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBldy1yZXNpemU7XG4gIC8qIFdpdGhvdXQgdGhpcyB0aGUgYnJvd3NlciBjbGFpbXMgdGhlIGRyYWcgZm9yIHBhbm5pbmcgb24gdG91Y2ggYW5kIHRoZVxuICAgICBoYW5kbGUgbmV2ZXIgbW92ZXMuICovXG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cbi5jaGFsay1wcm9maWxlLW1pYy1tYXJrOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogM3B4O1xuICBib3JkZXItcmFkaXVzOiAxcHg7XG59XG4uY2hhbGstcHJvZmlsZS1taWMtbWFyay0tb3Blbjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbn1cbi5jaGFsay1wcm9maWxlLW1pYy1tYXJrLS1jbG9zZTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstZmctZGltKTtcbn1cbi5jaGFsay1wcm9maWxlLW1pYy1tYXJrOmhvdmVyOjpiZWZvcmUsXG4uY2hhbGstcHJvZmlsZS1taWMtbWFyazpmb2N1cy12aXNpYmxlOjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xufVxuLmNoYWxrLXByb2ZpbGUtbWljLW1hcms6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4vKiA0NC04OiB0aGUgdHdvIHRocmVzaG9sZCByZWFkb3V0cywgdW5kZXIgdGhlIG1ldGVyIHRoYXQgc2V0cyB0aGVtLiAqL1xuLmNoYWxrLXByb2ZpbGUtbWljLXRocmVzaG9sZHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IHZhcigtLWNoYWxrLXMzKTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1jaGFsay1zMSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG59XG4uY2hhbGstcHJvZmlsZS1taWMtbGl2ZSB7XG4gIGZsZXg6IG5vbmU7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xufVxuLmNoYWxrLXByb2ZpbGUtbWljLWxpdmUuaXMtbGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xufVxuLmNoYWxrLXByb2ZpbGUtc291bmQtcHJldmlldy5pcy1jYXB0dXJpbmcge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xufVxuLmNoYWxrLXByb2ZpbGUtbWljLW1ldGVyLWZpbGwge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWFjY2VudCk7XG4gIC8qIE5vIHRyYW5zaXRpb24gb24gd2lkdGg6IHRoZSB3aG9sZSB2YWx1ZSBvZiBhIGxldmVsIG1ldGVyIGlzIHRoYXQgaXQgaXNcbiAgICAgaW5zdGFudGFuZW91cy4gU21vb3RoaW5nIGl0IHdvdWxkIHNob3cgYSBsZXZlbCBub2JvZHkgaXMgc3BlYWtpbmcgYXQuICovXG59XG4uY2hhbGstcHJvZmlsZS1taWMtbWV0ZXItZmlsbC5pcy1jbGlwcGluZyB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWVycm9yKTtcbn1cblxuLmNoYWxrLXByb2ZpbGUtc2VsZWN0IHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmcpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMSkgdmFyKC0tY2hhbGstczIpO1xuICBmb250OiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY2hhbGstcHJvZmlsZS1zZWxlY3Q6ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4uY2hhbGstcHJvZmlsZS1zZWxlY3Q6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBvdXRsaW5lLW9mZnNldDogLTFweDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQaGFzZSA5LjdlOiB1c2VyIGNvbG9yIGVkaXRvclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5jaGFsay11c2VyLWNvbG9ycyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1jaGFsay1zMik7XG59XG5cbi5jaGFsay11c2VyLWNvbG9ycy1lbXB0eSB7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKSAwO1xufVxuXG4uY2hhbGstdXNlci1jb2xvcnMtcm93IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMzZweCBtaW5tYXgoMTEwcHgsIGF1dG8pIDI4cHg7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uY2hhbGstdXNlci1jb2xvcnMtaGFuZGxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmcpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMSkgdmFyKC0tY2hhbGstczIpO1xuICBmb250OiBpbmhlcml0O1xuICBtaW4td2lkdGg6IDA7IC8qIGxldCBpdCBzaHJpbmsgaW5zaWRlIGdyaWQgKi9cbn1cbi5jaGFsay11c2VyLWNvbG9ycy1oYW5kbGU6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBvdXRsaW5lLW9mZnNldDogLTFweDtcbn1cblxuLyogTmF0aXZlIGNvbG9yIGlucHV0IC0tIG1pbmltYWwgc3R5bGluZywganVzdCBhbGlnbiB0byB0aGUgcm93LiAqL1xuLmNoYWxrLXVzZXItY29sb3JzLWNvbG9yIHtcbiAgd2lkdGg6IDM2cHg7XG4gIGhlaWdodDogMjhweDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNoYWxrLXVzZXItY29sb3JzLXNjb3BlIHtcbiAgLyogUmV1c2UgLmNoYWxrLXByb2ZpbGUtc2VsZWN0IGJ1dCB0aGUgZ3JpZCBuZWVkcyBhIHJvdy1hbGlnbmVkXG4gICAgIGhlaWdodC4gVGhlIG5hdGl2ZSBzZWxlY3QgcGlja3MgdXAgb3VyIHBhZGRpbmcvZm9udC4gKi9cbiAgaGVpZ2h0OiAyOHB4O1xuICBwYWRkaW5nOiAwIHZhcigtLWNoYWxrLXMyKTtcbn1cblxuLmNoYWxrLXVzZXItY29sb3JzLWRlbGV0ZSB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIHdpZHRoOiAyOHB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmNoYWxrLXVzZXItY29sb3JzLWRlbGV0ZTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1lcnJvcik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstZXJyb3IpO1xufVxuXG4uY2hhbGstdXNlci1jb2xvcnMtYWRkIHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgbWFyZ2luLXRvcDogdmFyKC0tY2hhbGstczIpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMxKSB2YXIoLS1jaGFsay1zMyk7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5jaGFsay11c2VyLWNvbG9ycy1hZGQ6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWFjY2VudCk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGhhc2UgMTBiOiB0aHJlYWQgaW5kaWNhdG9yICsgaG92ZXIgcmVwbHkgYnV0dG9uXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogVGhlIGdyb3VwIGRpdiBpcyBkaXNwbGF5OmNvbnRlbnRzIHNvIGl0IGRvZXNuXFwndCBhbHRlciB0aGVcbiAgIGV4aXN0aW5nIGZsZXggbGF5b3V0IG9mIC5jaGFsay1tZXNzYWdlcy4gVGhlIGJyb3dzZXIgaWdub3JlcyBpdFxuICAgZm9yIGxheW91dCBidXQgaXQgc3RpbGwgc2VydmVzIGFzIHRoZSBSZWFjdCBrZXkgYm91bmRhcnkuICovXG4uY2hhbGstbWVzc2FnZS1ncm91cCB7XG4gIGRpc3BsYXk6IGNvbnRlbnRzO1xufVxuXG4vKiBUaGUgbWFya2VyIGlzIGFic29sdXRlbHkgcGxhY2VkIGluc2lkZSB0aGUgcm93J3Mgb3duIGxlZnQgcGFkZGluZy4gKi9cbi5jaGFsay1tZXNzYWdlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vKiA0MS0zOiB0aGUgcm93IG1lbnUncyBoYW5kbGUuXG4gICBJdCByZXBsYWNlcyB0aGUgYnV0dG9uIHN0cmlwIHRoYXQgdXNlZCB0byBiZSBwaW5uZWQgdG8gdGhlIHJvdydzIFJJR0hUXG4gICBlZGdlIC0tIGFuIG92ZXJsYXkgd2l0aCBubyByZXNlcnZlZCBzcGFjZSBiZWhpbmQgaXQsIHNvIG9uIGFueSBtZXNzYWdlXG4gICB3aG9zZSBmaXJzdCBsaW5lIHJhbiBsb25nIGl0IHBhaW50ZWQgc3RyYWlnaHQgb3ZlciB0aGUgd29yZHMsIGFuZCBldmVuIG9uXG4gICBhIHNob3J0IG9uZSBpdCBtZWFudCBjcm9zc2luZyB0aGUgd2hvbGUgZmVlZCB0byByZWFjaCBpdC4gVGhlIG1hcmtlciBzaXRzXG4gICBpbiB0aGUgcm93J3MgbGVmdCBwYWRkaW5nIGluc3RlYWQ6IGEgZml4ZWQgeCBvbiBldmVyeSByb3csIG91dHNpZGUgdGhlXG4gICBncmlkIGNvbHVtbnMsIHN0cnVjdHVyYWxseSB1bmFibGUgdG8gdG91Y2ggdGhlIGJvZHkuXG5cbiAgIFRoZSBnbHlwaCBpcyBhIFZFUlRJQ0FMIGVsbGlwc2lzOiBcIlx1MDBCN1x1MDBCN1x1MDBCN1wiIGlzIHRocmVlIG1vbm9zcGFjZSBjaGFyYWN0ZXJzIHdpZGVcbiAgIGFuZCwgYm94ZWQsIG1lYXN1cmVkIHdpZGVyIHRoYW4gdGhlIGd1dHRlciBpdHNlbGYsIHNvIGl0IHJlYWNoZWQgaW50byB0aGVcbiAgIHRpbWVzdGFtcC4gXCJcdTIyRUVcIiBpcyBvbmUgY2hhcmFjdGVyLCB3aGljaCBmaXRzIHdpdGggcm9vbSB0byBzcGFyZS4gTm8gYm9yZGVyXG4gICBvciBmaWxsIGVpdGhlciAtLSB0aGlzIGlzIGEgcXVpZXQgaGFuZGxlIGluIGEgbWFyZ2luLCBub3QgYSBidXR0b24gY29tcGV0aW5nXG4gICB3aXRoIHRoZSB0aW1lIGl0IHNpdHMgbmV4dCB0by4gKi9cbi5jaGFsay1tZXNzYWdlLW1hcmtlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogdmFyKC0tY2hhbGstczEpO1xuICB0b3A6IHZhcigtLWNoYWxrLXMxKTtcbiAgLyogQm91bmRlZCBieSB0aGUgZ3V0dGVyIGJ5IGNvbnN0cnVjdGlvbiwgc28gaXQgY2Fubm90IGNyZWVwIGJhY2sgb3ZlciB0aGVcbiAgICAgdGltZXN0YW1wIGlmIHRoZSBmb250IHNjYWxlIGNoYW5nZXMuICovXG4gIHdpZHRoOiBjYWxjKHZhcigtLWNoYWxrLW1zZy1ndXR0ZXIpIC0gMnB4KTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZzogMXB4IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSA4MG1zIGVhc2U7XG59XG5cbi8qIENvbXBhY3Qgcm93cyBhcmUgMXB4LXBhZGRlZCwgc28gdGhlIHJvb215IHRvcCBvZmZzZXQgd291bGQgaGFuZyB0aGUgbWFya2VyXG4gICBiZWxvdyB0aGUgbGluZSBpdCBiZWxvbmdzIHRvLiAqL1xuLmNoYWxrLW1lc3NhZ2VzLS1jb21wYWN0IC5jaGFsay1tZXNzYWdlLW1hcmtlciB7XG4gIHRvcDogMXB4O1xufVxuXG4vKiBSZXZlYWxlZCBvbiByb3cgaG92ZXIsIHdoaWxlIGl0cyBvd24gbWVudSBpcyBvcGVuLCBhbmQgb24ga2V5Ym9hcmQgZm9jdXMuICovXG4uY2hhbGstbWVzc2FnZTpob3ZlciAuY2hhbGstbWVzc2FnZS1tYXJrZXIsXG4uY2hhbGstbWVzc2FnZS0tbWVudS1vcGVuIC5jaGFsay1tZXNzYWdlLW1hcmtlcixcbi5jaGFsay1tZXNzYWdlLW1hcmtlcjpmb2N1cy12aXNpYmxlIHtcbiAgb3BhY2l0eTogMTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87XG59XG5cbi5jaGFsay1tZXNzYWdlLW1hcmtlcjpob3Zlcixcbi5jaGFsay1tZXNzYWdlLS1tZW51LW9wZW4gLmNoYWxrLW1lc3NhZ2UtbWFya2VyIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG59XG4uY2hhbGstbWVzc2FnZS1tYXJrZXI6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBvdXRsaW5lLW9mZnNldDogLTFweDtcbn1cblxuLyogNDEtMzogdGhlIHJvdyBtZW51IGl0c2VsZi4gcG9zaXRpb246Zml4ZWQsIHBsYWNlZCBpbiB2aWV3cG9ydCBjb29yZGluYXRlc1xuICAgYnkgdGhlIGNvbXBvbmVudCAtLSB0aGUgZmVlZCBpcyBhbiBvdmVyZmxvdzphdXRvIHNjcm9sbGVyLCBhbmQgdGhlIGFic29sdXRlXG4gICBtZW51IHRoaXMgcmVwbGFjZXMgd2FzIGNsaXBwZWQgYnkgaXQgb24gdGhlIGxhc3Qgcm93cyBvZiBhIGNoYW5uZWwuXG4gICA2NSBwdXRzIGl0IGFib3ZlIHRoZSBwaG9uZSdzIGZ1bGwtc2NyZWVuIHRocmVhZCBwYW5lbCAoNjApIGFuZCBiZWxvdyB0aGVcbiAgIGVtb2ppIHBpY2tlciAoNzApLCB3aGljaCBcInJlYWN0Li4uXCIgb3BlbnMgb24gdG9wIG9mIGl0LiAqL1xuLmNoYWxrLW1zZ21lbnUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDY1O1xuICBtaW4td2lkdGg6IDEycmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMzUpO1xuICBwYWRkaW5nOiA0cHg7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG59XG5cbi8qIFRoZSBvbmUtY2xpY2sgcmVhY3Rpb25zLiBBIHNpbmdsZSByb3cgYWJvdmUgdGhlIHJlc3QsIGJlY2F1c2UgcmVhY3RpbmcgaXNcbiAgIHdoYXQgbW9zdCBwZW9wbGUgY2FtZSB0byB0aGUgbWVudSBmb3IuICovXG4uY2hhbGstbXNnbWVudS1xdWljayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbn1cbi5jaGFsay1tc2dtZW51LXF1aWNrLWJ0biB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtYmFzZSk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBwYWRkaW5nOiA0cHggNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY2hhbGstbXNnbWVudS1xdWljay1idG46aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstYWNjZW50KTtcbn1cbi5jaGFsay1tc2dtZW51LXF1aWNrLWJ0bjpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xufVxuXG4vKiBFZGl0IGFuZCBkZWxldGUgY29tZSBhZnRlciBhIHJ1bGU6IHRoZXkgYXJlIGFib3V0IG93bmluZyBvciBtb2RlcmF0aW5nIGFcbiAgIG1lc3NhZ2UgcmF0aGVyIHRoYW4gdGFraW5nIHBhcnQsIGFuZCBkZWxldGUgaXMgaXJyZXZlcnNpYmxlLCBzbyBuZWl0aGVyXG4gICBzaG91bGQgc2l0IHdoZXJlIHRoZSBwb2ludGVyIGxhbmRzIGZpcnN0LiAqL1xuLmNoYWxrLW1zZ21lbnUtZ3JvdXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nLXRvcDogNHB4O1xufVxuLmNoYWxrLW1zZ21lbnUtZ3JvdXAgKyAuY2hhbGstbXNnbWVudS1ncm91cCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBtYXJnaW4tdG9wOiA0cHg7XG59XG5cbi5jaGFsay1tc2dtZW51LWl0ZW0ge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBwYWRkaW5nOiA2cHggMTBweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmNoYWxrLW1zZ21lbnUtaXRlbTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZyk7XG59XG4uY2hhbGstbXNnbWVudS1pdGVtLS1kZWxldGU6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZGFuZ2VyLCAjZTU0ODRkKTtcbn1cbi5jaGFsay1tc2dtZW51LWl0ZW06Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBvdXRsaW5lLW9mZnNldDogLTFweDtcbn1cblxuLyogUGhhc2UgMjY6IHRvbWJzdG9uZSByZW5kZXJpbmcgZm9yIGEgZGVsZXRlZCBtZXNzYWdlIGJvZHkuICovXG4uY2hhbGstbWVzc2FnZS1kZWxldGVkIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgb3BhY2l0eTogMC44O1xufVxuXG4vKiAzNy01OiB0aGUgY2hpcCByb3cgdW5kZXIgYSBtZXNzYWdlLiBJbmRlbnRlZCB0byB0aGUgYm9keSBjb2x1bW4gdGhlIHNhbWVcbiAgIHdheSB0aGUgdGhyZWFkIGluZGljYXRvciBpcywgc28gcmVhY3Rpb25zIGxpbmUgdXAgd2l0aCB0aGUgdGV4dCB0aGV5IGFyZVxuICAgYWJvdXQgcmF0aGVyIHRoYW4gd2l0aCB0aGUgdGltZXN0YW1wIGd1dHRlci4gKi9cbi5jaGFsay1tZXNzYWdlLXJlYWN0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiA0cHg7XG4gIG1hcmdpbi10b3A6IDNweDtcbiAgLyogUGlubmVkIHRvIHRoZSBiYXNlIHNpemUgZm9yIHRoZSBzYW1lIHJlYXNvbiAuY2hhbGstbWVzc2FnZS10aHJlYWQtbWV0YSBpczpcbiAgICAgdGhlIGNoLWJhc2VkIGluZGVudCBiZWxvdyBpcyBmb250LXJlbGF0aXZlLCBzbyBhIHNtYWxsZXIgZm9udCBoZXJlIHdvdWxkXG4gICAgIHJlc29sdmUgdGhlIHNhbWUgZm9ybXVsYSB0byBhIGRpZmZlcmVudCB3aWR0aCBhbmQgdGhlIHR3byBzZWNvbmRhcnkgcm93c1xuICAgICB1bmRlciBhIG1lc3NhZ2Ugd291bGQgbm90IGxpbmUgdXAgd2l0aCBlYWNoIG90aGVyLiAqL1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtYmFzZSk7XG4gIHBhZGRpbmctbGVmdDogY2FsYyhcbiAgICB2YXIoLS1jaGFsay1tc2ctZ3V0dGVyKSArIHZhcigtLWNoYWxrLW1zZy10aW1lLWNvbCkgK1xuICAgICAgdmFyKC0tY2hhbGstbXNnLWNvbC1nYXApICsgdmFyKC0tY2hhbGstczIpXG4gICk7XG59XG4uY2hhbGstbWVzc2FnZXMtLW5vLXRpbWUgLmNoYWxrLW1lc3NhZ2UtcmVhY3Rpb25zIHtcbiAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLWNoYWxrLW1zZy1ndXR0ZXIpICsgdmFyKC0tY2hhbGstczIpKTtcbn1cbi5jaGFsay1yZWFjdGlvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgcGFkZGluZzogMXB4IDdweDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgZm9udDogaW5oZXJpdDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmNoYWxrLXJlYWN0aW9uOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbn1cbi8qIFlvdXIgb3duIHJlYWN0aW9uIHJlYWRzIGFzIHByZXNzZWQ6IHRoaXMgaXMgdGhlIHN0YXRlIHlvdSB0b2dnbGUgb2ZmLiAqL1xuLmNoYWxrLXJlYWN0aW9uLS1taW5lIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbn1cbi5jaGFsay1yZWFjdGlvbjpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG59XG4uY2hhbGstcmVhY3Rpb24tZW1vamkge1xuICBmb250LXNpemU6IDEuMDVlbTtcbn1cbi5jaGFsay1yZWFjdGlvbi1jb3VudCB7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG59XG5cbi8qIDc1LTE6IHRoZSBjYXJkIG5hbWluZyB3aG8gc2VudCBvbmUgcmVhY3Rpb24sIG9wZW5lZCBieSBob3Zlciwga2V5Ym9hcmRcbiAgIGZvY3VzLCBvciBhIHByZXNzIG9uIHRvdWNoLlxuXG4gICBwb2ludGVyLWV2ZW50czpub25lIGJlY2F1c2UgaXQgaXMgaW5mb3JtYXRpb25hbCBhbmQgbmV2ZXIgaW50ZXJhY3RpdmUgLS1cbiAgIGFuZCBiZWNhdXNlIHdpdGhvdXQgaXQgdGhlIGNhcmQgd291bGQgbGFuZCB1bmRlciB0aGUgcG9pbnRlciB0aGF0IG9wZW5lZFxuICAgaXQsIHRha2UgdGhlIGhvdmVyLCBmaXJlIG1vdXNlbGVhdmUgb24gdGhlIGNoaXAsIGNsb3NlLCBhbmQgcmVvcGVuLlxuXG4gICB6LWluZGV4IDY2IHNpdHMganVzdCBhYm92ZSB0aGUgbWVzc2FnZSBtZW51ICg2NSk6IGEgbWVudSBjYW4gYmUgb3BlbiB3aGlsZVxuICAgdGhlIHBvaW50ZXIgd2FuZGVycyBkb3duIG9udG8gYSBjaGlwLCBhbmQgdGhlIGNhcmQgaXMgdGhlIHRoaW5nIGJlaW5nXG4gICBwb2ludGVkIGF0LiAqL1xuLmNoYWxrLXJlYWN0aW9uLXdobyB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogNjY7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBtYXgtd2lkdGg6IDMyY2g7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMxKSB2YXIoLS1jaGFsay1zMik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG59XG4uY2hhbGstcmVhY3Rpb24td2hvLWhlYWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDZweDtcbiAgcGFkZGluZy1ib3R0b206IDNweDtcbiAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG59XG4uY2hhbGstcmVhY3Rpb24td2hvLW5hbWUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5jaGFsay1yZWFjdGlvbi13aG8tbW9yZSB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xufVxuXG4vKiAzNy0zOiB0aGUgXCIoZWRpdGVkKVwiIG1hcmtlciB0cmFpbGluZyBhbiBlZGl0ZWQgYm9keS4gRGVsaWJlcmF0ZWx5IHF1aWV0IC0tXG4gICBpdCBpcyBhIGZvb3Rub3RlIGFib3V0IHRoZSBtZXNzYWdlLCBub3QgcGFydCBvZiBpdC4gKi9cbi5jaGFsay1tZXNzYWdlLWVkaXRlZCB7XG4gIG1hcmdpbi1sZWZ0OiAwLjRlbTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIG9wYWNpdHk6IDAuNztcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiA4My0yOiBlbnZlbG9wZSB2ZXJpZmljYXRpb24gbGFiZWxzLiBUaGUgcXVpZXQgc3RhdGVzIGJvcnJvdyB0aGUgKGVkaXRlZClcbiAgIGxvb2s7IHRoZSBmYWlsLWNsb3NlZCBzdGF0ZXMgbXVzdCBiZSB1bm1pc3Rha2FibGUgbmV4dCB0byB0aGUgYm9keS4gKi9cbi5jaGFsay1tZXNzYWdlLXZlcmlmeSB7XG4gIG1hcmdpbi1sZWZ0OiAwLjRlbTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLmNoYWxrLW1lc3NhZ2UtdmVyaWZ5LXVuc2lnbmVkLFxuLmNoYWxrLW1lc3NhZ2UtdmVyaWZ5LXVucGlubmVkLFxuLmNoYWxrLW1lc3NhZ2UtdmVyaWZ5LXZlcmlmaWVkLWZvcm1lci1pZGVudGl0eSB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBvcGFjaXR5OiAwLjc7XG59XG4uY2hhbGstbWVzc2FnZS12ZXJpZnktbWlzbWF0Y2gsXG4uY2hhbGstbWVzc2FnZS12ZXJpZnktZm9yZ2VkIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWVycm9yKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLyogODMtMzogYW4gKGVkaXRlZCkgbWFya2VyIHdob3NlIHJldmlzaW9uIGNoYWluIGRpZCBub3QgdmVyaWZ5LiBRdWlldGx5XG4gICBkaXN0aW5jdCAtLSB0aGUgdG9vbHRpcCBjYXJyaWVzIHRoZSB3b3JkczsgdGhlIGNvbG9yIHNheXMgXCJsb29rXCIuICovXG4uY2hhbGstbWVzc2FnZS1lZGl0ZWQtdW52ZXJpZmllZCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay13YXJuKTtcbiAgb3BhY2l0eTogMC45O1xufVxuXG4vKiAzNy0zOiB0aGUgcm93IHdob3NlIG1lc3NhZ2UgaXMgY3VycmVudGx5IG9wZW4gaW4gdGhlIGNvbXBvc2VyLiBBIGxlZnRcbiAgIGFjY2VudCByYWlsIHJhdGhlciB0aGFuIGEgYmFja2dyb3VuZCB3YXNoLCBzbyB0aGUgYm9keSB0ZXh0IGtlZXBzIGl0c1xuICAgbm9ybWFsIGNvbnRyYXN0IHdoaWxlIHRoZSByb3cgaXMgdW5taXN0YWthYmx5IHRoZSBvbmUgYmVpbmcgZWRpdGVkLiAqL1xuLmNoYWxrLW1lc3NhZ2UtLWVkaXRpbmcge1xuICBib3gtc2hhZG93OiBpbnNldCAycHggMCAwIHZhcigtLWNoYWxrLWFjY2VudCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYpO1xufVxuXG4vKiBQaGFzZSAxMGItZml4OiB0aHJlYWQgaW5kaWNhdG9yLlxuICAgLSBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0IHNvIHRoZSBidXR0b24gc2hyaW5rcyB0byBpdHMgY29udGVudFxuICAgICBpbnN0ZWFkIG9mIHN0cmV0Y2hpbmcgdG8gdGhlIHJvdyB3aWR0aCAoaXQncyBpbnNpZGUgYSBmbGV4XG4gICAgIGNvbHVtbikuXG4gICAtIHN1YnRsZSBhY2NlbnQtY29sb3JlZCB0ZXh0IGFmZm9yZGFuY2UsIG5vIGJvcmRlciBvciBiYWNrZ3JvdW5kXG4gICAgIGJveCAod2hpY2ggbWFkZSBpdCBsb29rIGxpa2UgYSBiYW5uZXIgaW4gMTBiKS5cbiAgIC0gbW9kZXN0IGZpeGVkIGluZGVudCB0aGF0IGRvZXNuJ3QgZGVwZW5kIG9uIGBjaGAgYXJpdGhtZXRpYy5cbiAgICAgRG9lc24ndCBwaXhlbC1hbGlnbiB3aXRoIHRoZSBib2R5IGNvbHVtbiBidXQgcmVhZHMgYXNcbiAgICAgaW50ZW50aW9uYWwgcmVnYXJkbGVzcyBvZiB0aW1lc3RhbXAgLyBjb21wYWN0IC8gbm8tdGltZSBtb2RlLiAqL1xuLmNoYWxrLW1lc3NhZ2UtdGhyZWFkLWluZGljYXRvciB7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1jaGFsay1zMik7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWNoYWxrLXMxKTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWFjY2VudCk7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5jaGFsay1tZXNzYWdlLXRocmVhZC1pbmRpY2F0b3I6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uY2hhbGstbWVzc2FnZS10aHJlYWQtaW5kaWNhdG9yOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuXG4vKiBDb21wYWN0IG1vZGU6IHplcm8gb3V0IHZlcnRpY2FsIG1hcmdpbiBzbyB0aGUgZmVlZCBzdGF5cyB0aWdodC4gKi9cbi5jaGFsay1tZXNzYWdlcy0tY29tcGFjdCAuY2hhbGstbWVzc2FnZS10aHJlYWQtaW5kaWNhdG9yIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQaGFzZSAxMGM6IHRocmVhZCBwYW5lbFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBXaGVuIHN0YXRlLm9wZW5UaHJlYWQgaXMgc2V0LCB0aGUgU1BBIGFkZHMgdGhlXG4gICBjaGFsay1hcHAtLXRocmVhZC1vcGVuIG1vZGlmaWVyIG9uIHRoZSByb290IGdyaWQgY29udGFpbmVyLlxuICAgVGhpcyByZS1kZWZpbmVzIHRoZSBncmlkIHRvIGFkZCBhIHRoaXJkIGNvbHVtbiBmb3IgdGhlIHBhbmVsLlxuXG4gICBEZXNrdG9wICg+PSA3NjhweCk6IHRocmVlIGNvbHVtbnMgLS0gc2lkZWJhciAvIG1haW4gLyB0aHJlYWQuXG4gICBNb2JpbGUgKDwgNzY4cHgpOiB0aGUgcGFuZWwgY292ZXJzIG1haW4gKyB0aGUgY2hhbm5lbCBmb290ZXIuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmNoYWxrLWFwcC0tcGhhc2UwOGIuY2hhbGstYXBwLS10aHJlYWQtb3BlbiB7XG4gIC8qIDkzLTI6IHRoZSBwYW5lbCB0YWtlcyBhIHNoYXJlIG9mIHRoZSBzaGVsbCByYXRoZXIgdGhhbiBhIGZsYXQgMzQwcHguIFRoZVxuICAgICBwZXJjZW50YWdlIHJlc29sdmVzIGFnYWluc3QgdGhlIGdyaWQgY29udGFpbmVyJ3MgY29udGVudCBib3ggLS0gdGhlIHNoZWxsLFxuICAgICBub3QgdGhlIHdpbmRvdyAtLSBzbyBpdCBpcyBzZWxmLWJhbGFuY2luZzogaW4gdGhlIGNlbnRyZWQgMTEwMHB4IGNvbHVtbiAyOCVcbiAgICAgaXMgdW5kZXIgdGhlIDM0MHB4IGZsb29yIGFuZCBub3RoaW5nIGNoYW5nZXMsIHdoaWxlIGEgZnVsbC13aWR0aCBzaGVsbCBoYXNcbiAgICAgcm9vbSB0byBzcGVuZCBhbmQgdGhlIHRocmVhZCBzdG9wcyBiZWluZyBhIGxldHRlcmJveCBuZXh0IHRvIGEgZmVlZCBzaXhcbiAgICAgdGltZXMgaXRzIHdpZHRoLiBUaGUgNTYwcHggY2VpbGluZyBrZWVwcyBhbiB1bHRyYXdpZGUgZnJvbSBoYW5kaW5nIHRoZVxuICAgICBwYW5lbCBtb3JlIHRoYW4gYSB0aHJlYWQgb2Ygc2hvcnQgcmVwbGllcyBjYW4gdXNlLiAqL1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLWNoYWxrLXNpZGViYXItdywgMjIwcHgpIDFmciBjbGFtcCgzNDBweCwgMjglLCA1NjBweCk7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6XG4gICAgXCJoZWFkZXIgIGhlYWRlciBoZWFkZXJcIlxuICAgIFwic2lkZWJhciBtYWluICAgdGhyZWFkXCJcbiAgICBcImZvb3RlciAgZm9vdGVyIHRocmVhZFwiO1xufVxuLmNoYWxrLWFwcC0tcGhhc2UwOGIuY2hhbGstYXBwLS10aHJlYWQtb3BlbiAuY2hhbGstdGhyZWFkLXBhbmVsIHtcbiAgZ3JpZC1hcmVhOiB0aHJlYWQ7XG59XG5cbi8qIFBhbmVsOiB2ZXJ0aWNhbCBmbGV4IHdpdGggaGVhZGVyIC8gc2Nyb2xsYWJsZSBib2R5IC8gZm9vdGVyLlxuICAgVG9wICsgYm90dG9tIGJvcmRlcnMgbWF0Y2ggdGhlIGV4aXN0aW5nIGNoYWxrLWNoYW5uZWwtaGVhZGVyIC9cbiAgIGNoYWxrLWZvb3RlciBhZXN0aGV0aWNzLiAqL1xuLmNoYWxrLXRocmVhZC1wYW5lbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi1oZWlnaHQ6IDA7IC8qIGxldCBpbnRlcm5hbCBzY3JvbGwgd29yayBpbiBncmlkICovXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmcpO1xufVxuXG4uY2hhbGstdGhyZWFkLXBhbmVsLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKSB2YXIoLS1jaGFsay1zMyk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xufVxuXG4uY2hhbGstdGhyZWFkLXBhbmVsLXRpdGxlIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1ib2R5KTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbn1cblxuLyogNDktMTogd2hlbiB0aGUgdGl0bGUgaXMgdGhlIGhlYWQgbWVzc2FnZSBpdHNlbGYsIGl0IGlzIHVzZXIgdGV4dCAtLSBub1xuICAgbG93ZXJjYXNlIHRyYW5zZm9ybSwgbm8gbGFiZWwgc3BhY2luZywgYW5kIGl0IGNsaXBzIHRvIG9uZSBsaW5lLiAqL1xuLmNoYWxrLXRocmVhZC1wYW5lbC10aXRsZS0taGVhZCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uY2hhbGstdGhyZWFkLXBhbmVsLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMxKTtcbiAgZmxleDogMCAwIGF1dG87XG59XG5cbi5jaGFsay10aHJlYWQtcGFuZWwtc2hvd3BhcmVudCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiA0cHggOHB4O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmNoYWxrLXRocmVhZC1wYW5lbC1zaG93cGFyZW50OmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYpO1xufVxuLmNoYWxrLXRocmVhZC1wYW5lbC1zaG93cGFyZW50OmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7XG59XG5cbi5jaGFsay10aHJlYWQtcGFuZWwtY2xvc2Uge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgZm9udC1zaXplOiBjYWxjKDE4cHggKiB2YXIoLS1jaGFsay1mb250LXNjYWxlKSk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDJweCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG59XG4uY2hhbGstdGhyZWFkLXBhbmVsLWNsb3NlOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYpO1xufVxuLmNoYWxrLXRocmVhZC1wYW5lbC1jbG9zZTpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xufVxuXG4vKiBCb2R5IHNjcm9sbHM7IG1pbi1oZWlnaHQ6MCBsZXRzIGl0IHNocmluayB3aXRoaW4gdGhlIGZsZXggbGF5b3V0LiAqL1xuLmNoYWxrLXRocmVhZC1wYW5lbC1ib2R5IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKSB2YXIoLS1jaGFsay1zMik7XG59XG5cbi5jaGFsay10aHJlYWQtcGFuZWwtcGFyZW50IHtcbiAgLyogVGhlIGhlYWQgbWVzc2FnZSBpbmhlcml0cyBjaGFsay1tZXNzYWdlcyBzdHlsaW5nIGJlY2F1c2UgaXRcXCdzXG4gICAgIHdyYXBwZWQgaW4gYSBNZXNzYWdlTGlzdC4gSnVzdCBnaXZlIGl0IGEgc29mdCBzZXBhcmF0b3IgYmVsb3cuICovXG4gIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jaGFsay1zMik7XG59XG5cbi5jaGFsay10aHJlYWQtcGFuZWwtZGl2aWRlciB7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBtYXJnaW46IHZhcigtLWNoYWxrLXMyKSAwO1xufVxuXG4uY2hhbGstdGhyZWFkLXBhbmVsLWxvYWRpbmcsXG4uY2hhbGstdGhyZWFkLXBhbmVsLWVtcHR5IHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMikgdmFyKC0tY2hhbGstczIpO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xufVxuXG4vKiBTYW1lIHZlcnRpY2FsIHJoeXRobSBhcyAuY2hhbGstZm9vdGVyIHNvIHRoZSByZXBseSBjb21wb3NlciBzaXRzIG9uIHRoZVxuICAgc2FtZSBiYXNlbGluZSBhcyB0aGUgY2hhbm5lbCBjb21wb3NlciBuZXh0IHRvIGl0OyBob3Jpem9udGFsIHBhZGRpbmcgc3RheXNcbiAgIHMyIHRvIGxpbmUgdXAgd2l0aCB0aGUgcGFuZWwgYm9keSBhYm92ZS4gVGhlIGV4dHJhIHBhZGRpbmctdG9wIHRlcm0gaXMgdGhlXG4gICB0eXBpbmcgbGluZSdzIHJlc2VydmVkIGhlaWdodCAoLmNoYWxrLXR5cGluZzogMS42ZW0gYXQgc2l6ZS1zbWFsbCkgLS0gdGhlXG4gICBjaGFubmVsIGZvb3RlciBjYXJyaWVzIHRoYXQgcm93IGFib3ZlIGl0cyBjb21wb3NlciBhbmQgdGhpcyBvbmUgZG9lc24ndCxcbiAgIHNvIHdpdGhvdXQgaXQgdGhlIHR3byBib3JkZXItdG9wIGxpbmVzIHNpdCBhdCBkaWZmZXJlbnQgaGVpZ2h0cy5cbiAgIDQzLTk6IHRoZSB0eXBpbmcgbGluZSdzIG1hcmdpbi1ib3R0b20gYWRkcyB0byB0aGF0IHJlc2VydmVkIGhlaWdodCB0b28sXG4gICBzbyB0aGUgY2FsYyBub3cgY2FycmllcyBib3RoIHRlcm1zLiAqL1xuLmNoYWxrLXRocmVhZC1wYW5lbC1mb290ZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgcGFkZGluZzogY2FsYyh2YXIoLS1jaGFsay1zMykgKyAxLjYgKiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKSArIHZhcigtLWNoYWxrLXMyKSlcbiAgICB2YXIoLS1jaGFsay1zMikgdmFyKC0tY2hhbGstczQpO1xufVxuXG4vKiBNb2JpbGUgdGhyZWFkIGxheW91dCBsaXZlcyBpbiB0aGUgbW9iaWxlIHNlY3Rpb24gYXQgdGhlIGVuZCBvZiB0aGlzXG4gICBmaWxlIC0tIHRoZSBvbGQgcnVsZSBoZXJlIGtlcHQgYSAyMjBweCBzaWRlYmFyIGNvbHVtbiwgd2hpY2ggbm8gbG9uZ2VyXG4gICBleGlzdHMgb25jZSB0aGUgcm9zdGVyIGJlY29tZXMgYSBkcmF3ZXIuICovXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGhhc2UgMTBkOiB1bnJlYWQgaW5kaWNhdG9yIHN1ZmZpeFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBXaGVuIGEgdGhyZWFkIGhhcyByZXBsaWVzIHRoZSB1c2VyIGhhc25cXCd0IHNlZW4geWV0LCB0aGUgaW5kaWNhdG9yXG4gICAoXCJcdTIxQjMgMyByZXBsaWVzXCIpIGdldHMgYSBcIiBcdTAwQjcgbmV3XCIgc3VmZml4IGluIGZnLWJyaWdodC4gVGhlXG4gICAtLXVucmVhZCBtb2RpZmllciBvbiB0aGUgYnV0dG9uIGNhbiBhbHNvIGJlIHVzZWQgZm9yIGJvbGRlclxuICAgc3R5bGluZyBpZiBkZXNpcmVkOyBmb3Igbm93IGp1c3QgdGhlIHN1ZmZpeC5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uY2hhbGstbWVzc2FnZS10aHJlYWQtaW5kaWNhdG9yLS11bnJlYWQge1xuICAvKiBCdW1wIHRoZSBiYXNlIGNvbG9yIHNvIHRoZSB3aG9sZSBpbmRpY2F0b3IgcmVhZHMgYSB0b3VjaFxuICAgICBtb3JlIGVtcGhhdGljYWxseS4gU3VidGxlIC0tIHRoZSBzdWZmaXggY2FycmllcyBtb3N0IG9mIHRoZVxuICAgICBzaWduYWwuICovXG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xufVxuXG4uY2hhbGstbWVzc2FnZS10aHJlYWQtaW5kaWNhdG9yLW5ldyB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFBoYXNlIDEwZTogdGhyZWFkIHByZXZpZXcgcm93XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFNpdHMgZGlyZWN0bHkgYmVuZWF0aCB0aGUgaW5kaWNhdG9yIHdpdGggdGhlIHNhbWUgbGVmdCBpbmRlbnQuXG4gICBPbmUgbGluZSwgZWxsaXBzaXMtdHJ1bmNhdGVkLiBTdWJ0bGUgYnkgZGVmYXVsdCAoZmctZGltKTtcbiAgIGNsaWNraW5nIGl0IG9wZW5zIHRoZSB0aHJlYWQuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmNoYWxrLW1lc3NhZ2UtdGhyZWFkLXByZXZpZXcge1xuICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAvKiBQaGFzZSAxMGUtdHdlYWs6IGluZGVudCBwYXN0IHRoZSBpbmRpY2F0b3IncyBcIlx1MjFCMyBOIFwiIHByZWZpeCBzb1xuICAgICB0aGUgcHJldmlldyBib2R5IGFsaWducyByb3VnaGx5IHVuZGVyIHRoZSBXT1JEIFwicmVwbGllc1wiLlxuICAgICBGaXhlZC1weCBvZmZzZXQgdG8gYXZvaWQgY291cGxpbmcgd2l0aCB0aGUgaW5kaWNhdG9yJ3MgY2ggdW5pdFxuICAgICAod2hpY2ggd291bGQgc2hpZnQgd2hlbiBmb250IHNpemVzIGRpdmVyZ2UpLiAqL1xuICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1jaGFsay1zMikgKyAyOHB4KTtcbiAgbWFyZ2luLXRvcDogLTJweDsgICAgICAgLyogdHVjayB1cCBhZ2FpbnN0IHRoZSBpbmRpY2F0b3IgKi9cbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY2hhbGstczEpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgZm9udDogaW5oZXJpdDtcbiAgLyogUGhhc2UgMTBlLXR3ZWFrOiBzbWFsbGVyICsgaXRhbGljLiBUaGUgaXRhbGljIG1hcmtzIHRoZSBsaW5lIGFzXG4gICAgIG1ldGEtY29udGV4dCAocHJldmlldyBvZiBhbm90aGVyIG1lc3NhZ2UpIHNvIGl0IGRvZXNuJ3QgcmVhZFxuICAgICBhcyBhIHByaW1hcnkgbWVzc2FnZSByb3cuICovXG4gIGZvbnQtc2l6ZTogY2FsYygxMXB4ICogdmFyKC0tY2hhbGstZm9udC1zY2FsZSkpO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgLyogc2luZ2xlIGxpbmUgd2l0aCBlbGxpcHNpcy4gbWF4LXdpZHRoIGtlZXBzIGl0IGZyb20gb3ZlcmZsb3dpbmdcbiAgICAgcGFzdCB0aGUgbWVzc2FnZSBjb2x1bW4gb24gdmVyeSB3aWRlIHRocmVhZHMuICovXG4gIG1heC13aWR0aDogbWluKDYwY2gsIDgwJSk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICBkaXNwbGF5OiBibG9jaztcbn1cbi5jaGFsay1tZXNzYWdlLXRocmVhZC1wcmV2aWV3OmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbn1cbi5jaGFsay1tZXNzYWdlLXRocmVhZC1wcmV2aWV3OmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuXG4uY2hhbGstbWVzc2FnZS10aHJlYWQtcHJldmlldy1zZW5kZXIge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbn1cblxuLmNoYWxrLW1lc3NhZ2UtdGhyZWFkLXByZXZpZXctYm9keSB7XG4gIC8qIGluaGVyaXRzIGNvbG9yIGZyb20gdGhlIHBhcmVudCBidXR0b24gKi9cbn1cblxuLyogQ29tcGFjdCBtb2RlOiBzYW1lIHNocmluayBhcyB0aGUgaW5kaWNhdG9yLiAqL1xuLmNoYWxrLW1lc3NhZ2VzLS1jb21wYWN0IC5jaGFsay1tZXNzYWdlLXRocmVhZC1wcmV2aWV3IHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGhhc2UgMTFjLTIgUFIgNDogQ2hhbm5lbE1lbWJlcnNQYW5lbCBzdHlsZXMuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIE1vZGFsIHNpemluZyB0d2VhazogdGhlIG1lbWJlcnMgcGFuZWwgc2hvdWxkIGJlIHdpZGVyIHRoYW4gdGhlXG4gICBkZWZhdWx0IENvbmZpcm0gbW9kYWwgc28gdGhlIGZyaWVuZCBwaWNrZXIgZG9lc24ndCBmZWVsIGNyYW1wZWQuICovXG4uY2hhbGstY2hhbm5lbC1tZW1iZXJzLXBhbmVsIHtcbiAgbWluLXdpZHRoOiBtaW4oNDgwcHgsIDkwdncpO1xuICBtYXgtd2lkdGg6IG1pbig2NDBweCwgOTV2dyk7XG59XG5cbi5jaGFsay1jaGFubmVsLW1lbWJlcnMtbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMSk7XG59XG5cbi5jaGFsay1jaGFubmVsLW1lbWJlcnMtaXRlbSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG59XG5cbi5jaGFsay1jaGFubmVsLW1lbWJlcnMtaGFuZGxlIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4uY2hhbGstY2hhbm5lbC1tZW1iZXJzLXNlbGYtdGFnLFxuLmNoYWxrLWNoYW5uZWwtbWVtYmVycy1jcmVhdG9yLXRhZyB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG59XG5cbi5jaGFsay1jaGFubmVsLW1lbWJlcnMtcmVtb3ZlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLWJvZHkpO1xuICBwYWRkaW5nOiAwIHZhcigtLWNoYWxrLXMyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5jaGFsay1jaGFubmVsLW1lbWJlcnMtcmVtb3ZlOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay13YXJuKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLXdhcm4pO1xufVxuLmNoYWxrLWNoYW5uZWwtbWVtYmVycy1yZW1vdmU6ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5jaGFsay1jaGFubmVsLW1lbWJlcnMtY29uZmlybS1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMxKTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5jaGFsay1jaGFubmVsLW1lbWJlcnMtY29uZmlybS10ZXh0IHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLXdhcm4pO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNoYWxrLXMxKTtcbn1cblxuLmNoYWxrLWNoYW5uZWwtbWVtYmVycy1lcnJvciB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWNoYWxrLXMyKTtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay13YXJuKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLXdhcm4pO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xufVxuXG4uY2hhbGstY2hhbm5lbC1tZW1iZXJzLWVtcHR5LFxuLmNoYWxrLWNoYW5uZWwtbWVtYmVycy1oaW50IHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgbWFyZ2luOiAwIDAgdmFyKC0tY2hhbGstczIpIDA7XG59XG5cbi8qIENvbXBhY3QgYnV0dG9uIHZhcmlhbnQgZm9yIGlubGluZSBjb25maXJtIHJvd3MuICovXG4uY2hhbGstYnV0dG9uLS1zbWFsbCB7XG4gIHBhZGRpbmc6IDAgdmFyKC0tY2hhbGstczIpO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xufVxuXG4vKiBcIm1lbWJlcnNcIiBidXR0b24gaW4gdGhlIGNoYW5uZWwgaGVhZGVyLiAqL1xuLmNoYWxrLWNoYW5uZWwtaGVhZGVyLWFjdGlvbiB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIHBhZGRpbmc6IDAgdmFyKC0tY2hhbGstczIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xufVxuLmNoYWxrLWNoYW5uZWwtaGVhZGVyLWFjdGlvbjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG59XG5cblxuLyogLS0gTWVtYmVycyBwYW5lbCArIGtleSBzdGF0dXMgKHBoYXNlIDIzZSkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jaGFsay1tZW1iZXJzLXBhbmVsIHtcbiAgd2lkdGg6IDM2MHB4O1xuICBtYXgtd2lkdGg6IDkydnc7XG59XG4uY2hhbGstbWVtYmVycy1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgcGFkZGluZzogMC43NXJlbSAxcmVtIDAuNXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlciwgIzFmMmExZik7XG59XG4uY2hhbGstbWVtYmVycy10aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQsICNjOGZmYzgpO1xufVxuLmNoYWxrLW1lbWJlcnMtY2hhbiB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0sICM1YThhNWEpO1xuICBtYXJnaW4tbGVmdDogMC4zNXJlbTtcbn1cbi5jaGFsay1tZW1iZXJzLWhlYWRlci1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjI1cmVtO1xufVxuLmNoYWxrLW1lbWJlcnMtcmVmcmVzaCB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltLCAjNWE4YTVhKTtcbiAgYm9yZGVyOiBub25lO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMC4ycmVtIDAuNXJlbTtcbn1cbi5jaGFsay1tZW1iZXJzLXJlZnJlc2g6aG92ZXIgeyBjb2xvcjogdmFyKC0tY2hhbGstZmcsICNjOGZmYzgpOyB9XG4uY2hhbGstbWVtYmVycy1yZWZyZXNoOmRpc2FibGVkIHsgb3BhY2l0eTogMC41OyBjdXJzb3I6IGRlZmF1bHQ7IH1cblxuLmNoYWxrLW1lbWJlcnMtYm9keSB7XG4gIHBhZGRpbmc6IDAuNXJlbSAwO1xuICBtYXgtaGVpZ2h0OiA1MHZoO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuLmNoYWxrLW1lbWJlcnMtZW1wdHkge1xuICBwYWRkaW5nOiAxcmVtO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltLCAjNWE4YTVhKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmNoYWxrLW1lbWJlcnMtbGlzdCB7IGxpc3Qtc3R5bGU6IG5vbmU7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgfVxuLmNoYWxrLW1lbWJlcnMtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwLjRyZW0gMXJlbTtcbn1cbi5jaGFsay1tZW1iZXJzLXJvdzpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWhvdmVyLCAjMTIxOTEyKTsgfVxuLmNoYWxrLW1lbWJlcnMtaGFuZGxlIHsgY29sb3I6IHZhcigtLWNoYWxrLWZnLCAjYzhmZmM4KTsgfVxuLmNoYWxrLW1lbWJlcnMteW91IHsgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSwgIzVhOGE1YSk7IH1cblxuLmNoYWxrLW1lbWJlcnMtc3RhdHVzIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICBwYWRkaW5nOiAxcHggNnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XG59XG4uY2hhbGstbWVtYmVycy1zdGF0dXMtLWhhcyB7IGNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQsICM1Y2ZmYjEpOyB9XG4uY2hhbGstbWVtYmVycy1zdGF0dXMtLXdhaXRpbmcgeyBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQsICM2YTdhNmEpOyB9XG5cbi5jaGFsay1tZW1iZXJzLWZvb3RlciB7XG4gIHBhZGRpbmc6IDAuNnJlbSAxcmVtIDAuOHJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlciwgIzFmMmExZik7XG59XG4uY2hhbGstbWVtYmVycy1yZXNoYXJlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tY2hhbGstYWNjZW50LCAjNWNmZmIxKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYWNjZW50LCAjNWNmZmIxKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAwLjRyZW0gMC42cmVtO1xufVxuLmNoYWxrLW1lbWJlcnMtcmVzaGFyZTpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoOTIsIDI1NSwgMTc3LCAwLjA4KTsgfVxuLmNoYWxrLW1lbWJlcnMtcmVzaGFyZTpkaXNhYmxlZCB7IG9wYWNpdHk6IDAuNTsgY3Vyc29yOiBkZWZhdWx0OyB9XG4uY2hhbGstbWVtYmVycy1hbGxzZXQsXG4uY2hhbGstbWVtYmVycy1ub2tleSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltLCAjNWE4YTVhKTtcbn1cblxuLyogLS0gVmVyaWZpY2F0aW9uOiBiYWRnZXMgKyB2ZXJpZnkgdmlldyAocGhhc2UgMjRiKSAtLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jaGFsay1tZW1iZXJzLWJhZGdlcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC40cmVtO1xufVxuXG4uY2hhbGstdmVyaWZ5LWJhZGdlIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMC43cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xuICBwYWRkaW5nOiAxcHggNnB4O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgY3VycmVudENvbG9yO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY2hhbGstdmVyaWZ5LWJhZGdlOmRpc2FibGVkIHsgY3Vyc29yOiBkZWZhdWx0OyBvcGFjaXR5OiAwLjc7IH1cbi5jaGFsay12ZXJpZnktYmFkZ2UtLXZlcmlmaWVkIHsgY29sb3I6IHZhcigtLWNoYWxrLWFjY2VudCwgIzVjZmZiMSk7IH1cbi5jaGFsay12ZXJpZnktYmFkZ2UtLXVudmVyaWZpZWQgeyBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltLCAjNWE4YTVhKTsgfVxuLmNoYWxrLXZlcmlmeS1iYWRnZS0tY2hhbmdlZCB7IGNvbG9yOiB2YXIoLS1jaGFsay13YXJuLCAjZmZjYzY2KTsgfVxuLmNoYWxrLXZlcmlmeS1iYWRnZS0tbm9uZSB7IGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCwgIzZhN2E2YSk7IH1cbi8qIDgyLTg6IFRPRlUgLS0gdGhpcyBkZXZpY2UgcmVjb2duaXNlcyB0aGUga2V5IGJ1dCBub2JvZHkgY29tcGFyZWQgaXQuIFNpdHNcbiAgIGJldHdlZW4gdW52ZXJpZmllZCBhbmQgdmVyaWZpZWQgZGVsaWJlcmF0ZWx5OiBpdCBpcyBhIHJlYWwgZmFjdCwgYW5kIGl0IGlzXG4gICBub3QgYSBjaGVjay4gKi9cbi5jaGFsay12ZXJpZnktYmFkZ2UtLXBpbm5lZCB7IGNvbG9yOiB2YXIoLS1jaGFsay1mZywgI2M4ZmZjOCk7IG9wYWNpdHk6IDAuNzU7IH1cblxuLyogLS0gODItODogdGhlIGlkZW50aXR5LWNoYW5nZWQgd2FsbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgIEEgcmVwdWRpYXRlZCBpZGVudGl0eSBwaW4gaXMgdGhlIGdyYXZlc3QgdGhpbmcgdGhpcyBwYW5lbCBjYW4gcmVwb3J0LCBzbyBpdFxuICAgaXMgdGhlIG9uZSBwbGFjZSB0aGF0IHVzZXMgdGhlIGVycm9yIGNvbG91ciBhbmQgYSBmaWxsZWQgYmxvY2sgcmF0aGVyIHRoYW4gYVxuICAgYmFkZ2UuIEl0IHNpdHMgYWJvdmUgdGhlIGxpc3QsIG5vdCBpbnNpZGUgaXQuICovXG4uY2hhbGstaWRlbnRpdHktd2FsbCB7XG4gIG1hcmdpbjogMC42cmVtIDFyZW0gMDtcbiAgcGFkZGluZzogMC42cmVtIDAuN3JlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstZXJyb3IsICNmZjRkNGQpO1xuICBib3JkZXItbGVmdC13aWR0aDogM3B4O1xuICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tY2hhbGstZXJyb3IsICNmZjRkNGQpIDglLCB0cmFuc3BhcmVudCk7XG59XG4uY2hhbGstaWRlbnRpdHktd2FsbC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMC43MnJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWVycm9yLCAjZmY0ZDRkKTtcbiAgbWFyZ2luLWJvdHRvbTogMC4zcmVtO1xufVxuLmNoYWxrLWlkZW50aXR5LXdhbGwtYm9keSB7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBsaW5lLWhlaWdodDogMS40NTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLCAjYzhmZmM4KTtcbn1cbi5jaGFsay1pZGVudGl0eS13YWxsLXdobyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiAwLjRyZW07XG4gIG1hcmdpbi10b3A6IDAuNDVyZW07XG59XG4uY2hhbGstaWRlbnRpdHktd2FsbC1saW5rIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWVycm9yLCAjZmY0ZDRkKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWVycm9yLCAjZmY0ZDRkKTtcbiAgcGFkZGluZzogMXB4IDhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmNoYWxrLWlkZW50aXR5LXdhbGwtbGluazpob3ZlciB7IGNvbG9yOiB2YXIoLS1jaGFsay1mZywgI2M4ZmZjOCk7IH1cblxuLyogLS0gODItODogXCJ3aG8ganVzdCBqb2luZWRcIiBub3RpY2UsIGFib3ZlIHRoZSBjb21wb3NlciAtLS0tLS0tLS0tLS0tLS0tLS1cbiAgIE1lbWJlcnNoaXAgaXMgc2VydmVyLWFzc2VydGVkIGFuZCBhIGtleSBob2xkZXIgYXV0by1yZXNoYXJlcyB0byB3aG9ldmVyXG4gICBhcHBlYXJzIGluIHRoZSByb3N0ZXIsIHNvIGEgc2lsZW50IHJvc3RlciBpcyBhIHNpbGVudCBrZXkgaGFuZG92ZXIuIFN0eWxlZFxuICAgYXMgYSBub3RpY2UsIG5vdCBhbiBhbGFybTogam9pbmluZyBpcyB1c3VhbGx5IGxlZ2l0aW1hdGUuICovXG4uY2hhbGstam9pbi1ub3RpY2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiAwLjVyZW07XG4gIHBhZGRpbmc6IDAuM3JlbSAwLjZyZW07XG4gIGJvcmRlci1sZWZ0OiAycHggc29saWQgdmFyKC0tY2hhbGstd2FybiwgI2ZmY2M2Nik7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jaGFsay13YXJuLCAjZmZjYzY2KSA3JSwgdHJhbnNwYXJlbnQpO1xuICBmb250LXNpemU6IDAuNzhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG4uY2hhbGstam9pbi1ub3RpY2UtdGV4dCB7IGZsZXg6IDE7IGNvbG9yOiB2YXIoLS1jaGFsay1mZywgI2M4ZmZjOCk7IH1cbi5jaGFsay1qb2luLW5vdGljZS1kaXNtaXNzIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkLCAjNmE3YTZhKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAwIDAuMTVyZW07XG59XG4uY2hhbGstam9pbi1ub3RpY2UtZGlzbWlzczpob3ZlciB7IGNvbG9yOiB2YXIoLS1jaGFsay1mZywgI2M4ZmZjOCk7IH1cblxuLyogLS0gODItODoga2V5IHByb3ZlbmFuY2UgbGluZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jaGFsay1tZW1iZXJzLXByb3ZlbmFuY2Uge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCwgIzZhN2E2YSk7XG4gIG1hcmdpbi1ib3R0b206IDAuNHJlbTtcbn1cbi5jaGFsay1tZW1iZXJzLXByb3ZlbmFuY2UtLXdlYWsgeyBjb2xvcjogdmFyKC0tY2hhbGstd2FybiwgI2ZmY2M2Nik7IH1cblxuLmNoYWxrLW1lbWJlcnMtYmFjayB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0sICM1YThhNWEpO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDA7XG59XG4uY2hhbGstbWVtYmVycy1iYWNrOmhvdmVyIHsgY29sb3I6IHZhcigtLWNoYWxrLWZnLCAjYzhmZmM4KTsgfVxuXG4uY2hhbGstdmVyaWZ5LXZpZXcge1xuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW0gMXJlbTtcbn1cbi5jaGFsay12ZXJpZnktaW50cm8ge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltLCAjNWE4YTVhKTtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xufVxuLmNoYWxrLXZlcmlmeS13YXJuIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLXdhcm4sICNmZmNjNjYpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay13YXJuLCAjZmZjYzY2KTtcbiAgcGFkZGluZzogMC41cmVtIDAuNnJlbTtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xufVxuLmNoYWxrLXZlcmlmeS1jb2RlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctYWx0LCAjMGMxMzBjKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyLCAjMWYyYTFmKTtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuLmNoYWxrLXZlcmlmeS13b3JkcyB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gIGdhcDogMC40cmVtIDAuNnJlbTtcbn1cbi5jaGFsay12ZXJpZnktd29yZCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQsICM1Y2ZmYjEpO1xuICBmb250LXNpemU6IDAuOTVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jaGFsay12ZXJpZnktbnVtZXJpYyB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQsICM1Y2ZmYjEpO1xuICBmb250LXNpemU6IDAuOTVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG4gIHdvcmQtc3BhY2luZzogMC4yZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jaGFsay12ZXJpZnktdG9nZ2xlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSwgIzVhOGE1YSk7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAwLjJyZW0gMDtcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbn1cbi5jaGFsay12ZXJpZnktdG9nZ2xlOmhvdmVyIHsgY29sb3I6IHZhcigtLWNoYWxrLWZnLCAjYzhmZmM4KTsgfVxuXG4uY2hhbGstdmVyaWZ5LWFjdGlvbnMgeyBtYXJnaW4tdG9wOiAwLjVyZW07IH1cbi5jaGFsay12ZXJpZnktc3RhdGUtLXZlcmlmaWVkIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWFjY2VudCwgIzVjZmZiMSk7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAwLjlyZW07XG59XG4uY2hhbGstdmVyaWZ5LW1hcmsge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQsICM1Y2ZmYjEpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1hY2NlbnQsICM1Y2ZmYjEpO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDAuNHJlbSAwLjZyZW07XG59XG4uY2hhbGstdmVyaWZ5LW1hcms6aG92ZXIgeyBiYWNrZ3JvdW5kOiByZ2JhKDkyLCAyNTUsIDE3NywgMC4wOCk7IH1cbi5jaGFsay12ZXJpZnktY29uZmlybS10ZXh0IHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLCAjYzhmZmM4KTtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG4uY2hhbGstdmVyaWZ5LWNvbmZpcm0tYnV0dG9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC41cmVtO1xufVxuLmNoYWxrLXZlcmlmeS1jb25maXJtLXllcyB7XG4gIGZsZXg6IDE7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tY2hhbGstYWNjZW50LCAjNWNmZmIxKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYWNjZW50LCAjNWNmZmIxKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAwLjRyZW0gMC42cmVtO1xufVxuLmNoYWxrLXZlcmlmeS1jb25maXJtLXllczpob3ZlciB7IGJhY2tncm91bmQ6IHJnYmEoOTIsIDI1NSwgMTc3LCAwLjA4KTsgfVxuLmNoYWxrLXZlcmlmeS1jb25maXJtLW5vIHtcbiAgZmxleDogMTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0sICM1YThhNWEpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIsICMxZjJhMWYpO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDAuNHJlbSAwLjZyZW07XG59XG4uY2hhbGstdmVyaWZ5LWNvbmZpcm0tbm86aG92ZXIgeyBjb2xvcjogdmFyKC0tY2hhbGstZmcsICNjOGZmYzgpOyB9XG4uY2hhbGstdmVyaWZ5LWVtcHR5IHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSwgIzVhOGE1YSk7XG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAxcmVtIDA7XG59XG5cbi8qIC0tIFJvdGF0ZSBjaGFubmVsIGtleSAocGhhc2UgMjUtMikgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uY2hhbGstbWVtYmVycy1yb3RhdGUtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlciwgIzFmMmExZik7XG59XG4uY2hhbGstbWVtYmVycy1yb3RhdGUge1xuICBmbGV4OiAxO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSwgIzVhOGE1YSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlciwgIzFmMmExZik7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDAuODVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMC40cmVtIDAuNnJlbTtcbn1cbi5jaGFsay1tZW1iZXJzLXJvdGF0ZTpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZywgI2M4ZmZjOCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstZmctZGltLCAjNWE4YTVhKTtcbn1cbi5jaGFsay1tZW1iZXJzLXJvdGF0ZTpkaXNhYmxlZCB7IG9wYWNpdHk6IDAuNTsgY3Vyc29yOiBkZWZhdWx0OyB9XG4uY2hhbGstbWVtYmVycy1rZXl2ZXIge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCwgIzZhN2E2YSk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qIC0tIE1lbWJlciByZW1vdmFsIChyZW1vdmUgJ3gnICsgbGVhdmUgKyByb3RhdGlvbiBwZW5kaW5nKSAtLS0tLS0tLSAqL1xuXG4uY2hhbGstbWVtYmVycy1yZW1vdmUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQsICM2YTdhNmEpO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAwIDAuMjVyZW07XG4gIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xufVxuLmNoYWxrLW1lbWJlcnMtcmVtb3ZlOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWRhbmdlciwgI2U2Nik7XG59XG4uY2hhbGstbWVtYmVycy1sZWF2ZSB7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQsICM2YTdhNmEpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIsICMxZjJhMWYpO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAwLjhyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcGFkZGluZzogMC4zNXJlbSAwLjZyZW07XG59XG4uY2hhbGstbWVtYmVycy1sZWF2ZTpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1kYW5nZXIsICNlNjYpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWRhbmdlciwgI2U2Nik7XG59XG4uY2hhbGstbWVtYmVycy1sZWF2ZTpkaXNhYmxlZCB7IG9wYWNpdHk6IDAuNDsgY3Vyc29yOiBkZWZhdWx0OyB9XG4uY2hhbGstbWVtYmVycy1wZW5kaW5nIHtcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xuICBmb250LXNpemU6IDAuNzhyZW07XG4gIGNvbG9yOiB2YXIoLS1jaGFsay13YXJuLCAjZmZjYzY2KTtcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB2YXIoLS1jaGFsay13YXJuLCAjZmZjYzY2KTtcbiAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG59XG5cbi8qIC0tIEFkZCBtZW1iZXIgKGZyaWVuZC1waWNrZXIpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jaGFsay1tZW1iZXJzLWFkZCB7XG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcbn1cbi5jaGFsay1tZW1iZXJzLWFkZC10b2dnbGUge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0sICM1YThhNWEpO1xuICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tY2hhbGstYm9yZGVyLCAjMWYyYTFmKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMC44MnJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwYWRkaW5nOiAwLjM1cmVtIDAuNnJlbTtcbn1cbi5jaGFsay1tZW1iZXJzLWFkZC10b2dnbGU6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcsICNjOGZmYzgpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSwgIzVhOGE1YSk7XG59XG4uY2hhbGstbWVtYmVycy1hZGQtbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMC40cmVtIDAgMDtcbiAgcGFkZGluZzogMDtcbiAgbWF4LWhlaWdodDogOXJlbTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cbi5jaGFsay1tZW1iZXJzLWFkZC1saXN0IGxpIHtcbiAgbWFyZ2luOiAwO1xufVxuLmNoYWxrLW1lbWJlcnMtYWRkLWZyaWVuZCB7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLCAjYzhmZmM4KTtcbiAgYm9yZGVyOiBub25lO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDAuM3JlbSAwLjVyZW07XG59XG4uY2hhbGstbWVtYmVycy1hZGQtZnJpZW5kOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstcm93LWhvdmVyLCAjMTQyMDE0MTApO1xuICBjb2xvcjogdmFyKC0tY2hhbGstYWNjZW50LCAjOGVmZmEwKTtcbn1cbi5jaGFsay1tZW1iZXJzLWFkZC1lbXB0eSB7XG4gIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkLCAjNmE3YTZhKTtcbiAgcGFkZGluZzogMC4zcmVtIDAuNXJlbTtcbn1cblxuLyogPT09PT0gZ292LTI6IGdvdmVybmFuY2UgcGFuZWwgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uY2hhbGstZ292LXBhbmVsIHtcbiAgbWF4LXdpZHRoOiA0NjBweDtcbiAgd2lkdGg6IDEwMCU7XG59XG4uY2hhbGstYnRuIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBwYWRkaW5nOiAwLjNyZW0gMC43cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY2hhbGstYnRuOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctaG92ZXIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWFjY2VudCk7XG59XG4uY2hhbGstYnRuOmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4uY2hhbGstYnRuLXNtIHtcbiAgcGFkZGluZzogMC4xNXJlbSAwLjVyZW07XG59XG4uY2hhbGstYnRuLW9uIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYWNjZW50KTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWJnKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xufVxuLmNoYWxrLWJ0bi1kYW5nZXI6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWRhbmdlcik7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1kYW5nZXIpO1xufVxuLmNoYWxrLXNlbGVjdCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjRyZW07XG59XG4uY2hhbGstZ292LW1vZGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMzKTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jaGFsay1zMyk7XG59XG4uY2hhbGstZ292LW1vZGUtbGFiZWwge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbn1cbi5jaGFsay1nb3YtaGludCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIG1hcmdpbjogMCAwIHZhcigtLWNoYWxrLXMzKSAwO1xufVxuLmNoYWxrLWdvdi1wcm9wb3NlIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1jaGFsay1zMyk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWNoYWxrLXMzKTtcbn1cbi5jaGFsay1nb3YtcHJvcG9zZS1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuLmNoYWxrLWdvdi1lcnJvciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1lcnJvcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWNoYWxrLXMyKTtcbn1cbi5jaGFsay1nb3YtcmVzb2x2ZWQtaGVhZCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gIG1hcmdpbjogdmFyKC0tY2hhbGstczMpIDAgdmFyKC0tY2hhbGstczIpIDA7XG59XG4uY2hhbGstZ292LXByb3Age1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMikgdmFyKC0tY2hhbGstczMpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jaGFsay1zMik7XG59XG4uY2hhbGstZ292LXByb3AtcmVzb2x2ZWQge1xuICBvcGFjaXR5OiAwLjc7XG59XG4uY2hhbGstZ292LXByb3AtaGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG59XG4uY2hhbGstZ292LXByb3AtdHlwZSB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xufVxuLmNoYWxrLWdvdi1wcm9wLXRhcmdldCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xufVxuLmNoYWxrLWdvdi1wcm9wLXN0YXR1cyB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbn1cbi5jaGFsay1nb3YtdGFsbHkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgbWFyZ2luOiB2YXIoLS1jaGFsay1zMikgMDtcbn1cbi5jaGFsay1nb3YtdGFsbHktYmFyIHtcbiAgZmxleDogMTtcbiAgaGVpZ2h0OiA0cHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYtMik7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5jaGFsay1nb3YtdGFsbHktZmlsbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWFjY2VudCk7XG59XG4uY2hhbGstZ292LXRhbGx5LWNvdW50cyB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmNoYWxrLWdvdi1wcm9wLWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgYXR0LTRjOiBHaXBoeSAtLSBjb21wb3NlciBidXR0b24sIGdhdGVkIHJlbmRlciwgc2VhcmNoIHBpY2tlci5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogQ29tcG9zZXIgXCJHSUZcIiBidXR0b24gLS0gbWlycm9ycyB0aGUgcGFwZXJjbGlwIGFmZm9yZGFuY2UuICovXG4uY2hhbGstY29tcG9zZXItZ2lwaHkge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgcGFkZGluZzogMCB2YXIoLS1jaGFsay1zMik7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmNoYWxrLWNvbXBvc2VyLWdpcGh5OmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG59XG4uY2hhbGstY29tcG9zZXItZ2lwaHk6ZGlzYWJsZWQge1xuICBvcGFjaXR5OiAwLjQ7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi8qIFJlbmRlcmVkIEdJRiBpbiB0aGUgZmVlZCAoZW5hYmxlZCArIGFsbG93bGlzdGVkKS4gQ2FwcGVkIGxpa2UgYW4gaW5saW5lXG4gICBhdHRhY2htZW50IGltYWdlOyB0aGUgR0lGIGtlZXBzIGl0cyBhc3BlY3QgcmF0aW8uICovXG4uY2hhbGstZ2lwaHkge1xuICAvKiBCbG9jay1sZXZlbCBzbyB0aGUgd2lkdGggaXMgZGVmaW5pdGU6IFNhZmFyaSByZXNvbHZlcyB0aGUgaW1nJ3NcbiAgICAgcGVyY2VudGFnZSBhZ2FpbnN0IGEgc2hyaW5rLXRvLWZpdCBpbmxpbmUtZmxleCBhcyB0aGUgXCJ2aWEgR2lwaHlcIiB0YWdcbiAgICAgd2lkdGgsIHJlbmRlcmluZyB0aGUgR0lGIHRpbnkuICovXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDJweDtcbiAgbWFyZ2luLXRvcDogdmFyKC0tY2hhbGstczEpO1xuICBtYXgtd2lkdGg6IDMyMHB4O1xufVxuLmNoYWxrLWdpcGh5LWltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG59XG4uY2hhbGstZ2lwaHktdGFnIHtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbn1cblxuLyogSW5lcnQgcGxhY2Vob2xkZXIgd2hlbiBhIEdJRiBpcyBOT1QgcmVuZGVyZWQgKHVuc2V0IC8gZGlzYWJsZWQgLyBiYWQgaG9zdFxuICAgLyBsb2FkIGZhaWx1cmUpLiBOZXZlciB0cmlnZ2VycyBhIGZldGNoLiAqL1xuLmNoYWxrLWdpcGh5LWJsb2NrZWQge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIG1hcmdpbi10b3A6IHZhcigtLWNoYWxrLXMxKTtcbiAgcGFkZGluZzogMnB4IHZhcigtLWNoYWxrLXMyKTtcbiAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cbi5jaGFsay1naXBoeS1ibG9ja2VkLWljb24ge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbn1cbi5jaGFsay1naXBoeS1ibG9ja2VkLXRleHQge1xuICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbn1cbi5jaGFsay1naXBoeS1lbmFibGUge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgcGFkZGluZzogMCB2YXIoLS1jaGFsay1zMik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5jaGFsay1naXBoeS1lbmFibGU6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbn1cblxuLyogU2VhcmNoIHBpY2tlciBvdmVybGF5LiAqL1xuLmNoYWxrLWdpcGh5LXBpY2tlci1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHotaW5kZXg6IDYwO1xufVxuLmNoYWxrLWdpcGh5LXBpY2tlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiBtaW4oNTYwcHgsIDkydncpO1xuICBtYXgtaGVpZ2h0OiA4MHZoO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uY2hhbGstZ2lwaHktcGlja2VyLXNlYXJjaCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMik7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xufVxuLmNoYWxrLWdpcGh5LXBpY2tlci1pbnB1dCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1iYXNlKTtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczEpIHZhcigtLWNoYWxrLXMyKTtcbn1cbi5jaGFsay1naXBoeS1waWNrZXItY2xvc2Uge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDAgdmFyKC0tY2hhbGstczIpO1xufVxuLmNoYWxrLWdpcGh5LXBpY2tlci1jbG9zZTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstZmcpO1xufVxuLmNoYWxrLWdpcGh5LXBpY2tlci1ib2R5IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKTtcbn1cbi5jaGFsay1naXBoeS1waWNrZXItaGludCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIG1hcmdpbjogdmFyKC0tY2hhbGstczIpIDA7XG59XG4uY2hhbGstZ2lwaHktcGlja2VyLWVycm9yIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG59XG4uY2hhbGstZ2lwaHktcGlja2VyLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxMjBweCwgMWZyKSk7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xufVxuLmNoYWxrLWdpcGh5LXBpY2tlci10aWxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uY2hhbGstZ2lwaHktcGlja2VyLXRpbGU6aG92ZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbn1cbi5jaGFsay1naXBoeS1waWNrZXItdGlsZSBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cbi5jaGFsay1naXBoeS1waWNrZXItYXR0cmlidXRpb24ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMxKSB2YXIoLS1jaGFsay1zMik7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbn1cblxuLyogLS0tLSBQaGFzZSAzMCAoMzAtNSk6IGNoYW5uZWwgZ2x5cGhzICsgc2lkZWJhciB2b2ljZSBvY2N1cGFuY3kgLS0tLS0tLS0tICovXG5cbi8qIENoYW5uZWwta2luZCBpbmRpY2F0b3IgKDMwLTVkKTogYSBmaXhlZC13aWR0aCBzbG90IGhvbGRpbmcgdGhlIGlubGluZVxuICAgU1ZHICh0ZXJtaW5hbCBwcm9tcHQgZm9yIHRleHQsIHNwZWFrZXIgZm9yIHZvaWNlKSBzbyBjaGFubmVsIG5hbWVzIGFsaWduLlxuICAgY3VycmVudENvbG9yIGxldHMgdGhlIGljb25zIGluaGVyaXQgaG92ZXIvYWN0aXZlIHN0YXRlcyBmb3IgZnJlZS4gKi9cbi5jaGFsay1jaGdseXBoIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMS4yZW07XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLmNoYWxrLWNoZ2x5cGgtc3ZnIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5jaGFsay1jaGdseXBoLS12b2ljZSB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xufVxuXG4uY2hhbGstY2hnbHlwaC0taGVhZGVyIHtcbiAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jaGFsay1zMSk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xufVxuXG4vKiBUaGUgYWN0aXZlL3NlbGVjdGVkIGNoYW5uZWwgcm93IGJyaWdodGVucyBpdHMgaWNvbiB3aXRoIHRoZSB0ZXh0LiAqL1xuLmNoYWxrLXNpZGViYXItaXRlbS0tYWN0aXZlIC5jaGFsay1jaGdseXBoIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG59XG5cbi5jaGFsay1zaWRlYmFyLWl0ZW0tcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAycHg7XG4gIG1pbi13aWR0aDogMDtcbiAgLyogMzMtNDogZmlsbCB0aGUgcm93LiBXaXRob3V0IHRoaXMgdGhlIHJvdyB3YXMgb25seSBhcyB3aWRlIGFzIGl0c1xuICAgICBjb250ZW50LCBzbyB0aGUgdW5yZWFkIGRvdCdzIG1hcmdpbi1sZWZ0OmF1dG8gaGFkIG5vIGZyZWUgc3BhY2UgdG9cbiAgICAgY29uc3VtZSBhbmQgaXQgcmVuZGVyZWQgZ2x1ZWQgdG8gdGhlIGNoYW5uZWwgbmFtZSBpbnN0ZWFkIG9mIGF0IHRoZVxuICAgICByaWdodCBlZGdlICh3aGVyZSB0aGUgZnJpZW5kcyBsaXN0IGFscmVhZHkgcHV0IGl0KS4gKi9cbiAgZmxleDogMSAxIGF1dG87XG59XG5cbi8qIDMzLTQ6IHRoZSBuYW1lIGlzIHRoZSBvbmx5IGVsZW1lbnQgYWxsb3dlZCB0byBzaHJpbmssIHNvIGl0IGVsbGlwc2lzZXNcbiAgIGF0IHdoYXRldmVyIHdpZHRoIGlzIGxlZnQgb3ZlciBhZnRlciB0aGUgZ2x5cGgsIGJhZGdlcywgYW5kIGRvdCBoYXZlXG4gICB0YWtlbiB0aGVpcnMuIE5hcnJvd2luZyB0aGUgc2lkZWJhciB0aGVyZWZvcmUgdHJ1bmNhdGVzIHRoZSBuYW1lIGVhcmxpZXJcbiAgIHJhdGhlciB0aGFuIHB1c2hpbmcgdGhlIGRvdCBvdXQgb2Ygdmlldy4gKi9cbi5jaGFsay1zaWRlYmFyLWl0ZW0tcm93IC5jaGFsay1zaWRlYmFyLWl0ZW0tbmFtZSB7XG4gIGZsZXg6IDAgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIC8qIEd1YXJhbnRlZSBhIGdhcCBiZXR3ZWVuIHRoZSBlbGxpcHNpcyBhbmQgdGhlIGRvdC4gVGhlIHJvdydzIDJweCBnYXAgaXNcbiAgICAgYWxsIHlvdSdkIG90aGVyd2lzZSBnZXQgb25jZSB0aGUgbmFtZSBoYXMgZWF0ZW4gZXZlcnkgc3BhcmUgcGl4ZWwsIGFuZFxuICAgICBcIkdlbmVyYWxcdTIwMjZcdTI1Q0ZcIiByZWFkcyBhcyBvbmUgZ2x5cGguICovXG4gIHBhZGRpbmctcmlnaHQ6IDZweDtcbn1cblxuLmNoYWxrLXNpZGViYXItaXRlbS0tdm9pY2VjaCB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG4uY2hhbGstc2lkZWJhci12b2ljZWNvdW50IHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogY2FsYygxMHB4ICogdmFyKC0tY2hhbGstZm9udC1zY2FsZSkpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgcGFkZGluZzogMCA0cHg7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGhhc2UgMzMtMjogdW5yZWFkIGluZGljYXRvclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIEEgN3B4IGRvdCBwaW5uZWQgdG8gdGhlIHJpZ2h0IGVkZ2Ugb2YgYSBzaWRlYmFyIHJvdy4gU21hbGxlciB0aGFuIHRoZVxuICAgcHJlc2VuY2UgZG90IG9uIHB1cnBvc2UgLS0gcHJlc2VuY2UgaXMgYWJvdXQgcGVvcGxlIGFuZCBpcyBhbHdheXNcbiAgIHJlbmRlcmVkOyB1bnJlYWQgaXMgdHJhbnNpZW50IGFuZCBzaG91bGQgbm90IGNvbXBldGUgd2l0aCBpdC4gVGhlXG4gICBtYXJnaW4tbGVmdDphdXRvIHdvcmtzIGZvciBib3RoIHJvdyBzaGFwZXM6IHRoZSBjaGFubmVsIHJvdydzIGZsZXhcbiAgIGNvbnRhaW5lciBhbmQgdGhlIGZyaWVuZCByb3cncyBmbGV4LXN0YXJ0IDxsaT4uICovXG4uY2hhbGstdW5yZWFkLWRvdCB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA3cHg7XG4gIGhlaWdodDogN3B4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1mZyk7XG59XG5cbi8qIE1lbnRpb246IHRoZSBzYW1lIGRvdCBpbiB0aGUgYWNjZW50IGNvbG9yIHdpdGggYSBnbG93LCBzbyBcInNvbWVvbmVcbiAgIG5hbWVkIG1lXCIgc2VwYXJhdGVzIGZyb20gXCJzb21ldGhpbmcgaGFwcGVuZWRcIiBhdCBhIGdsYW5jZSByYXRoZXIgdGhhblxuICAgbmVlZGluZyBhIGNvdW50LiAqL1xuLmNoYWxrLXVucmVhZC1kb3QtLW1lbnRpb24ge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xuICBib3gtc2hhZG93OiAwIDAgNXB4IHZhcigtLWNoYWxrLWFjY2VudCk7XG59XG5cbi8qIEEgdm9pY2UgY2hhbm5lbCByb3cgYWxyZWFkeSBzcGVuZHMgaXRzIHJpZ2h0IGVkZ2Ugb24gdGhlIG9jY3VwYW50XG4gICBjb3VudDsga2VlcCB0aGUgZG90IGZyb20gc3RhY2tpbmcgYWdhaW5zdCBpdC4gKi9cbi5jaGFsay1zaWRlYmFyLXZvaWNlY291bnQgKyAuY2hhbGstdW5yZWFkLWRvdCB7XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG59XG5cbi8qIDMzLTM6IGFuIEBtZW50aW9uIGluc2lkZSBhIG1lc3NhZ2UgYm9keS4gQW55IG1lbWJlciBtZW50aW9uIGlzIHRpbnRlZDtcbiAgIHRoZSB2aWV3ZXIncyBvd24gZ2V0cyBhIGZpbGxlZCBjaGlwIHNvIGl0J3MgZmluZGFibGUgd2hlbiBzY3JvbGxpbmcgYmFja1xuICAgdGhyb3VnaCBhIGNoYW5uZWwsIHdoaWNoIGlzIHRoZSB3aG9sZSBwb2ludCBvZiB0aGUgbWVudGlvbiBkb3QuICovXG4uY2hhbGstbWVudGlvbiB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xufVxuXG4uY2hhbGstbWVudGlvbi0tc2VsZiB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1iZyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWFjY2VudCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIHBhZGRpbmc6IDAgM3B4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4vKiA0MS00OiBhbiBodHRwKHMpIFVSTCBpbiBhIG1lc3NhZ2UgYm9keS4gVW5kZXJsaW5lZCByYXRoZXIgdGhhbiB0aW50ZWQgLS1cbiAgIGEgbWVudGlvbiBpcyBhbHJlYWR5IHRoZSBhY2NlbnQgY29sb3VyLCBhbmQgdHdvIGtpbmRzIG9mIG1hcmtlZC11cCB0b2tlblxuICAgaW4gb25lIGxpbmUgbmVlZCB0byBiZSB0b2xkIGFwYXJ0IGF0IGEgZ2xhbmNlLiBJbmhlcml0cyB0aGUgYm9keSdzXG4gICB3cmFwcGluZyBzbyBhIGxvbmcgbGluayBzdGlsbCBicmVha3MgaW5zdGVhZCBvZiB3aWRlbmluZyB0aGUgY29sdW1uLiAqL1xuLmNoYWxrLWJvZHktbGluayB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAycHg7XG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuLmNoYWxrLWJvZHktbGluazpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xufVxuLmNoYWxrLWJvZHktbGluazpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG59XG4vKiA2Ny0xOiBhIGxvbmcgVVJMIGNvbGxhcHNlZCB0byBhIFwibGluayB0byA8aG9zdD5cIiBsYWJlbC4gQnJhY2tldHMgbWFyayBpdFxuICAgYXMgY2hyb21lLCBub3QgdHlwZWQgdGV4dDsgcHNldWRvLWVsZW1lbnRzIHNvIHNlbGVjdGluZyB0aGUgbGluZSBuZXZlclxuICAgY29waWVzIHRoZW0uICovXG4uY2hhbGstYm9keS1saW5rLS1sYWJlbDo6YmVmb3JlIHtcbiAgY29udGVudDogXCJbXCI7XG59XG4uY2hhbGstYm9keS1saW5rLS1sYWJlbDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIl1cIjtcbn1cblxuLyogNzctMzogbmFubyBtYXJrZG93bi4gVGhyZWUgaW5saW5lIG1hcmtzLCBhbmQgc2luY2UgMTA3LTIgZXhhY3RseSBvbmVcbiAgIGJsb2NrLWxldmVsIG9uZSAtLSBpbmxpbmUgY29kZSwgYm9sZCwgaXRhbGljIGFuZCBxdW90ZWQgbGluZXMuXG5cbiAgIFRoZSB0aW50IGlzIHdoYXQgY2FycmllcyBpbmxpbmUgY29kZSwgbm90IHRoZSBmYWNlOiAtLWNoYWxrLWZvbnQgZGVmYXVsdHNcbiAgIHRvIHRoZSBtb25vIHN0YWNrLCBzbyBmb3IgbW9zdCByZWFkZXJzIGEgbW9ub3NwYWNlIDxjb2RlPiB3b3VsZCBsb29rXG4gICBpZGVudGljYWwgdG8gdGhlIHRleHQgYXJvdW5kIGl0LiBOYW1pbmcgdGhlIHN0YWNrIHN0aWxsIG1hdHRlcnMgZm9yIGFueW9uZVxuICAgd2hvIHBpY2tlZCBhIHNhbnMgb3Igc2VyaWYgaW4gZGlzcGxheSBwcmVmcyAtLSBzYW1lIHJlYXNvbmluZyBhc1xuICAgLmNoYWxrLWNvZGVjYXJkLWJvZHkuICovXG4uY2hhbGstYm9keS1jb2RlIHtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWNoYWxrLWZvbnQtbW9ubyk7XG4gIGZvbnQtc2l6ZTogMC45NWVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgcGFkZGluZzogMCAzcHg7XG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuLmNoYWxrLWJvZHktc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5jaGFsay1ib2R5LWVtIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKiAxMDctMjogcXVvdGVkIGxpbmVzLiBkaXNwbGF5OmJsb2NrIG9uIGEgc3Bhbiwgbm90IGEgPGJsb2NrcXVvdGU+OiB0aGlzXG4gICByZW5kZXJzIGluc2lkZSAuY2hhbGstbWVzc2FnZS1ib2R5LCB3aGljaCBpcyBhIDxzcGFuPiBhbmQgaGFzIHRvIHN0YXkgYVxuICAgdmFsaWQgaW5saW5lIHRyZWUuXG5cbiAgIFRoZSBydWxlIGNhcnJpZXMgaXQsIGRpbW1lZCB0ZXh0IHNlY29uZHMgaXQsIGFuZCBuZWl0aGVyIGluZGVudHMgZmFyIC0tXG4gICBhIHF1b3RlIG5lc3RzLCBhbmQgZm91ciBsZXZlbHMgb2YgYSBnZW5lcm91cyBpbmRlbnQgd291bGQgcHVzaCB0aGUgYW5zd2VyXG4gICBvZmYgYSBwaG9uZS4gTm8gYmFja2dyb3VuZCB0aW50OiB0aGUgcm93IGFscmVhZHkgaGFzIG9uZSB3aGVuIGl0IGlzXG4gICB1bnJlYWQsIGhvdmVyZWQgb3IgbWVudS1vcGVuLCBhbmQgYSBzZWNvbmQgd291bGQgZmlnaHQgYWxsIHRocmVlLiAqL1xuLmNoYWxrLWJvZHktcXVvdGUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLWNoYWxrLXMyKTtcbiAgbWFyZ2luOiAycHggMDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG59XG4vKiBOZXN0ZWQgcXVvdGVzIHNoYXJlIG9uZSBvdXRlciBtYXJnaW4gLS0gY29uc2VjdXRpdmUgbGV2ZWxzIHdvdWxkIG90aGVyd2lzZVxuICAgc3RhY2sgMnB4IG9mIGFpciBwZXIgbGV2ZWwgYmV0d2VlbiB0aGUgcnVsZXMuICovXG4uY2hhbGstYm9keS1xdW90ZSAuY2hhbGstYm9keS1xdW90ZSB7XG4gIG1hcmdpbjogMDtcbn1cblxuLyogTGl2ZSBvY2N1cGFudCBzdWJsaXN0IHVuZGVyIGEgdm9pY2UgY2hhbm5lbC4gSW5kZW50ZWQgcGFzdCB0aGUgZ2x5cGhcbiAgIGNvbHVtbiBzbyBuYW1lcyBhbGlnbiB3aXRoIHRoZSBjaGFubmVsIG5hbWUgYWJvdmUuICovXG4uY2hhbGstc2lkZWJhci1vY2N1cGFudHMge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDJweCAwIDJweCAxLjJlbTtcbiAgcGFkZGluZzogMDtcbn1cblxuLmNoYWxrLXNpZGViYXItb2NjdXBhbnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDRweDtcbiAgZm9udC1zaXplOiBjYWxjKDEycHggKiB2YXIoLS1jaGFsay1mb250LXNjYWxlKSk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5jaGFsay1zaWRlYmFyLW9jY3VwYW50LW5hbWUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNoYWxrLXZvaWNlLWJhZGdlIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIG9wYWNpdHk6IDAuODU7XG59XG5cbi5jaGFsay12b2ljZS1iYWRnZS0tbXV0ZWQge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZXJyb3IpO1xufVxuXG4vKiAtLS0tIFBoYXNlIDMwICgzMC01KTogRGlzY29yZC1zdHlsZSBjYWxsIHBhbmVsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jaGFsay12b2ljZS1wYW5lbCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMzKTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY2hhbGstczMpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbn1cblxuLmNoYWxrLXZvaWNlLWxvYmJ5IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLmNoYWxrLXZvaWNlLW5vdGUge1xuICBmb250LXNpemU6IGNhbGMoMTJweCAqIHZhcigtLWNoYWxrLWZvbnQtc2NhbGUpKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG59XG5cbi5jaGFsay12b2ljZS1lcnJvciB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWNoYWxrLXMyKTtcbiAgZm9udC1zaXplOiBjYWxjKDEycHggKiB2YXIoLS1jaGFsay1mb250LXNjYWxlKSk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1lcnJvcik7XG59XG5cbi8qIDMwLTY6IGZlYXR1cmUtZmxhZy1vZmYgbm90ZSBzaG93biBpbiBwbGFjZSBvZiB0aGUgY2FsbCBwYW5lbC4gKi9cbi5jaGFsay12b2ljZS1kaXNhYmxlZCB7XG4gIGZvbnQtc2l6ZTogY2FsYygxMnB4ICogdmFyKC0tY2hhbGstZm9udC1zY2FsZSkpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbn1cblxuLyogNDUtNDogdGhlIHNjcmF0Y2hwYWQgcnVsZXMsIHN0YXRlZCBhdCB0aGUgc2VhbSBiZXR3ZWVuIHRoZSBjYWxsIGFuZCB0aGVcbiAgIHRleHQgaXQgZ292ZXJucy4gRGFzaGVkIHJ1bGUgYWJvdmUgaXQgc28gaXQgcmVhZHMgYXMgYSBib3VuZGFyeSByYXRoZXIgdGhhblxuICAgYXMgYW5vdGhlciBjb250cm9sIGluIHRoZSBiYXIuICovXG4uY2hhbGstdm9pY2Utc2NyYXRjaCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIG1hcmdpbi10b3A6IHZhcigtLWNoYWxrLXMyKTtcbiAgcGFkZGluZy10b3A6IHZhcigtLWNoYWxrLXMyKTtcbiAgYm9yZGVyLXRvcDogMXB4IGRhc2hlZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBmb250LXNpemU6IGNhbGMoMTFweCAqIHZhcigtLWNoYWxrLWZvbnQtc2NhbGUpKTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG59XG5cbi5jaGFsay12b2ljZS1zY3JhdGNoLXRhZyB7XG4gIGZsZXg6IG5vbmU7XG4gIGZvbnQtc2l6ZTogY2FsYygxMHB4ICogdmFyKC0tY2hhbGstZm9udC1zY2FsZSkpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4xZW07XG4gIGNvbG9yOiB2YXIoLS1jaGFsay13YXJuKTtcbn1cblxuLyogLS0tLSAzMC01YzogcGVyc2lzdGVudC1jYWxsIGRvY2sgKERpc2NvcmQncyBib3R0b20tbGVmdCBwYW5lbCkgLS0tLS0tLS0tLSAqL1xuXG4uY2hhbGstdm9pY2UtZG9jayB7XG4gIG1hcmdpbjogdmFyKC0tY2hhbGstczIpIHZhcigtLWNoYWxrLXMyKSAwIHZhcigtLWNoYWxrLXMyKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMSk7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICAvKiBRdWVyeSBjb250YWluZXIgZm9yIHRoZSBjb21wYWN0IGNvbnRyb2wgbGFiZWxzIGJlbG93LiAqL1xuICBjb250YWluZXI6IHZvaWNlZG9jayAvIGlubGluZS1zaXplO1xufVxuXG4uY2hhbGstdm9pY2UtZG9jay1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgbWluLXdpZHRoOiAwO1xufVxuXG4uY2hhbGstdm9pY2UtZG9jay1zdGF0dXMge1xuICBmb250LXNpemU6IGNhbGMoMTFweCAqIHZhcigtLWNoYWxrLWZvbnQtc2NhbGUpKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5jaGFsay12b2ljZS1kb2NrLXN0YXR1c1tkYXRhLWNvbm5lY3RlZD1cImZhbHNlXCJdIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLXdhcm4pO1xufVxuXG4uY2hhbGstdm9pY2UtZG9jay1kdXJhdGlvbiB7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBmbGV4OiBub25lO1xuICBmb250LXNpemU6IGNhbGMoMTFweCAqIHZhcigtLWNoYWxrLWZvbnQtc2NhbGUpKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG59XG5cbi5jaGFsay12b2ljZS1kb2NrLWNoYW5uZWwge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogY2FsYygxMnB4ICogdmFyKC0tY2hhbGstZm9udC1zY2FsZSkpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1pbi13aWR0aDogMDtcbiAgLyogMzAtNWY6IGZsZXggcm93IHNvIHRoZSBzcGVha2VyIGdseXBoIGNlbnRlcnMgYWdhaW5zdCB0aGUgbmFtZSBpbnN0ZWFkXG4gICAgIG9mIHNpdHRpbmcgb24gdGhlIHRleHQgYmFzZWxpbmUgKHRoZSBsb3ctc3BlYWtlciBidWcgaW4gdGhlIGRvY2spLiAqL1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG59XG5cbi5jaGFsay12b2ljZS1kb2NrLWNoYW5uYW1lIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG1pbi13aWR0aDogMDtcbn1cblxuLyogSW5saW5lIGdseXBoIHZhcmlhbnQ6IG5vIGZpeGVkIDEuMmVtIGJveCwgc2hyaW5rIHRvIHRoZSBpY29uIHNvIHRoZSBmbGV4XG4gICBnYXAgY29udHJvbHMgc3BhY2luZy4gVXNlZCBpbiB0aGUgZG9jayArIHBhbmVsIHByb3NlLiAqL1xuLmNoYWxrLWNoZ2x5cGgtLWlubGluZSB7XG4gIHdpZHRoOiBhdXRvO1xufVxuXG4uY2hhbGstdm9pY2UtZG9jay1jaGFubmVsOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uY2hhbGstdm9pY2UtZG9jay1zcGFjZXIge1xuICBmbGV4OiAxIDEgYXV0bztcbn1cblxuLyogNDEtNjogY29tcGFjdCBjb250cm9sIGxhYmVscy4gV29yZCBsYWJlbHMgKFwidW5tdXRlXCIsIFwidW5kZWFmZW5cIiwgXCJsZWF2ZVwiKVxuICAgbmVlZCByb3VnaGx5IDIxZW0gb2YgZG9jayBiZWZvcmUgdGhlIGNoYW5uZWwgbmFtZSBoYXMgYW55dGhpbmcgbGVmdDsgYmVsb3dcbiAgIHRoYXQgdGhlIGJ1dHRvbnMgdXNlZCB0byBwdXNoIG91dCBvZiB0aGUgc2lkZWJhciBhbmQgc2l0IG9uIHRvcCBvZiB0aGVcbiAgIG1lc3NhZ2UgbGlzdC4gVGhlIHRocmVzaG9sZCBpcyBpbiBlbSBzbyBpdCB0cmFja3MgdGhlIGZvbnQtc2NhbGUgcHJlZi4gKi9cbi5jaGFsay12b2ljZS1jdGwtbWluaSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBjb250YWluZXIgdm9pY2Vkb2NrIChtYXgtd2lkdGg6IDIxZW0pIHtcbiAgLmNoYWxrLXZvaWNlLWN0bC13aWRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIC5jaGFsay12b2ljZS1jdGwtbWluaSB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICB9XG4gIC5jaGFsay12b2ljZS1kb2NrLXJvdyAuY2hhbGstdm9pY2UtY3RsIHtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWNoYWxrLXMyKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jaGFsay1zMik7XG4gIH1cbn1cblxuLyogMzAtNWk6IGF1dG9wbGF5LWJsb2NrZWQgYXVkaW8gbnVkZ2UgaW5zaWRlIHRoZSBjb25uZWN0ZWQgZG9jay4gQW1iZXIgdG9cbiAgIHJlYWQgYXMgYW4gYWN0aW9uYWJsZSBub3RpY2UsIG5vdCBhbiBlcnJvci4gKi9cbi5jaGFsay12b2ljZS1hdWRpb251ZGdlIHtcbiAgZm9udC1zaXplOiBjYWxjKDExcHggKiB2YXIoLS1jaGFsay1mb250LXNjYWxlKSk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay13YXJuKTtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiAtLS0tIDMwLTVmOiBtaWNybyBQaVAgcHJldmlldyBpbiB0aGUgZG9jayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5jaGFsay12b2ljZS1waXAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgYXNwZWN0LXJhdGlvOiAxNiAvIDk7XG4gIG1heC1oZWlnaHQ6IDk2cHg7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWNoYWxrLXMxKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uY2hhbGstdm9pY2UtcGlwOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xufVxuXG4uY2hhbGstdm9pY2UtcGlwLXZpZGVvIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY292ZXI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kOiAjMDAwO1xufVxuXG4uY2hhbGstdm9pY2UtcGlwLW1vbm8ge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZm9udC1zaXplOiBjYWxjKDI4cHggKiB2YXIoLS1jaGFsay1mb250LXNjYWxlKSk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYtMik7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4vKiBcIlx1MjVCOCBiYWNrXCIgb3ZlcmxheTogYXBwZWFycyBvbiBob3ZlciwgYm90dG9tLXJpZ2h0LCBzbyB0aGUgcHJldmlldyBzdGF5c1xuICAgY2xlYW4gYXQgcmVzdC4gKi9cbi5jaGFsay12b2ljZS1waXAtaGludCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDNweDtcbiAgYm90dG9tOiAzcHg7XG4gIGZvbnQtc2l6ZTogY2FsYygxMHB4ICogdmFyKC0tY2hhbGstZm9udC1zY2FsZSkpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcpO1xuICBwYWRkaW5nOiAwIDRweDtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzO1xufVxuXG4uY2hhbGstdm9pY2UtcGlwOmhvdmVyIC5jaGFsay12b2ljZS1waXAtaGludCB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi8qIDEyMy0xOiBvbiBhIHNob3J0IHdpbmRvdyB0aGUgcHJldmlldyBpcyBhIHN0cmlwLCBub3QgYSBib3guIFRoZVxuICAgOTZweCBib3gsIHBsdXMgdGhlIGRvY2sncyByb3dzLCBjb3N0IGFib3V0IDE2NnB4LiBBIDEzLWluY2ggbGFwdG9wXG4gICBnaXZlcyB0aGUgc2lkZWJhciBhYm91dCA1MjBweCwgYW5kIHRoZSBjaGFubmVsIGxpc3QgcGFpZCBmb3IgdGhlXG4gICBkaWZmZXJlbmNlLiB3aWR0aDogMTAwJSB3aXRoIG9iamVjdC1maXQ6IGNvdmVyIGNyb3BzIHRoZSBzdHJpcCBmcm9tXG4gICB0aGUgY2VudGVyIG9mIHRoZSBmcmFtZS4gVGhlIG1vbm9ncmFtIHN0aWxsIGZpdHMuIFRoaXMgaXMgdGhlIG9ubHlcbiAgIG1heC1oZWlnaHQgbWVkaWEgcXVlcnkgaW4gdGhlIGZpbGUuIFRoZSA4MjBweCB0aHJlc2hvbGQgY292ZXJzIGFcbiAgIDEzLWluY2ggYW5kIGEgMTQ0MHg5MDAgc2NyZWVuIHVuZGVyIGJyb3dzZXIgY2hyb21lLCBhbmQgbGVhdmVzIGFcbiAgIDEwODBwIGRlc2t0b3AgYWxvbmUuICovXG5AbWVkaWEgKG1heC1oZWlnaHQ6IDgyMHB4KSB7XG4gIC5jaGFsay12b2ljZS1waXAge1xuICAgIG1heC1oZWlnaHQ6IDQ0cHg7XG4gIH1cbn1cblxuLyogLS0tLSBzdGFnZTogYmlnIHRpbGUgKyBmaWxtc3RyaXAgLS0tLSAqL1xuXG4uY2hhbGstdm9pY2Utc3RhZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbn1cblxuLmNoYWxrLXZvaWNlLWJpZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uY2hhbGstdm9pY2Utc3RyaXAge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgcGFkZGluZy1ib3R0b206IDJweDtcbn1cblxuLyogNjMtMTogZ3JvdXAgY2FsbHMgKDMrIHRpbGVzLCBubyBwaW4sIG5vIGxpdmUgc2hhcmUpIHJlbmRlciBhcyBhIGdyaWQgb2ZcbiAgIGlkZW50aWNhbCB0aWxlczogdHdvIGNvbHVtbnMsIHJvd3MgYWRkZWQgZG93bndhcmQgYXMgcGVvcGxlIGpvaW4uIEV2ZXJ5XG4gICB0aWxlIHNoYXJlcyB0aGUgc2FtZSBjb25zdHJhaW50cywgc28gZXZlcnkgcGFydGljaXBhbnQgZ2V0cyB0aGUgc2FtZVxuICAgcmVjdGFuZ2xlOyAtLXZvaWNlLWdyaWQtcm93cyAoc2V0IGlubGluZSBieSB0aGUgcGFuZWwpIGNhcHMgdGlsZSBoZWlnaHQgc29cbiAgIHRoZSB3aG9sZSBncmlkIHN0YXlzIHdpdGhpbiB0aGUgdmlld3BvcnQgc2hhcmUgdGhlIHNwb3RsaWdodCB1c2VkLiAqL1xuLmNoYWxrLXZvaWNlLWdyaWQge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA5NjBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5jaGFsay12b2ljZS1wZWVyLS1ncmlkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGFzcGVjdC1yYXRpbzogMTYgLyA5O1xuICBtYXgtaGVpZ2h0OiBjYWxjKDU2dmggLyB2YXIoLS12b2ljZS1ncmlkLXJvd3MsIDEpKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2hhbGstdm9pY2UtcGVlci0tZ3JpZDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbn1cblxuLyogQW4gb2RkIGhlYWRjb3VudCBzcXVhcmVzIHRoZSBsYXN0IHJvdyBvZmYgd2l0aCBhbiBpbmVydCBmaWxsZXIgdGlsZS4gKi9cbi5jaGFsay12b2ljZS1wZWVyLS1kdW1teSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYtMik7XG4gIG9wYWNpdHk6IDAuNDtcbn1cblxuLmNoYWxrLXZvaWNlLXBlZXItLWR1bW15OmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1ib3JkZXIpO1xufVxuXG4uY2hhbGstdm9pY2UtcGVlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5jaGFsay12b2ljZS1wZWVyLS1iaWcge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiA5NjBweDtcbiAgYXNwZWN0LXJhdGlvOiAxNiAvIDk7XG4gIG1heC1oZWlnaHQ6IDUydmg7XG59XG5cbi5jaGFsay12b2ljZS1wZWVyLS1zdHJpcCB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogMTQ4cHg7XG4gIGFzcGVjdC1yYXRpbzogMTYgLyA5O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jaGFsay12b2ljZS1wZWVyLS1zdHJpcDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbn1cblxuLmNoYWxrLXZvaWNlLXZpZGVvIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgYmFja2dyb3VuZDogIzAwMDtcbn1cblxuLmNoYWxrLXZvaWNlLXZpZGVvLW1pcnJvcmVkIHtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpO1xufVxuXG4vKiBBdWRpby1vbmx5IHBhcnRpY2lwYW50OiBhIGJpZyBtb25vZ3JhbSBvbiB0aGUgZGFyayB0aWxlLiAqL1xuLmNoYWxrLXZvaWNlLWF2YXRhciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmb250LXNpemU6IGNhbGMoMjhweCAqIHZhcigtLWNoYWxrLWZvbnQtc2NhbGUpKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldi0yKTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi8qIE92ZXJsYXkgdmFyaWFudDogY292ZXJzIGEgbW91bnRlZCA8dmlkZW8+IHdoZW4gdGhlIHRyYWNrIGhhcyBubyBsaXZlIHZpZGVvXG4gICAoY2FtZXJhIG9mZiAvIG5vdCB5ZXQgbGl2ZSksIFdJVEhPVVQgdW5tb3VudGluZyB0aGUgdmlkZW8gZWxlbWVudC4gTW91bnRpbmdcbiAgIHRoZSB2aWRlbyBvbmNlIGFuZCB0b2dnbGluZyB0aGlzIG92ZXJsYXkgYXZvaWRzIHRoZSByZW1vdW50IGZsaWNrZXIgdGhhdCBhXG4gICBjb25kaXRpb25hbCA8dmlkZW8+IGNhdXNlZCBvbiBldmVyeSBsaXZlbmVzcyByZS1jaGVjay4gKi9cbi5jaGFsay12b2ljZS1hdmF0YXItLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xufVxuXG4uY2hhbGstdm9pY2UtcGVlci0tYmlnIC5jaGFsay12b2ljZS1hdmF0YXIge1xuICBmb250LXNpemU6IGNhbGMoNjRweCAqIHZhcigtLWNoYWxrLWZvbnQtc2NhbGUpKTtcbn1cblxuLmNoYWxrLXZvaWNlLXBlZXItLWdyaWQgLmNoYWxrLXZvaWNlLWF2YXRhciB7XG4gIGZvbnQtc2l6ZTogY2FsYyg0NHB4ICogdmFyKC0tY2hhbGstZm9udC1zY2FsZSkpO1xufVxuXG4vKiA0Ny0xMTogdGhlIHRpbGUncyB2aWRlbyBpcyBzaG93aW5nIGluIGEgd2luZG93IG9mIGl0cyBvd247IHRoZSB0aWxlIGtlZXBzXG4gICB0aGUgYXZhdGFyIGFuZCBzYXlzIHNvLCBpbiB0aGUgcG9wLW91dCBidXR0b24ncyBvd24gdm9pY2UsIGFib3ZlIHRoZVxuICAgaW5pdGlhbCBzbyBuZWl0aGVyIGNvdmVycyB0aGUgb3RoZXIuICovXG4uY2hhbGstdm9pY2UtcGVlci1vdXQge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogOHB4O1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IGNhbGMoMTFweCAqIHZhcigtLWNoYWxrLWZvbnQtc2NhbGUpKTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4vKiA2My0yOiBzb3VuZCBpcyBhcnJpdmluZyBmcm9tIHRoaXMgdGlsZSByaWdodCBub3cuIFRvcC1yaWdodCBzbyBpdCByZWFkc1xuICAgYWdhaW5zdCB2aWRlbyB3aXRob3V0IGNvdmVyaW5nIHRoZSBib3R0b20gbGFiZWwgYmFyLiAqL1xuLmNoYWxrLXZvaWNlLXNwZWFrLWRvdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA2cHg7XG4gIHJpZ2h0OiA2cHg7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYWNjZW50KTtcbiAgYm94LXNoYWRvdzogMCAwIDZweCB2YXIoLS1jaGFsay1hY2NlbnQpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmNoYWxrLXZvaWNlLXBlZXItLXN0cmlwIC5jaGFsay12b2ljZS1zcGVhay1kb3Qge1xuICB3aWR0aDogN3B4O1xuICBoZWlnaHQ6IDdweDtcbiAgdG9wOiA0cHg7XG4gIHJpZ2h0OiA0cHg7XG59XG5cbi8qIDY2LTU6IHJvdW5kIHRyaXAgdG8gdGhpcyBwZWVyLCB0b3AtTEVGVCBzbyBpdCBuZXZlciBjb2xsaWRlcyB3aXRoIHRoZVxuICAgc3BlYWtpbmcgZG90LiBJdHMgb3duIHNjcmltIHJhdGhlciB0aGFuIHRoZSBsYWJlbCdzLCBhbmQgZml4ZWQgbGlnaHQgdGV4dFxuICAgZm9yIHRoZSBzYW1lIHJlYXNvbiAoc2VlIHRoZSBsYWJlbCBibG9jayBiZWxvdyk6IGl0IHNpdHMgb24gdmlkZW8sIHdob3NlXG4gICBicmlnaHRuZXNzIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggdGhlIHRoZW1lLiAqL1xuLmNoYWxrLXZvaWNlLXJ0dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1cHg7XG4gIGxlZnQ6IDVweDtcbiAgcGFkZGluZzogMXB4IDVweDtcbiAgZm9udC1zaXplOiBjYWxjKDExcHggKiB2YXIoLS1jaGFsay1mb250LXNjYWxlKSk7XG4gIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG4gIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODgpO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uY2hhbGstdm9pY2UtcGVlci0tc3RyaXAgLmNoYWxrLXZvaWNlLXJ0dCB7XG4gIGZvbnQtc2l6ZTogY2FsYygxMHB4ICogdmFyKC0tY2hhbGstZm9udC1zY2FsZSkpO1xuICB0b3A6IDNweDtcbiAgbGVmdDogM3B4O1xufVxuXG4vKiBBbWJlciwgdGhlbiByZWQuIEJvdGggYXJlIHBpY2tlZCB0byBjYXJyeSBvbiB2aWRlbyByYXRoZXIgdGhhbiB0YWtlbiBmcm9tXG4gICB0aGUgdGhlbWUsIHdoaWNoIGhhcyBubyBpZGVhIHdoYXQgaXMgYmVoaW5kIHRoZW0uICovXG4uY2hhbGstdm9pY2UtcnR0LS13YXJuIHtcbiAgY29sb3I6ICNmZmMyNGQ7XG59XG5cbi5jaGFsay12b2ljZS1ydHQtLWJhZCB7XG4gIGNvbG9yOiAjZmY3YTcwO1xufVxuXG4vKiA2Ni00OiBldmVyeXRoaW5nIGluIHRoaXMgbGFiZWwgc2l0cyBvbiBhIGZpeGVkIGJsYWNrIHNjcmltIG92ZXIgdmlkZW8sIG9uXG4gICBldmVyeSB0aGVtZSAtLSBzbyBpdCBjYW5ub3QgZm9sbG93IC0tY2hhbGstZmcsIHdoaWNoIGlzIERBUksgb24gdGhlIGxpZ2h0XG4gICB0aGVtZXMgYW5kIGxlZnQgdGhlIGNvbnRyb2xzIHVucmVhZGFibGUgdGhlcmUuIFRoZXNlIGZvdXIgYXJlIHRoZSBvbi12aWRlb1xuICAgcGFsZXR0ZSwgYW5kIGV2ZXJ5IGNoaWxkIGJlbG93IHVzZXMgdGhlbSBpbnN0ZWFkIG9mIHRoZSB0aGVtZSdzIGZvcmVncm91bmRcbiAgIHZhcnMgLS0gaW5jbHVkaW5nIHRoZSBhbGVydCBhbmQgd2FybiBodWVzLCB3aG9zZSB0aGVtZSB2ZXJzaW9ucyBhcmUgZGFya1xuICAgZW5vdWdoIG9uIGEgbGlnaHQgdGhlbWUgdG8gZGlzYXBwZWFyIGFnYWluc3QgYmxhY2suICovXG4uY2hhbGstdm9pY2UtcGVlci1sYWJlbCB7XG4gIC0tdm9pY2Utb24tdmlkZW86IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NCk7XG4gIC0tdm9pY2Utb24tdmlkZW8tZGltOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzIpO1xuICAtLXZvaWNlLW9uLXZpZGVvLWxpbmU6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40NSk7XG4gIC0tdm9pY2Utb24tdmlkZW8tYWxlcnQ6ICNmZjdhNzA7XG4gIC0tdm9pY2Utb24tdmlkZW8td2FybjogI2ZmYzI0ZDtcblxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNXB4O1xuICBwYWRkaW5nOiAzcHggNnB4O1xuICBmb250LXNpemU6IGNhbGMoMTJweCAqIHZhcigtLWNoYWxrLWZvbnQtc2NhbGUpKTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcyKTtcbiAgY29sb3I6IHZhcigtLXZvaWNlLW9uLXZpZGVvKTtcbn1cblxuLmNoYWxrLXZvaWNlLXBlZXItLXN0cmlwIC5jaGFsay12b2ljZS1wZWVyLWxhYmVsIHtcbiAgZm9udC1zaXplOiBjYWxjKDExcHggKiB2YXIoLS1jaGFsay1mb250LXNjYWxlKSk7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG59XG5cbi5jaGFsay12b2ljZS1wZWVyLW5hbWUge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLyogU2luZ2xlLWxldHRlciBzdGF0ZSBmbGFncyAobS9jL3MvZCkgLS0gdGVybWluYWwtdGVyc2U7IHRpdGxlIGV4cGFuZHMuICovXG4uY2hhbGstdm9pY2UtcGVlci1mbGFnIHtcbiAgZmxleDogMCAwIGF1dG87XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXZvaWNlLW9uLXZpZGVvLWxpbmUpO1xuICBwYWRkaW5nOiAwIDRweDtcbiAgZm9udC1zaXplOiBjYWxjKDEwcHggKiB2YXIoLS1jaGFsay1mb250LXNjYWxlKSk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGNvbG9yOiB2YXIoLS12b2ljZS1vbi12aWRlby1kaW0pO1xufVxuXG4vKiAxMDktMTogZCAoZGVhZmVuZWQpIHJlcGxhY2VzIG0gb24gdGhlIHRpbGUgYW5kIGNhcnJpZXMgbW9yZSB3ZWlnaHQgdGhhbiBpdC5cbiAgIFdhcm4sIG5vdCBhbGVydDogYWxlcnQgaXMgcmVzZXJ2ZWQgZm9yIHRoZSBsb2NhbC1tdXRlIE0gYmVsb3csIHdoaWNoIGlzIFlPVVJcbiAgIGRvaW5nIC0tIHRoaXMgaXMgdGhlaXJzLCBhbmQgdGhlIHBvaW50IG9mIHRoZSBjb2xvdXIgaXMgdGhhdCBpdCBpcyB3b3J0aFxuICAgbm90aWNpbmcgYmVmb3JlIHlvdSBzdGFydCB0YWxraW5nLCBub3QgdGhhdCBhbnl0aGluZyBpcyB3cm9uZy4gKi9cbi5jaGFsay12b2ljZS1wZWVyLWZsYWctLWRlYWYge1xuICBjb2xvcjogdmFyKC0tdm9pY2Utb24tdmlkZW8td2Fybik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tdm9pY2Utb24tdmlkZW8td2Fybik7XG59XG5cbi5jaGFsay12b2ljZS1wZWVyLWNvbm4ge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZm9udC1zaXplOiBjYWxjKDExcHggKiB2YXIoLS1jaGFsay1mb250LXNjYWxlKSk7XG4gIGNvbG9yOiB2YXIoLS12b2ljZS1vbi12aWRlby13YXJuKTtcbn1cblxuLyogLS0tLSAzMC01ZTogcGVyLXBlZXIgbG9jYWwgYXVkaW8gY29udHJvbHMgKEExICsgQTQgc3Vic2V0KSAtLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiBMb2NhbC1tdXRlIGJhZGdlOiB1cHBlcmNhc2UgTSBpbiBlcnJvciBjb2xvciAtLSBZT1VSIHN0YXRlIGFib3V0IHRoZW0sXG4gICBkaXN0aW5jdCBmcm9tIHRoZSBsb3dlcmNhc2UgbS9jL3MgZmxhZ3MgdGhhdCBtaXJyb3IgVEhFSVIgYnJvYWRjYXN0IHN0YXRlLiAqL1xuLmNoYWxrLXZvaWNlLXBlZXItZmxhZy0tbG9jYWwge1xuICBjb2xvcjogdmFyKC0tdm9pY2Utb24tdmlkZW8tYWxlcnQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXZvaWNlLW9uLXZpZGVvLWFsZXJ0KTtcbn1cblxuLmNoYWxrLXZvaWNlLXBlZXItYXVkaW8ge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNnB4O1xufVxuXG4uY2hhbGstdm9pY2UtcGVlci1jb25uICsgLmNoYWxrLXZvaWNlLXBlZXItYXVkaW8sXG4uY2hhbGstdm9pY2UtcGVlci1hdWRpbyArIC5jaGFsay12b2ljZS1wZWVyLWNvbm4ge1xuICBtYXJnaW4tbGVmdDogNnB4O1xufVxuXG4vKiA0NS01OiBwb3AgdGhlIGZvY3VzZWQgdGlsZSBvdXQuIFNhbWUgZG90dGVkLW91dGxpbmUgd2VpZ2h0IGFzIHRoZSBvdGhlclxuICAgaW4tbGFiZWwgY29udHJvbHMgLS0gaXQgYmVsb25ncyB0byB0aGUgdGlsZSwgbm90IHRvIHRoZSBjb250cm9sIGJhci4gKi9cbi5jaGFsay12b2ljZS1wb3BvdXQge1xuICBmbGV4OiAwIDAgYXV0bztcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IGRvdHRlZCB2YXIoLS12b2ljZS1vbi12aWRlby1saW5lKTtcbiAgY29sb3I6IHZhcigtLXZvaWNlLW9uLXZpZGVvLWRpbSk7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogY2FsYygxMXB4ICogdmFyKC0tY2hhbGstZm9udC1zY2FsZSkpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICBwYWRkaW5nOiAycHggNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jaGFsay12b2ljZS1wb3BvdXQ6aG92ZXIge1xuICBjb2xvcjogdmFyKC0tdm9pY2Utb24tdmlkZW8pO1xuICBib3JkZXItY29sb3I6IHZhcigtLXZvaWNlLW9uLXZpZGVvKTtcbn1cblxuLyogNDctNDogdGhpcyB0aWxlIGFscmVhZHkgaGFzIGEgd2luZG93IG9wZW4gLS0gc29saWQgb3V0bGluZSwgc28gYSBnbGFuY2UgYXRcbiAgIHRoZSBzdHJpcCBzYXlzIHdoaWNoIG9mIHNldmVyYWwgYXJlIG91dC4gNjYtNDogdGhlIG91dGxpbmUgSVMgdGhlIHNpZ25hbCxcbiAgIHNvIGl0IGNhcnJpZXMgdGhlIHN0YXRlIGluIGZ1bGwgYnJpZ2h0bmVzcyByYXRoZXIgdGhhbiBpbiAtLWNoYWxrLWFjY2VudCxcbiAgIHdoaWNoIGlzIGEgZGFyayBncmVlbiBvbiB0aGUgbGlnaHQgdGhlbWVzIGFuZCB2YW5pc2hlZCBhZ2FpbnN0IHRoZSBzY3JpbS4gKi9cbi5jaGFsay12b2ljZS1wb3BvdXQtLW9uIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS12b2ljZS1vbi12aWRlbyk7XG4gIGNvbG9yOiB2YXIoLS12b2ljZS1vbi12aWRlbyk7XG59XG5cbi8qIDQ1LTU6IHRoZSBpbi1hcHAgZXhwYW5kZWQgdmlldyAoRmlyZWZveC9TYWZhcmksIG9yIGEgcmVmdXNlZCBQaVAgcmVxdWVzdCkuXG4gICBDb3ZlcnMgdGhlIGFwcCByYXRoZXIgdGhhbiBsaXZpbmcgaW4gdGhlIHBhbmUgLS0gdGhlIHBvaW50IGlzIHNpemUuICovXG4uY2hhbGstdm9pY2UtZXhwYW5kZWQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xuICAvKiBBYm92ZSB0aGUgcGlja2VycyAoNjAvNzApLCBiZWxvdyB0aGUgbW9kYWxzICgxMDApOiBhIG1vZGFsIG9wZW5lZCBvdmVyIGl0XG4gICAgIHN0aWxsIGhhcyB0byBiZSByZWFjaGFibGUuICovXG4gIHotaW5kZXg6IDgwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOTIpO1xuICBkaXNwbGF5OiBncmlkO1xuICBwbGFjZS1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMyk7XG59XG5cbi5jaGFsay12b2ljZS1leHBhbmRlZC1zdGFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IG1pbigxMDAlLCAxNjAwcHgpO1xuICBtYXgtaGVpZ2h0OiAxMDAlO1xuICBhc3BlY3QtcmF0aW86IDE2IC8gOTtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5jaGFsay12b2ljZS1leHBhbmRlZC1iYXIge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMik7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42NSk7XG59XG5cbi5jaGFsay12b2ljZS1leHBhbmRlZC1uYW1lIHtcbiAgZm9udC1zaXplOiBjYWxjKDEycHggKiB2YXIoLS1jaGFsay1mb250LXNjYWxlKSk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xufVxuXG4vKiA2Ni00OiB0aGlzIGlzIHRoZSBjb250cm9sIHBlb3BsZSBhY3R1YWxseSByZWFjaCBmb3IgbWlkLWNhbGwgKFwibXV0ZSBmb3JcbiAgIG1lXCIpLCBhbmQgYXQgOXB4IGRpbS1vbi1ibGFjayBpdCB3YXMgYSBndWVzcyBvbiBldmVyeSB0aGVtZSBhbmQgdW5yZWFkYWJsZVxuICAgb24gdGhlIGxpZ2h0IG9uZXMuIFNhbWUgd2VpZ2h0IGFzIHRoZSBvdGhlciBpbi1sYWJlbCBjb250cm9scywganVzdCBsZWdpYmxlOlxuICAgMTFweCwgcmVhbCBwYWRkaW5nLCBvbi12aWRlbyBjb2xvdXJzLiAqL1xuLmNoYWxrLXZvaWNlLWxvY2FsbXV0ZSB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggZG90dGVkIHZhcigtLXZvaWNlLW9uLXZpZGVvLWxpbmUpO1xuICBjb2xvcjogdmFyKC0tdm9pY2Utb24tdmlkZW8tZGltKTtcbiAgZm9udDogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBjYWxjKDExcHggKiB2YXIoLS1jaGFsay1mb250LXNjYWxlKSk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gIHBhZGRpbmc6IDJweCA2cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNoYWxrLXZvaWNlLWxvY2FsbXV0ZTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS12b2ljZS1vbi12aWRlbyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tdm9pY2Utb24tdmlkZW8pO1xufVxuXG4uY2hhbGstdm9pY2UtbG9jYWxtdXRlLS1vbiB7XG4gIGNvbG9yOiB2YXIoLS12b2ljZS1vbi12aWRlby1hbGVydCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tdm9pY2Utb24tdmlkZW8tYWxlcnQpO1xufVxuXG4vKiBNaW5pbWFsIHJhbmdlIHN0eWxpbmcgb24gdGhlIHRoZW1lOiBhIHRoaW4gdHJhY2ssIHNxdWFyZSB0aHVtYi4gNjYtNCBnYXZlXG4gICB0aGUgdHJhY2sgYW5kIHRodW1iIGVub3VnaCBib2R5IHRvIHNlZSBhbmQgdG8gaGl0IC0tIGEgMnB4IGhhaXJsaW5lIHdpdGggYW5cbiAgIDhweCB0aHVtYiB3YXMgYSBkZXh0ZXJpdHkgdGVzdCBvbiBhIHRpbGUgdGhhdCBpcyAxNDhweCB3aWRlLiAqL1xuLmNoYWxrLXZvaWNlLXZvbHVtZSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgd2lkdGg6IDk2cHg7XG4gIGhlaWdodDogNHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS12b2ljZS1vbi12aWRlby1saW5lKTtcbiAgb3V0bGluZTogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2hhbGstdm9pY2Utdm9sdW1lOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTZweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tdm9pY2Utb24tdmlkZW8pO1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5jaGFsay12b2ljZS12b2x1bWU6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS12b2ljZS1vbi12aWRlbyk7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi8qIDExOS0xOiB0aGUgc2xpZGVyIHJ1bnMgdG8gMjAwJSwgYW5kIHBhc3QgMTAwIHRoZSB0aHVtYiB0YWtlcyB0aGUgYWxlcnRcbiAgIGNvbG91ciAtLSB0aGUgc2FtZSBvbmUgdGhlIGxvY2FsLW11dGUgYnV0dG9uIGxpZ2h0cyB1cCBpbiAtLSBzbyBhIGJvb3N0ZWRcbiAgIHBlcnNvbiByZWFkcyBhcyBib29zdGVkIGF0IGEgZ2xhbmNlLCBub3Qgb25seSBpbiB0aGUgdGl0bGUuICovXG4uY2hhbGstdm9pY2Utdm9sdW1lLS1ib29zdDo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS12b2ljZS1vbi12aWRlby1hbGVydCk7XG59XG4uY2hhbGstdm9pY2Utdm9sdW1lLS1ib29zdDo6LW1vei1yYW5nZS10aHVtYiB7XG4gIGJhY2tncm91bmQ6IHZhcigtLXZvaWNlLW9uLXZpZGVvLWFsZXJ0KTtcbn1cblxuLyogLS0tLSBjb250cm9sIGJhciAtLS0tICovXG5cbi5jaGFsay12b2ljZS1iYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgbWFyZ2luLXRvcDogdmFyKC0tY2hhbGstczIpO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5jaGFsay12b2ljZS1iYXItc3BhY2VyIHtcbiAgZmxleDogMSAxIGF1dG87XG59XG5cbi5jaGFsay12b2ljZS1kdXJhdGlvbiB7XG4gIGZvbnQtc2l6ZTogY2FsYygxMnB4ICogdmFyKC0tY2hhbGstZm9udC1zY2FsZSkpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbn1cblxuLmNoYWxrLXZvaWNlLXJlbGF5IHtcbiAgZm9udC1zaXplOiBjYWxjKDEwcHggKiB2YXIoLS1jaGFsay1mb250LXNjYWxlKSk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBwYWRkaW5nOiAxcHggNHB4O1xufVxuXG4uY2hhbGstdm9pY2UtY3RsIHtcbiAgZm9udC1zaXplOiBjYWxjKDEycHggKiB2YXIoLS1jaGFsay1mb250LXNjYWxlKSk7XG59XG5cbi5jaGFsay12b2ljZS1jdGwtLW9mZiB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay13YXJuKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay13YXJuKTtcbn1cblxuLmNoYWxrLXZvaWNlLWN0bC0tb24ge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xufVxuXG4vKiBQaGFzZSA0MS01OiB0aGUgdHJhbnNtaXQtZ2F0ZSBkb3QuIE9ubHkgcmVuZGVyZWQgd2hpbGUgYWN0dWFsbHkgc2VuZGluZywgc29cbiAgIGl0IG5lZWRzIG5vIFwib2ZmXCIgc3RhdGUgLS0gaXRzIGFic2VuY2UgaXMgdGhlIG9mZiBzdGF0ZS4gKi9cbi5jaGFsay12b2ljZS1saXZlIHtcbiAgZmxleDogbm9uZTtcbiAgd2lkdGg6IDdweDtcbiAgaGVpZ2h0OiA3cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYWNjZW50KTtcbn1cblxuLmNoYWxrLXZvaWNlLWN0bC0tbGVhdmUge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZXJyb3IpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWVycm9yKTtcbn1cblxuLyogLS0tLSA0NC0yLzQ0LTY6IHRoZSBhbHdheXMtcHJlc2VudCBmb290ZXIgcGFuZWwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIFNhbWUgYm9yZGVyLCByYWlzZWQgYmFja2dyb3VuZCBhbmQgbWFyZ2lucyBhcyAuY2hhbGstdm9pY2UtZG9jaywgd2hpY2ggc2l0c1xuICAgZGlyZWN0bHkgYWJvdmUgaXQgaW4gdGhpcyBjb2x1bW4gLS0gdGhlIHR3byByZWFkIGFzIG9uZSB2b2ljZSBibG9jayByYXRoZXJcbiAgIHRoYW4gYSBwYW5lbCBhbmQgZml2ZSBsb29zZSBidXR0b25zLiBGaXZlIGVxdWFsIGNvbHVtbnMgc28gdGhlIGJ1dHRvbnMgZmlsbFxuICAgdGhlIHJvc3RlciB3aWR0aCBhdCBhbnkgc2lkZWJhciBzaXplIGluc3RlYWQgb2YgaHVkZGxpbmcgYXQgdGhlIGxlZnQgZWRnZS4gKi9cbi5jaGFsay12b2ljZS1jb250cm9scyB7XG4gIG1hcmdpbjogMCB2YXIoLS1jaGFsay1zMik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMik7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIDFmcik7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xufVxuXG4vKiBPdXRzaWRlIGEgY2FsbCB0aGUgcGFuZWwgb25seSBzZXRzIGRlZmF1bHRzIGZvciB0aGUgbmV4dCByb29tLCBzbyBpdCBmYWRlc1xuICAgYmFjayAtLSBkaXNjb3ZlcmFibGUsIGJ1dCBub3QgY29tcGV0aW5nIHdpdGggbGl2ZSBVSS4gRnVsbCBzdHJlbmd0aCByZXR1cm5zXG4gICBvbiBob3ZlciAoYW5kIHZpYSA6Zm9jdXMtd2l0aGluIGZvciBrZXlib2FyZCB1c2VycykgYW5kIHdoaWxlIGluIGEgY2FsbC4gKi9cbi5jaGFsay12b2ljZS1jb250cm9scy5pcy1pZGxlIHtcbiAgb3BhY2l0eTogMC40NTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBlYXNlO1xufVxuXG4uY2hhbGstdm9pY2UtY29udHJvbHMuaXMtaWRsZTpob3Zlcixcbi5jaGFsay12b2ljZS1jb250cm9scy5pcy1pZGxlOmZvY3VzLXdpdGhpbiB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5jaGFsay12b2ljZS1jdGxidG4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYXNwZWN0LXJhdGlvOiAxO1xuICBtaW4taGVpZ2h0OiAzMnB4O1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2hhbGstdm9pY2UtY3RsYnRuOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2LTIpO1xufVxuXG4vKiBNdXRlZCwgZGVhZmVuZWQsIGNhbWVyYS1vZmY6IHRoZSBzdGF0ZSB5b3UgY2FuIGJlIGNhdWdodCBvdXQgYnksIHNvIGl0IGdldHNcbiAgIHRoZSB3YXJuaW5nIGNvbG91ciByYXRoZXIgdGhhbiBhIHN1YnRsZXIgXCJpbmFjdGl2ZVwiIHRyZWF0bWVudC4gKi9cbi5jaGFsay12b2ljZS1jdGxidG4uaXMtb2ZmIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLXdhcm4pO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLXdhcm4pO1xufVxuXG4vKiBMaXZlIHNjcmVlbiBzaGFyZSAtLSBhbHNvIGEgc3RhdGUgeW91IGNhbiBiZSBjYXVnaHQgb3V0IGJ5LiAqL1xuLmNoYWxrLXZvaWNlLWN0bGJ0bi5pcy1vbiB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay13YXJuKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay13YXJuKTtcbn1cblxuLyogU2hhcmUgb3V0c2lkZSBhIGNhbGw6IG5vdGhpbmcgdG8gc2hhcmUgaW50byB5ZXQuICovXG4uY2hhbGstdm9pY2UtY3RsYnRuOmRpc2FibGVkIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKiAtLS0tIGRlYnVnIGRyYXdlciAoMzAtNGMgZGlhZ25vc3RpY3MsIHJlYnVpbHQgZm9yIHRoZSAzMC01IGxheW91dCkgLS0tLSAqL1xuXG4uY2hhbGstdm9pY2UtZHJhd2VyIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tY2hhbGstczIpO1xuICBib3JkZXI6IDFweCBkYXNoZWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpO1xuICBmb250LXNpemU6IGNhbGMoMTFweCAqIHZhcigtLWNoYWxrLWZvbnQtc2NhbGUpKTtcbn1cblxuLmNoYWxrLXZvaWNlLWRyYXdlci1oZWFkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY2hhbGstczEpO1xufVxuXG4uY2hhbGstdm9pY2UtZHJhd2VyLXRpdGxlIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbn1cblxuLmNoYWxrLXZvaWNlLWRyYXdlci1rbm9icyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMSk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWNoYWxrLXMxKTtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLWNoYWxrLXMxKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG59XG5cbi5jaGFsay12b2ljZS1kcmF3ZXItc3RhdHMge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jaGFsay1zMSk7XG59XG5cbi5jaGFsay12b2ljZS1kcmF3ZXItcGFpciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5cbi5jaGFsay12b2ljZS1kcmF3ZXItcGVlciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xufVxuXG4uY2hhbGstdm9pY2UtZHJhd2VyLWV2ZW50cyB7XG4gIG1heC1oZWlnaHQ6IDE0MHB4O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgcGFkZGluZy10b3A6IHZhcigtLWNoYWxrLXMxKTtcbn1cblxuLmNoYWxrLXZvaWNlLWRyYXdlci1ldmVudCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBsaW5lLWhlaWdodDogMS41O1xuICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG5cbi5jaGFsay12b2ljZS1kcmF3ZXItdGltZSB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG59XG5cbi5jaGFsay12b2ljZS1kcmF3ZXItaGludCB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWNoYWxrLXMxKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbn1cblxuLmNoYWxrLXZvaWNlLWRyYXdlci1oaW50IGNvZGUge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgdXNlci1zZWxlY3Q6IGFsbDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBDb21wb3NlciByZWFkYWJpbGl0eSArIHRvb2wgcm93LCBhbmQgdGhlIHdpbmRvdyBwb3Atb3V0IGNvbnRyb2wuXG5cbiAgIEFwcGVuZGVkIGFzIG92ZXJyaWRlcyByYXRoZXIgdGhhbiBlZGl0cyB0byB0aGUgb3JpZ2luYWwgcnVsZXMgYWJvdmUsXG4gICBzbyB0aGUgY2FzY2FkZSBvcmRlciBpcyBleHBsaWNpdDogdGhlc2UgYXJlIHNpbmdsZS1jbGFzcyBzZWxlY3RvcnNcbiAgIG1hdGNoaW5nIHRoZSBlYXJsaWVyIG9uZXMsIHNvIGJlaW5nIGxhc3QgaXMgd2hhdCBtYWtlcyB0aGVtIHdpbi5cbiAgIEV2ZXJ5dGhpbmcgaGVyZSB1c2VzIGV4aXN0aW5nIHRoZW1lIHZhcnMsIHNvIHRoZSBsaWdodCB0aGVtZSBhZGFwdHNcbiAgIHdpdGhvdXQgYSBzZWNvbmQgc2V0IG9mIHJ1bGVzLlxuICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qIFJlYWRhYmlsaXR5OiB0aGUgcGxhY2Vob2xkZXIgdXNlZCAtLWNoYWxrLWZnLW11dGVkIG9uIGEgbmVhci1ibGFja1xuICAgZmllbGQsIHdoaWNoIHNhdCB3ZWxsIHVuZGVyIGEgY29tZm9ydGFibGUgY29udHJhc3QgcmF0aW8uIE1vdmUgaXQgdG9cbiAgIC0tY2hhbGstZmctZGltIGFuZCBwaW4gb3BhY2l0eSAoRmlyZWZveCBhcHBsaWVzIGl0cyBvd24gYnkgZGVmYXVsdCkuXG4gICBUaGUgYnJpZ2h0ZXIgYm9yZGVyIGdpdmVzIHRoZSBmaWVsZCBhIHZpc2libGUgZWRnZSBpbnN0ZWFkIG9mIGl0XG4gICBibGVlZGluZyBpbnRvIHRoZSBwYWdlIGJhY2tncm91bmQuICovXG4uY2hhbGstY29tcG9zZXItaW5wdXQge1xuICBsaW5lLWhlaWdodDogMS41O1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbn1cbi5jaGFsay1jb21wb3Nlci1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLyogNDQtNTogYXR0YWNoIC8gR0lGIC8gZW1vamkgLyBcIj9cIiBhcyBhIDJ4MiBibG9jayBhZ2FpbnN0IHRoZSBsZWZ0IGVkZ2Ugb2YgdGhlXG4gICBpbnB1dC4gVHdvIGNvbHVtbnMgcmF0aGVyIHRoYW4gb25lIHJvdyBvciBvbmUgY29sdW1uOiBhIHJvdyBhdGUgdGhlIGZpZWxkJ3NcbiAgIHdpZHRoLCBhbmQgYSBjb2x1bW4gb2YgZm91ciBtYWRlIHRoZSBmb290ZXIgdHdpY2UgYXMgdGFsbCBhcyB0aGUgZmllbGQgaXRcbiAgIHNpdHMgYmVzaWRlLiBhbGlnbi1jb250ZW50OiBlbmQga2VlcHMgdGhlIGJsb2NrJ3MgYm90dG9tIG9uIHRoZSBpbnB1dCdzXG4gICBib3R0b20gd2hlbiB0aGUgZmllbGQgaXMgZHJhZ2dlZCB0YWxsZXIuICovXG4uY2hhbGstY29tcG9zZXItdG9vbHMge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBhdXRvKTtcbiAgYWxpZ24tY29udGVudDogZW5kO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICBnYXA6IHZhcigtLWNoYWxrLXMxKTtcbn1cbi5jaGFsay1jb21wb3Nlci10b29sIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBwYWRkaW5nOiAxcHggdmFyKC0tY2hhbGstczIpO1xuICBtaW4taGVpZ2h0OiAwO1xuICBoZWlnaHQ6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmNoYWxrLWNvbXBvc2VyLXRvb2w6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG59XG4uY2hhbGstY29tcG9zZXItdG9vbDpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNDU7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi8qIDc2LTE6IHRoZSBjaGVhdCBzaGVldCBpcyBhIHNldHRpbmdzIHNlY3Rpb24gbm93IC0tIHNlZSAuY2hhbGstcHJvZmlsZS1rZXlzLlxuICAgVGhlIGNvbXBvc2VyJ3MgXCI/XCIgYW5kIGl0cyBwb3BvdmVyIGFyZSBnb25lOyBvbiBhIHBob25lIHRoZSBidXR0b24gd2FzXG4gICB3aWR0aCB0aGUgY29tcG9zZXIgY291bGQgbm90IHNwYXJlLiAqL1xuXG4vKiBIZWFkZXIgbGVmdCBjbHVzdGVyOiBicmFuZCwgcGx1cyB0aGUgbmF2IHRvZ2dsZSBvbiBtb2JpbGUuICovXG4uY2hhbGstaGVhZGVyLWxlZnQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGdhcDogdmFyKC0tY2hhbGstczMpO1xufVxuXG4vKiAtLSAzOS0xOiB2ZXJzaW9uIGJhZGdlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgU2l0cyBiZXNpZGUgdGhlIHdvcmRtYXJrLCBzbyBpdCBoYXMgdG8gcmVhZCBhcyBtZXRhZGF0YSByYXRoZXJcbiAgIHRoYW4gYXMgcGFydCBvZiB0aGUgYnJhbmQ6IHNtYWxsLCBkaW0sIGFuZCBubyB1bmRlcmxpbmUgdW50aWxcbiAgIGhvdmVyLiBTaXplIGlzIGZpeGVkIHJhdGhlciB0aGFuIHJlbGF0aXZlIGJlY2F1c2UgLmNoYWxrLWJyYW5kXG4gICByYWlzZXMgdGhlIGZvbnQtc2l6ZSBmb3IgdGhlIHdvcmRtYXJrLiAqL1xuLmNoYWxrLXZlcnNpb24ge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cbi5jaGFsay12ZXJzaW9uOmhvdmVyLFxuLmNoYWxrLXZlcnNpb246Zm9jdXMtdmlzaWJsZSB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmNoYWxrLXZlcnNpb24tLWJhZGdlIHtcbiAgLyogUHVzaCBvZmYgdGhlIHdvcmRtYXJrIGJ5IG1vcmUgdGhhbiAuY2hhbGstYnJhbmQncyB0aWdodCBsb2dvIGdhcC4gKi9cbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWNoYWxrLXMyKTtcbn1cbi5jaGFsay12ZXJzaW9uLS1yb3cge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUd28gbW9yZSB0aGVtZXM6IHNuYXp6eS1saWdodCBhbmQgdG9reW8tbmlnaHRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgU2FtZSBzdHJ1Y3R1cmUgYXMgdGhlIDkuN2IvOS43YyB0aGVtZXMgYWJvdmU6IGEgdmFyIGJsb2NrIHBlclxuICAgdGhlbWUsIHBsdXMgdGhlIGhhbmRmdWwgb2Ygb3ZlcnJpZGVzIGZvciBzdXJmYWNlcyB0aGF0IGhhcmQtY29kZVxuICAgYW4gcmdiYSgpIGdsb3cgb3IgdGludCByYXRoZXIgdGhhbiByZWFkaW5nIGEgdmFyaWFibGUuXG5cbiAgIE5vdGUgb24gLS1jaGFsay1mZy1icmlnaHQgaW4gYSBsaWdodCB0aGVtZTogXCJicmlnaHRcIiBtZWFucyBtb3JlXG4gICBlbXBoYXRpYyB0aGFuIGJvZHkgdGV4dCwgd2hpY2ggb24gYSBwYWxlIGdyb3VuZCBtZWFucyBkYXJrZXIsIG5vdFxuICAgbGlnaHRlciAtLSB0aGUgc2FtZSB0cmljayB0aGUgY3JlYW0gYGxpZ2h0YCB0aGVtZSB1c2VzLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIC0tLS0gc25henp5LWxpZ2h0OiBjb29sIG5lYXItd2hpdGUgZ3JvdW5kLCBzbGF0ZSB0ZXh0LCBtYWdlbnRhIGFjY2VudC5cbiAgICAgICAgQmFzZSBjb2xvcnMgZm9sbG93IFNuYXp6eSBMaWdodCdzIHBhbGV0dGUgcmF0aGVyIHRoYW4gdGhlIHdhcm1cbiAgICAgICAgY3JlYW0gb2YgdGhlIGV4aXN0aW5nIGBsaWdodGAgdGhlbWUsIHNvIHRoZSB0d28gcmVhZCBkaXN0aW5jdGx5LiAqL1xuW2RhdGEtdGhlbWU9XCJzbmF6enktbGlnaHRcIl0ge1xuICAtLWNoYWxrLWJnOiAgICAgICAgICAgI2ZhZmJmYztcbiAgLS1jaGFsay1iZy1lbGV2OiAgICAgICNmMGYyZjU7XG4gIC0tY2hhbGstYmctZWxldi0yOiAgICAjZTJlN2VjO1xuICAtLWNoYWxrLWZnOiAgICAgICAgICAgIzNiM2Y1MTtcbiAgLyogU25henp5J3MgcHVibGlzaGVkIHRpbnRzIGFyZSB0dW5lZCBmb3Igc3ludGF4IG9uIGFuIGVkaXRvciBncm91bmQsIG5vdFxuICAgICBmb3IgVUkgdGV4dDogb24gI2ZhZmJmYyB0aGV5IGxhbmQgYXQgMi41LTQuMjoxLCB3aGljaCBpcyB3aGF0IG1hZGUgdGhlXG4gICAgIGZyaWVuZHMgZGlhbG9nIGhhcmQgdG8gcmVhZC4gRGFya2VuZWQganVzdCBlbm91Z2ggdG8gY2xlYXIgNC41OjEgZm9yXG4gICAgIHRleHQgYW5kIDM6MSBmb3IgdGhlIG11dGVkIHRpZXIsIGtlZXBpbmcgdGhlIGh1ZXMgaW50YWN0LiAqL1xuICAtLWNoYWxrLWZnLWRpbTogICAgICAgIzYzNjk3ZDtcbiAgLS1jaGFsay1mZy1icmlnaHQ6ICAgICMwYjdkNTk7XG4gIC0tY2hhbGstZmctbXV0ZWQ6ICAgICAjN2E4MTk1O1xuICAtLWNoYWxrLWJvcmRlcjogICAgICAgI2RjZTFlODtcbiAgLS1jaGFsay1hY2NlbnQ6ICAgICAgICNiNTJhODU7XG4gIC0tY2hhbGstd2FybjogICAgICAgICAjYzI2YTAwO1xuICAtLWNoYWxrLWVycm9yOiAgICAgICAgI2MwMzIyZjtcblxuICBjb2xvci1zY2hlbWU6IGxpZ2h0O1xufVxuXG4vKiBGbGF0IGxpZ2h0IGdyb3VuZCBuZWVkcyBhIGhpbnQgb2YgZWxldmF0aW9uIG9uIGZsb2F0aW5nIHN1cmZhY2VzLFxuICAgc2FtZSByZWFzb25pbmcgYXMgdGhlIGNyZWFtIGxpZ2h0IHRoZW1lLiAqL1xuW2RhdGEtdGhlbWU9XCJzbmF6enktbGlnaHRcIl0gLmNoYWxrLW1vZGFsLFxuW2RhdGEtdGhlbWU9XCJzbmF6enktbGlnaHRcIl0gLmNoYWxrLW1vZGFsLWNhcmQsXG5bZGF0YS10aGVtZT1cInNuYXp6eS1saWdodFwiXSAuY2hhbGstcHJlc2VuY2UtbWVudSxcbltkYXRhLXRoZW1lPVwic25henp5LWxpZ2h0XCJdIC5jaGFsay1zdGF0dXMtbWVudSB7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgyNywgMzAsIDQzLCAwLjE2KTtcbn1cblxuLyogU2FtZSByZWFzb25pbmcgYXMgdGhlIGNyZWFtIHRoZW1lOiBzb2Z0ZW4gdGhlIHNjcmltIHNvIGl0IGRpbXMgdGhlIGFwcFxuICAgaW5zdGVhZCBvZiBzdGFpbmluZyBpdC4gKi9cbltkYXRhLXRoZW1lPVwic25henp5LWxpZ2h0XCJdIC5jaGFsay1tb2RhbC1iYWNrZHJvcCB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjcsIDMwLCA0MywgMC40Mik7XG59XG5cbltkYXRhLXRoZW1lPVwic25henp5LWxpZ2h0XCJdIC5jaGFsay1zaWRlYmFyLWl0ZW0tLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMTgxLCA0MiwgMTMzLCAwLjEwKTtcbn1cblxuLyogLS0tLSB0b2t5by1uaWdodDogdGhlIHN0YW5kYXJkIFRva3lvIE5pZ2h0IHBhbGV0dGUuICovXG5bZGF0YS10aGVtZT1cInRva3lvLW5pZ2h0XCJdIHtcbiAgLS1jaGFsay1iZzogICAgICAgICAgICMxYTFiMjY7XG4gIC0tY2hhbGstYmctZWxldjogICAgICAjMWYyMzM1O1xuICAtLWNoYWxrLWJnLWVsZXYtMjogICAgIzI5MmU0MjtcbiAgLS1jaGFsay1mZzogICAgICAgICAgICNjMGNhZjU7XG4gIC8qIFRva3lvIE5pZ2h0J3MgIzU2NWY4OSBjb21tZW50IHRvbmUgaXMgMi44OjEgaGVyZSBhbmQgaXRzICM3OTgyYTkgb25seVxuICAgICBjbGVhcnMgNC41OjEgYWdhaW5zdCB0aGUgYmFzZSBncm91bmQsIG5vdCB0aGUgZWxldmF0ZWQgb25lLiBCb3RoXG4gICAgIGxpZnRlZCBhIHN0ZXA7IHRoZSBodWVzIGFyZSB1bmNoYW5nZWQuICovXG4gIC0tY2hhbGstZmctZGltOiAgICAgICAjODU4ZWI2O1xuICAtLWNoYWxrLWZnLWJyaWdodDogICAgI2M4ZDNmNTtcbiAgLS1jaGFsay1mZy1tdXRlZDogICAgICM2ZTc3YTM7XG4gIC0tY2hhbGstYm9yZGVyOiAgICAgICAjMjkyZTQyO1xuICAtLWNoYWxrLWFjY2VudDogICAgICAgIzdhYTJmNztcbiAgLS1jaGFsay13YXJuOiAgICAgICAgICNlMGFmNjg7XG4gIC0tY2hhbGstZXJyb3I6ICAgICAgICAjZjc3NjhlO1xuXG4gIGNvbG9yLXNjaGVtZTogZGFyaztcbn1cblxuW2RhdGEtdGhlbWU9XCJ0b2t5by1uaWdodFwiXSAuY2hhbGstc2lkZWJhci1pdGVtLS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDEyMiwgMTYyLCAyNDcsIDAuMTQpO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIGxjYXJzOiBTdGFyIFRyZWsgVE5HLWVyYSBkaXNwbGF5IHBhbmVsXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIE9rdWRhZ3JhbSBwYWxldHRlIG9uIGJsYWNrOiBidXR0ZXJzY290Y2ggYm9keSB0ZXh0LCB0aGUgc2lnbmF0dXJlXG4gICAjZmY5OTAwIG9yYW5nZSBmb3IgZW1waGFzaXMsIGxpbGFjIGZvciBzZWNvbmRhcnksIHNhbG1vbiBmb3IgZXJyb3JzLlxuICAgQWNjZW50IGlzIExDQVJTIGJsdWUgc28gaXQgc2VwYXJhdGVzIGZyb20gdGhlIG9yYW5nZSBlbXBoYXNpcyByYXRoZXJcbiAgIHRoYW4gY29tcGV0aW5nIHdpdGggaXQuXG5cbiAgIEJleW9uZCB0aGUgdmFyaWFibGVzIHRoaXMgdGhlbWUgYWxzbyBiZW5kcyB0aHJlZSBzaGFwZSBydWxlcywgYmVjYXVzZVxuICAgTENBUlMgaXMgYXMgbXVjaCBnZW9tZXRyeSBhcyBjb2xvcjogZ2VuZXJvdXMgcGlsbCByYWRpaSwgdXBwZXJjYXNlXG4gICB3aWRlLXRyYWNrZWQgaGVhZGVycywgYW5kIGVsYm93LXN0eWxlIGNvbG9yZWQgcmFpbHMgb24gdGhlIHN1cmZhY2VzXG4gICB0aGF0IGZyYW1lIGNvbnRlbnQgKHNpZGViYXIsIG1vZGFscykuIEV2ZXJ5dGhpbmcgZWxzZSBpbmhlcml0cy5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5bZGF0YS10aGVtZT1cImxjYXJzXCJdIHtcbiAgLS1jaGFsay1iZzogICAgICAgICAgICMwMDAwMDA7XG4gIC0tY2hhbGstYmctZWxldjogICAgICAjMTQxMDFmO1xuICAtLWNoYWxrLWJnLWVsZXYtMjogICAgIzI0MWIzYTtcbiAgLS1jaGFsay1mZzogICAgICAgICAgICNmZmNjOTk7XG4gIC0tY2hhbGstZmctZGltOiAgICAgICAjY2M5OWNjO1xuICAtLWNoYWxrLWZnLWJyaWdodDogICAgI2ZmOTkwMDtcbiAgLS1jaGFsay1mZy1tdXRlZDogICAgICM4ODc3YWE7XG4gIC0tY2hhbGstYm9yZGVyOiAgICAgICAjNjY0NDg4O1xuICAtLWNoYWxrLWFjY2VudDogICAgICAgIzk5Y2NmZjtcbiAgLS1jaGFsay13YXJuOiAgICAgICAgICNmZmNjNjY7XG4gIC0tY2hhbGstZXJyb3I6ICAgICAgICAjY2M2NjY2O1xuXG4gIC8qIExDQVJTIHBhbmVscyBhcmUgYWxsIHJvdW5kZWQgZW5kczsgMnB4IHNoYXJwIHdvdWxkIHJlYWQgYXMgYW55XG4gICAgIG90aGVyIGRhcmsgdGhlbWUuICovXG4gIC0tY2hhbGstcmFkaXVzOiAxMHB4O1xuXG4gIGNvbG9yLXNjaGVtZTogZGFyaztcbn1cblxuW2RhdGEtdGhlbWU9XCJsY2Fyc1wiXSAuY2hhbGstc2lkZWJhci1pdGVtLS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMTUzLCAwLCAwLjE2KTtcbn1cblxuLyogSGVhZGVycyBhcyBMQ0FSUyBsYWJlbHM6IHVwcGVyY2FzZSwgd2lkZSB0cmFja2luZywgb3JhbmdlLiBUaGUgYmFzZVxuICAgc2hlZXQgbG93ZXJjYXNlcyBtb2RhbCB0aXRsZXMsIHNvIHRoaXMgaGFzIHRvIG92ZXJyaWRlIGV4cGxpY2l0bHkuICovXG5bZGF0YS10aGVtZT1cImxjYXJzXCJdIC5jaGFsay1tb2RhbC1oZWFkZXIgaDIsXG5bZGF0YS10aGVtZT1cImxjYXJzXCJdIC5jaGFsay1mcmllbmRzLXRpdGxlLFxuW2RhdGEtdGhlbWU9XCJsY2Fyc1wiXSAuY2hhbGstbWVtYmVycy10aXRsZSB7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjE0ZW07XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xufVxuXG4vKiBUaGUgZWxib3cgcmFpbDogYSB0aGljayBjb2xvcmVkIGVkZ2UgZG93biB0aGUgbGVmdCBvZiBmcmFtZWRcbiAgIHN1cmZhY2VzLCB3aGljaCBpcyB0aGUgc2luZ2xlIG1vc3QgcmVjb2duaXphYmxlIExDQVJTIGN1ZS4gKi9cbltkYXRhLXRoZW1lPVwibGNhcnNcIl0gLmNoYWxrLW1vZGFsLFxuW2RhdGEtdGhlbWU9XCJsY2Fyc1wiXSAuY2hhbGstbW9kYWwtY2FyZCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJvcmRlci1sZWZ0OiA2cHggc29saWQgdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbn1cblxuLyogUGlja2VyIHN3YXRjaGVzOiBoYXJkLWNvZGVkIGhleCBzbyBlYWNoIHByZXZpZXcgc2hvd3MgaXRzIE9XTiB0aGVtZVxuICAgcmVnYXJkbGVzcyBvZiB3aGljaCB0aGVtZSBpcyBhY3RpdmUsIG1hdGNoaW5nIHRoZSA5LjdjIHN3YXRjaGVzLiAqL1xuLmNoYWxrLXByb2ZpbGUtdGhlbWUtc3dhdGNoLXByZXZpZXctLWxjYXJzIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZyxcbiAgICAjMDAwMDAwIDAlLCAjMDAwMDAwIDUwJSxcbiAgICAjZmY5OTAwIDUwJSwgI2ZmOTkwMCAxMDAlKTtcbn1cblxuLmNoYWxrLXByb2ZpbGUtdGhlbWUtc3dhdGNoLXByZXZpZXctLXNuYXp6eS1saWdodCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsXG4gICAgI2ZhZmJmYyAwJSwgI2ZhZmJmYyA1MCUsXG4gICAgI2QzMzk5ZSA1MCUsICNkMzM5OWUgMTAwJSk7XG59XG5cbi5jaGFsay1wcm9maWxlLXRoZW1lLXN3YXRjaC1wcmV2aWV3LS10b2t5by1uaWdodCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsXG4gICAgIzFhMWIyNiAwJSwgIzFhMWIyNiA1MCUsXG4gICAgIzdhYTJmNyA1MCUsICM3YWEyZjcgMTAwJSk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgYmxhZGUtcnVubmVyOiBuZW9uIHNjYXJsZXQgaW4gYSBzbW9nLWJsYWNrIGNpdHlcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUmVkIGxlYWRzOiBlbXBoYXNpcyBhbmQgYWN0aXZlIHN0YXRlcyBhcmUgYWxsIHRoZSB0aXRsZS1jYXJkXG4gICBzY2FybGV0LiBUaGUgZ3JvdW5kIGlzIG5vdCBuZXV0cmFsIGJsYWNrIGJ1dCBhXG4gICB3YXJtIHNtb2tlLWJsYWNrIC0tIHRoZSBhc2gvaGF6ZSBjYXN0IGlzIHdoYXQgc2VwYXJhdGVzIHRoaXMgZnJvbVxuICAgdGhlIGdyZWVuIHRlcm1pbmFsIHRoZW1lIHdpdGggYSByZWQgYWNjZW50IGJvbHRlZCBvbi5cblxuICAgQm9keSB0ZXh0IGlzIGEgd2FybSBib25lIHdoaXRlIHJhdGhlciB0aGFuIHJlZDogMTRweCBtb25vIHNldCBpblxuICAgc2F0dXJhdGVkIHJlZCBpcyB1bnJlYWRhYmxlIGZvciBhIGNoYXQgbG9nLCBhbmQgc3BlbmRpbmcgdGhlIGxlYWRcbiAgIGNvbG9yIG9ubHkgb24gd2hhdCBtYXR0ZXJzIGlzIHdoYXQgbWFrZXMgaXQgcmVhZCBhcyBsZWFkLlxuXG4gICBUaGUgb25lIG5vbi1jb2xvciBjdWUgaXMgYmxvb20gLS0gYSBzb2Z0IHJlZCBoYWxvIG9uIGVtcGhhc2l6ZWRcbiAgIHRleHQsIHRoZSB3YXkgbmVvbiBzbWVhcnMgaW4gcmFpbi4gS2VwdCB0byBmZy1icmlnaHQgb25seSBzbyB0aGVcbiAgIG1lc3NhZ2UgbGlzdCBzdGF5cyBjcmlzcC5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5bZGF0YS10aGVtZT1cImJsYWRlLXJ1bm5lclwiXSB7XG4gIC0tY2hhbGstYmc6ICAgICAgICAgICAjMGEwNjA3O1xuICAtLWNoYWxrLWJnLWVsZXY6ICAgICAgIzE2MDkwYjtcbiAgLS1jaGFsay1iZy1lbGV2LTI6ICAgICMyNDBlMTE7XG4gIC0tY2hhbGstZmc6ICAgICAgICAgICAjZTZkN2QwO1xuICAtLWNoYWxrLWZnLWRpbTogICAgICAgI2IwOTA4ODtcbiAgLS1jaGFsay1mZy1icmlnaHQ6ICAgICNmZjJmMmY7XG4gIC0tY2hhbGstZmctbXV0ZWQ6ICAgICAjOGQ2ZjY5O1xuICAtLWNoYWxrLWJvcmRlcjogICAgICAgIzRhMWExYztcbiAgLyogVGVhbCBpcyB0aGUgZmlsbSdzIG90aGVyIG5lb24sIGFuZCBpdCBrZWVwcyBsaW5rcyBhbmQgYm9yZGVyc1xuICAgICBsZWdpYmxlIGFzIGEgc2VwYXJhdGUgc2lnbmFsIGluc3RlYWQgb2YgZGlzc29sdmluZyBpbnRvIHRoZSByZWQuICovXG4gIC0tY2hhbGstYWNjZW50OiAgICAgICAjNGZkNmQ2O1xuICAtLWNoYWxrLXdhcm46ICAgICAgICAgI2ZmYjM0NztcbiAgLyogUHVzaGVkIHBpbmstd2FyZCBzbyBlcnJvcnMgZG9uJ3QgcmVhZCBhcyBcImp1c3QgbW9yZSBlbXBoYXNpc1wiXG4gICAgIGFnYWluc3QgYSB0aGVtZSB3aG9zZSBlbXBoYXNpcyBjb2xvciBpcyBhbHJlYWR5IHJlZC4gKi9cbiAgLS1jaGFsay1lcnJvcjogICAgICAgICNmZjdhOGE7XG5cbiAgY29sb3Itc2NoZW1lOiBkYXJrO1xufVxuXG5bZGF0YS10aGVtZT1cImJsYWRlLXJ1bm5lclwiXSAuY2hhbGstc2lkZWJhci1pdGVtLS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgNDcsIDQ3LCAwLjE0KTtcbn1cblxuLyogTmVvbiBibG9vbSBvbiB0aGUgdGl0bGVzIHRoYXQgY2FycnkgdGhlIGxlYWQgY29sb3IuICovXG5bZGF0YS10aGVtZT1cImJsYWRlLXJ1bm5lclwiXSAuY2hhbGstbW9kYWwtaGVhZGVyIGgyLFxuW2RhdGEtdGhlbWU9XCJibGFkZS1ydW5uZXJcIl0gLmNoYWxrLWZyaWVuZHMtdGl0bGUsXG5bZGF0YS10aGVtZT1cImJsYWRlLXJ1bm5lclwiXSAuY2hhbGstbWVtYmVycy10aXRsZSB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICB0ZXh0LXNoYWRvdzogMCAwIDEycHggcmdiYSgyNTUsIDQ3LCA0NywgMC40NSk7XG59XG5cbi5jaGFsay1wcm9maWxlLXRoZW1lLXN3YXRjaC1wcmV2aWV3LS1ibGFkZS1ydW5uZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLFxuICAgICMwYTA2MDcgMCUsICMwYTA2MDcgNTAlLFxuICAgICNmZjJmMmYgNTAlLCAjZmYyZjJmIDEwMCUpO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIHdhcm13aGl0ZTogZGFyayByYWlsIGJlc2lkZSBhIHBhcGVyLXdoaXRlIHBhZ2VcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQSB0d28tdG9uZSB0aGVtZSwgdW5saWtlIGV2ZXJ5IG90aGVyIG9uZSBoZXJlOiB0aGUgc2lkZWJhciBpcyBhXG4gICBkYXJrIGdyYXBoaXRlIHJhaWwgYW5kIGV2ZXJ5dGhpbmcgdG8gdGhlIHJpZ2h0IG9mIGl0IGlzIGEgd2FybVxuICAgbmVhci13aGl0ZSBwYWdlLiBUaGF0IHNwbGl0IElTIHRoZSB0aGVtZSAtLSBhIGxpZ2h0IGdyb3VuZCB3aXRoIGFcbiAgIG5vcm1hbCBsaWdodCBzaWRlYmFyIGlzIGFscmVhZHkgYGxpZ2h0YC5cblxuICAgVGhlIHJhaWwgaXMgZG9uZSBieSByZWRlZmluaW5nIHRoZSAtLWNoYWxrLSogdmFyaWFibGVzICpzY29wZWQgdG9cbiAgIC5jaGFsay1zaWRlYmFyKiByYXRoZXIgdGhhbiBieSByZXN0eWxpbmcgaXRzIGNoaWxkcmVuLiBFdmVyeSBydWxlXG4gICB1bmRlciB0aGVyZSByZWFkcyB0aGUgdmFyaWFibGVzIGZyb20gdGhlIGNhc2NhZGUsIHNvIHRoZSB3aG9sZVxuICAgc3VidHJlZSAtLSBmaWx0ZXIgYm94LCBuaWNrIG1lbnUsIHZvaWNlIGRvY2ssIGFuZFxuICAgdGhlIG1vYmlsZSBkcmF3ZXIsIHdoaWNoIGlzIHRoZSBzYW1lIGVsZW1lbnQgLS0gcmUtdGludHMgZnJvbSBvbmVcbiAgIGJsb2NrIGFuZCBzdGF5cyBjb3JyZWN0IHdoZW4gbmV3IHNpZGViYXIgY2hyb21lIGlzIGFkZGVkIGxhdGVyLlxuXG4gICBUaGUgZ3JhcGhpdGUgaXMgd2FybSByYXRoZXIgdGhhbiB0aGUgY29vbCBzbGF0ZSBpdCB3b3VsZCBiZSBpbiBhXG4gICBzY3JlZW5zaG90IG9mIGEgTWFjIG5vdGVzIGFwcDogbmV4dCB0byBhIGNyZWFtLXdoaXRlIHBhZ2UgYSBjb29sXG4gICByYWlsIHJlYWRzIGFzIGEgZm9yZWlnbiBwYW5lbCBib2x0ZWQgb24uXG5cbiAgIEVtcGhhc2lzIG9uIHRoZSBwYWdlIGlzIGluayBibGFjaywgbm90IGEgY29sb3IgLS0gdGl0bGVzIGdldCB3ZWlnaHRcbiAgIGFuZCBkYXJrbmVzcywgYW5kIHRoZSBibHVlIGlzIHNwZW50IG9ubHkgb24gbGlua3MgYW5kIGNvbnRyb2xzLFxuICAgd2hpY2ggaXMgd2hhdCBrZWVwcyBhIG1vc3RseS13aGl0ZSBVSSBjYWxtLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbltkYXRhLXRoZW1lPVwid2FybXdoaXRlXCJdIHtcbiAgLS1jaGFsay1iZzogICAgICAgICAgICNmY2ZiZjk7XG4gIC0tY2hhbGstYmctZWxldjogICAgICAjZjNmMWVjO1xuICAtLWNoYWxrLWJnLWVsZXYtMjogICAgI2U4ZTRkYztcbiAgLS1jaGFsay1mZzogICAgICAgICAgICMyYTI4MjQ7XG4gIC0tY2hhbGstZmctZGltOiAgICAgICAjNjc2MzVjO1xuICAvKiBJbmssIG5vdCBhIGh1ZTogb24gdGhpcyBncm91bmQgXCJicmlnaHRcIiBtZWFucyBkYXJrZXIgdGhhbiBib2R5XG4gICAgIHRleHQuICovXG4gIC0tY2hhbGstZmctYnJpZ2h0OiAgICAjMTAwZjBkO1xuICAtLWNoYWxrLWZnLW11dGVkOiAgICAgIzhkODg4MDtcbiAgLS1jaGFsay1ib3JkZXI6ICAgICAgICNlM2RlZDQ7XG4gIC0tY2hhbGstYWNjZW50OiAgICAgICAjMjU2M2ViO1xuICAtLWNoYWxrLXdhcm46ICAgICAgICAgI2IyNmEwMDtcbiAgLyogVGhlIGN1cnNvciByZWQgZnJvbSB0aGUgc291cmNlIHNjcmVlbnNob3RzOyBpdCBsYW5kcyBvbiBlcnJvcnNcbiAgICAgYmVjYXVzZSB0aGF0IGlzIHRoZSBvbmx5IHBsYWNlIGEgd2FybmluZyBjb2xvciBiZWxvbmdzIGhlcmUuICovXG4gIC0tY2hhbGstZXJyb3I6ICAgICAgICAjZDAzNDJjO1xuXG4gIGNvbG9yLXNjaGVtZTogbGlnaHQ7XG59XG5cbi8qIFNhbWUgcmVhc29uaW5nIGFzIHRoZSBvdGhlciBsaWdodCB0aGVtZXM6IGEgZmxhdCBwYWxlIGdyb3VuZCBuZWVkcyBhXG4gICByZWFsIHNoYWRvdyB0byBzZXBhcmF0ZSBmbG9hdGluZyBzdXJmYWNlcywgYW5kIHRoZSBkZWZhdWx0IDcwJSBibGFja1xuICAgc2NyaW0gc3RhaW5zIHJhdGhlciB0aGFuIGRpbXMuICovXG5bZGF0YS10aGVtZT1cIndhcm13aGl0ZVwiXSAuY2hhbGstbW9kYWwsXG5bZGF0YS10aGVtZT1cIndhcm13aGl0ZVwiXSAuY2hhbGstbW9kYWwtY2FyZCxcbltkYXRhLXRoZW1lPVwid2FybXdoaXRlXCJdIC5jaGFsay1wcmVzZW5jZS1tZW51LFxuW2RhdGEtdGhlbWU9XCJ3YXJtd2hpdGVcIl0gLmNoYWxrLXN0YXR1cy1tZW51IHtcbiAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDQyLCA0MCwgMzYsIDAuMTYpO1xufVxuXG5bZGF0YS10aGVtZT1cIndhcm13aGl0ZVwiXSAuY2hhbGstbW9kYWwtYmFja2Ryb3Age1xuICBiYWNrZ3JvdW5kOiByZ2JhKDQyLCA0MCwgMzYsIDAuNDIpO1xufVxuXG4vKiAtLS0tIHRoZSByYWlsLiBSZWRlZmluaW5nIHRoZSB2YXJpYWJsZXMgcmUtdGludHMgdGhlIHdob2xlIHN1YnRyZWU7XG4gICAgICAgIGBiYWNrZ3JvdW5kYCBpcyB3aGF0IHRoZSBlbGVtZW50IGl0c2VsZiBuZWVkcywgc2luY2UgdGhlXG4gICAgICAgIGRlc2t0b3Agc2lkZWJhciBkcmF3cyBubyBncm91bmQgb2YgaXRzIG93bi4gKi9cbltkYXRhLXRoZW1lPVwid2FybXdoaXRlXCJdIC5jaGFsay1zaWRlYmFyIHtcbiAgLS1jaGFsay1iZzogICAgICAgICAgICMyYjI5Mjc7XG4gIC0tY2hhbGstYmctZWxldjogICAgICAjM2EzODM1O1xuICAtLWNoYWxrLWJnLWVsZXYtMjogICAgIzQ1NDM0MDtcbiAgLS1jaGFsay1mZzogICAgICAgICAgICNkOGQ0Y2Q7XG4gIC0tY2hhbGstZmctZGltOiAgICAgICAjYThhMjlhO1xuICAvKiBOZWFyLXdoaXRlOiB0aGUgYWN0aXZlIGNoYW5uZWwgaXMgd2hpdGUgdGV4dCB3aXRoIGEgd2hpdGUgZWRnZSBvblxuICAgICBhIGxpZnRlZCByb3csIHdoaWNoIGlzIHRoZSByYWlsJ3Mgd2hvbGUgc2VsZWN0ZWQgc3RhdGUuICovXG4gIC0tY2hhbGstZmctYnJpZ2h0OiAgICAjZjVmMmVjO1xuICAtLWNoYWxrLWZnLW11dGVkOiAgICAgIzgzN2Q3NDtcbiAgLS1jaGFsay1ib3JkZXI6ICAgICAgICMzZDNhMzc7XG4gIC0tY2hhbGstYWNjZW50OiAgICAgICAjNmVhOGZmO1xuICAtLWNoYWxrLXdhcm46ICAgICAgICAgI2UwYTMzYztcbiAgLS1jaGFsay1lcnJvcjogICAgICAgICNmZjgwNzk7XG5cbiAgLyogTmljayBodWVzIGFyZSB0dW5lZCBmb3IgdGhlIHBhZ2U7IG9uIHRoZSByYWlsIHRoZXkgbmVlZCB0aGUgZGFya1xuICAgICBncm91bmQgdHJlYXRtZW50LCBvciB0aGUgc3dhdGNoIGluIHRoZSBuaWNrIG1lbnUgZ29lcyB0byBtdWQuICovXG4gIC0tbmljay1sOiA2OCU7XG5cbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmcpO1xufVxuXG4vKiBQaWNrZXIgc3dhdGNoOiB0aHJlZSBzdG9wcywgYmVjYXVzZSB0aGUgc3BsaXQgaXMgdGhlIHRoZW1lLiAqL1xuLmNoYWxrLXByb2ZpbGUtdGhlbWUtc3dhdGNoLXByZXZpZXctLXdhcm13aGl0ZSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsXG4gICAgIzJiMjkyNyAwJSwgIzJiMjkyNyA0MCUsXG4gICAgI2ZjZmJmOSA0MCUsICNmY2ZiZjkgNzUlLFxuICAgICMyNTYzZWIgNzUlLCAjMjU2M2ViIDEwMCUpO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIGF6ZXJvdGg6IGdvbGQgb24gZm9yZXN0LWRhcmsgZ3JlZW5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTmFtZWQgZm9yIHRoZSB3b3JsZCByYXRoZXIgdGhhbiB0aGUgZ2FtZSwgdGhlIHdheSBgbGNhcnNgIGlzIG5hbWVkXG4gICBmb3IgdGhlIHBhbmVsIHJhdGhlciB0aGFuIHRoZSBzaG93LlxuXG4gICBUaGUgd29ybGQgaXMgZ3JlZW4gLS0gRWx3eW5uLCBBc2hlbnZhbGUsIHRoZSBsb2dpbiBmb3Jlc3RzIC0tIHNvXG4gICB0aGUgZ3JvdW5kIGlzIGEgZ3JlZW4tY2FzdCBmb3Jlc3QgYmxhY2sgcmF0aGVyIHRoYW4gYSBuZXV0cmFsIG9uZSxcbiAgIGFuZCB0aGUgbGluay9hY3RpdmUgY29sb3IgaXMgdGhlIGdhbWUncyB1bmNvbW1vbi1pdGVtIGdyZWVuXG4gICAoIzFlZmYwMCwgdGFtZWQgYSBzdGVwOiBmdWxsLXNhdHVyYXRpb24gbWF4LWdyZWVuIGlzIHVucmVhZGFibGUgYXNcbiAgIHJ1bm5pbmcgbGluayB0ZXh0KS4gVGhlIHJlc3QgaXMgdGhlIGZpeGVkIGNhc3QsIGVhY2ggaHVlIG1lYW5pbmdcbiAgIHdoYXQgaXQgbWVhbnMgaW4gdGhlIGdhbWU6IHF1ZXN0IGdvbGQgZm9yIGVtcGhhc2lzLCBsZWdlbmRhcnlcbiAgIG9yYW5nZSB3YXJucywgcmVkIGZvciBlcnJvcnMuIFNwZW5kaW5nIHRoZW0gb24gdGhlIHdyb25nIHJvbGVzIGlzXG4gICB3aGF0IHdvdWxkIG1ha2UgaXQgbG9vayBsaWtlIGEgZ2VuZXJpYyBkYXJrIHRoZW1lIHdpdGggYW4gYWNjZW50LlxuXG4gICBUaGUgYnJvbnplIGZyYW1lcyBzdGF5OiBnb2xkLW9uLWdyZWVuIG92ZXIgYSBtZXRhbC1lZGdlZCBwYW5lbCBpc1xuICAgdGhlIGRlZmF1bHQgVUkgb3ZlciBhIGZvcmVzdCBzY2VuZSwgd2hpY2ggaXMgbW9zdCBvZiB3aGF0IHRoZSBnYW1lXG4gICBsb29rcyBsaWtlLlxuXG4gICBCb2R5IHRleHQgaXMgcGFyY2htZW50IGJvbmUsIG5vdCBnb2xkOiBhIGZ1bGwgY2hhdCBsb2cgaW4gI2ZmZDEwMFxuICAgaXMgYSBtaWdyYWluZSwgYW5kIHRoZSBnb2xkIG9ubHkgcmVhZHMgYXMgZW1waGFzaXMgd2hpbGUgbW9zdCBvZlxuICAgdGhlIHNjcmVlbiBpc24ndCBnb2xkLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbltkYXRhLXRoZW1lPVwiYXplcm90aFwiXSB7XG4gIC0tY2hhbGstYmc6ICAgICAgICAgICAjMGIwZTA4O1xuICAtLWNoYWxrLWJnLWVsZXY6ICAgICAgIzE2MWMxMDtcbiAgLS1jaGFsay1iZy1lbGV2LTI6ICAgICMyMzJkMTg7XG4gIC0tY2hhbGstZmc6ICAgICAgICAgICAjZWFlNWNmO1xuICAtLWNoYWxrLWZnLWRpbTogICAgICAgI2E5YWI4NTtcbiAgLyogUXVlc3QgZ29sZC4gKi9cbiAgLS1jaGFsay1mZy1icmlnaHQ6ICAgICNmZmQxMDA7XG4gIC0tY2hhbGstZmctbXV0ZWQ6ICAgICAjN2Y4NzYzO1xuICAvKiBCcm9uemUsIHRoZSBmcmFtZSBtZXRhbC4gKi9cbiAgLS1jaGFsay1ib3JkZXI6ICAgICAgICM2YjU0MjQ7XG4gIC8qIFVuY29tbW9uIGdyZWVuLCBwdWxsZWQgZG93biBmcm9tICMxZWZmMDAuICovXG4gIC0tY2hhbGstYWNjZW50OiAgICAgICAjMmVkZDRmO1xuICAvKiBMZWdlbmRhcnkgb3JhbmdlLCB1bmNoYW5nZWQgLS0gaXQgaXMgYWxyZWFkeSBhIHdhcm5pbmcgY29sb3IuICovXG4gIC0tY2hhbGstd2FybjogICAgICAgICAjZmY4MDAwO1xuICAtLWNoYWxrLWVycm9yOiAgICAgICAgI2ZmNGM0YztcblxuICBjb2xvci1zY2hlbWU6IGRhcms7XG59XG5cbltkYXRhLXRoZW1lPVwiYXplcm90aFwiXSAuY2hhbGstc2lkZWJhci1pdGVtLS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDQ2LCAyMjEsIDc5LCAwLjEyKTtcbn1cblxuLyogVGhlIGdpbGRlZCBmcmFtZTogYnJvbnplIGVkZ2Ugd2l0aCBhIHRoaW4gZ29sZCBpbm5lciBsaW5lLiBUd29cbiAgIG1ldGFscyBpcyB3aGF0IHNlcGFyYXRlcyBhIGdhbWUgcGFuZWwgZnJvbSBhIHBsYWluIGJvcmRlcmVkIGJveCxcbiAgIGFuZCBpdCBjb3N0cyBvbmUgaW5zZXQgc2hhZG93LiAqL1xuW2RhdGEtdGhlbWU9XCJhemVyb3RoXCJdIC5jaGFsay1tb2RhbCxcbltkYXRhLXRoZW1lPVwiYXplcm90aFwiXSAuY2hhbGstbW9kYWwtY2FyZCB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNhNTgxM2E7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwgMjA5LCAwLCAwLjM1KSxcbiAgICAgICAgICAgICAgMCA2cHggMjRweCByZ2JhKDAsIDAsIDAsIDAuNyk7XG59XG5cbi5jaGFsay1wcm9maWxlLXRoZW1lLXN3YXRjaC1wcmV2aWV3LS1hemVyb3RoIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZyxcbiAgICAjMGIwZTA4IDAlLCAjMGIwZTA4IDUwJSxcbiAgICAjMmVkZDRmIDUwJSwgIzJlZGQ0ZiAxMDAlKTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBkYXJrb3JkOiB0aGUgZmFtaWxpYXIgZGFyayBjaGF0IGFwcCwgdHdvIHNoYWRlcyBkYXJrZXJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRGlzY29yZCdzIGRhcmsgbW9kZSBpcyBhIHRocmVlLXN0ZXAgbGFkZGVyIG9mIGNvb2wgZ3JleXM6XG4gICAjMzEzMzM4IChjaGF0KSwgIzJiMmQzMSAoc2lkZWJhciksICMxZTFmMjIgKHJhaWwpLiBFdmVyeVxuICAgc3VyZmFjZSBoZXJlIGRyb3BzIHR3byBydW5ncyAtLSB0aGUgbGFkZGVyIGlzIGV4dGVuZGVkIHBhc3RcbiAgIHRoZSByYWlsIGdyZXkgd2l0aCB0aGUgc2FtZSBzcGFjaW5nICgjMTExMjE0KSwgc28gdGhlIGJhc2VcbiAgIGdyb3VuZCBzaXRzIGJlbG93IERpc2NvcmQncyBkYXJrZXN0IHN1cmZhY2Ugd2hpbGUgdGhlIGRlcHRoXG4gICByZWxhdGlvbnNoaXBzIHN0aWxsIHJlYWQgdGhlIHNhbWUgd2F5LlxuXG4gICBCbHVycGxlICgjNTg2NWYyKSBzdGF5cyB0aGUgYWNjZW50IGJ1dCBpcyBvbmx5IDMuNzoxIGFzIHRleHQgb25cbiAgIHRoaXMgZ3JvdW5kLCBzbyB3aGVyZSBpdCBjb2xvcnMgdGV4dCBpdCBpcyBsaWZ0ZWQgYSBzdGVwLCBzYW1lXG4gICB0cmVhdG1lbnQgYXMgdG9reW8tbmlnaHQncyBjb21tZW50IHRvbmU7IHRoZSBodWUgaXMgdW5jaGFuZ2VkLlxuICAgVGhlIHJlZCBnb3QgdGhlIHNhbWUgbGlmdC5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5bZGF0YS10aGVtZT1cImRhcmtvcmRcIl0ge1xuICAtLWNoYWxrLWJnOiAgICAgICAgICAgIzExMTIxNDtcbiAgLS1jaGFsay1iZy1lbGV2OiAgICAgICMxZTFmMjI7XG4gIC0tY2hhbGstYmctZWxldi0yOiAgICAjMmIyZDMxO1xuICAtLWNoYWxrLWZnOiAgICAgICAgICAgI2RiZGVlMTtcbiAgLS1jaGFsay1mZy1kaW06ICAgICAgICNiNWJhYzE7XG4gIC0tY2hhbGstZmctYnJpZ2h0OiAgICAjZjJmM2Y1O1xuICAtLWNoYWxrLWZnLW11dGVkOiAgICAgIzk0OWJhNDtcbiAgLS1jaGFsay1ib3JkZXI6ICAgICAgICMyYjJkMzE7XG4gIC0tY2hhbGstYWNjZW50OiAgICAgICAjN2Q4N2Y1O1xuICAtLWNoYWxrLXdhcm46ICAgICAgICAgI2YwYjIzMjtcbiAgLS1jaGFsay1lcnJvcjogICAgICAgICNmMTYwNjM7XG5cbiAgY29sb3Itc2NoZW1lOiBkYXJrO1xufVxuXG5bZGF0YS10aGVtZT1cImRhcmtvcmRcIl0gLmNoYWxrLXNpZGViYXItaXRlbS0tYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogcmdiYSg4OCwgMTAxLCAyNDIsIDAuMTgpO1xufVxuXG4uY2hhbGstcHJvZmlsZS10aGVtZS1zd2F0Y2gtcHJldmlldy0tZGFya29yZCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsXG4gICAgIzExMTIxNCAwJSwgIzExMTIxNCA1MCUsXG4gICAgIzU4NjVmMiA1MCUsICM1ODY1ZjIgMTAwJSk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgZXhjaGFsazogdGhlIGNvcnBvcmF0ZSBtZWV0aW5ncyBhcHAsIGRhcmsgbW9kZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUcnVlLWJsYWNrIHdpbmRvdyBjaHJvbWUgd2l0aCBhIHR3by1zdGVwIGdyZXkgbGFkZGVyIGZvciB0aGVcbiAgIHBhbmVscyAoIzFhMWExYSBsaXN0LCAjMjYyNjI2IGVsZXZhdGVkKSwgbmVhci13aGl0ZSB0ZXh0LCBhbmRcbiAgIHNreS1ibHVlIGxpbmtzIC0tIHRoZSBkYXJrIHRoZW1lIG9mIHRoZSBiaWcgdmlkZW8tbWVldGluZ3NcbiAgIGNsaWVudC4gVGhlIGdvbGQgKCNmYzlkMDMpIGlzIGl0cyBmYXZvcml0ZXMgc3RhcjsgaXQgZG91Ymxlc1xuICAgYXMgdGhlIHdhcm4gdG9uZSBzaW5jZSB1cmdlbmN5IHJlYWRzIHdlbGwgaW4gdGhhdCBhbWJlci5cblxuICAgVGhlIHJlZCBpcyBsaWZ0ZWQgYSBzdGVwIGZyb20gdGhlIHNvdXJjZSBwYWxldHRlJ3MgI2Y3NTk0ZFxuICAgKDQuOToxIG9uIGJsYWNrKSBzbyBlcnJvciB0ZXh0IGNsZWFycyB0aGUgbXV0ZWQtdGllciBmbG9vci5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5bZGF0YS10aGVtZT1cImV4Y2hhbGtcIl0ge1xuICAtLWNoYWxrLWJnOiAgICAgICAgICAgIzAwMDAwMDtcbiAgLS1jaGFsay1iZy1lbGV2OiAgICAgICMxYTFhMWE7XG4gIC0tY2hhbGstYmctZWxldi0yOiAgICAjMjYyNjI2O1xuICAtLWNoYWxrLWZnOiAgICAgICAgICAgI2Y3ZjdmNztcbiAgLS1jaGFsay1mZy1kaW06ICAgICAgICNiMmIyYjI7XG4gIC0tY2hhbGstZmctYnJpZ2h0OiAgICAjZmZmZmZmO1xuICAtLWNoYWxrLWZnLW11dGVkOiAgICAgIzhmOGY4ZjtcbiAgLS1jaGFsay1ib3JkZXI6ICAgICAgICMyNjI2MjY7XG4gIC0tY2hhbGstYWNjZW50OiAgICAgICAjNjRiNGZhO1xuICAtLWNoYWxrLXdhcm46ICAgICAgICAgI2ZjOWQwMztcbiAgLS1jaGFsay1lcnJvcjogICAgICAgICNmYzZiNjA7XG5cbiAgY29sb3Itc2NoZW1lOiBkYXJrO1xufVxuXG4vKiBBY3RpdmUgc2lkZWJhciBpdGVtOiB0aGUgc291cmNlIGFwcCBoaWdobGlnaHRzIHRoZSBzZWxlY3RlZFxuICAgY29udmVyc2F0aW9uIHdpdGggYSBuZXV0cmFsIGdyZXkgcGlsbCwgbm90IGFuIGFjY2VudCB3YXNoLiAqL1xuW2RhdGEtdGhlbWU9XCJleGNoYWxrXCJdIC5jaGFsay1zaWRlYmFyLWl0ZW0tLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMCk7XG59XG5cbi5jaGFsay1wcm9maWxlLXRoZW1lLXN3YXRjaC1wcmV2aWV3LS1leGNoYWxrIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZyxcbiAgICAjMDAwMDAwIDAlLCAjMDAwMDAwIDUwJSxcbiAgICAjNjRiNGZhIDUwJSwgIzY0YjRmYSAxMDAlKTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICB2c2NvZGUtbGlnaHQ6IFZTIENvZGUncyBcIkxpZ2h0IChWaXN1YWwgU3R1ZGlvKVwiIHRoZW1lXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFB1cmUgd2hpdGUgZWRpdG9yIGdyb3VuZCwgYmxhY2sgdGV4dCwgdGhlICMwMDdhY2Mgc3RhdHVzLWJhclxuICAgYmx1ZSBhcyBhY2NlbnQsIGFuZCB0aGUgY2xhc3NpYyBuYXZ5IGtleXdvcmQgdG9uZSBmb3IgZW1waGFzaXMuXG4gICBHcmV5cyBjb21lIHN0cmFpZ2h0IGZyb20gdGhlIHdvcmtiZW5jaCBwYWxldHRlOiAjZjNmM2YzIHdpZGdldFxuICAgZ3JvdW5kLCAjZThlOGU4IGxpc3QgaG92ZXIsICNkNGQ0ZDQgbWVudSBib3JkZXIuXG5cbiAgIFRoZSBvbmx5IGRlcGFydHVyZXMgYXJlIGNvbnRyYXN0IGZpeGVzLCBzYW1lIHBvbGljeSBhcyB0aGVcbiAgIG90aGVyIHRoZW1lczogVlMgQ29kZSdzICNiZjg4MDMgd2FybmluZyBhbWJlciBpcyAzLjE6MSBvblxuICAgd2hpdGUsIGRhcmtlbmVkIHRvICM5YTY3MDAgdG8gY2xlYXIgNC41OjEgd2l0aCB0aGUgaHVlIGtlcHQ7XG4gICBlcnJvciB1c2VzIHRoZSB0b2tlbiBwYWxldHRlJ3MgXCJpbnZhbGlkXCIgcmVkLCB3aGljaCBhbHJlYWR5XG4gICBjbGVhcnMuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuW2RhdGEtdGhlbWU9XCJ2c2NvZGUtbGlnaHRcIl0ge1xuICAtLWNoYWxrLWJnOiAgICAgICAgICAgI2ZmZmZmZjtcbiAgLS1jaGFsay1iZy1lbGV2OiAgICAgICNmM2YzZjM7XG4gIC0tY2hhbGstYmctZWxldi0yOiAgICAjZThlOGU4O1xuICAtLWNoYWxrLWZnOiAgICAgICAgICAgIzAwMDAwMDtcbiAgLS1jaGFsay1mZy1kaW06ICAgICAgICM2ZjZmNmY7XG4gIC0tY2hhbGstZmctYnJpZ2h0OiAgICAjMDAwMDgwO1xuICAtLWNoYWxrLWZnLW11dGVkOiAgICAgIzc2NzY3NjtcbiAgLS1jaGFsay1ib3JkZXI6ICAgICAgICNkNGQ0ZDQ7XG4gIC0tY2hhbGstYWNjZW50OiAgICAgICAjMDA3YWNjO1xuICAtLWNoYWxrLXdhcm46ICAgICAgICAgIzlhNjcwMDtcbiAgLS1jaGFsay1lcnJvcjogICAgICAgICNjZDMxMzE7XG5cbiAgY29sb3Itc2NoZW1lOiBsaWdodDtcbn1cblxuLyogRmxhdCB3aGl0ZSBuZWVkcyBlbGV2YXRpb24gb24gZmxvYXRpbmcgc3VyZmFjZXMsIHNhbWUgYXMgdGhlIG90aGVyXG4gICBsaWdodCB0aGVtZXMgLS0gVlMgQ29kZSBpdHNlbGYgZ2l2ZXMgaXRzIHdpZGdldHMgdGhpcyBzaGFkb3cuICovXG5bZGF0YS10aGVtZT1cInZzY29kZS1saWdodFwiXSAuY2hhbGstbW9kYWwsXG5bZGF0YS10aGVtZT1cInZzY29kZS1saWdodFwiXSAuY2hhbGstbW9kYWwtY2FyZCxcbltkYXRhLXRoZW1lPVwidnNjb2RlLWxpZ2h0XCJdIC5jaGFsay1wcmVzZW5jZS1tZW51LFxuW2RhdGEtdGhlbWU9XCJ2c2NvZGUtbGlnaHRcIl0gLmNoYWxrLXN0YXR1cy1tZW51IHtcbiAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMTYpO1xufVxuXG4vKiBTb2Z0ZW4gdGhlIGRlZmF1bHQgNzAlIHNjcmltIHNvIGl0IGRpbXMgdGhlIHdoaXRlIGFwcCByYXRoZXIgdGhhblxuICAgcGx1bmdpbmcgaXQsIHNhbWUgcmVhc29uaW5nIGFzIHRoZSBvdGhlciBsaWdodCB0aGVtZXMuICovXG5bZGF0YS10aGVtZT1cInZzY29kZS1saWdodFwiXSAuY2hhbGstbW9kYWwtYmFja2Ryb3Age1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNDIpO1xufVxuXG4vKiBWUyBDb2RlIGhpZ2hsaWdodHMgdGhlIGFjdGl2ZSBsaXN0IHJvdyB3aXRoIGEgc29mdCBibHVlIHdhc2guICovXG5bZGF0YS10aGVtZT1cInZzY29kZS1saWdodFwiXSAuY2hhbGstc2lkZWJhci1pdGVtLS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEyMiwgMjA0LCAwLjEyKTtcbn1cblxuLmNoYWxrLXByb2ZpbGUtdGhlbWUtc3dhdGNoLXByZXZpZXctLXZzY29kZS1saWdodCB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsXG4gICAgI2ZmZmZmZiAwJSwgI2ZmZmZmZiA1MCUsXG4gICAgIzAwN2FjYyA1MCUsICMwMDdhY2MgMTAwJSk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgY2F0cHB1Y2Npbi1tb2NoYTogdGhlIHBhc3RlbCBkYXJrIGZsYXZvclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCYXNlIGlzIHRoZSBncm91bmQsIFN1cmZhY2UwIGFuZCBTdXJmYWNlMSBhcmUgdGhlIHR3b1xuICAgZWxldmF0aW9uIHN0ZXBzLCBUZXh0IGlzIHRoZSBib2R5IC0tIHRoZSBtYXBwaW5nIHRoZSBwYWxldHRlXG4gICBwdWJsaXNoZXMgZm9yIGl0cyBvd24gcG9ydHMuIE1hdXZlIGlzIENhdHBwdWNjaW4ncyBkZWZhdWx0XG4gICBhY2NlbnQgYW5kIGtlZXBzIHRoYXQgam9iIGhlcmU7IGVtcGhhc2lzIGdvZXMgdG8gUm9zZXdhdGVyXG4gICBpbnN0ZWFkLCBzbyBhIHRpdGxlIHJlYWRzIGJyaWdodGVyIHRoYW4gdGhlIGFjY2VudCByYXRoZXJcbiAgIHRoYW4gY29tcGV0aW5nIHdpdGggaXQuXG5cbiAgIFR3byB0b25lcyBtb3ZlZCBvbmUgcnVuZyB1cCB0aGUgcGFsZXR0ZSdzIG93biBsYWRkZXIgcmF0aGVyXG4gICB0aGFuIGJlaW5nIHJlY29sb3JlZDogU3VidGV4dDAgYW5kIE92ZXJsYXkxIGNsZWFyIGNoYWxrJ3NcbiAgIGZsb29ycyBvbiBCYXNlIGJ1dCBub3Qgb24gU3VyZmFjZTEsIHdoaWNoIGlzIGEgcmVhbCB0ZXh0XG4gICBncm91bmQgaGVyZSAoaG92ZXIgcm93cywgY29kZSBibG9ja3MpLiBTdWJ0ZXh0MSBhbmQgT3ZlcmxheTJcbiAgIGNsZWFyIGJvdGguXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuW2RhdGEtdGhlbWU9XCJjYXRwcHVjY2luLW1vY2hhXCJdIHtcbiAgLS1jaGFsay1iZzogICAgICAgICAgICMxZTFlMmU7XG4gIC0tY2hhbGstYmctZWxldjogICAgICAjMzEzMjQ0O1xuICAtLWNoYWxrLWJnLWVsZXYtMjogICAgIzQ1NDc1YTtcbiAgLS1jaGFsay1mZzogICAgICAgICAgICNjZGQ2ZjQ7XG4gIC0tY2hhbGstZmctZGltOiAgICAgICAjYmFjMmRlO1xuICAtLWNoYWxrLWZnLWJyaWdodDogICAgI2Y1ZTBkYztcbiAgLS1jaGFsay1mZy1tdXRlZDogICAgICM5Mzk5YjI7XG4gIC0tY2hhbGstYm9yZGVyOiAgICAgICAjNDU0NzVhO1xuICAtLWNoYWxrLWFjY2VudDogICAgICAgI2NiYTZmNztcbiAgLS1jaGFsay13YXJuOiAgICAgICAgICNmOWUyYWY7XG4gIC0tY2hhbGstZXJyb3I6ICAgICAgICAjZjM4YmE4O1xuXG4gIGNvbG9yLXNjaGVtZTogZGFyaztcbn1cblxuW2RhdGEtdGhlbWU9XCJjYXRwcHVjY2luLW1vY2hhXCJdIC5jaGFsay1zaWRlYmFyLWl0ZW0tLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjAzLCAxNjYsIDI0NywgMC4xNCk7XG59XG5cbi5jaGFsay1wcm9maWxlLXRoZW1lLXN3YXRjaC1wcmV2aWV3LS1jYXRwcHVjY2luLW1vY2hhIHtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZyxcbiAgICAjMWUxZTJlIDAlLCAjMWUxZTJlIDUwJSxcbiAgICAjY2JhNmY3IDUwJSwgI2NiYTZmNyAxMDAlKTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBjYXRwcHVjY2luLWxhdHRlOiB0aGUgcGFzdGVsIGxpZ2h0IGZsYXZvclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUaGUgbGlnaHQgZmxhdm9yIGludmVydHMgdGhlIGxhZGRlciAtLSBCYXNlIGlzIHRoZSBwYWdlIGFuZFxuICAgTWFudGxlL0NydXN0IGFyZSB0aGUgc2hhZGVzIHVuZGVyIGl0LCB3aGljaCBpcyB0aGUgZGlyZWN0aW9uXG4gICBjaGFsaydzIG90aGVyIGxpZ2h0IHRoZW1lcyBhbHJlYWR5IGdvIC0tIGFuZCBTdXJmYWNlMCBkcmF3c1xuICAgdGhlIGJvcmRlcnMuXG5cbiAgIExhdHRlIGlzIHR1bmVkIGZvciBzeW50YXggb24gYW4gZWRpdG9yIGdyb3VuZCwgc28gc2V2ZXJhbCBvZlxuICAgaXRzIHRvbmVzIGxhbmQgYmV0d2VlbiAyLjM6MSBhbmQgNC4zOjEgYXMgVUkgdGV4dCBvbiAjZWZmMWY1LlxuICAgRm91ciBjb250cmFzdCBmaXhlcywgdGhlIHVzdWFsIHBvbGljeSBvZiBrZWVwaW5nIHRoZSBodWUgYW5kXG4gICBtb3ZpbmcgdGhlIGxpZ2h0bmVzczogU3VidGV4dDAgKDQuMykgZ2l2ZXMgd2F5IHRvIFN1YnRleHQxXG4gICBhbmQgT3ZlcmxheTEgKDIuOCkgdG8gT3ZlcmxheTIsIGJvdGggc3RpbGwgcGFsZXR0ZSB0b25lczsgdGhlXG4gICB5ZWxsb3cgKDIuMykgaXMgZGFya2VuZWQgb3V0cmlnaHQsIHRoZSBzYW1lIHRyZWF0bWVudCB0aGVcbiAgIG90aGVyIGxpZ2h0IHRoZW1lcycgYW1iZXJzIGdvdDsgYW5kIHRoZSBibHVlIGRyb3BzIG9uZSBzdGVwXG4gICBmcm9tICMxZTY2ZjUsIHdoaWNoIGlzIGEgaGFpciBzaG9ydCBhdCA0LjMgYXMgbGluayB0ZXh0LlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbltkYXRhLXRoZW1lPVwiY2F0cHB1Y2Npbi1sYXR0ZVwiXSB7XG4gIC0tY2hhbGstYmc6ICAgICAgICAgICAjZWZmMWY1O1xuICAtLWNoYWxrLWJnLWVsZXY6ICAgICAgI2U2ZTllZjtcbiAgLS1jaGFsay1iZy1lbGV2LTI6ICAgICNkY2UwZTg7XG4gIC0tY2hhbGstZmc6ICAgICAgICAgICAjNGM0ZjY5O1xuICAtLWNoYWxrLWZnLWRpbTogICAgICAgIzVjNWY3NztcbiAgLyogT24gYSBsaWdodCBncm91bmQgXCJicmlnaHRcIiBtZWFucyB0aGUgZmxhdm9yJ3Mgc2lnbmF0dXJlXG4gICAgIHB1cnBsZSwgbm90IGEgbGlnaHRlciB0b25lIC0tIExhdHRlIGhhcyBub3RoaW5nIGRhcmtlciB0aGFuXG4gICAgIGl0cyBvd24gVGV4dCB0byBlbXBoYXNpemUgd2l0aC4gKi9cbiAgLS1jaGFsay1mZy1icmlnaHQ6ICAgICM4ODM5ZWY7XG4gIC0tY2hhbGstZmctbXV0ZWQ6ICAgICAjN2M3ZjkzO1xuICAtLWNoYWxrLWJvcmRlcjogICAgICAgI2NjZDBkYTtcbiAgLS1jaGFsay1hY2NlbnQ6ICAgICAgICMxYjYwZWE7XG4gIC0tY2hhbGstd2FybjogICAgICAgICAjOGY1NjA3O1xuICAtLWNoYWxrLWVycm9yOiAgICAgICAgI2QyMGYzOTtcblxuICBjb2xvci1zY2hlbWU6IGxpZ2h0O1xufVxuXG4vKiBTYW1lIGFzIHRoZSBvdGhlciBsaWdodCB0aGVtZXM6IGEgZmxhdCBwYWxlIGdyb3VuZCBuZWVkcyBhIHJlYWxcbiAgIHNoYWRvdyB0byBzZXBhcmF0ZSBmbG9hdGluZyBzdXJmYWNlcywgYW5kIHRoZSBkZWZhdWx0IDcwJSBibGFja1xuICAgc2NyaW0gc3RhaW5zIHJhdGhlciB0aGFuIGRpbXMuICovXG5bZGF0YS10aGVtZT1cImNhdHBwdWNjaW4tbGF0dGVcIl0gLmNoYWxrLW1vZGFsLFxuW2RhdGEtdGhlbWU9XCJjYXRwcHVjY2luLWxhdHRlXCJdIC5jaGFsay1tb2RhbC1jYXJkLFxuW2RhdGEtdGhlbWU9XCJjYXRwcHVjY2luLWxhdHRlXCJdIC5jaGFsay1wcmVzZW5jZS1tZW51LFxuW2RhdGEtdGhlbWU9XCJjYXRwcHVjY2luLWxhdHRlXCJdIC5jaGFsay1zdGF0dXMtbWVudSB7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSg3NiwgNzksIDEwNSwgMC4xNik7XG59XG5cbltkYXRhLXRoZW1lPVwiY2F0cHB1Y2Npbi1sYXR0ZVwiXSAuY2hhbGstbW9kYWwtYmFja2Ryb3Age1xuICBiYWNrZ3JvdW5kOiByZ2JhKDc2LCA3OSwgMTA1LCAwLjQyKTtcbn1cblxuW2RhdGEtdGhlbWU9XCJjYXRwcHVjY2luLWxhdHRlXCJdIC5jaGFsay1zaWRlYmFyLWl0ZW0tLWFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjcsIDk2LCAyMzQsIDAuMTIpO1xufVxuXG4uY2hhbGstcHJvZmlsZS10aGVtZS1zd2F0Y2gtcHJldmlldy0tY2F0cHB1Y2Npbi1sYXR0ZSB7XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsXG4gICAgI2VmZjFmNSAwJSwgI2VmZjFmNSA1MCUsXG4gICAgIzg4MzllZiA1MCUsICM4ODM5ZWYgMTAwJSk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGhhc2UgOS43ZjogcGVyLXVzZXIgbmljayBjb2xvcnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQSBuYW1lJ3MgSFVFIGlzIHBlci11c2VyOyBzYXR1cmF0aW9uIGFuZCBsaWdodG5lc3MgY29tZSBmcm9tIHRoZVxuICAgdGhlbWUsIHNvIGEgc2luZ2xlIHN0b3JlZCB2YWx1ZSBwZXIgdXNlciBzdGF5cyByZWFkYWJsZSBvbiBldmVyeVxuICAgZ3JvdW5kIC0tIGluY2x1ZGluZyB0aGVtZXMgYWRkZWQgbGF0ZXIuIFNlZSB3ZWIvc3JjL2NoYXQvbmlja2NvbG9yLnRzXG4gICBmb3Igd2h5IGh1ZS1vbmx5LlxuXG4gICBUaGUgaHVlIGFycml2ZXMgaW4gYSBmdWxsIGlubGluZSBkZWNsYXJhdGlvblxuICAgKGNvbG9yOiBoc2woNjUgdmFyKC0tbmljay1zKSB2YXIoLS1uaWNrLWwpKSksIE5PVCBhcyBhbiBpbmxpbmVcbiAgIC0tbmljay1oIHRoYXQgdGhlc2UgcnVsZXMgcmVhZDogc29tZSBXZWJLaXQgYnVpbGRzIGRyb3AgY3VzdG9tXG4gICBwcm9wZXJ0aWVzIGFzc2lnbmVkIHRocm91Z2ggc3R5bGUuY3NzVGV4dCwgd2hpY2ggaXMgaG93IFByZWFjdFxuICAgYXBwbGllcyBhIHN0cmluZyBzdHlsZSwgYW5kIGV2ZXJ5IG5hbWUgZmVsbCBiYWNrIHRvIG9uZSBodWUgdGhlcmUuXG4gICBUaGUgLS1uaWNrLWggZmFsbGJhY2tzIGJlbG93IHRoZXJlZm9yZSBvbmx5IGV2ZXIgcGFpbnQgYW4gZWxlbWVudFxuICAgd2hvc2UgaW5saW5lIHN0eWxlIGlzIG1pc3NpbmcgZW50aXJlbHkuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogRGFyayBncm91bmRzOiBsaWdodCwgbW9kZXJhdGVseSBzYXR1cmF0ZWQgdGV4dC4gKi9cbjpyb290IHtcbiAgLS1uaWNrLXM6IDY1JTtcbiAgLS1uaWNrLWw6IDY4JTtcbn1cblxuLyogTGlnaHQgZ3JvdW5kcyBuZWVkIHRoZSBpbnZlcnNlOiBkYXJrZXIgYW5kIGEgdG91Y2ggbW9yZSBzYXR1cmF0ZWQsXG4gICBvciB0aGUgbGFiZWxzIHdhc2ggb3V0IGFnYWluc3QgbmVhci13aGl0ZS4gKi9cbltkYXRhLXRoZW1lPVwibGlnaHRcIl0sXG5bZGF0YS10aGVtZT1cInNuYXp6eS1saWdodFwiXSxcbltkYXRhLXRoZW1lPVwid2FybXdoaXRlXCJdLFxuW2RhdGEtdGhlbWU9XCJ2c2NvZGUtbGlnaHRcIl0sXG5bZGF0YS10aGVtZT1cImNhdHBwdWNjaW4tbGF0dGVcIl0ge1xuICAtLW5pY2stczogNjglO1xuICAtLW5pY2stbDogMzIlO1xufVxuXG4uY2hhbGstbWVzc2FnZS1zZW5kZXItLXRpbnRlZCB7XG4gIGNvbG9yOiBoc2wodmFyKC0tbmljay1oLCAyMTApIHZhcigtLW5pY2stcykgdmFyKC0tbmljay1sKSk7XG59XG5cbi8qIDQ3LTU6IHRoZSBzYW1lIHRpbnQgb3V0c2lkZSB0aGUgbWVzc2FnZSBmZWVkIC0tIHJvc3RlciByb3dzLCB2b2ljZVxuICAgb2NjdXBhbnRzLCB0aGUgbWVtYmVycyBwYW5lbC4gRGVjbGFyZWQgaGVyZSwgYWZ0ZXIgdGhlIHBlci1zdXJmYWNlIG5hbWVcbiAgIHJ1bGVzIGl0IGhhcyB0byBiZWF0ICguY2hhbGstbWVtYmVycy1oYW5kbGUgc2V0cyBpdHMgb3duIGNvbG9yIGF0IGVxdWFsXG4gICBzcGVjaWZpY2l0eSksIHNvIHNvdXJjZSBvcmRlciBzZXR0bGVzIGl0IHdpdGhvdXQgIWltcG9ydGFudC4gKi9cbi5jaGFsay1uaWNrLXRpbnRlZCB7XG4gIGNvbG9yOiBoc2wodmFyKC0tbmljay1oLCAyMTApIHZhcigtLW5pY2stcykgdmFyKC0tbmljay1sKSk7XG59XG5cbi8qIFNtYWxsIGlubGluZSBzd2F0Y2ggdXNlZCBpbiB0aGUgcHJvZmlsZSBwaWNrZXIgYW5kIHRoZSByb3N0ZXIgbWVudSwgc29cbiAgIGEgY29sb3IgY2FuIGJlIHByZXZpZXdlZCBleGFjdGx5IGFzIGNoYXQgd2lsbCByZW5kZXIgaXQuICovXG4uY2hhbGstbmljay1zd2F0Y2gge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMHB4O1xuICBoZWlnaHQ6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogaHNsKHZhcigtLW5pY2staCwgMjEwKSB2YXIoLS1uaWNrLXMpIHZhcigtLW5pY2stbCkpO1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIGZsZXg6IDAgMCBhdXRvO1xufVxuLmNoYWxrLW5pY2stcHJldmlldyB7XG4gIGNvbG9yOiBoc2wodmFyKC0tbmljay1oLCAyMTApIHZhcigtLW5pY2stcykgdmFyKC0tbmljay1sKSk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi8qIC0tLS0gcm9zdGVyIGNvbG9yIG1lbnUgKHJpZ2h0LWNsaWNrIC8gbG9uZy1wcmVzcyBhIGZyaWVuZCkgLS0tLSAqL1xuLmNoYWxrLW5pY2stbWVudSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogNjA7XG4gIG1pbi13aWR0aDogMTkwcHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMik7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMzUpO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xufVxuLmNoYWxrLW5pY2stbWVudS10aXRsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY2hhbGstczIpO1xufVxuLmNoYWxrLW5pY2stbWVudS1yb3cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbn1cbi8qIDExNy0xOiB0aGUgaHVlIHN0cmlwIHRoYXQgcmVwbGFjZWQgPGlucHV0IHR5cGU9XCJjb2xvclwiPiBpbiBib3RoIHBpY2tlcnMuXG4gICBQYWludGVkIGZyb20gdGhlIHRoZW1lJ3Mgb3duIC0tbmljay1zIC8gLS1uaWNrLWwsIHNvIGV2ZXJ5IHBvaW50IG9uIGl0IGlzXG4gICBhIGNvbG91ciBjaGF0IGNhbiBhY3R1YWxseSByZW5kZXIgb24gdGhpcyB0aGVtZSAtLSB0aGUgb2xkIHBpY2tlciBvZmZlcmVkXG4gICBhIHdob2xlIHNxdWFyZSBvZiBzYXR1cmF0aW9ucyBhbmQgbGlnaHRuZXNzZXMgdGhhdCB3ZXJlIGRpc2NhcmRlZCBvblxuICAgcGljay4gU2V2ZW4gc3RvcHMsIGh1ZSAwIHRvIDM2MCwgYmVjYXVzZSBsaW5lYXItZ3JhZGllbnQgaW50ZXJwb2xhdGVzIGluXG4gICBSR0IgYW5kIGZld2VyIHN0b3BzIHdvdWxkIGdyZXkgb3V0IGJldHdlZW4gdGhlIHByaW1hcmllcy4gVGh1bWIgaXMgYVxuICAgaG9sbG93IGJhciBzbyB0aGUgaHVlIHVuZGVyIGl0IHN0YXlzIHZpc2libGUuICovXG4uY2hhbGstaHVlLXNsaWRlciB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgZmxleDogMSAxIDEyMHB4O1xuICBtaW4td2lkdGg6IDEyMHB4O1xuICBoZWlnaHQ6IDE0cHg7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIHRvIHJpZ2h0LFxuICAgIGhzbCgwIHZhcigtLW5pY2stcykgdmFyKC0tbmljay1sKSksXG4gICAgaHNsKDYwIHZhcigtLW5pY2stcykgdmFyKC0tbmljay1sKSksXG4gICAgaHNsKDEyMCB2YXIoLS1uaWNrLXMpIHZhcigtLW5pY2stbCkpLFxuICAgIGhzbCgxODAgdmFyKC0tbmljay1zKSB2YXIoLS1uaWNrLWwpKSxcbiAgICBoc2woMjQwIHZhcigtLW5pY2stcykgdmFyKC0tbmljay1sKSksXG4gICAgaHNsKDMwMCB2YXIoLS1uaWNrLXMpIHZhcigtLW5pY2stbCkpLFxuICAgIGhzbCgzNjAgdmFyKC0tbmljay1zKSB2YXIoLS1uaWNrLWwpKVxuICApO1xuICBvdXRsaW5lOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY2hhbGstaHVlLXNsaWRlcjpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG59XG4uY2hhbGstaHVlLXNsaWRlcjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogMjBweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgY3Vyc29yOiBldy1yZXNpemU7XG59XG4uY2hhbGstaHVlLXNsaWRlcjo6LW1vei1yYW5nZS10aHVtYiB7XG4gIHdpZHRoOiA0cHg7XG4gIGhlaWdodDogMTZweDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgY3Vyc29yOiBldy1yZXNpemU7XG59XG4uY2hhbGstaHVlLXNsaWRlcjo6LW1vei1yYW5nZS10cmFjayB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLmNoYWxrLW5pY2stbWVudS1idG4ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIHBhZGRpbmc6IDJweCB2YXIoLS1jaGFsay1zMik7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uY2hhbGstbmljay1tZW51LWJ0bjpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2LTIpO1xufVxuXG4vKiAxMTEtNTogYSB0d28tYnV0dG9uIHNlZ21lbnQgKHRoZSBiYW5uZXIncyBmaWxsL2ZpdCksIHdoZXJlIG9uZSBvZiB0aGUgdHdvXG4gICBpcyBhbHdheXMgdGhlIHN0YXRlLiBUaGUgcHJlc3NlZCBvbmUgaXMgZmlsbGVkIHJhdGhlciB0aGFuIG1lcmVseVxuICAgaGlnaGxpZ2h0ZWQsIHNvIHdoaWNoIG1vZGUgaXMgb24gcmVhZHMgd2l0aG91dCBob3ZlcmluZy4gKi9cbi5jaGFsay1uaWNrLW1lbnUtc2VnIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGdhcDogMnB4O1xufVxuXG4uY2hhbGstbmljay1tZW51LWJ0bi0tb24sXG4uY2hhbGstbmljay1tZW51LWJ0bi0tb246aG92ZXIge1xuICBjb2xvcjogdmFyKC0tY2hhbGstYmcpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWFjY2VudCk7XG59XG5cbi8qIC0tLS0gdGhlIGhvdmVyIGNhcmQgKDkyLTE7IHNoYXJlZCB3aXRoIHRoZSBtZXNzYWdlIGZlZWQgaW4gOTItNCkgLS0tLVxuICAgU2FtZSBzdXJmYWNlIGFzIHRoZSBtZW51IGFib3ZlIGl0IC0tIHRoZSB0d28gb3BlbiBvbiB0aGUgc2FtZSByb3dzIGFuZFxuICAgd291bGQgbG9vayB1bnJlbGF0ZWQgb3RoZXJ3aXNlLiBwb2ludGVyLWV2ZW50czpub25lIGlzIGxvYWQtYmVhcmluZzogdGhlXG4gICBjYXJkIGlzIGRyYXduIG5leHQgdG8gdGhlIHJvdyB0aGUgY3Vyc29yIGlzIG9uLCBhbmQgYW55dGhpbmcgaW50ZXJjZXB0aW5nXG4gICB0aGUgcG9pbnRlciB0aGVyZSB3b3VsZCBib3RoIGVhdCB0aGUgY2xpY2sgYW5kIGZsaWNrZXIgdGhlIGNhcmQuICovXG4uY2hhbGstZnJpZW5kLWNhcmQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDYwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgbWluLXdpZHRoOiAxNTBweDtcbiAgbWF4LXdpZHRoOiAyMjBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKTtcbiAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4zNSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG4uY2hhbGstZnJpZW5kLWNhcmQtbmFtZSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuLmNoYWxrLWZyaWVuZC1jYXJkLXN0YXRlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xufVxuLyogOTItNTogdGhlIHByb2ZpbGUgZGlzcGxheSBuYW1lLCB1bmRlciB0aGUgaGFuZGxlIGl0IGJlbG9uZ3MgdG8uIERpbW1lclxuICAgdGhhbiB0aGUgbmFtZSBhbmQgbmV2ZXIgdGludGVkIC0tIHRoZSBuaWNrIGNvbG91ciBpZGVudGlmaWVzIHRoZSBhY2NvdW50LFxuICAgYW5kIGNvbG91cmluZyBib3RoIGxpbmVzIHdvdWxkIHJlYWQgYXMgdHdvIHBlb3BsZS4gKi9cbi5jaGFsay1mcmllbmQtY2FyZC1kaXNwbGF5IHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuLmNoYWxrLWZyaWVuZC1jYXJkLXNlZW4sXG4uY2hhbGstZnJpZW5kLWNhcmQtaGludCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG59XG4uY2hhbGstZnJpZW5kLWNhcmQtaGludCB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWNoYWxrLXMxKTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuLyogOTItNjogdGhlIGlkZW50aXR5IGZvb3RlciB0aGUgZmVlZCdzIG9sZCBuYXRpdmUgdG9vbHRpcCB1c2VkIHRvIGNhcnJ5LlxuICAgU21hbGxlc3QgYW5kIGRpbW1lc3QgdGhpbmcgb24gdGhlIGNhcmQ6IGl0IGlzIHRoZXJlIHRvIGJlIGZvdW5kIHdoZW4gYVxuICAgbXVsdGktZGV2aWNlIHNlbmRlciBuZWVkcyB0ZWxsaW5nIGFwYXJ0LCBub3QgdG8gYmUgcmVhZCBldmVyeSBob3Zlci4gKi9cbi5jaGFsay1mcmllbmQtY2FyZC1tZXRhIHtcbiAgbWFyZ2luLXRvcDogdmFyKC0tY2hhbGstczEpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuODVlbTtcbiAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGhhc2UgOS43ZzogZW1vamkgcGlja2VyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEFuY2hvcmVkIGJvdHRvbS1sZWZ0IGFib3ZlIHRoZSBjb21wb3NlciByYXRoZXIgdGhhbiBjZW50cmVkLCBzbyBpdFxuICAgc2l0cyBuZXh0IHRvIHRoZSBidXR0b24gdGhhdCBvcGVuZWQgaXQgYW5kIGRvZXNuJ3QgY292ZXIgdGhlXG4gICBjb252ZXJzYXRpb24uIEFsbCBjb2xvdXJzIGNvbWUgZnJvbSB0aGVtZSB2YXJzLCBzbyBpdCBmb2xsb3dzXG4gICB3aGljaGV2ZXIgdGhlbWUgaXMgYWN0aXZlLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5jaGFsay1lbW9qaS1waWNrZXItYmFja2Ryb3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xuICB6LWluZGV4OiA3MDtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5jaGFsay1lbW9qaS1waWNrZXIge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IHZhcigtLWNoYWxrLXM0KTtcbiAgYm90dG9tOiA5NnB4O1xuICB3aWR0aDogbWluKDM2MHB4LCBjYWxjKDEwMHZ3IC0gMiAqIHZhcigtLWNoYWxrLXM0KSkpO1xuICBtYXgtaGVpZ2h0OiBtaW4oNDIwcHgsIDYwZHZoKTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjM1KTtcbn1cblxuLmNoYWxrLWVtb2ppLXBpY2tlci1zZWFyY2gge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbn1cblxuLmNoYWxrLWVtb2ppLXBpY2tlci1pbnB1dCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZyk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczEpIHZhcigtLWNoYWxrLXMyKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG59XG4uY2hhbGstZW1vamktcGlja2VyLWlucHV0OjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBvcGFjaXR5OiAxO1xufVxuXG4uY2hhbGstZW1vamktcGlja2VyLWNsb3NlIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBwYWRkaW5nOiAxcHggdmFyKC0tY2hhbGstczIpO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmNoYWxrLWVtb2ppLXBpY2tlci1jbG9zZTpob3ZlciB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xufVxuXG4uY2hhbGstZW1vamktcGlja2VyLXRhYnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDJweDtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczEpIHZhcigtLWNoYWxrLXMyKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG5cbi5jaGFsay1lbW9qaS1waWNrZXItdGFiIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBwYWRkaW5nOiAycHggNnB4O1xuICBmb250LXNpemU6IGNhbGMoMTZweCAqIHZhcigtLWNoYWxrLWZvbnQtc2NhbGUpKTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAwLjY7XG59XG4uY2hhbGstZW1vamktcGlja2VyLXRhYjpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYtMik7XG59XG4uY2hhbGstZW1vamktcGlja2VyLXRhYi0tYWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYtMik7XG59XG5cbi5jaGFsay1lbW9qaS1waWNrZXItYm9keSB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMik7XG59XG5cbi5jaGFsay1lbW9qaS1waWNrZXItZ3JpZCB7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDMycHgsIDFmcikpO1xuICBnYXA6IDJweDtcbn1cblxuLmNoYWxrLWVtb2ppLXBpY2tlci1pdGVtIHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBmb250LXNpemU6IGNhbGMoMjBweCAqIHZhcigtLWNoYWxrLWZvbnQtc2NhbGUpKTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDRweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmNoYWxrLWVtb2ppLXBpY2tlci1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldi0yKTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG59XG5cbi5jaGFsay1lbW9qaS1waWNrZXItaGludCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBtYXJnaW46IDA7XG59XG5cbi5jaGFsay1lbW9qaS1waWNrZXItZm9vdGVyIHtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczEpIHZhcigtLWNoYWxrLXMyKTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFBoYXNlIDkuN2g6IGNvbXBvc2VyIHRvb2wgcm93IC0tIHRleHQgdnMgaWNvbiBwcmVzZW50YXRpb25cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiBUZXh0IHZhcmlhbnQ6IHNob3J0IHVwcGVyY2FzZSBsYWJlbHMgKEZJTEUgLyBHSUYgLyBFTU9KSSkuIFNsaWdodFxuICAgbGV0dGVyLXNwYWNpbmcgc28gdGhleSByZWFkIGFzIGxhYmVscyByYXRoZXIgdGhhbiB3b3JkcywgbWF0Y2hpbmdcbiAgIGhvdyB0aGUgR0lGIGJ1dHRvbiBhbHJlYWR5IGxvb2tlZC4gKi9cbi5jaGFsay1jb21wb3Nlci1yYWlsLS10ZXh0IC5jaGFsay1jb21wb3Nlci10b29sIHtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbn1cblxuLyogSWNvbiB2YXJpYW50OiBzcXVhcmUgYnV0dG9ucyB0aGF0IGNlbnRyZSB0aGVpciBnbHlwaC4gVGhlIFNWR3Mgc3Ryb2tlIHdpdGhcbiAgIGN1cnJlbnRDb2xvciwgc28gdGhleSBpbmhlcml0IHRoZSBidXR0b24ncyBjb2xvdXIgYW5kIGhvdmVyIHN0YXRlIGFuZCBuZWVkXG4gICBubyBwZXItdGhlbWUgcnVsZXMuIDI2cHggc3F1YXJlIHggMiByb3dzIGxhbmRzIHRoZSBibG9jayBhdCB0aGUgc2FtZSBoZWlnaHRcbiAgIGFzIHRoZSB0d28tcm93IGlucHV0IGJlc2lkZSBpdC4gKi9cbi5jaGFsay1jb21wb3Nlci1yYWlsLS1pY29ucyAuY2hhbGstY29tcG9zZXItdG9vbCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDI2cHg7XG4gIGhlaWdodDogMjZweDtcbiAgcGFkZGluZzogMDtcbn1cbi5jaGFsay1jb21wb3Nlci1yYWlsLS1pY29ucyAuY2hhbGstY29tcG9zZXItdG9vbCBzdmcge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQaGFzZSA5LjdpOiBtZXNzYWdlIHJvdyBhbGlnbm1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVGhyZWUgdGhpbmdzIG1hZGUgbWl4ZWQgY29udmVyc2F0aW9ucyAocGxhaW4gdGV4dCwgdGhyZWFkIHJlcGxpZXMsXG4gICBHSUZzLCBtdWx0aS1saW5lKSByZWFkIGFzIHJhZ2dlZDpcblxuICAgMS4gLmNoYWxrLW1lc3NhZ2UtdGltZSAvIC1zZW5kZXIgdXNlZCBhbGlnbi1zZWxmOiBjZW50ZXIuIE9uIGFcbiAgICAgIG11bHRpLWxpbmUgYm9keSB0aGF0IGNlbnRyZXMgdGhlbSBhZ2FpbnN0IHRoZSB3aG9sZSBibG9jaywgc28gYVxuICAgICAgMy1saW5lIG1lc3NhZ2UgcHV0IGl0cyB0aW1lc3RhbXAgYmVzaWRlIGxpbmUgMiBhbmQgaXRzIGZpcnN0IGxpbmVcbiAgICAgIGZsb2F0ZWQgYWJvdmUgdGhlIHRpbWVzdGFtcC4gQmFzZWxpbmUgYWxpZ25tZW50IHB1dHMgdGhlXG4gICAgICB0aW1lc3RhbXAsIHNlbmRlciBhbmQgdGhlIGJvZHkncyBGSVJTVCBsaW5lIG9uIG9uZSBsaW5lLCB3aGljaCBpc1xuICAgICAgd2hhdCB0aGUgZXllIGV4cGVjdHMuXG5cbiAgIDIuIEdpcGh5IGFuZCBhdHRhY2htZW50IGJsb2NrcyB1c2VkIGdyaWQtY29sdW1uOiAxIC8gLTEsIGJyZWFraW5nIG91dFxuICAgICAgdG8gdGhlIGZhci1sZWZ0IGVkZ2UgdW5kZXIgdGhlIHRpbWVzdGFtcCB3aGlsZSB0ZXh0IGJvZGllcyBzdGFydGVkXG4gICAgICBhdCB0aGUgYm9keSBjb2x1bW4uIE5vdyB0aGV5IHN0YXJ0IGF0IHRoZSBib2R5IGNvbHVtbiB0b28sIHNvXG4gICAgICBldmVyeSBraW5kIG9mIG1lc3NhZ2UgY29udGVudCBzaGFyZXMgb25lIGxlZnQgZWRnZS5cblxuICAgMy4gVGhlIHRocmVhZC1yZXBseSBpbmRpY2F0b3IgaXMgYSBzaWJsaW5nIG9mIC5jaGFsay1tZXNzYWdlIChub3QgYVxuICAgICAgZ3JpZCBpdGVtKSwgc28gaXQgc2F0IGF0IHRoZSBncm91cCdzIGxlZnQgZWRnZS4gSXQgbm93IGluZGVudHMgdG9cbiAgICAgIHRoZSBzYW1lIGJvZHkgY29sdW1uLlxuXG4gICBUaGUgY29sdW1uIGdlb21ldHJ5IGxpdmVzIGluIHZhcmlhYmxlcyBzbyB0aGUgYm9keSBlZGdlIGlzIGRlZmluZWRcbiAgIG9uY2UgYW5kIGV2ZXJ5dGhpbmcgZWxzZSBkZXJpdmVzIGZyb20gaXQgLS0gcHJldmlvdXNseSB0aGUgb2Zmc2V0IHdhc1xuICAgaW1wbGllZCBpbiB0aHJlZSBwbGFjZXMgYW5kIGNvdWxkIGRyaWZ0LlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbjpyb290IHtcbiAgLS1jaGFsay1tc2ctdGltZS1jb2w6IDhjaDsgICAvKiBcIjA5OjIyOjAzXCIgaXMgZXhhY3RseSA4IC0tIDdjaCBjbGlwcGVkICovXG4gIC0tY2hhbGstbXNnLXNlbmRlci1jb2w6IDhjaDtcbiAgLS1jaGFsay1tc2ctY29sLWdhcDogdmFyKC0tY2hhbGstczEpO1xuICAvKiA0MS0zOiByZXNlcnZlZCBzdHJpcCBhdCB0aGUgcm93J3MgbGVmdCBlZGdlIGZvciB0aGUgXHUwMEI3XHUwMEI3XHUwMEI3IG1lbnUgbWFya2VyLlxuICAgICBEZWxpYmVyYXRlbHkgcHggYW5kIG5vdCBjaDogaXQgaG9sZHMgb25lIGdseXBoIHJhdGhlciB0aGFuIHRleHQgdGhhdFxuICAgICBsaW5lcyB1cCB3aXRoIGFueXRoaW5nLCBhbmQgdGhlIHNhbWUgY2ggdmFsdWUgd291bGQgcmVzb2x2ZSBkaWZmZXJlbnRseVxuICAgICBpbiB0aGUgcm93IChiYXNlIHNpemUpIHRoYW4gaW4gdGhlIHNtYWxsZXIgc2libGluZyByb3dzIHRoYXQgYWxzbyBoYXZlXG4gICAgIHRvIHNoaWZ0IGJ5IGl0LiBaZXJvZWQgb24gdG91Y2gsIHdoZXJlIHRoZXJlIGlzIG5vIG1hcmtlciB0byBtYWtlIHJvb21cbiAgICAgZm9yIC0tIHdoaWNoIGlzIHdoYXQga2VlcHMgdGhlIG1vYmlsZSBncmlkIG92ZXJyaWRlcyB1bmNoYW5nZWQuICovXG4gIC0tY2hhbGstbXNnLWd1dHRlcjogMThweDtcbiAgLS1jaGFsay1tc2ctYm9keS1vZmZzZXQ6IGNhbGMoXG4gICAgdmFyKC0tY2hhbGstbXNnLXRpbWUtY29sKSArIHZhcigtLWNoYWxrLW1zZy1zZW5kZXItY29sKSArXG4gICAgICAyICogdmFyKC0tY2hhbGstbXNnLWNvbC1nYXApXG4gICk7XG59XG5cbi5jaGFsay1tZXNzYWdlIHtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOlxuICAgIHZhcigtLWNoYWxrLW1zZy10aW1lLWNvbClcbiAgICB2YXIoLS1jaGFsay1tc2ctc2VuZGVyLWNvbClcbiAgICAxZnI7XG4gIGNvbHVtbi1nYXA6IHZhcigtLWNoYWxrLW1zZy1jb2wtZ2FwKTtcbiAgcm93LWdhcDogMDtcbn1cblxuLmNoYWxrLW1lc3NhZ2UtLW5vLXRpbWUge1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHZhcigtLWNoYWxrLW1zZy1zZW5kZXItY29sKSAxZnI7XG59XG5cbi8qICgxKSBmaXJzdCBsaW5lIG9mIGEgbXVsdGktbGluZSBib2R5IGxpbmVzIHVwIHdpdGggdGhlIHRpbWVzdGFtcC4gKi9cbi5jaGFsay1tZXNzYWdlLXRpbWUsXG4uY2hhbGstbWVzc2FnZS1zZW5kZXIge1xuICBhbGlnbi1zZWxmOiBiYXNlbGluZTtcbn1cblxuLyogKDIpIG1lZGlhIHN0YXJ0cyBhdCB0aGUgYm9keSBjb2x1bW4gaW5zdGVhZCBvZiB0aGUgcm93J3MgbGVmdCBlZGdlLlxuICAgNzQtMzogdGhlIGNvZGUgY2FyZCBqb2lucyB0aGUgZ3JvdXAgLS0gZXZlcnkga2luZCBvZiBtZXNzYWdlIGNvbnRlbnRcbiAgIHNoYXJlcyBvbmUgbGVmdCBlZGdlLCB3aGljaCBpcyB0aGUgd2hvbGUgcG9pbnQgb2YgdGhlc2UgcnVsZXMuICovXG4uY2hhbGstbWVzc2FnZS1naXBoeSxcbi5jaGFsay1tZXNzYWdlLWF0dGFjaG1lbnRzLFxuLmNoYWxrLW1lc3NhZ2UtY29kZSB7XG4gIGdyaWQtY29sdW1uOiAzIC8gLTE7XG59XG4vKiBQaGFzZSA5LjdtOiB0aGUgbWVkaWEgc2l0cyBvbiBncmlkIHJvdyAyIChyb3cgMSBob2xkcyB0aW1lICsgc2VuZGVyKSxcbiAgIHNvIGl0IHN0YXJ0ZWQgb25lIGxpbmUgQkVMT1cgdGhlIHVzZXJuYW1lLiBQdWxsIGl0IHVwIGJ5IG9uZSBib2R5XG4gICBsaW5lLWhlaWdodCBzbyBpdHMgdG9wIGFsaWducyB3aXRoIHRoZSBzZW5kZXIgb24gcm93IDEsIHJlYWRpbmcgYXMgYVxuICAgc2luZ2xlIG1lc3NhZ2UgcmF0aGVyIHRoYW4gYSBjYXB0aW9uIGZsb2F0aW5nIGJlbmVhdGggYW4gZW1wdHkgcm93LlxuICAgT25seSB3aGVuIHRoZSBib2R5IHNwYW4gcmVuZGVycyBub3RoaW5nIC0tIG9uIGEgY2FwdGlvbmVkIGltYWdlIHRoZVxuICAgc2FtZSBwdWxsLXVwIHBhaW50ZWQgdGhlIGltYWdlIG92ZXIgdGhlIGNhcHRpb24ncyBsaW5lLiAqL1xuLmNoYWxrLW1lc3NhZ2UtLW5vLWJvZHkgLmNoYWxrLW1lc3NhZ2UtZ2lwaHksXG4uY2hhbGstbWVzc2FnZS0tbm8tYm9keSAuY2hhbGstbWVzc2FnZS1hdHRhY2htZW50cyxcbi5jaGFsay1tZXNzYWdlLS1uby1ib2R5IC5jaGFsay1tZXNzYWdlLWNvZGUge1xuICBtYXJnaW4tdG9wOiAtMS40ZW07XG59XG4uY2hhbGstbWVzc2FnZS0tbm8tdGltZSAuY2hhbGstbWVzc2FnZS1naXBoeSxcbi5jaGFsay1tZXNzYWdlLS1uby10aW1lIC5jaGFsay1tZXNzYWdlLWF0dGFjaG1lbnRzLFxuLmNoYWxrLW1lc3NhZ2UtLW5vLXRpbWUgLmNoYWxrLW1lc3NhZ2UtY29kZSB7XG4gIGdyaWQtY29sdW1uOiAyIC8gLTE7XG59XG5cbi8qICgzKSByZXBseSBpbmRpY2F0b3IgbGluZXMgdXAgd2l0aCB0aGUgYm9keSBjb2x1bW4uIEl0IGxpdmVzIG91dHNpZGVcbiAgIHRoZSBncmlkLCBzbyB0aGUgb2Zmc2V0IGFsc28gaGFzIHRvIGNsZWFyIC5jaGFsay1tZXNzYWdlJ3MgcGFkZGluZy4gKi9cbi5jaGFsay1tZXNzYWdlLXRocmVhZC1pbmRpY2F0b3Ige1xuICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1jaGFsay1tc2ctYm9keS1vZmZzZXQpICsgdmFyKC0tY2hhbGstczIpKTtcbn1cbi5jaGFsay1tZXNzYWdlcy0tbm8tdGltZSAuY2hhbGstbWVzc2FnZS10aHJlYWQtaW5kaWNhdG9yIHtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoXG4gICAgdmFyKC0tY2hhbGstbXNnLXNlbmRlci1jb2wpICsgdmFyKC0tY2hhbGstbXNnLWNvbC1nYXApICsgdmFyKC0tY2hhbGstczIpXG4gICk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGhhc2UgOS43ajogdGhyZWFkIGluZGljYXRvciAvIHByZXZpZXcgc2hhcmUgdGhlIGJvZHkgY29sdW1uXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIDkuN2kgaW5kZW50ZWQgdGhlIHJlcGx5IGluZGljYXRvciB3aXRoIGEgY2gtYmFzZWQgb2Zmc2V0IGFwcGxpZWQgdG9cbiAgIHRoZSBpbmRpY2F0b3IgaXRzZWxmIC0tIGJ1dCBgY2hgIGlzIEZPTlQtUkVMQVRJVkUsIGFuZCB0aGUgaW5kaWNhdG9yXG4gICByZW5kZXJzIGF0IC0tY2hhbGstc2l6ZS1zbWFsbCAoMTJweCkgd2hpbGUgdGhlIG1lc3NhZ2UgZ3JpZCBjb21wdXRlc1xuICAgaXRzIGNvbHVtbnMgYXQgdGhlIGJhc2Ugc2l6ZSAoMTRweCkuIFRoZSBzYW1lIDE2Y2ggZXhwcmVzc2lvbiBpc1xuICAgdGhlcmVmb3JlIH4xOXB4IG5hcnJvd2VyIHRoZXJlLCBzbyB0aGUgaW5kaWNhdG9yIGxhbmRlZCBzaG9ydCBvZiB0aGVcbiAgIGJvZHkgY29sdW1uLiBUaGUgcHJldmlldyAoMTFweCwgYW5kIG9mZnNldCBieSBhIGZpeGVkIDI4cHggZnJvbSB0aGVcbiAgIGdyb3VwIGVkZ2UpIHdhcyBmdXJ0aGVyIG91dCBzdGlsbC5cblxuICAgRml4aW5nIGl0IHBlci1lbGVtZW50IHdvdWxkIG1lYW4gdGhyZWUgaGFuZC10dW5lZCBvZmZzZXRzIHRoYXQgZHJpZnRcbiAgIGFwYXJ0IGFnYWluIHRoZSBtb21lbnQgYSBmb250IHNpemUgY2hhbmdlcyAtLSB3aGljaCBpcyBleGFjdGx5IGhvd1xuICAgdGhpcyBoYXBwZW5lZC4gSW5zdGVhZCB0aGUgaW5kZW50IG1vdmVzIHRvIGEgd3JhcHBlciBwaW5uZWQgYXQgdGhlXG4gICBiYXNlIGZvbnQgc2l6ZSwgc28gYGNoYCByZXNvbHZlcyBpZGVudGljYWxseSB0byB0aGUgZ3JpZCwgYW5kIGJvdGhcbiAgIGNoaWxkcmVuIHNpbXBseSBzdGFydCBhdCBpdHMgY29udGVudCBlZGdlLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5jaGFsay1tZXNzYWdlLXRocmVhZC1tZXRhIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIC8qIFBpbm5lZCBzbyB0aGUgY2gtYmFzZWQgcGFkZGluZyBiZWxvdyBtYXRjaGVzIHRoZSBtZXNzYWdlIGdyaWQuICovXG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1iYXNlKTtcbiAgLyogUGhhc2UgOS43bTogaW5kZW50IHRvIHRoZSBTRU5ERVIgY29sdW1uICh0aW1lICsgb25lIGdhcCksIG5vdCB0aGUgYm9keVxuICAgICBjb2x1bW4sIHNvIHRoZSBcIk4gcmVwbGllc1wiIGxpbmUgc2l0cyBjbG9zZSB0byB0aGUgbWVzc2FnZSdzIGZpcnN0XG4gICAgIGNoYXJhY3RlciBpbnN0ZWFkIG9mIHVuZGVyIHRoZSBib2R5IHRleHQuICovXG4gIHBhZGRpbmctbGVmdDogY2FsYyhcbiAgICB2YXIoLS1jaGFsay1tc2ctZ3V0dGVyKSArIHZhcigtLWNoYWxrLW1zZy10aW1lLWNvbCkgK1xuICAgICAgdmFyKC0tY2hhbGstbXNnLWNvbC1nYXApICsgdmFyKC0tY2hhbGstczIpXG4gICk7XG59XG5cbi5jaGFsay1tZXNzYWdlcy0tbm8tdGltZSAuY2hhbGstbWVzc2FnZS10aHJlYWQtbWV0YSB7XG4gIC8qIE5vIHRpbWUgY29sdW1uOiB0aGUgc2VuZGVyIHN0YXJ0cyBhdCB0aGUgbGVmdCBlZGdlLCBzbyBhIHNtYWxsIGd1dHRlclxuICAgICBpcyBlbm91Z2ggdG8gY2xlYXIgdGhlIHJvdyBwYWRkaW5nLiAqL1xuICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tY2hhbGstbXNnLWd1dHRlcikgKyB2YXIoLS1jaGFsay1zMikpO1xufVxuXG4vKiBDaGlsZHJlbiBub3cgaW5oZXJpdCB0aGVpciBwb3NpdGlvbiBmcm9tIHRoZSB3cmFwcGVyLiBaZXJvaW5nIHRoZXNlXG4gICByZXRpcmVzIHRoZSBvbGQgcGVyLWVsZW1lbnQgb2Zmc2V0cyAoaW5jbHVkaW5nIHRoZSBwcmV2aWV3J3MgZml4ZWRcbiAgIDI4cHggbnVkZ2UpIHJhdGhlciB0aGFuIHN0YWNraW5nIG9uIHRvcCBvZiB0aGVtLiAqL1xuLmNoYWxrLW1lc3NhZ2UtdGhyZWFkLWluZGljYXRvcixcbi5jaGFsay1tZXNzYWdlLXRocmVhZC1wcmV2aWV3IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGhhc2UgOS43azogc2VuZGVyIGNvbHVtbiBzaXplZCB0byBjb250ZW50LCBsb25nIG5hbWVzIHdyYXBcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVGhlIHNlbmRlciBjb2x1bW4gd2FzIGEgZml4ZWQgOGNoIC0tIHdpZGUgZW5vdWdoIGZvciB0aGUgbG9uZ2VzdFxuICAgcG9zc2libGUgaGFuZGxlLCBzbyBhIGNoYW5uZWwgZnVsbCBvZiBzaG9ydCBuYW1lcyAoXCJ5b3VcIiwgXCJhbGljZTlcIilcbiAgIGxlZnQgYSBsYXJnZSBnYXAgYmVmb3JlIHRoZSBib2R5LiBNZXNzYWdlTGlzdCBub3cgbWVhc3VyZXMgdGhlXG4gICB3aWRlc3QgbGFiZWwgYWN0dWFsbHkgaW4gdmlldyBhbmQgc2V0cyAtLWNoYWxrLW1zZy1zZW5kZXItY29sIHBlciByb3dcbiAgIChjYXBwZWQgYXQgMTBjaCkuIFRoaXMgYmxvY2sgbGV0cyB0aGUgY2VsbCBXUkFQIHdoZW4gYSBoYW5kbGUgZXhjZWVkc1xuICAgdGhhdCBjYXAsIHNvIGFuIG91dGxpZXIgbmFtZSBicmVha3Mgb250byBhIHNlY29uZCBsaW5lIGluc3RlYWQgb2ZcbiAgIGZvcmNpbmcgZXZlcnkgYm9keSBmYXIgdG8gdGhlIHJpZ2h0LlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIFRoZSBiYXNlIHJ1bGUgcGlucyAtLWNoYWxrLW1zZy1zZW5kZXItY29sIHRvIDhjaDsgdGhlIHBlci1yb3cgaW5saW5lXG4gICBzdHlsZSBvdmVycmlkZXMgaXQuIFRoaXMgZmFsbGJhY2sga2VlcHMgYW55dGhpbmcgdGhhdCByZW5kZXJzIGEgcm93XG4gICBXSVRIT1VUIHRoZSBpbmxpbmUgdmFyIChkZWZlbnNpdmUpIGF0IGEgc2FuZSB3aWR0aC4gKi9cbi5jaGFsay1tZXNzYWdlIHtcbiAgLS1jaGFsay1tc2ctc2VuZGVyLWNvbDogOGNoO1xufVxuXG4vKiBMZXQgbG9uZyBoYW5kbGVzIHdyYXAgd2l0aGluIHRoZSAobm93IGNvbnRlbnQtc2l6ZWQpIGNvbHVtbiByYXRoZXJcbiAgIHRoYW4gb3ZlcmZsb3cgaXQuIGJyZWFrLXdvcmQgaGFuZGxlcyBhIHNpbmdsZSBvdmVyLWxvbmcgdG9rZW47IHRoZVxuICAgY29sdW1uIGl0c2VsZiBuZXZlciBleGNlZWRzIGl0cyAxMGNoIGNhcCwgc28gdGhlIGJvZHkgY29sdW1uIHN0YXlzXG4gICBwdXQgbm8gbWF0dGVyIGhvdyBsb25nIHRoZSBuYW1lIGlzLiAqL1xuLmNoYWxrLW1lc3NhZ2Utc2VuZGVyIHtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgLyogd2FzIGVsbGlwc2lzIHRydW5jYXRpb247IHdyYXBwaW5nIHJlcGxhY2VzIGl0LCBzbyBkcm9wIHRoZSBjbGlwLiAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgdGV4dC1vdmVyZmxvdzogY2xpcDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuLyogVGhlIHRocmVhZC1tZXRhIHdyYXBwZXIgaW5kZW50cyBieSAtLWNoYWxrLW1zZy1ib2R5LW9mZnNldCwgd2hpY2ggaXNcbiAgIGJ1aWx0IGZyb20gLS1jaGFsay1tc2ctc2VuZGVyLWNvbC4gVGhhdCB2YXIgaXMgbm93IHNldCBwZXIgbWVzc2FnZVxuICAgUk9XLCBub3Qgb24gdGhlIHdyYXBwZXIgKGEgc2libGluZyksIHNvIHRoZSB3cmFwcGVyIHdvdWxkIGZhbGwgYmFja1xuICAgdG8gOGNoIGFuZCBkcmlmdCBvdXQgb2Ygc3RlcCB3aXRoIGEgdGlnaHRlbmVkIGNvbHVtbi4gUmVidWlsZCB0aGVcbiAgIG9mZnNldCBoZXJlIGZyb20gdGhlIHNhbWUgOGNoIGZhbGxiYWNrIHNvIGluZGljYXRvciArIGJvZHkgc3RpbGxcbiAgIHNoYXJlIGFuIGVkZ2UgaW4gdGhlIGNvbW1vbiBjYXNlOyB3aGVuIG5hbWVzIGFyZSBzaG9ydCB0aGUgaW5kaWNhdG9yXG4gICBzaXRzIGEgaGFpciByaWdodCBvZiB0aGUgYm9keSwgd2hpY2ggcmVhZHMgZmluZSBhbmQgbmV2ZXIgbGVmdCBvZiBpdC4gKi9cbi5jaGFsay1tZXNzYWdlLXRocmVhZC1tZXRhIHtcbiAgLS1jaGFsay1tc2ctc2VuZGVyLWNvbDogOGNoO1xufVxuXG4vKiAtLS0tIHBoYXNlMzEtc2xpY2UzMS05YTogYXV0aC12MiBzY3JlZW4gc3R5bGVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgVGhlIHBhc3N3b3JkL1RPVFAgc2NyZWVucyAoMzEtNSBzaWdudXAgd2l6YXJkLCAzMS03IGxvZ2luLCAzMS05XG4gICBtaWdyYXRpb24pIGludHJvZHVjZWQgZm9ybSBjbGFzc2VzIHRoYXQgaGFkIG5vIHJ1bGVzLCBzbyBpbnB1dHMgZmVsbFxuICAgYmFjayB0byBpbmxpbmUgYnJvd3NlciBkZWZhdWx0cy4gVGVybWluYWwgYWVzdGhldGljLCBleGlzdGluZyB2YXJzLiAqL1xuXG4uY2hhbGstYXV0aC10aXRsZSB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXRpdGxlKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG59XG5cbi5jaGFsay1hdXRoLWxhYmVsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMSk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xufVxuXG4vKiA4MS0yOiB0aGUgY29uZmlybS1pdCdzLXlvdSBmb3JtLiBTZXQgYXBhcnQgZnJvbSB0aGUgc2VjdGlvbiBhcm91bmQgaXQgc29cbiAgIGl0IHJlYWRzIGFzIGEgZ2F0ZSByYXRoZXIgdGhhbiBhcyBtb3JlIG9mIHRoZSBzYW1lIHNldHRpbmdzLiAqL1xuLmNoYWxrLXN0ZXB1cCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYpO1xufVxuXG4uY2hhbGstYXV0aC1pbnB1dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmcpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpIHZhcigtLWNoYWxrLXMzKTtcbiAgZm9udDogaW5oZXJpdDtcbn1cblxuLmNoYWxrLWF1dGgtaW5wdXQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG59XG5cbi5jaGFsay1hdXRoLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldi0yKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKSB2YXIoLS1jaGFsay1zMyk7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNoYWxrLWF1dGgtYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctaG92ZXIpO1xufVxuXG4uY2hhbGstYXV0aC1idXR0b246ZGlzYWJsZWQge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5cbi5jaGFsay1hdXRoLWNoZWNrbGlzdCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG59XG5cbi5jaGFsay1hdXRoLWNoZWNrbGlzdCAubWV0ICAgeyBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTsgfVxuLmNoYWxrLWF1dGgtY2hlY2tsaXN0IC51bm1ldCB7IGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7IH1cblxuLmNoYWxrLWF1dGgtc3RyZW5ndGgge1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xufVxuXG4uY2hhbGstYXV0aC1zdHJlbmd0aC5zdHJlbmd0aC0xIHsgY29sb3I6IHZhcigtLWNoYWxrLWRhbmdlcik7IH1cbi5jaGFsay1hdXRoLXN0cmVuZ3RoLnN0cmVuZ3RoLTIgeyBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTsgfVxuLmNoYWxrLWF1dGgtc3RyZW5ndGguc3RyZW5ndGgtMyB7IGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7IH1cbi5jaGFsay1hdXRoLXN0cmVuZ3RoLnN0cmVuZ3RoLTQgeyBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTsgfVxuXG4uY2hhbGstYXV0aC1xciB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDAgYXV0bztcbiAgYmFja2dyb3VuZDogI2ZmZjsgLyogUVIgbmVlZHMgbGlnaHQgcXVpZXQgem9uZSB0byBzY2FuIG9uIGRhcmsgdGhlbWVzICovXG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKTtcbiAgaW1hZ2UtcmVuZGVyaW5nOiBwaXhlbGF0ZWQ7XG59XG5cbi5jaGFsay1hdXRoLXNlY3JldCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWNoYWxrLW1vbm8pO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIHVzZXItc2VsZWN0OiBhbGw7XG59XG5cbi5jaGFsay1hdXRoLWZvb3RlciB7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbn1cblxuLmNoYWxrLWF1dGgtcHJvc2Uge1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtYm9keSk7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTW9iaWxlIGxheW91dCAoPD0gNzY3cHgpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFRoZSBkZXNrdG9wIHNoZWxsIGlzIGEgMjIwcHggcm9zdGVyIGNvbHVtbiBiZXNpZGUgdGhlIG1lc3NhZ2VzLiBPbiBhXG4gICBwaG9uZSB0aGF0IGxlYXZlcyB+MTEwcHggZm9yIHRoZSBtZXNzYWdlIGNvbHVtbiwgYW5kIHRoZSB0aHJlZS1jb2x1bW5cbiAgIG1lc3NhZ2UgZ3JpZCAodGltZSAvIHNlbmRlciAvIGJvZHkpIHNxdWVlemVzIHRoZSBib2R5IHRvIGFib3V0IG9uZVxuICAgY2hhcmFjdGVyIHdpZGUgLS0gdGV4dCByZW5kZXJzIGFzIGEgdmVydGljYWwgc3RyaXBlLlxuXG4gICBUaGUgZml4IGlzIGEgZGlmZmVyZW50IGxheW91dCwgbm90IHNtYWxsZXIgdHlwZTpcblxuICAgICAtIHRoZSBzaGVsbCBkcm9wcyB0byBvbmUgY29sdW1uIChoZWFkZXIgLyBtYWluIC8gZm9vdGVyKSBhbmQgdGhlXG4gICAgICAgcm9zdGVyIGJlY29tZXMgYW4gb2ZmLWNhbnZhcyBkcmF3ZXIgb3ZlciB0aGUgbWVzc2FnZXMsIHRvZ2dsZWQgYnlcbiAgICAgICB0aGUgXHUyNjMwIGJ1dHRvbiBpbiB0aGUgaGVhZGVyIChBcHAudHN4IHJlbmRlcnMgaXQgdmlhIHVzZUlzTW9iaWxlO1xuICAgICAgIHRoZSBicmVha3BvaW50IGJlbG93IG11c3Qgc3RheSBpbiBzeW5jIHdpdGggc3JjL21vYmlsZS50cyk7XG4gICAgIC0gbWVzc2FnZSByb3dzIHB1dCB0aW1lICsgc2VuZGVyIG9uIHRoZWlyIG93biBsaW5lIGFuZCBnaXZlIHRoZVxuICAgICAgIGJvZHkgdGhlIGZ1bGwgd2lkdGg7XG4gICAgIC0gdGhyZWFkIHBhbmVsIGFuZCBtb2RhbHMgZ28gZnVsbC1zY3JlZW4gaW5zdGVhZCBvZiBzaWRlLWJ5LXNpZGU7XG4gICAgIC0gc2FmZS1hcmVhIGluc2V0cyBrZWVwIGNvbnRlbnQgY2xlYXIgb2YgdGhlIG5vdGNoIGFuZCB0aGUgaG9tZVxuICAgICAgIGluZGljYXRvciwgYW5kIGZvcm0gY29udHJvbHMgc2l0IGF0IDE2cHggc28gaU9TIGRvZXNuJ3Qgem9vbSB0aGVcbiAgICAgICB2aWV3cG9ydCB3aGVuIGEgZmllbGQgdGFrZXMgZm9jdXMuXG5cbiAgIFRoaXMgc2VjdGlvbiBpcyBsYXN0IGluIHRoZSBmaWxlIG9uIHB1cnBvc2U6IGV2ZXJ5IHJ1bGUgaGVyZSBoYXMgdG9cbiAgIHdpbiBvdmVyIHRoZSBkZXNrdG9wIHJ1bGUgaXQgcmVwbGFjZXMgd2l0aG91dCBhbiAhaW1wb3J0YW50IG9yIGFcbiAgIHNwZWNpZmljaXR5IGhhY2suXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogRHJhd2VyIGNocm9tZS4gT25seSByZW5kZXJlZCBvbiBtb2JpbGUgKEFwcC50c3ggZ2F0ZXMgaXQgb25cbiAgIHVzZUlzTW9iaWxlKSwgc28gdGhlc2UgbGl2ZSBvdXRzaWRlIHRoZSBtZWRpYSBxdWVyeSAtLSB0aGUgZWxlbWVudHNcbiAgIHNpbXBseSBkb24ndCBleGlzdCBvbiBkZXNrdG9wLiAqL1xuLmNoYWxrLW5hdi10b2dnbGUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGNhbGMoMTZweCAqIHZhcigtLWNoYWxrLWZvbnQtc2NhbGUpKTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHBhZGRpbmc6IDZweCAxMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jaGFsay1uYXYtdG9nZ2xlOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbn1cblxuLmNoYWxrLW5hdi1iYWNrZHJvcCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgaW5zZXQ6IDA7XG4gIHotaW5kZXg6IDQ1O1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG59XG5cbi5jaGFsay1kcmF3ZXItaGVhZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZzogMCB2YXIoLS1jaGFsay1zMikgdmFyKC0tY2hhbGstczMpIHZhcigtLWNoYWxrLXMzKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWNoYWxrLXMyKTtcbn1cblxuLmNoYWxrLWRyYXdlci10aXRsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG59XG5cbi5jaGFsay1kcmF3ZXItY2xvc2Uge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogY2FsYygxOHB4ICogdmFyKC0tY2hhbGstZm9udC1zY2FsZSkpO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jaGFsay1kcmF3ZXItY2xvc2U6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICBvdXRsaW5lLW9mZnNldDogMXB4O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLyogLS0gc2hlbGwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4gIC8qIDEyNS0xOiBpT1MgU2FmYXJpIGRvZXMgbm90IHNocmluayAxMDBkdmggb3IgdGhlIGxheW91dCB2aWV3cG9ydCB3aGVuXG4gICAgIHRoZSBvbi1zY3JlZW4ga2V5Ym9hcmQgb3BlbnMsIHNvIGEgZG9jdW1lbnQgcGlubmVkIHRvIGl0IHN0YXlzIHRhbGxlclxuICAgICB0aGFuIHRoZSB2aXNpYmxlIGFyZWEgYW5kIFNhZmFyaSBzY3JvbGxzIHRoZSBwYWdlIHVwLCB0YWtpbmcgdGhlXG4gICAgIGNoYW5uZWwgaGVhZGVyIHdpdGggaXQuIC0tY2hhbGstc2hlbGwtaCwgc2V0IGluIHdlYi9zcmMvdmlld3BvcnQudHNcbiAgICAgZnJvbSB0aGUgdmlzdWFsIHZpZXdwb3J0LCB0cmFja3Mgd2hhdCBpcyBhY3R1YWxseSB2aXNpYmxlOyB0aGVcbiAgICAgMTAwZHZoIGZhbGxiYWNrIGtlZXBzIHRoaXMgcnVsZSBoYXJtbGVzcyB3aGVyZXZlciB0aGF0IHNjcmlwdCBuZXZlclxuICAgICBydW5zLiBtaW4taGVpZ2h0OjAgcmVwbGFjZXMgdGhlIGRlc2t0b3AgbWluLWhlaWdodDoxMDBkdmggc28gdGhlXG4gICAgIHBhZ2UgY2FuIHNocmluayBiZWxvdyBpdCBpbnN0ZWFkIG9mIGp1c3QgYWRkaW5nIHRvIGl0LiAqL1xuICBodG1sLCBib2R5IHtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGhlaWdodDogdmFyKC0tY2hhbGstc2hlbGwtaCwgMTAwZHZoKTtcbiAgfVxuXG4gIC5jaGFsay1hcHAsXG4gIC5jaGFsay1hcHAtLXBoYXNlMDhiLFxuICAuY2hhbGstYXBwLS1waGFzZTA4Yi5jaGFsay1hcHAtLXRocmVhZC1vcGVuIHtcbiAgICAvKiAxMjUtMTogc2FtZSB2YXJpYWJsZSBhcyB0aGUgaHRtbC9ib2R5IHJ1bGUgYWJvdmUsIHNvIHRoZSBzaGVsbCBhbmRcbiAgICAgICB0aGUgcGFnZSBzaHJpbmsgdG9nZXRoZXIgYW5kIG5laXRoZXIgb25lIGxlYXZlcyByb29tIGZvciBTYWZhcmkgdG9cbiAgICAgICBzY3JvbGwgaW50by4gKi9cbiAgICBoZWlnaHQ6IHZhcigtLWNoYWxrLXNoZWxsLWgsIDEwMGR2aCk7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICAgIFwiaGVhZGVyXCJcbiAgICAgIFwibWFpblwiXG4gICAgICBcImZvb3RlclwiO1xuICAgIGNvbHVtbi1nYXA6IDA7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIHBhZGRpbmctbGVmdDogbWF4KHZhcigtLWNoYWxrLXMyKSwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7XG4gICAgcGFkZGluZy1yaWdodDogbWF4KHZhcigtLWNoYWxrLXMyKSwgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodCkpO1xuICB9XG5cbiAgLyogLS0gcm9zdGVyIGRyYXdlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuICAuY2hhbGstc2lkZWJhciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB6LWluZGV4OiA1MDtcbiAgICAvKiAzMy02OiBuYXJyb3dlciB0aGFuIHRoZSBvcmlnaW5hbCBtaW4oODR2dywgMzIwcHgpLiBBdCA4NHZ3IHRoZSBkcmF3ZXJcbiAgICAgICBjb3ZlcmVkIH44MCUgb2YgYSBwaG9uZSBzY3JlZW4gZm9yIGEgbGlzdCBvZiBzaG9ydCBuYW1lcywgYW5kIGxlZnQgbm9cbiAgICAgICBzbGl2ZXIgb2YgdGhlIGNvbnZlcnNhdGlvbiB0byBvcmllbnQgYWdhaW5zdCBvciB0YXAgdG8gZGlzbWlzcy4gVGhlXG4gICAgICAgZGVza3RvcCBzaWRlYmFyLXdpZHRoIHByZWYgZGVsaWJlcmF0ZWx5IGRvZXMgbm90IGFwcGx5IGhlcmUgLS0gYVxuICAgICAgIGZpeGVkIG92ZXJsYXkgYW5kIGEgZ3JpZCBjb2x1bW4gYXJlIGRpZmZlcmVudCBwcm9ibGVtcy4gKi9cbiAgICB3aWR0aDogbWluKDcwdncsIDI3MHB4KTtcbiAgICBwYWRkaW5nOiBtYXgodmFyKC0tY2hhbGstczMpLCBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCkpIDBcbiAgICAgICAgICAgICBtYXgodmFyKC0tY2hhbGstczMpLCBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpIDA7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmcpO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gICAgYm94LXNoYWRvdzogMnB4IDAgMTZweCByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgICAvKiB2aXNpYmlsaXR5IChub3QganVzdCB0aGUgdHJhbnNmb3JtKSBrZWVwcyB0aGUgY2xvc2VkIGRyYXdlciBvdXQgb2ZcbiAgICAgICB0aGUgdGFiIG9yZGVyIC0tIG90aGVyd2lzZSBUYWIgZnJvbSB0aGUgaGVhZGVyIHdhbGtzIGludG8gYW5cbiAgICAgICBvZmYtc2NyZWVuIHJvc3Rlci4gKi9cbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDE2MG1zIGVhc2UsIHZpc2liaWxpdHkgMTYwbXMgZWFzZTtcbiAgICAvKiBTY3JvbGxpbmcgdGhlIHJvc3RlciBtdXN0IG5vdCBjaGFpbiBpbnRvIHRoZSBtZXNzYWdlIGxpc3QgYmVoaW5kIGl0LiAqL1xuICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gIH1cblxuICAuY2hhbGstYXBwLS1uYXYtb3BlbiAuY2hhbGstc2lkZWJhciB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICAuY2hhbGstc2lkZWJhci1pdGVtIHtcbiAgICAvKiBDb21mb3J0YWJsZSB0b3VjaCB0YXJnZXQ7IHRoZSBkZXNrdG9wIHBhZGRpbmcgZ2l2ZXMgfjI4cHguICovXG4gICAgbWluLWhlaWdodDogNDRweDtcbiAgfVxuXG4gIC8qIC0tIGhlYWRlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiAgLmNoYWxrLWhlYWRlciB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gICAgcGFkZGluZzogbWF4KHZhcigtLWNoYWxrLXMyKSwgZW52KHNhZmUtYXJlYS1pbnNldC10b3ApKSAwIHZhcigtLWNoYWxrLXMyKSAwO1xuICB9XG5cbiAgLmNoYWxrLWhlYWRlci1sZWZ0IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICB9XG5cbiAgLmNoYWxrLWhlYWRlciBoMSB7XG4gICAgZm9udC1zaXplOiBjYWxjKDE2cHggKiB2YXIoLS1jaGFsay1mb250LXNjYWxlKSk7XG4gIH1cblxuICAuY2hhbGstYnJhbmQge1xuICAgIGZvbnQtc2l6ZTogY2FsYygxNnB4ICogdmFyKC0tY2hhbGstZm9udC1zY2FsZSkpO1xuICB9XG5cbiAgLyogQ29ubmVjdGlvbiBkZXRhaWwgdGV4dCAoXCJjb25uZWN0ZWQgdG8gLi4uXCIpIGlzIHRoZSBmaXJzdCB0aGluZyB0byBnb1xuICAgICB3aGVuIHRoZSBoZWFkZXIgaGFzIHRvIGZpdCBuZXh0IHRvIHRoZSBcdTI2MzAgYnV0dG9uLiAqL1xuICAuY2hhbGstc3RhdHVzLWRldGFpbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8qIDM5LTE6IHNhbWUgcmVhc29uaW5nIGZvciB0aGUgdmVyc2lvbiBiYWRnZS4gVGhlIHByb2ZpbGUgcGFuZWwncyBhYm91dFxuICAgICBzZWN0aW9uIGNhcnJpZXMgaXQgKGFuZCB0aGUgY2hhbmdlbG9nIGxpbmspIG9uIG1vYmlsZS4gKi9cbiAgLmNoYWxrLXZlcnNpb24tLWJhZGdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLyogLS0gbWVzc2FnZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiAgLmNoYWxrLW1haW4ge1xuICAgIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKSAwO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgfVxuXG4gIC5jaGFsay1jaGFubmVsLWhlYWRlciB7XG4gICAgLyogT25lIHJvdywgYWx3YXlzOiB0aGUgaGVhZGVyIGlzIHBpbm5lZCAoYmVsb3cpLCBzbyBhIGxvbmcgY2hhbm5lbFxuICAgICAgIG5hbWUgbXVzdCBlbGxpcHNpemUgcmF0aGVyIHRoYW4gd3JhcCBpdCBpbnRvIGEgc2xhYiB0aGF0IGVhdHMgdGhlXG4gICAgICAgZmVlZC4gbWluLXdpZHRoOiAwIG9uIHRoZSBuYW1lIHNwYW4gbWFrZXMgdGhlIHNocmluayBwb3NzaWJsZS4gKi9cbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBnYXA6IHZhcigtLWNoYWxrLXMxKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tY2hhbGstczIpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNoYWxrLXMyKTtcbiAgICAvKiBQaW5uaW5nIGl0c2VsZiBjb21lcyBmcm9tIHRoZSBiYXNlIHJ1bGU7IG9ubHkgdGhlIG9mZnNldHMgY2hhbmdlXG4gICAgICAgYmVjYXVzZSAuY2hhbGstbWFpbidzIHBhZGRpbmcgaXMgczIgaGVyZSwgbm90IHM0LiBtYXJnaW4tdG9wXG4gICAgICAgc3RheXMgMDogb24gYSBwaG9uZSB0aGUgZXh0cmEgcmVzdGluZyBzcGFjZSBhYm92ZSB0aGUgYmFyIGlzIHRoZVxuICAgICAgIHNoaXBwZWQgbG9vaywgYW5kIHRoZSBzd2FsbG93ZWQgcGFuZSBwYWRkaW5nIGtlZXBzIHRoZSBzdHVjayBiYXJcbiAgICAgICBmbHVzaCBhbnl3YXkuICovXG4gICAgdG9wOiBjYWxjKC0xICogdmFyKC0tY2hhbGstczIpKTtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tY2hhbGstczIpO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgYm94LXNoYWRvdzogMCB2YXIoLS1jaGFsay1zMikgdmFyKC0tY2hhbGstYmcpO1xuICB9XG5cbiAgLyogMTExLTM6IHRoZSBibG9jaydzIHBpbm5pbmcgb2Zmc2V0cyBmb2xsb3cgdGhlIGhlYWRlcidzLCBmb3IgdGhlIHNhbWVcbiAgICAgcmVhc29uIC0tIC5jaGFsay1tYWluJ3MgcGFkZGluZyBpcyBzMiBoZXJlLCBub3QgczQuIFRoZSBiYW5kIGlzXG4gICAgIHNob3J0ZXI6IDg4cHggb2YgcGljdHVyZSBpcyBhIGZhaXIgdHJhZGUgb24gYSBtb25pdG9yIGFuZCBhIHRoaXJkIG9mXG4gICAgIGEgcGhvbmUncyBmZWVkLiAqL1xuICAuY2hhbGstY2hhbm5lbC1oZWFkd3JhcCB7XG4gICAgdG9wOiBjYWxjKC0xICogdmFyKC0tY2hhbGstczIpKTtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNoYWxrLXMyKTtcbiAgICBib3gtc2hhZG93OiAwIHZhcigtLWNoYWxrLXMyKSB2YXIoLS1jaGFsay1iZyk7XG4gIH1cblxuICAvKiBUaGUgYmFuZCBvbiBhIHBob25lOiB0aGUgc2FtZSB0aHJlZSBuYW1lcywgZmV3ZXIgcGl4ZWxzIGVhY2ggLS0gYVxuICAgICB0aGlyZCBvZiBhIHBob25lJ3MgZmVlZCBpcyBub3Qgd2hhdCBcIm5vcm1hbFwiIHNob3VsZCBtZWFuLiAqL1xuICAuY2hhbGstY2hhbm5lbC1iYW5uZXIge1xuICAgIGhlaWdodDogNTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jaGFsay1zMSk7XG4gIH1cblxuICAuY2hhbGstY2hhbm5lbC1iYW5uZXJbZGF0YS1oZWlnaHQ9XCJzaG9ydFwiXSB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICB9XG5cbiAgLmNoYWxrLWNoYW5uZWwtYmFubmVyW2RhdGEtaGVpZ2h0PVwidGFsbFwiXSB7XG4gICAgaGVpZ2h0OiAxMjBweDtcbiAgfVxuXG4gIC5jaGFsay1jaGFubmVsLWhlYWRlci1uYW1lIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgLyogVHdvIGxpbmVzIHBlciBtZXNzYWdlOiBtZXRhIGFib3ZlLCBmdWxsLXdpZHRoIGJvZHkgYmVsb3cuIFRoZVxuICAgICBkZXNrdG9wIGB0aW1lIHwgc2VuZGVyIHwgYm9keWAgY29sdW1ucyBhcmUgd2hhdCBjb2xsYXBzZSB0aGUgYm9keSBvblxuICAgICBhIG5hcnJvdyB2aWV3cG9ydC4gKi9cbiAgLmNoYWxrLW1lc3NhZ2Uge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnI7XG4gICAgY29sdW1uLWdhcDogdmFyKC0tY2hhbGstczIpO1xuICAgIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMxKSAwO1xuICB9XG5cbiAgLmNoYWxrLW1lc3NhZ2UtLW5vLXRpbWUge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICB9XG5cbiAgLmNoYWxrLW1lc3NhZ2UtdGltZSB7XG4gICAgZ3JpZC1jb2x1bW46IDE7XG4gIH1cblxuICAuY2hhbGstbWVzc2FnZS1zZW5kZXIge1xuICAgIGdyaWQtY29sdW1uOiAyO1xuICB9XG5cbiAgLmNoYWxrLW1lc3NhZ2UtYm9keSxcbiAgLmNoYWxrLW1lc3NhZ2UtZ2lwaHksXG4gIC5jaGFsay1tZXNzYWdlLWF0dGFjaG1lbnRzLFxuICAuY2hhbGstbWVzc2FnZS1jb2RlLFxuICAuY2hhbGstbWVzc2FnZS0tbm8tdGltZSAuY2hhbGstbWVzc2FnZS1naXBoeSxcbiAgLmNoYWxrLW1lc3NhZ2UtLW5vLXRpbWUgLmNoYWxrLW1lc3NhZ2UtYXR0YWNobWVudHMsXG4gIC5jaGFsay1tZXNzYWdlLS1uby10aW1lIC5jaGFsay1tZXNzYWdlLWNvZGUsXG4gIC5jaGFsay1tZXNzYWdlLS1uby1ib2R5IC5jaGFsay1tZXNzYWdlLWdpcGh5LFxuICAuY2hhbGstbWVzc2FnZS0tbm8tYm9keSAuY2hhbGstbWVzc2FnZS1hdHRhY2htZW50cyxcbiAgLmNoYWxrLW1lc3NhZ2UtLW5vLWJvZHkgLmNoYWxrLW1lc3NhZ2UtY29kZSB7XG4gICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAvKiBEZXNrdG9wIHB1bGxzIG1lZGlhIHVwIGJlc2lkZSB0aGUgc2VuZGVyOyBoZXJlIHRoZSBtZXRhIGxpbmUgaXMgYVxuICAgICAgIHJvdyBvZiBpdHMgb3duLCBzbyBtZWRpYSBzdGFydHMgd2hlcmUgdGhlIGJvZHkgd291bGQuICovXG4gICAgbWFyZ2luLXRvcDogMDtcbiAgfVxuXG4gIC5jaGFsay1tZXNzYWdlLWF0dGFjaG1lbnRzIHtcbiAgICAvKiBUaGUgZGVza3RvcCByaWdodCBndXR0ZXIgaXMgdG9vIGNvc3RseSBvbiBhIG5hcnJvdyBzY3JlZW4uICovXG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tY2hhbGstczIpO1xuICB9XG5cbiAgLmNoYWxrLW1lc3NhZ2UtYm9keSB7XG4gICAgLyogQSBwYXN0ZWQgVVJMIGlzIG9uZSB1bmJyZWFrYWJsZSB0b2tlbjsgbGV0IGl0IGJyZWFrIGFueXdoZXJlIHJhdGhlclxuICAgICAgIHRoYW4gcHVzaCB0aGUgd2hvbGUgY29sdW1uIHdpZGVyIHRoYW4gdGhlIHNjcmVlbi4gKi9cbiAgICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbiAgfVxuXG4gIC5jaGFsay1tZXNzYWdlLXRocmVhZC1tZXRhLFxuICAuY2hhbGstbWVzc2FnZXMtLW5vLXRpbWUgLmNoYWxrLW1lc3NhZ2UtdGhyZWFkLW1ldGEsXG4gIC5jaGFsay1tZXNzYWdlLXJlYWN0aW9ucyxcbiAgLmNoYWxrLW1lc3NhZ2VzLS1uby10aW1lIC5jaGFsay1tZXNzYWdlLXJlYWN0aW9ucyB7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1jaGFsay1zMik7XG4gIH1cblxuICAvKiAtLSBjb21wb3NlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuICAvKiBObyByb3N0ZXIgY29sdW1uIHRvIGFsaWduIHRvLCBzbyB0aGUgZm9vdGVyIHN0YWNrczogd2hhdCB5b3UgdHlwZSBmaXJzdCxcbiAgICAgdGhlIHZvaWNlIGNvbnRyb2xzIHVuZGVyIGl0IHdpdGhpbiB0aHVtYiByZWFjaC4gY29sdW1uLXJldmVyc2UgcmF0aGVyIHRoYW5cbiAgICAgcmVvcmRlcmluZyB0aGUgRE9NLCBzbyB0aGUgdGFiIG9yZGVyIGlzIHRoZSBzYW1lIG9uIGJvdGggbGF5b3V0cy4gKi9cbiAgLmNoYWxrLWZvb3RlciB7XG4gICAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpIDAgbWF4KHZhcigtLWNoYWxrLXMyKSwgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKSAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICAgIC8qIDk0LTE6IHRoZSBkZXNrdG9wIHJ1bGUncyBhbGlnbi1pdGVtczogZW5kIG1lYW5zIFwic2l0IG9uIHRoZSBib3R0b20gb2ZcbiAgICAgICB0aGUgZ3JpZCByb3dcIi4gSGVyZSB0aGUgYXhpcyBoYXMgdHVybmVkOiBpbiBhIGNvbHVtbiBmbGV4IGl0IG1lYW5zIFwiaHVnXG4gICAgICAgdGhlIFJJR0hUIGVkZ2VcIiwgc28gdGhlIGNvbXBvc2VyIHN0b3BwZWQgc3RyZXRjaGluZyB0byB0aGUgZm9vdGVyIGFuZFxuICAgICAgIHRvb2sgaXRzIG93biBtaW4tY29udGVudCB3aWR0aCBpbnN0ZWFkIC0tIDM5M3B4IG9mIHRleHRhcmVhIGludHJpbnNpY1xuICAgICAgIG9uIGEgMzc0cHggc2NyZWVuLCBoYW5naW5nIG9mZiB0aGUgbGVmdCBlZGdlLiBTdHJldGNoIGlzIHdoYXQgdGhlXG4gICAgICAgc3RhY2tlZCBsYXlvdXQgd2FudGVkIGFsbCBhbG9uZy4gKi9cbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgfVxuXG4gIC5jaGFsay1jb21wb3Nlci1pbnB1dCB7XG4gICAgbWluLXdpZHRoOiAwO1xuICB9XG5cbiAgLyogOTQtMjogdGhlIGJ1dHRvbiBpcyB0aGUgZmllbGQncyBoZWlnaHQgb24gYm90aCBsYXlvdXRzIG5vdy5cbiAgICAgOTQtNDogYW5kIGl0IGlzIGFscmVhZHkgYSBmdWxsLWhlaWdodCB0YXJnZXQsIHNvIHRoZSBleHRyYSBob3Jpem9udGFsXG4gICAgIHBhZGRpbmcgd2FzIGJ1eWluZyBub3RoaW5nIC0tIDk0LTIgd2lkZW5lZCBpdCBmb3IgYSB0aHVtYiBiYWNrIHdoZW4gaXQgd2FzXG4gICAgIGEgMjZweCBjaGlwLiBUaGUgd29yZCBwbHVzIHMyIGlzIHN0aWxsIGEgfjQ4cHgtd2lkZSwgZmllbGQtaGVpZ2h0IHRhcmdldCxcbiAgICAgYW5kIHRoZSAxNnB4IGl0IGdpdmVzIGJhY2sgZ29lcyB0byB0aGUgZmllbGQgYmVzaWRlIGl0LiAqL1xuICAuY2hhbGstY29tcG9zZXItc2VuZCB7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jaGFsay1zMik7XG4gIH1cblxuICAvKiA5NC00OiB0aGUgZ2FwIGJldHdlZW4gdGhlIHRvb2wgYmxvY2ssIHRoZSBmaWVsZCBhbmQgc2VuZC4gczIgaXMgdGhlXG4gICAgIGRlc2t0b3Agcmh5dGhtLCB3aGVyZSB0aGVyZSBpcyB3aWR0aCB0byBzcGVuZCBvbiBpdDsgaGVyZSBldmVyeSA0cHggaXMgYVxuICAgICBjaGFyYWN0ZXIgYW5kIGEgaGFsZiBvZiB0aGUgbGluZSB5b3UgYXJlIHR5cGluZy4gKi9cbiAgLmNoYWxrLWNvbXBvc2VyLXJvdyB7XG4gICAgZ2FwOiB2YXIoLS1jaGFsay1zMSk7XG4gIH1cblxuICAvKiA0NC01OiBiaWdnZXIgc3F1YXJlcyBmb3IgdGh1bWJzLiBUaGUgYmxvY2sgaXMgdGhlbiAyIHggMzRweCArIHRoZSBnYXAsIHNvXG4gICAgIHRoZSBmaWVsZCBpcyBnaXZlbiB0aGUgc2FtZSBoZWlnaHQgcmF0aGVyIHRoYW4gbGVhdmluZyBkZWFkIHNwYWNlIGJlc2lkZVxuICAgICBpdCAtLSB0d28gbGluZXMgb2YgaW5wdXQgb24gYSBwaG9uZSBpcyBubyBoYXJkc2hpcC4gKi9cbiAgLmNoYWxrLWNvbXBvc2VyLXJhaWwtLWljb25zIC5jaGFsay1jb21wb3Nlci10b29sIHtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gIH1cblxuICAvKiA5NC0xOiB0aGUgdGV4dCBsYWJlbHMgYXJlIGluaXRpYWxzIGhlcmUsIHNvIHRoZSBzYW1lIDM0cHggc3F1YXJlIGFzIHRoZVxuICAgICBpY29ucyAtLSBcIkZcIiB3aXRoIHBhZGRpbmcgYWxvbmUgd291bGQgYmUgYSAyNHB4IHRhcmdldCwgdW5kZXIgdGhlIDE2cHhcbiAgICAgY29udHJvbCBmbG9vcidzIHNwaXJpdCBhbmQgYXdrd2FyZCB0byBoaXQuIFRoZSByYWlsIGlzIHRoZW4gdGhlIHNhbWVcbiAgICAgNzJweCBibG9jayB3aGljaGV2ZXIgc3R5bGUgeW91IHBpY2tlZC4gKi9cbiAgLmNoYWxrLWNvbXBvc2VyLXJhaWwtLXRleHQgLmNoYWxrLWNvbXBvc2VyLXRvb2wge1xuICAgIHdpZHRoOiAzNHB4O1xuICAgIGhlaWdodDogMzRweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5jaGFsay1jb21wb3Nlci1yYWlsIHtcbiAgICBtaW4td2lkdGg6IDcycHg7XG4gIH1cblxuICAuY2hhbGstY29tcG9zZXItaW5wdXQge1xuICAgIG1pbi1oZWlnaHQ6IDcycHg7XG4gIH1cblxuICAvKiAtLSB0aHJlYWQgcGFuZWw6IGZ1bGwgc2NyZWVuIGluc3RlYWQgb2YgYSB0aGlyZCBjb2x1bW4gLS0tLS0tLS0tLS0gKi9cblxuICAuY2hhbGstYXBwLS1waGFzZTA4Yi5jaGFsay1hcHAtLXRocmVhZC1vcGVuIC5jaGFsay10aHJlYWQtcGFuZWwge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBpbnNldDogMDtcbiAgICB6LWluZGV4OiA2MDtcbiAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICBwYWRkaW5nOiBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCkgZW52KHNhZmUtYXJlYS1pbnNldC1yaWdodClcbiAgICAgICAgICAgICBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KTtcbiAgfVxuXG4gIC8qIFNhbWUgdGlnaHRlbmVkIHJoeXRobSBhcyB0aGUgbW9iaWxlIC5jaGFsay1mb290ZXI7IHRoZSBzYWZlLWFyZWEgaW5zZXRcbiAgICAgaXMgYWxyZWFkeSBvbiB0aGUgcGFuZWwgaXRzZWxmLiAqL1xuICAuY2hhbGstdGhyZWFkLXBhbmVsLWZvb3RlciB7XG4gICAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpO1xuICB9XG5cbiAgLyogLS0gbW9kYWxzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbiAgLmNoYWxrLW1vZGFsLWJhY2tkcm9wIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMik7XG4gIH1cblxuICAuY2hhbGstbW9kYWwsXG4gIC5jaGFsay1tb2RhbC1jYXJkIHtcbiAgICAvKiBtaW4td2lkdGg6IDM2MHB4IGFsb25lIG92ZXJmbG93cyBhIDM2MHB4IHZpZXdwb3J0IG9uY2UgdGhlIGJhY2tkcm9wXG4gICAgICAgcGFkZGluZyBpcyBjb3VudGVkLiAqL1xuICAgIG1pbi13aWR0aDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgbWF4LWhlaWdodDogODhkdmg7XG4gIH1cblxuICAvKiA3MC0yOiBzYW1lIHN0ZWFkeSBmcmFtZSBhcyBvbiBkZXNrdG9wIFx1MjAxNCB0aGUgdGFiYmVkIHNldHRpbmdzIG1vZGFsc1xuICAgICBmaWxsIHRoZSBzYW1lIGJveCB3aGljaGV2ZXIgdGFiIGlzIG9wZW4uICovXG4gIC5jaGFsay1tb2RhbC0tc2V0dGluZ3Mge1xuICAgIGhlaWdodDogODhkdmg7XG4gIH1cblxuICAuY2hhbGstbW9kYWwtYm9keSB7XG4gICAgcGFkZGluZzogdmFyKC0tY2hhbGstczMpO1xuICB9XG5cbiAgLmNoYWxrLW1vZGFsLWNsb3NlIHtcbiAgICB3aWR0aDogMzJweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gIH1cblxuICAvKiA3MC0yOiB0aGUgdGFiIHBpbGxzIHdyYXAgaW50byByb3dzIChiYXNlIHJ1bGUpIGFuZCBncm93IHRvIGZpbmdlclxuICAgICBzaXplIFx1MjAxNCBldmVyeSBzZWN0aW9uIHJlYWNoYWJsZSB3aXRob3V0IGEgc2lkZXdheXMgc2Nyb2xsIG5vYm9keVxuICAgICBjb3VsZCBzZWUuICovXG4gIC5jaGFsay1wcm9maWxlLXRhYnMge1xuICAgIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKSB2YXIoLS1jaGFsay1zMyk7XG4gIH1cbiAgLmNoYWxrLXByb2ZpbGUtdGFiLWJ0biB7XG4gICAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpIHZhcigtLWNoYWxrLXMzKTtcbiAgICBtaW4taGVpZ2h0OiAzNnB4O1xuICB9XG4gIC5jaGFsay1wcm9maWxlLWZpbHRlciB7XG4gICAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpIHZhcigtLWNoYWxrLXMzKSAwIHZhcigtLWNoYWxrLXMzKTtcbiAgfVxuXG4gIC8qIDEyNC0zOiBmaW5nZXIgcm9vbS4gUm93cyBnZXQgZXh0cmEgdmVydGljYWwgcGFkZGluZywgYW5kIHRoZSBzd2l0Y2hcbiAgICAgZ3Jvd3MgdG8gMzZ4MjAgd2l0aCBhIDE2cHgga25vYiB0cmF2ZWwsIGJvdGggc2l6ZWQgZm9yIGEgdG91Y2ggdGFyZ2V0XG4gICAgIHJhdGhlciB0aGFuIGEgcG9pbnRlci4gKi9cbiAgLmNoYWxrLW1vZGFsLS1zZXR0aW5ncyAuY2hhbGstbW9kYWwtYm9keSA+IHNlY3Rpb24ge1xuICAgIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKTtcbiAgfVxuICAuY2hhbGstbW9kYWwtLXNldHRpbmdzIC5jaGFsay1wcm9maWxlLWZpZWxkIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMykgMDtcbiAgfVxuICAuY2hhbGstbW9kYWwtLXNldHRpbmdzIC5jaGFsay1wcm9maWxlLWNoZWNrYm94LWxhYmVsID4gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gIH1cbiAgLmNoYWxrLW1vZGFsLS1zZXR0aW5ncyAuY2hhbGstcHJvZmlsZS1jaGVja2JveC1sYWJlbCA+IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTo6YmVmb3JlIHtcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gIH1cbiAgLmNoYWxrLW1vZGFsLS1zZXR0aW5ncyAuY2hhbGstcHJvZmlsZS1jaGVja2JveC1sYWJlbCA+IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkOjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxNnB4KTtcbiAgfVxuXG4gIC8qIDEyNC0zOiBvbiBhIHBob25lIHRoZSB0d28tY29sdW1uIHNlbGVjdCByb3cgaXMgdW5kb25lLCBhbmQgdGhlXG4gICAgIGRyb3Bkb3duIHJldHVybnMgdG8gZnVsbCB3aWR0aCBiZW5lYXRoIGl0cyBsYWJlbC4gQXQgNDAwcHggdGhlXG4gICAgIGxhYmVsJ3MgNDUlIG1pbmltdW0gbGVmdCB0aGUgZHJvcGRvd24gdG9vIG5hcnJvdyBmb3IgYSB2YWx1ZSBsaWtlXG4gICAgIFwiMjI6NTM6MDEgKGhoOm1tOnNzKVwiLCB3aGljaCBjbGlwcGVkIG1pZC13b3JkLiBBIHNjcmVlbnNob3Qgb2YgdGhlXG4gICAgIHJlYWwgVUkgYXQgNDAwcHggc2hvd2VkIHRoZSBjbGlwLiAqL1xuICAuY2hhbGstbW9kYWwtLXNldHRpbmdzIC5jaGFsay1wcm9maWxlLWZpZWxkOmhhcyg+IC5jaGFsay1wcm9maWxlLXNlbGVjdCkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgfVxuICAuY2hhbGstbW9kYWwtLXNldHRpbmdzIC5jaGFsay1wcm9maWxlLWZpZWxkOmhhcyg+IC5jaGFsay1wcm9maWxlLXNlbGVjdCkgPiAuY2hhbGstcHJvZmlsZS1zZWxlY3Qge1xuICAgIGp1c3RpZnktc2VsZjogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8qIC0tIDYyLTY6IFp1Y2tlcm1vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuICAvKiBUaGUgdW5pZmllZCBjb252ZXJzYXRpb24gbGlzdCBhcyB0aGUgaG9tZSBzY3JlZW4uIEpTIGFscmVhZHkgZ2F0ZXNcbiAgICAgdGhlIG1vZGUgdG8gcGhvbmVzOyB0aGVzZSBydWxlcyBvbmx5IGV4aXN0IGluc2lkZSB0aGUgbW9iaWxlIGJsb2NrXG4gICAgIGJlY2F1c2UgdGhhdCBpcyB0aGUgb25seSBwbGFjZSB0aGUgY2xhc3MgY2FuIGFwcGVhci4gKi9cblxuICAvKiBCZWx0LWFuZC1icmFjZXMgd2l0aCB0aGUgSlNYOiBubyBkcmF3ZXIgYWZmb3JkYW5jZXMgaW4gdGhpcyBtb2RlLiAqL1xuICAuY2hhbGstYXBwLS16dWNrZXIgLmNoYWxrLW5hdi10b2dnbGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAvKiBUaGUgbGlzdCBvd25zIHRoZSB3aG9sZSBtYWluIGNvbHVtbjsgdGhlIGZlZWQncyB1c3VhbCBwYWRkaW5nIHdvdWxkXG4gICAgIGRvdWJsZSB1cCB3aXRoIHRoZSByb3dzJyBvd24uICovXG4gIC5jaGFsay1hcHAtLXp1Y2tlci1saXN0IC5jaGFsay1tYWluIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLmNoYWxrLXp1Y2tlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICB9XG5cbiAgLmNoYWxrLXp1Y2tlci1oZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gICAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpIHZhcigtLWNoYWxrLXMzKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgfVxuXG4gIC5jaGFsay16dWNrZXItdGl0bGUge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICB9XG5cbiAgLmNoYWxrLXp1Y2tlci1hZGQge1xuICAgIG1pbi13aWR0aDogNDRweDtcbiAgICBtaW4taGVpZ2h0OiA0NHB4O1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAvKiA2NC01OiB0aGUgZmlsdGVyIHRvZ2dsZSB3aGlsZSBpdHMgaW5wdXQgaXMgc2hvd2luZy4gKi9cbiAgLmNoYWxrLXp1Y2tlci1hZGQtLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldiwgIzE0MjAxYSk7XG4gICAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICB9XG5cbiAgLmNoYWxrLXp1Y2tlci1waW5uZWQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiA0NHB4O1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tY2hhbGstczMpO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gICAgZm9udDogaW5oZXJpdDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gIC8qIDY0LTE6IHRoZSBmcmllbmRzIHJvdydzIHJpZ2h0LWFsaWduZWQgXCJuL20gb25saW5lXCIgbm90ZS4gKi9cbiAgLmNoYWxrLXp1Y2tlci1waW5uZWQtbm90ZSB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgfVxuXG4gIC8qIDY0LTE6IHRoZSBleHBhbmRlZCBmcmllbmRzIHN1Ymxpc3QuIEluZGVudGVkIHBhc3QgdGhlIHBpbm5lZCByb3dzIHNvXG4gICAgIGl0IHJlYWRzIGFzIG5lc3RlZDsgY2FwcGVkIHNvIGEgYmlnIHJvc3RlciBjYW4ndCBzd2FsbG93IHRoZSBzY3JlZW4uICovXG4gIC5jaGFsay16dWNrZXItZnJpZW5kcyB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXgtaGVpZ2h0OiA0MHZoO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgfVxuXG4gIC5jaGFsay16dWNrZXItZnJpZW5kIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNDRweDtcbiAgICBwYWRkaW5nOiAwIHZhcigtLWNoYWxrLXMzKSAwIGNhbGModmFyKC0tY2hhbGstczMpICogMik7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgLmNoYWxrLXp1Y2tlci1mcmllbmQtbmFtZSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgfVxuXG4gIC5jaGFsay16dWNrZXItZnJpZW5kLXN0YXRlIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICAgIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICB9XG5cbiAgLmNoYWxrLXp1Y2tlci1mcmllbmRzLWVtcHR5IHtcbiAgICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMikgY2FsYyh2YXIoLS1jaGFsay1zMykgKiAyKTtcbiAgICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxuICAvKiA2NC0yOiB0aGUgY29udmVyc2F0aW9uIHF1aWNrIGZpbHRlciwgYWJvdmUgdGhlIHJvd3MgaXQgbmFycm93cy4gVGhlXG4gICAgIGlucHV0IHJldXNlcyB0aGUgc2lkZWJhciBmaWx0ZXIncyBzdHlsaW5nLiAqL1xuICAuY2hhbGstenVja2VyLWZpbHRlciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpIHZhcigtLWNoYWxrLXMzKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgfVxuXG4gIC5jaGFsay16dWNrZXItcm93cyB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgLyogU2Nyb2xsaW5nIHRoZSBsaXN0IG11c3Qgbm90IGNoYWluIGludG8gYW55dGhpbmcgYmVoaW5kIGl0LiAqL1xuICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IGNvbnRhaW47XG4gIH1cblxuICAvKiA5NS0zOiB0aGUgc3VibGlzdHMgYmVoaW5kIGEgcGlubmVkIHJvdyAoQCB2b2ljZSwgaGlkZGVuKSBhcmUgc2hlbHZlcywgbm90XG4gICAgIHRoZSBsaXN0LiBUaGV5IHNoYXJlIHRoZSByb3dzJyBtYXJrdXAsIHNvIHdpdGhvdXQgdGhpcyB0aGV5IGluaGVyaXRcbiAgICAgZmxleC1ncm93IGZyb20gaXQgYW5kIHN0YW5kIGFzIGEgc2Vjb25kIGdyb3dpbmcgY2hpbGQgYmVzaWRlIHRoZVxuICAgICBjb252ZXJzYXRpb24gbGlzdCAtLSB3aGljaCBzcGxpdHMgdGhlIGNvbHVtbiBiZXR3ZWVuIHRoZW0gYW5kIHNxdWVlemVzIGFcbiAgICAgb25lLXJvb20gdm9pY2Ugc2hlbGYgZG93biB0byBsZXNzIHRoYW4gdGhlIDU2cHggaXRzIHJvdyBuZWVkcywgY2xpcHBpbmcgaXRcbiAgICAgbWlkLWxpbmUuIEEgc2hlbGYgaXMgY29udGVudC1zaXplZCBpbnN0ZWFkLCB1cCB0byBpdHMgb3duIDQwdmggY2FwLCB3aXRoXG4gICAgIGl0cyBvd24gc2Nyb2xsIHBhc3QgdGhhdCAtLSBhIGxpdmUgcm9vbSB3aXRoIGEgbG9uZyBvY2N1cGFudCBsaXN0IG11c3RcbiAgICAgbm90IHN3YWxsb3cgdGhlIHNjcmVlbi5cbiAgICAgMTI2LTE6IGZsZXgtc2hyaW5rIHdhcyAxIGhlcmUgYXQgZmlyc3QsIG9uIHRoZSByZWFzb25pbmcgdGhhdCB0aGUgbGlzdCdzXG4gICAgIGZhciBsYXJnZXIgZmxleCBiYXNpcyB0YWtlcyB0aGUgY29sdW1uJ3Mgb3ZlcmZsb3cgYmVmb3JlIHRoZSBzaGVsZidzXG4gICAgIGRvZXMuIEZsZXhib3ggZG9lcyBub3Qgd29yayB0aGF0IHdheSAtLSBldmVyeSBjaGlsZCBzaHJpbmtzIGluXG4gICAgIHByb3BvcnRpb24gdG8gaXRzIG93biBmbGV4IGJhc2lzLCBhdCB0aGUgc2FtZSB0aW1lLiBXaXRoIGEgMTIwcHggc2hlbGZcbiAgICAgYW5kIGEgMTYwMHB4IGxpc3QsIHRoZSBzaGVsZiBzdGlsbCBnYXZlIHVwIGFib3V0IDclIG9mIHRoZSBvdmVyZmxvdzpcbiAgICAgd2l0aCB0d28gY29udmVyc2F0aW9ucyB0aGF0IHdhcyBhbG1vc3Qgbm90aGluZywgYnV0IHdpdGggbmluZSB0aGVcbiAgICAgbGlzdCdzIGJhc2lzIHNwYW5zIG1hbnkgc2NyZWVucywgdGhlIG92ZXJmbG93IHRvcHMgYSBzY3JlZW4sIGFuZCA3JSBvZlxuICAgICBpdCB3YXMgaGFsZiB0aGUgcm93IGluIHRoZSByZXBvcnQuIFNocmluayBpcyAwIG5vdzogdGhlIHNoZWxmIGhvbGRzIGl0c1xuICAgICBjb250ZW50IHNpemUgdXAgdG8gdGhlIGNhcCBhbmQgc2Nyb2xscyBwYXN0IGl0LCBhbmQgdGhlIGNvbnZlcnNhdGlvblxuICAgICBsaXN0IHRha2VzIHdoYXQgaXMgbGVmdC4gKi9cbiAgLmNoYWxrLXp1Y2tlci1yb3dzLS1zaGVsZiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgbWF4LWhlaWdodDogNDB2aDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgfVxuXG4gIC8qIDEyNi0yOiB0aGUgcGhvbmUgY2FsbCBiYXIgYm9ycm93cyAuY2hhbGstdm9pY2UtZG9jaydzIG93biBsb29rLCBidXQgdGhhdFxuICAgICBjbGFzcyBjYXJyaWVzIGEgbWFyZ2luIHNpemVkIGZvciBhIGNvbHVtbiBpbnNpZGUgdGhlIHNpZGViYXIuIEZsdXNoXG4gICAgIGFnYWluc3QgdGhlIGZvb3RlciBlZGdlcyBpcyB3aGF0IHRoZSBwaG9uZSBuZWVkcyBpbnN0ZWFkLCBzbyB0aGlzIHplcm9lc1xuICAgICBpdC4gVGhlIGhpbnQgaXMgdGhlIFwiXHUyNUI4XCIgYXJyb3cgc2hvd24gd2hlbiB0aGUgcm9vbSBvbiBzY3JlZW4gaXMgbm90IHRoZVxuICAgICByb29tIHlvdSBhcmUgY29ubmVjdGVkIHRvLiAqL1xuICAuY2hhbGstenVja2VyLWNhbGxiYXIge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC5jaGFsay16dWNrZXItY2FsbGJhci1oaW50IHtcbiAgICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgICBmbGV4OiBub25lO1xuICB9XG5cbiAgLmNoYWxrLXp1Y2tlci1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiA1NnB4O1xuICAgIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKSB2YXIoLS1jaGFsay1zMyk7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgLmNoYWxrLXp1Y2tlci1yb3ctYmFkZ2Uge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjBweDtcbiAgfVxuXG4gIC5jaGFsay16dWNrZXItcm93LW1haW4ge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycHg7XG4gIH1cblxuICAuY2hhbGstenVja2VyLXJvdy10b3Age1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICB9XG5cbiAgLmNoYWxrLXp1Y2tlci1yb3ctbmFtZSB7XG4gICAgZmxleDogMSAxIGF1dG87XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgfVxuXG4gIC5jaGFsay16dWNrZXItcm93LXdoZW4ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gICAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgfVxuXG4gIC5jaGFsay16dWNrZXItcm93LXByZXZpZXcge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICB9XG5cbiAgLmNoYWxrLXp1Y2tlci1yb3ctc2VuZGVyIHtcbiAgICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgfVxuXG4gIC8qIDk1LTQ6IHdobyBpcyBpbiBhIGxpdmUgcm9vbSwgaW4gdGhlIHByZXZpZXcgbGluZSdzIHNsb3QuIEl0IHdyYXBzIHJhdGhlclxuICAgICB0aGFuIGVsbGlwc2lzaW5nIC0tIGEgZnVsbCByb29tIGlzIGV4YWN0bHkgd2hlbiB0aGUgbmFtZXMgbWF0dGVyLCBhbmQgdGhlXG4gICAgIHNoZWxmIGFib3ZlIGlzIGNvbnRlbnQtc2l6ZWQgbm93LCBzbyB0aGUgcm93IGlzIGFsbG93ZWQgdG8gYmUgdHdvIG9yIHRocmVlXG4gICAgIGxpbmVzIHRhbGwuIFJvdyBnYXAgaXMgdGlnaHRlciB0aGFuIGNvbHVtbiBnYXAgc28gYSB3cmFwcGVkIHNlY29uZCBsaW5lXG4gICAgIHN0aWxsIHJlYWRzIGFzIG9uZSBibG9jay4gKi9cbiAgLmNoYWxrLXp1Y2tlci1yb3ctb2NjdXBhbnRzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMXB4IHZhcigtLWNoYWxrLXMyKTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICB9XG5cbiAgLmNoYWxrLXp1Y2tlci1vY2N1cGFudCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDNweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cblxuICAvKiBPbmUgbG9uZyBoYW5kbGUgbXVzdCBub3QgcHVzaCB0aGUgYmFkZ2VzIG9mZiB0aGUgcm93OyBpdCBnaXZlcyB1cCBpdHMgb3duXG4gICAgIHRhaWwgZmlyc3QuICovXG4gIC5jaGFsay16dWNrZXItb2NjdXBhbnQtbmFtZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB9XG5cbiAgLmNoYWxrLXp1Y2tlci1yb3ctZW1wdHkge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgfVxuXG4gIC8qIFRoZSB3YXkgYmFjayBmcm9tIGEgY29udmVyc2F0aW9uIHRvIHRoZSBsaXN0OyBsaXZlcyBpbiB0aGUgc3RpY2t5XG4gICAgIGNoYW5uZWwgaGVhZGVyLCBzaXplZCBmb3IgYSB0aHVtYi4gKi9cbiAgLmNoYWxrLXp1Y2tlci1iYWNrIHtcbiAgICBtaW4td2lkdGg6IDQ0cHg7XG4gICAgbWluLWhlaWdodDogMzRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNoYWxrLXMxKTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1icmlnaHQpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY2hhbGstcmFkaXVzKTtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIGZvbnQtc2l6ZTogY2FsYygxOHB4ICogdmFyKC0tY2hhbGstZm9udC1zY2FsZSkpO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuXG4vKiBpT1Mgem9vbXMgdGhlIHZpZXdwb3J0IHdoZW4gYSBmb2N1c2VkIGNvbnRyb2wgcmVuZGVycyBiZWxvdyAxNnB4LCBhbmRcbiAgIG5ldmVyIHpvb21zIGJhY2sgb3V0LiBFdmVyeSBmaWVsZCBwYXlzIHRoZSAycHggdG8gYXZvaWQgaXQgLS0gYW5kIG1heCgpXG4gICBrZWVwcyB0aGF0IGZsb29yIGludGFjdCB3aGVuIHRoZSBkZXZpY2UgZm9udCBzY2FsZSBpcyBzZXQgYmVsb3cgMS5cblxuICAgIWltcG9ydGFudCBpcyBsb2FkLWJlYXJpbmc6IHRoZSBmbG9vciBtdXN0IGJlYXQgZXZlcnkgY2xhc3MgcnVsZSB0aGF0XG4gICBzZXRzIGEgY29udHJvbCdzIGZvbnQtc2l6ZSAoLmNoYWxrLWF1dGgtaW5wdXQncyBmb250OiBpbmhlcml0LFxuICAgLmNoYWxrLWNvbXBvc2VyLWlucHV0J3MgdmFyKC0tY2hhbGstc2l6ZS1iYXNlKSwgLi4uKSAtLSBhcyBhIGJhcmVcbiAgIGVsZW1lbnQgc2VsZWN0b3IgaXQgc2lsZW50bHkgbG9zdCB0byBhbGwgb2YgdGhlbS4gQW5kIChob3Zlcjogbm9uZSlcbiAgIGpvaW5zIHRoZSB3aWR0aCBxdWVyeSBiZWNhdXNlIGEgcGhvbmUgaGVsZCBpbiBsYW5kc2NhcGUgaXMgd2lkZXIgdGhhblxuICAgNzY3cHggYnV0IHpvb21zIGFsbCB0aGUgc2FtZS4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCksIChob3Zlcjogbm9uZSkge1xuICBpbnB1dCxcbiAgdGV4dGFyZWEsXG4gIHNlbGVjdCB7XG4gICAgZm9udC1zaXplOiBtYXgoMTZweCwgY2FsYygxNnB4ICogdmFyKC0tY2hhbGstZm9udC1zY2FsZSkpKSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8qIDQxLTM6IHRvdWNoIGhhcyBubyBob3ZlciB0byByZXZlYWwgdGhlIG1hcmtlciB3aXRoLCBzbyB0aGUgZ2VzdHVyZSB0aGVyZSBpc1xuICAgYSBsb25nIHByZXNzIG9uIHRoZSByb3cgYW5kIHRoZXJlIGlzIG5vIHZpc2libGUgdHJpZ2dlciBhdCBhbGwuIFplcm9pbmcgdGhlXG4gICBndXR0ZXIgY29sbGFwc2VzIGV2ZXJ5IGNhbGMoKSB0aGF0IGRlcGVuZHMgb24gaXQgYmFjayB0byB0aGUgcHJlLW1hcmtlclxuICAgZ2VvbWV0cnksIHdoaWNoIGlzIHdoYXQgbGVhdmVzIHRoZSBtb2JpbGUgZ3JpZCBvdmVycmlkZXMgYWJvdmUgdW50b3VjaGVkLlxuICAgUm93cyBvbiBhIHBob25lIGFyZSB0aGUgd2lkdGggdGhleSB3ZXJlIGJlZm9yZS5cblxuICAgU2VsZWN0aW9uIGlzIG9mZiBiZWNhdXNlIGEgNTAwbXMgcHJlc3MgaXMgbm93IHRoZSBtZW51IGdlc3R1cmUsIGFuZCB0aGVcbiAgIHBsYXRmb3JtJ3Mgb3duIHNlbGVjdGlvbiBVSSB3b3VsZCByYWNlIGl0LiBcImNvcHkgdGV4dFwiIGluIHRoZSBtZW51IGlzIHRoZVxuICAgcmVwbGFjZW1lbnQsIGFuZCBpdCBpcyBhIGJldHRlciBvbmUgdGhhbiBkcmFnZ2luZyBoYW5kbGVzIGFjcm9zcyBhIGxpbmUuXG4gICBEZXNrdG9wIHNlbGVjdGlvbiBpcyBub3QgYWZmZWN0ZWQgLS0gYSByaWdodC1jbGljayBvbiBzZWxlY3RlZCB0ZXh0IHRoZXJlXG4gICBzdGlsbCB5aWVsZHMgdGhlIGJyb3dzZXIncyBvd24gbWVudS4gKi9cbkBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgOnJvb3Qge1xuICAgIC0tY2hhbGstbXNnLWd1dHRlcjogMHB4O1xuICB9XG5cbiAgLmNoYWxrLW1lc3NhZ2UtbWFya2VyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLmNoYWxrLW1lc3NhZ2Uge1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICB9XG5cbiAgLyogNDgtNjogcm9zdGVyIHJvd3MgY2FycnkgdGhlIHNhbWUgbG9uZy1wcmVzcyBnZXN0dXJlIChuaWNrIGNvbG91ciBtZW51KSxcbiAgICAgc28gdGhlIHByZXNzIG11c3Qgbm90IHJhaXNlIHRoZSB0ZXh0LXNlbGVjdGlvbiBjYWxsb3V0IGVpdGhlci4gKi9cbiAgLmNoYWxrLXNpZGViYXItaXRlbSB7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gIH1cblxuICAvKiBFbW9qaSBhcmUgcGlja2VkIHdpdGggYSB0aHVtYiBoZXJlLCBub3QgYSBjdXJzb3IuIFRoZSBkZXNrdG9wIHNpemVzXG4gICAgICgyOXgyNCBxdWljay1yZWFjdCBidXR0b25zLCAzMnB4IHBpY2tlciBjZWxscykgYXJlIG1vdXNlLXByZWNpc2lvbjtcbiAgICAgZ2l2ZSBib3RoIGEgfjQycHggdG91Y2ggdGFyZ2V0IGluc3RlYWQuIFRoZSBxdWljayByb3cgZ3Jvd3MgZnJvbVxuICAgICA2eDMxcHggdG8gNng1MHB4IGFuZCBzdGlsbCBmaXRzIHRoZSBmb2xkZWQgbWVudSBvbiBhIDMyMHB4IHBob25lLiAqL1xuICAuY2hhbGstbXNnbWVudS1xdWljayB7XG4gICAgZ2FwOiB2YXIoLS1jaGFsay1zMSk7XG4gIH1cblxuICAuY2hhbGstbXNnbWVudS1xdWljay1idG4ge1xuICAgIG1pbi13aWR0aDogNDJweDtcbiAgICBtaW4taGVpZ2h0OiA0MnB4O1xuICB9XG5cbiAgLmNoYWxrLWVtb2ppLXBpY2tlci1ncmlkIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCg0MnB4LCAxZnIpKTtcbiAgfVxuXG4gIC5jaGFsay1lbW9qaS1waWNrZXItaXRlbSB7XG4gICAgbWluLWhlaWdodDogNDJweDtcbiAgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuY2hhbGstc2lkZWJhciB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIDQyLTg6IHRoZSBjcm9zcy1jaGFubmVsIHRocmVhZCBpbmJveFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIDQ5LTY6IHRoZSBlbnRyeSBwb2ludCBtb3ZlZCBmcm9tIHRoZSBzdGF0dXMgYmFyIGludG8gdGhlIHNpZGViYXIsIGJldHdlZW5cbiAgIGZyaWVuZHMgYW5kIGNoYW5uZWxzLCBzbyBldmVyeSB1bnJlYWQgZG90IGxpdmVzIGluIHRoZSBzYW1lIGNvbHVtbi4gU3R5bGVkXG4gICBhcyBpdHMgb3duIHNlcGFyYXRlZCBzZWN0aW9uIHJvdzsgdGhlIGRvdCBpbmhlcml0cyBtYXJnaW4tbGVmdDphdXRvIGFuZFxuICAgc2l0cyBvbiB0aGUgcmlnaHQgZWRnZSBsaWtlIHRoZSBmcmllbmQgYW5kIGNoYW5uZWwgcm93cycgZG90cy4gKi9cbi5jaGFsay1zaWRlYmFyLXNlY3Rpb24tLXRocmVhZHMge1xuICBmbGV4LXNocmluazogMDtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlciwgIzFmMmExZik7XG59XG5cbi5jaGFsay1zaWRlYmFyLXRocmVhZHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMxKSB2YXIoLS1jaGFsay1zMik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNoYWxrLXNpZGViYXItdGhyZWFkczpob3Zlcixcbi5jaGFsay1zaWRlYmFyLXRocmVhZHM6Zm9jdXMtdmlzaWJsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYpO1xufVxuXG4uY2hhbGstc2lkZWJhci10aHJlYWRzLWdseXBoIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG59XG5cbi8qIDQ2LTI6IFwidGhlIHNlcnZlciBpcyBvbiBhIG5ld2VyIGJ1aWxkIHRoYW4gdGhpcyB0YWJcIi4gQW1iZXIgZm9yIHRoZSBzYW1lXG4gICByZWFzb24gdGhlIGF1ZGlvIG51ZGdlIGlzIGFtYmVyIC0tIGFjdGlvbmFibGUsIG5vdCBhbiBlcnJvci4gSW5saW5lIGluIHRoZVxuICAgYmFyIHJhdGhlciB0aGFuIGEgbW9kYWwsIHNvIG5vYm9keSdzIHNlbnRlbmNlIGdldHMgaW50ZXJydXB0ZWQuIERlbGliZXJhdGVseVxuICAgbm90IGluIHRoZSBtb2JpbGUgaGlkZSBibG9jayBiZWxvdzogdW5saWtlIHRoZSB2ZXJzaW9uIGJhZGdlLCB0aGlzIG9uZSBkb2VzXG4gICBzb21ldGhpbmcuICovXG4uY2hhbGstc3RhdHVzLXVwZGF0ZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uY2hhbGstc3RhdHVzLXVwZGF0ZS1yZWxvYWQge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstd2Fybik7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay13YXJuKTtcbiAgZm9udDogaW5oZXJpdDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczEpIHZhcigtLWNoYWxrLXMyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG5cbi5jaGFsay1zdGF0dXMtdXBkYXRlLXJlbG9hZDpob3Zlcixcbi5jaGFsay1zdGF0dXMtdXBkYXRlLXJlbG9hZDpmb2N1cy12aXNpYmxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstd2Fybik7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1iZyk7XG59XG5cbi5jaGFsay1zdGF0dXMtdXBkYXRlLWRpc21pc3Mge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMxKTtcbiAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLmNoYWxrLXN0YXR1cy11cGRhdGUtZGlzbWlzczpob3Zlcixcbi5jaGFsay1zdGF0dXMtdXBkYXRlLWRpc21pc3M6Zm9jdXMtdmlzaWJsZSB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG59XG5cbi5jaGFsay10aHJlYWRpbmJveC1wYW5lbCB7XG4gIHdpZHRoOiBtaW4oNDZyZW0sIDkydncpO1xuICBwYWRkaW5nOiAwO1xufVxuXG4uY2hhbGstdGhyZWFkaW5ib3gtaGVhZGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMykgdmFyKC0tY2hhbGstczQpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbn1cblxuLmNoYWxrLXRocmVhZGluYm94LXRpdGxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmNoYWxrLXRocmVhZGluYm94LWFjdGlvbnMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbn1cblxuLmNoYWxrLXRocmVhZGluYm94LW1hcmthbGwge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBwYWRkaW5nOiAwIHZhcigtLWNoYWxrLXMyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2hhbGstdGhyZWFkaW5ib3gtbWFya2FsbDpob3Zlcixcbi5jaGFsay10aHJlYWRpbmJveC1tYXJrYWxsOmZvY3VzLXZpc2libGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbn1cblxuLmNoYWxrLXRocmVhZGluYm94LXNlYXJjaCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMikgdmFyKC0tY2hhbGstczQpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbn1cblxuLmNoYWxrLXRocmVhZGluYm94LWlucHV0IHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG1pbi13aWR0aDogMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmcpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWNoYWxrLXJhZGl1cyk7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMxKSB2YXIoLS1jaGFsay1zMik7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xufVxuXG4uY2hhbGstdGhyZWFkaW5ib3gtaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5jaGFsay10aHJlYWRpbmJveC1jbGVhciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNoYWxrLXRocmVhZGluYm94LWNsZWFyOmhvdmVyLFxuLmNoYWxrLXRocmVhZGluYm94LWNsZWFyOmZvY3VzLXZpc2libGUge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xufVxuXG4uY2hhbGstdGhyZWFkaW5ib3gtc2VjdGlvbiArIC5jaGFsay10aHJlYWRpbmJveC1zZWN0aW9uIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG59XG5cbi5jaGFsay10aHJlYWRpbmJveC1pdGVtIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuLyogVGhlIHdob2xlIHJvdyBpcyB0aGUgY2xpY2sgdGFyZ2V0LCBzbyBpdCBpcyBhIGJ1dHRvbiB0aGF0IHNwYW5zIHRoZSB3aWR0aFxuICAgYW5kIGxlZnQtYWxpZ25zIGxpa2UgYSBsaXN0IGl0ZW0gcmF0aGVyIHRoYW4gbGlrZSBhIGNvbnRyb2wuICovXG4uY2hhbGstdGhyZWFkaW5ib3gtcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAycHg7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgZm9udDogaW5oZXJpdDtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpIHZhcigtLWNoYWxrLXM0KTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vKiBBZ2UgYmFuZHMgKDQ3LTEpOiB0aGUgb2xkZXIgdGhlIGxhc3QgcmVwbHksIHRoZSBmYWludGVyIHRoZSByb3cuIFRoZSBzdGVwc1xuICAgY29tZSBmcm9tIHRocmVhZEFnZVN0ZXAgLS0gMTBtLCAxaCwgMmgsIDhoLCAyNGgsIDF3IC0tIGFuZCB0aGUgZmxvb3Igc3RheXNcbiAgIGFib3ZlIHRoZSBwb2ludCB3aGVyZSB0aGUgdGV4dCBzdG9wcyBiZWluZyBjb21mb3J0YWJseSByZWFkYWJsZSwgYmVjYXVzZVxuICAgdGhlc2Ugcm93cyBhcmUgc3RpbGwgYSBsaXN0IHlvdSBhcmUgbWVhbnQgdG8gYmUgYWJsZSB0byBzY2FuIGFuZCBjbGljay5cbiAgIEhvdmVyIGFuZCBrZXlib2FyZCBmb2N1cyByZXN0b3JlIGZ1bGwgc3RyZW5ndGg6IHdoYXRldmVyIHlvdSBhcmUgcG9pbnRpbmcgYXRcbiAgIGlzIHdoYXQgeW91IGFyZSByZWFkaW5nLiAqL1xuLmNoYWxrLXRocmVhZGluYm94LXJvd1tkYXRhLWFnZT1cIjFcIl0geyBvcGFjaXR5OiAwLjg4OyB9XG4uY2hhbGstdGhyZWFkaW5ib3gtcm93W2RhdGEtYWdlPVwiMlwiXSB7IG9wYWNpdHk6IDAuNzg7IH1cbi5jaGFsay10aHJlYWRpbmJveC1yb3dbZGF0YS1hZ2U9XCIzXCJdIHsgb3BhY2l0eTogMC42ODsgfVxuLmNoYWxrLXRocmVhZGluYm94LXJvd1tkYXRhLWFnZT1cIjRcIl0geyBvcGFjaXR5OiAwLjU4OyB9XG4uY2hhbGstdGhyZWFkaW5ib3gtcm93W2RhdGEtYWdlPVwiNVwiXSB7IG9wYWNpdHk6IDAuNTsgfVxuLmNoYWxrLXRocmVhZGluYm94LXJvd1tkYXRhLWFnZT1cIjZcIl0geyBvcGFjaXR5OiAwLjQ0OyB9XG5cbi5jaGFsay10aHJlYWRpbmJveC1yb3c6aG92ZXIsXG4uY2hhbGstdGhyZWFkaW5ib3gtcm93OmZvY3VzLXZpc2libGUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLyogQSBtZW50aW9uZWQgdGhyZWFkIGdldHMgdGhlIGFjY2VudCBlZGdlLCB0aGUgc2FtZSBzaWduYWxcbiAgIC5jaGFsay11bnJlYWQtZG90LS1tZW50aW9uIGdpdmVzIGluIHRoZSBzaWRlYmFyIC0tIFwic29tZW9uZSBuYW1lZCBtZVwiXG4gICBzZXBhcmF0aW5nIGZyb20gXCJzb21ldGhpbmcgaGFwcGVuZWRcIiB3aXRob3V0IHJlc29ydGluZyB0byBhIGNvdW50LiAqL1xuLmNoYWxrLXRocmVhZGluYm94LWl0ZW0tLW1lbnRpb24gLmNoYWxrLXRocmVhZGluYm94LXJvdyB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xufVxuXG4uY2hhbGstdGhyZWFkaW5ib3gtbWV0YSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLW11dGVkKTtcbn1cblxuLmNoYWxrLXRocmVhZGluYm94LWNoYW4ge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uY2hhbGstdGhyZWFkaW5ib3gtYXQge1xuICBjb2xvcjogdmFyKC0tY2hhbGstYWNjZW50KTtcbn1cblxuLyogNDktMTogdGhlIHRocmVhZCdzIHRpdGxlIC0tIGl0cyBoZWFkIG1lc3NhZ2UsIG9uZSBsaW5lLCBjbGlwcGVkLiBTaXRzXG4gICBiZXR3ZWVuIHRoZSBtZXRhZGF0YSBhbmQgdGhlIGxhdGVzdC1yZXBseSBwcmV2aWV3IHNvIGEgcm93IHJlYWRzIGFzXG4gICBcIndoYXQgdGhlIHRocmVhZCBpcyBhYm91dFwiLCB0aGVuIFwid2hlcmUgaXQgaXMgbm93XCIuICovXG4uY2hhbGstdGhyZWFkaW5ib3gtaGVhZGxpbmUge1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctYnJpZ2h0KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qIE9uZSBsaW5lLCBjbGlwcGVkLiBUaGUgcHJldmlldyBpcyBhIGhpbnQgYWJvdXQgd2hldGhlciB0aGUgdGhyZWFkIG1hdHRlcnMsXG4gICBub3QgdGhlIHRocmVhZCBpdHNlbGYgLS0gb3BlbmluZyBpdCBpcyBvbmUgY2xpY2sgYXdheS4gKi9cbi5jaGFsay10aHJlYWRpbmJveC1wcmV2aWV3IHtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qIDQ3LTg6IHdobyB3cm90ZSB0aGUgbGluZSBhIGZpbHRlciBtYXRjaGVkLCB3aGVuIGl0IGlzIG5vdCB0aGUgbmV3ZXN0IHJlcGx5XG4gICB0aGUgcm93IHdvdWxkIG5vcm1hbGx5IHNob3cuICovXG4uY2hhbGstdGhyZWFkaW5ib3gtcHJldmlldy1zZW5kZXIge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xufVxuXG4uY2hhbGstdGhyZWFkaW5ib3gtZGVsZXRlZCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyogU2hvd24gd2hpbGUgYSBjaGFubmVsJ3Mga2V5IGlzIHN0aWxsIHNldHRsaW5nLCBzbyBhIHJvdyB0aGF0IGlzIHdhaXRpbmcgb25cbiAgIGNyeXB0byByZWFkcyBhcyBcImxvYWRpbmdcIiByYXRoZXIgdGhhbiBhcyBhbiBlbXB0eSBtZXNzYWdlLiAqL1xuLmNoYWxrLXRocmVhZGluYm94LXNrZWxldG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogMTRyZW07XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAwLjdlbTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbn1cblxuLmNoYWxrLXRocmVhZGluYm94LWVtcHR5IHtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczUpIHZhcigtLWNoYWxrLXM0KTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xufVxuXG4uY2hhbGstdGhyZWFkaW5ib3gtZW1wdHktaGludCB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWNoYWxrLXMyKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbn1cblxuLmNoYWxrLXRocmVhZGluYm94LW1vcmUge1xuICBtYXJnaW46IHZhcigtLWNoYWxrLXMyKSB2YXIoLS1jaGFsay1zNCkgdmFyKC0tY2hhbGstczMpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMxKSB2YXIoLS1jaGFsay1zMyk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNoYWxrLXRocmVhZGluYm94LW1vcmU6aG92ZXIsXG4uY2hhbGstdGhyZWFkaW5ib3gtbW9yZTpmb2N1cy12aXNpYmxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgNjEtMjogbWVzc2FnZSBzZWFyY2hcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiBUaGUgaGVhZGVyIGVudHJ5IHBvaW50LiBQdXNoZWQgdG8gdGhlIHJpZ2h0IGVkZ2U6IG5hbWUvYmFkZ2VzIGNsdXN0ZXIgb25cbiAgIHRoZSBsZWZ0LCBzZWFyY2ggaXMgYSB0b29sLCBub3QgcGFydCBvZiB0aGUgY2hhbm5lbCdzIGlkZW50aXR5LiAqL1xuLmNoYWxrLWNoYW5uZWwtc2VhcmNoIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIHBhZGRpbmc6IDAgdmFyKC0tY2hhbGstczIpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jaGFsay1jaGFubmVsLXNlYXJjaDpob3Zlcixcbi5jaGFsay1jaGFubmVsLXNlYXJjaDpmb2N1cy12aXNpYmxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG59XG5cbi5jaGFsay1zZWFyY2gtcGFuZWwge1xuICB3aWR0aDogbWluKDQ2cmVtLCA5MnZ3KTtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLmNoYWxrLXNlYXJjaC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMzKSB2YXIoLS1jaGFsay1zNCk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xufVxuXG4uY2hhbGstc2VhcmNoLXRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmNoYWxrLXNlYXJjaC1jb250cm9scyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tY2hhbGstczMpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMikgdmFyKC0tY2hhbGstczQpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4uY2hhbGstc2VhcmNoLWlucHV0d3JhcCB7XG4gIGZsZXg6IDEgMSAxMnJlbTtcbiAgbWluLXdpZHRoOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbn1cblxuLmNoYWxrLXNlYXJjaC1pbnB1dCB7XG4gIGZsZXg6IDEgMSBhdXRvO1xuICBtaW4td2lkdGg6IDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMSkgdmFyKC0tY2hhbGstczIpO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbn1cblxuLmNoYWxrLXNlYXJjaC1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmNoYWxrLXNlYXJjaC1jbGVhciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDA7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNoYWxrLXNlYXJjaC1jbGVhcjpob3Zlcixcbi5jaGFsay1zZWFyY2gtY2xlYXI6Zm9jdXMtdmlzaWJsZSB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG59XG5cbi5jaGFsay1zZWFyY2gtc2NvcGVzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMSk7XG59XG5cbi5jaGFsay1zZWFyY2gtc2NvcGUge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xuICBmb250OiBpbmhlcml0O1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBwYWRkaW5nOiAwIHZhcigtLWNoYWxrLXMyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2hhbGstc2VhcmNoLXNjb3BlLS1vbiB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY2hhbGstYWNjZW50KTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbn1cblxuLmNoYWxrLXNlYXJjaC1zY29wZTpob3Zlcjpub3QoOmRpc2FibGVkKSxcbi5jaGFsay1zZWFyY2gtc2NvcGU6Zm9jdXMtdmlzaWJsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xufVxuXG4uY2hhbGstc2VhcmNoLXNjb3BlOmRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC41O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5jaGFsay1zZWFyY2gtY2Fwbm90ZSB7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMxKSB2YXIoLS1jaGFsay1zNCk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2hhbGstYm9yZGVyKTtcbn1cblxuLmNoYWxrLXNlYXJjaC1saXN0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4uY2hhbGstc2VhcmNoLWl0ZW0ge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4vKiBUaGUgd2hvbGUgcm93IGlzIHRoZSBjbGljayB0YXJnZXQsIHNhbWUgY29uc3RydWN0aW9uIGFzIHRoZSB0aHJlYWRcbiAgIGluYm94IHJvd3MuICovXG4uY2hhbGstc2VhcmNoLXJvdyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMyKSB2YXIoLS1jaGFsay1zNCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNoYWxrLXNlYXJjaC1yb3c6aG92ZXIsXG4uY2hhbGstc2VhcmNoLXJvdzpmb2N1cy12aXNpYmxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG59XG5cbi5jaGFsay1zZWFyY2gtbWV0YSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMyk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG59XG5cbi5jaGFsay1zZWFyY2gtY2hhbiB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xufVxuXG4uY2hhbGstc2VhcmNoLXRocmVhZCB7XG4gIGZvbnQtc2l6ZTogY2FsYygxMHB4ICogdmFyKC0tY2hhbGstZm9udC1zY2FsZSkpO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4xZW07XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBwYWRkaW5nOiAxcHggNHB4O1xufVxuXG4uY2hhbGstc2VhcmNoLXdoZW4ge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmNoYWxrLXNlYXJjaC1zbmlwcGV0IHtcbiAgbWFyZ2luLXRvcDogMnB4O1xuICBmb250LXNpemU6IHZhcigtLWNoYWxrLXNpemUtc21hbGwpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICBvdmVyZmxvdy13cmFwOiBhbnl3aGVyZTtcbn1cblxuLyogSGl0cyBrZWVwIHRoZSByb3cncyBjb2xvcnMgLS0gYnJvd3Nlci1kZWZhdWx0IG1hcmsgeWVsbG93IHJlYWRzIGFzIGFcbiAgIGRpZmZlcmVudCBVSS4gV2VpZ2h0ICsgYWNjZW50IGlzIGVub3VnaC4gKi9cbi5jaGFsay1zZWFyY2gtaGl0IHtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uY2hhbGstc2VhcmNoLWVtcHR5IHtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczUpIHZhcigtLWNoYWxrLXM0KTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xufVxuXG4uY2hhbGstc2VhcmNoLWVtcHR5LWhpbnQge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1jaGFsay1zMik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG59XG5cbi8qIDYxLTM6IHRoZSBmdWxsLWhpc3RvcnkgY3Jhd2wgZm9vdGVyLiAqL1xuLmNoYWxrLXNlYXJjaC1kZWVwIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBnYXA6IHZhcigtLWNoYWxrLXMzKTtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpIHZhcigtLWNoYWxrLXM0KTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1zbWFsbCk7XG59XG5cbi5jaGFsay1zZWFyY2gtZGVlcC1zdGF0dXMge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctbXV0ZWQpO1xufVxuXG4uY2hhbGstc2VhcmNoLWRlZXAtYnRuIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnKTtcbiAgZm9udDogaW5oZXJpdDtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczEpIHZhcigtLWNoYWxrLXMzKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY2hhbGstc2VhcmNoLWRlZXAtYnRuOmhvdmVyLFxuLmNoYWxrLXNlYXJjaC1kZWVwLWJ0bjpmb2N1cy12aXNpYmxlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmctZWxldik7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgNTMtMTogdGhlIHBhcmtpbmcgbG90XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogVGhlIHNpZGViYXIgcm93LiBTYW1lIHNlcGFyYXRlZC1zZWN0aW9uIHRyZWF0bWVudCBhcyB0aGUgdGhyZWFkIGluYm94XG4gICBiZWxvdyBpdCwgc28gZnJpZW5kcyAvIHBhcmtpbmcgLyB0aHJlYWRzIHJlYWQgYXMgb25lIGNvbHVtbiBvZiBlbnRyeVxuICAgcG9pbnRzIHJhdGhlciB0aGFuIHRoZSByb3N0ZXIgZ3Jvd2luZyBhbiBvZGQgdGFpbC4gKi9cbi5jaGFsay1zaWRlYmFyLXNlY3Rpb24tLXBhcmtpbmcge1xuICBmbGV4LXNocmluazogMDtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbiAgcGFkZGluZy10b3A6IDAuNXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlciwgIzFmMmExZik7XG59XG5cbi5jaGFsay1zaWRlYmFyLXBhcmtpbmcge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZyk7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IHZhcigtLWNoYWxrLXMxKSB2YXIoLS1jaGFsay1zMik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmNoYWxrLXNpZGViYXItcGFya2luZzpob3Zlcixcbi5jaGFsay1zaWRlYmFyLXBhcmtpbmc6Zm9jdXMtdmlzaWJsZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYpO1xufVxuXG4uY2hhbGstc2lkZWJhci1wYXJraW5nLS1hY3RpdmUge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG59XG5cbi5jaGFsay1zaWRlYmFyLXBhcmtpbmctZ2x5cGgge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIGxpbmUtaGVpZ2h0OiAwO1xufVxuXG4uY2hhbGstc2lkZWJhci1wYXJraW5nLS1hY3RpdmUgLmNoYWxrLXNpZGViYXItcGFya2luZy1nbHlwaCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpO1xufVxuXG4vKiBUaGUgcGFuZSBpdHNlbGYuIFVubGlrZSBhIGNoYW5uZWwgaXQgbXVzdCBub3Qgc2Nyb2xsIC0tIHRoZXJlIGlzIG5vdGhpbmdcbiAgIHRvIHNjcm9sbCB0bywgYW5kIGEgc3RyYXkgc2Nyb2xsYmFyIHdvdWxkIGJlIHRoZSBvbmUgaGludCB0aGF0IHNvbWV0aGluZ1xuICAgaXMgYmVoaW5kIHRoaXMuICovXG4uY2hhbGstbWFpbi0tcGFya2VkIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNoYWxrLXBhcmtpbmcge1xuICBmbGV4OiAxO1xuICBtaW4taGVpZ2h0OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLyogRml0dGVkIHRvIHRoZSBwYW5lLCB3aGljaGV2ZXIgd2F5IGl0IGlzIG5hcnJvdy4gRGltIHJhdGhlciB0aGFuIGJyaWdodDpcbiAgIHRoZSBwb2ludCBvZiB0aGUgc2NyZWVuIGlzIHRoYXQgbm90aGluZyBvbiBpdCBhc2tzIHRvIGJlIGxvb2tlZCBhdC4gKi9cbi5jaGFsay1wYXJraW5nLW1hcmsge1xuICB3aWR0aDogbWluKDU1JSwgNDV2aCk7XG4gIGhlaWdodDogYXV0bztcbiAgb3BhY2l0eTogMC4yODtcbiAgYW5pbWF0aW9uOiBjaGFsay1wYXJraW5nLWRyaWZ0IDI4cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLyogQSBzY3JlZW5zYXZlciBkcmlmdHMuIFNsb3dseSBhbmQgYnkgYSBmZXcgcGVyY2VudCwgd2hpY2ggaXMgZW5vdWdoIHRvIGtlZXBcbiAgIGEgc3RhdGljIG1hcmsgb2ZmIG9uZSBzZXQgb2YgcGl4ZWxzIGZvciBob3VycyBhdCBhIHRpbWUuICovXG5Aa2V5ZnJhbWVzIGNoYWxrLXBhcmtpbmctZHJpZnQge1xuICAwJSAgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTMlLCAyJSkgc2NhbGUoMC45OCk7IH1cbiAgNTAlICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlKDMlLCAtMiUpIHNjYWxlKDEuMDIpOyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMyUsIDIlKSBzY2FsZSgwLjk4KTsgfVxufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuY2hhbGstcGFya2luZy1tYXJrIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cbn1cblxuLyogSGlkZGVuLCBub3QgdW5tb3VudGVkOiB0aGUgY29tcG9zZXIga2VlcHMgaXRzIGRyYWZ0IGFuZCBpdHMgcGVuZGluZ1xuICAgYXR0YWNobWVudHMgd2hpbGUgcGFya2VkLiAqL1xuLmNoYWxrLWZvb3Rlci1tYWluLS1wYXJrZWQge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiA1My01OiB0aGUgcHJpdmFjeSBzY3JlZW4uIFBhcmtpbmcgZW1wdGllcyB0aGUgY29udmVyc2F0aW9uOyB0aGlzIGNvdmVyc1xuICAgd2hhdCBpcyBzdGFuZGluZyBhcm91bmQgaXQgLS0gdGhlIHJvc3RlciB3aXRoIGl0cyBuYW1lcyBhbmQgdW5yZWFkIGNvdW50cyxcbiAgIHRoZSBoZWFkZXIgd2l0aCB5b3VyIGhhbmRsZSBpbiBpdCwgdGhlIGNhbGwgYmFyLCB3aGF0ZXZlciBtb2RhbCB3YXMgb3Blbi5cblxuICAgU3RhdGVkIGFzIFwiZXZlcnkgZGlyZWN0IGNoaWxkIGV4Y2VwdCB0aGUgcGFya2VkIHBhbmVcIiByYXRoZXIgdGhhbiBhcyBhIGxpc3RcbiAgIG9mIHRoZSBzdXJmYWNlcyB0aGF0IGxlYWssIHNvIGEgcGFuZSBhZGRlZCBpbiBzb21lIGxhdGVyIHBoYXNlIGlzIGNvdmVyZWRcbiAgIHRoZSBkYXkgaXQgbGFuZHMgaW5zdGVhZCBvZiB0aGUgZGF5IHNvbWVib2R5IHJlbWVtYmVycyB0aGlzIHJ1bGUuIFRoZSBwYW5lXG4gICBpcyBleGNsdWRlZCBiZWNhdXNlIGEgZmlsdGVyIGNhbm5vdCBiZSB1bmRvbmUgZnVydGhlciBkb3duIHRoZSB0cmVlIC0tIGl0XG4gICBoYXMgdG8gYmUgdGhlIHNpYmxpbmdzIHRoYXQgYmx1ciwgbmV2ZXIgYSBzaGFyZWQgYW5jZXN0b3IuXG5cbiAgIERlbGliZXJhdGVseSBOT1QgcG9pbnRlci1ldmVudHM6IG5vbmUuIENsaWNraW5nIGEgYmx1cnJlZCBjaGFubmVsIHJvdyBwaWNrc1xuICAgdGhhdCBjaGFubmVsLCB3aGljaCB1bi1wYXJrcywgd2hpY2ggaXMgdGhlIHdheSBiYWNrIHRoYXQgaGFzIGFsd2F5cyBiZWVuXG4gICB0aGVyZSAtLSBhbmQgb24gYSBwaG9uZSB0aGVyZSBpcyBubyBGOSwgc28gbWFraW5nIHRoZSBjaHJvbWUgaW5lcnQgd291bGQgYmVcbiAgIGEgbG9ja2VkIHJvb20uIChPbmUgY29uc2VxdWVuY2Ugb2YgZmlsdGVyOiBmaXhlZC1wb3NpdGlvbiBkZXNjZW5kYW50cywgc3VjaFxuICAgYXMgdGhlIHJvc3RlcidzIG5pY2sgbWVudSwgYXJlIHBvc2l0aW9uZWQgYWdhaW5zdCB0aGUgYmx1cnJlZCBlbGVtZW50IHdoaWxlXG4gICBpdCBpcyBvbi4gVGhleSBhcmUgYmx1cnJlZCB0b28sIHNvIGl0IGRvZXMgbm90IHNob3cuKSAqL1xuLmNoYWxrLWFwcC0tc2NyZWVuZWQgPiAqOm5vdCguY2hhbGstbWFpbikge1xuICBmaWx0ZXI6IGJsdXIoOHB4KTtcbiAgLyogTm90aGluZyBoZXJlIGlzIG1lYW50IHRvIGJlIHJlYWQsIHNvIG5vdGhpbmcgaGVyZSBpcyBtZWFudCB0byBiZVxuICAgICBzZWxlY3RlZCAtLSBhIGRyYWcgYWNyb3NzIHRoZSBmb2cgd291bGQgb3RoZXJ3aXNlIHB1dCB0aGUgbmFtZXMgb24gdGhlXG4gICAgIGNsaXBib2FyZCBhbmQgaGlnaGxpZ2h0IHRoZW0gbGVnaWJseSBvbiB0aGUgd2F5LiAqL1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLyogLS0tLSA4MC0xMzogdGhlIGd1ZXN0IHJvb20gKC9qb2luKSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICBUaGUgZ3Vlc3QncyB3aG9sZSBjaGFsazogaGVhZGVyLCBjYWxsIHN0cmlwLCBzY3JhdGNocGFkLCBjb21wb3Nlci4gT25lXG4gICBjb2x1bW4sIGZ1bGwgaGVpZ2h0LCByZXVzaW5nIHRoZSBhcHAncyB0b2tlbnMgc28gaXQgbWF0Y2hlcyBib3RoIHRoZW1lcy4gKi9cbi5jaGFsay1ndWVzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGhlaWdodDogMTAwZHZoO1xuICBtYXgtd2lkdGg6IDcyMHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczMpO1xuICBnYXA6IHZhcigtLWNoYWxrLXMzKTtcbn1cbi5jaGFsay1ndWVzdC1oZWFkZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gIGdhcDogdmFyKC0tY2hhbGstczMpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY2hhbGstZmctZGltKTtcbiAgcGFkZGluZy1ib3R0b206IHZhcigtLWNoYWxrLXMyKTtcbn1cbi5jaGFsay1ndWVzdC10aXRsZSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMS4xZW07XG59XG4uY2hhbGstZ3Vlc3QtZXhwaXJ5IHtcbiAgY29sb3I6IHZhcigtLWNoYWxrLXdhcm4sICNjOTApO1xufVxuLmNoYWxrLWd1ZXN0LWNvbm4ge1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG59XG4uY2hhbGstZ3Vlc3QtY2FsbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xufVxuLmNoYWxrLWd1ZXN0LWNhbGwtY29udHJvbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbn1cbi5jaGFsay1ndWVzdC1wZWVycyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG59XG4uY2hhbGstZ3Vlc3QtcGVlci12aWRlbyB7XG4gIG1heC13aWR0aDogMzIwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZy1lbGV2KTtcbn1cbi5jaGFsay1ndWVzdC1zY3JhdGNoIHtcbiAgZmxleDogMTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstZmctZGltKTtcbiAgcGFkZGluZzogdmFyKC0tY2hhbGstczIpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLWNoYWxrLXMxKTtcbn1cbi5jaGFsay1ndWVzdC1tc2cge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IHZhcigtLWNoYWxrLXMyKTtcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xufVxuLmNoYWxrLWd1ZXN0LW1zZy1zZW5kZXIge1xuICBmb250LXdlaWdodDogNzAwO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5jaGFsay1ndWVzdC1tc2ctdGV4dCB7XG4gIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuLmNoYWxrLWd1ZXN0LWNvbXBvc2VyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiB2YXIoLS1jaGFsay1zMik7XG59XG4uY2hhbGstZ3Vlc3QtY29tcG9zZXIgLmNoYWxrLWZpZWxkLWlucHV0IHtcbiAgZmxleDogMTtcbn1cblxuLyogODAtMTQ6IGVwaGVtZXJhbC1yb29tIGV4cGlyeSBiYWRnZSAoc2lkZWJhciArIGNvbnZlcnNhdGlvbiBsaXN0KS4gVXJnZW5jeVxuICAgaXMgYSBjbGFzcyAtLSBDU1AgZm9yYmlkcyBpbmxpbmUgc3R5bGVzIC0tIGFuZCBmbGlwcyBpbiB0aGUgbGFzdCA1IG1pbi4gKi9cbi5jaGFsay1leHBpcnktYmFkZ2Uge1xuICBmb250LXNpemU6IDAuODVlbTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLXdhcm4pO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay13YXJuKTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBwYWRkaW5nOiAwIHZhcigtLWNoYWxrLXMxKTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG4uY2hhbGstZXhwaXJ5LWJhZGdlLS11cmdlbnQge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZXJyb3IsICNmMzMpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNoYWxrLWVycm9yLCAjZjMzKTtcbn1cblxuLyogMzYtMzogd2luZG93IGNvbnRyb2xzIG92ZXJsYXkgLS0gY2hhbGsncyBvd24gaGVhZGVyIGRyYXduIGludG8gdGhlIHRpdGxlIGJhclxuICAgb2YgdGhlIGluc3RhbGxlZCBhcHAsIGluc3RlYWQgb2Ygc2l0dGluZyBiZWxvdyB0aGUgYnJvd3NlcidzLlxuXG4gICBEZWxpYmVyYXRlbHkgQ1NTLW9ubHkuIFRoZSBkaXNwbGF5LW1vZGUgcXVlcnkgZ29lcyBmYWxzZSB0aGUgbW9tZW50IHRoZSB1c2VyXG4gICB0dXJucyB0aGUgb3ZlcmxheSBvZmYgZnJvbSB0aGUgYXBwIG1lbnUsIHNvIHRoZSBmYWxsYmFjayBuZWVkcyBubyBKUztcbiAgIG5hdmlnYXRvci53aW5kb3dDb250cm9sc092ZXJsYXkgYW5kIGl0cyBnZW9tZXRyeWNoYW5nZSBldmVudCBhcmUgb25seSB3b3J0aFxuICAgcmVhY2hpbmcgZm9yIHdoZW4gc2NyaXB0IG5lZWRzIHRoZSBnZW9tZXRyeSwgYW5kIG5vdGhpbmcgaGVyZSBkb2VzLlxuXG4gICBMYXN0IGluIHRoZSBmaWxlIG9uIHB1cnBvc2UsIHNpbmNlIGl0IGhhcyB0byB3aW4gb3ZlciB0aGUgbW9iaWxlIGJsb2NrIC0tIGFuZFxuICAgZ3VhcmRlZCBvbiBtaW4td2lkdGggZm9yIHRoZSBzYW1lIHJlYXNvbiwgc28gdGhhdCBibG9jayBzdGlsbCB3aW5zIHdoZXJlIGl0XG4gICBzaG91bGQuIFRoZSBvdmVybGF5IG9ubHkgZXhpc3RzIGluIGFuIGluc3RhbGxlZCBkZXNrdG9wIHdpbmRvdywgc28gdGhlIGd1YXJkXG4gICBjb3N0cyBub3RoaW5nLiAqL1xuQG1lZGlhIChkaXNwbGF5LW1vZGU6IHdpbmRvdy1jb250cm9scy1vdmVybGF5KSBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLyogVGhlIGhlYWRlciBsZWF2ZXMgdGhlIHNoZWxsJ3MgYm94IGFuZCBzcGFucyB0aGUgd2luZG93LiBlbnYodGl0bGViYXItKikgaXNcbiAgICAgbWVhc3VyZWQgZnJvbSB0aGUgd2luZG93IGVkZ2UsIHdoaWxlIC5jaGFsay1hcHAgaXMgYSBwYWRkZWQgYm94IHRoYXQgdGhlXG4gICAgIGxheW91dC13aWR0aCBwcmVmIG1heSBhbHNvIGNhcCBhdCAxMTAwcHggYW5kIGNlbnRyZSAoOTMtMSkgLS0gc28gaW4gY2VudHJlZFxuICAgICBtb2RlIG9uIGEgd2lkZSBtb25pdG9yIHRoZSBjb2x1bW4gc3RhcnRzIHdlbGwgcmlnaHQgb2YgdGhlIG1hY09TIHRyYWZmaWNcbiAgICAgbGlnaHRzIChhcHBseWluZyB0aGUgaW5zZXQgdGhlcmUgd291bGQgaW5kZW50IHRoZSBsb2dvIGZvciBubyByZWFzb24pIGFuZFxuICAgICBvbiBhIG5hcnJvdyBvbmUgaXQgY29sbGlkZXMgd2l0aCB0aGVtLiBObyBwYWRkaW5nIGV4cHJlc3Npb24gaXMgcmlnaHQgaW5cbiAgICAgZXZlcnkgY2FzZSB3aGlsZSB0aGUgaGVhZGVyIHN0YXlzIGluc2lkZSB0aGF0IGJveCwgc28gaXQgY29tZXMgb3V0IG9mIGl0LlxuICAgICBDb3JyZWN0IGluIGZ1bGwtd2luZG93IG1vZGUgdG9vLCB3aGVyZSBpdCBzaW1wbHkgaGFzIGxlc3MgdG8gY29ycmVjdC5cbiAgICAgQ29udGVudCBiZWxvdyBrZWVwcyB3aGF0ZXZlciB3aWR0aCB0aGUgcHJlZiBnaXZlcyBpdC4gKi9cbiAgLmNoYWxrLWhlYWRlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogZW52KHRpdGxlYmFyLWFyZWEteSwgMCk7XG4gICAgbGVmdDogZW52KHRpdGxlYmFyLWFyZWEteCwgMCk7XG4gICAgd2lkdGg6IGVudih0aXRsZWJhci1hcmVhLXdpZHRoLCAxMDAlKTtcbiAgICBoZWlnaHQ6IGVudih0aXRsZWJhci1hcmVhLWhlaWdodCwgYXV0byk7XG4gICAgLyogVGhlIHN0cmlwIGlzIH4zMC0zOHB4LCB3ZWxsIHVuZGVyIHRoZSAxNi8xMiB0aGUgaGVhZGVyIG5vcm1hbGx5IGhhcywgc29cbiAgICAgICB0aGUgdmVydGljYWwgcGFkZGluZyBnb2VzIGFuZCB0aGUgYmFzZWxpbmUgYWxpZ25tZW50IGJlY29tZXMgY2VudHJpbmcuICovXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwIHZhcigtLWNoYWxrLXMzKTtcbiAgICAvKiBBYm92ZSB0aGUgc2lkZWJhcidzIHN0aWNreSBiaXRzICg0NSkgYW5kIGJlbG93IHRoZSBtb2RhbCBsYXllciAoMTAwKS4gKi9cbiAgICB6LWluZGV4OiA1MDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZyk7XG4gICAgLyogRHJhZyB0aGUgd2luZG93IGJ5IHRoZSBzdHJpcC4gV2l0aG91dCB0aGlzIHRoZSB3aW5kb3cgY2Fubm90IGJlIG1vdmVkIGF0XG4gICAgICAgYWxsIC0tIGFuZCB0aGUgZmFpbHVyZSBpcyBpbnZpc2libGUgaW4gYSBzY3JlZW5zaG90LiAqL1xuICAgIC13ZWJraXQtYXBwLXJlZ2lvbjogZHJhZztcbiAgICBhcHAtcmVnaW9uOiBkcmFnO1xuICB9XG5cbiAgLyogVGhlIG90aGVyIGhhbGYgb2YgdGhhdDogYW55dGhpbmcgY2xpY2thYmxlIGhhcyB0byBvcHQgYmFjayBvdXQsIG9yIGl0IHN0b3BzXG4gICAgIHJlc3BvbmRpbmcuIE1hdGNoaW5nIGVsZW1lbnRzIGFuZCByb2xlcyByYXRoZXIgdGhhbiBjbGFzc2VzIHNvIGEgbmV3IGJ1dHRvblxuICAgICBvciBtZW51IGluIHRoZSBoZWFkZXIgaXMgY292ZXJlZCB0aGUgZGF5IGl0IGxhbmRzLlxuXG4gICAgIFRoZSBbcm9sZT1tZW51XSBhcm0gY292ZXJzIHRoZSBkcm9wZG93biBwYW5lbHMgdGhlbXNlbHZlcywgbm90IGp1c3QgdGhlaXJcbiAgICAgaXRlbXMgLS0gYm90aCB0aGUgYWNjb3VudCBhbmQgcHJlc2VuY2UgbWVudXMgaGFuZyBvdXQgb2YgdGhlIHN0cmlwLCBhbmRcbiAgICAgd2l0aG91dCBpdCBhIGRyYWcgb24gdGhlIHBhZGRpbmcgYmV0d2VlbiBpdGVtcyB3b3VsZCBtb3ZlIHRoZSB3aW5kb3cuICovXG4gIC5jaGFsay1oZWFkZXIgYnV0dG9uLFxuICAuY2hhbGstaGVhZGVyIGEsXG4gIC5jaGFsay1oZWFkZXIgW3JvbGU9XCJtZW51XCJdIHtcbiAgICAtd2Via2l0LWFwcC1yZWdpb246IG5vLWRyYWc7XG4gICAgYXBwLXJlZ2lvbjogbm8tZHJhZztcbiAgfVxuXG4gIC8qIC5jaGFsay1hcHAgcGlucyBpdHNlbGYgdG8gMTAwZHZoLCBhbmQgd2l0aCB0aGUgaGVhZGVyIG91dCBvZiBmbG93IGl0cyBhdXRvXG4gICAgIGdyaWQgcm93IGNvbGxhcHNlcyB0byB6ZXJvLiBUaGlzIHB1dHMgYmFjayBleGFjdGx5IHRoZSBzdHJpcCBoZWlnaHQsIHNvIHRoZVxuICAgICByZWNsYWltZWQgc3BhY2UgaXMgdGhlIG9sZCBoZWFkZXIncyAtLSBib3gtc2l6aW5nOmJvcmRlci1ib3ggKHRoZSBnbG9iYWxcbiAgICAgcmVzZXQpIGtlZXBzIGl0IGluc2lkZSB0aGUgdmlld3BvcnQgcmF0aGVyIHRoYW4gYWRkaW5nIHRvIGl0LiAqL1xuICAuY2hhbGstYXBwIHtcbiAgICBwYWRkaW5nLXRvcDogZW52KHRpdGxlYmFyLWFyZWEtaGVpZ2h0LCAwKTtcbiAgfVxuXG4gIC8qIFNhbWUgdHJpbSB0aGUgbW9iaWxlIGJsb2NrIG1ha2VzIGZvciB0aGUgc2FtZSByZWFzb246IHRoZSBzdHJpcCBoYXMgbm8gcm9vbVxuICAgICBmb3IgaXQsIGFuZCB0aGUgcHJvZmlsZSBwYW5lbCdzIGFib3V0IHNlY3Rpb24gY2FycmllcyB0aGUgdmVyc2lvbiBhbnl3YXkuICovXG4gIC5jaGFsay12ZXJzaW9uLS1iYWRnZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vKiA4My02OiB0aGUgc2VydmVyLWlkZW50aXR5IHdhbGwuIEZ1bGwtc2NyZWVuLCBkZWxpYmVyYXRlbHkgc3RhcmsgLS0gaXQgaXNcbiAgIHRoZSBsb3VkZXN0IHRoaW5nIGluIHRoZSBwcm9kdWN0LCBvbiB0aGUgbGV2ZWwgb2YgdGhlIGlkZW50aXR5LWNoYW5nZWRcbiAgIHdhbGwgaXQgbWlycm9ycy4gKi9cbi5jaGFsay1waW53YWxsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBpbnNldDogMDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMS41cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jaGFsay1iZyk7XG4gIHotaW5kZXg6IDEwMDA7XG59XG4uY2hhbGstcGlud2FsbC1jYXJkIHtcbiAgbWF4LXdpZHRoOiAzNHJlbTtcbiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tY2hhbGstZXJyb3IpO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBwYWRkaW5nOiAxLjVyZW0gMS43NXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstc3VyZmFjZSwgdmFyKC0tY2hhbGstYmcpKTtcbn1cbi5jaGFsay1waW53YWxsLWNhcmQgaDEge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZXJyb3IpO1xuICBtYXJnaW4tdG9wOiAwO1xuICBmb250LXNpemU6IDEuM3JlbTtcbn1cbi5jaGFsay1waW53YWxsLWZwcyB7XG4gIG1hcmdpbjogMS4yNXJlbSAwO1xufVxuLmNoYWxrLXBpbndhbGwtZnBzIGR0IHtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIG1hcmdpbi10b3A6IDAuNzVyZW07XG59XG4uY2hhbGstcGlud2FsbC1mcHMgZGQge1xuICBtYXJnaW46IDAuMTVyZW0gMCAwO1xufVxuLmNoYWxrLXBpbndhbGwtZnBzIGNvZGUge1xuICBmb250LWZhbWlseTogdmFyKC0tY2hhbGstbW9ubywgbW9ub3NwYWNlKTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xufVxuLmNoYWxrLXBpbndhbGwtZ3VpZGFuY2Uge1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmctZGltKTtcbiAgZm9udC1zaXplOiB2YXIoLS1jaGFsay1zaXplLXNtYWxsKTtcbn1cbi5jaGFsay1waW53YWxsLXRydXN0IHtcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xuICBwYWRkaW5nOiAwLjZyZW0gMXJlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2hhbGstZXJyb3IpO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tY2hhbGstZXJyb3IpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQ6IGluaGVyaXQ7XG59XG4uY2hhbGstcGlud2FsbC10cnVzdDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWVycm9yKTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWJnKTtcbn1cblxuLyogODMtNzogb2JzZXJ2ZWQgcm9zdGVyLWNoYW5nZSBub3RpY2VzLiBNaXJyb3JzIHRoZSBqb2luIG5vdGljZSdzIHNoYXBlO1xuICAgdGhlIFwib2JzZXJ2ZWRcIiB0YWcgbWFya3MgdGhlIHByb3ZlbmFuY2UgKGNsaWVudC1kZXJpdmVkIGRpZmYsIG5vdCBhIHNlcnZlclxuICAgZXZlbnQpLCBhbmQgdGhlIGFsYXJtIHZhcmlhbnQgZmlyZXMgZm9yIGFkZGl0aW9ucyBhbmQgdW5saW5rZWQga2V5XG4gICBjaGFuZ2VzIC0tIHRoZSB0d28gc2hhcGVzIGEgZGF0YWJhc2Ugd3JpdGUgdGFrZXMuICovXG4uY2hhbGstcm9zdGVyLW5vdGljZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IDAuNXJlbTtcbiAgcGFkZGluZzogMC4zcmVtIDAuNnJlbTtcbiAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB2YXIoLS1jaGFsay13YXJuLCAjZmZjYzY2KTtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNoYWxrLXdhcm4sICNmZmNjNjYpIDclLCB0cmFuc3BhcmVudCk7XG4gIGZvbnQtc2l6ZTogMC43OHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cbi5jaGFsay1yb3N0ZXItbm90aWNlLS1hbGFybSB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1jaGFsay1lcnJvcik7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jaGFsay1lcnJvcikgOCUsIHRyYW5zcGFyZW50KTtcbn1cbi5jaGFsay1yb3N0ZXItbm90aWNlLXRhZyB7XG4gIGZvbnQtc2l6ZTogMC42OHJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgcGFkZGluZzogMCAwLjNlbTtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xuICBjdXJzb3I6IGhlbHA7XG59XG4uY2hhbGstcm9zdGVyLW5vdGljZS10ZXh0IHtcbiAgZmxleDogMTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLCAjYzhmZmM4KTtcbn1cbi5jaGFsay1yb3N0ZXItbm90aWNlLWRpc21pc3Mge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDAgMC4ycmVtO1xuICBmb250OiBpbmhlcml0O1xufVxuXG4vKiA4My05OiB0aGUgc2VydmVyLWlkZW50aXR5IGNhcmQgaW4gdGhlIHNlY3VyaXR5IHRhYi4gVGhlIGZpbmdlcnByaW50IGlzXG4gICB0aGUgYXJ0aWZhY3QgdXNlcnMgY29tcGFyZSBhZ2FpbnN0IHRoZSBvcGVyYXRvcidzIGFubm91bmNlbWVudCwgc28gaXRcbiAgIGdldHMgbW9ub3NwYWNlLCBnZW5lcm91cyBzcGFjaW5nIGFuZCBzZWxlY3RhYmlsaXR5LiAqL1xuLmNoYWxrLXNlcnZlci1pZGVudGl0eS1mcCBjb2RlIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogdmFyKC0tY2hhbGstbW9ubywgbW9ub3NwYWNlKTtcbiAgZm9udC1zaXplOiAxLjA1ZW07XG4gIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjU1ZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWZnLWRpbSk7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgdXNlci1zZWxlY3Q6IGFsbDtcbiAgd29yZC1icmVhazogYnJlYWstYWxsO1xufVxuLmNoYWxrLXNlcnZlci1pZGVudGl0eS1leHBsYWluIGNvZGUge1xuICBmb250LWZhbWlseTogdmFyKC0tY2hhbGstbW9ubywgbW9ub3NwYWNlKTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQaGFzZSAxMTU6IGZsYWlyIC0tIHRoZSBhbmltYXRlZCBtb2RlLCBvZmYgYnkgZGVmYXVsdC5cbiAgIEV2ZXJ5IHJ1bGUgYmVsb3cgaXMgZ2F0ZWQgb24gYSBkYXRhLWZsYWlyKiBhdHRyaWJ1dGUgdGhhdFxuICAgZGlzcGxheS1wcmVmcy50cyB3cml0ZXMgb24gPGh0bWw+LCBzbyB3aXRoIHRoZSBzd2l0Y2ggb2ZmIHRoaXNcbiAgIHNlY3Rpb24gbWF0Y2hlcyBub3RoaW5nLiBNb3Rpb24gaXMgc3BlbnQgb25seSBvbiB0cmFuc2Zvcm0sXG4gICB0cmFuc2xhdGUsIHNjYWxlLCBvcGFjaXR5LCBvdXRsaW5lLCBib3gtc2hhZG93IGFuZCBmaWx0ZXIgKHRoZVxuICAgY29tcG9zaXRvcidzIHByb3BlcnRpZXMgLS0gbmV2ZXIgbGF5b3V0KSwgYW5kIHRoZSByZWR1Y2VkLW1vdGlvblxuICAgYmxvY2sgYXQgdGhlIHZlcnkgZW5kIG9mIHRoZSBzZWN0aW9uIHR1cm5zIGFsbCBvZiBpdCBvZmYgYWdhaW4sXG4gICBsZWF2aW5nIGVhY2ggZWZmZWN0J3Mgc3RhdGljIHNoYXBlIGluIHBsYWNlLiBkb2NzL3RoZW1pbmcubWRcbiAgIGNhcnJpZXMgdGhlIHBvbGljeS5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiAxMTUtMTogdGhlIHRocmVzaG9sZCByb3cgdW5kZXIgdGhlIGZsYW1lIHN3aXRjaCAtLSB0d28gc21hbGwgbnVtYmVyXG4gICBmaWVsZHMgaW4gYSBzZW50ZW5jZS4gU2l6ZWQgaW4gY2ggc28gXCIyMFwiIGZpdHMgYW5kIFwiMjAwXCIgZG9lcyBub3RcbiAgIGxvb2sgaW52aXRlZC4gKi9cbi5jaGFsay1wcm9maWxlLWZsYWlyLXRocmVzaG9sZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tY2hhbGstczIpO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1jaGFsay1zMik7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1kaW0pO1xufVxuLmNoYWxrLXByb2ZpbGUtbnVtYmVyIHtcbiAgd2lkdGg6IDVjaDtcbiAgYmFja2dyb3VuZDogdmFyKC0tY2hhbGstYmcpO1xuICBjb2xvcjogdmFyKC0tY2hhbGstZmcpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1jaGFsay1yYWRpdXMpO1xuICBwYWRkaW5nOiB2YXIoLS1jaGFsay1zMSkgdmFyKC0tY2hhbGstczIpO1xuICBmb250OiBpbmhlcml0O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cbi5jaGFsay1wcm9maWxlLW51bWJlcjpkaXNhYmxlZCB7XG4gIGNvbG9yOiB2YXIoLS1jaGFsay1mZy1tdXRlZCk7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG4uY2hhbGstcHJvZmlsZS1udW1iZXI6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IDFweCBzb2xpZCB2YXIoLS1jaGFsay1hY2NlbnQpO1xuICBvdXRsaW5lLW9mZnNldDogMXB4O1xufVxuXG4vKiAxMTUtMjogdGhlIGZsYW1lLiBBIDEzcHggZ2x5cGggaW4gdGhlIHRoZW1lJ3Mgd2FybiBjb2xvdXIgLS0gdGhlIG9uZVxuICAgc2lnbmFsIGNvbG91ciB0aGF0IHJlYWRzIGFzIGhlYXQgaW4gZXZlcnkgcGFsZXR0ZSAtLSB3aXRoIHRoZSBjb3JlIGN1dFxuICAgb3V0IGluIHRoZSBwYWdlIGNvbG91ci4gVGhlIGZsaWNrZXIgaXMgdHJhbnNmb3JtIGFuZCBvcGFjaXR5IG9ubHksIGZyb21cbiAgIHRoZSBiYXNlIG9mIHRoZSB0b25ndWUsIGFuZCBkcmF3biBvbmx5IHVuZGVyIGRhdGEtZmxhaXItZmxhbWU6IHdpdGggdGhlXG4gICBzd2l0Y2ggb2ZmIHRoZSBlbGVtZW50IGlzIG5ldmVyIHJlbmRlcmVkLCBzbyB0aGVzZSBydWxlcyBhcmUgdGhlIHdob2xlXG4gICBlZmZlY3QgcmF0aGVyIHRoYW4gYSBnYXRlLiAqL1xuLmNoYWxrLWZsYWlyLWZsYW1lIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBjb2xvcjogdmFyKC0tY2hhbGstd2Fybik7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmNoYWxrLWZsYWlyLWZsYW1lLS1yb3cge1xuICAvKiBCZWZvcmUgdGhlIG5hbWUsIG5vdCBhZnRlciBpdDogdGhlIG5hbWUgaXMgd2hhdCB0cnVuY2F0ZXMgd2hlbiB0aGVcbiAgICAgc2lkZWJhciBpcyBuYXJyb3csIHNvIHRoZSByaWdodCBlZGdlIGlzIGV4YWN0bHkgd2hlcmUgYSBiYWRnZSBnb2VzXG4gICAgIHVuc2Vlbi4gQSBzbWFsbCBnYXAgdG8gdGhlIG5hbWU7IHRoZSBnbHlwaCBiZWZvcmUgaXQgaGFzIGl0cyBvd24uICovXG4gIG1hcmdpbi1yaWdodDogdmFyKC0tY2hhbGstczEpO1xufVxuLmNoYWxrLXp1Y2tlci1yb3ctdG9wIC5jaGFsay1mbGFpci1mbGFtZS0tcm93IHtcbiAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuLmNoYWxrLWZsYWlyLWZsYW1lLS1oZWFkZXIge1xuICBtYXJnaW4tbGVmdDogdmFyKC0tY2hhbGstczIpO1xuICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG4uY2hhbGstZmxhaXItZmxhbWUtc3ZnIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHRyYW5zZm9ybS1vcmlnaW46IDUwJSAxMDAlO1xufVxuLmNoYWxrLWZsYWlyLWZsYW1lLWlubmVyIHtcbiAgZmlsbDogdmFyKC0tY2hhbGstYmcpO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTAwJTtcbn1cbmh0bWxbZGF0YS1mbGFpci1mbGFtZV0gLmNoYWxrLWZsYWlyLWZsYW1lLXN2ZyB7XG4gIGFuaW1hdGlvbjogY2hhbGstZmxhaXItZmxpY2tlciAwLjlzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuaHRtbFtkYXRhLWZsYWlyLWZsYW1lXSAuY2hhbGstZmxhaXItZmxhbWUtaW5uZXIge1xuICBhbmltYXRpb246IGNoYWxrLWZsYWlyLWZsaWNrZXItY29yZSAwLjdzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuQGtleWZyYW1lcyBjaGFsay1mbGFpci1mbGlja2VyIHtcbiAgMCUgICB7IHRyYW5zZm9ybTogc2NhbGVZKDEpIHNrZXdYKDBkZWcpOyBvcGFjaXR5OiAxOyB9XG4gIDMwJSAgeyB0cmFuc2Zvcm06IHNjYWxlWSgxLjA4KSBza2V3WCgtM2RlZyk7IG9wYWNpdHk6IDAuODU7IH1cbiAgNTUlICB7IHRyYW5zZm9ybTogc2NhbGVZKDAuOTQpIHNrZXdYKDJkZWcpOyBvcGFjaXR5OiAxOyB9XG4gIDgwJSAgeyB0cmFuc2Zvcm06IHNjYWxlWSgxLjA1KSBza2V3WCgtMWRlZyk7IG9wYWNpdHk6IDAuOTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZVkoMSkgc2tld1goMGRlZyk7IG9wYWNpdHk6IDE7IH1cbn1cbkBrZXlmcmFtZXMgY2hhbGstZmxhaXItZmxpY2tlci1jb3JlIHtcbiAgMCUgICB7IHRyYW5zZm9ybTogc2NhbGVZKDEpOyB9XG4gIDUwJSAgeyB0cmFuc2Zvcm06IHNjYWxlWSgxLjIpIHRyYW5zbGF0ZVkoLTFweCk7IH1cbiAgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGVZKDEpOyB9XG59XG5cbi8qIDExNS0zOiB0aGUgd2F2ZS4gQSBuYW1lIGJlY29tZXMgb25lIGlubGluZS1ibG9jayBzcGFuIHBlciBsZXR0ZXIgZm9yXG4gICBXQVZFX01TICh3YXZlLnRzKSwgZWFjaCByaXNpbmcgYW5kIHNldHRsaW5nIG9uIGl0cyBvd24gZGVsYXksIHNvIHRoZVxuICAgbW90aW9uIHRyYXZlbHMgbGVmdCB0byByaWdodCB0aHJvdWdoIHRoZSBuYW1lLiBUaGUgZGVsYXkgaXMgb25lIHJ1bGVcbiAgIHBlciBsZXR0ZXIgcG9zaXRpb24gLS0gV0FWRV9NQVhfTEVUVEVSUyBvZiB0aGVtLCBhbmQgdGhlIHRhaWwgcGFzdCB0aGVcbiAgIGNhcCBzaGFyZXMgdGhlIGxhc3QgLS0gcmF0aGVyIHRoYW4gYSBjdXN0b20gcHJvcGVydHkgc2V0IGlubGluZSwgZm9yIHRoZVxuICAgcmVhc29uIG5pY2tjb2xvci50cyByZWNvcmRzLiBUcmFuc2Zvcm0gb25seSwgc28gYSB3YXZpbmcgbmFtZSBjb3N0cyBub1xuICAgbGF5b3V0OyBhbmQgYXQgcmVzdCB0aGUgbGV0dGVycyBzaXQgZXhhY3RseSB3aGVyZSB0aGUgcGxhaW4gdGV4dCBkaWQuICovXG4uY2hhbGstZmxhaXItd2F2ZSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5jaGFsay1mbGFpci13YXZlLWNoIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgMTAwJTtcbn1cbmh0bWxbZGF0YS1mbGFpci13YXZlXSAuY2hhbGstZmxhaXItd2F2ZS1jaCB7XG4gIGFuaW1hdGlvbjogY2hhbGstZmxhaXItd2F2ZSAwLjZzIGVhc2UtaW4tb3V0IDI7XG59XG5Aa2V5ZnJhbWVzIGNoYWxrLWZsYWlyLXdhdmUge1xuICAwJSAgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpOyB9XG4gIDM1JSAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuMjhlbSkgc2NhbGUoMS4wNik7IH1cbiAgNzAlICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwLjA2ZW0pIHNjYWxlKDEpOyB9XG4gIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7IH1cbn1cbi5jaGFsay1mbGFpci13YXZlLWNoOm50aC1jaGlsZCgxKSB7IGFuaW1hdGlvbi1kZWxheTogMG1zOyB9XG4uY2hhbGstZmxhaXItd2F2ZS1jaDpudGgtY2hpbGQoMikgeyBhbmltYXRpb24tZGVsYXk6IDYwbXM7IH1cbi5jaGFsay1mbGFpci13YXZlLWNoOm50aC1jaGlsZCgzKSB7IGFuaW1hdGlvbi1kZWxheTogMTIwbXM7IH1cbi5jaGFsay1mbGFpci13YXZlLWNoOm50aC1jaGlsZCg0KSB7IGFuaW1hdGlvbi1kZWxheTogMTgwbXM7IH1cbi5jaGFsay1mbGFpci13YXZlLWNoOm50aC1jaGlsZCg1KSB7IGFuaW1hdGlvbi1kZWxheTogMjQwbXM7IH1cbi5jaGFsay1mbGFpci13YXZlLWNoOm50aC1jaGlsZCg2KSB7IGFuaW1hdGlvbi1kZWxheTogMzAwbXM7IH1cbi5jaGFsay1mbGFpci13YXZlLWNoOm50aC1jaGlsZCg3KSB7IGFuaW1hdGlvbi1kZWxheTogMzYwbXM7IH1cbi5jaGFsay1mbGFpci13YXZlLWNoOm50aC1jaGlsZCg4KSB7IGFuaW1hdGlvbi1kZWxheTogNDIwbXM7IH1cbi5jaGFsay1mbGFpci13YXZlLWNoOm50aC1jaGlsZCg5KSB7IGFuaW1hdGlvbi1kZWxheTogNDgwbXM7IH1cbi5jaGFsay1mbGFpci13YXZlLWNoOm50aC1jaGlsZCgxMCkgeyBhbmltYXRpb24tZGVsYXk6IDU0MG1zOyB9XG4uY2hhbGstZmxhaXItd2F2ZS1jaDpudGgtY2hpbGQoMTEpIHsgYW5pbWF0aW9uLWRlbGF5OiA2MDBtczsgfVxuLmNoYWxrLWZsYWlyLXdhdmUtY2g6bnRoLWNoaWxkKDEyKSB7IGFuaW1hdGlvbi1kZWxheTogNjYwbXM7IH1cbi5jaGFsay1mbGFpci13YXZlLWNoOm50aC1jaGlsZCgxMykgeyBhbmltYXRpb24tZGVsYXk6IDcyMG1zOyB9XG4uY2hhbGstZmxhaXItd2F2ZS1jaDpudGgtY2hpbGQoMTQpIHsgYW5pbWF0aW9uLWRlbGF5OiA3ODBtczsgfVxuLmNoYWxrLWZsYWlyLXdhdmUtY2g6bnRoLWNoaWxkKDE1KSB7IGFuaW1hdGlvbi1kZWxheTogODQwbXM7IH1cbi5jaGFsay1mbGFpci13YXZlLWNoOm50aC1jaGlsZCgxNikgeyBhbmltYXRpb24tZGVsYXk6IDkwMG1zOyB9XG4uY2hhbGstZmxhaXItd2F2ZS1jaC0tdGFpbCB7IGFuaW1hdGlvbi1kZWxheTogOTAwbXM7IH1cblxuLyogMTE1LTQ6IHRoZSBiYW5uZXIgZHJpZnQuIFRoZSBwaWN0dXJlIHdhbmRlcnMgYSBwZXJjZW50IG9yIHR3byBhcm91bmQgaXRzXG4gICBmb2N1cyBwb2ludCBhbmQgYnJlYXRoZXMgYmV0d2VlbiAxLjAwIGFuZCAxLjA0IG92ZXIgZm9ydHkgc2Vjb25kcywgYmFja1xuICAgYW5kIGZvcnRoIC0tIGEgS2VuIEJ1cm5zIHNsb3cgZW5vdWdoIHRvIGJlIGZlbHQgcmF0aGVyIHRoYW4gd2F0Y2hlZC5cbiAgIEFuaW1hdGVkIG9uIHRoZSBpbmRpdmlkdWFsIHRyYW5zbGF0ZS9zY2FsZSBwcm9wZXJ0aWVzLCBOT1QgdHJhbnNmb3JtOlxuICAgQmFubmVyQmFuZCBzZXRzIHRyYW5zZm9ybTogc2NhbGUoem9vbSkgaW5saW5lIGZvciBhIGZpbGxlZCBiYW5kLCBhbmQgYVxuICAgdHJhbnNmb3JtIGtleWZyYW1lIHdvdWxkIHJlcGxhY2UgaXQ7IHRyYW5zbGF0ZSBhbmQgc2NhbGUgY29tcG9zZSB3aXRoIGl0XG4gICBpbnN0ZWFkLiBUaGUgYmFuZCBjbGlwcyAob3ZlcmZsb3c6IGhpZGRlbiksIHNvIHRoZSBkcmlmdCBuZXZlciBsZWFrcy5cbiAgIFRoZSBlZGl0b3IncyBwcmV2aWV3IGlzIGV4Y2x1ZGVkIC0tIGl0IGRyYWdzIHRoZSBwaWN0dXJlIHRvIHNldCB0aGVcbiAgIGZvY3VzLCBhbmQgYSBkcmlmdGluZyB0YXJnZXQgd291bGQgbWFrZSB0aGUgZm9jdXMgcG9pbnQgbGllIC0tIGFuZCBzbyBpc1xuICAgcG9zdGVyIGFydCwgd2hpY2ggaXMgc2hvd24gd2hvbGUgYnkgZGVmaW5pdGlvbjsgaXRzIGNvbG91ciB3YXNoIGJyZWF0aGVzXG4gICBpbnN0ZWFkLiAqL1xuaHRtbFtkYXRhLWZsYWlyLWJhbm5lcl1cbiAgLmNoYWxrLWNoYW5uZWwtYmFubmVyOm5vdCguY2hhbGstY2hhbm5lbC1iYW5uZXItLXByZXZpZXcpOm5vdCguY2hhbGstY2hhbm5lbC1iYW5uZXItLXBvc3RlcilcbiAgLmNoYWxrLWNoYW5uZWwtYmFubmVyLWltZyB7XG4gIGFuaW1hdGlvbjogY2hhbGstZmxhaXItYmFubmVyLWRyaWZ0IDQwcyBlYXNlLWluLW91dCBpbmZpbml0ZSBhbHRlcm5hdGU7XG59XG5odG1sW2RhdGEtZmxhaXItYmFubmVyXVxuICAuY2hhbGstY2hhbm5lbC1iYW5uZXItLXBvc3Rlcjpub3QoLmNoYWxrLWNoYW5uZWwtYmFubmVyLS1wcmV2aWV3KVxuICAuY2hhbGstY2hhbm5lbC1iYW5uZXItZmFkZSB7XG4gIGFuaW1hdGlvbjogY2hhbGstZmxhaXItYmFubmVyLWJyZWF0aGUgMTJzIGVhc2UtaW4tb3V0IGluZmluaXRlIGFsdGVybmF0ZTtcbn1cbkBrZXlmcmFtZXMgY2hhbGstZmxhaXItYmFubmVyLWRyaWZ0IHtcbiAgMCUgICB7IHRyYW5zbGF0ZTogLTEuNSUgMSU7IHNjYWxlOiAxLjA7IH1cbiAgMTAwJSB7IHRyYW5zbGF0ZTogMS41JSAtMSU7IHNjYWxlOiAxLjA0OyB9XG59XG5Aa2V5ZnJhbWVzIGNoYWxrLWZsYWlyLWJhbm5lci1icmVhdGhlIHtcbiAgMCUgICB7IG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7IG9wYWNpdHk6IDAuODsgfVxufVxuXG4vKiAxMTUtNjogdGhlIGZyYW1lcy4gRHJhd24gb24gdGhlIDxpbWc+IGl0c2VsZiAtLSBhbiBpbWFnZSBoYXMgbm9cbiAgIHBzZXVkby1lbGVtZW50cywgYW5kIGEgd3JhcHBlciB3b3VsZCBjb3N0IHRoZSBmZWVkIGl0cyAxZW0gcnVsZSAtLSBzbyBhXG4gICBmcmFtZSBpcyBhbiBvdXRsaW5lIHBsdXMgYSBib3gtc2hhZG93LCBhbmQgdGhlIG1vdGlvbiBpcyBvbiB0aG9zZSBhbmRcbiAgIG9uIGZpbHRlcjogbm90aGluZyB0aGF0IHRvdWNoZXMgbGF5b3V0LiBHYXRlZCBvbiBkYXRhLWZsYWlyLWZyYW1lcyBvblxuICAgPGh0bWw+LCBleGNlcHQgaW4gdGhlIHBpY2tlciwgd2hlcmUgdGhlIHN3YXRjaCBzaG93cyB3aGF0IHRoZSBmcmFtZSBJU1xuICAgd2hhdGV2ZXIgdGhlIHJlYWRlcidzIG93biBzd2l0Y2ggc2F5cy4gVGhlIHN0YXRpYyByaW5nIGlzIHRoZSByZXN0aW5nXG4gICBzaGFwZSByZWR1Y2VkIG1vdGlvbiBmYWxscyBiYWNrIHRvLlxuXG4gICBDb2xvdXJzOiBlbWJlciBpcyBoZWF0IGFuZCB0YWtlcyB0aGUgd2FybiB0b2tlbjsgcHVsc2UgaXMgdGhlIHJlYWRlcidzXG4gICBhY2NlbnQ7IGF1cm9yYSBpcyB0aGUgb25lIHBsYWNlIGEgZml4ZWQgaHVlIHNldCBpcyByaWdodCwgYmVjYXVzZSBhXG4gICBzcGVjdHJ1bSBpcyB0aGUgc2FtZSBzcGVjdHJ1bSBpbiBldmVyeSB0aGVtZS4gKi9cbi5jaGFsay1wcm9maWxlLWZyYW1lLXBpY2tlciB7XG4gIG1hcmdpbi10b3A6IHZhcigtLWNoYWxrLXMyKTtcbn1cbi5jaGFsay1wcm9maWxlLWZyYW1lLXN3YXRjaCB7XG4gIC8qIEFuIGVtcHR5IHNxdWFyZSBzdGFuZGluZyBpbiBmb3IgdGhlIHBpY3R1cmU6IHRoZSBmcmFtZSBpcyB0aGUgcG9pbnQuICovXG4gIGJhY2tncm91bmQ6IHZhcigtLWNoYWxrLWJnLWVsZXYtMik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNoYWxrLWJvcmRlcik7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8qIDExNS03OiBhIGZyYW1lIEFOSU1BVEVTIG9ubHkgd2hpbGUgaXRzIHdlYXJlciBpcyBvbmxpbmUgLS0gQXZhdGFyIHNldHNcbiAgIGRhdGEtbGl2ZSBmcm9tIHRoZSBwcmVzZW5jZSB0aGUgc3VyZmFjZSBrbm93cyAtLSBhbmQgcmVzdHMgYXMgYSBzdGF0aWNcbiAgIHJpbmcgb3RoZXJ3aXNlOiBtb3Rpb24gb24gYSBwaWN0dXJlIG9mIHNvbWVvbmUgd2hvIGlzIG5vdCBoZXJlIHNheXMgdGhlXG4gICB3cm9uZyB0aGluZy4gVGhlIHBpY2tlcidzIHN3YXRjaGVzIGFsd2F5cyBtb3ZlLCBzaW5jZSB0aGV5IHNob3cgd2hhdCBhXG4gICBmcmFtZSBpcy4gVHdvIHNlbGVjdG9ycyBwZXIgZnJhbWU6IHRoZSByaW5nIChhbHdheXMpLCB0aGUgbW90aW9uIChsaXZlKS4gKi9cblxuLyogZW1iZXI6IGEgd2FybSBnbG93IHRoYXQgYnJlYXRoZXMuICovXG5odG1sW2RhdGEtZmxhaXItZnJhbWVzXSAuY2hhbGstYXZhdGFyW2RhdGEtZnJhbWU9XCJlbWJlclwiXSxcbi5jaGFsay1wcm9maWxlLWZyYW1lLXN3YXRjaFtkYXRhLWZyYW1lPVwiZW1iZXJcIl0ge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tY2hhbGstd2Fybik7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIGJveC1zaGFkb3c6IDAgMCA2cHggMXB4IHZhcigtLWNoYWxrLXdhcm4pO1xufVxuaHRtbFtkYXRhLWZsYWlyLWZyYW1lc10gLmNoYWxrLWF2YXRhcltkYXRhLWZyYW1lPVwiZW1iZXJcIl1bZGF0YS1saXZlXSxcbi5jaGFsay1wcm9maWxlLWZyYW1lLXN3YXRjaFtkYXRhLWZyYW1lPVwiZW1iZXJcIl0ge1xuICBhbmltYXRpb246IGNoYWxrLWZsYWlyLWZyYW1lLWVtYmVyIDIuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGUgYWx0ZXJuYXRlO1xufVxuQGtleWZyYW1lcyBjaGFsay1mbGFpci1mcmFtZS1lbWJlciB7XG4gIDAlICAgeyBib3gtc2hhZG93OiAwIDAgNHB4IDAgdmFyKC0tY2hhbGstd2Fybik7IG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7IGJveC1zaGFkb3c6IDAgMCAxMHB4IDNweCB2YXIoLS1jaGFsay13YXJuKTsgb3BhY2l0eTogMC45MjsgfVxufVxuXG4vKiBhdXJvcmE6IGEgcmluZyBkcmlmdGluZyB0aHJvdWdoIHRoZSBzcGVjdHJ1bS4gaHVlLXJvdGF0ZSBvbiB0aGUgb3V0bGluZVxuICAgYWxvbmUgaXMgbm90IHBvc3NpYmxlIChmaWx0ZXIgYXBwbGllcyB0byB0aGUgd2hvbGUgYm94KSwgc28gdGhlIHJpbmdcbiAgIGN5Y2xlcyB0aHJvdWdoIGV4cGxpY2l0IHN0b3BzIGFuZCB0aGUgcGljdHVyZSBiZW5lYXRoIHN0YXlzIHRydWUuICovXG5odG1sW2RhdGEtZmxhaXItZnJhbWVzXSAuY2hhbGstYXZhdGFyW2RhdGEtZnJhbWU9XCJhdXJvcmFcIl0sXG4uY2hhbGstcHJvZmlsZS1mcmFtZS1zd2F0Y2hbZGF0YS1mcmFtZT1cImF1cm9yYVwiXSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCAjNGZkMWM1O1xuICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICBib3gtc2hhZG93OiAwIDAgNXB4IDFweCAjNGZkMWM1O1xufVxuaHRtbFtkYXRhLWZsYWlyLWZyYW1lc10gLmNoYWxrLWF2YXRhcltkYXRhLWZyYW1lPVwiYXVyb3JhXCJdW2RhdGEtbGl2ZV0sXG4uY2hhbGstcHJvZmlsZS1mcmFtZS1zd2F0Y2hbZGF0YS1mcmFtZT1cImF1cm9yYVwiXSB7XG4gIGFuaW1hdGlvbjogY2hhbGstZmxhaXItZnJhbWUtYXVyb3JhIDZzIGxpbmVhciBpbmZpbml0ZTtcbn1cbkBrZXlmcmFtZXMgY2hhbGstZmxhaXItZnJhbWUtYXVyb3JhIHtcbiAgMCUgICB7IG91dGxpbmUtY29sb3I6ICM0ZmQxYzU7IGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICM0ZmQxYzU7IH1cbiAgMjUlICB7IG91dGxpbmUtY29sb3I6ICM2M2IzZWQ7IGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICM2M2IzZWQ7IH1cbiAgNTAlICB7IG91dGxpbmUtY29sb3I6ICNiNzk0ZjQ7IGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNiNzk0ZjQ7IH1cbiAgNzUlICB7IG91dGxpbmUtY29sb3I6ICM2OGQzOTE7IGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICM2OGQzOTE7IH1cbiAgMTAwJSB7IG91dGxpbmUtY29sb3I6ICM0ZmQxYzU7IGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICM0ZmQxYzU7IH1cbn1cblxuLyogcHVsc2U6IGEgcmluZyBpbiB0aGUgYWNjZW50IGNvbG91ciwgYmVhdGluZy4gb3V0bGluZS1vZmZzZXQgaXNcbiAgIGFuaW1hdGFibGUgYW5kIGNvc3RzIG5vIGxheW91dC4gKi9cbmh0bWxbZGF0YS1mbGFpci1mcmFtZXNdIC5jaGFsay1hdmF0YXJbZGF0YS1mcmFtZT1cInB1bHNlXCJdLFxuLmNoYWxrLXByb2ZpbGUtZnJhbWUtc3dhdGNoW2RhdGEtZnJhbWU9XCJwdWxzZVwiXSB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jaGFsay1hY2NlbnQpO1xuICBvdXRsaW5lLW9mZnNldDogMXB4O1xufVxuaHRtbFtkYXRhLWZsYWlyLWZyYW1lc10gLmNoYWxrLWF2YXRhcltkYXRhLWZyYW1lPVwicHVsc2VcIl1bZGF0YS1saXZlXSxcbi5jaGFsay1wcm9maWxlLWZyYW1lLXN3YXRjaFtkYXRhLWZyYW1lPVwicHVsc2VcIl0ge1xuICBhbmltYXRpb246IGNoYWxrLWZsYWlyLWZyYW1lLXB1bHNlIDEuNnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5Aa2V5ZnJhbWVzIGNoYWxrLWZsYWlyLWZyYW1lLXB1bHNlIHtcbiAgMCUgICB7IG91dGxpbmUtb2Zmc2V0OiAxcHg7IG91dGxpbmUtY29sb3I6IHZhcigtLWNoYWxrLWFjY2VudCk7IH1cbiAgNTAlICB7IG91dGxpbmUtb2Zmc2V0OiAzcHg7IG91dGxpbmUtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jaGFsay1hY2NlbnQpIDU1JSwgdHJhbnNwYXJlbnQpOyB9XG4gIDEwMCUgeyBvdXRsaW5lLW9mZnNldDogMXB4OyBvdXRsaW5lLWNvbG9yOiB2YXIoLS1jaGFsay1hY2NlbnQpOyB9XG59XG5cbi8qIDExNS03OiBtYXRyaXggLS0gdGhlIHRlcm1pbmFsIGdyZWVuLCBpbiBzdGVwcyByYXRoZXIgdGhhbiBlYXNlZCwgdGhlXG4gICB3YXkgYSBwaG9zcGhvciBmbGlja2VyczogdGhlIHJpbmcgc25hcHMgYmV0d2VlbiB0d28gZ3JlZW5zIGFuZCB0aGUgZ2xvd1xuICAganVtcHMgd2l0aCBpdC4gRml4ZWQgaGV4LCBiZWNhdXNlIFwibWF0cml4IGdyZWVuXCIgaXMgb25lIGNvbG91ciBpbiBldmVyeVxuICAgdGhlbWUsIGluY2x1ZGluZyB0aGUgbGlnaHQgb25lcy4gKi9cbmh0bWxbZGF0YS1mbGFpci1mcmFtZXNdIC5jaGFsay1hdmF0YXJbZGF0YS1mcmFtZT1cIm1hdHJpeFwiXSxcbi5jaGFsay1wcm9maWxlLWZyYW1lLXN3YXRjaFtkYXRhLWZyYW1lPVwibWF0cml4XCJdIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkICMwMGZmNDE7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIGJveC1zaGFkb3c6IDAgMCA2cHggMXB4ICMwMGZmNDE7XG59XG5odG1sW2RhdGEtZmxhaXItZnJhbWVzXSAuY2hhbGstYXZhdGFyW2RhdGEtZnJhbWU9XCJtYXRyaXhcIl1bZGF0YS1saXZlXSxcbi5jaGFsay1wcm9maWxlLWZyYW1lLXN3YXRjaFtkYXRhLWZyYW1lPVwibWF0cml4XCJdIHtcbiAgYW5pbWF0aW9uOiBjaGFsay1mbGFpci1mcmFtZS1tYXRyaXggMS40cyBzdGVwcygxLCBlbmQpIGluZmluaXRlO1xufVxuQGtleWZyYW1lcyBjaGFsay1mbGFpci1mcmFtZS1tYXRyaXgge1xuICAwJSAgIHsgb3V0bGluZS1jb2xvcjogIzAwZmY0MTsgYm94LXNoYWRvdzogMCAwIDZweCAxcHggIzAwZmY0MTsgfVxuICAzNSUgIHsgb3V0bGluZS1jb2xvcjogIzBmOGYyZjsgYm94LXNoYWRvdzogMCAwIDNweCAwICMwZjhmMmY7IH1cbiAgNDUlICB7IG91dGxpbmUtY29sb3I6ICMwMGZmNDE7IGJveC1zaGFkb3c6IDAgMCA5cHggMnB4ICMwMGZmNDE7IH1cbiAgNzAlICB7IG91dGxpbmUtY29sb3I6ICMxMmM0M2Y7IGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICMxMmM0M2Y7IH1cbiAgODAlICB7IG91dGxpbmUtY29sb3I6ICMwZjhmMmY7IGJveC1zaGFkb3c6IDAgMCAzcHggMCAjMGY4ZjJmOyB9XG4gIDEwMCUgeyBvdXRsaW5lLWNvbG9yOiAjMDBmZjQxOyBib3gtc2hhZG93OiAwIDAgNnB4IDFweCAjMDBmZjQxOyB9XG59XG5cbi8qIDExNS03OiBmcm9zdCAtLSBpY2Ugd2hpdGUgd2l0aCBhIHNsb3cgY29sZCBicmVhdGgsIGFuZCB0aGUgcGljdHVyZVxuICAgaXRzZWxmIGJyaWdodGVucyBhIHRvdWNoIGF0IHRoZSBwZWFrLiAqL1xuaHRtbFtkYXRhLWZsYWlyLWZyYW1lc10gLmNoYWxrLWF2YXRhcltkYXRhLWZyYW1lPVwiZnJvc3RcIl0sXG4uY2hhbGstcHJvZmlsZS1mcmFtZS1zd2F0Y2hbZGF0YS1mcmFtZT1cImZyb3N0XCJdIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkICNiZmVmZmY7XG4gIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gIGJveC1zaGFkb3c6IDAgMCA2cHggMXB4ICM3ZmQ0ZmY7XG59XG5odG1sW2RhdGEtZmxhaXItZnJhbWVzXSAuY2hhbGstYXZhdGFyW2RhdGEtZnJhbWU9XCJmcm9zdFwiXVtkYXRhLWxpdmVdLFxuLmNoYWxrLXByb2ZpbGUtZnJhbWUtc3dhdGNoW2RhdGEtZnJhbWU9XCJmcm9zdFwiXSB7XG4gIGFuaW1hdGlvbjogY2hhbGstZmxhaXItZnJhbWUtZnJvc3QgMy4ycyBlYXNlLWluLW91dCBpbmZpbml0ZSBhbHRlcm5hdGU7XG59XG5Aa2V5ZnJhbWVzIGNoYWxrLWZsYWlyLWZyYW1lLWZyb3N0IHtcbiAgMCUgICB7IGJveC1zaGFkb3c6IDAgMCA0cHggMCAjN2ZkNGZmOyBmaWx0ZXI6IGJyaWdodG5lc3MoMSk7IH1cbiAgMTAwJSB7IGJveC1zaGFkb3c6IDAgMCAxMnB4IDNweCAjYmZlZmZmOyBmaWx0ZXI6IGJyaWdodG5lc3MoMS4xMik7IH1cbn1cblxuLyogMTE1LTc6IGdvbGQgLS0gYSB3YXJtIG1ldGFsIHJpbmcgdGhhdCBjYXRjaGVzIHRoZSBsaWdodDogdGhlIGdsb3dcbiAgIHN3ZWxscyBhbmQgdGhlIG91dGxpbmUgZ29lcyBmcm9tIGJyYXNzIHRvIGJyaWdodC4gKi9cbmh0bWxbZGF0YS1mbGFpci1mcmFtZXNdIC5jaGFsay1hdmF0YXJbZGF0YS1mcmFtZT1cImdvbGRcIl0sXG4uY2hhbGstcHJvZmlsZS1mcmFtZS1zd2F0Y2hbZGF0YS1mcmFtZT1cImdvbGRcIl0ge1xuICBvdXRsaW5lOiAycHggc29saWQgI2Y1YzU0MjtcbiAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggI2M5OTcxYztcbn1cbmh0bWxbZGF0YS1mbGFpci1mcmFtZXNdIC5jaGFsay1hdmF0YXJbZGF0YS1mcmFtZT1cImdvbGRcIl1bZGF0YS1saXZlXSxcbi5jaGFsay1wcm9maWxlLWZyYW1lLXN3YXRjaFtkYXRhLWZyYW1lPVwiZ29sZFwiXSB7XG4gIGFuaW1hdGlvbjogY2hhbGstZmxhaXItZnJhbWUtZ29sZCAyLjhzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuQGtleWZyYW1lcyBjaGFsay1mbGFpci1mcmFtZS1nb2xkIHtcbiAgMCUgICB7IG91dGxpbmUtY29sb3I6ICNjOTk3MWM7IGJveC1zaGFkb3c6IDAgMCA0cHggMCAjYzk5NzFjOyB9XG4gIDUwJSAgeyBvdXRsaW5lLWNvbG9yOiAjZmZlMDhhOyBib3gtc2hhZG93OiAwIDAgMTBweCAzcHggI2Y1YzU0MjsgfVxuICAxMDAlIHsgb3V0bGluZS1jb2xvcjogI2M5OTcxYzsgYm94LXNoYWRvdzogMCAwIDRweCAwICNjOTk3MWM7IH1cbn1cblxuLyogQ2FsbCB0aWxlcyBhcmUgY2lyY2xlczsgdGhlIHJpbmcgZm9sbG93cy4gKi9cbmh0bWxbZGF0YS1mbGFpci1mcmFtZXNdIC5jaGFsay1hdmF0YXItLXRpbGVbZGF0YS1mcmFtZV0ge1xuICBvdXRsaW5lLW9mZnNldDogMDtcbn1cblxuLyogMTE1OiByZWR1Y2VkIG1vdGlvbiB3aW5zLiBFdmVyeSBmbGFpciBhbmltYXRpb24gb2ZmLCBlYWNoIGVmZmVjdCBsZWZ0XG4gICBpbiBpdHMgcmVzdGluZyBzaGFwZTogdGhlIGZsYW1lIHN0YW5kcyBzdGlsbCwgYSB3YXZpbmcgbmFtZSBzaXRzIHdoZXJlXG4gICBwbGFpbiB0ZXh0IHNpdHMsIGEgZnJhbWVkIHBpY3R1cmUga2VlcHMgYSBzdGF0aWMgcmluZywgdGhlIGJhbm5lciBzaXRzXG4gICBhdCBpdHMgem9vbS4gVGhpcyBibG9jayBtdXN0IHN0YXkgdGhlIGxhc3QgdGhpbmcgaW4gdGhlIGZsYWlyIHNlY3Rpb24gLS1cbiAgIHRoZW1lLWZsYWlyLnRlc3QudHMgaG9sZHMgZXZlcnkgYW5pbWF0ZWQgZmxhaXIgc2VsZWN0b3IgdG8gaXQuICovXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICBodG1sW2RhdGEtZmxhaXItZmxhbWVdIC5jaGFsay1mbGFpci1mbGFtZS1zdmcsXG4gIGh0bWxbZGF0YS1mbGFpci1mbGFtZV0gLmNoYWxrLWZsYWlyLWZsYW1lLWlubmVyLFxuICBodG1sW2RhdGEtZmxhaXItd2F2ZV0gLmNoYWxrLWZsYWlyLXdhdmUtY2gsXG4gIGh0bWxbZGF0YS1mbGFpci1mcmFtZXNdIC5jaGFsay1hdmF0YXJbZGF0YS1mcmFtZT1cImVtYmVyXCJdW2RhdGEtbGl2ZV0sXG4gIC5jaGFsay1wcm9maWxlLWZyYW1lLXN3YXRjaFtkYXRhLWZyYW1lPVwiZW1iZXJcIl0sXG4gIGh0bWxbZGF0YS1mbGFpci1mcmFtZXNdIC5jaGFsay1hdmF0YXJbZGF0YS1mcmFtZT1cImF1cm9yYVwiXVtkYXRhLWxpdmVdLFxuICAuY2hhbGstcHJvZmlsZS1mcmFtZS1zd2F0Y2hbZGF0YS1mcmFtZT1cImF1cm9yYVwiXSxcbiAgaHRtbFtkYXRhLWZsYWlyLWZyYW1lc10gLmNoYWxrLWF2YXRhcltkYXRhLWZyYW1lPVwicHVsc2VcIl1bZGF0YS1saXZlXSxcbiAgLmNoYWxrLXByb2ZpbGUtZnJhbWUtc3dhdGNoW2RhdGEtZnJhbWU9XCJwdWxzZVwiXSxcbiAgaHRtbFtkYXRhLWZsYWlyLWZyYW1lc10gLmNoYWxrLWF2YXRhcltkYXRhLWZyYW1lPVwibWF0cml4XCJdW2RhdGEtbGl2ZV0sXG4gIC5jaGFsay1wcm9maWxlLWZyYW1lLXN3YXRjaFtkYXRhLWZyYW1lPVwibWF0cml4XCJdLFxuICBodG1sW2RhdGEtZmxhaXItZnJhbWVzXSAuY2hhbGstYXZhdGFyW2RhdGEtZnJhbWU9XCJmcm9zdFwiXVtkYXRhLWxpdmVdLFxuICAuY2hhbGstcHJvZmlsZS1mcmFtZS1zd2F0Y2hbZGF0YS1mcmFtZT1cImZyb3N0XCJdLFxuICBodG1sW2RhdGEtZmxhaXItZnJhbWVzXSAuY2hhbGstYXZhdGFyW2RhdGEtZnJhbWU9XCJnb2xkXCJdW2RhdGEtbGl2ZV0sXG4gIC5jaGFsay1wcm9maWxlLWZyYW1lLXN3YXRjaFtkYXRhLWZyYW1lPVwiZ29sZFwiXSxcbiAgaHRtbFtkYXRhLWZsYWlyLWJhbm5lcl1cbiAgICAuY2hhbGstY2hhbm5lbC1iYW5uZXI6bm90KC5jaGFsay1jaGFubmVsLWJhbm5lci0tcHJldmlldyk6bm90KC5jaGFsay1jaGFubmVsLWJhbm5lci0tcG9zdGVyKVxuICAgIC5jaGFsay1jaGFubmVsLWJhbm5lci1pbWcsXG4gIGh0bWxbZGF0YS1mbGFpci1iYW5uZXJdXG4gICAgLmNoYWxrLWNoYW5uZWwtYmFubmVyLS1wb3N0ZXI6bm90KC5jaGFsay1jaGFubmVsLWJhbm5lci0tcHJldmlldylcbiAgICAuY2hhbGstY2hhbm5lbC1iYW5uZXItZmFkZSB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUGhhc2UgMTE2LTI6IHRoZSB3aGF0J3MtbmV3IG5vdGVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogT25lIHNlY3Rpb24gcGVyIHBoYXNlIGluc2lkZSB0aGUgc3RhbmRhcmQgbW9kYWw6IGEgdGl0bGUsIGEgcGxhaW4gbGlzdCxcbiAgIHRoZSBzZXR0aW5ncyBwYXRoIGFzIGEgaGludC4gVGhlIGZvb3RlciBob2xkcyB0aGUgdGljayBvbiB0aGUgbGVmdCBhbmRcbiAgIGNsb3NlIG9uIHRoZSByaWdodCAtLSB0aGUgdGljayBpcyB0aGUgYW5zd2VyLCBjbG9zZSBpcyBub3QuICovXG4uY2hhbGstd2hhdHMtbmV3LWVudHJ5IGgzIHtcbiAgbWFyZ2luOiAwIDAgdmFyKC0tY2hhbGstczIpIDA7XG4gIGZvbnQtc2l6ZTogdmFyKC0tY2hhbGstc2l6ZS1ib2R5KTtcbiAgY29sb3I6IHZhcigtLWNoYWxrLWZnLWJyaWdodCk7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4uY2hhbGstd2hhdHMtbmV3LWVudHJ5IHVsIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nLWxlZnQ6IDEuMmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLWNoYWxrLXMxKTtcbn1cbi5jaGFsay13aGF0cy1uZXctZm9vdGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQTBDQTtBQUNFLGVBQWE7QUFDYixPQUFLLHFDQUFtQyxPQUFPO0FBQy9DLGVBQWE7QUFDYixjQUFZO0FBQ1osZ0JBQWM7QUFDaEI7QUFDQTtBQUNFLGVBQWE7QUFDYixPQUFLLGtDQUFnQyxPQUFPO0FBQzVDLGVBQWE7QUFDYixjQUFZO0FBQ1osZ0JBQWM7QUFDaEI7QUFDQTtBQUNFLGVBQWE7QUFDYixPQUFLLG9DQUFrQyxPQUFPO0FBQzlDLGVBQWE7QUFDYixjQUFZO0FBQ1osZ0JBQWM7QUFDaEI7QUFDQTtBQUNFLGVBQWE7QUFDYixPQUFLLHdDQUFzQyxPQUFPO0FBQ2xELGVBQWE7QUFDYixjQUFZO0FBQ1osZ0JBQWM7QUFDaEI7QUFFQTtBQUNFLGVBQWE7QUFDYixPQUFLLCtDQUE2QyxPQUFPO0FBQ3pELGVBQWE7QUFDYixjQUFZO0FBQ1osZ0JBQWM7QUFDaEI7QUFDQTtBQUNFLGVBQWE7QUFDYixPQUFLLDRDQUEwQyxPQUFPO0FB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 */
