/* node_modules/@knadh/oat/oat.min.css */
@layer theme, base, components, animations, utilities;
@layer base {
  *,
  *:before,
  *:after {
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
  }
  * {
    margin: 0;
  }
  html {
    tab-size: 4;
  }
  body,
  dialog,
  [popover] {
    font-family: var(--font-sans);
    font-size: var(--text-regular);
    line-height: var(--leading-normal);
    color: var(--foreground);
  }
  body {
    background-color: var(--background);
    color: var(--foreground);
    -webkit-font-smoothing: antialiased;
  }
  img,
  picture,
  video,
  canvas,
  svg {
    max-width: 100%;
  }
  p,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    overflow-wrap: break-word;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-weight: var(--font-semibold);
    line-height: 1.25;
    &:first-child {
      margin-block-start: 0;
    }
  }
  h1 {
    font-size: var(--text-1);
    margin: var(--space-10) 0 var(--space-6);
  }
  h2 {
    font-size: var(--text-2);
    margin: var(--space-8) 0 var(--space-5);
  }
  h3 {
    font-size: var(--text-3);
    margin: var(--space-6) 0 var(--space-4);
  }
  h4 {
    font-size: var(--text-4);
    margin: var(--space-5) 0 var(--space-3);
  }
  h5 {
    font-size: var(--text-5);
    margin: var(--space-4) 0 var(--space-2);
  }
  h6 {
    font-size: var(--text-regular);
    margin: var(--space-4) 0 var(--space-2);
  }
  p {
    margin-block-end: var(--space-4);
    &:last-child {
      margin-block-end: 0;
    }
  }
  a {
    color: var(--primary);
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color var(--transition-fast);
    &:hover {
      color: rgb(from var(--primary) r g b / .8);
    }
  }
  strong,
  b {
    font-weight: var(--font-semibold);
  }
  em,
  i {
    font-style: italic;
  }
  small {
    font-size: var(--text-7);
  }
  code {
    font-family: var(--font-mono);
    font-size: .875em;
    padding: calc(var(--space-1) / 2) var(--space-1);
    background-color: var(--faint);
    border-radius: var(--radius-small);
  }
  pre {
    font-family: var(--font-mono);
    padding: var(--space-4);
    background-color: var(--faint);
    border-radius: var(--radius-medium);
    overflow-x: auto;
    margin-block-end: var(--space-4);
    code {
      padding: 0;
      background: none;
      border-radius: 0;
    }
  }
  blockquote {
    border-inline-start: 4px solid var(--border);
    padding-inline-start: var(--space-4);
    margin: var(--space-4) 0;
    color: var(--muted-foreground);
    font-style: italic;
  }
  hr {
    border: none;
    border-top: 1px solid var(--border);
    margin: var(--space-2) 0;
  }
  ul,
  ol {
    padding-inline-start: var(--space-6);
    margin-block-end: var(--space-4);
  }
  ul {
    list-style-type: disc;
  }
  ol {
    list-style-type: decimal;
  }
  li {
    margin-block-end: var(--space-1);
  }
  mark {
    background-color: rgb(from var(--warning) r g b / .3);
    padding: calc(var(--space-1) / 2) var(--space-1);
    border-radius: var(--radius-small);
  }
  [hidden] {
    display: none;
  }
  :focus-visible {
    outline: 2px solid var(--ring);
    outline-offset: 2px;
  }
  :disabled {
    opacity: .5;
    cursor: not-allowed;
  }
}
@layer theme {
  :root {
    color-scheme: light dark;
    --background: light-dark(#fff, #09090b);
    --foreground: light-dark(#09090b, #fafafa);
    --card: light-dark(#fff, #18181b);
    --card-foreground: light-dark(#09090b, #fafafa);
    --primary: light-dark(#574747, #fafafa);
    --primary-foreground: light-dark(#fafafa, #18181b);
    --secondary: light-dark(#f4f4f5, #27272a);
    --secondary-foreground: light-dark(#574747, #fafafa);
    --muted: light-dark(#f4f4f5, #27272a);
    --muted-foreground: light-dark(#71717a, #a1a1aa);
    --faint: light-dark(#fafafa, #1e1e21);
    --faint-foreground: light-dark(#a1a1aa, #71717a);
    --accent: light-dark(#f4f4f5, #27272a);
    --danger: light-dark(#d32f2f, #f4807b);
    --danger-foreground: light-dark(#fafafa, #18181b);
    --success: light-dark(#008032, #6cc070);
    --success-foreground: light-dark(#fafafa, #18181b);
    --warning: light-dark(#a65b00, #f0a030);
    --warning-foreground: #09090b;
    --border: light-dark(#d4d4d8, #52525b);
    --input: light-dark(#d4d4d8, #52525b);
    --ring: light-dark(#574747, #d4d4d8);
    --space-1: .25rem;
    --space-2: .5rem;
    --space-3: .75rem;
    --space-4: 1rem;
    --space-5: 1.25rem;
    --space-6: 1.5rem;
    --space-8: 2rem;
    --space-10: 2.5rem;
    --space-12: 3rem;
    --space-14: 3.5rem;
    --space-16: 4rem;
    --space-18: 4.5rem;
    --radius-small: .125rem;
    --radius-medium: .375rem;
    --radius-large: .75rem;
    --radius-full: 9999px;
    --bar-height: .5rem;
    --font-sans: system-ui, sans-serif;
    --font-mono:
      ui-monospace,
      Consolas,
      monospace;
    --text-1: clamp(1.75rem, 1.5rem + 1.1vw, 2.25rem);
    --text-2: clamp(1.5rem, 1.3rem + .8vw, 1.875rem);
    --text-3: clamp(1.25rem, 1.1rem + .5vw, 1.5rem);
    --text-4: clamp(1.125rem, 1.05rem + .3vw, 1.25rem);
    --text-5: 1.125rem;
    --text-6: 1rem;
    --text-7: .875rem;
    --text-8: .75rem;
    --text-regular: var(--text-6);
    --leading-normal: 1.5;
    --font-normal: 400;
    --font-medium: 500;
    --font-semibold: 600;
    --font-bold: 600;
    --shadow-small: 0 1px 2px 0 rgb(0 0 0 / .05);
    --shadow-medium: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);
    --shadow-large: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);
    --transition-fast: .12s cubic-bezier(.4, 0, .2, 1);
    --transition: .2s cubic-bezier(.4, 0, .2, 1);
    --z-dropdown: 50;
    --z-modal: 200;
  }
}
@layer animations {
  .animate-pop-in {
    opacity: 1;
    transform: perspective(1000px) rotateX(0) translateZ(0);
    transition:
      opacity .15s cubic-bezier(.4, 0, .2, 1),
      transform .15s cubic-bezier(.4, 0, .2, 1),
      overlay .15s cubic-bezier(.4, 0, .2, 1) allow-discrete,
      display .15s cubic-bezier(.4, 0, .2, 1) allow-discrete;
    @starting-style {
      opacity: 0;
      transform: perspective(1000px) rotateX(-15deg) translateZ(-80px);
    }
    &[data-state=closing] {
      opacity: 0;
      transform: perspective(1000px) rotateX(-15deg) translateZ(-80px);
    }
    &[data-state=closing]::backdrop {
      opacity: 0;
    }
  }
  dialog::backdrop {
    opacity: 1;
    transition: opacity .15s cubic-bezier(.4, 0, .2, 1);
    @starting-style {
      opacity: 0;
    }
  }
  .animate-slide-in {
    opacity: 1;
    transform: translate(0);
    transition: opacity .15s cubic-bezier(.16, 1, .3, 1), transform .15s cubic-bezier(.16, 1, .3, 1);
    @starting-style {
      opacity: 0;
      transform: translate(100%);
    }
    &[data-state=closing] {
      opacity: 0;
      transform: translate(100%);
    }
  }
}
@layer base {
  :is(button, [type=submit], [type=reset], [type=button], a.button),
  ::file-selector-button {
    --_hov: color-mix(in srgb, var(--primary), white 25%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    font-size: var(--text-7);
    font-weight: var(--font-medium);
    line-height: var(--leading-normal);
    white-space: nowrap;
    text-decoration: none;
    background-color: var(--primary);
    color: var(--primary-foreground);
    border-radius: var(--radius-medium);
    border: 1px solid;
    border-color: rgb(from #fff r g b / .15) rgb(from #000 r g b / .2) rgb(from #000 r g b / .2) rgb(from #fff r g b / .15);
    transition:
      background-color var(--transition-fast),
      opacity var(--transition-fast),
      transform var(--transition-fast);
    &:not(:disabled) {
      cursor: pointer;
    }
    &:hover:not(:disabled) {
      background-color: var(--_hov);
    }
    &:active:not(:disabled) {
      transform: translate(1px, 1px);
    }
    &[data-variant=secondary] {
      --_hov: color-mix(in srgb, var(--secondary), black 10%);
      background-color: var(--secondary);
      color: var(--secondary-foreground);
      border-color: rgb(from #fff r g b / .5) rgb(from #000 r g b / .1) rgb(from #000 r g b / .1) rgb(from #fff r g b / .5);
    }
    &[data-variant=danger] {
      --_hov: color-mix(in srgb, var(--danger), black 15%);
      background-color: var(--danger);
      color: var(--danger-foreground);
    }
    &:is(.outline, .ghost) {
      --_hov: var(--accent);
      background-color: transparent;
      color: var(--foreground);
      &[data-variant=danger] {
        --_hov: color-mix(in srgb, var(--danger), transparent 90%);
        color: var(--danger);
      }
      &[data-variant=secondary] {
        --_hov: color-mix(in srgb, var(--secondary), transparent 80%);
        color: var(--secondary-foreground);
      }
    }
    &.outline {
      border-color: var(--border);
      &[data-variant=danger] {
        border-color: var(--danger);
      }
      &[data-variant=secondary] {
        border-color: var(--secondary);
      }
    }
    &.ghost {
      border-color: transparent;
    }
    &.small {
      padding: var(--space-1) var(--space-3);
      font-size: var(--text-8);
    }
    &.large {
      height: 3rem;
      padding: 0 var(--space-6);
      font-size: var(--text-regular);
    }
    &.icon {
      width: 2.5rem;
      padding: 0;
      &.small {
        width: 2rem;
      }
      &.large {
        width: 3rem;
      }
    }
  }
  ::file-selector-button {
    background-color: transparent;
    color: var(--foreground);
    border: 1px solid var(--border);
  }
  ::file-selector-button:hover {
    background-color: var(--accent);
  }
}
@layer components {
  menu.buttons {
    list-style-type: none;
    padding-inline-start: 0;
    display: inline-flex;
    > li {
      &:first-child > * {
        border-start-start-radius: var(--radius-medium);
        border-end-start-radius: var(--radius-medium);
      }
      &:last-child > * {
        border-start-end-radius: var(--radius-medium);
        border-end-end-radius: var(--radius-medium);
      }
      > * {
        border-radius: 0;
      }
      &:not(:last-child) > * {
        border-inline-end: 1px solid rgb(from var(--primary-foreground) r g b / .2);
      }
    }
  }
}
@layer base {
  label {
    display: block;
    font-size: var(--text-7);
    font-weight: var(--font-medium);
    &:has(input:where([type=checkbox], [type=radio])) {
      display: inline-flex;
      align-items: center;
      gap: var(--space-2);
      font-weight: var(--font-normal);
    }
  }
  :where(input:not([type=checkbox], [type=radio], [type=range], [type=file], [type=color]), textarea, select) {
    width: 100%;
    margin-block-start: var(--space-1);
    padding: var(--space-2) var(--space-3);
    font-size: var(--text-7);
    line-height: var(--leading-normal);
    background-color: var(--background);
    color: var(--foreground);
    border: 1px solid var(--input);
    border-radius: var(--radius-medium);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
    &::placeholder {
      color: var(--muted-foreground);
    }
    &:focus {
      outline: none;
      border-color: var(--ring);
      box-shadow: 0 0 0 2px rgb(from var(--ring) r g b / .2);
      z-index: 1;
    }
    &:disabled {
      background-color: var(--muted);
    }
    &:is([aria-invalid=true], :user-invalid) {
      border-color: var(--danger);
      &:focus {
        box-shadow: 0 0 0 2px rgb(from var(--danger) r g b / .2);
      }
    }
  }
  textarea {
    height: auto;
    min-height: 5rem;
    padding: var(--space-3);
    resize: vertical;
  }
  select {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right var(--space-2) center;
    padding-inline-end: var(--space-6);
  }
  input:where([type=checkbox], [type=radio]) {
    appearance: none;
    width: 1rem;
    height: 1rem;
    margin: 0;
    position: relative;
    background-color: var(--background);
    border: 1px solid var(--input);
    transition: background-color var(--transition-fast), border-color var(--transition-fast);
    &:checked {
      background-color: var(--primary);
      border-color: var(--primary);
      &:after {
        content: "";
        position: absolute;
        inset: 0;
        background-color: var(--primary-foreground);
        mask-position: center;
        mask-repeat: no-repeat;
        mask-size: 100%;
      }
    }
  }
  input[type=checkbox] {
    border-radius: var(--radius-small);
    &:checked:after {
      mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='4'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
    }
    &[role=switch] {
      --switch-height: calc(var(--bar-height) * 3);
      --switch-inset: 2px;
      --switch-thumb: calc(var(--switch-height) - var(--switch-inset) * 3);
      width: calc(var(--switch-height) * 2);
      height: var(--switch-height);
      border-radius: var(--radius-full);
      background-color: var(--input);
      &:before {
        content: "";
        position: absolute;
        top: 50%;
        left: var(--switch-inset);
        transform: translateY(-50%);
        width: var(--switch-thumb);
        height: var(--switch-thumb);
        background-color: var(--background);
        border-radius: var(--radius-full);
        transition: transform var(--transition);
        box-shadow: var(--shadow-small);
      }
      &:checked {
        background-color: var(--primary);
        &:after {
          content: none;
        }
        &:before {
          transform: translateY(-50%) translate(var(--switch-height));
        }
      }
    }
  }
  input[type=radio] {
    border-radius: var(--radius-full);
    &:checked:after {
      mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='4' fill='currentColor'/%3E%3C/svg%3E");
    }
  }
  :where(input:where([type=checkbox], [type=radio], [type=range]), select):not(:disabled),
  label:has(input:where([type=checkbox], [type=radio]):not(:disabled)) {
    cursor: pointer;
  }
  input[type=range] {
    width: 100%;
    height: var(--bar-height);
    appearance: none;
    background: var(--muted);
    border-radius: var(--radius-full);
    &::-webkit-slider-thumb {
      appearance: none;
      width: 1.25rem;
      height: 1.25rem;
      background: var(--primary);
      border-radius: var(--radius-full);
      transition: transform var(--transition-fast);
      &:hover {
        transform: scale(1.1);
      }
    }
    &::-moz-range-thumb {
      width: 1.25rem;
      height: 1.25rem;
      background: var(--primary);
      border: none;
      border-radius: var(--radius-full);
    }
  }
  fieldset {
    border: 1px solid var(--border);
    border-radius: var(--radius-medium);
    padding: var(--space-4);
    margin-block-end: var(--space-4);
  }
  legend {
    font-size: var(--text-7);
    font-weight: var(--font-medium);
    padding: 0 var(--space-2);
  }
}
@layer components {
  fieldset.group {
    display: flex;
    align-items: stretch;
    border: none;
    padding: 0;
    margin: 0;
    > :is(input, textarea, select) {
      flex: 1;
      margin-block-start: 0;
      &:not(:focus) {
        border-inline-end-color: transparent;
      }
    }
    > :is(input, textarea, select, button) {
      border-radius: 0;
      &:first-child {
        border-radius: var(--radius-medium) 0 0 var(--radius-medium);
      }
      &:last-child {
        border-radius: 0 var(--radius-medium) var(--radius-medium) 0;
      }
    }
    > legend {
      float: inline-start;
      display: inline-flex;
      align-items: center;
      padding: 0 var(--space-3);
      line-height: var(--leading-normal);
      font-weight: var(--font-normal);
      color: var(--muted-foreground);
      background-color: var(--muted);
      border: 1px solid var(--input);
      border-inline-end: none;
      border-radius: var(--radius-medium) 0 0 var(--radius-medium);
    }
  }
  [data-field] {
    margin-block-end: var(--space-4);
    [data-hint],
    .error {
      font-size: var(--text-8);
      font-weight: var(--font-normal);
      color: var(--muted-foreground);
      margin-block-start: var(--space-1);
    }
    .error {
      display: none;
    }
    &[data-field=error] .error {
      display: block;
      color: var(--danger);
    }
  }
}
@layer base {
  table {
    border-collapse: collapse;
    table-layout: fixed;
    width: 100%;
    font-size: var(--text-7);
  }
  thead {
    border-bottom: 1px solid var(--border);
  }
  th,
  td {
    overflow-wrap: break-word;
  }
  th {
    padding: var(--space-3) var(--space-2);
    text-align: start;
    font-weight: var(--font-medium);
    color: var(--muted-foreground);
  }
  td {
    padding: var(--space-3) var(--space-2);
  }
  tbody tr {
    border-bottom: 1px solid var(--border);
    transition: background-color var(--transition-fast);
    &:last-child {
      border-bottom: none;
    }
    &:hover {
      background-color: rgb(from var(--muted) r g b / .5);
    }
  }
}
@layer base {
  progress {
    appearance: none;
    width: 100%;
    height: var(--bar-height);
    border: none;
    border-radius: var(--radius-full);
    overflow: hidden;
    background-color: var(--muted);
    &::-webkit-progress-bar {
      background-color: var(--muted);
      border-radius: var(--radius-full);
    }
    &::-webkit-progress-value {
      background-color: var(--primary);
      border-radius: var(--radius-full);
      transition: width var(--transition);
    }
    &::-moz-progress-bar {
      background-color: var(--primary);
      border-radius: var(--radius-full);
    }
  }
  meter {
    appearance: none;
    width: 100%;
    height: var(--bar-height);
    border: none;
    border-radius: var(--radius-full);
    overflow: hidden;
    background: var(--muted);
    &::-webkit-meter-bar {
      background: var(--muted);
      border: none;
      border-radius: var(--radius-full);
      height: var(--bar-height);
    }
    &::-webkit-meter-optimum-value,
    &::-webkit-meter-suboptimum-value,
    &::-webkit-meter-even-less-good-value {
      border-radius: var(--radius-full);
    }
    &::-webkit-meter-optimum-value {
      background: var(--success);
    }
    &::-webkit-meter-suboptimum-value {
      background: var(--warning);
    }
    &::-webkit-meter-even-less-good-value {
      background: var(--danger);
    }
    &::-moz-meter-bar {
      background: var(--success);
      border-radius: var(--radius-full);
    }
    &:-moz-meter-sub-optimum::-moz-meter-bar {
      background: var(--warning);
    }
    &:-moz-meter-sub-sub-optimum::-moz-meter-bar {
      background: var(--danger);
    }
  }
}
@layer components {
  [aria-busy=true] {
    &:before {
      content: "";
      display: inline-block;
      inset: 0;
      margin: auto;
      width: 1.5rem;
      height: 1.5rem;
      border: 2px solid var(--muted);
      border-top-color: var(--primary);
      border-radius: var(--radius-full);
      animation: spin 1s linear infinite;
      text-align: center;
    }
    &[data-spinner~=small]:before {
      width: 1rem;
      height: 1rem;
    }
    &[data-spinner~=large]:before {
      width: 2rem;
      height: 2rem;
      border-width: 3px;
    }
    &[data-spinner~=overlay] {
      position: relative;
      > * {
        opacity: .3;
        pointer-events: none;
      }
      &:before {
        position: absolute;
        inset: 0;
        margin: auto;
        z-index: 1;
      }
    }
  }
  @keyframes spin {
    to {
      transform: rotate(360deg);
    }
  }
}
@layer components {
  :root {
    --grid-cols: 12;
    --grid-gap: 1.5rem;
    --container-max: 1280px;
    --container-pad: 1rem;
  }
  .container {
    width: 100%;
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: var(--container-pad);
  }
  .row {
    display: grid;
    grid-template-columns: repeat(var(--grid-cols), 1fr);
    gap: var(--grid-gap);
    width: 100%;
  }
  .col,
  [class*=col-] {
    grid-column-end: span var(--span, var(--grid-cols));
  }
  .col-1 {
    --span: 1;
  }
  .col-2 {
    --span: 2;
  }
  .col-3 {
    --span: 3;
  }
  .col-4 {
    --span: 4;
  }
  .col-5 {
    --span: 5;
  }
  .col-6 {
    --span: 6;
  }
  .col-7 {
    --span: 7;
  }
  .col-8 {
    --span: 8;
  }
  .col-9 {
    --span: 9;
  }
  .col-10 {
    --span: 10;
  }
  .col-11 {
    --span: 11;
  }
  .col-12 {
    --span: 12;
  }
  .offset-1 {
    grid-column-start: 2;
  }
  .offset-2 {
    grid-column-start: 3;
  }
  .offset-3 {
    grid-column-start: 4;
  }
  .offset-4 {
    grid-column-start: 5;
  }
  .offset-5 {
    grid-column-start: 6;
  }
  .offset-6 {
    grid-column-start: 7;
  }
  .col-end {
    grid-column-start: span var(--span, 1);
    grid-column-end: -1;
  }
  @media (max-width:768px) {
    .row {
      --grid-cols: 4;
      --grid-gap: 1rem;
    }
    .col,
    [class*=col-] {
      --span: 4;
    }
    [class*=offset-] {
      grid-column-start: auto;
    }
  }
}
@layer components {
  .card {
    background-color: var(--card);
    color: var(--card-foreground);
    border: 1px solid var(--border);
    border-radius: var(--radius-medium);
    box-shadow: var(--shadow-small);
    padding: var(--space-6);
    overflow: hidden;
  }
}
@layer components {
  [role=alert] {
    position: relative;
    display: flex;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-6);
    background-color: var(--background);
    border: 1px solid var(--border);
    border-radius: var(--radius-medium);
    font-size: var(--text-7);
    &[data-variant] {
      border: none;
    }
    &[data-variant=error],
    &[data-variant=danger] {
      color: var(--danger);
      background-color: light-dark(color-mix(in srgb, var(--danger) 8%, transparent), color-mix(in srgb, var(--danger) 20%, transparent));
      & a {
        color: var(--danger);
      }
    }
    &[data-variant=success] {
      color: var(--success);
      background-color: light-dark(color-mix(in srgb, var(--success) 8%, transparent), color-mix(in srgb, var(--success) 20%, transparent));
      & a {
        color: var(--success);
      }
    }
    &[data-variant=warning] {
      color: var(--warning);
      background-color: light-dark(color-mix(in srgb, var(--warning) 8%, transparent), color-mix(in srgb, var(--warning) 20%, transparent));
      & a {
        color: var(--warning);
      }
    }
  }
}
@layer components {
  .badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-1) var(--space-4);
    font-size: var(--text-8);
    font-weight: var(--font-medium);
    line-height: var(--leading-normal);
    background-color: var(--primary);
    color: var(--primary-foreground);
    border-radius: var(--radius-full);
    &.secondary {
      background-color: var(--secondary);
      color: var(--secondary-foreground);
    }
    &.outline {
      background-color: transparent;
      color: var(--foreground);
      border: 1px solid var(--border);
    }
    &.success {
      color: var(--success);
      background-color: light-dark(color-mix(in srgb, var(--success) 10%, transparent), color-mix(in srgb, var(--success) 30%, transparent));
    }
    &.warning {
      color: var(--warning);
      background-color: light-dark(color-mix(in srgb, var(--warning) 10%, transparent), color-mix(in srgb, var(--warning) 30%, transparent));
    }
    &.danger {
      color: var(--danger);
      background-color: light-dark(color-mix(in srgb, var(--danger) 10%, transparent), color-mix(in srgb, var(--danger) 30%, transparent));
    }
  }
}
@layer components {
  details {
    border: 1px solid var(--border);
    border-radius: var(--radius-medium);
    overflow: hidden;
    + details {
      margin-top: -1px;
      border-start-start-radius: 0;
      border-start-end-radius: 0;
    }
    &:has(+ details) {
      border-end-start-radius: 0;
      border-end-end-radius: 0;
    }
    &[open] summary {
      border-bottom: 1px solid var(--border);
    }
  }
  summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    padding: var(--space-4);
    font-weight: var(--font-medium);
    cursor: pointer;
    user-select: none;
    transition: background-color var(--transition-fast);
    &:hover {
      background-color: var(--muted);
    }
    &::-webkit-details-marker,
    &::marker {
      display: none;
    }
    &:after {
      content: "";
      width: 1em;
      height: 1em;
      flex-shrink: 0;
      background-color: currentColor;
      mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
      mask-size: contain;
      mask-repeat: no-repeat;
      transition: transform var(--transition-fast);
    }
    details[open] &:after {
      transform: rotate(180deg);
    }
  }
  details > *:not(summary) {
    padding: var(--space-4);
  }
}
@layer components {
  [role=tablist] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-1);
    background-color: var(--muted);
    border-radius: var(--radius-medium);
  }
  [role=tab] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-2) var(--space-3);
    font-size: var(--text-7);
    font-weight: var(--font-medium);
    white-space: nowrap;
    background-color: transparent;
    color: var(--foreground);
    border: none;
    border-radius: calc(var(--radius-medium) - 2px);
    cursor: pointer;
    transition: background-color var(--transition-fast), color var(--transition-fast);
    &:hover {
      color: var(--muted-foreground);
    }
    &[aria-selected=true] {
      background-color: var(--background);
      box-shadow: var(--shadow-small);
    }
  }
  [role=tabpanel] {
    padding: var(--space-4) 0;
    &:focus-visible {
      outline: none;
    }
  }
}
@layer components {
  dialog {
    position: fixed;
    inset: 0;
    z-index: var(--z-modal);
    width: min(100% - 2rem, 32rem);
    max-height: 85vh;
    margin: auto;
    padding: 0;
    background-color: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius-large);
    box-shadow: var(--shadow-large);
    overflow: hidden;
    opacity: 0;
    transform: scale(.95);
    transition:
      opacity .15s ease,
      transform .15s ease,
      overlay .15s ease allow-discrete,
      display .15s ease allow-discrete;
    &[open] {
      opacity: 1;
      transform: scale(1);
    }
    @starting-style {
      &[open] {
        opacity: 0;
        transform: scale(.95);
      }
    }
    &::backdrop {
      background-color: #0000;
      transition:
        background-color .15s ease,
        overlay .15s ease allow-discrete,
        display .15s ease allow-discrete;
    }
    &[open]::backdrop {
      background-color: #00000080;
    }
    @starting-style {
      &[open]::backdrop {
        background-color: #0000;
      }
    }
    > header,
    > form > header {
      display: flex;
      flex-direction: column;
      gap: var(--space-1);
      padding: var(--space-6);
      padding-block-end: 0;
      > h1,
      > h2,
      > h3,
      > h4,
      > h5,
      > h6 {
        margin-block-end: 0;
      }
      > p {
        font-size: var(--text-7);
        color: var(--muted-foreground);
        margin-block-end: 0;
      }
    }
    > p,
    > div,
    > section,
    > form > p,
    > form > div,
    > form > section {
      padding: var(--space-6);
      overflow-y: auto;
    }
    > footer,
    > form > footer {
      display: flex;
      justify-content: flex-end;
      gap: var(--space-2);
      padding: var(--space-6);
      padding-block-start: 0;
    }
  }
}
@layer components {
  ot-dropdown {
    [popover] {
      position: fixed;
      margin: 0;
      min-width: 12rem;
      background-color: var(--background);
      border: 1px solid var(--border);
      border-radius: var(--radius-medium);
      box-shadow: var(--shadow-medium);
      opacity: 0;
      transform: translateY(-4px);
      transition:
        opacity .15s ease-out,
        transform .15s ease-out,
        display .15s allow-discrete,
        overlay .15s allow-discrete;
      &:popover-open {
        opacity: 1;
        transform: translateY(0);
      }
      @starting-style {
        &:popover-open {
          opacity: 0;
          transform: translateY(-4px);
        }
      }
    }
    [role=menuitem] {
      display: flex;
      align-items: center;
      justify-content: start;
      gap: var(--space-2);
      width: 100%;
      padding: var(--space-2) var(--space-3);
      font-size: var(--text-7);
      text-align: start;
      color: var(--foreground);
      background: none;
      border: none;
      border-radius: var(--radius-small);
      cursor: pointer;
      &:hover,
      &:focus {
        background-color: var(--accent);
        outline: none;
      }
    }
  }
}
@layer components {
  .toast-container {
    position: fixed;
    display: flex;
    flex-direction: column;
    pointer-events: none;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    overflow: visible;
    &::backdrop {
      display: none;
    }
    &[data-placement=top-left] {
      inset: var(--space-4) auto auto var(--space-4);
    }
    &[data-placement=top-center] {
      inset: var(--space-4) auto auto 50%;
      transform: translate(-50%);
    }
    &[data-placement=top-right] {
      inset: var(--space-4) var(--space-4) auto auto;
    }
    &[data-placement=bottom-left] {
      inset: auto auto var(--space-4) var(--space-4);
      flex-direction: column-reverse;
    }
    &[data-placement=bottom-center] {
      inset: auto auto var(--space-4) 50%;
      transform: translate(-50%);
      flex-direction: column-reverse;
    }
    &[data-placement=bottom-right] {
      inset: auto var(--space-4) var(--space-4) auto;
      flex-direction: column-reverse;
    }
  }
  .toast {
    --transition: .3s;
    --transition-in: calc(var(--transition) - 50ms);
    padding: var(--space-5) var(--space-4);
    max-width: 28rem;
    min-width: 20rem;
    pointer-events: auto;
    background-color: var(--card);
    border: 1px solid var(--border);
    border-inline-start-width: var(--space-1);
    border-inline-start-style: solid;
    border-radius: var(--radius-medium);
    box-shadow: var(--shadow-small);
    transition:
      opacity var(--transition-in),
      transform var(--transition-in),
      margin var(--transition-in);
    line-height: 1;
    .toast-title {
      font-weight: 600;
      margin: 0 0 var(--space-3) 0;
    }
    .toast-message {
      color: var(--muted-foreground);
    }
    &[data-variant=success] {
      border-inline-start-color: var(--success);
      .toast-title {
        color: var(--success);
      }
    }
    &[data-variant=danger] {
      border-inline-start-color: var(--danger);
      .toast-title {
        color: var(--danger);
      }
    }
    &[data-variant=warning] {
      border-inline-start-color: var(--warning);
      .toast-title {
        color: var(--warning);
      }
    }
    > [data-close] {
      margin-inline-start: auto;
      background: none;
      border: none;
      padding: 0;
      cursor: pointer;
      opacity: .5;
      &:hover {
        opacity: 1;
      }
    }
    margin: var(--space-2) 0;
    &[data-entering] {
      opacity: 0;
      transform: translateY(-1rem);
    }
    &[data-exiting] {
      opacity: 0;
      margin: 0;
      padding-block: 0;
      max-height: 0;
      overflow: hidden;
      transition:
        opacity var(--transition),
        margin var(--transition),
        padding var(--transition),
        max-height var(--transition);
    }
  }
}
@layer components {
  :root {
    --_nh: var(--space-12);
  }
  [data-sidebar-layout] {
    --topnav-offset: 0px;
    --topnav-scroll-offset: 0px;
    display: grid;
    grid-template-columns: 14rem 1fr;
    min-height: 100dvh;
    gap: var(--space-4);
    &:has(nav[data-topnav]) {
      --topnav-offset: var(--_nh);
      --topnav-scroll-offset: calc(var(--_nh) + var(--space-6));
    }
    > main {
      min-width: 0;
      margin-block-start: var(--topnav-offset);
      [id] {
        scroll-margin-block-start: var(--topnav-scroll-offset);
      }
    }
    > aside[data-sidebar] {
      position: sticky;
      top: var(--topnav-offset);
      z-index: 1;
      height: calc(100dvh - var(--topnav-offset));
      align-self: start;
      background-color: var(--background);
      border-inline-end: 1px solid var(--border);
      display: flex;
      flex-direction: column;
      > :is(header, footer) {
        flex-shrink: 0;
        padding: var(--space-3);
      }
      > footer {
        margin-block-start: auto;
      }
      > nav {
        flex: 1;
        min-height: 0;
        overflow-y: auto;
        padding: var(--space-3) var(--space-2);
        ul {
          list-style: none;
          padding: 0;
          margin: 0;
          display: flex;
          flex-direction: column;
          gap: var(--space-1);
          li {
            margin: 0;
          }
        }
        a {
          display: flex;
          gap: var(--space-2);
          padding: var(--space-1) var(--space-3);
          font-size: var(--text-7);
          color: var(--foreground);
          text-decoration: none;
          border-radius: var(--radius-small);
          transition: background-color var(--transition-fast);
          &:is(:hover, [aria-current]) {
            background-color: var(--accent);
          }
        }
        details {
          border: none;
          overflow: visible;
          + details {
            margin-top: 0;
          }
          &[open] summary {
            border-bottom: none;
          }
          > ul {
            margin-inline-start: var(--space-4);
            padding: var(--space-1) 0;
          }
        }
        summary {
          justify-content: flex-start;
          padding: var(--space-2) var(--space-3);
          font-size: var(--text-7);
          border-radius: var(--radius-small);
          &:after {
            width: .75rem;
            height: .75rem;
            margin-inline-start: auto;
          }
        }
      }
    }
  }
  nav[data-topnav] {
    position: fixed;
    inset: 0 0 auto;
    z-index: 5;
    min-height: var(--_nh);
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2) var(--space-4);
    background-color: var(--background);
    border-bottom: 1px solid var(--border);
    box-shadow: var(--shadow-small);
  }
  :is([data-sidebar-toggle], [data-sidebar-header]) {
    display: none;
  }
  [data-sidebar-toggle] {
    padding: 0 var(--space-1);
    background: none;
    border: 1px solid var(--border);
    border-radius: var(--radius-small);
    cursor: pointer;
  }
  @media (min-width:769px) {
    [data-sidebar-layout=always] [data-sidebar-toggle] {
      display: inline-block;
    }
    [data-sidebar-layout=always] {
      transition: grid-template-columns var(--transition);
      > aside[data-sidebar] {
        transform: translate(0);
        opacity: 1;
        transition:
          transform var(--transition),
          opacity var(--transition),
          visibility var(--transition);
      }
    }
    [data-sidebar-layout=always][data-sidebar-open] {
      grid-template-columns: 0px 1fr;
      gap: 0;
      > aside[data-sidebar] {
        overflow: hidden;
        min-width: 0;
        transform: translate(-100%);
        opacity: 0;
        visibility: hidden;
        border-inline-end: none;
      }
    }
  }
  @media (max-width:768px) {
    [data-sidebar-layout] {
      grid-template-columns: 1fr;
      > aside[data-sidebar] {
        position: fixed;
        left: 0;
        width: 16rem;
        transform: translate(-100%);
        transition: transform var(--transition);
        box-shadow: var(--shadow-large);
      }
      &[data-sidebar-open] > aside[data-sidebar] {
        transform: translate(0);
      }
    }
    [data-sidebar-toggle] {
      display: inline-block;
    }
    [data-sidebar-header] {
      display: flex;
      align-items: center;
      gap: var(--space-3);
      padding: var(--space-3) var(--space-4);
      border-bottom: 1px solid var(--border);
    }
  }
}
@layer components {
  [role=status].skeleton {
    --_c: light-dark( color-mix(in srgb, var(--muted) 30%, white), color-mix(in srgb, var(--muted) 90%, var(--foreground)) );
    margin-block-end: var(--space-3);
    background: var(--muted);
    border-radius: var(--radius-medium);
    animation: anim 2s infinite;
    background-size: 200% 100%;
    background-image:
      linear-gradient(
        90deg,
        var(--muted) 0%,
        var(--_c) 50%,
        var(--muted) 100%);
    &.box {
      width: 4rem;
      height: 4rem;
    }
    &.line {
      height: 1rem;
      width: 100%;
    }
  }
  [role=status].skeleton:last-child {
    margin-block-end: 0;
  }
  @keyframes anim {
    0% {
      background-position: 200% 0;
    }
    to {
      background-position: -200% 0;
    }
  }
}
@layer components {
  [data-tooltip] {
    position: relative;
  }
  [data-tooltip]:before,
  [data-tooltip]:after {
    position: absolute;
    inset-inline-start: 50%;
    opacity: 0;
    visibility: hidden;
    transition:
      opacity var(--transition-fast),
      transform var(--transition-fast),
      visibility var(--transition-fast);
    pointer-events: none;
    z-index: 1000;
  }
  [data-tooltip]:after {
    content: attr(data-tooltip);
    inset-block-end: calc(100% + 10px);
    transform: translate(-50%) translateY(4px);
    padding: var(--space-2) var(--space-3);
    font-size: var(--text-7);
    line-height: 1;
    white-space: nowrap;
    background: var(--foreground);
    color: var(--background);
    border-radius: var(--radius-medium);
  }
  [data-tooltip]:before {
    content: "";
    inset-block-end: calc(100% - 5px);
    transform: translate(-50%) translateY(4px);
    border: 8px solid transparent;
    border-top-color: var(--foreground);
  }
  [data-tooltip]:is(:hover, :focus-visible):before,
  [data-tooltip]:is(:hover, :focus-visible):after {
    opacity: 1;
    visibility: visible;
    transition-delay: .7s;
    transform: translate(-50%) translateY(0);
  }
}
@layer utilities {
  .text-left {
    text-align: start;
  }
  .text-center {
    text-align: center;
  }
  .text-right {
    text-align: end;
  }
  .text-light {
    color: var(--muted-foreground);
  }
  .text-lighter {
    color: var(--faint-foreground);
  }
  .flex {
    display: flex;
  }
  .flex-col {
    flex-direction: column;
  }
  .items-center {
    align-items: center;
  }
  .justify-center {
    justify-content: center;
  }
  .justify-between {
    justify-content: space-between;
  }
  .hstack {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
    align-content: flex-start;
    height: auto;
  }
  .vstack {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
  }
  .gap-1 {
    gap: var(--space-1);
  }
  .gap-2 {
    gap: var(--space-2);
  }
  .gap-4 {
    gap: var(--space-4);
  }
  .mt-2 {
    margin-block-start: var(--space-2);
  }
  .mt-4 {
    margin-block-start: var(--space-4);
  }
  .mt-6 {
    margin-block-start: var(--space-6);
  }
  .mb-2 {
    margin-block-end: var(--space-2);
  }
  .mb-4 {
    margin-block-end: var(--space-4);
  }
  .mb-6 {
    margin-block-end: var(--space-6);
  }
  .p-4 {
    padding: var(--space-4);
  }
  .w-100 {
    width: 100%;
  }
  ul,
  ol {
    &.unstyled {
      list-style: none;
      padding-inline-start: 0;
      margin-inline-start: 0;
    }
  }
}

/* css/tokens.css */
:root {
  --color-primary: oklch(70% 0.213 47.604);
  --color-primary-hover: oklch(65% 0.213 47.604);
  --color-bg: oklch(98% 0 0);
  --color-bg-secondary: oklch(96% 0.001 286.375);
  --color-bg-tertiary: oklch(92% 0.004 286.32);
  --color-fg: oklch(21% 0.006 285.885);
  --color-fg-muted: oklch(45% 0.006 285.885);
  --color-border: oklch(92% 0.004 286.32);
  --color-border-hover: oklch(85% 0.006 286.32);
  --color-success: oklch(70% 0.14 182.503);
  --color-success-bg: oklch(95% 0.03 182.503);
  --color-warning: oklch(66% 0.179 58.318);
  --color-warning-bg: oklch(95% 0.04 58.318);
  --color-error: oklch(58% 0.253 17.585);
  --color-error-bg: oklch(95% 0.05 17.585);
  --color-info: oklch(62% 0.214 259.815);
  --color-info-bg: oklch(95% 0.04 259.815);
  --color-console-bg: oklch(15% 0 0);
  --color-console-fg: oklch(90% 0 0);
  --color-console-muted: oklch(70% 0 0);
  --color-primary-5: color-mix(in oklch, var(--color-primary) 5%, transparent);
  --color-primary-10: color-mix(in oklch, var(--color-primary) 10%, transparent);
  --color-primary-15: color-mix(in oklch, var(--color-primary) 15%, transparent);
  --color-primary-20: color-mix(in oklch, var(--color-primary) 20%, transparent);
  --color-primary-30: color-mix(in oklch, var(--color-primary) 30%, transparent);
  --color-success-5: color-mix(in oklch, var(--color-success) 5%, transparent);
  --color-success-10: color-mix(in oklch, var(--color-success) 10%, transparent);
  --color-success-20: color-mix(in oklch, var(--color-success) 20%, transparent);
  --color-success-30: color-mix(in oklch, var(--color-success) 30%, transparent);
  --color-warning-10: color-mix(in oklch, var(--color-warning) 10%, transparent);
  --color-warning-20: color-mix(in oklch, var(--color-warning) 20%, transparent);
  --color-warning-30: color-mix(in oklch, var(--color-warning) 30%, transparent);
  --color-error-5: color-mix(in oklch, var(--color-error) 5%, transparent);
  --color-error-10: color-mix(in oklch, var(--color-error) 10%, transparent);
  --color-error-20: color-mix(in oklch, var(--color-error) 20%, transparent);
  --color-info-10: color-mix(in oklch, var(--color-info) 10%, transparent);
  --color-fg-10: color-mix(in oklch, var(--color-fg) 10%, transparent);
  --color-border-20: color-mix(in oklch, var(--color-border) 20%, transparent);
  --color-border-30: color-mix(in oklch, var(--color-border) 30%, transparent);
  --color-border-40: color-mix(in oklch, var(--color-border) 40%, transparent);
  --color-border-50: color-mix(in oklch, var(--color-border) 50%, transparent);
  --color-bg-90: color-mix(in oklch, var(--color-bg) 90%, transparent);
  --color-bg-80: color-mix(in oklch, var(--color-bg) 80%, transparent);
  --color-bg-50: color-mix(in oklch, var(--color-bg) 50%, transparent);
  --color-bg-secondary-50: color-mix(in oklch, var(--color-bg-secondary) 50%, transparent);
  --color-bg-secondary-95: color-mix(in oklch, var(--color-bg-secondary) 95%, transparent);
  --color-bg-tertiary-10: color-mix(in oklch, var(--color-bg-tertiary) 10%, transparent);
  --color-bg-tertiary-20: color-mix(in oklch, var(--color-bg-tertiary) 20%, transparent);
  --color-bg-tertiary-30: color-mix(in oklch, var(--color-bg-tertiary) 30%, transparent);
  --color-bg-tertiary-40: color-mix(in oklch, var(--color-bg-tertiary) 40%, transparent);
  --color-bg-tertiary-50: color-mix(in oklch, var(--color-bg-tertiary) 50%, transparent);
  --color-bg-tertiary-80: color-mix(in oklch, var(--color-bg-tertiary) 80%, transparent);
  --font-sans:
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Roboto,
    sans-serif;
  --font-mono:
    "IBM Plex Mono",
    ui-monospace,
    monospace;
  --sp-1: 0.25rem;
  --sp-2: 0.5rem;
  --sp-3: 0.75rem;
  --sp-4: 1rem;
  --sp-5: 1.25rem;
  --sp-6: 1.5rem;
  --sp-8: 2rem;
  --radius-sm: 0.25rem;
  --radius: 0.5rem;
  --radius-lg: 0.75rem;
  --radius-xl: 1rem;
  --radius-full: 9999px;
  --sidebar-width: 14rem;
  --sidebar-collapsed: 4rem;
  --detail-sidebar: 24rem;
  --detail-sidebar-wide: 42rem;
  --container-sm: 24rem;
  --container-md: 32rem;
  --container-lg: 48rem;
  --container-xl: 56rem;
  --container-2xl: 64rem;
  --container-3xl: 72rem;
  --container-4xl: 80rem;
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.05);
  --shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1);
  --shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
  --transition-fast: 150ms;
  --transition: 200ms;
}
[data-theme=dark] {
  --color-primary: oklch(58% 0.233 277.117);
  --color-primary-hover: oklch(63% 0.233 277.117);
  --color-bg: oklch(25.26% 0.014 253.1);
  --color-bg-secondary: oklch(30.33% 0.016 252.42);
  --color-bg-tertiary: oklch(35% 0.018 252);
  --color-fg: oklch(97.807% 0.029 256.847);
  --color-fg-muted: oklch(70% 0.02 256.847);
  --color-border: oklch(35% 0.02 254.09);
  --color-border-hover: oklch(45% 0.025 254.09);
  --color-success: oklch(60% 0.118 184.704);
  --color-success-bg: oklch(30% 0.04 184.704);
  --color-warning: oklch(66% 0.179 58.318);
  --color-warning-bg: oklch(30% 0.06 58.318);
  --color-error: oklch(58% 0.253 17.585);
  --color-error-bg: oklch(30% 0.08 17.585);
  --color-info: oklch(58% 0.158 241.966);
  --color-info-bg: oklch(30% 0.05 241.966);
  --color-console-bg: oklch(12% 0.01 253);
  --color-console-fg: oklch(85% 0.02 253);
  --color-console-muted: oklch(60% 0.015 253);
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.3);
  --shadow: 0 4px 6px -1px rgba(0,0,0,0.4), 0 2px 4px -2px rgba(0,0,0,0.3);
  --shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.4), 0 4px 6px -4px rgba(0,0,0,0.3);
}

/* css/utilities.css */
.hidden {
  display: none;
}
.block {
  display: block;
}
.inline {
  display: inline;
}
.inline-flex {
  display: inline-flex;
}
.grid {
  display: grid;
}
.flex-1,
.sidebar-spacer {
  flex: 1;
}
.flex-1-min-0 {
  flex: 1;
  min-width: 0;
}
.shrink-0 {
  flex-shrink: 0;
}
.flex-wrap {
  flex-wrap: wrap;
}
.hstack {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
}
.vstack {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}
.items-center {
  align-items: center;
}
.items-start {
  align-items: flex-start;
}
.items-end {
  align-items: flex-end;
}
.items-baseline {
  align-items: baseline;
}
.justify-start {
  justify-content: flex-start;
}
.justify-center {
  justify-content: center;
}
.justify-between {
  justify-content: space-between;
}
.justify-end {
  justify-content: flex-end;
}
.self-end {
  align-self: flex-end;
}
.gap-1 {
  gap: var(--sp-1);
}
.gap-2 {
  gap: var(--sp-2);
}
.gap-3 {
  gap: var(--sp-3);
}
.gap-4 {
  gap: var(--sp-4);
}
.gap-5 {
  gap: var(--sp-5);
}
.gap-6 {
  gap: var(--sp-6);
}
.gap-sm {
  gap: var(--sp-2);
}
.gap-md {
  gap: var(--sp-4);
}
.gap-lg {
  gap: var(--sp-6);
}
.w-full {
  width: 100%;
}
.w-currency {
  width: 5rem;
}
.min-w-0 {
  min-width: 0;
}
.max-w-sm {
  max-width: var(--container-sm);
}
.max-w-md {
  max-width: var(--container-md);
}
.max-w-lg {
  max-width: var(--container-lg);
}
.max-w-xl {
  max-width: var(--container-xl);
}
.max-w-2xl {
  max-width: var(--container-2xl);
}
.max-w-3xl {
  max-width: var(--container-3xl);
}
.max-w-4xl {
  max-width: var(--container-4xl);
}
.h-full {
  height: 100%;
}
.min-h-screen {
  min-height: 100vh;
}
.m-0 {
  margin: 0;
}
.mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.mt-0 {
  margin-top: 0;
}
.mt-1 {
  margin-top: var(--sp-1);
}
.mt-2 {
  margin-top: var(--sp-2);
}
.mt-3 {
  margin-top: var(--sp-3);
}
.mt-4 {
  margin-top: var(--sp-4);
}
.mt-5 {
  margin-top: var(--sp-5);
}
.mt-6 {
  margin-top: var(--sp-6);
}
.mt-8 {
  margin-top: var(--sp-8);
}
.mb-0 {
  margin-bottom: 0;
}
.mb-1 {
  margin-bottom: var(--sp-1);
}
.mb-2 {
  margin-bottom: var(--sp-2);
}
.mb-3 {
  margin-bottom: var(--sp-3);
}
.mb-4 {
  margin-bottom: var(--sp-4);
}
.mb-5 {
  margin-bottom: var(--sp-5);
}
.mb-6 {
  margin-bottom: var(--sp-6);
}
.mb-8 {
  margin-bottom: var(--sp-8);
}
.ml-1 {
  margin-left: var(--sp-1);
}
.ml-2 {
  margin-left: var(--sp-2);
}
.ml-3 {
  margin-left: var(--sp-3);
}
.ml-4 {
  margin-left: var(--sp-4);
}
.ml-6 {
  margin-left: var(--sp-6);
}
.mr-1 {
  margin-right: var(--sp-1);
}
.mr-2 {
  margin-right: var(--sp-2);
}
.p-0 {
  padding: 0;
}
.p-1 {
  padding: var(--sp-1);
}
.p-2 {
  padding: var(--sp-2);
}
.p-3 {
  padding: var(--sp-3);
}
.p-4 {
  padding: var(--sp-4);
}
.p-6 {
  padding: var(--sp-6);
}
.p-8 {
  padding: var(--sp-8);
}
.p-content {
  padding: 1rem 1.5rem;
}
.px-1 {
  padding-left: var(--sp-1);
  padding-right: var(--sp-1);
}
.px-2 {
  padding-left: var(--sp-2);
  padding-right: var(--sp-2);
}
.px-3 {
  padding-left: var(--sp-3);
  padding-right: var(--sp-3);
}
.px-4 {
  padding-left: var(--sp-4);
  padding-right: var(--sp-4);
}
.px-6 {
  padding-left: var(--sp-6);
  padding-right: var(--sp-6);
}
.py-1 {
  padding-top: var(--sp-1);
  padding-bottom: var(--sp-1);
}
.py-2 {
  padding-top: var(--sp-2);
  padding-bottom: var(--sp-2);
}
.py-3 {
  padding-top: var(--sp-3);
  padding-bottom: var(--sp-3);
}
.py-4 {
  padding-top: var(--sp-4);
  padding-bottom: var(--sp-4);
}
.pt-1 {
  padding-top: var(--sp-1);
}
.pt-2 {
  padding-top: var(--sp-2);
}
.pt-3 {
  padding-top: var(--sp-3);
}
.pt-4 {
  padding-top: var(--sp-4);
}
.pt-6 {
  padding-top: var(--sp-6);
}
.pb-1 {
  padding-bottom: var(--sp-1);
}
.pb-2 {
  padding-bottom: var(--sp-2);
}
.pb-3 {
  padding-bottom: var(--sp-3);
}
.pb-4 {
  padding-bottom: var(--sp-4);
}
.pb-safe {
  padding-bottom: env(safe-area-inset-bottom);
}
.pt-safe {
  padding-top: env(safe-area-inset-top);
}
.space-y-2 > * + * {
  margin-top: var(--sp-2);
}
.space-y-3 > * + * {
  margin-top: var(--sp-3);
}
.space-y-4 > * + * {
  margin-top: var(--sp-4);
}
.space-y-6 > * + * {
  margin-top: var(--sp-6);
}
.text-2xs {
  font-size: 0.625rem;
}
.text-xs {
  font-size: 0.75rem;
}
.text-sm {
  font-size: 0.875rem;
}
.text-base {
  font-size: 1rem;
}
.text-lg {
  font-size: 1.125rem;
}
.text-xl {
  font-size: 1.25rem;
}
.text-2xl {
  font-size: 1.5rem;
}
.text-3xl {
  font-size: 1.875rem;
}
.text-4xl {
  font-size: 2.25rem;
}
.font-mono {
  font-family: var(--font-mono);
}
.font-normal {
  font-weight: 400;
}
.font-medium {
  font-weight: 500;
}
.font-semibold {
  font-weight: 600;
}
.font-bold {
  font-weight: 700;
}
.text-left {
  text-align: left;
}
.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}
.uppercase {
  text-transform: uppercase;
}
.capitalize {
  text-transform: capitalize;
}
.italic {
  font-style: italic;
}
.underline {
  text-decoration: underline;
}
.no-underline {
  text-decoration: none;
}
.leading-none {
  line-height: 1;
}
.leading-tight {
  line-height: 1.25;
}
.leading-snug {
  line-height: 1.375;
}
.leading-normal {
  line-height: 1.5;
}
.leading-relaxed {
  line-height: 1.625;
}
.tracking-tight {
  letter-spacing: -0.025em;
}
.tracking-wide {
  letter-spacing: 0.025em;
}
.tracking-wider {
  letter-spacing: 0.05em;
}
.tracking-widest {
  letter-spacing: 0.1em;
}
.whitespace-nowrap {
  white-space: nowrap;
}
.whitespace-pre-wrap {
  white-space: pre-wrap;
}
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.color-muted,
.text-muted {
  color: var(--color-fg-muted);
}
.color-primary {
  color: var(--color-primary);
}
.color-primary-muted {
  color: color-mix(in oklch, var(--color-primary) 60%, transparent);
}
.color-success {
  color: var(--color-success);
}
.color-warning {
  color: var(--color-warning);
}
.color-error {
  color: var(--color-error);
}
.color-info {
  color: var(--color-info);
}
.bg-primary {
  background: var(--color-bg);
}
.bg-secondary {
  background: var(--color-bg-secondary);
}
.bg-tertiary {
  background: var(--color-bg-tertiary);
}
.icon-xs {
  width: 0.75rem;
  height: 0.75rem;
}
.icon-sm {
  width: 1rem;
  height: 1rem;
}
.icon-md {
  width: 1.25rem;
  height: 1.25rem;
}
.icon-lg {
  width: 1.5rem;
  height: 1.5rem;
}
.icon-xl {
  width: 2rem;
  height: 2rem;
}
.icon-2xl {
  width: 3rem;
  height: 3rem;
}
.icon-huge {
  width: 120px;
  height: 120px;
}
.col-1 {
  grid-column: span 1;
}
.col-2 {
  grid-column: span 2;
}
.col-3 {
  grid-column: span 3;
}
.col-4 {
  grid-column: span 4;
}
.col-5 {
  grid-column: span 5;
}
.col-6 {
  grid-column: span 6;
}
.col-7 {
  grid-column: span 7;
}
.col-8 {
  grid-column: span 8;
}
.col-9 {
  grid-column: span 9;
}
.col-10 {
  grid-column: span 10;
}
.col-11 {
  grid-column: span 11;
}
.col-12 {
  grid-column: span 12;
}
.overflow-hidden {
  overflow: hidden;
}
.overflow-auto {
  overflow: auto;
}
.overflow-x-auto {
  overflow-x: auto;
}
.overflow-y-auto {
  overflow-y: auto;
}
.relative {
  position: relative;
}
.absolute {
  position: absolute;
}
.fixed {
  position: fixed;
}
.sticky {
  position: sticky;
}
.inset-0 {
  inset: 0;
}
.top-0 {
  top: 0;
}
.right-0 {
  right: 0;
}
.bottom-0 {
  bottom: 0;
}
.left-0 {
  left: 0;
}
.z-0 {
  z-index: 0;
}
.z-10 {
  z-index: 10;
}
.z-20 {
  z-index: 20;
}
.z-30 {
  z-index: 30;
}
.z-40 {
  z-index: 40;
}
.z-50 {
  z-index: 50;
}
.opacity-0 {
  opacity: 0;
}
.opacity-30 {
  opacity: 0.3;
}
.opacity-50 {
  opacity: 0.5;
}
.opacity-60 {
  opacity: 0.6;
}
.opacity-70 {
  opacity: 0.7;
}
.opacity-80 {
  opacity: 0.8;
}
.border {
  border: 1px solid var(--color-border);
}
.border-t {
  border-top: 1px solid var(--color-border);
}
.border-b {
  border-bottom: 1px solid var(--color-border);
}
.border-l {
  border-left: 1px solid var(--color-border);
}
.border-r {
  border-right: 1px solid var(--color-border);
}
.border-dashed {
  border-style: dashed;
}
.rounded {
  border-radius: var(--radius);
}
.rounded-lg {
  border-radius: var(--radius-lg);
}
.rounded-full {
  border-radius: var(--radius-full);
}
.cursor-pointer {
  cursor: pointer;
}
.cursor-default {
  cursor: default;
}
.cursor-wait {
  cursor: wait;
}
.pointer-events-none {
  pointer-events: none;
}
.select-none {
  user-select: none;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.focus-ring:focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--color-bg), 0 0 0 4px var(--color-primary);
}
.focus-ring:focus:not(:focus-visible) {
  box-shadow: none;
}
.focus-ring:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--color-bg), 0 0 0 4px var(--color-primary);
}
.focus-ring-inset:focus {
  outline: none;
  box-shadow: inset 0 0 0 2px var(--color-primary);
}
.focus-ring-inset:focus:not(:focus-visible) {
  box-shadow: none;
}
.focus-ring-inset:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 2px var(--color-primary);
}
@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
@keyframes fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes fade-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes slide-up {
  from {
    transform: translateY(0.5rem);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
@keyframes pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}
.spin {
  animation: spin 1s linear infinite;
}
.animate-spin {
  animation: spin 1s linear infinite;
}
.animate-fade-in {
  animation: fade-in 0.2s ease-out;
}
.animate-slide-up {
  animation: slide-up 0.2s ease-out;
}
.animate-pulse {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@media (prefers-reduced-motion: reduce) {
  .spin,
  .animate-spin,
  .animate-fade-in,
  .animate-slide-up,
  .animate-pulse {
    animation: none;
  }
  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* css/components.css */
.app-shell {
  height: 100vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--color-bg);
}
.app-shell.monospace {
  font-family: var(--font-mono);
}
.app-layout {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  background: var(--color-bg-secondary);
}
.app-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.app-content {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  position: relative;
  min-width: 0;
  padding-bottom: 8rem;
  padding-top: var(--sp-2);
}
.content-area {
  flex: 1;
  padding: var(--sp-4);
  margin-bottom: 4rem;
}
.row {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: var(--sp-4);
}
.sidebar-nav {
  display: none;
  flex-direction: column;
  gap: var(--sp-4);
  padding: var(--sp-4) var(--sp-3);
  padding-top: env(safe-area-inset-top, var(--sp-4));
  padding-bottom: env(safe-area-inset-bottom, var(--sp-4));
  flex-shrink: 0;
  height: 100vh;
  overflow: hidden;
  background: var(--color-bg-secondary);
  border-right: 1px solid var(--color-border);
  width: var(--sidebar-width);
}
.sidebar-nav[data-collapsed=true] {
  width: var(--sidebar-collapsed);
  padding-left: var(--sp-2);
  padding-right: var(--sp-2);
}
.sidebar-header {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-2);
  text-decoration: none;
  color: inherit;
  transition: opacity var(--transition-fast);
}
.sidebar-header:hover {
  opacity: 0.8;
}
.sidebar-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: var(--radius-lg);
  background: var(--color-primary);
  color: white;
  flex-shrink: 0;
}
.sidebar-title {
  font-weight: 600;
  color: var(--color-fg);
}
.sidebar-nav-list {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-height: 0;
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
}
.sidebar-footer {
  border-top: 1px solid var(--color-border);
  padding-top: var(--sp-3);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-left: var(--sp-2);
  padding-right: var(--sp-2);
}
.sidebar-version {
  font-size: 0.625rem;
  color: var(--color-fg-muted);
  opacity: 0.4;
}
.sidebar-toggle-btn {
  padding: 0.375rem;
  border-radius: var(--radius-lg);
  color: var(--color-fg-muted);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: background-color var(--transition-fast), color var(--transition-fast);
}
.sidebar-toggle-btn:hover {
  background: var(--color-fg-10);
  color: var(--color-fg);
}
.sidebar-footer-actions {
  display: flex;
  align-items: center;
  gap: var(--sp-1);
}
.nav-section-header {
  padding: var(--sp-4) var(--sp-2) var(--sp-1);
}
.nav-section-header:first-child {
  padding-top: 0;
}
.nav-section-header span {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.075em;
  color: var(--color-fg-muted);
  opacity: 0.4;
}
.nav-item-link {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-2) var(--sp-3);
  border-radius: var(--radius-lg);
  transition: background-color var(--transition-fast), color var(--transition-fast);
  text-decoration: none;
  color: var(--color-fg-muted);
}
.nav-item-link:hover {
  background: var(--color-fg-10);
  color: var(--color-fg);
}
.nav-item-link.active {
  font-weight: 600;
  color: var(--color-fg);
  background: var(--color-fg-10);
}
.nav-item-link .icon-md {
  flex-shrink: 0;
}
.nav-item-text {
  font-size: 0.875rem;
}
.sidebar-nav .sidebar-expand-icon {
  display: none;
}
.sidebar-nav[data-collapsed=true] {
  & .sidebar-label,
  & .nav-section-header,
  & .nav-item-text,
  & .sidebar-collapse-icon {
    display: none;
  }
  & .sidebar-expand-icon {
    display: block;
  }
  & .sidebar-header {
    justify-content: center;
    padding: 0;
  }
  & .sidebar-footer {
    justify-content: center;
  }
  & .nav-item-link {
    justify-content: center;
    padding: var(--sp-2);
    position: relative;
  }
  & .nav-item-link:hover::after {
    content: attr(title);
    position: absolute;
    left: 100%;
    top: 50%;
    transform: translateY(-50%);
    margin-left: 0.75rem;
    padding: 0.375rem 0.75rem;
    background: var(--color-fg);
    color: var(--color-bg);
    font-size: 0.75rem;
    font-weight: 500;
    white-space: nowrap;
    border-radius: var(--radius);
    z-index: 100;
    pointer-events: none;
  }
}
.mobile-nav {
  position: fixed;
  bottom: 0;
  width: 100%;
  background: var(--color-bg-90);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-top: 1px solid var(--color-border);
  z-index: 50;
  padding-bottom: env(safe-area-inset-bottom);
}
.mobile-nav-inner {
  display: flex;
  justify-content: space-around;
  align-items: center;
  height: 4rem;
  padding: 0 var(--sp-2);
}
.mobile-nav-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  padding: var(--sp-2);
  width: 4rem;
  transition: all var(--transition-fast);
  text-decoration: none;
}
.mobile-nav-icon {
  color: var(--color-fg-muted);
}
.mobile-nav-icon-active {
  border-radius: 0.75rem;
  background: var(--color-primary);
  padding: 0.25rem 0.75rem;
  box-shadow: var(--shadow-sm);
  color: white;
}
.mobile-nav-label {
  font-size: 0.5625rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--color-fg-muted);
}
.mobile-nav-label.active {
  font-weight: 700;
  color: var(--color-fg);
}
.page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-2);
  min-height: 2.75rem;
  padding: var(--sp-2) var(--sp-4);
  border-bottom: 1px solid var(--color-border);
  background: var(--color-bg-secondary-95);
  position: sticky;
  top: 0;
  z-index: 40;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  flex-shrink: 0;
}
.page-header-title {
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.025em;
  color: var(--color-fg);
  text-decoration: none;
  flex-shrink: 0;
}
.page-header-title:hover {
  opacity: 0.8;
}
.page-header-selectors {
  display: none;
  align-items: center;
  gap: var(--sp-3);
  flex-shrink: 0;
}
.back-link {
  padding: 0.25rem;
  margin-left: -0.5rem;
  border-radius: var(--radius);
  color: var(--color-fg);
  transition: background-color var(--transition-fast);
}
.back-link:hover {
  background: var(--color-bg-secondary);
}
.section-header {
  padding-bottom: var(--sp-4);
}
.section-header h1 {
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.5;
  margin: 0;
}
.section-header.with-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-6);
}
.section-header .subtitle {
  font-size: 0.875rem;
  color: var(--color-fg-muted);
  margin: 0;
}
.section-title {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin: 0;
}
.tab-strip,
.filter-pills,
.custom-command-tabs {
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 2px;
  background: var(--color-border-30);
  border-radius: var(--radius);
  overflow-x: auto;
}
.filter-pills {
  background: var(--color-bg-secondary);
  flex-shrink: 0;
}
.custom-command-tabs {
  padding: 0.125rem;
  gap: 0.125rem;
  margin-left: 0.5rem;
}
.tab-item,
.filter-pill,
.custom-command-tab {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-2) var(--sp-3);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.025em;
  border-radius: calc(var(--radius) - 2px);
  color: var(--color-fg-muted);
  text-decoration: none;
  white-space: nowrap;
  transition: background-color var(--transition-fast), color var(--transition-fast);
  border: none;
  background: transparent;
  cursor: pointer;
}
.filter-pill {
  font-weight: 500;
}
.tab-item:hover,
.filter-pill:hover,
.custom-command-tab:not(.active):hover {
  color: var(--color-fg);
  background: var(--color-bg-50);
}
.tab-item.active,
.filter-pill.active,
.custom-command-tab.active {
  color: var(--color-fg);
  background: var(--color-bg);
  box-shadow: var(--shadow-sm);
}
.filter-pill.active.bg-success {
  background: var(--color-success);
  color: white;
}
.filter-pill.active.bg-warning {
  background: var(--color-warning);
  color: white;
}
.filter-pill.active.bg-error {
  background: var(--color-error);
  color: white;
}
.badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.125rem 0.5rem;
  font-size: 0.75rem;
  border-radius: var(--radius-full);
}
.badge-primary {
  background: var(--color-primary-20);
  color: var(--color-primary);
}
.badge-success {
  background: var(--color-success-20);
  color: var(--color-success);
}
.badge-warning {
  background: var(--color-warning-20);
  color: var(--color-warning);
}
.badge-error {
  background: var(--color-error-20);
  color: var(--color-error);
}
.badge-muted {
  background: var(--color-bg-secondary);
  color: var(--color-fg-muted);
}
.badge-sm {
  padding: 0.125rem 0.375rem;
  font-size: 0.625rem;
  border-radius: var(--radius-sm);
}
.badge-overdue {
  margin-left: 0.5rem;
  font-size: 0.625rem;
  color: var(--color-error);
  font-weight: 600;
}
.badge-overdue-inline {
  display: inline-flex;
  margin-left: 0.5rem;
  font-size: 0.625rem;
  background: var(--color-error-20);
  border-radius: var(--radius-sm);
  color: var(--color-error);
  padding: 0.125rem 0.5rem;
}
.tag-overflow {
  font-size: 0.625rem;
  color: var(--color-fg-muted);
  opacity: 0.5;
}
.tag-remove {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  color: inherit;
  opacity: 0.7;
  transition: opacity var(--transition-fast);
}
.tag-remove:hover {
  opacity: 1;
}
.icon-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--sp-2);
  border-radius: var(--radius);
  background: var(--color-primary-10);
  color: var(--color-primary);
  cursor: pointer;
  border: none;
  transition: all var(--transition-fast);
  &:hover {
    background: var(--color-primary);
    color: white;
  }
  &.muted {
    background: var(--color-bg-tertiary-50);
    color: var(--color-fg-muted);
    &:hover {
      background: var(--color-bg-tertiary-80);
      color: var(--color-fg);
    }
  }
  &.ghost {
    background: transparent;
    color: var(--color-fg-muted);
    &:hover {
      background: var(--color-bg-tertiary);
      color: var(--color-fg);
    }
  }
}
.icon-button-danger:hover {
  background: var(--color-error-20);
  color: var(--color-error);
}
.form-button-primary,
.upload-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.375rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  background: var(--color-primary);
  color: white;
  border: none;
  border-radius: var(--radius);
  cursor: pointer;
  transition: opacity var(--transition-fast);
}
.upload-button {
  width: 100%;
  padding: 0.75rem 1rem;
  border-radius: var(--radius-lg);
}
.form-button-primary:hover,
.upload-button:hover {
  opacity: 0.9;
}
.form-button-secondary {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  background: transparent;
  color: var(--color-fg-muted);
  border: none;
  border-radius: var(--radius);
  cursor: pointer;
  transition: background-color var(--transition-fast);
}
.form-button-secondary:hover {
  background: var(--color-bg-secondary);
}
button[data-variant=success],
.button[data-variant=success] {
  background: var(--color-success);
  color: white;
  border-color: var(--color-success);
}
button[data-variant=success]:hover,
.button[data-variant=success]:hover {
  background: color-mix(in oklch, var(--color-success) 85%, black);
}
button[data-variant=warning],
.button[data-variant=warning] {
  background: var(--color-warning);
  color: white;
  border-color: var(--color-warning);
}
button[data-variant=warning]:hover,
.button[data-variant=warning]:hover {
  background: color-mix(in oklch, var(--color-warning) 85%, black);
}
.form-field-group {
  padding: 0.75rem;
  background: var(--color-bg-secondary-50);
  border-radius: var(--radius-lg);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.form-input,
.form-select,
.form-textarea {
  width: 100%;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  background: var(--color-bg-secondary);
  border: none;
  border-radius: var(--radius);
  color: var(--color-fg);
}
.form-input,
.form-textarea {
  margin-top: 0.25rem;
}
.form-textarea {
  resize: none;
}
.form-select {
  cursor: pointer;
}
.form-input:focus,
.form-select:focus,
.form-textarea:focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--color-primary);
}
.form-checkbox,
.form-radio {
  width: 1rem;
  height: 1rem;
  accent-color: var(--color-primary);
}
.form-checkbox {
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);
}
.checkbox-label,
.radio-label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  font-size: 0.875rem;
}
.checkbox-label {
  display: flex;
  padding: 0.75rem;
}
.radio {
  appearance: none;
  width: 1.25rem;
  height: 1.25rem;
  border: 2px solid var(--color-border);
  border-radius: 50%;
  cursor: pointer;
  transition: all var(--transition-fast);
  position: relative;
}
.radio:checked {
  border-color: var(--color-primary);
}
.radio:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--color-primary);
}
.radio:focus {
  outline: none;
  box-shadow: 0 0 0 2px white, 0 0 0 4px var(--color-primary);
}
.radio-primary:checked {
  border-color: var(--color-primary);
}
.radio-primary:checked::after {
  background: var(--color-primary);
}
.checkbox {
  appearance: none;
  width: 1.25rem;
  height: 1.25rem;
  border: 2px solid var(--color-border);
  border-radius: 0.25rem;
  cursor: pointer;
  transition: all var(--transition-fast);
  position: relative;
}
.checkbox:checked {
  background: var(--color-primary);
  border-color: var(--color-primary);
}
.checkbox:checked::after {
  content: "";
  position: absolute;
  top: 45%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
  width: 0.3rem;
  height: 0.55rem;
  border: solid white;
  border-width: 0 2px 2px 0;
}
.checkbox:focus {
  outline: none;
  box-shadow: 0 0 0 2px white, 0 0 0 4px var(--color-primary);
}
.checkbox-primary:checked {
  background: var(--color-primary);
  border-color: var(--color-primary);
}
.form-warning {
  padding: 0.75rem;
  background: var(--color-warning-20);
  border: 1px solid var(--color-warning-30);
  border-radius: var(--radius);
  color: var(--color-warning);
  font-size: 0.875rem;
}
.form-section {
  padding: var(--sp-4);
}
.field-label {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: var(--color-fg-muted);
}
.readonly-value {
  padding: var(--sp-2) var(--sp-3);
  background: var(--color-bg-secondary);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-size: 0.875rem;
}
.data-table {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--color-bg);
}
.data-table-header {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: var(--sp-2);
  padding: var(--sp-2) var(--sp-4);
  background: var(--color-bg-secondary);
  font-size: 0.625rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-fg-muted);
}
.data-table-header-cell {
  display: flex;
  align-items: center;
  gap: var(--sp-1);
  background: transparent;
  border: none;
  padding: 0;
  font: inherit;
  color: inherit;
  text-transform: inherit;
  letter-spacing: inherit;
}
.data-table-header-cell.sortable {
  cursor: pointer;
  transition: color var(--transition-fast);
}
.data-table-header-cell.sortable:hover,
.sort-column-btn:hover,
.sort-column-btn.active {
  color: var(--color-fg);
}
.data-table-header-cell.align-right {
  justify-content: flex-end;
}
.data-table-header-cell.align-center {
  justify-content: center;
}
.data-table-row {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: var(--sp-2);
  padding: var(--sp-3) var(--sp-4);
  border-top: 1px solid var(--color-border-50);
  font-size: 0.875rem;
  text-decoration: none;
  color: inherit;
  transition: background-color var(--transition-fast);
  align-items: center;
}
.data-table-row:hover {
  background: var(--color-bg-secondary-50);
}
.data-table-empty {
  padding: var(--sp-8) var(--sp-4);
  text-align: center;
  color: var(--color-fg-muted);
}
.data-table-footer {
  margin-top: var(--sp-4);
}
.data-list {
  list-style: none;
  padding: 0;
  margin: 0;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-bg);
}
.data-list li {
  padding: var(--sp-3) var(--sp-4);
  border-bottom: 1px solid var(--color-border);
}
.data-list li:last-child {
  border-bottom: none;
}
.data-list li strong {
  display: block;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-fg);
  margin-bottom: 0.125rem;
}
.data-list li span {
  font-size: 0.875rem;
  color: var(--color-fg-muted);
}
table tr.clickable {
  cursor: pointer;
}
table tr.clickable:hover {
  background: var(--color-bg-secondary);
}
table .actions-cell {
  width: 0;
  text-align: right;
  font-weight: 600;
}
.sort-column-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  background: transparent;
  border: none;
  padding: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  transition: color var(--transition-fast);
}
.clickable-row {
  cursor: pointer;
  transition: background-color var(--transition-fast);
  &:hover {
    background: var(--color-border-30);
  }
  &.selected {
    background: var(--color-border-40);
  }
}
.row-overdue {
  background: var(--color-error-5);
}
.row-former {
  opacity: 0.6;
  &:hover {
    opacity: 0.8;
  }
}
@keyframes row-highlight {
  0% {
    background-color: var(--color-success-20);
  }
  100% {
    background-color: transparent;
  }
}
.row-saved {
  animation: row-highlight 2s ease-out forwards;
}
.stat-card {
  border-radius: var(--radius-lg);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-sm);
}
.stat-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--sp-2);
}
.stat-card-label {
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.025em;
  color: var(--color-fg-muted);
}
.stat-card-value {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--color-fg);
  &.success {
    color: var(--color-success);
  }
  &.error {
    color: var(--color-error);
  }
  &.primary {
    color: var(--color-primary);
  }
}
.stat-card-subtitle {
  font-size: 0.75rem;
  color: var(--color-fg-muted);
  margin-top: var(--sp-1);
}
.stat-card-featured {
  border-radius: var(--radius-lg);
  background:
    linear-gradient(
      to right,
      color-mix(in oklch, var(--color-primary) 10%, var(--color-bg)),
      var(--color-primary-5));
  border: 1px solid var(--color-primary-20);
}
.metrics-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-4);
}
.alert-error,
.alert-warning,
.alert-success {
  margin-bottom: 1rem;
  border-radius: var(--radius);
  padding: 0.75rem 1rem;
}
.alert-error {
  border: 1px solid var(--color-error-30);
  background: var(--color-error-10);
}
.alert-warning {
  border: 1px solid var(--color-warning-30);
  background: var(--color-warning-10);
}
.alert-success {
  border: 1px solid var(--color-success-30);
  background: var(--color-success-10);
}
.alert-success.fade-out {
  animation: alert-fade 3s ease-out forwards;
}
@keyframes alert-fade {
  0%, 60% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    height: 0;
    padding: 0;
    margin: 0;
    overflow: hidden;
  }
}
.inline-success,
.inline-error,
.inline-warning,
.inline-info {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-1);
  font-size: 0.875rem;
  animation: inline-fade 3s ease-out forwards;
}
.inline-success {
  color: var(--color-success);
}
.inline-error {
  color: var(--color-error);
}
.inline-warning {
  color: var(--color-warning);
}
.inline-info {
  color: var(--color-primary);
}
@keyframes inline-fade {
  0%, 70% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
.connection-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  padding: var(--sp-2) var(--sp-4);
  background: var(--color-warning-10);
  color: var(--color-warning);
  font-size: 0.875rem;
  border-bottom: 1px solid var(--color-warning-20);
}
.connection-banner.hidden {
  display: none;
}
.alert-link {
  margin-top: 0.25rem;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.error-message {
  padding: 1rem;
  background: var(--color-error-10);
  border: 1px solid var(--color-error-20);
  border-radius: var(--radius);
  color: var(--color-error);
}
.error-card-wrapper {
  padding: 0 var(--sp-4);
}
.error-card {
  border: 1px solid var(--color-border-30);
  background: var(--color-bg-tertiary-10);
  padding: var(--sp-8);
  margin-bottom: var(--sp-6);
}
.error-card h2 {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-fg);
  margin: 0 0 var(--sp-2);
}
.error-card .error-link {
  display: block;
  color: var(--color-fg);
  text-decoration: underline;
  text-decoration-style: dotted;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  margin-bottom: var(--sp-4);
  word-break: break-all;
  transition: color var(--transition-fast);
}
.error-card .error-link:hover {
  color: var(--color-primary);
}
.error-card .error-link small {
  display: block;
  font-size: 0.75rem;
  color: var(--color-fg-muted);
  margin-top: 0.25rem;
}
.error-card .error-message {
  color: var(--color-fg-muted);
  margin-bottom: var(--sp-4);
}
.error-card .error-location {
  display: block;
  font-size: 0.75rem;
  color: var(--color-fg-muted);
  margin-bottom: var(--sp-4);
}
.error-card .settings-link {
  color: var(--color-fg);
  text-decoration: underline;
}
.flash-group {
  display: flex;
  flex-direction: column;
}
.flash-group [role=alert] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  padding: var(--sp-2) var(--sp-4);
  font-size: 0.875rem;
  border-bottom: 1px solid;
  animation: inline-fade 5s ease-out forwards;
}
.flash-group [role=alert] .hstack {
  gap: var(--sp-2);
}
.flash-group [role=alert] button {
  margin-left: auto;
  opacity: 0.7;
}
.flash-group [role=alert] button:hover {
  opacity: 1;
}
.flash-group [data-variant=success] {
  background: var(--color-success-10);
  color: var(--color-success);
  border-color: var(--color-success-20);
}
.flash-group [data-variant=error] {
  background: var(--color-error-10);
  color: var(--color-error);
  border-color: var(--color-error-20);
}
.flash-group [data-variant=warning] {
  background: var(--color-warning-10);
  color: var(--color-warning);
  border-color: var(--color-warning-20);
}
.flash-group [role=alert]:not([data-variant]) {
  background: var(--color-primary-10);
  color: var(--color-primary);
  border-color: var(--color-primary-20);
}
.theme-toggle {
  position: relative;
  display: flex;
  align-items: center;
  border-radius: var(--radius-full);
  border: 1px solid var(--color-border);
  background: var(--color-bg-secondary);
  padding: 0.25rem;
  box-shadow: var(--shadow-sm);
}
.theme-toggle-indicator {
  position: absolute;
  inset: 0.25rem 0;
  width: calc(100% / 3 - 0.125rem);
  border-radius: var(--radius-full);
  border: 1px solid var(--color-border);
  background: var(--color-bg);
  box-shadow: var(--shadow-sm);
  left: 0;
  transition: left var(--transition);
}
[data-theme=light] .theme-toggle-indicator {
  left: calc(100% / 3);
}
[data-theme=dark] .theme-toggle-indicator {
  left: calc(100% * 2 / 3);
}
.theme-toggle-btn {
  display: flex;
  width: calc(100% / 3);
  align-items: center;
  justify-content: center;
  padding: var(--sp-2);
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--color-fg-muted);
  transition: color var(--transition-fast);
  position: relative;
  z-index: 1;
}
.theme-toggle-btn:hover {
  color: var(--color-fg);
}
.login-container {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--sp-4);
  background: var(--color-bg);
}
.login-card-wrapper {
  width: 100%;
  max-width: 28rem;
}
.login-card {
  padding: var(--sp-8);
}
.login-header {
  text-align: center;
  margin-bottom: var(--sp-8);
}
.login-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  margin: 0 auto var(--sp-4);
  border-radius: var(--radius-full);
  border: 2px solid var(--color-border);
}
.login-footer {
  margin-top: var(--sp-6);
  text-align: center;
}
@keyframes skeleton-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.4;
  }
}
.skeleton {
  background: var(--color-bg-secondary);
  border-radius: var(--radius);
  animation: skeleton-pulse 1.5s ease-in-out infinite;
}
.skeleton-text {
  height: 1em;
  border-radius: var(--radius-sm);
}
.skeleton-text-sm {
  height: 0.75em;
}
.skeleton-text-lg {
  height: 1.25em;
}
.skeleton-circle {
  border-radius: var(--radius-full);
}
.skeleton-button {
  height: 2.25rem;
  min-width: 5rem;
}
.skeleton-row {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: var(--sp-2);
  padding: var(--sp-3) var(--sp-4);
  border-top: 1px solid var(--color-border-50);
}
.skeleton-cell {
  height: 1rem;
  background: var(--color-bg-secondary);
  border-radius: var(--radius-sm);
  animation: skeleton-pulse 1.5s ease-in-out infinite;
}
.skeleton-row {
  &:nth-child(1) .skeleton-cell {
    animation-delay: 0s;
  }
  &:nth-child(2) .skeleton-cell {
    animation-delay: 0.1s;
  }
  &:nth-child(3) .skeleton-cell {
    animation-delay: 0.2s;
  }
  &:nth-child(4) .skeleton-cell {
    animation-delay: 0.3s;
  }
  &:nth-child(5) .skeleton-cell {
    animation-delay: 0.4s;
  }
}
.skeleton-stat-card {
  padding: var(--sp-4);
  border-radius: var(--radius-lg);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  & .skeleton-label {
    height: 0.625rem;
    width: 40%;
    margin-bottom: var(--sp-2);
  }
  & .skeleton-value {
    height: 1.5rem;
    width: 70%;
  }
}
.empty-state {
  padding: var(--sp-8);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 16rem;
}
.empty-state-icon {
  width: 4rem;
  height: 4rem;
  margin-bottom: var(--sp-4);
  color: var(--color-fg-muted);
  opacity: 0.3;
}
.empty-state-title {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--color-fg);
  margin: 0 0 var(--sp-2);
}
.empty-state-description {
  font-size: 0.875rem;
  color: var(--color-fg-muted);
  margin: 0 0 var(--sp-4);
  max-width: 24rem;
}
.empty-state-actions {
  display: flex;
  gap: var(--sp-3);
  flex-wrap: wrap;
  justify-content: center;
}
.empty-state-illustrated {
  position: relative;
  background:
    linear-gradient(
      135deg,
      var(--color-bg-secondary-50) 0%,
      var(--color-bg) 50%,
      var(--color-bg-secondary-50) 100%);
  border-radius: var(--radius-lg);
  border: 1px dashed var(--color-border);
}
.empty-state-illustrated::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      circle at 20% 80%,
      var(--color-primary-5) 0%,
      transparent 30%),
    radial-gradient(
      circle at 80% 20%,
      var(--color-success-5) 0%,
      transparent 30%);
  border-radius: inherit;
  pointer-events: none;
}
@keyframes checkmark-draw {
  0% {
    stroke-dashoffset: 24;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
.success-checkmark {
  width: 1.5rem;
  height: 1.5rem;
  stroke: var(--color-success);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
  stroke-dasharray: 24;
  stroke-dashoffset: 24;
  animation: checkmark-draw 0.3s ease-out forwards;
}
@keyframes success-bounce {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
}
.success-bounce {
  animation: success-bounce 0.3s ease-out;
}
@keyframes success-flash {
  0% {
    background-color: var(--color-success-20);
  }
  100% {
    background-color: transparent;
  }
}
.success-flash {
  animation: success-flash 0.5s ease-out;
}
.saved-indicator {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-1);
  color: var(--color-success);
  font-size: 0.875rem;
  font-weight: 500;
  opacity: 0;
  animation: saved-fade 2s ease-out forwards;
}
@keyframes saved-fade {
  0% {
    opacity: 0;
    transform: translateY(4px);
  }
  10% {
    opacity: 1;
    transform: translateY(0);
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
.account-indicator {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
}
.account-indicator-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: var(--radius);
  flex-shrink: 0;
}
.account-indicator-icon.assets {
  background: var(--color-primary-10);
  color: var(--color-primary);
}
.account-indicator-icon.liabilities {
  background: var(--color-warning-10);
  color: var(--color-warning);
}
.account-indicator-icon.equity {
  background: var(--color-info-10);
  color: var(--color-info);
}
.account-indicator-icon.income {
  background: var(--color-success-10);
  color: var(--color-success);
}
.account-indicator-icon.expenses {
  background: var(--color-error-10);
  color: var(--color-error);
}
.account-indicator-label {
  font-size: 0.875rem;
  color: var(--color-fg);
}
.account-indicator-label.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.settings-tool-link {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  padding: var(--sp-4);
  border-radius: var(--radius-lg);
  background: var(--color-bg-secondary);
  border: 1px solid var(--color-border);
  text-decoration: none;
  color: inherit;
  transition: all var(--transition-fast);
}
.settings-tool-link:hover {
  background: var(--color-bg-tertiary);
  border-color: var(--color-primary-30);
  transform: translateY(-1px);
}
.settings-tool-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: var(--radius);
  background: var(--color-primary-10);
  color: var(--color-primary);
  flex-shrink: 0;
}
.settings-tool-title {
  font-weight: 600;
  font-size: 0.875rem;
  margin-bottom: 0.125rem;
}
.settings-tool-description {
  font-size: 0.75rem;
  color: var(--color-fg-muted);
}
@media (prefers-reduced-motion: reduce) {
  .skeleton,
  .skeleton-cell {
    animation: none;
    opacity: 0.7;
  }
  .row-saved {
    animation: none;
    background-color: var(--color-success-20);
  }
  .alert-success.fade-out {
    animation: none;
  }
  .inline-success {
    animation: none;
  }
  .success-checkmark {
    animation: none;
    stroke-dashoffset: 0;
  }
  .success-bounce,
  .success-flash {
    animation: none;
  }
  .saved-indicator {
    animation: none;
    opacity: 1;
  }
  .ocr-loading-spinner {
    animation: none;
    border-top-color: var(--color-primary);
  }
}

/* css/settings-nav.css */
.settings-with-sidebar {
  display: flex;
  gap: 0;
  min-height: 0;
}
.settings-sidebar-nav {
  width: 14rem;
  flex-shrink: 0;
  border-right: 1px solid var(--color-border);
  background: var(--color-bg-secondary);
  overflow-y: auto;
  padding: var(--sp-4) 0;
}
.settings-sidebar-category {
  padding: 0 var(--sp-2);
  margin-bottom: var(--sp-3);
}
.settings-sidebar-category:last-child {
  margin-bottom: 0;
}
.settings-sidebar-category-header {
  padding: var(--sp-2) var(--sp-3);
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.075em;
  color: var(--color-fg-muted);
  opacity: 0.6;
  margin: 0;
}
.settings-sidebar-items {
  list-style: none;
  margin: 0;
  padding: 0;
}
.settings-sidebar-item {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-2) var(--sp-3);
  border-radius: var(--radius);
  font-size: 0.8125rem;
  color: var(--color-fg-muted);
  text-decoration: none;
  transition: background-color var(--transition-fast), color var(--transition-fast);
  outline: none;
}
.settings-sidebar-item:hover {
  background: var(--color-fg-10);
  color: var(--color-fg);
}
.settings-sidebar-item:focus-visible {
  box-shadow: 0 0 0 2px var(--color-primary);
}
.settings-sidebar-item.active {
  background: var(--color-primary-10);
  color: var(--color-primary);
  font-weight: 600;
}
.settings-sidebar-item .icon-sm {
  flex-shrink: 0;
  opacity: 0.8;
}
.settings-sidebar-item.active .icon-sm {
  opacity: 1;
}
.settings-sidebar-content {
  flex: 1;
  min-width: 0;
  overflow-y: auto;
}
.settings-tab-heading:focus {
  outline: none;
}
@media (max-width: 768px) {
  .settings-with-sidebar {
    flex-direction: column;
  }
  .settings-sidebar-nav {
    display: none;
  }
  .settings-sidebar-content {
    width: 100%;
    padding-bottom: 5rem;
  }
}
.settings-mobile-nav {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 100;
}
@media (max-width: 768px) {
  .settings-with-sidebar .settings-mobile-nav {
    display: block;
  }
}
.settings-mobile-pill {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-1);
  width: 100%;
  padding: var(--sp-2) var(--sp-4);
  padding-bottom: calc(var(--sp-2) + env(safe-area-inset-bottom));
  background: var(--color-bg);
  border: none;
  border-top: 1px solid var(--color-border);
  cursor: pointer;
  transition: background-color var(--transition-fast);
}
.settings-mobile-pill:hover {
  background: var(--color-bg-secondary);
}
.settings-mobile-pill-drag {
  width: 2rem;
  height: 0.25rem;
  border-radius: var(--radius-full);
  background: var(--color-border);
}
.settings-mobile-pill-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-fg);
}
.settings-mobile-pill-icon {
  color: var(--color-fg-muted);
  transition: transform var(--transition);
}
.settings-mobile-nav[data-expanded=true] .settings-mobile-pill {
  display: none;
}
.settings-mobile-nav[data-expanded=true] .settings-mobile-pill-icon {
  transform: rotate(180deg);
}
.settings-mobile-sheet {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  max-height: 70vh;
  background: var(--color-bg);
  border-top-left-radius: var(--radius-lg);
  border-top-right-radius: var(--radius-lg);
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.15);
  transform: translateY(100%);
  transition: transform var(--transition);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.settings-mobile-nav[data-expanded=true] .settings-mobile-sheet {
  transform: translateY(0);
}
.settings-mobile-sheet-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-3) var(--sp-4);
  border-bottom: 1px solid var(--color-border);
  cursor: grab;
  touch-action: pan-y;
}
.settings-mobile-sheet-drag {
  width: 2.5rem;
  height: 0.25rem;
  border-radius: var(--radius-full);
  background: var(--color-border);
}
.settings-mobile-sheet-title {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-fg);
}
.settings-mobile-sheet-nav {
  flex: 1;
  overflow-y: auto;
  padding: var(--sp-2) 0;
  padding-bottom: calc(var(--sp-4) + env(safe-area-inset-bottom));
}
.settings-mobile-category {
  padding: var(--sp-2) var(--sp-4);
}
.settings-mobile-category-header {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.075em;
  color: var(--color-fg-muted);
  opacity: 0.6;
  margin: 0 0 var(--sp-2);
  padding: 0 var(--sp-2);
}
.settings-mobile-items {
  list-style: none;
  margin: 0;
  padding: 0;
}
.settings-mobile-item {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-3);
  border-radius: var(--radius);
  font-size: 0.9375rem;
  color: var(--color-fg-muted);
  text-decoration: none;
  transition: background-color var(--transition-fast), color var(--transition-fast);
}
.settings-mobile-item:hover,
.settings-mobile-item:active {
  background: var(--color-fg-10);
  color: var(--color-fg);
}
.settings-mobile-item.active {
  background: var(--color-primary-10);
  color: var(--color-primary);
  font-weight: 600;
}
.settings-mobile-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--transition), visibility var(--transition);
  z-index: -1;
}
.settings-mobile-nav[data-expanded=true] .settings-mobile-backdrop {
  opacity: 1;
  visibility: visible;
}

/* css/pages.css */
.filter-bar,
.advanced-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4);
  border-bottom: 1px solid var(--color-border);
  background: var(--color-bg-secondary);
}
.advanced-filters {
  padding: 0.5rem 1rem;
  background: var(--color-bg-50);
  gap: 0.75rem;
}
.advanced-filters .filter-label {
  display: inline;
  margin-bottom: 0;
}
.advanced-filters .hstack {
  flex-wrap: nowrap;
}
.filter-bar-search {
  width: 100%;
  order: 1;
}
.filter-bar-filters {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  overflow-x: auto;
  order: 2;
}
.filter-bar-actions {
  margin-left: auto;
  order: 3;
}
.filter-select,
.grouping-select,
.date-input {
  padding: var(--sp-2) var(--sp-3);
  font-size: 0.875rem;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  color: var(--color-fg);
  cursor: pointer;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.filter-select:focus,
.grouping-select:focus,
.date-input:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 2px var(--color-primary-20);
}
.filter-select:hover {
  background: var(--color-bg-secondary);
}
.grouping-select {
  padding: 0.375rem 0.5rem;
  font-size: 0.75rem;
  font-weight: 500;
}
.date-input {
  padding: 0.25rem 0.5rem;
  font-size: 0.75rem;
}
.clear-filters-btn,
.filter-clear-link {
  font-size: 0.75rem;
  color: var(--color-fg-muted);
  background: transparent;
  border: none;
  padding: var(--sp-1) var(--sp-2);
  cursor: pointer;
  transition: color var(--transition-fast);
}
.filter-clear-link {
  text-decoration: underline;
  text-underline-offset: 2px;
}
.clear-filters-btn:hover,
.filter-clear-link:hover {
  color: var(--color-fg);
}
.filter-count-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 0.375rem;
  font-size: 0.625rem;
  font-weight: 700;
  border-radius: var(--radius-full);
  background: var(--color-primary);
  color: white;
}
.filter-menu-card {
  margin-bottom: var(--sp-4);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  background: var(--color-bg-80);
  padding: var(--sp-4);
  box-shadow: var(--shadow-sm);
}
.filter-menu-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-3);
}
.filter-menu-label,
.filter-label {
  display: block;
  margin-bottom: 0.25rem;
  padding-left: 0.125rem;
  font-size: 0.625rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-fg-muted);
  font-weight: 600;
}
.filter-menu-card input,
.filter-menu-card select {
  width: 100%;
  padding: var(--sp-2) var(--sp-3);
  font-size: 0.75rem;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  color: var(--color-fg);
}
.filter-menu-card input:focus,
.filter-menu-card select:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 2px var(--color-primary-20);
}
.filter-menu-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: var(--sp-3);
  padding-top: var(--sp-3);
  border-top: 1px solid var(--color-border);
}
.filter-summary-text,
.filter-summary {
  font-size: 0.75rem;
  color: var(--color-fg-muted);
  margin-left: auto;
}
.filter-date-range {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.filter-date-range input[type=date] {
  flex: 1;
  min-width: 0;
}
.filter-date-separator {
  color: var(--color-fg-muted);
  font-size: 0.875rem;
  flex-shrink: 0;
}
.filter-date-hint {
  display: block;
  font-size: 0.75rem;
  color: var(--color-fg-muted);
  margin-top: 0.25rem;
}
.filter-period-form {
  margin-bottom: 0.5rem;
}
.search-input-wrapper {
  position: relative;
}
.search-input-icon {
  position: absolute;
  left: var(--sp-3);
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-fg-muted);
  pointer-events: none;
}
.search-input {
  width: 100%;
  padding: var(--sp-2) var(--sp-3) var(--sp-2) 2.25rem;
  font-size: 0.875rem;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
}
.search-input:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 2px var(--color-primary-20);
}
.search-input::placeholder {
  color: var(--color-fg-muted);
}
.role-selector,
.project-switcher,
.grouping-selector,
.language-selector {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-2) var(--sp-3);
  background: var(--color-border-30);
  border-radius: var(--radius);
}
.grouping-selector {
  gap: 0.25rem;
  background: var(--color-bg-secondary);
  border-radius: var(--radius-lg);
  padding: 0.25rem;
}
.language-selector {
  background: var(--color-bg-secondary);
  padding: 0.375rem var(--sp-3);
}
.role-selector select,
.language-selector select {
  background: transparent;
  border: none;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-fg);
  outline: none;
}
.role-selector select {
  cursor: default;
}
.language-selector select {
  cursor: pointer;
}
.project-switcher {
  text-decoration: none;
  color: var(--color-fg);
  transition: background-color var(--transition-fast);
}
.project-switcher:hover {
  background: var(--color-border);
}
.project-switcher span {
  font-size: 0.875rem;
  font-weight: 500;
}
.grouping-label {
  padding: 0 0.5rem;
  font-size: 0.75rem;
  color: var(--color-fg-muted);
}
.language-selector-icon {
  color: var(--color-fg-muted);
}
.detail-layout {
  flex: 1;
  display: flex;
  overflow: hidden;
}
.detail-sidebar {
  width: var(--detail-sidebar);
  border-right: 1px solid var(--color-border);
  padding: 1.5rem;
  overflow-y: auto;
  flex-shrink: 0;
}
.detail-sidebar-wide {
  width: auto;
  flex: 1;
  max-width: var(--detail-sidebar-wide);
}
.detail-preview {
  flex: 1;
  background: var(--color-bg-secondary);
  padding: 1.5rem;
  overflow-y: auto;
}
.detail-container {
  max-width: var(--container-xl);
  margin: 0 auto;
}
.detail-section {
  margin-bottom: var(--sp-6);
  box-shadow: var(--shadow);
}
.detail-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--sp-4);
}
.detail-section-title {
  font-size: 0.875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-fg-muted);
  margin: 0;
}
.detail-field {
  margin-bottom: var(--sp-3);
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
}
.detail-field-label {
  font-size: 0.625rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-fg-muted);
  margin-bottom: var(--sp-1);
}
.detail-field-value {
  font-size: 0.875rem;
  color: var(--color-fg);
}
.detail-field dt {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-fg-muted);
}
.detail-field dd {
  font-size: 0.875rem;
  color: var(--color-fg);
  margin: 0;
}
.detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--sp-4);
}
.detail-grid.cols-4 {
  grid-template-columns: repeat(2, 1fr);
}
.amount-large {
  font-size: 1.5rem;
  font-family: var(--font-mono);
  font-weight: 700;
}
.amount-secondary {
  font-size: 1rem;
  font-weight: normal;
  color: var(--color-fg-muted);
}
.amount-income {
  font-weight: 500;
  color: var(--color-success);
}
.amount-expense {
  font-weight: 500;
  color: var(--color-error);
}
.amount-warning {
  font-weight: 500;
  color: var(--color-warning);
}
.text-overdue {
  color: var(--color-error);
  font-weight: 500;
}
.transaction-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--sp-3);
  border-radius: var(--radius);
  border: 1px solid var(--color-border-50);
  text-decoration: none;
  color: inherit;
  transition: background-color var(--transition-fast);
}
.transaction-item:hover {
  background: var(--color-bg-secondary);
}
.transaction-icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: var(--color-primary-10);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.transaction-details {
  flex: 1;
  min-width: 0;
  margin-left: var(--sp-3);
}
.transaction-payee {
  font-weight: 500;
  font-size: 0.875rem;
  color: var(--color-fg);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.transaction-meta {
  font-size: 0.75rem;
  color: var(--color-fg-muted);
}
.transaction-amount {
  font-size: 0.875rem;
  font-family: var(--font-mono);
  font-weight: 600;
  color: var(--color-fg);
}
.attachment-link,
.attachment-empty,
.attachment-warning {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  border-radius: var(--radius);
  font-size: 0.875rem;
  transition: background-color var(--transition-fast), color var(--transition-fast);
  width: 100%;
  text-align: left;
  border: none;
  cursor: pointer;
  text-decoration: none;
}
.attachment-link {
  background: var(--color-success-20);
  color: var(--color-success);
}
.attachment-link:hover {
  background: var(--color-success-30);
}
.attachment-link.active {
  background: var(--color-primary-20);
  color: var(--color-primary);
}
.attachment-empty {
  display: inline-flex;
  background: var(--color-bg-secondary);
  color: var(--color-fg-muted);
  cursor: default;
}
.attachment-warning {
  display: inline-flex;
  background: var(--color-warning-20);
  color: var(--color-warning);
  cursor: default;
}
.attachment-row,
.posting-row {
  display: flex;
  gap: var(--sp-3);
  align-items: flex-start;
  justify-content: space-between;
  padding: var(--sp-3);
  background: var(--color-bg-secondary);
  border-radius: var(--radius);
}
.posting-row {
  padding: var(--sp-2) var(--sp-3);
}
.current-attachment-item,
.staged-file-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem;
  background: var(--color-bg);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
}
.current-attachment-info,
.staged-file-info {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}
.current-attachment-details {
  min-width: 0;
}
.current-attachment-name,
.staged-file-name {
  font-size: 0.875rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display: block;
}
.current-attachment-view {
  font-size: 0.625rem;
  color: var(--color-primary);
  text-decoration: none;
}
.current-attachment-view:hover {
  text-decoration: underline;
}
.current-attachment-remove,
.staged-file-remove {
  padding: 0.375rem;
  color: var(--color-fg-muted);
  background: transparent;
  border: none;
  border-radius: var(--radius);
  cursor: pointer;
  flex-shrink: 0;
  transition: background-color var(--transition-fast), color var(--transition-fast);
}
.staged-file-remove {
  padding: 0.25rem;
}
.current-attachment-remove:hover,
.staged-file-remove:hover {
  background: var(--color-error-20);
  color: var(--color-error);
}
.upload-dropzone,
.files-upload-dropzone {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--sp-4);
  border: 2px dashed var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-bg-secondary);
  text-align: center;
  transition: border-color var(--transition), background var(--transition);
  cursor: pointer;
}
.files-upload-dropzone {
  border-radius: var(--radius);
  padding: 1rem;
  background: var(--color-bg-secondary-50);
  margin-bottom: 0.75rem;
}
.upload-dropzone:hover,
.files-upload-dropzone:hover {
  border-color: var(--color-primary);
  background: var(--color-bg-tertiary);
}
.files-upload-dropzone:hover {
  background: var(--color-bg-secondary);
}
.upload-dropzone.drag-over {
  border-color: var(--color-primary);
  background: var(--color-primary-5);
}
.upload-dropzone-label,
.files-upload-label {
  cursor: pointer;
  text-align: center;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}
.upload-dropzone-icon,
.files-upload-icon {
  width: 4rem;
  height: 4rem;
  margin: 0 auto 1rem;
  color: var(--color-fg-muted);
  opacity: 0.3;
}
.files-upload-icon {
  width: 2rem;
  height: 2rem;
  margin: 0;
  opacity: 0.4;
}
.upload-dropzone-icon-lg {
  width: 3rem;
  height: 3rem;
  margin: 0 auto 0.75rem;
  color: var(--color-fg-muted);
  opacity: 0.3;
}
.upload-dropzone-tall {
  min-height: 200px;
}
.upload-dropzone.upload-dropzone-compact {
  padding: var(--sp-2);
}
.upload-dropzone.upload-dropzone-compact .upload-dropzone-label {
  padding: 0.75rem;
  gap: 0.25rem;
}
.upload-dropzone.upload-dropzone-compact .upload-dropzone-icon {
  width: 2rem;
  height: 2rem;
  margin: 0 auto 0.5rem;
}
.upload-dropzone.upload-dropzone-compact .upload-dropzone-title {
  font-size: 0.875rem;
}
.upload-dropzone.upload-dropzone-compact .upload-dropzone-subtitle {
  display: none;
}
.upload-dropzone.upload-dropzone-compact .upload-dropzone-hint {
  margin-top: 0.5rem;
}
.upload-dropzone-title {
  font-size: 1.125rem;
  color: var(--color-fg-muted);
  font-weight: 500;
}
.upload-dropzone-subtitle,
.upload-dropzone-hint,
.files-upload-hint {
  font-size: 0.875rem;
  color: var(--color-fg-muted);
  opacity: 0.6;
  margin-top: 0.25rem;
}
.upload-dropzone-hint,
.files-upload-hint {
  font-size: 0.75rem;
  margin-top: 1rem;
}
.files-upload-text {
  font-size: 0.875rem;
  color: var(--color-fg-muted);
}
.files-upload-text strong {
  color: var(--color-fg);
}
.upload-entry {
  padding: var(--sp-1) var(--sp-2);
  background: var(--color-bg-secondary);
  border-radius: var(--radius-sm);
  font-size: 0.75rem;
  margin-top: var(--sp-3);
}
.upload-entry-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  background: var(--color-bg-secondary);
  border-radius: var(--radius);
  padding: 0.25rem 0.5rem;
  margin-top: 0.5rem;
}
.upload-entry-name {
  flex: 1;
  color: var(--color-fg);
}
.upload-entry-progress {
  color: var(--color-fg-muted);
}
.upload-entry-cancel {
  color: var(--color-fg-muted);
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  transition: color var(--transition-fast);
}
.upload-entry-cancel:hover {
  color: var(--color-error);
}
.upload-entry-error {
  margin-top: 0.25rem;
  font-size: 0.75rem;
  color: var(--color-error);
}
.preview-container {
  height: 100%;
  display: flex;
  flex-direction: column;
}
.preview-link {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.75rem;
  color: var(--color-primary);
  text-decoration: none;
}
.preview-link:hover {
  text-decoration: underline;
}
.preview-frame {
  flex: 1;
  background: var(--color-bg);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow);
}
.preview-iframe,
.pdf-preview iframe,
.pdf-viewer-frame iframe,
.pdf-preview-iframe-fullscreen {
  width: 100%;
  height: 100%;
  border: none;
}
.preview-image-container {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.preview-image {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.preview-empty {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--color-fg-muted);
  opacity: 0.5;
}
.preview-empty-icon {
  width: 6rem;
  height: 6rem;
  margin-bottom: 1rem;
}
.preview-empty-title {
  font-size: 1.125rem;
}
.preview-empty-subtitle {
  font-size: 0.875rem;
  margin-top: 0.25rem;
}
.pdf-preview {
  background: var(--color-bg-secondary);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.pdf-preview iframe {
  height: 600px;
}
.pdf-preview-fullscreen {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pdf-preview-iframe-fullscreen {
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
}
.pdf-viewer-card {
  padding: var(--sp-4);
}
.pdf-viewer-frame {
  width: 100%;
  height: 720px;
  overflow: hidden;
  border-radius: var(--radius);
  border: 1px solid var(--color-border);
}
.ocr-fields {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}
.ocr-field {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--sp-2) var(--sp-3);
  background: var(--color-bg-secondary);
  border-radius: var(--radius);
}
.ocr-field-label {
  font-size: 0.75rem;
  color: var(--color-fg-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.ocr-field-value {
  font-size: 0.875rem;
  color: var(--color-fg);
  text-align: right;
}
.ocr-field-select {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
}
.ocr-field-select .ocr-field-label {
  margin-bottom: var(--sp-1);
}
.ocr-field-select select,
.ocr-field-select input {
  width: 100%;
  padding: var(--sp-2);
  background: var(--color-bg-secondary);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-size: 0.875rem;
  color: var(--color-fg);
}
.ocr-field-select select:focus,
.ocr-field-select input:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 2px var(--color-primary-20);
}
.ocr-field-select select option {
  padding: var(--sp-2);
}
.ocr-field-select .w-auto {
  width: auto;
  min-width: 100px;
}
.ocr-raw-text {
  margin-top: var(--sp-2);
}
.ocr-raw-summary {
  cursor: pointer;
  font-size: 0.75rem;
  color: var(--color-fg-muted);
  display: flex;
  align-items: center;
  gap: 0.25rem;
  padding: var(--sp-1) 0;
}
.ocr-raw-summary:hover {
  color: var(--color-fg);
}
.ocr-raw-content {
  margin-top: var(--sp-2);
  padding: var(--sp-3);
  background: var(--color-bg-tertiary);
  border-radius: var(--radius);
  font-size: 0.7rem;
  line-height: 1.4;
  max-height: 200px;
  overflow-y: auto;
  white-space: pre-wrap;
  word-break: break-word;
  color: var(--color-fg-muted);
}
.ocr-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--sp-8);
  color: var(--color-fg-muted);
}
.ocr-loading-spinner {
  width: 2rem;
  height: 2rem;
  border: 2px solid var(--color-border);
  border-top-color: var(--color-primary);
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin-bottom: var(--sp-3);
}
.ocr-preview {
  border-top: 1px solid var(--color-border);
  padding-top: var(--sp-4);
}
.ocr-preview-frame {
  background: var(--color-bg-tertiary);
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--color-border);
}
.ocr-preview-iframe {
  width: 100%;
  height: 400px;
  border: none;
}
.ocr-preview-image {
  width: 100%;
  height: auto;
  max-height: 400px;
  object-fit: contain;
  display: block;
}
.ocr-preview-pdf-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--sp-8);
}
.balance-content,
.files-content {
  padding: 0 var(--sp-4);
}
.balance-tree {
  font-family: var(--font-mono);
}
.balance-options {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
  margin-top: -0.5rem;
  padding: 0 0.25rem;
}
.balance-section-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding: var(--sp-2);
  cursor: pointer;
}
.balance-section-grid,
.balance-tree-grid {
  display: grid;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
}
.balance-section-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  width: 100%;
}
.balance-section-title {
  font-weight: 700;
  color: var(--color-fg);
}
.balance-chevron {
  color: var(--color-fg-muted);
  transition: transform var(--transition-fast);
}
.balance-chevron.collapsed {
  transform: rotate(-90deg);
}
.balance-tree-line {
  position: relative;
  padding-left: 1rem;
  margin-left: 0.25rem;
}
.balance-tree-line::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 1px;
  background-color: var(--color-border);
}
.balance-tree-branch {
  position: relative;
  display: flex;
  align-items: center;
}
.balance-tree-branch::before {
  content: "";
  position: absolute;
  left: -1rem;
  top: 50%;
  width: 0.75rem;
  height: 1px;
  background-color: var(--color-border);
}
.balance-amount {
  font-weight: 700;
  color: var(--color-fg);
  text-align: right;
  min-width: 5rem;
}
.balance-tree-node {
  padding: 0.375rem 0.5rem;
  cursor: pointer;
  color: var(--color-fg-muted);
  &.highlighted {
    color: var(--color-fg);
  }
  &:hover {
    background: var(--color-border-20);
  }
}
.balance-tree-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  &:hover {
    background: var(--color-bg-secondary);
    border-radius: var(--radius-sm);
  }
}
.balance-tree-label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}
.balance-tree-link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex: 1;
  min-width: 0;
  text-decoration: none;
  color: inherit;
}
.balance-tree-link:hover {
  text-decoration: underline;
}
.balance-tree-name {
  font-size: 0.75rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.balance-tree-value {
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
  text-align: right;
  min-width: 5rem;
  color: inherit;
  text-decoration: none;
}
.balance-tree-value:hover {
  text-decoration: underline;
}
.balance-tree-maximized {
  position: fixed;
  inset: var(--sp-4);
  z-index: 50;
  overflow: auto;
}
.leader-dots {
  flex-grow: 1;
  border-bottom: 1px dotted var(--color-border);
  margin: 0 6px;
  position: relative;
  top: -4px;
}
.tree-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  border-radius: var(--radius-sm);
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  flex-shrink: 0;
  transition: background-color var(--transition-fast);
}
.tree-toggle:hover {
  background: var(--color-border-40);
}
.tree-toggle .rotated {
  transform: rotate(-90deg);
}
.tree-toggle-spacer {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}
.balance-report-section {
  margin-bottom: 2rem;
}
.balance-report-header {
  border-bottom: 1px solid var(--color-border);
  padding-bottom: 0.5rem;
  margin-bottom: 0.75rem;
  padding-left: 0.25rem;
}
.balance-report-header-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
}
.balance-report-title {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}
.balance-report-title h3 {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--color-fg);
  letter-spacing: 0.1em;
}
.balance-report-date-range {
  font-size: 0.625rem;
  color: var(--color-fg-muted);
}
.balance-report-content {
  font-size: 0.875rem;
  font-family: var(--font-mono);
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
  user-select: none;
}
.balance-total-row,
.balance-total-row-grid {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px dashed var(--color-border);
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.balance-total-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.balance-total-row-grid {
  display: grid;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
}
.balance-total-label {
  font-weight: 700;
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  color: var(--color-fg);
}
.balance-total-value {
  font-weight: 700;
  font-size: 1.125rem;
  color: var(--color-fg);
  &.positive {
    color: var(--color-success);
  }
  &.negative {
    color: var(--color-error);
  }
}
.balance-currency-totals {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px dashed var(--color-border);
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.balance-currency-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.25rem 0;
}
.balance-currency-label {
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--color-fg-muted);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.balance-currency-value {
  font-size: 0.875rem;
  font-variant-numeric: tabular-nums;
  color: var(--color-fg);
  &.negative {
    color: var(--color-error);
  }
}
.profit-loss-summary {
  background: var(--color-bg-secondary);
}
.profit-loss-card {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--sp-4);
  margin-bottom: var(--sp-4);
}
.profit-loss-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: var(--sp-3);
}
.profit-loss-title {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}
.profit-loss-date-range {
  font-size: 0.75rem;
  color: var(--color-fg-muted);
}
.profit-loss-main {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
}
.profit-loss-value {
  font-size: 1.75rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  margin: 0;
  &.positive {
    color: var(--color-success);
  }
  &.negative {
    color: var(--color-error);
  }
}
.profit-loss-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.25rem 0.5rem;
  border-radius: var(--radius);
  font-size: 0.75rem;
  font-weight: 600;
  &.positive {
    background: var(--color-success-10);
    color: var(--color-success);
  }
  &.negative {
    background: var(--color-error-10);
    color: var(--color-error);
  }
}
.profit-loss-section {
  margin-top: 0;
}
.pl-tree-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding: var(--sp-2);
  border-radius: var(--radius);
  transition: background-color var(--transition-fast);
}
.pl-tree-header.pl-income {
  background: var(--color-success-10);
  border: 1px solid var(--color-success-20);
  color: var(--color-success);
}
.pl-tree-header.pl-expense {
  background: var(--color-error-10);
  border: 1px solid var(--color-error-20);
  color: var(--color-error);
}
.pl-income-row,
.pl-expense-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--sp-2);
  border-radius: var(--radius);
  cursor: pointer;
  transition: background-color var(--transition-fast);
  gap: var(--sp-3);
}
.pl-income-row {
  color: color-mix(in oklch, var(--color-success) 80%, var(--color-fg));
}
.pl-expense-row {
  color: color-mix(in oklch, var(--color-error) 80%, var(--color-fg));
}
.pl-income-row:hover,
.pl-expense-row:hover {
  background: var(--color-border-30);
}
.chart-container {
  overflow-x: auto;
}
.chart-bars {
  display: flex;
  align-items: flex-end;
  gap: var(--sp-2);
  height: 12rem;
  border-bottom: 1px solid var(--color-border);
  border-left: 1px solid var(--color-border);
  padding: var(--sp-4);
  min-width: 600px;
}
.chart-bar-group {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-1);
}
.chart-bar-pair {
  width: 100%;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 2px;
  height: 10rem;
}
.chart-bar {
  width: 45%;
  border-radius: var(--radius-sm) var(--radius-sm) 0 0;
  transition: opacity var(--transition-fast);
}
.chart-bar:hover {
  opacity: 0.8;
}
.chart-bar.income,
.chart-legend-dot.income {
  background: var(--color-success);
}
.chart-bar.expense,
.chart-legend-dot.expense {
  background: var(--color-error);
}
.chart-bar-label {
  font-size: 0.625rem;
  color: var(--color-fg-muted);
  text-align: center;
}
.chart-legend {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-4);
  margin-top: var(--sp-3);
}
.chart-legend-item {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
}
.chart-legend-dot {
  width: 0.75rem;
  height: 0.75rem;
  border-radius: var(--radius-sm);
}
.console-view {
  font-family: var(--font-mono);
  background: var(--color-console-bg);
  color: var(--color-console-fg);
}
.commit-entry {
  width: 100%;
  text-align: left;
  padding: var(--sp-2) var(--sp-3);
  border-radius: var(--radius);
  background: transparent;
  border: 1px solid transparent;
  cursor: pointer;
  transition: background-color var(--transition-fast), border-color var(--transition-fast);
}
.commit-entry:hover {
  background: var(--color-bg-secondary);
}
.commit-entry.selected {
  background: var(--color-primary-10);
  border-color: var(--color-primary-20);
}
.diff-file {
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  overflow: hidden;
}
.diff-content {
  padding: var(--sp-3);
  font-family: var(--font-mono);
  font-size: 0.75rem;
  overflow-x: auto;
  background: var(--color-bg);
}
.diff-content pre {
  margin: 0;
}
.diff-content code {
  background: transparent;
  padding: 0;
}
.diff-line-added {
  background: var(--color-success-10);
  color: var(--color-success);
}
.diff-line-removed {
  background: var(--color-error-10);
  color: var(--color-error);
}
.diff-line-hunk {
  background: var(--color-info-10);
  color: var(--color-info);
  font-weight: 600;
}
.diff-line-header {
  background: var(--color-bg-secondary);
  color: var(--color-fg);
  font-weight: 600;
}
.diff-line-unchanged {
  color: var(--color-fg-muted);
}
.diff-added {
  color: var(--color-success);
}
.diff-removed {
  color: var(--color-error);
}
.files-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-4);
}
.files-panel {
  border: 1px solid var(--color-border-30);
  border-radius: var(--radius);
  padding: var(--sp-4);
  background: var(--color-bg-tertiary-10);
}
.files-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}
.files-panel-title {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-fg);
}
.files-panel-actions {
  display: flex;
  align-items: center;
  gap: 0.25rem;
}
.files-breadcrumbs {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  margin-bottom: 1rem;
}
.files-breadcrumb-link {
  color: var(--color-fg-muted);
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  transition: color var(--transition-fast);
}
.files-breadcrumb-link:hover {
  color: var(--color-fg);
}
.files-breadcrumb-current {
  color: var(--color-fg);
  font-weight: 600;
}
.files-breadcrumb-separator {
  color: var(--color-fg-muted);
}
.files-empty-state {
  color: var(--color-fg-muted);
  font-size: 0.875rem;
}
.new-item-form {
  margin-bottom: 0.75rem;
  padding: 0.5rem;
  background: var(--color-bg-secondary);
  border-radius: var(--radius);
}
.new-item-form-inner {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.new-item-input {
  flex: 1;
  height: 2rem;
  border-radius: var(--radius);
  border: 1px solid var(--color-border);
  background: var(--color-bg);
  padding: 0 0.5rem;
  font-size: 0.75rem;
  color: var(--color-fg);
  box-shadow: var(--shadow-sm);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.new-item-input:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 2px var(--color-primary-30);
}
.file-list-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0.5rem;
  border-radius: var(--radius);
  transition: background-color var(--transition-fast);
}
.file-list-item:hover {
  background: var(--color-border-30);
}
.file-list-link {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  font-size: 0.875rem;
  color: var(--color-fg);
  text-decoration: none;
}
.file-list-link:hover {
  text-decoration: underline;
}
.file-list-actions {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  opacity: 0;
  transition: opacity var(--transition-fast);
}
.file-list-item:hover .file-list-actions {
  opacity: 1;
}
.fullscreen-editor {
  position: fixed;
  inset: 0;
  z-index: 50;
  background: var(--color-bg);
  display: flex;
  flex-direction: column;
}
.fullscreen-editor-header {
  background: var(--color-bg-secondary-95);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--color-border-20);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 1rem;
}
.fullscreen-editor-title {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-fg);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.fullscreen-editor-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.fullscreen-editor-content {
  flex: 1;
  overflow: auto;
  padding: var(--sp-6);
}
.fullscreen-editor-form {
  max-width: 80rem;
  margin: 0 auto;
}
.scripts-layout {
  display: grid;
  grid-template-columns: 16rem 1fr;
  gap: var(--sp-4);
  min-height: calc(100vh - 8rem);
}
.scripts-sidebar {
  background: var(--color-bg-secondary);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  overflow: hidden;
}
.scripts-sidebar-section {
  padding: var(--sp-4);
}
.scripts-list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-2);
  padding: var(--sp-2);
  border-radius: var(--radius);
  transition: background-color var(--transition-fast);
}
.scripts-list-item:hover {
  background: var(--color-bg-tertiary);
}
.scripts-list-item a {
  text-decoration: none;
  color: var(--color-fg);
}
.scripts-delete-btn {
  opacity: 0;
  color: var(--color-error);
  transition: opacity var(--transition-fast);
}
.scripts-list-item:hover .scripts-delete-btn {
  opacity: 1;
}
.scripts-main-content {
  flex: 1;
  overflow-y: auto;
}
.scripts-form-container {
  padding: var(--sp-6);
  max-width: var(--container-xl);
  margin: 0 auto;
  width: 100%;
}
.scripts-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: var(--color-fg-muted);
  text-align: center;
  padding: var(--sp-8);
}
.transactions-section-header {
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--color-border);
}
.bookings-group-header {
  width: 100%;
  padding: var(--sp-2) var(--sp-4);
  background: var(--color-bg-tertiary-20);
  border-bottom: 1px solid var(--color-border);
  position: sticky;
  top: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-align: left;
  cursor: pointer;
  transition: background-color var(--transition-fast);
  border: none;
  &:hover {
    background: var(--color-bg-tertiary-30);
  }
}
.group-title,
.totals-label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.075em;
  color: var(--color-fg);
}
.group-count {
  font-size: 0.75rem;
  color: var(--color-fg-muted);
  margin-left: 0.25rem;
}
.group-total {
  font-size: 0.75rem;
  font-family: var(--font-mono);
  font-weight: 600;
  color: var(--color-fg);
}
.bookings-totals-footer {
  padding: var(--sp-3) var(--sp-4);
  background: var(--color-bg-tertiary-40);
  border-top: 1px solid var(--color-border);
}
.totals-amount {
  font-size: 0.875rem;
  font-family: var(--font-mono);
  font-weight: 700;
  color: var(--color-fg);
}
.bookings-page,
.salary-statement-page {
  min-height: 100vh;
}
.employee-card {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: box-shadow var(--transition);
  &:hover {
    box-shadow: 0 4px 12px var(--color-fg-10);
  }
  &.former {
    opacity: 0.75;
    border-color: var(--color-border-50);
    background: var(--color-bg-secondary);
  }
}
.employee-card-header {
  padding: var(--sp-4) var(--sp-6);
  border-bottom: 1px solid var(--color-border-50);
  background:
    linear-gradient(
      to right,
      var(--color-primary-10),
      var(--color-primary-5));
  &.former {
    background: var(--color-bg-tertiary-50);
  }
}
.salary-info-card,
.period-card {
  border-radius: var(--radius);
  padding: var(--sp-3);
  background: var(--color-bg-secondary-50);
}
.salary-info-card.former {
  background: var(--color-bg-tertiary-50);
}
.salary-preview-section {
  margin-top: var(--sp-8);
  padding-top: var(--sp-6);
  border-top: 1px solid var(--color-border);
}
.salary-header {
  padding-bottom: var(--sp-4);
  margin-bottom: var(--sp-4);
  border-bottom: 1px solid var(--color-border);
}
.salary-table {
  width: 100%;
  font-size: 0.875rem;
  & th {
    padding: var(--sp-2) 0;
    font-weight: 600;
    border-bottom: 1px solid var(--color-border);
  }
  & td {
    padding: var(--sp-2) 0;
  }
  & .numeric {
    text-align: right;
  }
  & .subtotal {
    background: var(--color-bg-tertiary-50);
  }
  & .subtotal td,
  & .total td {
    padding: var(--sp-2) var(--sp-1);
  }
  & .total {
    background: var(--color-primary-10);
  }
}
.salary-summary {
  margin-top: var(--sp-6);
  padding-top: var(--sp-4);
  border-top: 1px solid var(--color-border);
}
.section-header-row {
  margin-bottom: var(--sp-3);
}
.section-divider {
  border-top: 1px solid var(--color-border);
  padding-top: 1rem;
  margin-bottom: 1rem;
}
.raw-ledger-section {
  padding-top: 1rem;
  margin-top: 1rem;
  border-top: 1px solid var(--color-border);
}
.raw-ledger-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  color: var(--color-fg-muted);
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  transition: color var(--transition-fast);
  &:hover {
    color: var(--color-fg);
  }
}
.raw-ledger-content {
  margin-top: 0.75rem;
  padding: 0.75rem;
  background: var(--color-bg-secondary);
  border-radius: var(--radius);
  font-size: 0.75rem;
  overflow-x: auto;
}
.rule-row {
  display: flex;
  padding: var(--sp-2);
  background: var(--color-bg-secondary);
  border-radius: var(--radius);
  flex-wrap: wrap;
}
.rule-row select,
.rule-row input {
  font-size: 0.875rem;
}
.admin-layout {
  min-height: 100vh;
}
.admin-sidebar {
  width: 16rem;
  background: var(--color-bg-secondary);
  border-right: 1px solid var(--color-border);
  min-height: 100vh;
}
.admin-nav-item {
  display: block;
  padding: var(--sp-2) var(--sp-4);
  border-radius: var(--radius);
  color: var(--color-fg-muted);
  text-decoration: none;
  transition: background-color var(--transition-fast), color var(--transition-fast);
  &:hover {
    background: var(--color-bg-tertiary);
    color: var(--color-fg);
  }
  &.active {
    background: var(--color-primary-15);
    color: var(--color-primary);
    font-weight: 500;
  }
}
.setup-stepper {
  margin-bottom: var(--sp-6);
}
.setup-stepper-list {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}
.setup-stepper-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  flex: 1;
  max-width: 10rem;
}
.setup-stepper-indicator {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 600;
  transition: all var(--transition);
  z-index: 1;
  background: var(--color-bg);
  border: 2px solid var(--color-border);
  color: var(--color-fg-muted);
}
.setup-stepper-number {
  font-variant-numeric: tabular-nums;
}
.setup-stepper-label {
  margin-top: var(--sp-2);
  font-size: 0.75rem;
  text-align: center;
  color: var(--color-fg-muted);
  line-height: 1.3;
}
.setup-stepper-connector {
  position: absolute;
  top: 1rem;
  left: calc(50% + 1rem);
  width: calc(100% - 2rem);
  height: 2px;
  background: var(--color-border);
}
.setup-stepper-item {
  &.complete {
    & .setup-stepper-indicator {
      background: var(--color-success);
      border-color: var(--color-success);
      color: white;
    }
    & .setup-stepper-label {
      color: var(--color-success);
    }
    & .setup-stepper-connector {
      background: var(--color-success);
    }
  }
  &.current {
    & .setup-stepper-indicator {
      background: var(--color-primary);
      border-color: var(--color-primary);
      color: white;
    }
    & .setup-stepper-label {
      color: var(--color-fg);
      font-weight: 500;
    }
  }
  &.pending .setup-stepper-indicator {
    background: var(--color-bg-secondary);
    border-color: var(--color-border);
    color: var(--color-fg-muted);
  }
}
.completed-step-row {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-3);
  background: var(--color-success-10);
  border: 1px solid var(--color-success-20);
  border-radius: var(--radius);
  margin-bottom: var(--sp-3);
}
.completed-step-label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-fg);
}
.completed-step-value {
  font-size: 0.75rem;
  color: var(--color-fg-muted);
  margin-left: auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 50%;
}
.locked-step-row {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-3);
  background: var(--color-bg-secondary);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  margin-bottom: var(--sp-3);
  opacity: 0.6;
}
.locked-step-row span {
  font-size: 0.875rem;
  color: var(--color-fg-muted);
}
.locked-step-hint {
  margin-left: auto;
  font-size: 0.75rem;
}
.setup-step-card {
  padding: var(--sp-4);
  background: var(--color-bg);
  border: 1px solid var(--color-primary-30);
  border-radius: var(--radius-lg);
  margin-bottom: var(--sp-4);
}
.setup-step-title {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-fg);
  margin-bottom: var(--sp-3);
  display: flex;
  align-items: center;
  gap: var(--sp-2);
}
.setup-step-content {
  font-size: 0.875rem;
  color: var(--color-fg);
}
.setup-step-content p {
  margin-bottom: var(--sp-3);
  color: var(--color-fg-muted);
}
.setup-step-content ol {
  margin: var(--sp-3) 0;
  padding-left: var(--sp-4);
}
.setup-step-content ol li {
  margin-bottom: var(--sp-2);
  color: var(--color-fg-muted);
}
.time-warning {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-3);
  padding: var(--sp-4);
  background: var(--color-warning-10);
  border: 1px solid var(--color-warning-30);
  border-left: 4px solid var(--color-warning);
  border-radius: var(--radius);
  margin-bottom: var(--sp-4);
}
.time-warning-icon {
  flex-shrink: 0;
  color: var(--color-warning);
}
.time-warning-content {
  flex: 1;
}
.time-warning-title {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-fg);
  margin-bottom: var(--sp-1);
}
.time-warning-text {
  font-size: 0.75rem;
  color: var(--color-fg-muted);
}
.connected-status-card {
  padding: var(--sp-4);
  background: var(--color-success-5);
  border: 1px solid var(--color-success-20);
  border-radius: var(--radius-lg);
}
.connected-status-header {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  margin-bottom: var(--sp-4);
}
.connected-status-title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-fg);
}
.connected-status-badge {
  font-size: 0.625rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: var(--sp-1) var(--sp-2);
  border-radius: var(--radius);
  background: var(--color-bg-secondary);
  color: var(--color-fg-muted);
  margin-left: auto;
  &.production {
    background: var(--color-success-20);
    color: var(--color-success);
  }
  &.sandbox {
    background: var(--color-warning-20);
    color: var(--color-warning);
  }
}
.connected-status-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--sp-4);
  margin-bottom: var(--sp-4);
}
.connected-status-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
  padding-top: var(--sp-3);
  border-top: 1px solid var(--color-border-50);
}
.advanced-options-section {
  margin-top: var(--sp-6);
  padding-top: var(--sp-4);
  border-top: 1px solid var(--color-border);
}
.advanced-options-summary {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  font-size: 0.75rem;
  color: var(--color-fg-muted);
  cursor: pointer;
  padding: var(--sp-2) 0;
}
.advanced-options-summary:hover {
  color: var(--color-fg);
}
.advanced-options-content {
  margin-top: var(--sp-4);
}
.advanced-options-content details {
  margin-bottom: var(--sp-3);
  padding: var(--sp-3);
  background: var(--color-bg-secondary);
  border-radius: var(--radius);
}
.advanced-options-content summary {
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  color: var(--color-fg-muted);
}
.advanced-options-content summary:hover {
  color: var(--color-fg);
}
.account-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.5rem;
  background: var(--color-bg-secondary);
  border-radius: var(--radius);
  font-size: 0.875rem;
}
.landing-link-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-6);
  text-align: center;
  font-size: 0.875rem;
  font-weight: 600;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}
.landing-link-card:hover {
  transform: scale(1.02);
}
.landing-text-link {
  padding: var(--sp-1) var(--sp-2);
  border-radius: var(--radius);
  transition: background-color var(--transition-fast);
}
.landing-text-link:hover {
  background: var(--color-bg-secondary);
}
.expense-form-container {
  max-width: 40rem;
  margin: 0 auto;
  padding: var(--sp-4);
}
.expense-form {
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
}
.expense-form-row {
  display: flex;
  gap: var(--sp-3);
}
.expense-form-field {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
}
.expense-form-field.flex-1 {
  flex: 1;
}
.expense-form-field.flex-2 {
  flex: 2;
}
.expense-form-label {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-fg-muted);
  margin-bottom: 0.125rem;
}
.expense-status-toggle {
  display: flex;
  background: var(--color-bg-secondary);
  border-radius: var(--radius);
  padding: 0.125rem;
  gap: 0.125rem;
}
.expense-status-option {
  flex: 1;
  padding: 0.375rem 0.5rem;
  font-size: 0.75rem;
  font-weight: 500;
  text-align: center;
  border-radius: calc(var(--radius) - 2px);
  cursor: pointer;
  color: var(--color-fg-muted);
  transition: all var(--transition-fast);
}
.expense-status-option:hover {
  color: var(--color-fg);
}
.expense-status-option.active {
  background: var(--color-bg);
  color: var(--color-fg);
  box-shadow: var(--shadow-sm);
}
.expense-receipts-section {
  margin-top: var(--sp-2);
  padding-top: var(--sp-3);
  border-top: 1px solid var(--color-border);
}
.expense-receipts-header {
  margin-bottom: var(--sp-2);
}
.expense-attachments-list {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
  margin-bottom: var(--sp-2);
}
.expense-attachment-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.375rem 0.5rem;
  background: var(--color-success-10);
  border-radius: var(--radius);
}
.expense-attachment-link {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  color: var(--color-success);
  font-size: 0.8125rem;
  background: none;
  border: none;
  cursor: pointer;
  min-width: 0;
}
.expense-attachment-link:hover {
  text-decoration: underline;
}
.expense-attachment-remove {
  padding: 0.25rem;
  color: var(--color-fg-muted);
  background: none;
  border: none;
  border-radius: var(--radius-sm);
  cursor: pointer;
  opacity: 0.5;
  transition: all var(--transition-fast);
}
.expense-attachment-remove:hover {
  opacity: 1;
  color: var(--color-error);
  background: var(--color-error-10);
}
.expense-upload-compact {
  border: 1px dashed var(--color-border);
  border-radius: var(--radius);
  transition: all var(--transition-fast);
}
.expense-upload-compact:hover {
  border-color: var(--color-primary);
  background: var(--color-primary-5);
}
.expense-upload-label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.75rem;
  font-size: 0.8125rem;
  color: var(--color-fg-muted);
  cursor: pointer;
}
.expense-upload-label:hover {
  color: var(--color-primary);
}
.expense-upload-progress {
  margin-top: var(--sp-2);
  padding: var(--sp-2);
  background: var(--color-bg-secondary);
  border-radius: var(--radius);
}
.expense-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--sp-2);
  margin-top: var(--sp-3);
  padding-top: var(--sp-3);
  border-top: 1px solid var(--color-border);
}
.expense-raw-section {
  margin-top: var(--sp-4);
  padding-top: var(--sp-3);
  border-top: 1px solid var(--color-border);
}
.tag-chips-container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.375rem;
  padding: 0.375rem 0.5rem;
  min-height: 2.25rem;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  transition: border-color var(--transition-fast);
}
.tag-chips-container:focus-within {
  border-color: var(--color-primary);
  box-shadow: 0 0 0 2px var(--color-primary-20);
}
.tag-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.125rem 0.375rem;
  background: var(--color-primary-10);
  color: var(--color-primary);
  border-radius: var(--radius-sm);
  font-size: 0.75rem;
  font-weight: 500;
}
.tag-chip-remove {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin-left: 0.125rem;
  background: none;
  border: none;
  color: var(--color-primary);
  opacity: 0.6;
  cursor: pointer;
  border-radius: 50%;
  transition: opacity var(--transition-fast), background var(--transition-fast);
}
.tag-chip-remove:hover {
  opacity: 1;
  background: var(--color-primary-20);
}
.tag-input {
  flex: 1;
  min-width: 80px;
  padding: 0.125rem 0.25rem;
  border: none;
  background: transparent;
  font-size: 0.8125rem;
  color: var(--color-fg);
  outline: none;
}
.tag-input::placeholder {
  color: var(--color-fg-muted);
}
@media (max-width: 640px) {
  .expense-form-row {
    flex-direction: column;
  }
  .expense-form-field.flex-1,
  .expense-form-field.flex-2 {
    flex: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ocr-loading-spinner {
    animation: none;
  }
}

/* css/responsive.css */
@media (min-width: 768px) {
  .app-layout {
    flex-direction: row;
  }
  .app-content {
    padding-bottom: 2.5rem;
  }
  .content-area {
    padding: var(--sp-8);
    margin-bottom: 0;
  }
  .sidebar-nav {
    display: flex;
  }
  .mobile-nav {
    display: none;
  }
  .page-header {
    padding: var(--sp-2) var(--sp-6);
    gap: var(--sp-3);
  }
  .page-header-selectors {
    display: flex;
  }
  .filter-bar {
    padding: var(--sp-3) var(--sp-6);
    gap: var(--sp-4);
  }
  .filter-bar-search {
    width: auto;
    flex: 1;
    min-width: 12rem;
    max-width: 20rem;
  }
  .filter-menu-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .advanced-filters {
    padding: 0.5rem 1.5rem;
  }
  .metrics-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .detail-grid.cols-4 {
    grid-template-columns: repeat(4, 1fr);
  }
  .pdf-viewer-frame {
    height: 820px;
  }
  .posting-row {
    flex-direction: row;
  }
}
@media (max-width: 767px) {
  .col-1,
  .col-2,
  .col-3,
  .col-4,
  .col-5,
  .col-6,
  .col-7,
  .col-8,
  .col-9,
  .col-10,
  .col-11,
  .col-12 {
    grid-column: span 12;
  }
  .posting-row {
    flex-direction: column;
  }
  .posting-row > div {
    width: 100% !important;
  }
  .scripts-layout {
    grid-template-columns: 1fr;
  }
}
@media (min-width: 1024px) {
  .filter-menu-grid {
    grid-template-columns: repeat(4, 1fr);
  }
  .files-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .phoenix-landing-bg {
    display: block !important;
    left: 40rem;
  }
}
@media (min-width: 1280px) {
  .metrics-grid {
    grid-template-columns: repeat(4, 1fr);
  }
  .phoenix-landing-bg {
    left: 50rem;
  }
}
@media (max-width: 640px) {
  .setup-stepper-list {
    flex-direction: column;
    align-items: stretch;
    gap: var(--sp-2);
  }
  .setup-stepper-item {
    flex-direction: row;
    max-width: none;
    gap: var(--sp-3);
  }
  .setup-stepper-label {
    margin-top: 0;
    text-align: left;
  }
  .setup-stepper-connector {
    display: none;
  }
}

/* css/oat-overrides.css */
/*# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vYXNzZXRzL25vZGVfbW9kdWxlcy9Aa25hZGgvb2F0L29hdC5taW4uY3NzIiwgIi4uLy4uLy4uLy4uL2Fzc2V0cy9jc3MvdG9rZW5zLmNzcyIsICIuLi8uLi8uLi8uLi9hc3NldHMvY3NzL3V0aWxpdGllcy5jc3MiLCAiLi4vLi4vLi4vLi4vYXNzZXRzL2Nzcy9jb21wb25lbnRzLmNzcyIsICIuLi8uLi8uLi8uLi9hc3NldHMvY3NzL3NldHRpbmdzLW5hdi5jc3MiLCAiLi4vLi4vLi4vLi4vYXNzZXRzL2Nzcy9wYWdlcy5jc3MiLCAiLi4vLi4vLi4vLi4vYXNzZXRzL2Nzcy9yZXNwb25zaXZlLmNzcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiQGxheWVyIHRoZW1lLGJhc2UsY29tcG9uZW50cyxhbmltYXRpb25zLHV0aWxpdGllcztAbGF5ZXIgYmFzZXsqLCo6YmVmb3JlLCo6YWZ0ZXJ7Ym94LXNpemluZzpib3JkZXItYm94Oy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0qe21hcmdpbjowfWh0bWx7dGFiLXNpemU6NH1ib2R5LGRpYWxvZyxbcG9wb3Zlcl17Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zYW5zKTtmb250LXNpemU6dmFyKC0tdGV4dC1yZWd1bGFyKTtsaW5lLWhlaWdodDp2YXIoLS1sZWFkaW5nLW5vcm1hbCk7Y29sb3I6dmFyKC0tZm9yZWdyb3VuZCl9Ym9keXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJhY2tncm91bmQpO2NvbG9yOnZhcigtLWZvcmVncm91bmQpOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWR9aW1nLHBpY3R1cmUsdmlkZW8sY2FudmFzLHN2Z3ttYXgtd2lkdGg6MTAwJX1wLGgxLGgyLGgzLGg0LGg1LGg2e292ZXJmbG93LXdyYXA6YnJlYWstd29yZH1oMSxoMixoMyxoNCxoNSxoNntmb250LXdlaWdodDp2YXIoLS1mb250LXNlbWlib2xkKTtsaW5lLWhlaWdodDoxLjI1OyY6Zmlyc3QtY2hpbGR7bWFyZ2luLWJsb2NrLXN0YXJ0OjB9fWgxe2ZvbnQtc2l6ZTp2YXIoLS10ZXh0LTEpO21hcmdpbjp2YXIoLS1zcGFjZS0xMCkgMCB2YXIoLS1zcGFjZS02KX1oMntmb250LXNpemU6dmFyKC0tdGV4dC0yKTttYXJnaW46dmFyKC0tc3BhY2UtOCkgMCB2YXIoLS1zcGFjZS01KX1oM3tmb250LXNpemU6dmFyKC0tdGV4dC0zKTttYXJnaW46dmFyKC0tc3BhY2UtNikgMCB2YXIoLS1zcGFjZS00KX1oNHtmb250LXNpemU6dmFyKC0tdGV4dC00KTttYXJnaW46dmFyKC0tc3BhY2UtNSkgMCB2YXIoLS1zcGFjZS0zKX1oNXtmb250LXNpemU6dmFyKC0tdGV4dC01KTttYXJnaW46dmFyKC0tc3BhY2UtNCkgMCB2YXIoLS1zcGFjZS0yKX1oNntmb250LXNpemU6dmFyKC0tdGV4dC1yZWd1bGFyKTttYXJnaW46dmFyKC0tc3BhY2UtNCkgMCB2YXIoLS1zcGFjZS0yKX1we21hcmdpbi1ibG9jay1lbmQ6dmFyKC0tc3BhY2UtNCk7JjpsYXN0LWNoaWxke21hcmdpbi1ibG9jay1lbmQ6MH19YXtjb2xvcjp2YXIoLS1wcmltYXJ5KTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO3RleHQtdW5kZXJsaW5lLW9mZnNldDoycHg7dHJhbnNpdGlvbjpjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpOyY6aG92ZXJ7Y29sb3I6cmdiKGZyb20gdmFyKC0tcHJpbWFyeSkgciBnIGIgLyAuOCl9fXN0cm9uZyxie2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtc2VtaWJvbGQpfWVtLGl7Zm9udC1zdHlsZTppdGFsaWN9c21hbGx7Zm9udC1zaXplOnZhcigtLXRleHQtNyl9Y29kZXtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouODc1ZW07cGFkZGluZzpjYWxjKHZhcigtLXNwYWNlLTEpIC8gMikgdmFyKC0tc3BhY2UtMSk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1mYWludCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc21hbGwpfXByZXtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO3BhZGRpbmc6dmFyKC0tc3BhY2UtNCk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1mYWludCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWVkaXVtKTtvdmVyZmxvdy14OmF1dG87bWFyZ2luLWJsb2NrLWVuZDp2YXIoLS1zcGFjZS00KTtjb2Rle3BhZGRpbmc6MDtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyLXJhZGl1czowfX1ibG9ja3F1b3Rle2JvcmRlci1pbmxpbmUtc3RhcnQ6NHB4IHNvbGlkIHZhcigtLWJvcmRlcik7cGFkZGluZy1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtNCk7bWFyZ2luOnZhcigtLXNwYWNlLTQpIDA7Y29sb3I6dmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCk7Zm9udC1zdHlsZTppdGFsaWN9aHJ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyKTttYXJnaW46dmFyKC0tc3BhY2UtMikgMH11bCxvbHtwYWRkaW5nLWlubGluZS1zdGFydDp2YXIoLS1zcGFjZS02KTttYXJnaW4tYmxvY2stZW5kOnZhcigtLXNwYWNlLTQpfXVse2xpc3Qtc3R5bGUtdHlwZTpkaXNjfW9se2xpc3Qtc3R5bGUtdHlwZTpkZWNpbWFsfWxpe21hcmdpbi1ibG9jay1lbmQ6dmFyKC0tc3BhY2UtMSl9bWFya3tiYWNrZ3JvdW5kLWNvbG9yOnJnYihmcm9tIHZhcigtLXdhcm5pbmcpIHIgZyBiIC8gLjMpO3BhZGRpbmc6Y2FsYyh2YXIoLS1zcGFjZS0xKSAvIDIpIHZhcigtLXNwYWNlLTEpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtYWxsKX1baGlkZGVuXXtkaXNwbGF5Om5vbmV9OmZvY3VzLXZpc2libGV7b3V0bGluZToycHggc29saWQgdmFyKC0tcmluZyk7b3V0bGluZS1vZmZzZXQ6MnB4fTpkaXNhYmxlZHtvcGFjaXR5Oi41O2N1cnNvcjpub3QtYWxsb3dlZH19QGxheWVyIHRoZW1lezpyb290e2NvbG9yLXNjaGVtZTpsaWdodCBkYXJrOy0tYmFja2dyb3VuZDogbGlnaHQtZGFyaygjZmZmLCAjMDkwOTBiKTstLWZvcmVncm91bmQ6IGxpZ2h0LWRhcmsoIzA5MDkwYiwgI2ZhZmFmYSk7LS1jYXJkOiBsaWdodC1kYXJrKCNmZmYsICMxODE4MWIpOy0tY2FyZC1mb3JlZ3JvdW5kOiBsaWdodC1kYXJrKCMwOTA5MGIsICNmYWZhZmEpOy0tcHJpbWFyeTogbGlnaHQtZGFyaygjNTc0NzQ3LCAjZmFmYWZhKTstLXByaW1hcnktZm9yZWdyb3VuZDogbGlnaHQtZGFyaygjZmFmYWZhLCAjMTgxODFiKTstLXNlY29uZGFyeTogbGlnaHQtZGFyaygjZjRmNGY1LCAjMjcyNzJhKTstLXNlY29uZGFyeS1mb3JlZ3JvdW5kOiBsaWdodC1kYXJrKCM1NzQ3NDcsICNmYWZhZmEpOy0tbXV0ZWQ6IGxpZ2h0LWRhcmsoI2Y0ZjRmNSwgIzI3MjcyYSk7LS1tdXRlZC1mb3JlZ3JvdW5kOiBsaWdodC1kYXJrKCM3MTcxN2EsICNhMWExYWEpOy0tZmFpbnQ6IGxpZ2h0LWRhcmsoI2ZhZmFmYSwgIzFlMWUyMSk7LS1mYWludC1mb3JlZ3JvdW5kOiBsaWdodC1kYXJrKCNhMWExYWEsICM3MTcxN2EpOy0tYWNjZW50OiBsaWdodC1kYXJrKCNmNGY0ZjUsICMyNzI3MmEpOy0tZGFuZ2VyOiBsaWdodC1kYXJrKCNkMzJmMmYsICNmNDgwN2IpOy0tZGFuZ2VyLWZvcmVncm91bmQ6IGxpZ2h0LWRhcmsoI2ZhZmFmYSwgIzE4MTgxYik7LS1zdWNjZXNzOiBsaWdodC1kYXJrKCMwMDgwMzIsICM2Y2MwNzApOy0tc3VjY2Vzcy1mb3JlZ3JvdW5kOiBsaWdodC1kYXJrKCNmYWZhZmEsICMxODE4MWIpOy0td2FybmluZzogbGlnaHQtZGFyaygjYTY1YjAwLCAjZjBhMDMwKTstLXdhcm5pbmctZm9yZWdyb3VuZDogIzA5MDkwYjstLWJvcmRlcjogbGlnaHQtZGFyaygjZDRkNGQ4LCAjNTI1MjViKTstLWlucHV0OiBsaWdodC1kYXJrKCNkNGQ0ZDgsICM1MjUyNWIpOy0tcmluZzogbGlnaHQtZGFyaygjNTc0NzQ3LCAjZDRkNGQ4KTstLXNwYWNlLTE6IC4yNXJlbTstLXNwYWNlLTI6IC41cmVtOy0tc3BhY2UtMzogLjc1cmVtOy0tc3BhY2UtNDogMXJlbTstLXNwYWNlLTU6IDEuMjVyZW07LS1zcGFjZS02OiAxLjVyZW07LS1zcGFjZS04OiAycmVtOy0tc3BhY2UtMTA6IDIuNXJlbTstLXNwYWNlLTEyOiAzcmVtOy0tc3BhY2UtMTQ6IDMuNXJlbTstLXNwYWNlLTE2OiA0cmVtOy0tc3BhY2UtMTg6IDQuNXJlbTstLXJhZGl1cy1zbWFsbDogLjEyNXJlbTstLXJhZGl1cy1tZWRpdW06IC4zNzVyZW07LS1yYWRpdXMtbGFyZ2U6IC43NXJlbTstLXJhZGl1cy1mdWxsOiA5OTk5cHg7LS1iYXItaGVpZ2h0OiAuNXJlbTstLWZvbnQtc2Fuczogc3lzdGVtLXVpLCBzYW5zLXNlcmlmOy0tZm9udC1tb25vOiB1aS1tb25vc3BhY2UsIENvbnNvbGFzLCBtb25vc3BhY2U7LS10ZXh0LTE6IGNsYW1wKDEuNzVyZW0sIDEuNXJlbSArIDEuMXZ3LCAyLjI1cmVtKTstLXRleHQtMjogY2xhbXAoMS41cmVtLCAxLjNyZW0gKyAuOHZ3LCAxLjg3NXJlbSk7LS10ZXh0LTM6IGNsYW1wKDEuMjVyZW0sIDEuMXJlbSArIC41dncsIDEuNXJlbSk7LS10ZXh0LTQ6IGNsYW1wKDEuMTI1cmVtLCAxLjA1cmVtICsgLjN2dywgMS4yNXJlbSk7LS10ZXh0LTU6IDEuMTI1cmVtOy0tdGV4dC02OiAxcmVtOy0tdGV4dC03OiAuODc1cmVtOy0tdGV4dC04OiAuNzVyZW07LS10ZXh0LXJlZ3VsYXI6IHZhcigtLXRleHQtNik7LS1sZWFkaW5nLW5vcm1hbDogMS41Oy0tZm9udC1ub3JtYWw6IDQwMDstLWZvbnQtbWVkaXVtOiA1MDA7LS1mb250LXNlbWlib2xkOiA2MDA7LS1mb250LWJvbGQ6IDYwMDstLXNoYWRvdy1zbWFsbDogMCAxcHggMnB4IDAgcmdiKDAgMCAwIC8gLjA1KTstLXNoYWRvdy1tZWRpdW06IDAgMXB4IDNweCAwIHJnYigwIDAgMCAvIC4xKSwgMCAxcHggMnB4IC0xcHggcmdiKDAgMCAwIC8gLjEpOy0tc2hhZG93LWxhcmdlOiAwIDRweCA2cHggLTFweCByZ2IoMCAwIDAgLyAuMSksIDAgMnB4IDRweCAtMnB4IHJnYigwIDAgMCAvIC4xKTstLXRyYW5zaXRpb24tZmFzdDogLjEycyBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKTstLXRyYW5zaXRpb246IC4ycyBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKTstLXotZHJvcGRvd246IDUwOy0tei1tb2RhbDogMjAwfX1AbGF5ZXIgYW5pbWF0aW9uc3suYW5pbWF0ZS1wb3AtaW57b3BhY2l0eToxO3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSgxMDAwcHgpIHJvdGF0ZVgoMCkgdHJhbnNsYXRlWigwKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjE1cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSx0cmFuc2Zvcm0gLjE1cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKSxvdmVybGF5IC4xNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkgYWxsb3ctZGlzY3JldGUsZGlzcGxheSAuMTVzIGN1YmljLWJlemllciguNCwwLC4yLDEpIGFsbG93LWRpc2NyZXRlO0BzdGFydGluZy1zdHlsZXtvcGFjaXR5OjA7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCgtMTVkZWcpIHRyYW5zbGF0ZVooLTgwcHgpfSZbZGF0YS1zdGF0ZT1jbG9zaW5nXXtvcGFjaXR5OjA7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDEwMDBweCkgcm90YXRlWCgtMTVkZWcpIHRyYW5zbGF0ZVooLTgwcHgpfSZbZGF0YS1zdGF0ZT1jbG9zaW5nXTo6YmFja2Ryb3B7b3BhY2l0eTowfX1kaWFsb2c6OmJhY2tkcm9we29wYWNpdHk6MTt0cmFuc2l0aW9uOm9wYWNpdHkgLjE1cyBjdWJpYy1iZXppZXIoLjQsMCwuMiwxKTtAc3RhcnRpbmctc3R5bGV7b3BhY2l0eTowfX0uYW5pbWF0ZS1zbGlkZS1pbntvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjE1cyBjdWJpYy1iZXppZXIoLjE2LDEsLjMsMSksdHJhbnNmb3JtIC4xNXMgY3ViaWMtYmV6aWVyKC4xNiwxLC4zLDEpO0BzdGFydGluZy1zdHlsZXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZSgxMDAlKX0mW2RhdGEtc3RhdGU9Y2xvc2luZ117b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGUoMTAwJSl9fX1AbGF5ZXIgYmFzZXs6aXMoYnV0dG9uLFt0eXBlPXN1Ym1pdF0sW3R5cGU9cmVzZXRdLFt0eXBlPWJ1dHRvbl0sYS5idXR0b24pLDo6ZmlsZS1zZWxlY3Rvci1idXR0b257LS1faG92OiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcHJpbWFyeSksIHdoaXRlIDI1JSk7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6dmFyKC0tc3BhY2UtMik7cGFkZGluZzp2YXIoLS1zcGFjZS0yKSB2YXIoLS1zcGFjZS00KTtmb250LXNpemU6dmFyKC0tdGV4dC03KTtmb250LXdlaWdodDp2YXIoLS1mb250LW1lZGl1bSk7bGluZS1oZWlnaHQ6dmFyKC0tbGVhZGluZy1ub3JtYWwpO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByaW1hcnkpO2NvbG9yOnZhcigtLXByaW1hcnktZm9yZWdyb3VuZCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWVkaXVtKTtib3JkZXI6MXB4IHNvbGlkO2JvcmRlci1jb2xvcjpyZ2IoZnJvbSAjZmZmIHIgZyBiIC8gLjE1KSByZ2IoZnJvbSAjMDAwIHIgZyBiIC8gLjIpIHJnYihmcm9tICMwMDAgciBnIGIgLyAuMikgcmdiKGZyb20gI2ZmZiByIGcgYiAvIC4xNSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpOyY6bm90KDpkaXNhYmxlZCl7Y3Vyc29yOnBvaW50ZXJ9Jjpob3Zlcjpub3QoOmRpc2FibGVkKXtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLV9ob3YpfSY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpe3RyYW5zZm9ybTp0cmFuc2xhdGUoMXB4LDFweCl9JltkYXRhLXZhcmlhbnQ9c2Vjb25kYXJ5XXstLV9ob3Y6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zZWNvbmRhcnkpLCBibGFjayAxMCUpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tc2Vjb25kYXJ5KTtjb2xvcjp2YXIoLS1zZWNvbmRhcnktZm9yZWdyb3VuZCk7Ym9yZGVyLWNvbG9yOnJnYihmcm9tICNmZmYgciBnIGIgLyAuNSkgcmdiKGZyb20gIzAwMCByIGcgYiAvIC4xKSByZ2IoZnJvbSAjMDAwIHIgZyBiIC8gLjEpIHJnYihmcm9tICNmZmYgciBnIGIgLyAuNSl9JltkYXRhLXZhcmlhbnQ9ZGFuZ2VyXXstLV9ob3Y6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1kYW5nZXIpLCBibGFjayAxNSUpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tZGFuZ2VyKTtjb2xvcjp2YXIoLS1kYW5nZXItZm9yZWdyb3VuZCl9Jjppcygub3V0bGluZSwuZ2hvc3Qpey0tX2hvdjogdmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLWZvcmVncm91bmQpOyZbZGF0YS12YXJpYW50PWRhbmdlcl17LS1faG92OiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZGFuZ2VyKSwgdHJhbnNwYXJlbnQgOTAlKTtjb2xvcjp2YXIoLS1kYW5nZXIpfSZbZGF0YS12YXJpYW50PXNlY29uZGFyeV17LS1faG92OiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc2Vjb25kYXJ5KSwgdHJhbnNwYXJlbnQgODAlKTtjb2xvcjp2YXIoLS1zZWNvbmRhcnktZm9yZWdyb3VuZCl9fSYub3V0bGluZXtib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyKTsmW2RhdGEtdmFyaWFudD1kYW5nZXJde2JvcmRlci1jb2xvcjp2YXIoLS1kYW5nZXIpfSZbZGF0YS12YXJpYW50PXNlY29uZGFyeV17Ym9yZGVyLWNvbG9yOnZhcigtLXNlY29uZGFyeSl9fSYuZ2hvc3R7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fSYuc21hbGx7cGFkZGluZzp2YXIoLS1zcGFjZS0xKSB2YXIoLS1zcGFjZS0zKTtmb250LXNpemU6dmFyKC0tdGV4dC04KX0mLmxhcmdle2hlaWdodDozcmVtO3BhZGRpbmc6MCB2YXIoLS1zcGFjZS02KTtmb250LXNpemU6dmFyKC0tdGV4dC1yZWd1bGFyKX0mLmljb257d2lkdGg6Mi41cmVtO3BhZGRpbmc6MDsmLnNtYWxse3dpZHRoOjJyZW19Ji5sYXJnZXt3aWR0aDozcmVtfX19OjpmaWxlLXNlbGVjdG9yLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLWZvcmVncm91bmQpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKX06OmZpbGUtc2VsZWN0b3ItYnV0dG9uOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tYWNjZW50KX19QGxheWVyIGNvbXBvbmVudHN7bWVudS5idXR0b25ze2xpc3Qtc3R5bGUtdHlwZTpub25lO3BhZGRpbmctaW5saW5lLXN0YXJ0OjA7ZGlzcGxheTppbmxpbmUtZmxleDs+bGl7JjpmaXJzdC1jaGlsZD4qe2JvcmRlci1zdGFydC1zdGFydC1yYWRpdXM6dmFyKC0tcmFkaXVzLW1lZGl1bSk7Ym9yZGVyLWVuZC1zdGFydC1yYWRpdXM6dmFyKC0tcmFkaXVzLW1lZGl1bSl9JjpsYXN0LWNoaWxkPip7Ym9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6dmFyKC0tcmFkaXVzLW1lZGl1bSk7Ym9yZGVyLWVuZC1lbmQtcmFkaXVzOnZhcigtLXJhZGl1cy1tZWRpdW0pfT4qe2JvcmRlci1yYWRpdXM6MH0mOm5vdCg6bGFzdC1jaGlsZCk+Kntib3JkZXItaW5saW5lLWVuZDoxcHggc29saWQgcmdiKGZyb20gdmFyKC0tcHJpbWFyeS1mb3JlZ3JvdW5kKSByIGcgYiAvIC4yKX19fX1AbGF5ZXIgYmFzZXtsYWJlbHtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZTp2YXIoLS10ZXh0LTcpO2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtbWVkaXVtKTsmOmhhcyhpbnB1dDp3aGVyZShbdHlwZT1jaGVja2JveF0sW3R5cGU9cmFkaW9dKSl7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOnZhcigtLXNwYWNlLTIpO2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtbm9ybWFsKX19OndoZXJlKGlucHV0Om5vdChbdHlwZT1jaGVja2JveF0sW3R5cGU9cmFkaW9dLFt0eXBlPXJhbmdlXSxbdHlwZT1maWxlXSxbdHlwZT1jb2xvcl0pLHRleHRhcmVhLHNlbGVjdCl7d2lkdGg6MTAwJTttYXJnaW4tYmxvY2stc3RhcnQ6dmFyKC0tc3BhY2UtMSk7cGFkZGluZzp2YXIoLS1zcGFjZS0yKSB2YXIoLS1zcGFjZS0zKTtmb250LXNpemU6dmFyKC0tdGV4dC03KTtsaW5lLWhlaWdodDp2YXIoLS1sZWFkaW5nLW5vcm1hbCk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1iYWNrZ3JvdW5kKTtjb2xvcjp2YXIoLS1mb3JlZ3JvdW5kKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWlucHV0KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZWRpdW0pO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm94LXNoYWRvdyB2YXIoLS10cmFuc2l0aW9uLWZhc3QpOyY6OnBsYWNlaG9sZGVye2NvbG9yOnZhcigtLW11dGVkLWZvcmVncm91bmQpfSY6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlci1jb2xvcjp2YXIoLS1yaW5nKTtib3gtc2hhZG93OjAgMCAwIDJweCByZ2IoZnJvbSB2YXIoLS1yaW5nKSByIGcgYiAvIC4yKTt6LWluZGV4OjF9JjpkaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW11dGVkKX0mOmlzKFthcmlhLWludmFsaWQ9dHJ1ZV0sOnVzZXItaW52YWxpZCl7Ym9yZGVyLWNvbG9yOnZhcigtLWRhbmdlcik7Jjpmb2N1c3tib3gtc2hhZG93OjAgMCAwIDJweCByZ2IoZnJvbSB2YXIoLS1kYW5nZXIpIHIgZyBiIC8gLjIpfX19dGV4dGFyZWF7aGVpZ2h0OmF1dG87bWluLWhlaWdodDo1cmVtO3BhZGRpbmc6dmFyKC0tc3BhY2UtMyk7cmVzaXplOnZlcnRpY2FsfXNlbGVjdHthcHBlYXJhbmNlOm5vbmU7YmFja2dyb3VuZC1pbWFnZTp1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzE2JyBoZWlnaHQ9JzE2JyB2aWV3Qm94PScwIDAgMjQgMjQnIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzNzE3MTdhJyBzdHJva2Utd2lkdGg9JzInJTNFJTNDcGF0aCBkPSdtNiA5IDYgNiA2LTYnLyUzRSUzQy9zdmclM0VcIik7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246cmlnaHQgdmFyKC0tc3BhY2UtMikgY2VudGVyO3BhZGRpbmctaW5saW5lLWVuZDp2YXIoLS1zcGFjZS02KX1pbnB1dDp3aGVyZShbdHlwZT1jaGVja2JveF0sW3R5cGU9cmFkaW9dKXthcHBlYXJhbmNlOm5vbmU7d2lkdGg6MXJlbTtoZWlnaHQ6MXJlbTttYXJnaW46MDtwb3NpdGlvbjpyZWxhdGl2ZTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJhY2tncm91bmQpO2JvcmRlcjoxcHggc29saWQgdmFyKC0taW5wdXQpO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpOyY6Y2hlY2tlZHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByaW1hcnkpO2JvcmRlci1jb2xvcjp2YXIoLS1wcmltYXJ5KTsmOmFmdGVye2NvbnRlbnQ6XCJcIjtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2JhY2tncm91bmQtY29sb3I6dmFyKC0tcHJpbWFyeS1mb3JlZ3JvdW5kKTttYXNrLXBvc2l0aW9uOmNlbnRlcjttYXNrLXJlcGVhdDpuby1yZXBlYXQ7bWFzay1zaXplOjEwMCV9fX1pbnB1dFt0eXBlPWNoZWNrYm94XXtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbWFsbCk7JjpjaGVja2VkOmFmdGVye21hc2staW1hZ2U6dXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPSdjdXJyZW50Q29sb3InIHN0cm9rZS13aWR0aD0nNCclM0UlM0Nwb2x5bGluZSBwb2ludHM9JzIwIDYgOSAxNyA0IDEyJy8lM0UlM0Mvc3ZnJTNFXCIpfSZbcm9sZT1zd2l0Y2hdey0tc3dpdGNoLWhlaWdodDogY2FsYyh2YXIoLS1iYXItaGVpZ2h0KSAqIDMpOy0tc3dpdGNoLWluc2V0OiAycHg7LS1zd2l0Y2gtdGh1bWI6IGNhbGModmFyKC0tc3dpdGNoLWhlaWdodCkgLSB2YXIoLS1zd2l0Y2gtaW5zZXQpICogMyk7d2lkdGg6Y2FsYyh2YXIoLS1zd2l0Y2gtaGVpZ2h0KSAqIDIpO2hlaWdodDp2YXIoLS1zd2l0Y2gtaGVpZ2h0KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWlucHV0KTsmOmJlZm9yZXtjb250ZW50OlwiXCI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OnZhcigtLXN3aXRjaC1pbnNldCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7d2lkdGg6dmFyKC0tc3dpdGNoLXRodW1iKTtoZWlnaHQ6dmFyKC0tc3dpdGNoLXRodW1iKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJhY2tncm91bmQpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO3RyYW5zaXRpb246dHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24pO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXNtYWxsKX0mOmNoZWNrZWR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcmltYXJ5KTsmOmFmdGVye2NvbnRlbnQ6bm9uZX0mOmJlZm9yZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGUodmFyKC0tc3dpdGNoLWhlaWdodCkpfX19fWlucHV0W3R5cGU9cmFkaW9de2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpOyY6Y2hlY2tlZDphZnRlcnttYXNrLWltYWdlOnVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnJTNFJTNDY2lyY2xlIGN4PSc4JyBjeT0nOCcgcj0nNCcgZmlsbD0nY3VycmVudENvbG9yJy8lM0UlM0Mvc3ZnJTNFXCIpfX06d2hlcmUoaW5wdXQ6d2hlcmUoW3R5cGU9Y2hlY2tib3hdLFt0eXBlPXJhZGlvXSxbdHlwZT1yYW5nZV0pLHNlbGVjdCk6bm90KDpkaXNhYmxlZCksbGFiZWw6aGFzKGlucHV0OndoZXJlKFt0eXBlPWNoZWNrYm94XSxbdHlwZT1yYWRpb10pOm5vdCg6ZGlzYWJsZWQpKXtjdXJzb3I6cG9pbnRlcn1pbnB1dFt0eXBlPXJhbmdlXXt3aWR0aDoxMDAlO2hlaWdodDp2YXIoLS1iYXItaGVpZ2h0KTthcHBlYXJhbmNlOm5vbmU7YmFja2dyb3VuZDp2YXIoLS1tdXRlZCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCk7Jjo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7YXBwZWFyYW5jZTpub25lO3dpZHRoOjEuMjVyZW07aGVpZ2h0OjEuMjVyZW07YmFja2dyb3VuZDp2YXIoLS1wcmltYXJ5KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpOyY6aG92ZXJ7dHJhbnNmb3JtOnNjYWxlKDEuMSl9fSY6Oi1tb3otcmFuZ2UtdGh1bWJ7d2lkdGg6MS4yNXJlbTtoZWlnaHQ6MS4yNXJlbTtiYWNrZ3JvdW5kOnZhcigtLXByaW1hcnkpO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpfX1maWVsZHNldHtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWVkaXVtKTtwYWRkaW5nOnZhcigtLXNwYWNlLTQpO21hcmdpbi1ibG9jay1lbmQ6dmFyKC0tc3BhY2UtNCl9bGVnZW5ke2ZvbnQtc2l6ZTp2YXIoLS10ZXh0LTcpO2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtbWVkaXVtKTtwYWRkaW5nOjAgdmFyKC0tc3BhY2UtMil9fUBsYXllciBjb21wb25lbnRze2ZpZWxkc2V0Lmdyb3Vwe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpzdHJldGNoO2JvcmRlcjpub25lO3BhZGRpbmc6MDttYXJnaW46MDs+OmlzKGlucHV0LHRleHRhcmVhLHNlbGVjdCl7ZmxleDoxO21hcmdpbi1ibG9jay1zdGFydDowOyY6bm90KDpmb2N1cyl7Ym9yZGVyLWlubGluZS1lbmQtY29sb3I6dHJhbnNwYXJlbnR9fT46aXMoaW5wdXQsdGV4dGFyZWEsc2VsZWN0LGJ1dHRvbil7Ym9yZGVyLXJhZGl1czowOyY6Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWVkaXVtKSAwIDAgdmFyKC0tcmFkaXVzLW1lZGl1bSl9JjpsYXN0LWNoaWxke2JvcmRlci1yYWRpdXM6MCB2YXIoLS1yYWRpdXMtbWVkaXVtKSB2YXIoLS1yYWRpdXMtbWVkaXVtKSAwfX0+bGVnZW5ke2Zsb2F0OmlubGluZS1zdGFydDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjAgdmFyKC0tc3BhY2UtMyk7bGluZS1oZWlnaHQ6dmFyKC0tbGVhZGluZy1ub3JtYWwpO2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtbm9ybWFsKTtjb2xvcjp2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW11dGVkKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWlucHV0KTtib3JkZXItaW5saW5lLWVuZDpub25lO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1lZGl1bSkgMCAwIHZhcigtLXJhZGl1cy1tZWRpdW0pfX1bZGF0YS1maWVsZF17bWFyZ2luLWJsb2NrLWVuZDp2YXIoLS1zcGFjZS00KTtbZGF0YS1oaW50XSwuZXJyb3J7Zm9udC1zaXplOnZhcigtLXRleHQtOCk7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udC1ub3JtYWwpO2NvbG9yOnZhcigtLW11dGVkLWZvcmVncm91bmQpO21hcmdpbi1ibG9jay1zdGFydDp2YXIoLS1zcGFjZS0xKX0uZXJyb3J7ZGlzcGxheTpub25lfSZbZGF0YS1maWVsZD1lcnJvcl0gLmVycm9ye2Rpc3BsYXk6YmxvY2s7Y29sb3I6dmFyKC0tZGFuZ2VyKX19fUBsYXllciBiYXNle3RhYmxle2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTt0YWJsZS1sYXlvdXQ6Zml4ZWQ7d2lkdGg6MTAwJTtmb250LXNpemU6dmFyKC0tdGV4dC03KX10aGVhZHtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpfXRoLHRke292ZXJmbG93LXdyYXA6YnJlYWstd29yZH10aHtwYWRkaW5nOnZhcigtLXNwYWNlLTMpIHZhcigtLXNwYWNlLTIpO3RleHQtYWxpZ246c3RhcnQ7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udC1tZWRpdW0pO2NvbG9yOnZhcigtLW11dGVkLWZvcmVncm91bmQpfXRke3BhZGRpbmc6dmFyKC0tc3BhY2UtMykgdmFyKC0tc3BhY2UtMil9dGJvZHkgdHJ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTsmOmxhc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbTpub25lfSY6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjpyZ2IoZnJvbSB2YXIoLS1tdXRlZCkgciBnIGIgLyAuNSl9fX1AbGF5ZXIgYmFzZXtwcm9ncmVzc3thcHBlYXJhbmNlOm5vbmU7d2lkdGg6MTAwJTtoZWlnaHQ6dmFyKC0tYmFyLWhlaWdodCk7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCk7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQtY29sb3I6dmFyKC0tbXV0ZWQpOyY6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6dmFyKC0tbXV0ZWQpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpfSY6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcmltYXJ5KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKTt0cmFuc2l0aW9uOndpZHRoIHZhcigtLXRyYW5zaXRpb24pfSY6Oi1tb3otcHJvZ3Jlc3MtYmFye2JhY2tncm91bmQtY29sb3I6dmFyKC0tcHJpbWFyeSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCl9fW1ldGVye2FwcGVhcmFuY2U6bm9uZTt3aWR0aDoxMDAlO2hlaWdodDp2YXIoLS1iYXItaGVpZ2h0KTtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKTtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDp2YXIoLS1tdXRlZCk7Jjo6LXdlYmtpdC1tZXRlci1iYXJ7YmFja2dyb3VuZDp2YXIoLS1tdXRlZCk7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCk7aGVpZ2h0OnZhcigtLWJhci1oZWlnaHQpfSY6Oi13ZWJraXQtbWV0ZXItb3B0aW11bS12YWx1ZSwmOjotd2Via2l0LW1ldGVyLXN1Ym9wdGltdW0tdmFsdWUsJjo6LXdlYmtpdC1tZXRlci1ldmVuLWxlc3MtZ29vZC12YWx1ZXtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKX0mOjotd2Via2l0LW1ldGVyLW9wdGltdW0tdmFsdWV7YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzKX0mOjotd2Via2l0LW1ldGVyLXN1Ym9wdGltdW0tdmFsdWV7YmFja2dyb3VuZDp2YXIoLS13YXJuaW5nKX0mOjotd2Via2l0LW1ldGVyLWV2ZW4tbGVzcy1nb29kLXZhbHVle2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyKX0mOjotbW96LW1ldGVyLWJhcntiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpfSY6LW1vei1tZXRlci1zdWItb3B0aW11bTo6LW1vei1tZXRlci1iYXJ7YmFja2dyb3VuZDp2YXIoLS13YXJuaW5nKX0mOi1tb3otbWV0ZXItc3ViLXN1Yi1vcHRpbXVtOjotbW96LW1ldGVyLWJhcntiYWNrZ3JvdW5kOnZhcigtLWRhbmdlcil9fX1AbGF5ZXIgY29tcG9uZW50c3tbYXJpYS1idXN5PXRydWVdeyY6YmVmb3Jle2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmlubGluZS1ibG9jaztpbnNldDowO21hcmdpbjphdXRvO3dpZHRoOjEuNXJlbTtoZWlnaHQ6MS41cmVtO2JvcmRlcjoycHggc29saWQgdmFyKC0tbXV0ZWQpO2JvcmRlci10b3AtY29sb3I6dmFyKC0tcHJpbWFyeSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCk7YW5pbWF0aW9uOnNwaW4gMXMgbGluZWFyIGluZmluaXRlO3RleHQtYWxpZ246Y2VudGVyfSZbZGF0YS1zcGlubmVyfj1zbWFsbF06YmVmb3Jle3dpZHRoOjFyZW07aGVpZ2h0OjFyZW19JltkYXRhLXNwaW5uZXJ+PWxhcmdlXTpiZWZvcmV7d2lkdGg6MnJlbTtoZWlnaHQ6MnJlbTtib3JkZXItd2lkdGg6M3B4fSZbZGF0YS1zcGlubmVyfj1vdmVybGF5XXtwb3NpdGlvbjpyZWxhdGl2ZTs+KntvcGFjaXR5Oi4zO3BvaW50ZXItZXZlbnRzOm5vbmV9JjpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDttYXJnaW46YXV0bzt6LWluZGV4OjF9fX1Aa2V5ZnJhbWVzIHNwaW57dG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX19QGxheWVyIGNvbXBvbmVudHN7OnJvb3R7LS1ncmlkLWNvbHM6IDEyOy0tZ3JpZC1nYXA6IDEuNXJlbTstLWNvbnRhaW5lci1tYXg6IDEyODBweDstLWNvbnRhaW5lci1wYWQ6IDFyZW19LmNvbnRhaW5lcnt3aWR0aDoxMDAlO21heC13aWR0aDp2YXIoLS1jb250YWluZXItbWF4KTttYXJnaW4taW5saW5lOmF1dG87cGFkZGluZy1pbmxpbmU6dmFyKC0tY29udGFpbmVyLXBhZCl9LnJvd3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCh2YXIoLS1ncmlkLWNvbHMpLDFmcik7Z2FwOnZhcigtLWdyaWQtZ2FwKTt3aWR0aDoxMDAlfS5jb2wsW2NsYXNzKj1jb2wtXXtncmlkLWNvbHVtbi1lbmQ6c3BhbiB2YXIoLS1zcGFuLCB2YXIoLS1ncmlkLWNvbHMpKX0uY29sLTF7LS1zcGFuOiAxfS5jb2wtMnstLXNwYW46IDJ9LmNvbC0zey0tc3BhbjogM30uY29sLTR7LS1zcGFuOiA0fS5jb2wtNXstLXNwYW46IDV9LmNvbC02ey0tc3BhbjogNn0uY29sLTd7LS1zcGFuOiA3fS5jb2wtOHstLXNwYW46IDh9LmNvbC05ey0tc3BhbjogOX0uY29sLTEwey0tc3BhbjogMTB9LmNvbC0xMXstLXNwYW46IDExfS5jb2wtMTJ7LS1zcGFuOiAxMn0ub2Zmc2V0LTF7Z3JpZC1jb2x1bW4tc3RhcnQ6Mn0ub2Zmc2V0LTJ7Z3JpZC1jb2x1bW4tc3RhcnQ6M30ub2Zmc2V0LTN7Z3JpZC1jb2x1bW4tc3RhcnQ6NH0ub2Zmc2V0LTR7Z3JpZC1jb2x1bW4tc3RhcnQ6NX0ub2Zmc2V0LTV7Z3JpZC1jb2x1bW4tc3RhcnQ6Nn0ub2Zmc2V0LTZ7Z3JpZC1jb2x1bW4tc3RhcnQ6N30uY29sLWVuZHtncmlkLWNvbHVtbi1zdGFydDpzcGFuIHZhcigtLXNwYW4sIDEpO2dyaWQtY29sdW1uLWVuZDotMX1AbWVkaWEobWF4LXdpZHRoOjc2OHB4KXsucm93ey0tZ3JpZC1jb2xzOiA0Oy0tZ3JpZC1nYXA6IDFyZW19LmNvbCxbY2xhc3MqPWNvbC1dey0tc3BhbjogNH1bY2xhc3MqPW9mZnNldC1de2dyaWQtY29sdW1uLXN0YXJ0OmF1dG99fX1AbGF5ZXIgY29tcG9uZW50c3suY2FyZHtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNhcmQpO2NvbG9yOnZhcigtLWNhcmQtZm9yZWdyb3VuZCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1lZGl1bSk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctc21hbGwpO3BhZGRpbmc6dmFyKC0tc3BhY2UtNik7b3ZlcmZsb3c6aGlkZGVufX1AbGF5ZXIgY29tcG9uZW50c3tbcm9sZT1hbGVydF17cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2dhcDp2YXIoLS1zcGFjZS0zKTtwYWRkaW5nOnZhcigtLXNwYWNlLTQpIHZhcigtLXNwYWNlLTYpO2JhY2tncm91bmQtY29sb3I6dmFyKC0tYmFja2dyb3VuZCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1lZGl1bSk7Zm9udC1zaXplOnZhcigtLXRleHQtNyk7JltkYXRhLXZhcmlhbnRde2JvcmRlcjpub25lfSZbZGF0YS12YXJpYW50PWVycm9yXSwmW2RhdGEtdmFyaWFudD1kYW5nZXJde2NvbG9yOnZhcigtLWRhbmdlcik7YmFja2dyb3VuZC1jb2xvcjpsaWdodC1kYXJrKGNvbG9yLW1peChpbiBzcmdiLHZhcigtLWRhbmdlcikgOCUsdHJhbnNwYXJlbnQpLGNvbG9yLW1peChpbiBzcmdiLHZhcigtLWRhbmdlcikgMjAlLHRyYW5zcGFyZW50KSk7JiBhe2NvbG9yOnZhcigtLWRhbmdlcil9fSZbZGF0YS12YXJpYW50PXN1Y2Nlc3Nde2NvbG9yOnZhcigtLXN1Y2Nlc3MpO2JhY2tncm91bmQtY29sb3I6bGlnaHQtZGFyayhjb2xvci1taXgoaW4gc3JnYix2YXIoLS1zdWNjZXNzKSA4JSx0cmFuc3BhcmVudCksY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tc3VjY2VzcykgMjAlLHRyYW5zcGFyZW50KSk7JiBhe2NvbG9yOnZhcigtLXN1Y2Nlc3MpfX0mW2RhdGEtdmFyaWFudD13YXJuaW5nXXtjb2xvcjp2YXIoLS13YXJuaW5nKTtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0LWRhcmsoY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0td2FybmluZykgOCUsdHJhbnNwYXJlbnQpLGNvbG9yLW1peChpbiBzcmdiLHZhcigtLXdhcm5pbmcpIDIwJSx0cmFuc3BhcmVudCkpOyYgYXtjb2xvcjp2YXIoLS13YXJuaW5nKX19fX1AbGF5ZXIgY29tcG9uZW50c3suYmFkZ2V7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOnZhcigtLXNwYWNlLTEpO3BhZGRpbmc6dmFyKC0tc3BhY2UtMSkgdmFyKC0tc3BhY2UtNCk7Zm9udC1zaXplOnZhcigtLXRleHQtOCk7Zm9udC13ZWlnaHQ6dmFyKC0tZm9udC1tZWRpdW0pO2xpbmUtaGVpZ2h0OnZhcigtLWxlYWRpbmctbm9ybWFsKTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByaW1hcnkpO2NvbG9yOnZhcigtLXByaW1hcnktZm9yZWdyb3VuZCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCk7Ji5zZWNvbmRhcnl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1zZWNvbmRhcnkpO2NvbG9yOnZhcigtLXNlY29uZGFyeS1mb3JlZ3JvdW5kKX0mLm91dGxpbmV7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS1mb3JlZ3JvdW5kKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcil9Ji5zdWNjZXNze2NvbG9yOnZhcigtLXN1Y2Nlc3MpO2JhY2tncm91bmQtY29sb3I6bGlnaHQtZGFyayhjb2xvci1taXgoaW4gc3JnYix2YXIoLS1zdWNjZXNzKSAxMCUsdHJhbnNwYXJlbnQpLGNvbG9yLW1peChpbiBzcmdiLHZhcigtLXN1Y2Nlc3MpIDMwJSx0cmFuc3BhcmVudCkpfSYud2FybmluZ3tjb2xvcjp2YXIoLS13YXJuaW5nKTtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0LWRhcmsoY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0td2FybmluZykgMTAlLHRyYW5zcGFyZW50KSxjb2xvci1taXgoaW4gc3JnYix2YXIoLS13YXJuaW5nKSAzMCUsdHJhbnNwYXJlbnQpKX0mLmRhbmdlcntjb2xvcjp2YXIoLS1kYW5nZXIpO2JhY2tncm91bmQtY29sb3I6bGlnaHQtZGFyayhjb2xvci1taXgoaW4gc3JnYix2YXIoLS1kYW5nZXIpIDEwJSx0cmFuc3BhcmVudCksY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tZGFuZ2VyKSAzMCUsdHJhbnNwYXJlbnQpKX19fUBsYXllciBjb21wb25lbnRze2RldGFpbHN7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1lZGl1bSk7b3ZlcmZsb3c6aGlkZGVuOytkZXRhaWxze21hcmdpbi10b3A6LTFweDtib3JkZXItc3RhcnQtc3RhcnQtcmFkaXVzOjA7Ym9yZGVyLXN0YXJ0LWVuZC1yYWRpdXM6MH0mOmhhcygrZGV0YWlscyl7Ym9yZGVyLWVuZC1zdGFydC1yYWRpdXM6MDtib3JkZXItZW5kLWVuZC1yYWRpdXM6MH0mW29wZW5dIHN1bW1hcnl7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyKX19c3VtbWFyeXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDp2YXIoLS1zcGFjZS0yKTtwYWRkaW5nOnZhcigtLXNwYWNlLTQpO2ZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtbWVkaXVtKTtjdXJzb3I6cG9pbnRlcjt1c2VyLXNlbGVjdDpub25lO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpOyY6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tdXRlZCl9Jjo6LXdlYmtpdC1kZXRhaWxzLW1hcmtlciwmOjptYXJrZXJ7ZGlzcGxheTpub25lfSY6YWZ0ZXJ7Y29udGVudDpcIlwiO3dpZHRoOjFlbTtoZWlnaHQ6MWVtO2ZsZXgtc2hyaW5rOjA7YmFja2dyb3VuZC1jb2xvcjpjdXJyZW50Q29sb3I7bWFzay1pbWFnZTp1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyBzdHJva2U9J2N1cnJlbnRDb2xvcicgc3Ryb2tlLXdpZHRoPScyJyUzRSUzQ3BhdGggZD0nbTYgOSA2IDYgNi02Jy8lM0UlM0Mvc3ZnJTNFXCIpO21hc2stc2l6ZTpjb250YWluO21hc2stcmVwZWF0Om5vLXJlcGVhdDt0cmFuc2l0aW9uOnRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfWRldGFpbHNbb3Blbl0gJjphZnRlcnt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9fWRldGFpbHM+Kjpub3Qoc3VtbWFyeSl7cGFkZGluZzp2YXIoLS1zcGFjZS00KX19QGxheWVyIGNvbXBvbmVudHN7W3JvbGU9dGFibGlzdF17ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOnZhcigtLXNwYWNlLTEpO3BhZGRpbmc6dmFyKC0tc3BhY2UtMSk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tdXRlZCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWVkaXVtKX1bcm9sZT10YWJde2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzp2YXIoLS1zcGFjZS0yKSB2YXIoLS1zcGFjZS0zKTtmb250LXNpemU6dmFyKC0tdGV4dC03KTtmb250LXdlaWdodDp2YXIoLS1mb250LW1lZGl1bSk7d2hpdGUtc3BhY2U6bm93cmFwO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tZm9yZWdyb3VuZCk7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czpjYWxjKHZhcigtLXJhZGl1cy1tZWRpdW0pIC0gMnB4KTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpOyY6aG92ZXJ7Y29sb3I6dmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCl9JlthcmlhLXNlbGVjdGVkPXRydWVde2JhY2tncm91bmQtY29sb3I6dmFyKC0tYmFja2dyb3VuZCk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctc21hbGwpfX1bcm9sZT10YWJwYW5lbF17cGFkZGluZzp2YXIoLS1zcGFjZS00KSAwOyY6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOm5vbmV9fX1AbGF5ZXIgY29tcG9uZW50c3tkaWFsb2d7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDt6LWluZGV4OnZhcigtLXotbW9kYWwpO3dpZHRoOm1pbigxMDAlIC0gMnJlbSwzMnJlbSk7bWF4LWhlaWdodDo4NXZoO21hcmdpbjphdXRvO3BhZGRpbmc6MDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNhcmQpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1sYXJnZSk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctbGFyZ2UpO292ZXJmbG93OmhpZGRlbjtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlKC45NSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMgZWFzZSx0cmFuc2Zvcm0gLjE1cyBlYXNlLG92ZXJsYXkgLjE1cyBlYXNlIGFsbG93LWRpc2NyZXRlLGRpc3BsYXkgLjE1cyBlYXNlIGFsbG93LWRpc2NyZXRlOyZbb3Blbl17b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZSgxKX1Ac3RhcnRpbmctc3R5bGV7JltvcGVuXXtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlKC45NSl9fSY6OmJhY2tkcm9we2JhY2tncm91bmQtY29sb3I6IzAwMDA7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4xNXMgZWFzZSxvdmVybGF5IC4xNXMgZWFzZSBhbGxvdy1kaXNjcmV0ZSxkaXNwbGF5IC4xNXMgZWFzZSBhbGxvdy1kaXNjcmV0ZX0mW29wZW5dOjpiYWNrZHJvcHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDA4MH1Ac3RhcnRpbmctc3R5bGV7JltvcGVuXTo6YmFja2Ryb3B7YmFja2dyb3VuZC1jb2xvcjojMDAwMH19PmhlYWRlciw+Zm9ybT5oZWFkZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6dmFyKC0tc3BhY2UtMSk7cGFkZGluZzp2YXIoLS1zcGFjZS02KTtwYWRkaW5nLWJsb2NrLWVuZDowOz5oMSw+aDIsPmgzLD5oNCw+aDUsPmg2e21hcmdpbi1ibG9jay1lbmQ6MH0+cHtmb250LXNpemU6dmFyKC0tdGV4dC03KTtjb2xvcjp2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKTttYXJnaW4tYmxvY2stZW5kOjB9fT5wLD5kaXYsPnNlY3Rpb24sPmZvcm0+cCw+Zm9ybT5kaXYsPmZvcm0+c2VjdGlvbntwYWRkaW5nOnZhcigtLXNwYWNlLTYpO292ZXJmbG93LXk6YXV0b30+Zm9vdGVyLD5mb3JtPmZvb3RlcntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2dhcDp2YXIoLS1zcGFjZS0yKTtwYWRkaW5nOnZhcigtLXNwYWNlLTYpO3BhZGRpbmctYmxvY2stc3RhcnQ6MH19fUBsYXllciBjb21wb25lbnRze290LWRyb3Bkb3due1twb3BvdmVyXXtwb3NpdGlvbjpmaXhlZDttYXJnaW46MDttaW4td2lkdGg6MTJyZW07YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1iYWNrZ3JvdW5kKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWVkaXVtKTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1tZWRpdW0pO29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNHB4KTt0cmFuc2l0aW9uOm9wYWNpdHkgLjE1cyBlYXNlLW91dCx0cmFuc2Zvcm0gLjE1cyBlYXNlLW91dCxkaXNwbGF5IC4xNXMgYWxsb3ctZGlzY3JldGUsb3ZlcmxheSAuMTVzIGFsbG93LWRpc2NyZXRlOyY6cG9wb3Zlci1vcGVue29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX1Ac3RhcnRpbmctc3R5bGV7Jjpwb3BvdmVyLW9wZW57b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC00cHgpfX19W3JvbGU9bWVudWl0ZW1de2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnN0YXJ0O2dhcDp2YXIoLS1zcGFjZS0yKTt3aWR0aDoxMDAlO3BhZGRpbmc6dmFyKC0tc3BhY2UtMikgdmFyKC0tc3BhY2UtMyk7Zm9udC1zaXplOnZhcigtLXRleHQtNyk7dGV4dC1hbGlnbjpzdGFydDtjb2xvcjp2YXIoLS1mb3JlZ3JvdW5kKTtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc21hbGwpO2N1cnNvcjpwb2ludGVyOyY6aG92ZXIsJjpmb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWFjY2VudCk7b3V0bGluZTpub25lfX19fUBsYXllciBjb21wb25lbnRzey50b2FzdC1jb250YWluZXJ7cG9zaXRpb246Zml4ZWQ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwb2ludGVyLWV2ZW50czpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O292ZXJmbG93OnZpc2libGU7Jjo6YmFja2Ryb3B7ZGlzcGxheTpub25lfSZbZGF0YS1wbGFjZW1lbnQ9dG9wLWxlZnRde2luc2V0OnZhcigtLXNwYWNlLTQpIGF1dG8gYXV0byB2YXIoLS1zcGFjZS00KX0mW2RhdGEtcGxhY2VtZW50PXRvcC1jZW50ZXJde2luc2V0OnZhcigtLXNwYWNlLTQpIGF1dG8gYXV0byA1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKX0mW2RhdGEtcGxhY2VtZW50PXRvcC1yaWdodF17aW5zZXQ6dmFyKC0tc3BhY2UtNCkgdmFyKC0tc3BhY2UtNCkgYXV0byBhdXRvfSZbZGF0YS1wbGFjZW1lbnQ9Ym90dG9tLWxlZnRde2luc2V0OmF1dG8gYXV0byB2YXIoLS1zcGFjZS00KSB2YXIoLS1zcGFjZS00KTtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZX0mW2RhdGEtcGxhY2VtZW50PWJvdHRvbS1jZW50ZXJde2luc2V0OmF1dG8gYXV0byB2YXIoLS1zcGFjZS00KSA1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZX0mW2RhdGEtcGxhY2VtZW50PWJvdHRvbS1yaWdodF17aW5zZXQ6YXV0byB2YXIoLS1zcGFjZS00KSB2YXIoLS1zcGFjZS00KSBhdXRvO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlfX0udG9hc3R7LS10cmFuc2l0aW9uOiAuM3M7LS10cmFuc2l0aW9uLWluOiBjYWxjKHZhcigtLXRyYW5zaXRpb24pIC0gNTBtcyk7cGFkZGluZzp2YXIoLS1zcGFjZS01KSB2YXIoLS1zcGFjZS00KTttYXgtd2lkdGg6MjhyZW07bWluLXdpZHRoOjIwcmVtO3BvaW50ZXItZXZlbnRzOmF1dG87YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jYXJkKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLWlubGluZS1zdGFydC13aWR0aDp2YXIoLS1zcGFjZS0xKTtib3JkZXItaW5saW5lLXN0YXJ0LXN0eWxlOnNvbGlkO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1lZGl1bSk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctc21hbGwpO3RyYW5zaXRpb246b3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWluKSx0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1pbiksbWFyZ2luIHZhcigtLXRyYW5zaXRpb24taW4pO2xpbmUtaGVpZ2h0OjE7LnRvYXN0LXRpdGxle2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW46MCAwIHZhcigtLXNwYWNlLTMpIDB9LnRvYXN0LW1lc3NhZ2V7Y29sb3I6dmFyKC0tbXV0ZWQtZm9yZWdyb3VuZCl9JltkYXRhLXZhcmlhbnQ9c3VjY2Vzc117Ym9yZGVyLWlubGluZS1zdGFydC1jb2xvcjp2YXIoLS1zdWNjZXNzKTsudG9hc3QtdGl0bGV7Y29sb3I6dmFyKC0tc3VjY2Vzcyl9fSZbZGF0YS12YXJpYW50PWRhbmdlcl17Ym9yZGVyLWlubGluZS1zdGFydC1jb2xvcjp2YXIoLS1kYW5nZXIpOy50b2FzdC10aXRsZXtjb2xvcjp2YXIoLS1kYW5nZXIpfX0mW2RhdGEtdmFyaWFudD13YXJuaW5nXXtib3JkZXItaW5saW5lLXN0YXJ0LWNvbG9yOnZhcigtLXdhcm5pbmcpOy50b2FzdC10aXRsZXtjb2xvcjp2YXIoLS13YXJuaW5nKX19PltkYXRhLWNsb3NlXXttYXJnaW4taW5saW5lLXN0YXJ0OmF1dG87YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO3BhZGRpbmc6MDtjdXJzb3I6cG9pbnRlcjtvcGFjaXR5Oi41OyY6aG92ZXJ7b3BhY2l0eToxfX1tYXJnaW46dmFyKC0tc3BhY2UtMikgMDsmW2RhdGEtZW50ZXJpbmdde29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXJlbSl9JltkYXRhLWV4aXRpbmdde29wYWNpdHk6MDttYXJnaW46MDtwYWRkaW5nLWJsb2NrOjA7bWF4LWhlaWdodDowO292ZXJmbG93OmhpZGRlbjt0cmFuc2l0aW9uOm9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbiksbWFyZ2luIHZhcigtLXRyYW5zaXRpb24pLHBhZGRpbmcgdmFyKC0tdHJhbnNpdGlvbiksbWF4LWhlaWdodCB2YXIoLS10cmFuc2l0aW9uKX19fUBsYXllciBjb21wb25lbnRzezpyb290ey0tX25oOiB2YXIoLS1zcGFjZS0xMil9W2RhdGEtc2lkZWJhci1sYXlvdXRdey0tdG9wbmF2LW9mZnNldDogMHB4Oy0tdG9wbmF2LXNjcm9sbC1vZmZzZXQ6IDBweDtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjE0cmVtIDFmcjttaW4taGVpZ2h0OjEwMGR2aDtnYXA6dmFyKC0tc3BhY2UtNCk7JjpoYXMobmF2W2RhdGEtdG9wbmF2XSl7LS10b3BuYXYtb2Zmc2V0OiB2YXIoLS1fbmgpOy0tdG9wbmF2LXNjcm9sbC1vZmZzZXQ6IGNhbGModmFyKC0tX25oKSArIHZhcigtLXNwYWNlLTYpKX0+bWFpbnttaW4td2lkdGg6MDttYXJnaW4tYmxvY2stc3RhcnQ6dmFyKC0tdG9wbmF2LW9mZnNldCk7W2lkXXtzY3JvbGwtbWFyZ2luLWJsb2NrLXN0YXJ0OnZhcigtLXRvcG5hdi1zY3JvbGwtb2Zmc2V0KX19PmFzaWRlW2RhdGEtc2lkZWJhcl17cG9zaXRpb246c3RpY2t5O3RvcDp2YXIoLS10b3BuYXYtb2Zmc2V0KTt6LWluZGV4OjE7aGVpZ2h0OmNhbGMoMTAwZHZoIC0gdmFyKC0tdG9wbmF2LW9mZnNldCkpO2FsaWduLXNlbGY6c3RhcnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1iYWNrZ3JvdW5kKTtib3JkZXItaW5saW5lLWVuZDoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uOz46aXMoaGVhZGVyLGZvb3Rlcil7ZmxleC1zaHJpbms6MDtwYWRkaW5nOnZhcigtLXNwYWNlLTMpfT5mb290ZXJ7bWFyZ2luLWJsb2NrLXN0YXJ0OmF1dG99Pm5hdntmbGV4OjE7bWluLWhlaWdodDowO292ZXJmbG93LXk6YXV0bztwYWRkaW5nOnZhcigtLXNwYWNlLTMpIHZhcigtLXNwYWNlLTIpO3Vse2xpc3Qtc3R5bGU6bm9uZTtwYWRkaW5nOjA7bWFyZ2luOjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6dmFyKC0tc3BhY2UtMSk7bGl7bWFyZ2luOjB9fWF7ZGlzcGxheTpmbGV4O2dhcDp2YXIoLS1zcGFjZS0yKTtwYWRkaW5nOnZhcigtLXNwYWNlLTEpIHZhcigtLXNwYWNlLTMpO2ZvbnQtc2l6ZTp2YXIoLS10ZXh0LTcpO2NvbG9yOnZhcigtLWZvcmVncm91bmQpO3RleHQtZGVjb3JhdGlvbjpub25lO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtYWxsKTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTsmOmlzKDpob3ZlcixbYXJpYS1jdXJyZW50XSl7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1hY2NlbnQpfX1kZXRhaWxze2JvcmRlcjpub25lO292ZXJmbG93OnZpc2libGU7K2RldGFpbHN7bWFyZ2luLXRvcDowfSZbb3Blbl0gc3VtbWFyeXtib3JkZXItYm90dG9tOm5vbmV9PnVse21hcmdpbi1pbmxpbmUtc3RhcnQ6dmFyKC0tc3BhY2UtNCk7cGFkZGluZzp2YXIoLS1zcGFjZS0xKSAwfX1zdW1tYXJ5e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3BhZGRpbmc6dmFyKC0tc3BhY2UtMikgdmFyKC0tc3BhY2UtMyk7Zm9udC1zaXplOnZhcigtLXRleHQtNyk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc21hbGwpOyY6YWZ0ZXJ7d2lkdGg6Ljc1cmVtO2hlaWdodDouNzVyZW07bWFyZ2luLWlubGluZS1zdGFydDphdXRvfX19fX1uYXZbZGF0YS10b3BuYXZde3Bvc2l0aW9uOmZpeGVkO2luc2V0OjAgMCBhdXRvO3otaW5kZXg6NTttaW4taGVpZ2h0OnZhcigtLV9uaCk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6dmFyKC0tc3BhY2UtMyk7cGFkZGluZzp2YXIoLS1zcGFjZS0yKSB2YXIoLS1zcGFjZS00KTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJhY2tncm91bmQpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctc21hbGwpfTppcyhbZGF0YS1zaWRlYmFyLXRvZ2dsZV0sW2RhdGEtc2lkZWJhci1oZWFkZXJdKXtkaXNwbGF5Om5vbmV9W2RhdGEtc2lkZWJhci10b2dnbGVde3BhZGRpbmc6MCB2YXIoLS1zcGFjZS0xKTtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtYWxsKTtjdXJzb3I6cG9pbnRlcn1AbWVkaWEobWluLXdpZHRoOjc2OXB4KXtbZGF0YS1zaWRlYmFyLWxheW91dD1hbHdheXNdIFtkYXRhLXNpZGViYXItdG9nZ2xlXXtkaXNwbGF5OmlubGluZS1ibG9ja31bZGF0YS1zaWRlYmFyLWxheW91dD1hbHdheXNde3RyYW5zaXRpb246Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zIHZhcigtLXRyYW5zaXRpb24pOz5hc2lkZVtkYXRhLXNpZGViYXJde3RyYW5zZm9ybTp0cmFuc2xhdGUoMCk7b3BhY2l0eToxO3RyYW5zaXRpb246dHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24pLG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbiksdmlzaWJpbGl0eSB2YXIoLS10cmFuc2l0aW9uKX19W2RhdGEtc2lkZWJhci1sYXlvdXQ9YWx3YXlzXVtkYXRhLXNpZGViYXItb3Blbl17Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjBweCAxZnI7Z2FwOjA7PmFzaWRlW2RhdGEtc2lkZWJhcl17b3ZlcmZsb3c6aGlkZGVuO21pbi13aWR0aDowO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTEwMCUpO29wYWNpdHk6MDt2aXNpYmlsaXR5OmhpZGRlbjtib3JkZXItaW5saW5lLWVuZDpub25lfX19QG1lZGlhKG1heC13aWR0aDo3NjhweCl7W2RhdGEtc2lkZWJhci1sYXlvdXRde2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7PmFzaWRlW2RhdGEtc2lkZWJhcl17cG9zaXRpb246Zml4ZWQ7bGVmdDowO3dpZHRoOjE2cmVtO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTEwMCUpO3RyYW5zaXRpb246dHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24pO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LWxhcmdlKX0mW2RhdGEtc2lkZWJhci1vcGVuXT5hc2lkZVtkYXRhLXNpZGViYXJde3RyYW5zZm9ybTp0cmFuc2xhdGUoMCl9fVtkYXRhLXNpZGViYXItdG9nZ2xlXXtkaXNwbGF5OmlubGluZS1ibG9ja31bZGF0YS1zaWRlYmFyLWhlYWRlcl17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6dmFyKC0tc3BhY2UtMyk7cGFkZGluZzp2YXIoLS1zcGFjZS0zKSB2YXIoLS1zcGFjZS00KTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpfX19QGxheWVyIGNvbXBvbmVudHN7W3JvbGU9c3RhdHVzXS5za2VsZXRvbnstLV9jOiBsaWdodC1kYXJrKCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbXV0ZWQpIDMwJSwgd2hpdGUpLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbXV0ZWQpIDkwJSwgdmFyKC0tZm9yZWdyb3VuZCkpICk7bWFyZ2luLWJsb2NrLWVuZDp2YXIoLS1zcGFjZS0zKTtiYWNrZ3JvdW5kOnZhcigtLW11dGVkKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZWRpdW0pO2FuaW1hdGlvbjphbmltIDJzIGluZmluaXRlO2JhY2tncm91bmQtc2l6ZToyMDAlIDEwMCU7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdmFyKC0tbXV0ZWQpIDAlLHZhcigtLV9jKSA1MCUsdmFyKC0tbXV0ZWQpIDEwMCUpOyYuYm94e3dpZHRoOjRyZW07aGVpZ2h0OjRyZW19Ji5saW5le2hlaWdodDoxcmVtO3dpZHRoOjEwMCV9fVtyb2xlPXN0YXR1c10uc2tlbGV0b246bGFzdC1jaGlsZHttYXJnaW4tYmxvY2stZW5kOjB9QGtleWZyYW1lcyBhbmltezAle2JhY2tncm91bmQtcG9zaXRpb246MjAwJSAwfXRve2JhY2tncm91bmQtcG9zaXRpb246LTIwMCUgMH19fUBsYXllciBjb21wb25lbnRze1tkYXRhLXRvb2x0aXBde3Bvc2l0aW9uOnJlbGF0aXZlfVtkYXRhLXRvb2x0aXBdOmJlZm9yZSxbZGF0YS10b29sdGlwXTphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtpbnNldC1pbmxpbmUtc3RhcnQ6NTAlO29wYWNpdHk6MDt2aXNpYmlsaXR5OmhpZGRlbjt0cmFuc2l0aW9uOm9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSx0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSx2aXNpYmlsaXR5IHZhcigtLXRyYW5zaXRpb24tZmFzdCk7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjEwMDB9W2RhdGEtdG9vbHRpcF06YWZ0ZXJ7Y29udGVudDphdHRyKGRhdGEtdG9vbHRpcCk7aW5zZXQtYmxvY2stZW5kOmNhbGMoMTAwJSArIDEwcHgpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSkgdHJhbnNsYXRlWSg0cHgpO3BhZGRpbmc6dmFyKC0tc3BhY2UtMikgdmFyKC0tc3BhY2UtMyk7Zm9udC1zaXplOnZhcigtLXRleHQtNyk7bGluZS1oZWlnaHQ6MTt3aGl0ZS1zcGFjZTpub3dyYXA7YmFja2dyb3VuZDp2YXIoLS1mb3JlZ3JvdW5kKTtjb2xvcjp2YXIoLS1iYWNrZ3JvdW5kKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZWRpdW0pfVtkYXRhLXRvb2x0aXBdOmJlZm9yZXtjb250ZW50OlwiXCI7aW5zZXQtYmxvY2stZW5kOmNhbGMoMTAwJSAtIDVweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKSB0cmFuc2xhdGVZKDRweCk7Ym9yZGVyOjhweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wLWNvbG9yOnZhcigtLWZvcmVncm91bmQpfVtkYXRhLXRvb2x0aXBdOmlzKDpob3Zlciw6Zm9jdXMtdmlzaWJsZSk6YmVmb3JlLFtkYXRhLXRvb2x0aXBdOmlzKDpob3Zlciw6Zm9jdXMtdmlzaWJsZSk6YWZ0ZXJ7b3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTt0cmFuc2l0aW9uLWRlbGF5Oi43czt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpIHRyYW5zbGF0ZVkoMCl9fUBsYXllciB1dGlsaXRpZXN7LnRleHQtbGVmdHt0ZXh0LWFsaWduOnN0YXJ0fS50ZXh0LWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlcn0udGV4dC1yaWdodHt0ZXh0LWFsaWduOmVuZH0udGV4dC1saWdodHtjb2xvcjp2YXIoLS1tdXRlZC1mb3JlZ3JvdW5kKX0udGV4dC1saWdodGVye2NvbG9yOnZhcigtLWZhaW50LWZvcmVncm91bmQpfS5mbGV4e2Rpc3BsYXk6ZmxleH0uZmxleC1jb2x7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5pdGVtcy1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyfS5qdXN0aWZ5LWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5qdXN0aWZ5LWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmhzdGFja3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDp2YXIoLS1zcGFjZS0zKTtmbGV4LXdyYXA6d3JhcDthbGlnbi1jb250ZW50OmZsZXgtc3RhcnQ7aGVpZ2h0OmF1dG99LnZzdGFja3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDp2YXIoLS1zcGFjZS0zKX0uZ2FwLTF7Z2FwOnZhcigtLXNwYWNlLTEpfS5nYXAtMntnYXA6dmFyKC0tc3BhY2UtMil9LmdhcC00e2dhcDp2YXIoLS1zcGFjZS00KX0ubXQtMnttYXJnaW4tYmxvY2stc3RhcnQ6dmFyKC0tc3BhY2UtMil9Lm10LTR7bWFyZ2luLWJsb2NrLXN0YXJ0OnZhcigtLXNwYWNlLTQpfS5tdC02e21hcmdpbi1ibG9jay1zdGFydDp2YXIoLS1zcGFjZS02KX0ubWItMnttYXJnaW4tYmxvY2stZW5kOnZhcigtLXNwYWNlLTIpfS5tYi00e21hcmdpbi1ibG9jay1lbmQ6dmFyKC0tc3BhY2UtNCl9Lm1iLTZ7bWFyZ2luLWJsb2NrLWVuZDp2YXIoLS1zcGFjZS02KX0ucC00e3BhZGRpbmc6dmFyKC0tc3BhY2UtNCl9LnctMTAwe3dpZHRoOjEwMCV9dWwsb2x7Ji51bnN0eWxlZHtsaXN0LXN0eWxlOm5vbmU7cGFkZGluZy1pbmxpbmUtc3RhcnQ6MDttYXJnaW4taW5saW5lLXN0YXJ0OjB9fX1cbiIsICIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgREVTSUdOIFRPS0VOU1xuICAgQ29yZSB2YXJpYWJsZXMgZm9yIGNvbG9ycywgdHlwb2dyYXBoeSwgc3BhY2luZywgYW5kIGVmZmVjdHMuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG46cm9vdCB7XG4gIC8qIENvbG9ycyAtIEJhc2UgKi9cbiAgLS1jb2xvci1wcmltYXJ5OiBva2xjaCg3MCUgMC4yMTMgNDcuNjA0KTtcbiAgLS1jb2xvci1wcmltYXJ5LWhvdmVyOiBva2xjaCg2NSUgMC4yMTMgNDcuNjA0KTtcbiAgLS1jb2xvci1iZzogb2tsY2goOTglIDAgMCk7XG4gIC0tY29sb3ItYmctc2Vjb25kYXJ5OiBva2xjaCg5NiUgMC4wMDEgMjg2LjM3NSk7XG4gIC0tY29sb3ItYmctdGVydGlhcnk6IG9rbGNoKDkyJSAwLjAwNCAyODYuMzIpO1xuICAtLWNvbG9yLWZnOiBva2xjaCgyMSUgMC4wMDYgMjg1Ljg4NSk7XG4gIC0tY29sb3ItZmctbXV0ZWQ6IG9rbGNoKDQ1JSAwLjAwNiAyODUuODg1KTtcbiAgLS1jb2xvci1ib3JkZXI6IG9rbGNoKDkyJSAwLjAwNCAyODYuMzIpO1xuICAtLWNvbG9yLWJvcmRlci1ob3Zlcjogb2tsY2goODUlIDAuMDA2IDI4Ni4zMik7XG4gIC0tY29sb3Itc3VjY2Vzczogb2tsY2goNzAlIDAuMTQgMTgyLjUwMyk7XG4gIC0tY29sb3Itc3VjY2Vzcy1iZzogb2tsY2goOTUlIDAuMDMgMTgyLjUwMyk7XG4gIC0tY29sb3Itd2FybmluZzogb2tsY2goNjYlIDAuMTc5IDU4LjMxOCk7XG4gIC0tY29sb3Itd2FybmluZy1iZzogb2tsY2goOTUlIDAuMDQgNTguMzE4KTtcbiAgLS1jb2xvci1lcnJvcjogb2tsY2goNTglIDAuMjUzIDE3LjU4NSk7XG4gIC0tY29sb3ItZXJyb3ItYmc6IG9rbGNoKDk1JSAwLjA1IDE3LjU4NSk7XG4gIC0tY29sb3ItaW5mbzogb2tsY2goNjIlIDAuMjE0IDI1OS44MTUpO1xuICAtLWNvbG9yLWluZm8tYmc6IG9rbGNoKDk1JSAwLjA0IDI1OS44MTUpO1xuXG4gIC8qIENvbG9ycyAtIENvbnNvbGUgKGZvciBnaXQgZGlmZnMsIGNvZGUgdmlld3MpICovXG4gIC0tY29sb3ItY29uc29sZS1iZzogb2tsY2goMTUlIDAgMCk7XG4gIC0tY29sb3ItY29uc29sZS1mZzogb2tsY2goOTAlIDAgMCk7XG4gIC0tY29sb3ItY29uc29sZS1tdXRlZDogb2tsY2goNzAlIDAgMCk7XG5cbiAgLyogQ29sb3JzIC0gQWxwaGEgdmFyaWFudHMgKi9cbiAgLS1jb2xvci1wcmltYXJ5LTU6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tY29sb3ItcHJpbWFyeSkgNSUsIHRyYW5zcGFyZW50KTtcbiAgLS1jb2xvci1wcmltYXJ5LTEwOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWNvbG9yLXByaW1hcnkpIDEwJSwgdHJhbnNwYXJlbnQpO1xuICAtLWNvbG9yLXByaW1hcnktMTU6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tY29sb3ItcHJpbWFyeSkgMTUlLCB0cmFuc3BhcmVudCk7XG4gIC0tY29sb3ItcHJpbWFyeS0yMDogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1jb2xvci1wcmltYXJ5KSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgLS1jb2xvci1wcmltYXJ5LTMwOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWNvbG9yLXByaW1hcnkpIDMwJSwgdHJhbnNwYXJlbnQpO1xuICAtLWNvbG9yLXN1Y2Nlc3MtNTogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1jb2xvci1zdWNjZXNzKSA1JSwgdHJhbnNwYXJlbnQpO1xuICAtLWNvbG9yLXN1Y2Nlc3MtMTA6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tY29sb3Itc3VjY2VzcykgMTAlLCB0cmFuc3BhcmVudCk7XG4gIC0tY29sb3Itc3VjY2Vzcy0yMDogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1jb2xvci1zdWNjZXNzKSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgLS1jb2xvci1zdWNjZXNzLTMwOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWNvbG9yLXN1Y2Nlc3MpIDMwJSwgdHJhbnNwYXJlbnQpO1xuICAtLWNvbG9yLXdhcm5pbmctMTA6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tY29sb3Itd2FybmluZykgMTAlLCB0cmFuc3BhcmVudCk7XG4gIC0tY29sb3Itd2FybmluZy0yMDogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1jb2xvci13YXJuaW5nKSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgLS1jb2xvci13YXJuaW5nLTMwOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWNvbG9yLXdhcm5pbmcpIDMwJSwgdHJhbnNwYXJlbnQpO1xuICAtLWNvbG9yLWVycm9yLTU6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tY29sb3ItZXJyb3IpIDUlLCB0cmFuc3BhcmVudCk7XG4gIC0tY29sb3ItZXJyb3ItMTA6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tY29sb3ItZXJyb3IpIDEwJSwgdHJhbnNwYXJlbnQpO1xuICAtLWNvbG9yLWVycm9yLTIwOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWNvbG9yLWVycm9yKSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgLS1jb2xvci1pbmZvLTEwOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWNvbG9yLWluZm8pIDEwJSwgdHJhbnNwYXJlbnQpO1xuICAtLWNvbG9yLWZnLTEwOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWNvbG9yLWZnKSAxMCUsIHRyYW5zcGFyZW50KTtcbiAgLS1jb2xvci1ib3JkZXItMjA6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tY29sb3ItYm9yZGVyKSAyMCUsIHRyYW5zcGFyZW50KTtcbiAgLS1jb2xvci1ib3JkZXItMzA6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tY29sb3ItYm9yZGVyKSAzMCUsIHRyYW5zcGFyZW50KTtcbiAgLS1jb2xvci1ib3JkZXItNDA6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tY29sb3ItYm9yZGVyKSA0MCUsIHRyYW5zcGFyZW50KTtcbiAgLS1jb2xvci1ib3JkZXItNTA6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tY29sb3ItYm9yZGVyKSA1MCUsIHRyYW5zcGFyZW50KTtcbiAgLS1jb2xvci1iZy05MDogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1jb2xvci1iZykgOTAlLCB0cmFuc3BhcmVudCk7XG4gIC0tY29sb3ItYmctODA6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tY29sb3ItYmcpIDgwJSwgdHJhbnNwYXJlbnQpO1xuICAtLWNvbG9yLWJnLTUwOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWNvbG9yLWJnKSA1MCUsIHRyYW5zcGFyZW50KTtcbiAgLS1jb2xvci1iZy1zZWNvbmRhcnktNTA6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5KSA1MCUsIHRyYW5zcGFyZW50KTtcbiAgLS1jb2xvci1iZy1zZWNvbmRhcnktOTU6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5KSA5NSUsIHRyYW5zcGFyZW50KTtcbiAgLS1jb2xvci1iZy10ZXJ0aWFyeS0xMDogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1jb2xvci1iZy10ZXJ0aWFyeSkgMTAlLCB0cmFuc3BhcmVudCk7XG4gIC0tY29sb3ItYmctdGVydGlhcnktMjA6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tY29sb3ItYmctdGVydGlhcnkpIDIwJSwgdHJhbnNwYXJlbnQpO1xuICAtLWNvbG9yLWJnLXRlcnRpYXJ5LTMwOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWNvbG9yLWJnLXRlcnRpYXJ5KSAzMCUsIHRyYW5zcGFyZW50KTtcbiAgLS1jb2xvci1iZy10ZXJ0aWFyeS00MDogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1jb2xvci1iZy10ZXJ0aWFyeSkgNDAlLCB0cmFuc3BhcmVudCk7XG4gIC0tY29sb3ItYmctdGVydGlhcnktNTA6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tY29sb3ItYmctdGVydGlhcnkpIDUwJSwgdHJhbnNwYXJlbnQpO1xuICAtLWNvbG9yLWJnLXRlcnRpYXJ5LTgwOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWNvbG9yLWJnLXRlcnRpYXJ5KSA4MCUsIHRyYW5zcGFyZW50KTtcblxuICAvKiBUeXBvZ3JhcGh5ICovXG4gIC0tZm9udC1zYW5zOiBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIHNhbnMtc2VyaWY7XG4gIC0tZm9udC1tb25vOiBcIklCTSBQbGV4IE1vbm9cIiwgdWktbW9ub3NwYWNlLCBtb25vc3BhY2U7XG5cbiAgLyogU3BhY2luZyAqL1xuICAtLXNwLTE6IDAuMjVyZW07XG4gIC0tc3AtMjogMC41cmVtO1xuICAtLXNwLTM6IDAuNzVyZW07XG4gIC0tc3AtNDogMXJlbTtcbiAgLS1zcC01OiAxLjI1cmVtO1xuICAtLXNwLTY6IDEuNXJlbTtcbiAgLS1zcC04OiAycmVtO1xuXG4gIC8qIFJhZGlpICovXG4gIC0tcmFkaXVzLXNtOiAwLjI1cmVtO1xuICAtLXJhZGl1czogMC41cmVtO1xuICAtLXJhZGl1cy1sZzogMC43NXJlbTtcbiAgLS1yYWRpdXMteGw6IDFyZW07XG4gIC0tcmFkaXVzLWZ1bGw6IDk5OTlweDtcblxuICAvKiBMYXlvdXQgd2lkdGhzICovXG4gIC0tc2lkZWJhci13aWR0aDogMTRyZW07XG4gIC0tc2lkZWJhci1jb2xsYXBzZWQ6IDRyZW07XG4gIC0tZGV0YWlsLXNpZGViYXI6IDI0cmVtO1xuICAtLWRldGFpbC1zaWRlYmFyLXdpZGU6IDQycmVtO1xuICAtLWNvbnRhaW5lci1zbTogMjRyZW07XG4gIC0tY29udGFpbmVyLW1kOiAzMnJlbTtcbiAgLS1jb250YWluZXItbGc6IDQ4cmVtO1xuICAtLWNvbnRhaW5lci14bDogNTZyZW07XG4gIC0tY29udGFpbmVyLTJ4bDogNjRyZW07XG4gIC0tY29udGFpbmVyLTN4bDogNzJyZW07XG4gIC0tY29udGFpbmVyLTR4bDogODByZW07XG5cbiAgLyogU2hhZG93cyAqL1xuICAtLXNoYWRvdy1zbTogMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4wNSk7XG4gIC0tc2hhZG93OiAwIDRweCA2cHggLTFweCByZ2JhKDAsMCwwLDAuMSksIDAgMnB4IDRweCAtMnB4IHJnYmEoMCwwLDAsMC4xKTtcbiAgLS1zaGFkb3ctbGc6IDAgMTBweCAxNXB4IC0zcHggcmdiYSgwLDAsMCwwLjEpLCAwIDRweCA2cHggLTRweCByZ2JhKDAsMCwwLDAuMSk7XG5cbiAgLyogVHJhbnNpdGlvbnMgKi9cbiAgLS10cmFuc2l0aW9uLWZhc3Q6IDE1MG1zO1xuICAtLXRyYW5zaXRpb246IDIwMG1zO1xufVxuXG4vKiBEYXJrIHRoZW1lIG92ZXJyaWRlcyAqL1xuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIHtcbiAgLS1jb2xvci1wcmltYXJ5OiBva2xjaCg1OCUgMC4yMzMgMjc3LjExNyk7XG4gIC0tY29sb3ItcHJpbWFyeS1ob3Zlcjogb2tsY2goNjMlIDAuMjMzIDI3Ny4xMTcpO1xuICAtLWNvbG9yLWJnOiBva2xjaCgyNS4yNiUgMC4wMTQgMjUzLjEpO1xuICAtLWNvbG9yLWJnLXNlY29uZGFyeTogb2tsY2goMzAuMzMlIDAuMDE2IDI1Mi40Mik7XG4gIC0tY29sb3ItYmctdGVydGlhcnk6IG9rbGNoKDM1JSAwLjAxOCAyNTIpO1xuICAtLWNvbG9yLWZnOiBva2xjaCg5Ny44MDclIDAuMDI5IDI1Ni44NDcpO1xuICAtLWNvbG9yLWZnLW11dGVkOiBva2xjaCg3MCUgMC4wMiAyNTYuODQ3KTtcbiAgLS1jb2xvci1ib3JkZXI6IG9rbGNoKDM1JSAwLjAyIDI1NC4wOSk7XG4gIC0tY29sb3ItYm9yZGVyLWhvdmVyOiBva2xjaCg0NSUgMC4wMjUgMjU0LjA5KTtcbiAgLS1jb2xvci1zdWNjZXNzOiBva2xjaCg2MCUgMC4xMTggMTg0LjcwNCk7XG4gIC0tY29sb3Itc3VjY2Vzcy1iZzogb2tsY2goMzAlIDAuMDQgMTg0LjcwNCk7XG4gIC0tY29sb3Itd2FybmluZzogb2tsY2goNjYlIDAuMTc5IDU4LjMxOCk7XG4gIC0tY29sb3Itd2FybmluZy1iZzogb2tsY2goMzAlIDAuMDYgNTguMzE4KTtcbiAgLS1jb2xvci1lcnJvcjogb2tsY2goNTglIDAuMjUzIDE3LjU4NSk7XG4gIC0tY29sb3ItZXJyb3ItYmc6IG9rbGNoKDMwJSAwLjA4IDE3LjU4NSk7XG4gIC0tY29sb3ItaW5mbzogb2tsY2goNTglIDAuMTU4IDI0MS45NjYpO1xuICAtLWNvbG9yLWluZm8tYmc6IG9rbGNoKDMwJSAwLjA1IDI0MS45NjYpO1xuICAtLWNvbG9yLWNvbnNvbGUtYmc6IG9rbGNoKDEyJSAwLjAxIDI1Myk7XG4gIC0tY29sb3ItY29uc29sZS1mZzogb2tsY2goODUlIDAuMDIgMjUzKTtcbiAgLS1jb2xvci1jb25zb2xlLW11dGVkOiBva2xjaCg2MCUgMC4wMTUgMjUzKTtcblxuICAvKiBEYXJrIG1vZGUgc2hhZG93cyAtIHN0cm9uZ2VyIG9wYWNpdHkgZm9yIHZpc2liaWxpdHkgb24gZGFyayBiYWNrZ3JvdW5kcyAqL1xuICAtLXNoYWRvdy1zbTogMCAxcHggMnB4IHJnYmEoMCwwLDAsMC4zKTtcbiAgLS1zaGFkb3c6IDAgNHB4IDZweCAtMXB4IHJnYmEoMCwwLDAsMC40KSwgMCAycHggNHB4IC0ycHggcmdiYSgwLDAsMCwwLjMpO1xuICAtLXNoYWRvdy1sZzogMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsMCwwLDAuNCksIDAgNHB4IDZweCAtNHB4IHJnYmEoMCwwLDAsMC4zKTtcbn1cbiIsICIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVVRJTElUSUVTXG4gICBSZXVzYWJsZSB1dGlsaXR5IGNsYXNzZXMgZm9yIGNvbW1vbiBwYXR0ZXJucy5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIERpc3BsYXkgKi9cbi5oaWRkZW4geyBkaXNwbGF5OiBub25lOyB9XG4uYmxvY2sgeyBkaXNwbGF5OiBibG9jazsgfVxuLmlubGluZSB7IGRpc3BsYXk6IGlubGluZTsgfVxuLmlubGluZS1mbGV4IHsgZGlzcGxheTogaW5saW5lLWZsZXg7IH1cbi5ncmlkIHsgZGlzcGxheTogZ3JpZDsgfVxuXG4vKiBGbGV4Ym94ICovXG4uZmxleC0xLCAuc2lkZWJhci1zcGFjZXIgeyBmbGV4OiAxOyB9XG4uZmxleC0xLW1pbi0wIHsgZmxleDogMTsgbWluLXdpZHRoOiAwOyB9XG4uc2hyaW5rLTAgeyBmbGV4LXNocmluazogMDsgfVxuLmZsZXgtd3JhcCB7IGZsZXgtd3JhcDogd3JhcDsgfVxuLmhzdGFjayB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogdmFyKC0tc3AtMyk7IH1cbi52c3RhY2sgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IHZhcigtLXNwLTMpOyB9XG4uaXRlbXMtY2VudGVyIHsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuLml0ZW1zLXN0YXJ0IHsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cbi5pdGVtcy1lbmQgeyBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbi5pdGVtcy1iYXNlbGluZSB7IGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuLmp1c3RpZnktc3RhcnQgeyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbi5qdXN0aWZ5LWNlbnRlciB7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4uanVzdGlmeS1iZXR3ZWVuIHsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4uanVzdGlmeS1lbmQgeyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4uc2VsZi1lbmQgeyBhbGlnbi1zZWxmOiBmbGV4LWVuZDsgfVxuXG4vKiBHYXAgLSBudW1lcmljIHNjYWxlICovXG4uZ2FwLTEgeyBnYXA6IHZhcigtLXNwLTEpOyB9XG4uZ2FwLTIgeyBnYXA6IHZhcigtLXNwLTIpOyB9XG4uZ2FwLTMgeyBnYXA6IHZhcigtLXNwLTMpOyB9XG4uZ2FwLTQgeyBnYXA6IHZhcigtLXNwLTQpOyB9XG4uZ2FwLTUgeyBnYXA6IHZhcigtLXNwLTUpOyB9XG4uZ2FwLTYgeyBnYXA6IHZhcigtLXNwLTYpOyB9XG4vKiBHYXAgLSBzZW1hbnRpYyBhbGlhc2VzIChwcmVmZXIgbnVtZXJpYyBzY2FsZSBmb3IgbmV3IGNvZGUpICovXG4uZ2FwLXNtIHsgZ2FwOiB2YXIoLS1zcC0yKTsgfVxuLmdhcC1tZCB7IGdhcDogdmFyKC0tc3AtNCk7IH1cbi5nYXAtbGcgeyBnYXA6IHZhcigtLXNwLTYpOyB9XG5cbi8qIFdpZHRoL0hlaWdodCAqL1xuLnctZnVsbCB7IHdpZHRoOiAxMDAlOyB9XG4udy1jdXJyZW5jeSB7IHdpZHRoOiA1cmVtOyB9XG4ubWluLXctMCB7IG1pbi13aWR0aDogMDsgfVxuLm1heC13LXNtIHsgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXItc20pOyB9XG4ubWF4LXctbWQgeyBtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lci1tZCk7IH1cbi5tYXgtdy1sZyB7IG1heC13aWR0aDogdmFyKC0tY29udGFpbmVyLWxnKTsgfVxuLm1heC13LXhsIHsgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXIteGwpOyB9XG4ubWF4LXctMnhsIHsgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXItMnhsKTsgfVxuLm1heC13LTN4bCB7IG1heC13aWR0aDogdmFyKC0tY29udGFpbmVyLTN4bCk7IH1cbi5tYXgtdy00eGwgeyBtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lci00eGwpOyB9XG4uaC1mdWxsIHsgaGVpZ2h0OiAxMDAlOyB9XG4ubWluLWgtc2NyZWVuIHsgbWluLWhlaWdodDogMTAwdmg7IH1cblxuLyogTWFyZ2luICovXG4ubS0wIHsgbWFyZ2luOiAwOyB9XG4ubXgtYXV0byB7IG1hcmdpbi1sZWZ0OiBhdXRvOyBtYXJnaW4tcmlnaHQ6IGF1dG87IH1cbi5tdC0wIHsgbWFyZ2luLXRvcDogMDsgfVxuLm10LTEgeyBtYXJnaW4tdG9wOiB2YXIoLS1zcC0xKTsgfVxuLm10LTIgeyBtYXJnaW4tdG9wOiB2YXIoLS1zcC0yKTsgfVxuLm10LTMgeyBtYXJnaW4tdG9wOiB2YXIoLS1zcC0zKTsgfVxuLm10LTQgeyBtYXJnaW4tdG9wOiB2YXIoLS1zcC00KTsgfVxuLm10LTUgeyBtYXJnaW4tdG9wOiB2YXIoLS1zcC01KTsgfVxuLm10LTYgeyBtYXJnaW4tdG9wOiB2YXIoLS1zcC02KTsgfVxuLm10LTggeyBtYXJnaW4tdG9wOiB2YXIoLS1zcC04KTsgfVxuLm1iLTAgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG4ubWItMSB7IG1hcmdpbi1ib3R0b206IHZhcigtLXNwLTEpOyB9XG4ubWItMiB7IG1hcmdpbi1ib3R0b206IHZhcigtLXNwLTIpOyB9XG4ubWItMyB7IG1hcmdpbi1ib3R0b206IHZhcigtLXNwLTMpOyB9XG4ubWItNCB7IG1hcmdpbi1ib3R0b206IHZhcigtLXNwLTQpOyB9XG4ubWItNSB7IG1hcmdpbi1ib3R0b206IHZhcigtLXNwLTUpOyB9XG4ubWItNiB7IG1hcmdpbi1ib3R0b206IHZhcigtLXNwLTYpOyB9XG4ubWItOCB7IG1hcmdpbi1ib3R0b206IHZhcigtLXNwLTgpOyB9XG4ubWwtMSB7IG1hcmdpbi1sZWZ0OiB2YXIoLS1zcC0xKTsgfVxuLm1sLTIgeyBtYXJnaW4tbGVmdDogdmFyKC0tc3AtMik7IH1cbi5tbC0zIHsgbWFyZ2luLWxlZnQ6IHZhcigtLXNwLTMpOyB9XG4ubWwtNCB7IG1hcmdpbi1sZWZ0OiB2YXIoLS1zcC00KTsgfVxuLm1sLTYgeyBtYXJnaW4tbGVmdDogdmFyKC0tc3AtNik7IH1cbi5tci0xIHsgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcC0xKTsgfVxuLm1yLTIgeyBtYXJnaW4tcmlnaHQ6IHZhcigtLXNwLTIpOyB9XG5cbi8qIFBhZGRpbmcgKi9cbi5wLTAgeyBwYWRkaW5nOiAwOyB9XG4ucC0xIHsgcGFkZGluZzogdmFyKC0tc3AtMSk7IH1cbi5wLTIgeyBwYWRkaW5nOiB2YXIoLS1zcC0yKTsgfVxuLnAtMyB7IHBhZGRpbmc6IHZhcigtLXNwLTMpOyB9XG4ucC00IHsgcGFkZGluZzogdmFyKC0tc3AtNCk7IH1cbi5wLTYgeyBwYWRkaW5nOiB2YXIoLS1zcC02KTsgfVxuLnAtOCB7IHBhZGRpbmc6IHZhcigtLXNwLTgpOyB9XG4ucC1jb250ZW50IHsgcGFkZGluZzogMXJlbSAxLjVyZW07IH1cbi5weC0xIHsgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcC0xKTsgcGFkZGluZy1yaWdodDogdmFyKC0tc3AtMSk7IH1cbi5weC0yIHsgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcC0yKTsgcGFkZGluZy1yaWdodDogdmFyKC0tc3AtMik7IH1cbi5weC0zIHsgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcC0zKTsgcGFkZGluZy1yaWdodDogdmFyKC0tc3AtMyk7IH1cbi5weC00IHsgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcC00KTsgcGFkZGluZy1yaWdodDogdmFyKC0tc3AtNCk7IH1cbi5weC02IHsgcGFkZGluZy1sZWZ0OiB2YXIoLS1zcC02KTsgcGFkZGluZy1yaWdodDogdmFyKC0tc3AtNik7IH1cbi5weS0xIHsgcGFkZGluZy10b3A6IHZhcigtLXNwLTEpOyBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3AtMSk7IH1cbi5weS0yIHsgcGFkZGluZy10b3A6IHZhcigtLXNwLTIpOyBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3AtMik7IH1cbi5weS0zIHsgcGFkZGluZy10b3A6IHZhcigtLXNwLTMpOyBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3AtMyk7IH1cbi5weS00IHsgcGFkZGluZy10b3A6IHZhcigtLXNwLTQpOyBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3AtNCk7IH1cbi5wdC0xIHsgcGFkZGluZy10b3A6IHZhcigtLXNwLTEpOyB9XG4ucHQtMiB7IHBhZGRpbmctdG9wOiB2YXIoLS1zcC0yKTsgfVxuLnB0LTMgeyBwYWRkaW5nLXRvcDogdmFyKC0tc3AtMyk7IH1cbi5wdC00IHsgcGFkZGluZy10b3A6IHZhcigtLXNwLTQpOyB9XG4ucHQtNiB7IHBhZGRpbmctdG9wOiB2YXIoLS1zcC02KTsgfVxuLnBiLTEgeyBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3AtMSk7IH1cbi5wYi0yIHsgcGFkZGluZy1ib3R0b206IHZhcigtLXNwLTIpOyB9XG4ucGItMyB7IHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcC0zKTsgfVxuLnBiLTQgeyBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3AtNCk7IH1cbi5wYi1zYWZlIHsgcGFkZGluZy1ib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTsgfVxuLnB0LXNhZmUgeyBwYWRkaW5nLXRvcDogZW52KHNhZmUtYXJlYS1pbnNldC10b3ApOyB9XG4uc3BhY2UteS0yID4gKiArICogeyBtYXJnaW4tdG9wOiB2YXIoLS1zcC0yKTsgfVxuLnNwYWNlLXktMyA+ICogKyAqIHsgbWFyZ2luLXRvcDogdmFyKC0tc3AtMyk7IH1cbi5zcGFjZS15LTQgPiAqICsgKiB7IG1hcmdpbi10b3A6IHZhcigtLXNwLTQpOyB9XG4uc3BhY2UteS02ID4gKiArICogeyBtYXJnaW4tdG9wOiB2YXIoLS1zcC02KTsgfVxuXG4vKiBUeXBvZ3JhcGh5ICovXG4udGV4dC0yeHMgeyBmb250LXNpemU6IDAuNjI1cmVtOyB9XG4udGV4dC14cyB7IGZvbnQtc2l6ZTogMC43NXJlbTsgfVxuLnRleHQtc20geyBmb250LXNpemU6IDAuODc1cmVtOyB9XG4udGV4dC1iYXNlIHsgZm9udC1zaXplOiAxcmVtOyB9XG4udGV4dC1sZyB7IGZvbnQtc2l6ZTogMS4xMjVyZW07IH1cbi50ZXh0LXhsIHsgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4udGV4dC0yeGwgeyBmb250LXNpemU6IDEuNXJlbTsgfVxuLnRleHQtM3hsIHsgZm9udC1zaXplOiAxLjg3NXJlbTsgfVxuLnRleHQtNHhsIHsgZm9udC1zaXplOiAyLjI1cmVtOyB9XG4uZm9udC1tb25vIHsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IH1cbi5mb250LW5vcm1hbCB7IGZvbnQtd2VpZ2h0OiA0MDA7IH1cbi5mb250LW1lZGl1bSB7IGZvbnQtd2VpZ2h0OiA1MDA7IH1cbi5mb250LXNlbWlib2xkIHsgZm9udC13ZWlnaHQ6IDYwMDsgfVxuLmZvbnQtYm9sZCB7IGZvbnQtd2VpZ2h0OiA3MDA7IH1cbi50ZXh0LWxlZnQgeyB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4udGV4dC1jZW50ZXIgeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbi50ZXh0LXJpZ2h0IHsgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbi51cHBlcmNhc2UgeyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4uY2FwaXRhbGl6ZSB7IHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplOyB9XG4uaXRhbGljIHsgZm9udC1zdHlsZTogaXRhbGljOyB9XG4udW5kZXJsaW5lIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbi5uby11bmRlcmxpbmUgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbi5sZWFkaW5nLW5vbmUgeyBsaW5lLWhlaWdodDogMTsgfVxuLmxlYWRpbmctdGlnaHQgeyBsaW5lLWhlaWdodDogMS4yNTsgfVxuLmxlYWRpbmctc251ZyB7IGxpbmUtaGVpZ2h0OiAxLjM3NTsgfVxuLmxlYWRpbmctbm9ybWFsIHsgbGluZS1oZWlnaHQ6IDEuNTsgfVxuLmxlYWRpbmctcmVsYXhlZCB7IGxpbmUtaGVpZ2h0OiAxLjYyNTsgfVxuLnRyYWNraW5nLXRpZ2h0IHsgbGV0dGVyLXNwYWNpbmc6IC0wLjAyNWVtOyB9XG4udHJhY2tpbmctd2lkZSB7IGxldHRlci1zcGFjaW5nOiAwLjAyNWVtOyB9XG4udHJhY2tpbmctd2lkZXIgeyBsZXR0ZXItc3BhY2luZzogMC4wNWVtOyB9XG4udHJhY2tpbmctd2lkZXN0IHsgbGV0dGVyLXNwYWNpbmc6IDAuMWVtOyB9XG4ud2hpdGVzcGFjZS1ub3dyYXAgeyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4ud2hpdGVzcGFjZS1wcmUtd3JhcCB7IHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgfVxuLnRydW5jYXRlIHsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cblxuLyogQ29sb3JzICovXG4vKiBOT1RFOiAuY29sb3ItbXV0ZWQgaXMgZGVwcmVjYXRlZCwgcHJlZmVyIC50ZXh0LW11dGVkIGZvciBuZXcgY29kZSAqL1xuLmNvbG9yLW11dGVkLCAudGV4dC1tdXRlZCB7IGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7IH1cbi5jb2xvci1wcmltYXJ5IHsgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpOyB9XG4uY29sb3ItcHJpbWFyeS1tdXRlZCB7IGNvbG9yOiBjb2xvci1taXgoaW4gb2tsY2gsIHZhcigtLWNvbG9yLXByaW1hcnkpIDYwJSwgdHJhbnNwYXJlbnQpOyB9XG4uY29sb3Itc3VjY2VzcyB7IGNvbG9yOiB2YXIoLS1jb2xvci1zdWNjZXNzKTsgfVxuLmNvbG9yLXdhcm5pbmcgeyBjb2xvcjogdmFyKC0tY29sb3Itd2FybmluZyk7IH1cbi5jb2xvci1lcnJvciB7IGNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7IH1cbi5jb2xvci1pbmZvIHsgY29sb3I6IHZhcigtLWNvbG9yLWluZm8pOyB9XG5cbi8qIEJhY2tncm91bmRzIC0gdXNlIHRoZXNlIGZvciBjb25zaXN0ZW50IHRoZW1pbmcgKi9cbi5iZy1wcmltYXJ5IHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmcpOyB9XG4uYmctc2Vjb25kYXJ5IHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5KTsgfVxuLmJnLXRlcnRpYXJ5IHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctdGVydGlhcnkpOyB9XG5cbi8qIEljb25zICovXG4uaWNvbi14cyB7IHdpZHRoOiAwLjc1cmVtOyBoZWlnaHQ6IDAuNzVyZW07IH1cbi5pY29uLXNtIHsgd2lkdGg6IDFyZW07IGhlaWdodDogMXJlbTsgfVxuLmljb24tbWQgeyB3aWR0aDogMS4yNXJlbTsgaGVpZ2h0OiAxLjI1cmVtOyB9XG4uaWNvbi1sZyB7IHdpZHRoOiAxLjVyZW07IGhlaWdodDogMS41cmVtOyB9XG4uaWNvbi14bCB7IHdpZHRoOiAycmVtOyBoZWlnaHQ6IDJyZW07IH1cbi5pY29uLTJ4bCB7IHdpZHRoOiAzcmVtOyBoZWlnaHQ6IDNyZW07IH1cbi5pY29uLWh1Z2UgeyB3aWR0aDogMTIwcHg7IGhlaWdodDogMTIwcHg7IH1cblxuLyogR3JpZCBjb2x1bW5zICovXG4uY29sLTEgeyBncmlkLWNvbHVtbjogc3BhbiAxOyB9XG4uY29sLTIgeyBncmlkLWNvbHVtbjogc3BhbiAyOyB9XG4uY29sLTMgeyBncmlkLWNvbHVtbjogc3BhbiAzOyB9XG4uY29sLTQgeyBncmlkLWNvbHVtbjogc3BhbiA0OyB9XG4uY29sLTUgeyBncmlkLWNvbHVtbjogc3BhbiA1OyB9XG4uY29sLTYgeyBncmlkLWNvbHVtbjogc3BhbiA2OyB9XG4uY29sLTcgeyBncmlkLWNvbHVtbjogc3BhbiA3OyB9XG4uY29sLTggeyBncmlkLWNvbHVtbjogc3BhbiA4OyB9XG4uY29sLTkgeyBncmlkLWNvbHVtbjogc3BhbiA5OyB9XG4uY29sLTEwIHsgZ3JpZC1jb2x1bW46IHNwYW4gMTA7IH1cbi5jb2wtMTEgeyBncmlkLWNvbHVtbjogc3BhbiAxMTsgfVxuLmNvbC0xMiB7IGdyaWQtY29sdW1uOiBzcGFuIDEyOyB9XG5cbi8qIE92ZXJmbG93ICovXG4ub3ZlcmZsb3ctaGlkZGVuIHsgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuLm92ZXJmbG93LWF1dG8geyBvdmVyZmxvdzogYXV0bzsgfVxuLm92ZXJmbG93LXgtYXV0byB7IG92ZXJmbG93LXg6IGF1dG87IH1cbi5vdmVyZmxvdy15LWF1dG8geyBvdmVyZmxvdy15OiBhdXRvOyB9XG5cbi8qIFBvc2l0aW9uICovXG4ucmVsYXRpdmUgeyBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbi5hYnNvbHV0ZSB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuLmZpeGVkIHsgcG9zaXRpb246IGZpeGVkOyB9XG4uc3RpY2t5IHsgcG9zaXRpb246IHN0aWNreTsgfVxuLmluc2V0LTAgeyBpbnNldDogMDsgfVxuLnRvcC0wIHsgdG9wOiAwOyB9XG4ucmlnaHQtMCB7IHJpZ2h0OiAwOyB9XG4uYm90dG9tLTAgeyBib3R0b206IDA7IH1cbi5sZWZ0LTAgeyBsZWZ0OiAwOyB9XG5cbi8qIFotaW5kZXggKi9cbi56LTAgeyB6LWluZGV4OiAwOyB9XG4uei0xMCB7IHotaW5kZXg6IDEwOyB9XG4uei0yMCB7IHotaW5kZXg6IDIwOyB9XG4uei0zMCB7IHotaW5kZXg6IDMwOyB9XG4uei00MCB7IHotaW5kZXg6IDQwOyB9XG4uei01MCB7IHotaW5kZXg6IDUwOyB9XG5cbi8qIE9wYWNpdHkgKi9cbi5vcGFjaXR5LTAgeyBvcGFjaXR5OiAwOyB9XG4ub3BhY2l0eS0zMCB7IG9wYWNpdHk6IDAuMzsgfVxuLm9wYWNpdHktNTAgeyBvcGFjaXR5OiAwLjU7IH1cbi5vcGFjaXR5LTYwIHsgb3BhY2l0eTogMC42OyB9XG4ub3BhY2l0eS03MCB7IG9wYWNpdHk6IDAuNzsgfVxuLm9wYWNpdHktODAgeyBvcGFjaXR5OiAwLjg7IH1cblxuLyogQm9yZGVycyAqL1xuLmJvcmRlciB7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7IH1cbi5ib3JkZXItdCB7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpOyB9XG4uYm9yZGVyLWIgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTsgfVxuLmJvcmRlci1sIHsgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpOyB9XG4uYm9yZGVyLXIgeyBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpOyB9XG4uYm9yZGVyLWRhc2hlZCB7IGJvcmRlci1zdHlsZTogZGFzaGVkOyB9XG4ucm91bmRlZCB7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7IH1cbi5yb3VuZGVkLWxnIHsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTsgfVxuLnJvdW5kZWQtZnVsbCB7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mdWxsKTsgfVxuXG4vKiBDdXJzb3IgJiBJbnRlcmFjdGlvbiAqL1xuLmN1cnNvci1wb2ludGVyIHsgY3Vyc29yOiBwb2ludGVyOyB9XG4uY3Vyc29yLWRlZmF1bHQgeyBjdXJzb3I6IGRlZmF1bHQ7IH1cbi5jdXJzb3Itd2FpdCB7IGN1cnNvcjogd2FpdDsgfVxuLnBvaW50ZXItZXZlbnRzLW5vbmUgeyBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuLnNlbGVjdC1ub25lIHsgdXNlci1zZWxlY3Q6IG5vbmU7IH1cblxuLyogQWNjZXNzaWJpbGl0eSAqL1xuLnNyLW9ubHkgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAxcHg7IGhlaWdodDogMXB4OyBwYWRkaW5nOiAwOyBtYXJnaW46IC0xcHg7IG92ZXJmbG93OiBoaWRkZW47IGNsaXA6IHJlY3QoMCwwLDAsMCk7IHdoaXRlLXNwYWNlOiBub3dyYXA7IGJvcmRlcjogMDsgfVxuXG4vKiBGb2N1cyBSaW5nIFV0aWxpdGllc1xuICAgVXNlIHRoZXNlIGZvciBjb25zaXN0ZW50LCBhY2Nlc3NpYmxlIGZvY3VzIHN0YXRlcyBhY3Jvc3MgaW50ZXJhY3RpdmUgZWxlbWVudHMuXG4gICAuZm9jdXMtcmluZzogU3RhbmRhcmQgZm9jdXMgcmluZyB3aXRoIG9mZnNldCAoZm9yIGJ1dHRvbnMsIGxpbmtzKVxuICAgLmZvY3VzLXJpbmctaW5zZXQ6IEluc2V0IGZvY3VzIHJpbmcgKGZvciBpbnB1dHMsIGNhcmRzKVxuKi9cbi5mb2N1cy1yaW5nOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWNvbG9yLWJnKSwgMCAwIDAgNHB4IHZhcigtLWNvbG9yLXByaW1hcnkpO1xufVxuLmZvY3VzLXJpbmc6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uZm9jdXMtcmluZzpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWNvbG9yLWJnKSwgMCAwIDAgNHB4IHZhcigtLWNvbG9yLXByaW1hcnkpO1xufVxuXG4uZm9jdXMtcmluZy1pbnNldDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbn1cbi5mb2N1cy1yaW5nLWluc2V0OmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICBib3gtc2hhZG93OiBub25lO1xufVxuLmZvY3VzLXJpbmctaW5zZXQ6Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbn1cblxuLyogQW5pbWF0aW9uICovXG5Aa2V5ZnJhbWVzIHNwaW4geyBmcm9tIHsgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7IH0gdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH1cbkBrZXlmcmFtZXMgZmFkZS1pbiB7IGZyb20geyBvcGFjaXR5OiAwOyB9IHRvIHsgb3BhY2l0eTogMTsgfSB9XG5Aa2V5ZnJhbWVzIGZhZGUtb3V0IHsgZnJvbSB7IG9wYWNpdHk6IDE7IH0gdG8geyBvcGFjaXR5OiAwOyB9IH1cbkBrZXlmcmFtZXMgc2xpZGUtdXAgeyBmcm9tIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAuNXJlbSk7IG9wYWNpdHk6IDA7IH0gdG8geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IG9wYWNpdHk6IDE7IH0gfVxuQGtleWZyYW1lcyBwdWxzZSB7IDAlLCAxMDAlIHsgb3BhY2l0eTogMTsgfSA1MCUgeyBvcGFjaXR5OiAwLjU7IH0gfVxuXG4uc3BpbiB7IGFuaW1hdGlvbjogc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7IH1cbi5hbmltYXRlLXNwaW4geyBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlOyB9XG4uYW5pbWF0ZS1mYWRlLWluIHsgYW5pbWF0aW9uOiBmYWRlLWluIDAuMnMgZWFzZS1vdXQ7IH1cbi5hbmltYXRlLXNsaWRlLXVwIHsgYW5pbWF0aW9uOiBzbGlkZS11cCAwLjJzIGVhc2Utb3V0OyB9XG4uYW5pbWF0ZS1wdWxzZSB7IGFuaW1hdGlvbjogcHVsc2UgMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKSBpbmZpbml0ZTsgfVxuXG4vKiBSZWR1Y2VkIG1vdGlvbiBzdXBwb3J0ICovXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuc3BpbixcbiAgLmFuaW1hdGUtc3BpbixcbiAgLmFuaW1hdGUtZmFkZS1pbixcbiAgLmFuaW1hdGUtc2xpZGUtdXAsXG4gIC5hbmltYXRlLXB1bHNlIHtcbiAgICBhbmltYXRpb246IG5vbmU7XG4gIH1cblxuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjAxbXMgIWltcG9ydGFudDtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDAuMDFtcyAhaW1wb3J0YW50O1xuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDEgIWltcG9ydGFudDtcbiAgfVxufVxuIiwgIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDT01QT05FTlRTXG4gICBSZXVzYWJsZSBVSSBjb21wb25lbnQgc3R5bGVzLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIExBWU9VVFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmFwcC1zaGVsbCB7IGhlaWdodDogMTAwdmg7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IG92ZXJmbG93OiBoaWRkZW47IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnKTsgfVxuLmFwcC1zaGVsbC5tb25vc3BhY2UgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgfVxuLmFwcC1sYXlvdXQgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBmbGV4OiAxOyBtaW4taGVpZ2h0OiAwOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy1zZWNvbmRhcnkpOyB9XG4uYXBwLW1haW4geyBmbGV4OiAxOyBtaW4td2lkdGg6IDA7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbi5hcHAtY29udGVudCB7IGZsZXg6IDE7IG92ZXJmbG93LXk6IGF1dG87IG92ZXJmbG93LXg6IGhpZGRlbjsgcG9zaXRpb246IHJlbGF0aXZlOyBtaW4td2lkdGg6IDA7IHBhZGRpbmctYm90dG9tOiA4cmVtOyBwYWRkaW5nLXRvcDogdmFyKC0tc3AtMik7IH1cbi5jb250ZW50LWFyZWEgeyBmbGV4OiAxOyBwYWRkaW5nOiB2YXIoLS1zcC00KTsgbWFyZ2luLWJvdHRvbTogNHJlbTsgfVxuLnJvdyB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDEyLCAxZnIpOyBnYXA6IHZhcigtLXNwLTQpOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBTSURFQkFSXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uc2lkZWJhci1uYXYge1xuICBkaXNwbGF5OiBub25lO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IHZhcigtLXNwLTQpO1xuICBwYWRkaW5nOiB2YXIoLS1zcC00KSB2YXIoLS1zcC0zKTtcbiAgcGFkZGluZy10b3A6IGVudihzYWZlLWFyZWEtaW5zZXQtdG9wLCB2YXIoLS1zcC00KSk7XG4gIHBhZGRpbmctYm90dG9tOiBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwgdmFyKC0tc3AtNCkpO1xuICBmbGV4LXNocmluazogMDtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5KTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbiAgd2lkdGg6IHZhcigtLXNpZGViYXItd2lkdGgpO1xufVxuLnNpZGViYXItbmF2W2RhdGEtY29sbGFwc2VkPVwidHJ1ZVwiXSB7IHdpZHRoOiB2YXIoLS1zaWRlYmFyLWNvbGxhcHNlZCk7IHBhZGRpbmctbGVmdDogdmFyKC0tc3AtMik7IHBhZGRpbmctcmlnaHQ6IHZhcigtLXNwLTIpOyB9XG4uc2lkZWJhci1oZWFkZXIgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLXNwLTMpOyBwYWRkaW5nOiB2YXIoLS1zcC0yKTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBjb2xvcjogaW5oZXJpdDsgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpOyB9XG4uc2lkZWJhci1oZWFkZXI6aG92ZXIgeyBvcGFjaXR5OiAwLjg7IH1cbi5zaWRlYmFyLWxvZ28geyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgd2lkdGg6IDIuMjVyZW07IGhlaWdodDogMi4yNXJlbTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeSk7IGNvbG9yOiB3aGl0ZTsgZmxleC1zaHJpbms6IDA7IH1cbi5zaWRlYmFyLXRpdGxlIHsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWNvbG9yLWZnKTsgfVxuLnNpZGViYXItbmF2LWxpc3QgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDAuMjVyZW07IG1pbi1oZWlnaHQ6IDA7IGZsZXg6IDE7IG92ZXJmbG93LXk6IGF1dG87IG92ZXJmbG93LXg6IGhpZGRlbjsgfVxuLnNpZGViYXItZm9vdGVyIHsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7IHBhZGRpbmctdG9wOiB2YXIoLS1zcC0zKTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBwYWRkaW5nLWxlZnQ6IHZhcigtLXNwLTIpOyBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1zcC0yKTsgfVxuLnNpZGViYXItdmVyc2lvbiB7IGZvbnQtc2l6ZTogMC42MjVyZW07IGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7IG9wYWNpdHk6IDAuNDsgfVxuLnNpZGViYXItdG9nZ2xlLWJ0biB7IHBhZGRpbmc6IDAuMzc1cmVtOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpOyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiBub25lOyBjdXJzb3I6IHBvaW50ZXI7IHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSwgY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTsgfVxuLnNpZGViYXItdG9nZ2xlLWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWZnLTEwKTsgY29sb3I6IHZhcigtLWNvbG9yLWZnKTsgfVxuLnNpZGViYXItZm9vdGVyLWFjdGlvbnMgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLXNwLTEpOyB9XG4ubmF2LXNlY3Rpb24taGVhZGVyIHsgcGFkZGluZzogdmFyKC0tc3AtNCkgdmFyKC0tc3AtMikgdmFyKC0tc3AtMSk7IH1cbi5uYXYtc2VjdGlvbi1oZWFkZXI6Zmlyc3QtY2hpbGQgeyBwYWRkaW5nLXRvcDogMDsgfVxuLm5hdi1zZWN0aW9uLWhlYWRlciBzcGFuIHsgZm9udC1zaXplOiAwLjY4NzVyZW07IGZvbnQtd2VpZ2h0OiA2MDA7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAwLjA3NWVtOyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyBvcGFjaXR5OiAwLjQ7IH1cbi5uYXYtaXRlbS1saW5rIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiB2YXIoLS1zcC0zKTsgcGFkZGluZzogdmFyKC0tc3AtMikgdmFyKC0tc3AtMyk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7IHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSwgY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyB9XG4ubmF2LWl0ZW0tbGluazpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWZnLTEwKTsgY29sb3I6IHZhcigtLWNvbG9yLWZnKTsgfVxuLm5hdi1pdGVtLWxpbmsuYWN0aXZlIHsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWNvbG9yLWZnKTsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZmctMTApOyB9XG4ubmF2LWl0ZW0tbGluayAuaWNvbi1tZCB7IGZsZXgtc2hyaW5rOiAwOyB9XG4ubmF2LWl0ZW0tdGV4dCB7IGZvbnQtc2l6ZTogMC44NzVyZW07IH1cblxuLyogQ29sbGFwc2VkIHNpZGViYXIgLSBpY29uIHRvZ2dsZSAqL1xuLnNpZGViYXItbmF2IC5zaWRlYmFyLWV4cGFuZC1pY29uIHsgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBDb2xsYXBzZWQgc2lkZWJhciBzdGF0ZSAqL1xuLnNpZGViYXItbmF2W2RhdGEtY29sbGFwc2VkPVwidHJ1ZVwiXSB7XG4gIC8qIEhpZGUgdGV4dCBlbGVtZW50cyAqL1xuICAmIC5zaWRlYmFyLWxhYmVsLFxuICAmIC5uYXYtc2VjdGlvbi1oZWFkZXIsXG4gICYgLm5hdi1pdGVtLXRleHQsXG4gICYgLnNpZGViYXItY29sbGFwc2UtaWNvbiB7IGRpc3BsYXk6IG5vbmU7IH1cblxuICAvKiBTaG93IGV4cGFuZCBpY29uICovXG4gICYgLnNpZGViYXItZXhwYW5kLWljb24geyBkaXNwbGF5OiBibG9jazsgfVxuXG4gIC8qIENlbnRlciBsYXlvdXQgKi9cbiAgJiAuc2lkZWJhci1oZWFkZXIgeyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgcGFkZGluZzogMDsgfVxuICAmIC5zaWRlYmFyLWZvb3RlciB7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICYgLm5hdi1pdGVtLWxpbmsgeyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgcGFkZGluZzogdmFyKC0tc3AtMik7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4gIC8qIFRvb2x0aXAgb24gaG92ZXIgKi9cbiAgJiAubmF2LWl0ZW0tbGluazpob3Zlcjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IGF0dHIodGl0bGUpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAxMDAlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBtYXJnaW4tbGVmdDogMC43NXJlbTtcbiAgICBwYWRkaW5nOiAwLjM3NXJlbSAwLjc1cmVtO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWZnKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYmcpO1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTtcbiAgICB6LWluZGV4OiAxMDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIE1PQklMRSBOQVZcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5tb2JpbGUtbmF2IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy05MCk7XG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpO1xuICB6LWluZGV4OiA1MDtcbiAgcGFkZGluZy1ib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTtcbn1cbi5tb2JpbGUtbmF2LWlubmVyIHsgZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGhlaWdodDogNHJlbTsgcGFkZGluZzogMCB2YXIoLS1zcC0yKTsgfVxuLm1vYmlsZS1uYXYtaXRlbSB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMC4yNXJlbTsgcGFkZGluZzogdmFyKC0tc3AtMik7IHdpZHRoOiA0cmVtOyB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4ubW9iaWxlLW5hdi1pY29uIHsgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTsgfVxuLm1vYmlsZS1uYXYtaWNvbi1hY3RpdmUgeyBib3JkZXItcmFkaXVzOiAwLjc1cmVtOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5KTsgcGFkZGluZzogMC4yNXJlbSAwLjc1cmVtOyBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctc20pOyBjb2xvcjogd2hpdGU7IH1cbi5tb2JpbGUtbmF2LWxhYmVsIHsgZm9udC1zaXplOiAwLjU2MjVyZW07IGZvbnQtd2VpZ2h0OiA1MDA7IGxldHRlci1zcGFjaW5nOiAwLjFlbTsgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTsgfVxuLm1vYmlsZS1uYXYtbGFiZWwuYWN0aXZlIHsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLWNvbG9yLWZnKTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUEFHRSBIRUFERVJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5wYWdlLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgZ2FwOiB2YXIoLS1zcC0yKTtcbiAgbWluLWhlaWdodDogMi43NXJlbTtcbiAgcGFkZGluZzogdmFyKC0tc3AtMikgdmFyKC0tc3AtNCk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy1zZWNvbmRhcnktOTUpO1xuICBwb3NpdGlvbjogc3RpY2t5O1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDQwO1xuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5wYWdlLWhlYWRlci10aXRsZSB7IGZvbnQtc2l6ZTogMC44NzVyZW07IGZvbnQtd2VpZ2h0OiA2MDA7IGxldHRlci1zcGFjaW5nOiAwLjAyNWVtOyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGZsZXgtc2hyaW5rOiAwOyB9XG4ucGFnZS1oZWFkZXItdGl0bGU6aG92ZXIgeyBvcGFjaXR5OiAwLjg7IH1cbi5wYWdlLWhlYWRlci1zZWxlY3RvcnMgeyBkaXNwbGF5OiBub25lOyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLXNwLTMpOyBmbGV4LXNocmluazogMDsgfVxuLmJhY2stbGluayB7IHBhZGRpbmc6IDAuMjVyZW07IG1hcmdpbi1sZWZ0OiAtMC41cmVtOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7IH1cbi5iYWNrLWxpbms6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy1zZWNvbmRhcnkpOyB9XG5cbi8qIFNlY3Rpb24gSGVhZGVycyAqL1xuLnNlY3Rpb24taGVhZGVyIHsgcGFkZGluZy1ib3R0b206IHZhcigtLXNwLTQpOyB9XG4uc2VjdGlvbi1oZWFkZXIgaDEgeyBmb250LXNpemU6IDEuMTI1cmVtOyBmb250LXdlaWdodDogNjAwOyBsaW5lLWhlaWdodDogMS41OyBtYXJnaW46IDA7IH1cbi5zZWN0aW9uLWhlYWRlci53aXRoLWFjdGlvbnMgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGdhcDogdmFyKC0tc3AtNik7IH1cbi5zZWN0aW9uLWhlYWRlciAuc3VidGl0bGUgeyBmb250LXNpemU6IDAuODc1cmVtOyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyBtYXJnaW46IDA7IH1cbi5zZWN0aW9uLXRpdGxlIHsgZm9udC1zaXplOiAwLjc1cmVtOyBmb250LXdlaWdodDogNzAwOyBsZXR0ZXItc3BhY2luZzogMC4xZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IG1hcmdpbjogMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVEFCUyAmIFBJTExTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udGFiLXN0cmlwLCAuZmlsdGVyLXBpbGxzLCAuY3VzdG9tLWNvbW1hbmQtdGFicyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMnB4O1xuICBwYWRkaW5nOiAycHg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJvcmRlci0zMCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7XG4gIG92ZXJmbG93LXg6IGF1dG87XG59XG4uZmlsdGVyLXBpbGxzIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5KTsgZmxleC1zaHJpbms6IDA7IH1cbi5jdXN0b20tY29tbWFuZC10YWJzIHsgcGFkZGluZzogMC4xMjVyZW07IGdhcDogMC4xMjVyZW07IG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cblxuLnRhYi1pdGVtLCAuZmlsdGVyLXBpbGwsIC5jdXN0b20tY29tbWFuZC10YWIge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcC0yKTtcbiAgcGFkZGluZzogdmFyKC0tc3AtMikgdmFyKC0tc3AtMyk7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDI1ZW07XG4gIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tcmFkaXVzKSAtIDJweCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLCBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uZmlsdGVyLXBpbGwgeyBmb250LXdlaWdodDogNTAwOyB9XG4udGFiLWl0ZW06aG92ZXIsIC5maWx0ZXItcGlsbDpob3ZlciwgLmN1c3RvbS1jb21tYW5kLXRhYjpub3QoLmFjdGl2ZSk6aG92ZXIgeyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy01MCk7IH1cbi50YWItaXRlbS5hY3RpdmUsIC5maWx0ZXItcGlsbC5hY3RpdmUsIC5jdXN0b20tY29tbWFuZC10YWIuYWN0aXZlIHsgY29sb3I6IHZhcigtLWNvbG9yLWZnKTsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmcpOyBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctc20pOyB9XG4uZmlsdGVyLXBpbGwuYWN0aXZlLmJnLXN1Y2Nlc3MgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zdWNjZXNzKTsgY29sb3I6IHdoaXRlOyB9XG4uZmlsdGVyLXBpbGwuYWN0aXZlLmJnLXdhcm5pbmcgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci13YXJuaW5nKTsgY29sb3I6IHdoaXRlOyB9XG4uZmlsdGVyLXBpbGwuYWN0aXZlLmJnLWVycm9yIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZXJyb3IpOyBjb2xvcjogd2hpdGU7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEJBREdFU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogTW9kZXJuIGJhZGdlIHN5c3RlbSAoQkVNIG5hbWluZykgKi9cbi5iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMjVyZW07XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7XG59XG5cbi8qIEJhZGdlIHZhcmlhbnRzICovXG4uYmFkZ2UtcHJpbWFyeSB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktMjApOyBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7IH1cbi5iYWRnZS1zdWNjZXNzIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3VjY2Vzcy0yMCk7IGNvbG9yOiB2YXIoLS1jb2xvci1zdWNjZXNzKTsgfVxuLmJhZGdlLXdhcm5pbmcgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci13YXJuaW5nLTIwKTsgY29sb3I6IHZhcigtLWNvbG9yLXdhcm5pbmcpOyB9XG4uYmFkZ2UtZXJyb3IgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1lcnJvci0yMCk7IGNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7IH1cbi5iYWRnZS1tdXRlZCB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXNlY29uZGFyeSk7IGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7IH1cblxuLyogQmFkZ2Ugc2l6ZXMgKi9cbi5iYWRnZS1zbSB7IHBhZGRpbmc6IDAuMTI1cmVtIDAuMzc1cmVtOyBmb250LXNpemU6IDAuNjI1cmVtOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pOyB9XG5cbi8qIEJhZGdlIHV0aWxpdGllcyAqL1xuLmJhZGdlLW92ZXJkdWUgeyBtYXJnaW4tbGVmdDogMC41cmVtOyBmb250LXNpemU6IDAuNjI1cmVtOyBjb2xvcjogdmFyKC0tY29sb3ItZXJyb3IpOyBmb250LXdlaWdodDogNjAwOyB9XG4uYmFkZ2Utb3ZlcmR1ZS1pbmxpbmUgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgZm9udC1zaXplOiAwLjYyNXJlbTsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZXJyb3ItMjApOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pOyBjb2xvcjogdmFyKC0tY29sb3ItZXJyb3IpOyBwYWRkaW5nOiAwLjEyNXJlbSAwLjVyZW07IH1cbi50YWctb3ZlcmZsb3cgeyBmb250LXNpemU6IDAuNjI1cmVtOyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyBvcGFjaXR5OiAwLjU7IH1cbi50YWctcmVtb3ZlIHsgYmFja2dyb3VuZDogbm9uZTsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiAwOyBjdXJzb3I6IHBvaW50ZXI7IGNvbG9yOiBpbmhlcml0OyBvcGFjaXR5OiAwLjc7IHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTsgfVxuLnRhZy1yZW1vdmU6aG92ZXIgeyBvcGFjaXR5OiAxOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCVVRUT05TXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uaWNvbi1idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IHZhcigtLXNwLTIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LTEwKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlcjogbm9uZTtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG5cbiAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpOyBjb2xvcjogd2hpdGU7IH1cblxuICAmLm11dGVkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy10ZXJ0aWFyeS01MCk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTtcbiAgICAmOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctdGVydGlhcnktODApOyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyB9XG4gIH1cblxuICAmLmdob3N0IHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpO1xuICAgICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy10ZXJ0aWFyeSk7IGNvbG9yOiB2YXIoLS1jb2xvci1mZyk7IH1cbiAgfVxufVxuXG4uaWNvbi1idXR0b24tZGFuZ2VyOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZXJyb3ItMjApOyBjb2xvcjogdmFyKC0tY29sb3ItZXJyb3IpOyB9XG5cbi5mb3JtLWJ1dHRvbi1wcmltYXJ5LCAudXBsb2FkLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDAuNzVyZW07XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG4udXBsb2FkLWJ1dHRvbiB7IHdpZHRoOiAxMDAlOyBwYWRkaW5nOiAwLjc1cmVtIDFyZW07IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7IH1cbi5mb3JtLWJ1dHRvbi1wcmltYXJ5OmhvdmVyLCAudXBsb2FkLWJ1dHRvbjpob3ZlciB7IG9wYWNpdHk6IDAuOTsgfVxuXG4uZm9ybS1idXR0b24tc2Vjb25kYXJ5IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC41cmVtO1xuICBwYWRkaW5nOiAwLjM3NXJlbSAwLjc1cmVtO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbn1cbi5mb3JtLWJ1dHRvbi1zZWNvbmRhcnk6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy1zZWNvbmRhcnkpOyB9XG5cbi8qIEJ1dHRvbiB2YXJpYW50cyBmb3IgT2F0IFVJICovXG5idXR0b25bZGF0YS12YXJpYW50PVwic3VjY2Vzc1wiXSxcbi5idXR0b25bZGF0YS12YXJpYW50PVwic3VjY2Vzc1wiXSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXN1Y2Nlc3MpO1xuICBjb2xvcjogd2hpdGU7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3Itc3VjY2Vzcyk7XG59XG5idXR0b25bZGF0YS12YXJpYW50PVwic3VjY2Vzc1wiXTpob3Zlcixcbi5idXR0b25bZGF0YS12YXJpYW50PVwic3VjY2Vzc1wiXTpob3ZlciB7XG4gIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tY29sb3Itc3VjY2VzcykgODUlLCBibGFjayk7XG59XG5cbmJ1dHRvbltkYXRhLXZhcmlhbnQ9XCJ3YXJuaW5nXCJdLFxuLmJ1dHRvbltkYXRhLXZhcmlhbnQ9XCJ3YXJuaW5nXCJdIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itd2FybmluZyk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci13YXJuaW5nKTtcbn1cbmJ1dHRvbltkYXRhLXZhcmlhbnQ9XCJ3YXJuaW5nXCJdOmhvdmVyLFxuLmJ1dHRvbltkYXRhLXZhcmlhbnQ9XCJ3YXJuaW5nXCJdOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1jb2xvci13YXJuaW5nKSA4NSUsIGJsYWNrKTtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZPUk0gQ09NUE9ORU5UU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmZvcm0tZmllbGQtZ3JvdXAgeyBwYWRkaW5nOiAwLjc1cmVtOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy1zZWNvbmRhcnktNTApOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDAuNzVyZW07IH1cblxuLmZvcm0taW5wdXQsIC5mb3JtLXNlbGVjdCwgLmZvcm0tdGV4dGFyZWEge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXNlY29uZGFyeSk7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWZnKTtcbn1cbi5mb3JtLWlucHV0LCAuZm9ybS10ZXh0YXJlYSB7IG1hcmdpbi10b3A6IDAuMjVyZW07IH1cbi5mb3JtLXRleHRhcmVhIHsgcmVzaXplOiBub25lOyB9XG4uZm9ybS1zZWxlY3QgeyBjdXJzb3I6IHBvaW50ZXI7IH1cbi5mb3JtLWlucHV0OmZvY3VzLCAuZm9ybS1zZWxlY3Q6Zm9jdXMsIC5mb3JtLXRleHRhcmVhOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWNvbG9yLXByaW1hcnkpOyB9XG5cbi5mb3JtLWNoZWNrYm94LCAuZm9ybS1yYWRpbyB7IHdpZHRoOiAxcmVtOyBoZWlnaHQ6IDFyZW07IGFjY2VudC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7IH1cbi5mb3JtLWNoZWNrYm94IHsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTsgfVxuLmNoZWNrYm94LWxhYmVsLCAucmFkaW8tbGFiZWwgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAwLjVyZW07IGN1cnNvcjogcG9pbnRlcjsgZm9udC1zaXplOiAwLjg3NXJlbTsgfVxuLmNoZWNrYm94LWxhYmVsIHsgZGlzcGxheTogZmxleDsgcGFkZGluZzogMC43NXJlbTsgfVxuXG4vKiBSYWRpbyBidXR0b25zICovXG4ucmFkaW8ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICB3aWR0aDogMS4yNXJlbTtcbiAgaGVpZ2h0OiAxLjI1cmVtO1xuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5yYWRpbzpjaGVja2VkIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTsgfVxuLnJhZGlvOmNoZWNrZWQ6OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHdpZHRoOiAwLjVyZW07XG4gIGhlaWdodDogMC41cmVtO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xufVxuLnJhZGlvOmZvY3VzIHsgb3V0bGluZTogbm9uZTsgYm94LXNoYWRvdzogMCAwIDAgMnB4IHdoaXRlLCAwIDAgMCA0cHggdmFyKC0tY29sb3ItcHJpbWFyeSk7IH1cbi5yYWRpby1wcmltYXJ5OmNoZWNrZWQgeyBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpOyB9XG4ucmFkaW8tcHJpbWFyeTpjaGVja2VkOjphZnRlciB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpOyB9XG5cbi8qIENoZWNrYm94ZXMgKi9cbi5jaGVja2JveCB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIHdpZHRoOiAxLjI1cmVtO1xuICBoZWlnaHQ6IDEuMjVyZW07XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IDAuMjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jaGVja2JveDpjaGVja2VkIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeSk7IGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7IH1cbi5jaGVja2JveDpjaGVja2VkOjphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNDUlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gIHdpZHRoOiAwLjNyZW07XG4gIGhlaWdodDogMC41NXJlbTtcbiAgYm9yZGVyOiBzb2xpZCB3aGl0ZTtcbiAgYm9yZGVyLXdpZHRoOiAwIDJweCAycHggMDtcbn1cbi5jaGVja2JveDpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IGJveC1zaGFkb3c6IDAgMCAwIDJweCB3aGl0ZSwgMCAwIDAgNHB4IHZhcigtLWNvbG9yLXByaW1hcnkpOyB9XG4uY2hlY2tib3gtcHJpbWFyeTpjaGVja2VkIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeSk7IGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7IH1cblxuLmZvcm0td2FybmluZyB7IHBhZGRpbmc6IDAuNzVyZW07IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXdhcm5pbmctMjApOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci13YXJuaW5nLTMwKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsgY29sb3I6IHZhcigtLWNvbG9yLXdhcm5pbmcpOyBmb250LXNpemU6IDAuODc1cmVtOyB9XG4uZm9ybS1zZWN0aW9uIHsgcGFkZGluZzogdmFyKC0tc3AtNCk7IH1cbi5maWVsZC1sYWJlbCB7IGZvbnQtc2l6ZTogMC43NXJlbTsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDAuMWVtOyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyB9XG4ucmVhZG9ubHktdmFsdWUgeyBwYWRkaW5nOiB2YXIoLS1zcC0yKSB2YXIoLS1zcC0zKTsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsgZm9udC1zaXplOiAwLjg3NXJlbTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVEFCTEVTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uZGF0YS10YWJsZSB7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7IG92ZXJmbG93OiBoaWRkZW47IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnKTsgfVxuLmRhdGEtdGFibGUtaGVhZGVyIHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7XG4gIGdhcDogdmFyKC0tc3AtMik7XG4gIHBhZGRpbmc6IHZhcigtLXNwLTIpIHZhcigtLXNwLTQpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy1zZWNvbmRhcnkpO1xuICBmb250LXNpemU6IDAuNjI1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpO1xufVxuLmRhdGEtdGFibGUtaGVhZGVyLWNlbGwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNwLTEpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBmb250OiBpbmhlcml0O1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IGluaGVyaXQ7XG4gIGxldHRlci1zcGFjaW5nOiBpbmhlcml0O1xufVxuLmRhdGEtdGFibGUtaGVhZGVyLWNlbGwuc29ydGFibGUgeyBjdXJzb3I6IHBvaW50ZXI7IHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7IH1cbi5kYXRhLXRhYmxlLWhlYWRlci1jZWxsLnNvcnRhYmxlOmhvdmVyLCAuc29ydC1jb2x1bW4tYnRuOmhvdmVyLCAuc29ydC1jb2x1bW4tYnRuLmFjdGl2ZSB7IGNvbG9yOiB2YXIoLS1jb2xvci1mZyk7IH1cbi5kYXRhLXRhYmxlLWhlYWRlci1jZWxsLmFsaWduLXJpZ2h0IHsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuLmRhdGEtdGFibGUtaGVhZGVyLWNlbGwuYWxpZ24tY2VudGVyIHsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLmRhdGEtdGFibGUtcm93IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7XG4gIGdhcDogdmFyKC0tc3AtMik7XG4gIHBhZGRpbmc6IHZhcigtLXNwLTMpIHZhcigtLXNwLTQpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLTUwKTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmRhdGEtdGFibGUtcm93OmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5LTUwKTsgfVxuLmRhdGEtdGFibGUtZW1wdHkgeyBwYWRkaW5nOiB2YXIoLS1zcC04KSB2YXIoLS1zcC00KTsgdGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyB9XG4uZGF0YS10YWJsZS1mb290ZXIgeyBtYXJnaW4tdG9wOiB2YXIoLS1zcC00KTsgfVxuXG4uZGF0YS1saXN0IHsgbGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzogMDsgbWFyZ2luOiAwOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZyk7IH1cbi5kYXRhLWxpc3QgbGkgeyBwYWRkaW5nOiB2YXIoLS1zcC0zKSB2YXIoLS1zcC00KTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7IH1cbi5kYXRhLWxpc3QgbGk6bGFzdC1jaGlsZCB7IGJvcmRlci1ib3R0b206IG5vbmU7IH1cbi5kYXRhLWxpc3QgbGkgc3Ryb25nIHsgZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMC44NzVyZW07IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS1jb2xvci1mZyk7IG1hcmdpbi1ib3R0b206IDAuMTI1cmVtOyB9XG4uZGF0YS1saXN0IGxpIHNwYW4geyBmb250LXNpemU6IDAuODc1cmVtOyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyB9XG5cbnRhYmxlIHRyLmNsaWNrYWJsZSB7IGN1cnNvcjogcG9pbnRlcjsgfVxudGFibGUgdHIuY2xpY2thYmxlOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5KTsgfVxudGFibGUgLmFjdGlvbnMtY2VsbCB7IHdpZHRoOiAwOyB0ZXh0LWFsaWduOiByaWdodDsgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG4uc29ydC1jb2x1bW4tYnRuIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMC4yNXJlbTsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlcjogbm9uZTsgcGFkZGluZzogMDsgZm9udDogaW5oZXJpdDsgY29sb3I6IGluaGVyaXQ7IGN1cnNvcjogcG9pbnRlcjsgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTsgfVxuLmNsaWNrYWJsZS1yb3cge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbiAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJvcmRlci0zMCk7IH1cbiAgJi5zZWxlY3RlZCB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJvcmRlci00MCk7IH1cbn1cblxuLnJvdy1vdmVyZHVlIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZXJyb3ItNSk7IH1cblxuLnJvdy1mb3JtZXIge1xuICBvcGFjaXR5OiAwLjY7XG4gICY6aG92ZXIgeyBvcGFjaXR5OiAwLjg7IH1cbn1cblxuLyogUm93IGhpZ2hsaWdodCBhbmltYXRpb24gZm9yIHNhdmVkIGZlZWRiYWNrICovXG5Aa2V5ZnJhbWVzIHJvdy1oaWdobGlnaHQge1xuICAwJSB7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MtMjApOyB9XG4gIDEwMCUgeyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxufVxuLnJvdy1zYXZlZCB7XG4gIGFuaW1hdGlvbjogcm93LWhpZ2hsaWdodCAycyBlYXNlLW91dCBmb3J3YXJkcztcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENBUkRTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uc3RhdC1jYXJkIHsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmcpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpOyBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctc20pOyB9XG4uc3RhdC1jYXJkLWhlYWRlciB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3AtMik7IH1cbi5zdGF0LWNhcmQtbGFiZWwgeyBmb250LXNpemU6IDAuNjg3NXJlbTsgZm9udC13ZWlnaHQ6IDYwMDsgbGV0dGVyLXNwYWNpbmc6IDAuMDI1ZW07IGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7IH1cbi5zdGF0LWNhcmQtdmFsdWUge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWZnKTtcbiAgJi5zdWNjZXNzIHsgY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MpOyB9XG4gICYuZXJyb3IgeyBjb2xvcjogdmFyKC0tY29sb3ItZXJyb3IpOyB9XG4gICYucHJpbWFyeSB7IGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTsgfVxufVxuLnN0YXQtY2FyZC1zdWJ0aXRsZSB7IGZvbnQtc2l6ZTogMC43NXJlbTsgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTsgbWFyZ2luLXRvcDogdmFyKC0tc3AtMSk7IH1cbi5zdGF0LWNhcmQtZmVhdHVyZWQge1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpO1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tY29sb3ItcHJpbWFyeSkgMTAlLCB2YXIoLS1jb2xvci1iZykpLCB2YXIoLS1jb2xvci1wcmltYXJ5LTUpKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS0yMCk7XG59XG4ubWV0cmljcy1ncmlkIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IGdhcDogdmFyKC0tc3AtNCk7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEFMRVJUUyAmIEZMQVNIXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uYWxlcnQtZXJyb3IsIC5hbGVydC13YXJuaW5nLCAuYWxlcnQtc3VjY2VzcyB7IG1hcmdpbi1ib3R0b206IDFyZW07IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7IHBhZGRpbmc6IDAuNzVyZW0gMXJlbTsgfVxuLmFsZXJ0LWVycm9yIHsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZXJyb3ItMzApOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1lcnJvci0xMCk7IH1cbi5hbGVydC13YXJuaW5nIHsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3Itd2FybmluZy0zMCk7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXdhcm5pbmctMTApOyB9XG4uYWxlcnQtc3VjY2VzcyB7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXN1Y2Nlc3MtMzApOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zdWNjZXNzLTEwKTsgfVxuLmFsZXJ0LXN1Y2Nlc3MuZmFkZS1vdXQgeyBhbmltYXRpb246IGFsZXJ0LWZhZGUgM3MgZWFzZS1vdXQgZm9yd2FyZHM7IH1cbkBrZXlmcmFtZXMgYWxlcnQtZmFkZSB7IDAlLCA2MCUgeyBvcGFjaXR5OiAxOyB9IDEwMCUgeyBvcGFjaXR5OiAwOyBoZWlnaHQ6IDA7IHBhZGRpbmc6IDA7IG1hcmdpbjogMDsgb3ZlcmZsb3c6IGhpZGRlbjsgfSB9XG5cbi8qIElubGluZSBub3RpZmljYXRpb24gbWVzc2FnZXMgZm9yIGhlYWRlcnMgKi9cbi5pbmxpbmUtc3VjY2VzcywgLmlubGluZS1lcnJvciwgLmlubGluZS13YXJuaW5nLCAuaW5saW5lLWluZm8ge1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcC0xKTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgYW5pbWF0aW9uOiBpbmxpbmUtZmFkZSAzcyBlYXNlLW91dCBmb3J3YXJkcztcbn1cbi5pbmxpbmUtc3VjY2VzcyB7IGNvbG9yOiB2YXIoLS1jb2xvci1zdWNjZXNzKTsgfVxuLmlubGluZS1lcnJvciB7IGNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7IH1cbi5pbmxpbmUtd2FybmluZyB7IGNvbG9yOiB2YXIoLS1jb2xvci13YXJuaW5nKTsgfVxuLmlubGluZS1pbmZvIHsgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpOyB9XG5Aa2V5ZnJhbWVzIGlubGluZS1mYWRlIHsgMCUsIDcwJSB7IG9wYWNpdHk6IDE7IH0gMTAwJSB7IG9wYWNpdHk6IDA7IH0gfVxuXG4vKiBDb25uZWN0aW9uIHN0YXR1cyBiYW5uZXIgKi9cbi5jb25uZWN0aW9uLWJhbm5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IHZhcigtLXNwLTIpO1xuICBwYWRkaW5nOiB2YXIoLS1zcC0yKSB2YXIoLS1zcC00KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itd2FybmluZy0xMCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci13YXJuaW5nKTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXdhcm5pbmctMjApO1xufVxuLmNvbm5lY3Rpb24tYmFubmVyLmhpZGRlbiB7IGRpc3BsYXk6IG5vbmU7IH1cblxuLmFsZXJ0LWxpbmsgeyBtYXJnaW4tdG9wOiAwLjI1cmVtOyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAwLjI1cmVtOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAycHg7IH1cbi5lcnJvci1tZXNzYWdlIHsgcGFkZGluZzogMXJlbTsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZXJyb3ItMTApOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1lcnJvci0yMCk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7IGNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7IH1cbi5lcnJvci1jYXJkLXdyYXBwZXIgeyBwYWRkaW5nOiAwIHZhcigtLXNwLTQpOyB9XG4uZXJyb3ItY2FyZCB7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlci0zMCk7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXRlcnRpYXJ5LTEwKTsgcGFkZGluZzogdmFyKC0tc3AtOCk7IG1hcmdpbi1ib3R0b206IHZhcigtLXNwLTYpOyB9XG4uZXJyb3ItY2FyZCBoMiB7IGZvbnQtc2l6ZTogMS4yNXJlbTsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLWNvbG9yLWZnKTsgbWFyZ2luOiAwIDAgdmFyKC0tc3AtMik7IH1cbi5lcnJvci1jYXJkIC5lcnJvci1saW5rIHsgZGlzcGxheTogYmxvY2s7IGNvbG9yOiB2YXIoLS1jb2xvci1mZyk7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IGRvdHRlZDsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMXB4OyB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDJweDsgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3AtNCk7IHdvcmQtYnJlYWs6IGJyZWFrLWFsbDsgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTsgfVxuLmVycm9yLWNhcmQgLmVycm9yLWxpbms6aG92ZXIgeyBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7IH1cbi5lcnJvci1jYXJkIC5lcnJvci1saW5rIHNtYWxsIHsgZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMC43NXJlbTsgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTsgbWFyZ2luLXRvcDogMC4yNXJlbTsgfVxuLmVycm9yLWNhcmQgLmVycm9yLW1lc3NhZ2UgeyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcC00KTsgfVxuLmVycm9yLWNhcmQgLmVycm9yLWxvY2F0aW9uIHsgZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMC43NXJlbTsgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTsgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3AtNCk7IH1cbi5lcnJvci1jYXJkIC5zZXR0aW5ncy1saW5rIHsgY29sb3I6IHZhcigtLWNvbG9yLWZnKTsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbi8qIEZsYXNoIG5vdGlmaWNhdGlvbnMgLSBpbmxpbmUgYmFubmVycyAqL1xuLmZsYXNoLWdyb3VwIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuLmZsYXNoLWdyb3VwIFtyb2xlPVwiYWxlcnRcIl0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcC0yKTtcbiAgcGFkZGluZzogdmFyKC0tc3AtMikgdmFyKC0tc3AtNCk7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZDtcbiAgYW5pbWF0aW9uOiBpbmxpbmUtZmFkZSA1cyBlYXNlLW91dCBmb3J3YXJkcztcbn1cbi5mbGFzaC1ncm91cCBbcm9sZT1cImFsZXJ0XCJdIC5oc3RhY2sgeyBnYXA6IHZhcigtLXNwLTIpOyB9XG4uZmxhc2gtZ3JvdXAgW3JvbGU9XCJhbGVydFwiXSBidXR0b24geyBtYXJnaW4tbGVmdDogYXV0bzsgb3BhY2l0eTogMC43OyB9XG4uZmxhc2gtZ3JvdXAgW3JvbGU9XCJhbGVydFwiXSBidXR0b246aG92ZXIgeyBvcGFjaXR5OiAxOyB9XG4uZmxhc2gtZ3JvdXAgW2RhdGEtdmFyaWFudD1cInN1Y2Nlc3NcIl0geyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zdWNjZXNzLTEwKTsgY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MpOyBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MtMjApOyB9XG4uZmxhc2gtZ3JvdXAgW2RhdGEtdmFyaWFudD1cImVycm9yXCJdIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZXJyb3ItMTApOyBjb2xvcjogdmFyKC0tY29sb3ItZXJyb3IpOyBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWVycm9yLTIwKTsgfVxuLmZsYXNoLWdyb3VwIFtkYXRhLXZhcmlhbnQ9XCJ3YXJuaW5nXCJdIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itd2FybmluZy0xMCk7IGNvbG9yOiB2YXIoLS1jb2xvci13YXJuaW5nKTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci13YXJuaW5nLTIwKTsgfVxuLmZsYXNoLWdyb3VwIFtyb2xlPVwiYWxlcnRcIl06bm90KFtkYXRhLXZhcmlhbnRdKSB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktMTApOyBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7IGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS0yMCk7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFRIRU1FIFRPR0dMRVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnRoZW1lLXRvZ2dsZSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZ1bGwpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy1zZWNvbmRhcnkpOyBwYWRkaW5nOiAwLjI1cmVtOyBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctc20pOyB9XG4udGhlbWUtdG9nZ2xlLWluZGljYXRvciB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDAuMjVyZW0gMDsgd2lkdGg6IGNhbGMoMTAwJSAvIDMgLSAwLjEyNXJlbSk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mdWxsKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmcpOyBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctc20pOyBsZWZ0OiAwOyB0cmFuc2l0aW9uOiBsZWZ0IHZhcigtLXRyYW5zaXRpb24pOyB9XG5bZGF0YS10aGVtZT1cImxpZ2h0XCJdIC50aGVtZS10b2dnbGUtaW5kaWNhdG9yIHsgbGVmdDogY2FsYygxMDAlIC8gMyk7IH1cbltkYXRhLXRoZW1lPVwiZGFya1wiXSAudGhlbWUtdG9nZ2xlLWluZGljYXRvciB7IGxlZnQ6IGNhbGMoMTAwJSAqIDIgLyAzKTsgfVxuLnRoZW1lLXRvZ2dsZS1idG4geyBkaXNwbGF5OiBmbGV4OyB3aWR0aDogY2FsYygxMDAlIC8gMyk7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBwYWRkaW5nOiB2YXIoLS1zcC0yKTsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlcjogbm9uZTsgY3Vyc29yOiBwb2ludGVyOyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpOyBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7IH1cbi50aGVtZS10b2dnbGUtYnRuOmhvdmVyIHsgY29sb3I6IHZhcigtLWNvbG9yLWZnKTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTE9HSU5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5sb2dpbi1jb250YWluZXIgeyBtaW4taGVpZ2h0OiAxMDB2aDsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IHBhZGRpbmc6IHZhcigtLXNwLTQpOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZyk7IH1cbi5sb2dpbi1jYXJkLXdyYXBwZXIgeyB3aWR0aDogMTAwJTsgbWF4LXdpZHRoOiAyOHJlbTsgfVxuLmxvZ2luLWNhcmQgeyBwYWRkaW5nOiB2YXIoLS1zcC04KTsgfVxuLmxvZ2luLWhlYWRlciB7IHRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3AtOCk7IH1cbi5sb2dpbi1sb2dvIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IHdpZHRoOiA0cmVtOyBoZWlnaHQ6IDRyZW07IG1hcmdpbjogMCBhdXRvIHZhcigtLXNwLTQpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7IGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7IH1cbi5sb2dpbi1mb290ZXIgeyBtYXJnaW4tdG9wOiB2YXIoLS1zcC02KTsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBTS0VMRVRPTiBMT0FERVJTXG4gICBBbmltYXRlZCBwbGFjZWhvbGRlcnMgc2hvd24gd2hpbGUgY29udGVudCBpcyBsb2FkaW5nLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQGtleWZyYW1lcyBza2VsZXRvbi1wdWxzZSB7XG4gIDAlLCAxMDAlIHsgb3BhY2l0eTogMTsgfVxuICA1MCUgeyBvcGFjaXR5OiAwLjQ7IH1cbn1cblxuLnNrZWxldG9uIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTtcbiAgYW5pbWF0aW9uOiBza2VsZXRvbi1wdWxzZSAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG4uc2tlbGV0b24tdGV4dCB7XG4gIGhlaWdodDogMWVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pO1xufVxuXG4uc2tlbGV0b24tdGV4dC1zbSB7IGhlaWdodDogMC43NWVtOyB9XG4uc2tlbGV0b24tdGV4dC1sZyB7IGhlaWdodDogMS4yNWVtOyB9XG5cbi5za2VsZXRvbi1jaXJjbGUge1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbCk7XG59XG5cbi5za2VsZXRvbi1idXR0b24ge1xuICBoZWlnaHQ6IDIuMjVyZW07XG4gIG1pbi13aWR0aDogNXJlbTtcbn1cblxuLyogU2tlbGV0b24gdGFibGUgcm93ICovXG4uc2tlbGV0b24tcm93IHtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMTIsIDFmcik7XG4gIGdhcDogdmFyKC0tc3AtMik7XG4gIHBhZGRpbmc6IHZhcigtLXNwLTMpIHZhcigtLXNwLTQpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLTUwKTtcbn1cblxuLnNrZWxldG9uLWNlbGwge1xuICBoZWlnaHQ6IDFyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXNlY29uZGFyeSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7XG4gIGFuaW1hdGlvbjogc2tlbGV0b24tcHVsc2UgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLyogU3RhZ2dlciBhbmltYXRpb24gZm9yIG11bHRpcGxlIHNrZWxldG9uIHJvd3MgKi9cbi5za2VsZXRvbi1yb3cge1xuICAmOm50aC1jaGlsZCgxKSAuc2tlbGV0b24tY2VsbCB7IGFuaW1hdGlvbi1kZWxheTogMHM7IH1cbiAgJjpudGgtY2hpbGQoMikgLnNrZWxldG9uLWNlbGwgeyBhbmltYXRpb24tZGVsYXk6IDAuMXM7IH1cbiAgJjpudGgtY2hpbGQoMykgLnNrZWxldG9uLWNlbGwgeyBhbmltYXRpb24tZGVsYXk6IDAuMnM7IH1cbiAgJjpudGgtY2hpbGQoNCkgLnNrZWxldG9uLWNlbGwgeyBhbmltYXRpb24tZGVsYXk6IDAuM3M7IH1cbiAgJjpudGgtY2hpbGQoNSkgLnNrZWxldG9uLWNlbGwgeyBhbmltYXRpb24tZGVsYXk6IDAuNHM7IH1cbn1cblxuLyogU2tlbGV0b24gc3RhdCBjYXJkICovXG4uc2tlbGV0b24tc3RhdC1jYXJkIHtcbiAgcGFkZGluZzogdmFyKC0tc3AtNCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcblxuICAmIC5za2VsZXRvbi1sYWJlbCB7XG4gICAgaGVpZ2h0OiAwLjYyNXJlbTtcbiAgICB3aWR0aDogNDAlO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwLTIpO1xuICB9XG5cbiAgJiAuc2tlbGV0b24tdmFsdWUge1xuICAgIGhlaWdodDogMS41cmVtO1xuICAgIHdpZHRoOiA3MCU7XG4gIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEVOSEFOQ0VEIEVNUFRZIFNUQVRFU1xuICAgRnJpZW5kbHkgZW1wdHkgc3RhdGVzIHdpdGggaWxsdXN0cmF0aW9ucyBhbmQgY2xlYXIgQ1RBcy5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5lbXB0eS1zdGF0ZSB7XG4gIHBhZGRpbmc6IHZhcigtLXNwLTgpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtaW4taGVpZ2h0OiAxNnJlbTtcbn1cblxuLmVtcHR5LXN0YXRlLWljb24ge1xuICB3aWR0aDogNHJlbTtcbiAgaGVpZ2h0OiA0cmVtO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcC00KTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTtcbiAgb3BhY2l0eTogMC4zO1xufVxuXG4uZW1wdHktc3RhdGUtdGl0bGUge1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZmcpO1xuICBtYXJnaW46IDAgMCB2YXIoLS1zcC0yKTtcbn1cblxuLmVtcHR5LXN0YXRlLWRlc2NyaXB0aW9uIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTtcbiAgbWFyZ2luOiAwIDAgdmFyKC0tc3AtNCk7XG4gIG1heC13aWR0aDogMjRyZW07XG59XG5cbi5lbXB0eS1zdGF0ZS1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiB2YXIoLS1zcC0zKTtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLyogSWxsdXN0cmF0ZWQgZW1wdHkgc3RhdGUgd2l0aCBkZWNvcmF0aXZlIGJhY2tncm91bmQgKi9cbi5lbXB0eS1zdGF0ZS1pbGx1c3RyYXRlZCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDEzNWRlZyxcbiAgICB2YXIoLS1jb2xvci1iZy1zZWNvbmRhcnktNTApIDAlLFxuICAgIHZhcigtLWNvbG9yLWJnKSA1MCUsXG4gICAgdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5LTUwKSAxMDAlXG4gICk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gIGJvcmRlcjogMXB4IGRhc2hlZCB2YXIoLS1jb2xvci1ib3JkZXIpO1xufVxuXG4uZW1wdHktc3RhdGUtaWxsdXN0cmF0ZWQ6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOlxuICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMjAlIDgwJSwgdmFyKC0tY29sb3ItcHJpbWFyeS01KSAwJSwgdHJhbnNwYXJlbnQgMzAlKSxcbiAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDgwJSAyMCUsIHZhcigtLWNvbG9yLXN1Y2Nlc3MtNSkgMCUsIHRyYW5zcGFyZW50IDMwJSk7XG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgU1VDQ0VTUyBBTklNQVRJT05TXG4gICBWaXN1YWwgZmVlZGJhY2sgZm9yIGNvbXBsZXRlZCBhY3Rpb25zLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyogQ2hlY2ttYXJrIGFuaW1hdGlvbiAqL1xuQGtleWZyYW1lcyBjaGVja21hcmstZHJhdyB7XG4gIDAlIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDI0OyB9XG4gIDEwMCUgeyBzdHJva2UtZGFzaG9mZnNldDogMDsgfVxufVxuXG4uc3VjY2Vzcy1jaGVja21hcmsge1xuICB3aWR0aDogMS41cmVtO1xuICBoZWlnaHQ6IDEuNXJlbTtcbiAgc3Ryb2tlOiB2YXIoLS1jb2xvci1zdWNjZXNzKTtcbiAgc3Ryb2tlLXdpZHRoOiAyO1xuICBzdHJva2UtbGluZWNhcDogcm91bmQ7XG4gIHN0cm9rZS1saW5lam9pbjogcm91bmQ7XG4gIGZpbGw6IG5vbmU7XG4gIHN0cm9rZS1kYXNoYXJyYXk6IDI0O1xuICBzdHJva2UtZGFzaG9mZnNldDogMjQ7XG4gIGFuaW1hdGlvbjogY2hlY2ttYXJrLWRyYXcgMC4zcyBlYXNlLW91dCBmb3J3YXJkcztcbn1cblxuLyogQm91bmNlIGFuaW1hdGlvbiBmb3Igc3VjY2VzcyAqL1xuQGtleWZyYW1lcyBzdWNjZXNzLWJvdW5jZSB7XG4gIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICA1MCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH1cbn1cblxuLnN1Y2Nlc3MtYm91bmNlIHtcbiAgYW5pbWF0aW9uOiBzdWNjZXNzLWJvdW5jZSAwLjNzIGVhc2Utb3V0O1xufVxuXG4vKiBTdWNjZXNzIGZsYXNoIG92ZXJsYXkgKi9cbkBrZXlmcmFtZXMgc3VjY2Vzcy1mbGFzaCB7XG4gIDAlIHsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itc3VjY2Vzcy0yMCk7IH1cbiAgMTAwJSB7IGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG59XG5cbi5zdWNjZXNzLWZsYXNoIHtcbiAgYW5pbWF0aW9uOiBzdWNjZXNzLWZsYXNoIDAuNXMgZWFzZS1vdXQ7XG59XG5cbi8qIElubGluZSBzYXZlZCBpbmRpY2F0b3IgKi9cbi5zYXZlZC1pbmRpY2F0b3Ige1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcC0xKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MpO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBvcGFjaXR5OiAwO1xuICBhbmltYXRpb246IHNhdmVkLWZhZGUgMnMgZWFzZS1vdXQgZm9yd2FyZHM7XG59XG5cbkBrZXlmcmFtZXMgc2F2ZWQtZmFkZSB7XG4gIDAlIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDRweCk7IH1cbiAgMTAlIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG4gIDgwJSB7IG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7IG9wYWNpdHk6IDA7IH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEFDQ09VTlQgSU5ESUNBVE9SU1xuICAgVmlzdWFsIGluZGljYXRvcnMgZm9yIGFjY291bnQgdHlwZXMuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uYWNjb3VudC1pbmRpY2F0b3Ige1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcC0yKTtcbn1cblxuLmFjY291bnQtaW5kaWNhdG9yLWljb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDEuNXJlbTtcbiAgaGVpZ2h0OiAxLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uYWNjb3VudC1pbmRpY2F0b3ItaWNvbi5hc3NldHMgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LTEwKTsgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpOyB9XG4uYWNjb3VudC1pbmRpY2F0b3ItaWNvbi5saWFiaWxpdGllcyB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXdhcm5pbmctMTApOyBjb2xvcjogdmFyKC0tY29sb3Itd2FybmluZyk7IH1cbi5hY2NvdW50LWluZGljYXRvci1pY29uLmVxdWl0eSB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWluZm8tMTApOyBjb2xvcjogdmFyKC0tY29sb3ItaW5mbyk7IH1cbi5hY2NvdW50LWluZGljYXRvci1pY29uLmluY29tZSB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXN1Y2Nlc3MtMTApOyBjb2xvcjogdmFyKC0tY29sb3Itc3VjY2Vzcyk7IH1cbi5hY2NvdW50LWluZGljYXRvci1pY29uLmV4cGVuc2VzIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZXJyb3ItMTApOyBjb2xvcjogdmFyKC0tY29sb3ItZXJyb3IpOyB9XG5cbi5hY2NvdW50LWluZGljYXRvci1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1mZyk7XG59XG5cbi5hY2NvdW50LWluZGljYXRvci1sYWJlbC50cnVuY2F0ZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgU0VUVElOR1MgVE9PTCBMSU5LU1xuICAgUXVpY2sgYWNjZXNzIGxpbmtzIGluIHNldHRpbmdzIHBhZ2VzLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnNldHRpbmdzLXRvb2wtbGluayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBnYXA6IHZhcigtLXNwLTMpO1xuICBwYWRkaW5nOiB2YXIoLS1zcC00KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5KTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG5cbi5zZXR0aW5ncy10b29sLWxpbms6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy10ZXJ0aWFyeSk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS0zMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cblxuLnNldHRpbmdzLXRvb2wtaWNvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMi41cmVtO1xuICBoZWlnaHQ6IDIuNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS0xMCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5zZXR0aW5ncy10b29sLXRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC4xMjVyZW07XG59XG5cbi5zZXR0aW5ncy10b29sLWRlc2NyaXB0aW9uIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUkVEVUNFRCBNT1RJT04gU1VQUE9SVFxuICAgRGlzYWJsZSBhbmltYXRpb25zIGZvciB1c2VycyB3aG8gcHJlZmVyIHJlZHVjZWQgbW90aW9uLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgLnNrZWxldG9uLFxuICAuc2tlbGV0b24tY2VsbCB7IGFuaW1hdGlvbjogbm9uZTsgb3BhY2l0eTogMC43OyB9XG5cbiAgLnJvdy1zYXZlZCB7IGFuaW1hdGlvbjogbm9uZTsgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itc3VjY2Vzcy0yMCk7IH1cblxuICAuYWxlcnQtc3VjY2Vzcy5mYWRlLW91dCB7IGFuaW1hdGlvbjogbm9uZTsgfVxuXG4gIC5pbmxpbmUtc3VjY2VzcyB7IGFuaW1hdGlvbjogbm9uZTsgfVxuXG4gIC5zdWNjZXNzLWNoZWNrbWFyayB7IGFuaW1hdGlvbjogbm9uZTsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IH1cblxuICAuc3VjY2Vzcy1ib3VuY2UsXG4gIC5zdWNjZXNzLWZsYXNoIHsgYW5pbWF0aW9uOiBub25lOyB9XG5cbiAgLnNhdmVkLWluZGljYXRvciB7IGFuaW1hdGlvbjogbm9uZTsgb3BhY2l0eTogMTsgfVxuXG4gIC5vY3ItbG9hZGluZy1zcGlubmVyIHsgYW5pbWF0aW9uOiBub25lOyBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTsgfVxufVxuIiwgIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBTRVRUSU5HUyBTSURFQkFSIE5BVklHQVRJT05cbiAgIEdyb3VwZWQgY2F0ZWdvcnkgbmF2aWdhdGlvbiBmb3Igc2V0dGluZ3MgcGFnZS5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5zZXR0aW5ncy13aXRoLXNpZGViYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDA7XG4gIG1pbi1oZWlnaHQ6IDA7XG59XG5cbi5zZXR0aW5ncy1zaWRlYmFyLW5hdiB7XG4gIHdpZHRoOiAxNHJlbTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXNlY29uZGFyeSk7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmc6IHZhcigtLXNwLTQpIDA7XG59XG5cbi5zZXR0aW5ncy1zaWRlYmFyLWNhdGVnb3J5IHtcbiAgcGFkZGluZzogMCB2YXIoLS1zcC0yKTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3AtMyk7XG59XG5cbi5zZXR0aW5ncy1zaWRlYmFyLWNhdGVnb3J5Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uc2V0dGluZ3Mtc2lkZWJhci1jYXRlZ29yeS1oZWFkZXIge1xuICBwYWRkaW5nOiB2YXIoLS1zcC0yKSB2YXIoLS1zcC0zKTtcbiAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA3NWVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpO1xuICBvcGFjaXR5OiAwLjY7XG4gIG1hcmdpbjogMDtcbn1cblxuLnNldHRpbmdzLXNpZGViYXItaXRlbXMge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5zZXR0aW5ncy1zaWRlYmFyLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNwLTIpO1xuICBwYWRkaW5nOiB2YXIoLS1zcC0yKSB2YXIoLS1zcC0zKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLCBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uc2V0dGluZ3Mtc2lkZWJhci1pdGVtOmhvdmVyIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZmctMTApO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZmcpO1xufVxuXG4uc2V0dGluZ3Mtc2lkZWJhci1pdGVtOmZvY3VzLXZpc2libGUge1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tY29sb3ItcHJpbWFyeSk7XG59XG5cbi5zZXR0aW5ncy1zaWRlYmFyLWl0ZW0uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS0xMCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnNldHRpbmdzLXNpZGViYXItaXRlbSAuaWNvbi1zbSB7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBvcGFjaXR5OiAwLjg7XG59XG5cbi5zZXR0aW5ncy1zaWRlYmFyLWl0ZW0uYWN0aXZlIC5pY29uLXNtIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLnNldHRpbmdzLXNpZGViYXItY29udGVudCB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbiAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLyogU2V0dGluZ3MgdGFiIGhlYWRpbmdzIC0gZm9jdXNhYmxlIGZvciBwcm9ncmFtbWF0aWMgZm9jdXMgb25seSAqL1xuLnNldHRpbmdzLXRhYi1oZWFkaW5nOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLyogSGlkZSBzaWRlYmFyIG9uIG1vYmlsZSwgc2hvdyBib3R0b20gc2hlZXQgaW5zdGVhZCAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5zZXR0aW5ncy13aXRoLXNpZGViYXIge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cblxuICAuc2V0dGluZ3Mtc2lkZWJhci1uYXYge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuc2V0dGluZ3Mtc2lkZWJhci1jb250ZW50IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogNXJlbTsgLyogU3BhY2UgZm9yIGJvdHRvbSBzaGVldCBwaWxsICovXG4gIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFNFVFRJTkdTIE1PQklMRSBCT1RUT00gU0hFRVRcbiAgIE1vYmlsZSBuYXZpZ2F0aW9uIGZvciBzZXR0aW5ncyB1c2luZyBib3R0b20gc2hlZXQgcGF0dGVybi5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5zZXR0aW5ncy1tb2JpbGUtbmF2IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICB6LWluZGV4OiAxMDA7XG59XG5cbi8qIE9ubHkgc2hvdyBvbiBtb2JpbGUgd2hlbiBzaWRlYmFyIGlzIGVuYWJsZWQgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuc2V0dGluZ3Mtd2l0aC1zaWRlYmFyIC5zZXR0aW5ncy1tb2JpbGUtbmF2IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4vKiBDb2xsYXBzZWQgcGlsbCAqL1xuLnNldHRpbmdzLW1vYmlsZS1waWxsIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcC0xKTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IHZhcigtLXNwLTIpIHZhcigtLXNwLTQpO1xuICBwYWRkaW5nLWJvdHRvbTogY2FsYyh2YXIoLS1zcC0yKSArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnKTtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG5cbi5zZXR0aW5ncy1tb2JpbGUtcGlsbDpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXNlY29uZGFyeSk7XG59XG5cbi5zZXR0aW5ncy1tb2JpbGUtcGlsbC1kcmFnIHtcbiAgd2lkdGg6IDJyZW07XG4gIGhlaWdodDogMC4yNXJlbTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZ1bGwpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ib3JkZXIpO1xufVxuXG4uc2V0dGluZ3MtbW9iaWxlLXBpbGwtbGFiZWwge1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1mZyk7XG59XG5cbi5zZXR0aW5ncy1tb2JpbGUtcGlsbC1pY29uIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24pO1xufVxuXG4vKiBFeHBhbmRlZCBzdGF0ZSAtIHBpbGwgdHJhbnNmb3JtcyAqL1xuLnNldHRpbmdzLW1vYmlsZS1uYXZbZGF0YS1leHBhbmRlZD1cInRydWVcIl0gLnNldHRpbmdzLW1vYmlsZS1waWxsIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLnNldHRpbmdzLW1vYmlsZS1uYXZbZGF0YS1leHBhbmRlZD1cInRydWVcIl0gLnNldHRpbmdzLW1vYmlsZS1waWxsLWljb24ge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufVxuXG4vKiBCb3R0b20gc2hlZXQgKi9cbi5zZXR0aW5ncy1tb2JpbGUtc2hlZXQge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIG1heC1oZWlnaHQ6IDcwdmg7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnKTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gIGJveC1zaGFkb3c6IDAgLTRweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDAlKTtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24pO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uc2V0dGluZ3MtbW9iaWxlLW5hdltkYXRhLWV4cGFuZGVkPVwidHJ1ZVwiXSAuc2V0dGluZ3MtbW9iaWxlLXNoZWV0IHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4uc2V0dGluZ3MtbW9iaWxlLXNoZWV0LWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc3AtMik7XG4gIHBhZGRpbmc6IHZhcigtLXNwLTMpIHZhcigtLXNwLTQpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbiAgY3Vyc29yOiBncmFiO1xuICB0b3VjaC1hY3Rpb246IHBhbi15O1xufVxuXG4uc2V0dGluZ3MtbW9iaWxlLXNoZWV0LWRyYWcge1xuICB3aWR0aDogMi41cmVtO1xuICBoZWlnaHQ6IDAuMjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mdWxsKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYm9yZGVyKTtcbn1cblxuLnNldHRpbmdzLW1vYmlsZS1zaGVldC10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1mZyk7XG59XG5cbi5zZXR0aW5ncy1tb2JpbGUtc2hlZXQtbmF2IHtcbiAgZmxleDogMTtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgcGFkZGluZzogdmFyKC0tc3AtMikgMDtcbiAgcGFkZGluZy1ib3R0b206IGNhbGModmFyKC0tc3AtNCkgKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpO1xufVxuXG4uc2V0dGluZ3MtbW9iaWxlLWNhdGVnb3J5IHtcbiAgcGFkZGluZzogdmFyKC0tc3AtMikgdmFyKC0tc3AtNCk7XG59XG5cbi5zZXR0aW5ncy1tb2JpbGUtY2F0ZWdvcnktaGVhZGVyIHtcbiAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA3NWVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpO1xuICBvcGFjaXR5OiAwLjY7XG4gIG1hcmdpbjogMCAwIHZhcigtLXNwLTIpO1xuICBwYWRkaW5nOiAwIHZhcigtLXNwLTIpO1xufVxuXG4uc2V0dGluZ3MtbW9iaWxlLWl0ZW1zIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG4uc2V0dGluZ3MtbW9iaWxlLWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNwLTMpO1xuICBwYWRkaW5nOiB2YXIoLS1zcC0zKSB2YXIoLS1zcC0zKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTtcbiAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLCBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xufVxuXG4uc2V0dGluZ3MtbW9iaWxlLWl0ZW06aG92ZXIsXG4uc2V0dGluZ3MtbW9iaWxlLWl0ZW06YWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZmctMTApO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZmcpO1xufVxuXG4uc2V0dGluZ3MtbW9iaWxlLWl0ZW0uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeS0xMCk7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLyogQmFja2Ryb3AgKi9cbi5zZXR0aW5ncy1tb2JpbGUtYmFja2Ryb3Age1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGluc2V0OiAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uKSwgdmlzaWJpbGl0eSB2YXIoLS10cmFuc2l0aW9uKTtcbiAgei1pbmRleDogLTE7XG59XG5cbi5zZXR0aW5ncy1tb2JpbGUtbmF2W2RhdGEtZXhwYW5kZWQ9XCJ0cnVlXCJdIC5zZXR0aW5ncy1tb2JpbGUtYmFja2Ryb3Age1xuICBvcGFjaXR5OiAxO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuIiwgIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBQQUdFLVNQRUNJRklDIFNUWUxFU1xuICAgU3R5bGVzIGZvciBzcGVjaWZpYyBwYWdlcyBhbmQgZmVhdHVyZXMuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRklMVEVSU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmZpbHRlci1iYXIsIC5hZHZhbmNlZC1maWx0ZXJzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNwLTMpO1xuICBwYWRkaW5nOiB2YXIoLS1zcC0zKSB2YXIoLS1zcC00KTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXNlY29uZGFyeSk7XG59XG4uYWR2YW5jZWQtZmlsdGVycyB7IHBhZGRpbmc6IDAuNXJlbSAxcmVtOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy01MCk7IGdhcDogMC43NXJlbTsgfVxuLmFkdmFuY2VkLWZpbHRlcnMgLmZpbHRlci1sYWJlbCB7IGRpc3BsYXk6IGlubGluZTsgbWFyZ2luLWJvdHRvbTogMDsgfVxuLmFkdmFuY2VkLWZpbHRlcnMgLmhzdGFjayB7IGZsZXgtd3JhcDogbm93cmFwOyB9XG4uZmlsdGVyLWJhci1zZWFyY2ggeyB3aWR0aDogMTAwJTsgb3JkZXI6IDE7IH1cbi5maWx0ZXItYmFyLWZpbHRlcnMgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLXNwLTMpOyBvdmVyZmxvdy14OiBhdXRvOyBvcmRlcjogMjsgfVxuLmZpbHRlci1iYXItYWN0aW9ucyB7IG1hcmdpbi1sZWZ0OiBhdXRvOyBvcmRlcjogMzsgfVxuXG4uZmlsdGVyLXNlbGVjdCwgLmdyb3VwaW5nLXNlbGVjdCwgLmRhdGUtaW5wdXQge1xuICBwYWRkaW5nOiB2YXIoLS1zcC0yKSB2YXIoLS1zcC0zKTtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmcpO1xuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZmcpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLCBib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG4uZmlsdGVyLXNlbGVjdDpmb2N1cywgLmdyb3VwaW5nLXNlbGVjdDpmb2N1cywgLmRhdGUtaW5wdXQ6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tY29sb3ItcHJpbWFyeS0yMCk7XG59XG4uZmlsdGVyLXNlbGVjdDpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXNlY29uZGFyeSk7IH1cbi5ncm91cGluZy1zZWxlY3QgeyBwYWRkaW5nOiAwLjM3NXJlbSAwLjVyZW07IGZvbnQtc2l6ZTogMC43NXJlbTsgZm9udC13ZWlnaHQ6IDUwMDsgfVxuLmRhdGUtaW5wdXQgeyBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTsgZm9udC1zaXplOiAwLjc1cmVtOyB9XG5cbi5jbGVhci1maWx0ZXJzLWJ0biwgLmZpbHRlci1jbGVhci1saW5rIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiB2YXIoLS1zcC0xKSB2YXIoLS1zcC0yKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xufVxuLmZpbHRlci1jbGVhci1saW5rIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IHRleHQtdW5kZXJsaW5lLW9mZnNldDogMnB4OyB9XG4uY2xlYXItZmlsdGVycy1idG46aG92ZXIsIC5maWx0ZXItY2xlYXItbGluazpob3ZlciB7IGNvbG9yOiB2YXIoLS1jb2xvci1mZyk7IH1cblxuLmZpbHRlci1jb3VudC1iYWRnZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWluLXdpZHRoOiAxLjI1cmVtO1xuICBoZWlnaHQ6IDEuMjVyZW07XG4gIHBhZGRpbmc6IDAgMC4zNzVyZW07XG4gIGZvbnQtc2l6ZTogMC42MjVyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mdWxsKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLmZpbHRlci1tZW51LWNhcmQge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcC00KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctODApO1xuICBwYWRkaW5nOiB2YXIoLS1zcC00KTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LXNtKTtcbn1cbi5maWx0ZXItbWVudS1ncmlkIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IGdhcDogdmFyKC0tc3AtMyk7IH1cbi5maWx0ZXItbWVudS1sYWJlbCwgLmZpbHRlci1sYWJlbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xuICBwYWRkaW5nLWxlZnQ6IDAuMTI1cmVtO1xuICBmb250LXNpemU6IDAuNjI1cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4xZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uZmlsdGVyLW1lbnUtY2FyZCBpbnB1dCwgLmZpbHRlci1tZW51LWNhcmQgc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IHZhcigtLXNwLTIpIHZhcigtLXNwLTMpO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWZnKTtcbn1cbi5maWx0ZXItbWVudS1jYXJkIGlucHV0OmZvY3VzLCAuZmlsdGVyLW1lbnUtY2FyZCBzZWxlY3Q6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tY29sb3ItcHJpbWFyeS0yMCk7XG59XG4uZmlsdGVyLW1lbnUtZm9vdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcC0zKTtcbiAgcGFkZGluZy10b3A6IHZhcigtLXNwLTMpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbn1cbi5maWx0ZXItc3VtbWFyeS10ZXh0LCAuZmlsdGVyLXN1bW1hcnkgeyBmb250LXNpemU6IDAuNzVyZW07IGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7IG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4uZmlsdGVyLWRhdGUtcmFuZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbn1cbi5maWx0ZXItZGF0ZS1yYW5nZSBpbnB1dFt0eXBlPVwiZGF0ZVwiXSB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbn1cbi5maWx0ZXItZGF0ZS1zZXBhcmF0b3Ige1xuICBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmbGV4LXNocmluazogMDtcbn1cbi5maWx0ZXItZGF0ZS1oaW50IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbn1cbi5maWx0ZXItcGVyaW9kLWZvcm0ge1xuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG59XG5cbi8qIFNlYXJjaCBJbnB1dCAqL1xuLnNlYXJjaC1pbnB1dC13cmFwcGVyIHsgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4uc2VhcmNoLWlucHV0LWljb24geyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IHZhcigtLXNwLTMpOyB0b3A6IDUwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuLnNlYXJjaC1pbnB1dCB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiB2YXIoLS1zcC0yKSB2YXIoLS1zcC0zKSB2YXIoLS1zcC0yKSAyLjI1cmVtO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7XG59XG4uc2VhcmNoLWlucHV0OmZvY3VzIHsgb3V0bGluZTogbm9uZTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTsgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWNvbG9yLXByaW1hcnktMjApOyB9XG4uc2VhcmNoLWlucHV0OjpwbGFjZWhvbGRlciB7IGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7IH1cblxuLyogU2VsZWN0b3JzICovXG4ucm9sZS1zZWxlY3RvciwgLnByb2plY3Qtc3dpdGNoZXIsIC5ncm91cGluZy1zZWxlY3RvciwgLmxhbmd1YWdlLXNlbGVjdG9yIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zcC0yKTtcbiAgcGFkZGluZzogdmFyKC0tc3AtMikgdmFyKC0tc3AtMyk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJvcmRlci0zMCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7XG59XG4uZ3JvdXBpbmctc2VsZWN0b3IgeyBnYXA6IDAuMjVyZW07IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXNlY29uZGFyeSk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7IHBhZGRpbmc6IDAuMjVyZW07IH1cbi5sYW5ndWFnZS1zZWxlY3RvciB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXNlY29uZGFyeSk7IHBhZGRpbmc6IDAuMzc1cmVtIHZhcigtLXNwLTMpOyB9XG4ucm9sZS1zZWxlY3RvciBzZWxlY3QsIC5sYW5ndWFnZS1zZWxlY3RvciBzZWxlY3QgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiBub25lOyBmb250LXNpemU6IDAuODc1cmVtOyBmb250LXdlaWdodDogNTAwOyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyBvdXRsaW5lOiBub25lOyB9XG4ucm9sZS1zZWxlY3RvciBzZWxlY3QgeyBjdXJzb3I6IGRlZmF1bHQ7IH1cbi5sYW5ndWFnZS1zZWxlY3RvciBzZWxlY3QgeyBjdXJzb3I6IHBvaW50ZXI7IH1cbi5wcm9qZWN0LXN3aXRjaGVyIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7IH1cbi5wcm9qZWN0LXN3aXRjaGVyOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYm9yZGVyKTsgfVxuLnByb2plY3Qtc3dpdGNoZXIgc3BhbiB7IGZvbnQtc2l6ZTogMC44NzVyZW07IGZvbnQtd2VpZ2h0OiA1MDA7IH1cbi5ncm91cGluZy1sYWJlbCB7IHBhZGRpbmc6IDAgMC41cmVtOyBmb250LXNpemU6IDAuNzVyZW07IGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7IH1cbi5sYW5ndWFnZS1zZWxlY3Rvci1pY29uIHsgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgREVUQUlMIFBBR0VTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uZGV0YWlsLWxheW91dCB7IGZsZXg6IDE7IGRpc3BsYXk6IGZsZXg7IG92ZXJmbG93OiBoaWRkZW47IH1cbi5kZXRhaWwtc2lkZWJhciB7IHdpZHRoOiB2YXIoLS1kZXRhaWwtc2lkZWJhcik7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7IHBhZGRpbmc6IDEuNXJlbTsgb3ZlcmZsb3cteTogYXV0bzsgZmxleC1zaHJpbms6IDA7IH1cbi5kZXRhaWwtc2lkZWJhci13aWRlIHsgd2lkdGg6IGF1dG87IGZsZXg6IDE7IG1heC13aWR0aDogdmFyKC0tZGV0YWlsLXNpZGViYXItd2lkZSk7IH1cbi5kZXRhaWwtcHJldmlldyB7IGZsZXg6IDE7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXNlY29uZGFyeSk7IHBhZGRpbmc6IDEuNXJlbTsgb3ZlcmZsb3cteTogYXV0bzsgfVxuLmRldGFpbC1jb250YWluZXIgeyBtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lci14bCk7IG1hcmdpbjogMCBhdXRvOyB9XG4uZGV0YWlsLXNlY3Rpb24geyBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcC02KTsgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93KTsgfVxuLmRldGFpbC1zZWN0aW9uLWhlYWRlciB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3AtNCk7IH1cbi5kZXRhaWwtc2VjdGlvbi10aXRsZSB7IGZvbnQtc2l6ZTogMC44NzVyZW07IGZvbnQtd2VpZ2h0OiA2MDA7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAwLjFlbTsgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTsgbWFyZ2luOiAwOyB9XG4uZGV0YWlsLWZpZWxkIHsgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3AtMyk7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogdmFyKC0tc3AtMSk7IH1cbi5kZXRhaWwtZmllbGQtbGFiZWwgeyBmb250LXNpemU6IDAuNjI1cmVtOyBmb250LXdlaWdodDogNjAwOyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogMC4xZW07IGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7IG1hcmdpbi1ib3R0b206IHZhcigtLXNwLTEpOyB9XG4uZGV0YWlsLWZpZWxkLXZhbHVlIHsgZm9udC1zaXplOiAwLjg3NXJlbTsgY29sb3I6IHZhcigtLWNvbG9yLWZnKTsgfVxuLmRldGFpbC1maWVsZCBkdCB7IGZvbnQtc2l6ZTogMC43NXJlbTsgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTsgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTsgfVxuLmRldGFpbC1maWVsZCBkZCB7IGZvbnQtc2l6ZTogMC44NzVyZW07IGNvbG9yOiB2YXIoLS1jb2xvci1mZyk7IG1hcmdpbjogMDsgfVxuLmRldGFpbC1ncmlkIHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMDBweCwgMWZyKSk7IGdhcDogdmFyKC0tc3AtNCk7IH1cbi5kZXRhaWwtZ3JpZC5jb2xzLTQgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBBTU9VTlRTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uYW1vdW50LWxhcmdlIHsgZm9udC1zaXplOiAxLjVyZW07IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXdlaWdodDogNzAwOyB9XG4uYW1vdW50LXNlY29uZGFyeSB7IGZvbnQtc2l6ZTogMXJlbTsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTsgfVxuLmFtb3VudC1pbmNvbWUgeyBmb250LXdlaWdodDogNTAwOyBjb2xvcjogdmFyKC0tY29sb3Itc3VjY2Vzcyk7IH1cbi5hbW91bnQtZXhwZW5zZSB7IGZvbnQtd2VpZ2h0OiA1MDA7IGNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7IH1cbi5hbW91bnQtd2FybmluZyB7IGZvbnQtd2VpZ2h0OiA1MDA7IGNvbG9yOiB2YXIoLS1jb2xvci13YXJuaW5nKTsgfVxuLnRleHQtb3ZlcmR1ZSB7IGNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7IGZvbnQtd2VpZ2h0OiA1MDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFRSQU5TQUNUSU9OU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnRyYW5zYWN0aW9uLWl0ZW0geyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IHBhZGRpbmc6IHZhcigtLXNwLTMpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItNTApOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiBpbmhlcml0OyB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7IH1cbi50cmFuc2FjdGlvbi1pdGVtOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5KTsgfVxuLnRyYW5zYWN0aW9uLWljb24geyB3aWR0aDogMi41cmVtOyBoZWlnaHQ6IDIuNXJlbTsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LTEwKTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGZsZXgtc2hyaW5rOiAwOyB9XG4udHJhbnNhY3Rpb24tZGV0YWlscyB7IGZsZXg6IDE7IG1pbi13aWR0aDogMDsgbWFyZ2luLWxlZnQ6IHZhcigtLXNwLTMpOyB9XG4udHJhbnNhY3Rpb24tcGF5ZWUgeyBmb250LXdlaWdodDogNTAwOyBmb250LXNpemU6IDAuODc1cmVtOyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuLnRyYW5zYWN0aW9uLW1ldGEgeyBmb250LXNpemU6IDAuNzVyZW07IGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7IH1cbi50cmFuc2FjdGlvbi1hbW91bnQgeyBmb250LXNpemU6IDAuODc1cmVtOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWNvbG9yLWZnKTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQVRUQUNITUVOVFNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5hdHRhY2htZW50LWxpbmssIC5hdHRhY2htZW50LWVtcHR5LCAuYXR0YWNobWVudC13YXJuaW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjVyZW07XG4gIHBhZGRpbmc6IDAuNXJlbSAwLjc1cmVtO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksIGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBib3JkZXI6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmF0dGFjaG1lbnQtbGluayB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXN1Y2Nlc3MtMjApOyBjb2xvcjogdmFyKC0tY29sb3Itc3VjY2Vzcyk7IH1cbi5hdHRhY2htZW50LWxpbms6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zdWNjZXNzLTMwKTsgfVxuLmF0dGFjaG1lbnQtbGluay5hY3RpdmUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LTIwKTsgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpOyB9XG4uYXR0YWNobWVudC1lbXB0eSB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy1zZWNvbmRhcnkpOyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyBjdXJzb3I6IGRlZmF1bHQ7IH1cbi5hdHRhY2htZW50LXdhcm5pbmcgeyBkaXNwbGF5OiBpbmxpbmUtZmxleDsgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itd2FybmluZy0yMCk7IGNvbG9yOiB2YXIoLS1jb2xvci13YXJuaW5nKTsgY3Vyc29yOiBkZWZhdWx0OyB9XG4uYXR0YWNobWVudC1yb3csIC5wb3N0aW5nLXJvdyB7IGRpc3BsYXk6IGZsZXg7IGdhcDogdmFyKC0tc3AtMyk7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IHBhZGRpbmc6IHZhcigtLXNwLTMpOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy1zZWNvbmRhcnkpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOyB9XG4ucG9zdGluZy1yb3cgeyBwYWRkaW5nOiB2YXIoLS1zcC0yKSB2YXIoLS1zcC0zKTsgfVxuXG4vKiBDdXJyZW50L1N0YWdlZCBBdHRhY2htZW50cyAqL1xuLmN1cnJlbnQtYXR0YWNobWVudC1pdGVtLCAuc3RhZ2VkLWZpbGUtaXRlbSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgcGFkZGluZzogMC43NXJlbTsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmcpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpOyB9XG4uY3VycmVudC1hdHRhY2htZW50LWluZm8sIC5zdGFnZWQtZmlsZS1pbmZvIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAwLjc1cmVtOyBtaW4td2lkdGg6IDA7IH1cbi5jdXJyZW50LWF0dGFjaG1lbnQtZGV0YWlscyB7IG1pbi13aWR0aDogMDsgfVxuLmN1cnJlbnQtYXR0YWNobWVudC1uYW1lLCAuc3RhZ2VkLWZpbGUtbmFtZSB7IGZvbnQtc2l6ZTogMC44NzVyZW07IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB3aGl0ZS1zcGFjZTogbm93cmFwOyBkaXNwbGF5OiBibG9jazsgfVxuLmN1cnJlbnQtYXR0YWNobWVudC12aWV3IHsgZm9udC1zaXplOiAwLjYyNXJlbTsgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbi5jdXJyZW50LWF0dGFjaG1lbnQtdmlldzpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4uY3VycmVudC1hdHRhY2htZW50LXJlbW92ZSwgLnN0YWdlZC1maWxlLXJlbW92ZSB7IHBhZGRpbmc6IDAuMzc1cmVtOyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiBub25lOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOyBjdXJzb3I6IHBvaW50ZXI7IGZsZXgtc2hyaW5rOiAwOyB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksIGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7IH1cbi5zdGFnZWQtZmlsZS1yZW1vdmUgeyBwYWRkaW5nOiAwLjI1cmVtOyB9XG4uY3VycmVudC1hdHRhY2htZW50LXJlbW92ZTpob3ZlciwgLnN0YWdlZC1maWxlLXJlbW92ZTpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWVycm9yLTIwKTsgY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVVBMT0FEL0RST1BaT05FXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4udXBsb2FkLWRyb3B6b25lLCAuZmlsZXMtdXBsb2FkLWRyb3B6b25lIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IHZhcigtLXNwLTQpO1xuICBib3JkZXI6IDJweCBkYXNoZWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5KTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbiksIGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbik7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5maWxlcy11cGxvYWQtZHJvcHpvbmUgeyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOyBwYWRkaW5nOiAxcmVtOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy1zZWNvbmRhcnktNTApOyBtYXJnaW4tYm90dG9tOiAwLjc1cmVtOyB9XG4udXBsb2FkLWRyb3B6b25lOmhvdmVyLCAuZmlsZXMtdXBsb2FkLWRyb3B6b25lOmhvdmVyIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctdGVydGlhcnkpOyB9XG4uZmlsZXMtdXBsb2FkLWRyb3B6b25lOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5KTsgfVxuLnVwbG9hZC1kcm9wem9uZS5kcmFnLW92ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LTUpOyB9XG4udXBsb2FkLWRyb3B6b25lLWxhYmVsLCAuZmlsZXMtdXBsb2FkLWxhYmVsIHsgY3Vyc29yOiBwb2ludGVyOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBhZGRpbmc6IDJyZW07IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMC41cmVtOyB9XG4udXBsb2FkLWRyb3B6b25lLWljb24sIC5maWxlcy11cGxvYWQtaWNvbiB7IHdpZHRoOiA0cmVtOyBoZWlnaHQ6IDRyZW07IG1hcmdpbjogMCBhdXRvIDFyZW07IGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7IG9wYWNpdHk6IDAuMzsgfVxuLmZpbGVzLXVwbG9hZC1pY29uIHsgd2lkdGg6IDJyZW07IGhlaWdodDogMnJlbTsgbWFyZ2luOiAwOyBvcGFjaXR5OiAwLjQ7IH1cbi51cGxvYWQtZHJvcHpvbmUtaWNvbi1sZyB7IHdpZHRoOiAzcmVtOyBoZWlnaHQ6IDNyZW07IG1hcmdpbjogMCBhdXRvIDAuNzVyZW07IGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7IG9wYWNpdHk6IDAuMzsgfVxuLnVwbG9hZC1kcm9wem9uZS10YWxsIHsgbWluLWhlaWdodDogMjAwcHg7IH1cbi51cGxvYWQtZHJvcHpvbmUudXBsb2FkLWRyb3B6b25lLWNvbXBhY3QgeyBwYWRkaW5nOiB2YXIoLS1zcC0yKTsgfVxuLnVwbG9hZC1kcm9wem9uZS51cGxvYWQtZHJvcHpvbmUtY29tcGFjdCAudXBsb2FkLWRyb3B6b25lLWxhYmVsIHsgcGFkZGluZzogMC43NXJlbTsgZ2FwOiAwLjI1cmVtOyB9XG4udXBsb2FkLWRyb3B6b25lLnVwbG9hZC1kcm9wem9uZS1jb21wYWN0IC51cGxvYWQtZHJvcHpvbmUtaWNvbiB7IHdpZHRoOiAycmVtOyBoZWlnaHQ6IDJyZW07IG1hcmdpbjogMCBhdXRvIDAuNXJlbTsgfVxuLnVwbG9hZC1kcm9wem9uZS51cGxvYWQtZHJvcHpvbmUtY29tcGFjdCAudXBsb2FkLWRyb3B6b25lLXRpdGxlIHsgZm9udC1zaXplOiAwLjg3NXJlbTsgfVxuLnVwbG9hZC1kcm9wem9uZS51cGxvYWQtZHJvcHpvbmUtY29tcGFjdCAudXBsb2FkLWRyb3B6b25lLXN1YnRpdGxlIHsgZGlzcGxheTogbm9uZTsgfVxuLnVwbG9hZC1kcm9wem9uZS51cGxvYWQtZHJvcHpvbmUtY29tcGFjdCAudXBsb2FkLWRyb3B6b25lLWhpbnQgeyBtYXJnaW4tdG9wOiAwLjVyZW07IH1cbi51cGxvYWQtZHJvcHpvbmUtdGl0bGUgeyBmb250LXNpemU6IDEuMTI1cmVtOyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyBmb250LXdlaWdodDogNTAwOyB9XG4udXBsb2FkLWRyb3B6b25lLXN1YnRpdGxlLCAudXBsb2FkLWRyb3B6b25lLWhpbnQsIC5maWxlcy11cGxvYWQtaGludCB7IGZvbnQtc2l6ZTogMC44NzVyZW07IGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7IG9wYWNpdHk6IDAuNjsgbWFyZ2luLXRvcDogMC4yNXJlbTsgfVxuLnVwbG9hZC1kcm9wem9uZS1oaW50LCAuZmlsZXMtdXBsb2FkLWhpbnQgeyBmb250LXNpemU6IDAuNzVyZW07IG1hcmdpbi10b3A6IDFyZW07IH1cbi5maWxlcy11cGxvYWQtdGV4dCB7IGZvbnQtc2l6ZTogMC44NzVyZW07IGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7IH1cbi5maWxlcy11cGxvYWQtdGV4dCBzdHJvbmcgeyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyB9XG4udXBsb2FkLWVudHJ5IHsgcGFkZGluZzogdmFyKC0tc3AtMSkgdmFyKC0tc3AtMik7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXNlY29uZGFyeSk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7IGZvbnQtc2l6ZTogMC43NXJlbTsgbWFyZ2luLXRvcDogdmFyKC0tc3AtMyk7IH1cblxuLyogVXBsb2FkIEVudHJ5IEl0ZW1zICovXG4udXBsb2FkLWVudHJ5LWl0ZW0geyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDAuNXJlbTsgZm9udC1zaXplOiAwLjc1cmVtOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy1zZWNvbmRhcnkpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOyBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTsgbWFyZ2luLXRvcDogMC41cmVtOyB9XG4udXBsb2FkLWVudHJ5LW5hbWUgeyBmbGV4OiAxOyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyB9XG4udXBsb2FkLWVudHJ5LXByb2dyZXNzIHsgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTsgfVxuLnVwbG9hZC1lbnRyeS1jYW5jZWwgeyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiAwOyBjdXJzb3I6IHBvaW50ZXI7IHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7IH1cbi51cGxvYWQtZW50cnktY2FuY2VsOmhvdmVyIHsgY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTsgfVxuLnVwbG9hZC1lbnRyeS1lcnJvciB7IG1hcmdpbi10b3A6IDAuMjVyZW07IGZvbnQtc2l6ZTogMC43NXJlbTsgY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUFJFVklFV1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnByZXZpZXctY29udGFpbmVyIHsgaGVpZ2h0OiAxMDAlOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4ucHJldmlldy1saW5rIHsgZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMC4yNXJlbTsgZm9udC1zaXplOiAwLjc1cmVtOyBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuLnByZXZpZXctbGluazpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4ucHJldmlldy1mcmFtZSB7IGZsZXg6IDE7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTsgb3ZlcmZsb3c6IGhpZGRlbjsgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93KTsgfVxuLnByZXZpZXctaWZyYW1lLCAucGRmLXByZXZpZXcgaWZyYW1lLCAucGRmLXZpZXdlci1mcmFtZSBpZnJhbWUsIC5wZGYtcHJldmlldy1pZnJhbWUtZnVsbHNjcmVlbiB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7IGJvcmRlcjogbm9uZTsgfVxuLnByZXZpZXctaW1hZ2UtY29udGFpbmVyIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IHBhZGRpbmc6IDFyZW07IH1cbi5wcmV2aWV3LWltYWdlIHsgbWF4LXdpZHRoOiAxMDAlOyBtYXgtaGVpZ2h0OiAxMDAlOyBvYmplY3QtZml0OiBjb250YWluOyB9XG4ucHJldmlldy1lbXB0eSB7IGhlaWdodDogMTAwJTsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7IG9wYWNpdHk6IDAuNTsgfVxuLnByZXZpZXctZW1wdHktaWNvbiB7IHdpZHRoOiA2cmVtOyBoZWlnaHQ6IDZyZW07IG1hcmdpbi1ib3R0b206IDFyZW07IH1cbi5wcmV2aWV3LWVtcHR5LXRpdGxlIHsgZm9udC1zaXplOiAxLjEyNXJlbTsgfVxuLnByZXZpZXctZW1wdHktc3VidGl0bGUgeyBmb250LXNpemU6IDAuODc1cmVtOyBtYXJnaW4tdG9wOiAwLjI1cmVtOyB9XG4ucGRmLXByZXZpZXcgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy1zZWNvbmRhcnkpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpOyBvdmVyZmxvdzogaGlkZGVuOyB9XG4ucGRmLXByZXZpZXcgaWZyYW1lIHsgaGVpZ2h0OiA2MDBweDsgfVxuLnBkZi1wcmV2aWV3LWZ1bGxzY3JlZW4geyBoZWlnaHQ6IDEwMCU7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4ucGRmLXByZXZpZXctaWZyYW1lLWZ1bGxzY3JlZW4geyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpOyBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGcpOyB9XG4ucGRmLXZpZXdlci1jYXJkIHsgcGFkZGluZzogdmFyKC0tc3AtNCk7IH1cbi5wZGYtdmlld2VyLWZyYW1lIHsgd2lkdGg6IDEwMCU7IGhlaWdodDogNzIwcHg7IG92ZXJmbG93OiBoaWRkZW47IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7IH1cblxuLyogT0NSIFJlc3VsdHMgUGFuZWwgKi9cbi5vY3ItZmllbGRzIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiB2YXIoLS1zcC0zKTsgfVxuLm9jci1maWVsZCB7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsgcGFkZGluZzogdmFyKC0tc3AtMikgdmFyKC0tc3AtMyk7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXNlY29uZGFyeSk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7IH1cbi5vY3ItZmllbGQtbGFiZWwgeyBmb250LXNpemU6IDAuNzVyZW07IGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAwLjA1ZW07IH1cbi5vY3ItZmllbGQtdmFsdWUgeyBmb250LXNpemU6IDAuODc1cmVtOyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyB0ZXh0LWFsaWduOiByaWdodDsgfVxuLm9jci1maWVsZC1zZWxlY3QgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IHZhcigtLXNwLTEpOyB9XG4ub2NyLWZpZWxkLXNlbGVjdCAub2NyLWZpZWxkLWxhYmVsIHsgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3AtMSk7IH1cbi5vY3ItZmllbGQtc2VsZWN0IHNlbGVjdCxcbi5vY3ItZmllbGQtc2VsZWN0IGlucHV0IHsgd2lkdGg6IDEwMCU7IHBhZGRpbmc6IHZhcigtLXNwLTIpOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy1zZWNvbmRhcnkpOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOyBmb250LXNpemU6IDAuODc1cmVtOyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyB9XG4ub2NyLWZpZWxkLXNlbGVjdCBzZWxlY3Q6Zm9jdXMsXG4ub2NyLWZpZWxkLXNlbGVjdCBpbnB1dDpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7IGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1jb2xvci1wcmltYXJ5LTIwKTsgfVxuLm9jci1maWVsZC1zZWxlY3Qgc2VsZWN0IG9wdGlvbiB7IHBhZGRpbmc6IHZhcigtLXNwLTIpOyB9XG4ub2NyLWZpZWxkLXNlbGVjdCAudy1hdXRvIHsgd2lkdGg6IGF1dG87IG1pbi13aWR0aDogMTAwcHg7IH1cbi5vY3ItcmF3LXRleHQgeyBtYXJnaW4tdG9wOiB2YXIoLS1zcC0yKTsgfVxuLm9jci1yYXctc3VtbWFyeSB7IGN1cnNvcjogcG9pbnRlcjsgZm9udC1zaXplOiAwLjc1cmVtOyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDAuMjVyZW07IHBhZGRpbmc6IHZhcigtLXNwLTEpIDA7IH1cbi5vY3ItcmF3LXN1bW1hcnk6aG92ZXIgeyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyB9XG4ub2NyLXJhdy1jb250ZW50IHsgbWFyZ2luLXRvcDogdmFyKC0tc3AtMik7IHBhZGRpbmc6IHZhcigtLXNwLTMpOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy10ZXJ0aWFyeSk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7IGZvbnQtc2l6ZTogMC43cmVtOyBsaW5lLWhlaWdodDogMS40OyBtYXgtaGVpZ2h0OiAyMDBweDsgb3ZlcmZsb3cteTogYXV0bzsgd2hpdGUtc3BhY2U6IHByZS13cmFwOyB3b3JkLWJyZWFrOiBicmVhay13b3JkOyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyB9XG4ub2NyLWxvYWRpbmcgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgcGFkZGluZzogdmFyKC0tc3AtOCk7IGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7IH1cbi5vY3ItbG9hZGluZy1zcGlubmVyIHsgd2lkdGg6IDJyZW07IGhlaWdodDogMnJlbTsgYm9yZGVyOiAycHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTsgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7IGJvcmRlci1yYWRpdXM6IDUwJTsgYW5pbWF0aW9uOiBzcGluIDFzIGxpbmVhciBpbmZpbml0ZTsgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3AtMyk7IH1cbi5vY3ItcHJldmlldyB7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpOyBwYWRkaW5nLXRvcDogdmFyKC0tc3AtNCk7IH1cbi5vY3ItcHJldmlldy1mcmFtZSB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXRlcnRpYXJ5KTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsgb3ZlcmZsb3c6IGhpZGRlbjsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTsgfVxuLm9jci1wcmV2aWV3LWlmcmFtZSB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDQwMHB4OyBib3JkZXI6IG5vbmU7IH1cbi5vY3ItcHJldmlldy1pbWFnZSB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG87IG1heC1oZWlnaHQ6IDQwMHB4OyBvYmplY3QtZml0OiBjb250YWluOyBkaXNwbGF5OiBibG9jazsgfVxuLm9jci1wcmV2aWV3LXBkZi1wbGFjZWhvbGRlciB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBwYWRkaW5nOiB2YXIoLS1zcC04KTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQkFMQU5DRS9UUkVFXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uYmFsYW5jZS1jb250ZW50LCAuZmlsZXMtY29udGVudCB7IHBhZGRpbmc6IDAgdmFyKC0tc3AtNCk7IH1cbi5iYWxhbmNlLXRyZWUgeyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgfVxuLmJhbGFuY2Utb3B0aW9ucyB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMC43NXJlbTsgbWFyZ2luLWJvdHRvbTogMXJlbTsgbWFyZ2luLXRvcDogLTAuNXJlbTsgcGFkZGluZzogMCAwLjI1cmVtOyB9XG4uYmFsYW5jZS1zZWN0aW9uLWhlYWRlciB7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyBwYWRkaW5nOiB2YXIoLS1zcC0yKTsgY3Vyc29yOiBwb2ludGVyOyB9XG4uYmFsYW5jZS1zZWN0aW9uLWdyaWQsIC5iYWxhbmNlLXRyZWUtZ3JpZCB7IGRpc3BsYXk6IGdyaWQ7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMC43NXJlbTsgd2lkdGg6IDEwMCU7IH1cbi5iYWxhbmNlLXNlY3Rpb24tcm93IHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IHdpZHRoOiAxMDAlOyB9XG4uYmFsYW5jZS1zZWN0aW9uLXRpdGxlIHsgZm9udC13ZWlnaHQ6IDcwMDsgY29sb3I6IHZhcigtLWNvbG9yLWZnKTsgfVxuLmJhbGFuY2UtY2hldnJvbiB7IGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7IHRyYW5zaXRpb246IHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpOyB9XG4uYmFsYW5jZS1jaGV2cm9uLmNvbGxhcHNlZCB7IHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7IH1cbi5iYWxhbmNlLXRyZWUtbGluZSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgcGFkZGluZy1sZWZ0OiAxcmVtOyBtYXJnaW4tbGVmdDogMC4yNXJlbTsgfVxuLmJhbGFuY2UtdHJlZS1saW5lOjpiZWZvcmUgeyBjb250ZW50OiBcIlwiOyBwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDA7IHRvcDogMDsgYm90dG9tOiAwOyB3aWR0aDogMXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ib3JkZXIpOyB9XG4uYmFsYW5jZS10cmVlLWJyYW5jaCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuLmJhbGFuY2UtdHJlZS1icmFuY2g6OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXCI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogLTFyZW07IHRvcDogNTAlOyB3aWR0aDogMC43NXJlbTsgaGVpZ2h0OiAxcHg7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJvcmRlcik7IH1cbi5iYWxhbmNlLWFtb3VudCB7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiB2YXIoLS1jb2xvci1mZyk7IHRleHQtYWxpZ246IHJpZ2h0OyBtaW4td2lkdGg6IDVyZW07IH1cbi5iYWxhbmNlLXRyZWUtbm9kZSB7XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDAuNXJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpO1xuICAmLmhpZ2hsaWdodGVkIHsgY29sb3I6IHZhcigtLWNvbG9yLWZnKTsgfVxuICAmOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYm9yZGVyLTIwKTsgfVxufVxuLmJhbGFuY2UtdHJlZS1yb3cge1xuICBkaXNwbGF5OiBncmlkO1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpIGF1dG87XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC43NXJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gICY6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy1zZWNvbmRhcnkpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pOyB9XG59XG4uYmFsYW5jZS10cmVlLWxhYmVsIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAwLjVyZW07IG1pbi13aWR0aDogMDsgfVxuLmJhbGFuY2UtdHJlZS1saW5rIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAwLjVyZW07IGZsZXg6IDE7IG1pbi13aWR0aDogMDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBjb2xvcjogaW5oZXJpdDsgfVxuLmJhbGFuY2UtdHJlZS1saW5rOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbi5iYWxhbmNlLXRyZWUtbmFtZSB7IGZvbnQtc2l6ZTogMC43NXJlbTsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbi5iYWxhbmNlLXRyZWUtdmFsdWUgeyBmb250LXNpemU6IDAuNzVyZW07IGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7IHRleHQtYWxpZ246IHJpZ2h0OyBtaW4td2lkdGg6IDVyZW07IGNvbG9yOiBpbmhlcml0OyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbi5iYWxhbmNlLXRyZWUtdmFsdWU6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuLmJhbGFuY2UtdHJlZS1tYXhpbWl6ZWQgeyBwb3NpdGlvbjogZml4ZWQ7IGluc2V0OiB2YXIoLS1zcC00KTsgei1pbmRleDogNTA7IG92ZXJmbG93OiBhdXRvOyB9XG4ubGVhZGVyLWRvdHMgeyBmbGV4LWdyb3c6IDE7IGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgdmFyKC0tY29sb3ItYm9yZGVyKTsgbWFyZ2luOiAwIDZweDsgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IC00cHg7IH1cbi50cmVlLXRvZ2dsZSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB3aWR0aDogMXJlbTsgaGVpZ2h0OiAxcmVtOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiBub25lOyBjdXJzb3I6IHBvaW50ZXI7IHBhZGRpbmc6IDA7IGZsZXgtc2hyaW5rOiAwOyB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7IH1cbi50cmVlLXRvZ2dsZTpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJvcmRlci00MCk7IH1cbi50cmVlLXRvZ2dsZSAucm90YXRlZCB7IHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7IH1cbi50cmVlLXRvZ2dsZS1zcGFjZXIgeyB3aWR0aDogMXJlbTsgaGVpZ2h0OiAxcmVtOyBmbGV4LXNocmluazogMDsgfVxuLmJhbGFuY2UtcmVwb3J0LXNlY3Rpb24geyBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG4uYmFsYW5jZS1yZXBvcnQtaGVhZGVyIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7IHBhZGRpbmctYm90dG9tOiAwLjVyZW07IG1hcmdpbi1ib3R0b206IDAuNzVyZW07IHBhZGRpbmctbGVmdDogMC4yNXJlbTsgfVxuLmJhbGFuY2UtcmVwb3J0LWhlYWRlci1yb3cgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogZmxleC1zdGFydDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBnYXA6IDAuNXJlbTsgfVxuLmJhbGFuY2UtcmVwb3J0LXRpdGxlIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAwLjEyNXJlbTsgfVxuLmJhbGFuY2UtcmVwb3J0LXRpdGxlIGgzIHsgZm9udC1zaXplOiAwLjc1cmVtOyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyBsZXR0ZXItc3BhY2luZzogMC4xZW07IH1cbi5iYWxhbmNlLXJlcG9ydC1kYXRlLXJhbmdlIHsgZm9udC1zaXplOiAwLjYyNXJlbTsgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTsgfVxuLmJhbGFuY2UtcmVwb3J0LWNvbnRlbnQgeyBmb250LXNpemU6IDAuODc1cmVtOyBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vKTsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAwLjEyNXJlbTsgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbi5iYWxhbmNlLXRvdGFsLXJvdywgLmJhbGFuY2UtdG90YWwtcm93LWdyaWQgeyBtYXJnaW4tdG9wOiAxLjVyZW07IHBhZGRpbmctdG9wOiAxcmVtOyBib3JkZXItdG9wOiAxcHggZGFzaGVkIHZhcigtLWNvbG9yLWJvcmRlcik7IHBhZGRpbmctbGVmdDogMC41cmVtOyBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07IH1cbi5iYWxhbmNlLXRvdGFsLXJvdyB7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuLmJhbGFuY2UtdG90YWwtcm93LWdyaWQgeyBkaXNwbGF5OiBncmlkOyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDAuNzVyZW07IHdpZHRoOiAxMDAlOyB9XG4uYmFsYW5jZS10b3RhbC1sYWJlbCB7IGZvbnQtd2VpZ2h0OiA3MDA7IGZvbnQtc2l6ZTogMC44NzVyZW07IGxldHRlci1zcGFjaW5nOiAwLjA1ZW07IGNvbG9yOiB2YXIoLS1jb2xvci1mZyk7IH1cbi5iYWxhbmNlLXRvdGFsLXZhbHVlIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWZnKTtcbiAgJi5wb3NpdGl2ZSB7IGNvbG9yOiB2YXIoLS1jb2xvci1zdWNjZXNzKTsgfVxuICAmLm5lZ2F0aXZlIHsgY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTsgfVxufVxuLmJhbGFuY2UtY3VycmVuY3ktdG90YWxzIHsgbWFyZ2luLXRvcDogMS41cmVtOyBwYWRkaW5nLXRvcDogMXJlbTsgYm9yZGVyLXRvcDogMXB4IGRhc2hlZCB2YXIoLS1jb2xvci1ib3JkZXIpOyBwYWRkaW5nLWxlZnQ6IDAuNXJlbTsgcGFkZGluZy1yaWdodDogMC41cmVtOyB9XG4uYmFsYW5jZS1jdXJyZW5jeS1yb3cgeyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHBhZGRpbmc6IDAuMjVyZW0gMDsgfVxuLmJhbGFuY2UtY3VycmVuY3ktbGFiZWwgeyBmb250LXNpemU6IDAuNzVyZW07IGZvbnQtd2VpZ2h0OiA1MDA7IGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7IGxldHRlci1zcGFjaW5nOiAwLjA1ZW07IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbi5iYWxhbmNlLWN1cnJlbmN5LXZhbHVlIHtcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbiAgY29sb3I6IHZhcigtLWNvbG9yLWZnKTtcbiAgJi5uZWdhdGl2ZSB7IGNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7IH1cbn1cblxuLyogUCZMICovXG4ucHJvZml0LWxvc3Mtc3VtbWFyeSB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXNlY29uZGFyeSk7IH1cblxuLyogUHJvZml0L0xvc3MgU3VtbWFyeSBDYXJkICovXG4ucHJvZml0LWxvc3MtY2FyZCB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnKTtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTtcbiAgcGFkZGluZzogdmFyKC0tc3AtNCk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwLTQpO1xufVxuLnByb2ZpdC1sb3NzLWhlYWRlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwLTMpO1xufVxuLnByb2ZpdC1sb3NzLXRpdGxlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAwLjEyNXJlbTtcbn1cbi5wcm9maXQtbG9zcy1kYXRlLXJhbmdlIHtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpO1xufVxuLnByb2ZpdC1sb3NzLW1haW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNwLTMpO1xufVxuLnByb2ZpdC1sb3NzLXZhbHVlIHtcbiAgZm9udC1zaXplOiAxLjc1cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICBtYXJnaW46IDA7XG4gICYucG9zaXRpdmUgeyBjb2xvcjogdmFyKC0tY29sb3Itc3VjY2Vzcyk7IH1cbiAgJi5uZWdhdGl2ZSB7IGNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7IH1cbn1cblxuLnByb2ZpdC1sb3NzLWJhZGdlIHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4yNXJlbTtcbiAgcGFkZGluZzogMC4yNXJlbSAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgJi5wb3NpdGl2ZSB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXN1Y2Nlc3MtMTApOyBjb2xvcjogdmFyKC0tY29sb3Itc3VjY2Vzcyk7IH1cbiAgJi5uZWdhdGl2ZSB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWVycm9yLTEwKTsgY29sb3I6IHZhcigtLWNvbG9yLWVycm9yKTsgfVxufVxuLnByb2ZpdC1sb3NzLXNlY3Rpb24ge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4ucGwtdHJlZS1oZWFkZXIgeyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgcGFkZGluZzogdmFyKC0tc3AtMik7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7IHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTsgfVxuLnBsLXRyZWUtaGVhZGVyLnBsLWluY29tZSB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXN1Y2Nlc3MtMTApOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1zdWNjZXNzLTIwKTsgY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MpOyB9XG4ucGwtdHJlZS1oZWFkZXIucGwtZXhwZW5zZSB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWVycm9yLTEwKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItZXJyb3ItMjApOyBjb2xvcjogdmFyKC0tY29sb3ItZXJyb3IpOyB9XG4ucGwtaW5jb21lLXJvdywgLnBsLWV4cGVuc2Utcm93IHsgZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczogY2VudGVyOyBwYWRkaW5nOiB2YXIoLS1zcC0yKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsgY3Vyc29yOiBwb2ludGVyOyB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7IGdhcDogdmFyKC0tc3AtMyk7IH1cbi5wbC1pbmNvbWUtcm93IHsgY29sb3I6IGNvbG9yLW1peChpbiBva2xjaCwgdmFyKC0tY29sb3Itc3VjY2VzcykgODAlLCB2YXIoLS1jb2xvci1mZykpOyB9XG4ucGwtZXhwZW5zZS1yb3cgeyBjb2xvcjogY29sb3ItbWl4KGluIG9rbGNoLCB2YXIoLS1jb2xvci1lcnJvcikgODAlLCB2YXIoLS1jb2xvci1mZykpOyB9XG4ucGwtaW5jb21lLXJvdzpob3ZlciwgLnBsLWV4cGVuc2Utcm93OmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYm9yZGVyLTMwKTsgfVxuXG4vKiBDaGFydHMgKi9cbi5jaGFydC1jb250YWluZXIgeyBvdmVyZmxvdy14OiBhdXRvOyB9XG4uY2hhcnQtYmFycyB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgZ2FwOiB2YXIoLS1zcC0yKTsgaGVpZ2h0OiAxMnJlbTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7IGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTsgcGFkZGluZzogdmFyKC0tc3AtNCk7IG1pbi13aWR0aDogNjAwcHg7IH1cbi5jaGFydC1iYXItZ3JvdXAgeyBmbGV4OiAxOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLXNwLTEpOyB9XG4uY2hhcnQtYmFyLXBhaXIgeyB3aWR0aDogMTAwJTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAycHg7IGhlaWdodDogMTByZW07IH1cbi5jaGFydC1iYXIgeyB3aWR0aDogNDUlOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pIHZhcigtLXJhZGl1cy1zbSkgMCAwOyB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZmFzdCk7IH1cbi5jaGFydC1iYXI6aG92ZXIgeyBvcGFjaXR5OiAwLjg7IH1cbi5jaGFydC1iYXIuaW5jb21lLCAuY2hhcnQtbGVnZW5kLWRvdC5pbmNvbWUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zdWNjZXNzKTsgfVxuLmNoYXJ0LWJhci5leHBlbnNlLCAuY2hhcnQtbGVnZW5kLWRvdC5leHBlbnNlIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZXJyb3IpOyB9XG4uY2hhcnQtYmFyLWxhYmVsIHsgZm9udC1zaXplOiAwLjYyNXJlbTsgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4uY2hhcnQtbGVnZW5kIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGdhcDogdmFyKC0tc3AtNCk7IG1hcmdpbi10b3A6IHZhcigtLXNwLTMpOyB9XG4uY2hhcnQtbGVnZW5kLWl0ZW0geyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLXNwLTIpOyB9XG4uY2hhcnQtbGVnZW5kLWRvdCB7IHdpZHRoOiAwLjc1cmVtOyBoZWlnaHQ6IDAuNzVyZW07IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1zbSk7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEdJVC9ESUZGU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLmNvbnNvbGUtdmlldyB7IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1jb25zb2xlLWJnKTsgY29sb3I6IHZhcigtLWNvbG9yLWNvbnNvbGUtZmcpOyB9XG4uY29tbWl0LWVudHJ5IHsgd2lkdGg6IDEwMCU7IHRleHQtYWxpZ246IGxlZnQ7IHBhZGRpbmc6IHZhcigtLXNwLTIpIHZhcigtLXNwLTMpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7IGN1cnNvcjogcG9pbnRlcjsgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLCBib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTsgfVxuLmNvbW1pdC1lbnRyeTpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXNlY29uZGFyeSk7IH1cbi5jb21taXQtZW50cnkuc2VsZWN0ZWQgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LTEwKTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LTIwKTsgfVxuLmRpZmYtZmlsZSB7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7IG92ZXJmbG93OiBoaWRkZW47IH1cbi5kaWZmLWNvbnRlbnQgeyBwYWRkaW5nOiB2YXIoLS1zcC0zKTsgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7IGZvbnQtc2l6ZTogMC43NXJlbTsgb3ZlcmZsb3cteDogYXV0bzsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmcpOyB9XG4uZGlmZi1jb250ZW50IHByZSB7IG1hcmdpbjogMDsgfVxuLmRpZmYtY29udGVudCBjb2RlIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IHBhZGRpbmc6IDA7IH1cbi5kaWZmLWxpbmUtYWRkZWQgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1zdWNjZXNzLTEwKTsgY29sb3I6IHZhcigtLWNvbG9yLXN1Y2Nlc3MpOyB9XG4uZGlmZi1saW5lLXJlbW92ZWQgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1lcnJvci0xMCk7IGNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7IH1cbi5kaWZmLWxpbmUtaHVuayB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWluZm8tMTApOyBjb2xvcjogdmFyKC0tY29sb3ItaW5mbyk7IGZvbnQtd2VpZ2h0OiA2MDA7IH1cbi5kaWZmLWxpbmUtaGVhZGVyIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5KTsgY29sb3I6IHZhcigtLWNvbG9yLWZnKTsgZm9udC13ZWlnaHQ6IDYwMDsgfVxuLmRpZmYtbGluZS11bmNoYW5nZWQgeyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyB9XG4uZGlmZi1hZGRlZCB7IGNvbG9yOiB2YXIoLS1jb2xvci1zdWNjZXNzKTsgfVxuLmRpZmYtcmVtb3ZlZCB7IGNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZJTEVTXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uZmlsZXMtZ3JpZCB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyBnYXA6IHZhcigtLXNwLTQpOyB9XG4uZmlsZXMtcGFuZWwgeyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItMzApOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOyBwYWRkaW5nOiB2YXIoLS1zcC00KTsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctdGVydGlhcnktMTApOyB9XG4uZmlsZXMtcGFuZWwtaGVhZGVyIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBtYXJnaW4tYm90dG9tOiAwLjc1cmVtOyB9XG4uZmlsZXMtcGFuZWwtdGl0bGUgeyBmb250LXNpemU6IDAuODc1cmVtOyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyB9XG4uZmlsZXMtcGFuZWwtYWN0aW9ucyB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMC4yNXJlbTsgfVxuLmZpbGVzLWJyZWFkY3J1bWJzIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAwLjVyZW07IGZvbnQtc2l6ZTogMC44NzVyZW07IG1hcmdpbi1ib3R0b206IDFyZW07IH1cbi5maWxlcy1icmVhZGNydW1iLWxpbmsgeyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiAwOyBjdXJzb3I6IHBvaW50ZXI7IHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7IH1cbi5maWxlcy1icmVhZGNydW1iLWxpbms6aG92ZXIgeyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyB9XG4uZmlsZXMtYnJlYWRjcnVtYi1jdXJyZW50IHsgY29sb3I6IHZhcigtLWNvbG9yLWZnKTsgZm9udC13ZWlnaHQ6IDYwMDsgfVxuLmZpbGVzLWJyZWFkY3J1bWItc2VwYXJhdG9yIHsgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTsgfVxuLmZpbGVzLWVtcHR5LXN0YXRlIHsgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTsgZm9udC1zaXplOiAwLjg3NXJlbTsgfVxuLm5ldy1pdGVtLWZvcm0geyBtYXJnaW4tYm90dG9tOiAwLjc1cmVtOyBwYWRkaW5nOiAwLjVyZW07IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXNlY29uZGFyeSk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7IH1cbi5uZXctaXRlbS1mb3JtLWlubmVyIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAwLjVyZW07IH1cbi5uZXctaXRlbS1pbnB1dCB7IGZsZXg6IDE7IGhlaWdodDogMnJlbTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmcpOyBwYWRkaW5nOiAwIDAuNXJlbTsgZm9udC1zaXplOiAwLjc1cmVtOyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctc20pOyB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSwgYm94LXNoYWRvdyB2YXIoLS10cmFuc2l0aW9uLWZhc3QpOyB9XG4ubmV3LWl0ZW0taW5wdXQ6Zm9jdXMgeyBvdXRsaW5lOiBub25lOyBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpOyBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tY29sb3ItcHJpbWFyeS0zMCk7IH1cbi5maWxlLWxpc3QtaXRlbSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMC41cmVtOyBwYWRkaW5nOiAwLjM3NXJlbSAwLjVyZW07IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7IHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTsgfVxuLmZpbGUtbGlzdC1pdGVtOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYm9yZGVyLTMwKTsgfVxuLmZpbGUtbGlzdC1saW5rIHsgZmxleDogMTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAwLjVyZW07IGN1cnNvcjogcG9pbnRlcjsgZm9udC1zaXplOiAwLjg3NXJlbTsgY29sb3I6IHZhcigtLWNvbG9yLWZnKTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4uZmlsZS1saXN0LWxpbms6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuLmZpbGUtbGlzdC1hY3Rpb25zIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAwLjI1cmVtOyBvcGFjaXR5OiAwOyB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZmFzdCk7IH1cbi5maWxlLWxpc3QtaXRlbTpob3ZlciAuZmlsZS1saXN0LWFjdGlvbnMgeyBvcGFjaXR5OiAxOyB9XG4uZnVsbHNjcmVlbi1lZGl0b3IgeyBwb3NpdGlvbjogZml4ZWQ7IGluc2V0OiAwOyB6LWluZGV4OiA1MDsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmcpOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4uZnVsbHNjcmVlbi1lZGl0b3ItaGVhZGVyIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5LTk1KTsgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLTIwKTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBwYWRkaW5nOiAwLjc1cmVtIDFyZW07IH1cbi5mdWxsc2NyZWVuLWVkaXRvci10aXRsZSB7IGZvbnQtc2l6ZTogMC44NzVyZW07IGZvbnQtd2VpZ2h0OiA2MDA7IGNvbG9yOiB2YXIoLS1jb2xvci1mZyk7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMC41cmVtOyB9XG4uZnVsbHNjcmVlbi1lZGl0b3ItYWN0aW9ucyB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMC41cmVtOyB9XG4uZnVsbHNjcmVlbi1lZGl0b3ItY29udGVudCB7IGZsZXg6IDE7IG92ZXJmbG93OiBhdXRvOyBwYWRkaW5nOiB2YXIoLS1zcC02KTsgfVxuLmZ1bGxzY3JlZW4tZWRpdG9yLWZvcm0geyBtYXgtd2lkdGg6IDgwcmVtOyBtYXJnaW46IDAgYXV0bzsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgU0NSSVBUU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnNjcmlwdHMtbGF5b3V0IHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxNnJlbSAxZnI7IGdhcDogdmFyKC0tc3AtNCk7IG1pbi1oZWlnaHQ6IGNhbGMoMTAwdmggLSA4cmVtKTsgfVxuLnNjcmlwdHMtc2lkZWJhciB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXNlY29uZGFyeSk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7IG92ZXJmbG93OiBoaWRkZW47IH1cbi5zY3JpcHRzLXNpZGViYXItc2VjdGlvbiB7IHBhZGRpbmc6IHZhcigtLXNwLTQpOyB9XG4uc2NyaXB0cy1saXN0LWl0ZW0geyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGdhcDogdmFyKC0tc3AtMik7IHBhZGRpbmc6IHZhcigtLXNwLTIpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOyB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7IH1cbi5zY3JpcHRzLWxpc3QtaXRlbTpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXRlcnRpYXJ5KTsgfVxuLnNjcmlwdHMtbGlzdC1pdGVtIGEgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiB2YXIoLS1jb2xvci1mZyk7IH1cbi5zY3JpcHRzLWRlbGV0ZS1idG4geyBvcGFjaXR5OiAwOyBjb2xvcjogdmFyKC0tY29sb3ItZXJyb3IpOyB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZmFzdCk7IH1cbi5zY3JpcHRzLWxpc3QtaXRlbTpob3ZlciAuc2NyaXB0cy1kZWxldGUtYnRuIHsgb3BhY2l0eTogMTsgfVxuLnNjcmlwdHMtbWFpbi1jb250ZW50IHsgZmxleDogMTsgb3ZlcmZsb3cteTogYXV0bzsgfVxuLnNjcmlwdHMtZm9ybS1jb250YWluZXIgeyBwYWRkaW5nOiB2YXIoLS1zcC02KTsgbWF4LXdpZHRoOiB2YXIoLS1jb250YWluZXIteGwpOyBtYXJnaW46IDAgYXV0bzsgd2lkdGg6IDEwMCU7IH1cbi5zY3JpcHRzLWVtcHR5LXN0YXRlIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGhlaWdodDogMTAwJTsgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTsgdGV4dC1hbGlnbjogY2VudGVyOyBwYWRkaW5nOiB2YXIoLS1zcC04KTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQk9PS0lOR1NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi50cmFuc2FjdGlvbnMtc2VjdGlvbi1oZWFkZXIgeyBtYXJnaW4tYm90dG9tOiAxcmVtOyBwYWRkaW5nLWJvdHRvbTogMC41cmVtOyBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTsgfVxuLmJvb2tpbmdzLWdyb3VwLWhlYWRlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiB2YXIoLS1zcC0yKSB2YXIoLS1zcC00KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctdGVydGlhcnktMjApO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAxMDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbiAgYm9yZGVyOiBub25lO1xuICAmOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctdGVydGlhcnktMzApOyB9XG59XG4uZ3JvdXAtdGl0bGUsIC50b3RhbHMtbGFiZWwgeyBmb250LXNpemU6IDAuNzVyZW07IGZvbnQtd2VpZ2h0OiA2MDA7IHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGxldHRlci1zcGFjaW5nOiAwLjA3NWVtOyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyB9XG4uZ3JvdXAtY291bnQgeyBmb250LXNpemU6IDAuNzVyZW07IGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7IG1hcmdpbi1sZWZ0OiAwLjI1cmVtOyB9XG4uZ3JvdXAtdG90YWwgeyBmb250LXNpemU6IDAuNzVyZW07IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyB9XG4uYm9va2luZ3MtdG90YWxzLWZvb3RlciB7IHBhZGRpbmc6IHZhcigtLXNwLTMpIHZhcigtLXNwLTQpOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy10ZXJ0aWFyeS00MCk7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpOyB9XG4udG90YWxzLWFtb3VudCB7IGZvbnQtc2l6ZTogMC44NzVyZW07IGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm8pOyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyB9XG4uYm9va2luZ3MtcGFnZSwgLnNhbGFyeS1zdGF0ZW1lbnQtcGFnZSB7IG1pbi1oZWlnaHQ6IDEwMHZoOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBFTVBMT1lFRVNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5lbXBsb3llZS1jYXJkIHtcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyB2YXIoLS10cmFuc2l0aW9uKTtcbiAgJjpob3ZlciB7IGJveC1zaGFkb3c6IDAgNHB4IDEycHggdmFyKC0tY29sb3ItZmctMTApOyB9XG4gICYuZm9ybWVyIHsgb3BhY2l0eTogMC43NTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1ib3JkZXItNTApOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy1zZWNvbmRhcnkpOyB9XG59XG5cbi5lbXBsb3llZS1jYXJkLWhlYWRlciB7XG4gIHBhZGRpbmc6IHZhcigtLXNwLTQpIHZhcigtLXNwLTYpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLTUwKTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB2YXIoLS1jb2xvci1wcmltYXJ5LTEwKSwgdmFyKC0tY29sb3ItcHJpbWFyeS01KSk7XG4gICYuZm9ybWVyIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctdGVydGlhcnktNTApOyB9XG59XG5cbi5zYWxhcnktaW5mby1jYXJkLCAucGVyaW9kLWNhcmQge1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpO1xuICBwYWRkaW5nOiB2YXIoLS1zcC0zKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5LTUwKTtcbn1cblxuLnNhbGFyeS1pbmZvLWNhcmQuZm9ybWVyIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctdGVydGlhcnktNTApOyB9XG4uc2FsYXJ5LXByZXZpZXctc2VjdGlvbiB7IG1hcmdpbi10b3A6IHZhcigtLXNwLTgpOyBwYWRkaW5nLXRvcDogdmFyKC0tc3AtNik7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpOyB9XG4uc2FsYXJ5LWhlYWRlciB7IHBhZGRpbmctYm90dG9tOiB2YXIoLS1zcC00KTsgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3AtNCk7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpOyB9XG4uc2FsYXJ5LXRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XG5cbiAgJiB0aCB7IHBhZGRpbmc6IHZhcigtLXNwLTIpIDA7IGZvbnQtd2VpZ2h0OiA2MDA7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpOyB9XG4gICYgdGQgeyBwYWRkaW5nOiB2YXIoLS1zcC0yKSAwOyB9XG4gICYgLm51bWVyaWMgeyB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAmIC5zdWJ0b3RhbCB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXRlcnRpYXJ5LTUwKTsgfVxuICAmIC5zdWJ0b3RhbCB0ZCwgJiAudG90YWwgdGQgeyBwYWRkaW5nOiB2YXIoLS1zcC0yKSB2YXIoLS1zcC0xKTsgfVxuICAmIC50b3RhbCB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktMTApOyB9XG59XG4uc2FsYXJ5LXN1bW1hcnkgeyBtYXJnaW4tdG9wOiB2YXIoLS1zcC02KTsgcGFkZGluZy10b3A6IHZhcigtLXNwLTQpOyBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTsgfVxuLnNlY3Rpb24taGVhZGVyLXJvdyB7IG1hcmdpbi1ib3R0b206IHZhcigtLXNwLTMpOyB9XG4uc2VjdGlvbi1kaXZpZGVyIHsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7IHBhZGRpbmctdG9wOiAxcmVtOyBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG5cbi8qIFJhdyBMZWRnZXIgKi9cbi5yYXctbGVkZ2VyLXNlY3Rpb24geyBwYWRkaW5nLXRvcDogMXJlbTsgbWFyZ2luLXRvcDogMXJlbTsgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7IH1cbi5yYXctbGVkZ2VyLXRvZ2dsZSB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDA7XG4gIHRyYW5zaXRpb246IGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG4gICY6aG92ZXIgeyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyB9XG59XG4ucmF3LWxlZGdlci1jb250ZW50IHsgbWFyZ2luLXRvcDogMC43NXJlbTsgcGFkZGluZzogMC43NXJlbTsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5KTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsgZm9udC1zaXplOiAwLjc1cmVtOyBvdmVyZmxvdy14OiBhdXRvOyB9XG5cbi8qIFdpc2UgUnVsZXMgKi9cbi5ydWxlLXJvdyB7IGRpc3BsYXk6IGZsZXg7IHBhZGRpbmc6IHZhcigtLXNwLTIpOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy1zZWNvbmRhcnkpOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpOyBmbGV4LXdyYXA6IHdyYXA7IH1cbi5ydWxlLXJvdyBzZWxlY3QsIC5ydWxlLXJvdyBpbnB1dCB7IGZvbnQtc2l6ZTogMC44NzVyZW07IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEFETUlOXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uYWRtaW4tbGF5b3V0IHsgbWluLWhlaWdodDogMTAwdmg7IH1cbi5hZG1pbi1zaWRlYmFyIHsgd2lkdGg6IDE2cmVtOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy1zZWNvbmRhcnkpOyBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpOyBtaW4taGVpZ2h0OiAxMDB2aDsgfVxuLmFkbWluLW5hdi1pdGVtIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IHZhcigtLXNwLTIpIHZhcigtLXNwLTQpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSwgY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtcbiAgJjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXRlcnRpYXJ5KTsgY29sb3I6IHZhcigtLWNvbG9yLWZnKTsgfVxuICAmLmFjdGl2ZSB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktMTUpOyBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7IGZvbnQtd2VpZ2h0OiA1MDA7IH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFNFVFVQIFdJWkFSRFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLnNldHVwLXN0ZXBwZXIgeyBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcC02KTsgfVxuLnNldHVwLXN0ZXBwZXItbGlzdCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAwOyBsaXN0LXN0eWxlOiBub25lOyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IH1cbi5zZXR1cC1zdGVwcGVyLWl0ZW0geyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyOyBwb3NpdGlvbjogcmVsYXRpdmU7IGZsZXg6IDE7IG1heC13aWR0aDogMTByZW07IH1cbi5zZXR1cC1zdGVwcGVyLWluZGljYXRvciB7XG4gIHdpZHRoOiAycmVtO1xuICBoZWlnaHQ6IDJyZW07XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24pO1xuICB6LWluZGV4OiAxO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZyk7XG4gIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7XG59XG5cbi5zZXR1cC1zdGVwcGVyLW51bWJlciB7IGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7IH1cblxuLnNldHVwLXN0ZXBwZXItbGFiZWwge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcC0yKTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG5cbi5zZXR1cC1zdGVwcGVyLWNvbm5lY3RvciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxcmVtO1xuICBsZWZ0OiBjYWxjKDUwJSArIDFyZW0pO1xuICB3aWR0aDogY2FsYygxMDAlIC0gMnJlbSk7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1ib3JkZXIpO1xufVxuXG4vKiBTZXR1cCBzdGVwcGVyIHN0YXRlcyAqL1xuLnNldHVwLXN0ZXBwZXItaXRlbSB7XG4gICYuY29tcGxldGUge1xuICAgICYgLnNldHVwLXN0ZXBwZXItaW5kaWNhdG9yIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3VjY2Vzcyk7IGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3Itc3VjY2Vzcyk7IGNvbG9yOiB3aGl0ZTsgfVxuICAgICYgLnNldHVwLXN0ZXBwZXItbGFiZWwgeyBjb2xvcjogdmFyKC0tY29sb3Itc3VjY2Vzcyk7IH1cbiAgICAmIC5zZXR1cC1zdGVwcGVyLWNvbm5lY3RvciB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXN1Y2Nlc3MpOyB9XG4gIH1cbiAgJi5jdXJyZW50IHtcbiAgICAmIC5zZXR1cC1zdGVwcGVyLWluZGljYXRvciB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnkpOyBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpOyBjb2xvcjogd2hpdGU7IH1cbiAgICAmIC5zZXR1cC1zdGVwcGVyLWxhYmVsIHsgY29sb3I6IHZhcigtLWNvbG9yLWZnKTsgZm9udC13ZWlnaHQ6IDUwMDsgfVxuICB9XG4gICYucGVuZGluZyAuc2V0dXAtc3RlcHBlci1pbmRpY2F0b3IgeyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy1zZWNvbmRhcnkpOyBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJvcmRlcik7IGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7IH1cbn1cblxuLyogQ29tcGxldGVkIFN0ZXAgUm93ICovXG4uY29tcGxldGVkLXN0ZXAtcm93IHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiB2YXIoLS1zcC0zKTsgcGFkZGluZzogdmFyKC0tc3AtMyk7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXN1Y2Nlc3MtMTApOyBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1zdWNjZXNzLTIwKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3AtMyk7IH1cbi5jb21wbGV0ZWQtc3RlcC1sYWJlbCB7IGZvbnQtc2l6ZTogMC44NzVyZW07IGZvbnQtd2VpZ2h0OiA1MDA7IGNvbG9yOiB2YXIoLS1jb2xvci1mZyk7IH1cbi5jb21wbGV0ZWQtc3RlcC12YWx1ZSB7IGZvbnQtc2l6ZTogMC43NXJlbTsgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTsgbWFyZ2luLWxlZnQ6IGF1dG87IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB3aGl0ZS1zcGFjZTogbm93cmFwOyBtYXgtd2lkdGg6IDUwJTsgfVxuXG4vKiBMb2NrZWQgU3RlcCBSb3cgKi9cbi5sb2NrZWQtc3RlcC1yb3cgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IHZhcigtLXNwLTMpOyBwYWRkaW5nOiB2YXIoLS1zcC0zKTsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3AtMyk7IG9wYWNpdHk6IDAuNjsgfVxuLmxvY2tlZC1zdGVwLXJvdyBzcGFuIHsgZm9udC1zaXplOiAwLjg3NXJlbTsgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTsgfVxuLmxvY2tlZC1zdGVwLWhpbnQgeyBtYXJnaW4tbGVmdDogYXV0bzsgZm9udC1zaXplOiAwLjc1cmVtOyB9XG5cbi8qIFNldHVwIFN0ZXAgQ2FyZCAqL1xuLnNldHVwLXN0ZXAtY2FyZCB7IHBhZGRpbmc6IHZhcigtLXNwLTQpOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZyk7IGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktMzApOyBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpOyBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcC00KTsgfVxuLnNldHVwLXN0ZXAtdGl0bGUgeyBmb250LXNpemU6IDAuODc1cmVtOyBmb250LXdlaWdodDogNjAwOyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcC0zKTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiB2YXIoLS1zcC0yKTsgfVxuLnNldHVwLXN0ZXAtY29udGVudCB7IGZvbnQtc2l6ZTogMC44NzVyZW07IGNvbG9yOiB2YXIoLS1jb2xvci1mZyk7IH1cbi5zZXR1cC1zdGVwLWNvbnRlbnQgcCB7IG1hcmdpbi1ib3R0b206IHZhcigtLXNwLTMpOyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyB9XG4uc2V0dXAtc3RlcC1jb250ZW50IG9sIHsgbWFyZ2luOiB2YXIoLS1zcC0zKSAwOyBwYWRkaW5nLWxlZnQ6IHZhcigtLXNwLTQpOyB9XG4uc2V0dXAtc3RlcC1jb250ZW50IG9sIGxpIHsgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3AtMik7IGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7IH1cblxuLyogVGltZSBXYXJuaW5nICovXG4udGltZS13YXJuaW5nIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IGdhcDogdmFyKC0tc3AtMyk7IHBhZGRpbmc6IHZhcigtLXNwLTQpOyBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci13YXJuaW5nLTEwKTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3Itd2FybmluZy0zMCk7IGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tY29sb3Itd2FybmluZyk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7IG1hcmdpbi1ib3R0b206IHZhcigtLXNwLTQpOyB9XG4udGltZS13YXJuaW5nLWljb24geyBmbGV4LXNocmluazogMDsgY29sb3I6IHZhcigtLWNvbG9yLXdhcm5pbmcpOyB9XG4udGltZS13YXJuaW5nLWNvbnRlbnQgeyBmbGV4OiAxOyB9XG4udGltZS13YXJuaW5nLXRpdGxlIHsgZm9udC1zaXplOiAwLjg3NXJlbTsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWNvbG9yLWZnKTsgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3AtMSk7IH1cbi50aW1lLXdhcm5pbmctdGV4dCB7IGZvbnQtc2l6ZTogMC43NXJlbTsgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTsgfVxuXG4vKiBDb25uZWN0ZWQgU3RhdHVzIENhcmQgKi9cbi5jb25uZWN0ZWQtc3RhdHVzLWNhcmQgeyBwYWRkaW5nOiB2YXIoLS1zcC00KTsgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3VjY2Vzcy01KTsgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3Itc3VjY2Vzcy0yMCk7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7IH1cbi5jb25uZWN0ZWQtc3RhdHVzLWhlYWRlciB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogdmFyKC0tc3AtMyk7IG1hcmdpbi1ib3R0b206IHZhcigtLXNwLTQpOyB9XG4uY29ubmVjdGVkLXN0YXR1cy10aXRsZSB7IGZvbnQtc2l6ZTogMXJlbTsgZm9udC13ZWlnaHQ6IDYwMDsgY29sb3I6IHZhcigtLWNvbG9yLWZnKTsgfVxuLmNvbm5lY3RlZC1zdGF0dXMtYmFkZ2Uge1xuICBmb250LXNpemU6IDAuNjI1cmVtO1xuICBmb250LXdlaWdodDogNjAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICBwYWRkaW5nOiB2YXIoLS1zcC0xKSB2YXIoLS1zcC0yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5KTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICYucHJvZHVjdGlvbiB7IGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXN1Y2Nlc3MtMjApOyBjb2xvcjogdmFyKC0tY29sb3Itc3VjY2Vzcyk7IH1cbiAgJi5zYW5kYm94IHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itd2FybmluZy0yMCk7IGNvbG9yOiB2YXIoLS1jb2xvci13YXJuaW5nKTsgfVxufVxuLmNvbm5lY3RlZC1zdGF0dXMtZ3JpZCB7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7IGdhcDogdmFyKC0tc3AtNCk7IG1hcmdpbi1ib3R0b206IHZhcigtLXNwLTQpOyB9XG4uY29ubmVjdGVkLXN0YXR1cy1hY3Rpb25zIHsgZGlzcGxheTogZmxleDsgZmxleC13cmFwOiB3cmFwOyBnYXA6IHZhcigtLXNwLTIpOyBwYWRkaW5nLXRvcDogdmFyKC0tc3AtMyk7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItNTApOyB9XG5cbi8qIEFkdmFuY2VkIE9wdGlvbnMgU2VjdGlvbiAqL1xuLmFkdmFuY2VkLW9wdGlvbnMtc2VjdGlvbiB7IG1hcmdpbi10b3A6IHZhcigtLXNwLTYpOyBwYWRkaW5nLXRvcDogdmFyKC0tc3AtNCk7IGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpOyB9XG4uYWR2YW5jZWQtb3B0aW9ucy1zdW1tYXJ5IHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiB2YXIoLS1zcC0yKTsgZm9udC1zaXplOiAwLjc1cmVtOyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyBjdXJzb3I6IHBvaW50ZXI7IHBhZGRpbmc6IHZhcigtLXNwLTIpIDA7IH1cbi5hZHZhbmNlZC1vcHRpb25zLXN1bW1hcnk6aG92ZXIgeyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyB9XG4uYWR2YW5jZWQtb3B0aW9ucy1jb250ZW50IHsgbWFyZ2luLXRvcDogdmFyKC0tc3AtNCk7IH1cbi5hZHZhbmNlZC1vcHRpb25zLWNvbnRlbnQgZGV0YWlscyB7IG1hcmdpbi1ib3R0b206IHZhcigtLXNwLTMpOyBwYWRkaW5nOiB2YXIoLS1zcC0zKTsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5KTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsgfVxuLmFkdmFuY2VkLW9wdGlvbnMtY29udGVudCBzdW1tYXJ5IHsgZm9udC1zaXplOiAwLjg3NXJlbTsgZm9udC13ZWlnaHQ6IDUwMDsgY3Vyc29yOiBwb2ludGVyOyBjb2xvcjogdmFyKC0tY29sb3ItZmctbXV0ZWQpOyB9XG4uYWR2YW5jZWQtb3B0aW9ucy1jb250ZW50IHN1bW1hcnk6aG92ZXIgeyBjb2xvcjogdmFyKC0tY29sb3ItZmcpOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBNSVNDXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uYWNjb3VudC1iYWRnZSB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBwYWRkaW5nOiAwLjI1cmVtIDAuNXJlbTsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5KTsgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTsgZm9udC1zaXplOiAwLjg3NXJlbTsgfVxuLmxhbmRpbmctbGluay1jYXJkIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiB2YXIoLS1zcC0zKTsgcGFkZGluZzogdmFyKC0tc3AtNik7IHRleHQtYWxpZ246IGNlbnRlcjsgZm9udC1zaXplOiAwLjg3NXJlbTsgZm9udC13ZWlnaHQ6IDYwMDsgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZmFzdCksIGJveC1zaGFkb3cgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTsgfVxuLmxhbmRpbmctbGluay1jYXJkOmhvdmVyIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTsgfVxuLmxhbmRpbmctdGV4dC1saW5rIHsgcGFkZGluZzogdmFyKC0tc3AtMSkgdmFyKC0tc3AtMik7IGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7IHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTsgfVxuLmxhbmRpbmctdGV4dC1saW5rOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmctc2Vjb25kYXJ5KTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRk9STSBBQ1RJT05TIChTdGlja3kpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRVhQRU5TRSBGT1JNIChVbmlmaWVkLCBhbHdheXMtZWRpdGFibGUpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4uZXhwZW5zZS1mb3JtLWNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogNDByZW07XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiB2YXIoLS1zcC00KTtcbn1cblxuLmV4cGVuc2UtZm9ybSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tc3AtNCk7XG59XG5cbi5leHBlbnNlLWZvcm0tcm93IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiB2YXIoLS1zcC0zKTtcbn1cblxuLmV4cGVuc2UtZm9ybS1maWVsZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tc3AtMSk7XG59XG5cbi5leHBlbnNlLWZvcm0tZmllbGQuZmxleC0xIHsgZmxleDogMTsgfVxuLmV4cGVuc2UtZm9ybS1maWVsZC5mbGV4LTIgeyBmbGV4OiAyOyB9XG5cbi5leHBlbnNlLWZvcm0tbGFiZWwge1xuICBmb250LXNpemU6IDAuNjg3NXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTtcbiAgbWFyZ2luLWJvdHRvbTogMC4xMjVyZW07XG59XG5cbi8qIFN0YXR1cyB0b2dnbGUgKi9cbi5leHBlbnNlLXN0YXR1cy10b2dnbGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZy1zZWNvbmRhcnkpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpO1xuICBwYWRkaW5nOiAwLjEyNXJlbTtcbiAgZ2FwOiAwLjEyNXJlbTtcbn1cblxuLmV4cGVuc2Utc3RhdHVzLW9wdGlvbiB7XG4gIGZsZXg6IDE7XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDAuNXJlbTtcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKC0tcmFkaXVzKSAtIDJweCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTtcbiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG5cbi5leHBlbnNlLXN0YXR1cy1vcHRpb246aG92ZXIge1xuICBjb2xvcjogdmFyKC0tY29sb3ItZmcpO1xufVxuXG4uZXhwZW5zZS1zdGF0dXMtb3B0aW9uLmFjdGl2ZSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWZnKTtcbiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LXNtKTtcbn1cblxuLyogUmVjZWlwdHMgc2VjdGlvbiAqL1xuLmV4cGVuc2UtcmVjZWlwdHMtc2VjdGlvbiB7XG4gIG1hcmdpbi10b3A6IHZhcigtLXNwLTIpO1xuICBwYWRkaW5nLXRvcDogdmFyKC0tc3AtMyk7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXIpO1xufVxuXG4uZXhwZW5zZS1yZWNlaXB0cy1oZWFkZXIge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcC0yKTtcbn1cblxuLmV4cGVuc2UtYXR0YWNobWVudHMtbGlzdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogdmFyKC0tc3AtMSk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLXNwLTIpO1xufVxuXG4uZXhwZW5zZS1hdHRhY2htZW50LWl0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDAuMzc1cmVtIDAuNXJlbTtcbiAgYmFja2dyb3VuZDogdmFyKC0tY29sb3Itc3VjY2Vzcy0xMCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7XG59XG5cbi5leHBlbnNlLWF0dGFjaG1lbnQtbGluayB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMC4zNzVyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1zdWNjZXNzKTtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBtaW4td2lkdGg6IDA7XG59XG5cbi5leHBlbnNlLWF0dGFjaG1lbnQtbGluazpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uZXhwZW5zZS1hdHRhY2htZW50LXJlbW92ZSB7XG4gIHBhZGRpbmc6IDAuMjVyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBvcGFjaXR5OiAwLjU7XG4gIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xufVxuXG4uZXhwZW5zZS1hdHRhY2htZW50LXJlbW92ZTpob3ZlciB7XG4gIG9wYWNpdHk6IDE7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1lcnJvcik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWVycm9yLTEwKTtcbn1cblxuLyogQ29tcGFjdCB1cGxvYWQgKi9cbi5leHBlbnNlLXVwbG9hZC1jb21wYWN0IHtcbiAgYm9yZGVyOiAxcHggZGFzaGVkIHZhcigtLWNvbG9yLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7XG4gIHRyYW5zaXRpb246IGFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xufVxuXG4uZXhwZW5zZS11cGxvYWQtY29tcGFjdDpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXByaW1hcnktNSk7XG59XG5cbi5leHBlbnNlLXVwbG9hZC1sYWJlbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDAuNXJlbTtcbiAgcGFkZGluZzogMC43NXJlbTtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1mZy1tdXRlZCk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmV4cGVuc2UtdXBsb2FkLWxhYmVsOmhvdmVyIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xufVxuXG4uZXhwZW5zZS11cGxvYWQtcHJvZ3Jlc3Mge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcC0yKTtcbiAgcGFkZGluZzogdmFyKC0tc3AtMik7XG4gIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJnLXNlY29uZGFyeSk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7XG59XG5cbi8qIEZvcm0gYWN0aW9ucyAqL1xuLmV4cGVuc2UtZm9ybS1hY3Rpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgZ2FwOiB2YXIoLS1zcC0yKTtcbiAgbWFyZ2luLXRvcDogdmFyKC0tc3AtMyk7XG4gIHBhZGRpbmctdG9wOiB2YXIoLS1zcC0zKTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XG59XG5cbi8qIFJhdyBsZWRnZXIgc2VjdGlvbiAqL1xuLmV4cGVuc2UtcmF3LXNlY3Rpb24ge1xuICBtYXJnaW4tdG9wOiB2YXIoLS1zcC00KTtcbiAgcGFkZGluZy10b3A6IHZhcigtLXNwLTMpO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyKTtcbn1cblxuLyogVGFnIGNoaXBzICovXG4udGFnLWNoaXBzLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjM3NXJlbTtcbiAgcGFkZGluZzogMC4zNzVyZW0gMC41cmVtO1xuICBtaW4taGVpZ2h0OiAyLjI1cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1iZyk7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWJvcmRlcik7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO1xufVxuXG4udGFnLWNoaXBzLWNvbnRhaW5lcjpmb2N1cy13aXRoaW4ge1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tY29sb3ItcHJpbWFyeS0yMCk7XG59XG5cbi50YWctY2hpcCB7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuMjVyZW07XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMzc1cmVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LTEwKTtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pO1xuICBmb250LXNpemU6IDAuNzVyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi50YWctY2hpcC1yZW1vdmUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWxlZnQ6IDAuMTI1cmVtO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5KTtcbiAgb3BhY2l0eTogMC42O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLCBiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7XG59XG5cbi50YWctY2hpcC1yZW1vdmU6aG92ZXIge1xuICBvcGFjaXR5OiAxO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1wcmltYXJ5LTIwKTtcbn1cblxuLnRhZy1pbnB1dCB7XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogODBweDtcbiAgcGFkZGluZzogMC4xMjVyZW0gMC4yNXJlbTtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZm9udC1zaXplOiAwLjgxMjVyZW07XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1mZyk7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi50YWctaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLWZnLW11dGVkKTtcbn1cblxuLyogUmVzcG9uc2l2ZSAtIEV4cGVuc2UgRm9ybSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDY0MHB4KSB7XG4gIC5leHBlbnNlLWZvcm0tcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG4gIC5leHBlbnNlLWZvcm0tZmllbGQuZmxleC0xLFxuICAuZXhwZW5zZS1mb3JtLWZpZWxkLmZsZXgtMiB7XG4gICAgZmxleDogbm9uZTtcbiAgfVxufVxuXG4vKiBSZWR1Y2VkIE1vdGlvbiBTdXBwb3J0ICovXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAub2NyLWxvYWRpbmctc3Bpbm5lciB7IGFuaW1hdGlvbjogbm9uZTsgfVxufVxuIiwgIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBSRVNQT05TSVZFIFNUWUxFU1xuICAgTWVkaWEgcXVlcmllcyBmb3IgdGFibGV0IGFuZCBkZXNrdG9wIGJyZWFrcG9pbnRzLlxuXG4gICBOT1RFOiBMYW5kaW5nIHBhZ2UgbWVkaWEgcXVlcmllcyBhcmUga2VwdCBpbmxpbmUgaW4gYXBwLmNzcyBhbG9uZ3NpZGVcbiAgIHRoZWlyIGNvbXBvbmVudCBzdHlsZXMgZm9yIGJldHRlciBtYWludGFpbmFiaWxpdHkuIFRoaXMgZmlsZSBjb250YWluc1xuICAgb25seSB0aGUgbWFpbiBhcHBsaWNhdGlvbiByZXNwb25zaXZlIHN0eWxlcy5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUQUJMRVQrICg3NjhweClcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAuYXBwLWxheW91dCB7IGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgLmFwcC1jb250ZW50IHsgcGFkZGluZy1ib3R0b206IDIuNXJlbTsgfVxuICAuY29udGVudC1hcmVhIHsgcGFkZGluZzogdmFyKC0tc3AtOCk7IG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnNpZGViYXItbmF2IHsgZGlzcGxheTogZmxleDsgfVxuICAubW9iaWxlLW5hdiB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgLnBhZ2UtaGVhZGVyIHsgcGFkZGluZzogdmFyKC0tc3AtMikgdmFyKC0tc3AtNik7IGdhcDogdmFyKC0tc3AtMyk7IH1cbiAgLnBhZ2UtaGVhZGVyLXNlbGVjdG9ycyB7IGRpc3BsYXk6IGZsZXg7IH1cbiAgLmZpbHRlci1iYXIgeyBwYWRkaW5nOiB2YXIoLS1zcC0zKSB2YXIoLS1zcC02KTsgZ2FwOiB2YXIoLS1zcC00KTsgfVxuICAuZmlsdGVyLWJhci1zZWFyY2ggeyB3aWR0aDogYXV0bzsgZmxleDogMTsgbWluLXdpZHRoOiAxMnJlbTsgbWF4LXdpZHRoOiAyMHJlbTsgfVxuICAuZmlsdGVyLW1lbnUtZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7IH1cbiAgLmFkdmFuY2VkLWZpbHRlcnMgeyBwYWRkaW5nOiAwLjVyZW0gMS41cmVtOyB9XG4gIC5tZXRyaWNzLWdyaWQgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOyB9XG4gIC5kZXRhaWwtZ3JpZC5jb2xzLTQgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpOyB9XG4gIC5wZGYtdmlld2VyLWZyYW1lIHsgaGVpZ2h0OiA4MjBweDsgfVxuICAucG9zdGluZy1yb3cgeyBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBNT0JJTEUgKG1heCA3NjdweClcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY29sLTEsIC5jb2wtMiwgLmNvbC0zLCAuY29sLTQsIC5jb2wtNSwgLmNvbC02LCAuY29sLTcsIC5jb2wtOCwgLmNvbC05LCAuY29sLTEwLCAuY29sLTExLCAuY29sLTEyIHsgZ3JpZC1jb2x1bW46IHNwYW4gMTI7IH1cbiAgLnBvc3Rpbmctcm93IHsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAucG9zdGluZy1yb3cgPiBkaXYgeyB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC5zY3JpcHRzLWxheW91dCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBERVNLVE9QICgxMDI0cHgpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5maWx0ZXItbWVudS1ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTsgfVxuICAuZmlsZXMtZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7IH1cbiAgLnBob2VuaXgtbGFuZGluZy1iZyB7IGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IGxlZnQ6IDQwcmVtOyB9XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBMQVJHRSBERVNLVE9QICgxMjgwcHgpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KSB7XG4gIC5tZXRyaWNzLWdyaWQgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpOyB9XG4gIC5waG9lbml4LWxhbmRpbmctYmcgeyBsZWZ0OiA1MHJlbTsgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgU0VUVVAgV0laQVJEIFJFU1BPTlNJVkVcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2NDBweCkge1xuICAuc2V0dXAtc3RlcHBlci1saXN0IHsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IGdhcDogdmFyKC0tc3AtMik7IH1cbiAgLnNldHVwLXN0ZXBwZXItaXRlbSB7IGZsZXgtZGlyZWN0aW9uOiByb3c7IG1heC13aWR0aDogbm9uZTsgZ2FwOiB2YXIoLS1zcC0zKTsgfVxuICAuc2V0dXAtc3RlcHBlci1sYWJlbCB7IG1hcmdpbi10b3A6IDA7IHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLnNldHVwLXN0ZXBwZXItY29ubmVjdG9yIHsgZGlzcGxheTogbm9uZTsgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUFBO0FBQWtEO0FBQVk7QUFBQSxFQUFFLENBQUM7QUFBQSxFQUFRLENBQUM7QUFBTyxnQkFBVztBQUFXLGlDQUE0QjtBQUFXO0FBQUM7QUFBRSxZQUFPO0FBQUM7QUFBQztBQUFLLGNBQVM7QUFBQztBQUFDO0FBQUEsRUFBSztBQUFBLEVBQU8sQ0FBQztBQUFTLGlCQUFZLElBQUk7QUFBYSxlQUFVLElBQUk7QUFBZ0IsaUJBQVksSUFBSTtBQUFrQixXQUFNLElBQUk7QUFBYTtBQUFDO0FBQUssc0JBQWlCLElBQUk7QUFBYyxXQUFNLElBQUk7QUFBYyw0QkFBdUI7QUFBVztBQUFDO0FBQUEsRUFBSTtBQUFBLEVBQVE7QUFBQSxFQUFNO0FBQUEsRUFBTztBQUFJLGVBQVU7QUFBSTtBQUFDO0FBQUEsRUFBRTtBQUFBLEVBQUc7QUFBQSxFQUFHO0FBQUEsRUFBRztBQUFBLEVBQUc7QUFBQSxFQUFHO0FBQUcsbUJB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 */
