/**
 * Fluid Core
 * Reset & Normalize, Design Tokens, Base Typography, Layout Primitives,
 * and core responsive/print helpers.
 */

/* ============================================
   LAYER 1: RESET & NORMALIZE
   ============================================ */

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  font-size: 16px;
}

body {
  min-height: 100vh;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
  height: auto;
}

input, button, textarea, select {
  font: inherit;
  color: inherit;
}

button {
  cursor: pointer;
  background: none;
  border: none;
}

p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
}

a {
  color: inherit;
  text-decoration: none;
}

/* ============================================
   LAYER 2: DESIGN TOKENS
   ============================================ */

:root {
  /* Core spacing scale - fluid and consistent */
  --fluid-space-unit: 1rem;
  --fluid-space-xs: calc(var(--fluid-space-unit) * 0.25);
  --fluid-space-sm: calc(var(--fluid-space-unit) * 0.5);
  --fluid-space-md: var(--fluid-space-unit);
  --fluid-space-lg: calc(var(--fluid-space-unit) * 1.5);
  --fluid-space-xl: calc(var(--fluid-space-unit) * 2);
  --fluid-space-2xl: calc(var(--fluid-space-unit) * 3);
  --fluid-space-3xl: calc(var(--fluid-space-unit) * 4);
  --fluid-space-4xl: calc(var(--fluid-space-unit) * 6);

  /* Default flow spacing */
  --fluid-flow-space: var(--fluid-space-lg);

  /* Brand colors */
  --fluid-brand: #5b63d3;
  --fluid-brand-dark: #4549a3;
  --fluid-brand-light: #8b93e3;

  /* Semantic colors */
  --fluid-color-primary: var(--fluid-brand);
  --fluid-color-primary-hover: var(--fluid-brand-dark);
  --fluid-color-success: #22c55e;
  --fluid-color-warning: #fb923c;
  --fluid-color-danger: #ef4444;
  --fluid-color-info: #3b82f6;

  /* Neutral colors */
  --fluid-color-text: #1a1a1a;
  --fluid-color-text-light: #6b7280;
  --fluid-color-bg: #ffffff;
  --fluid-color-bg-alt: #f9fafb;
  --fluid-color-surface: #ffffff;
  --fluid-color-border: #e5e7eb;
  --fluid-color-border-light: #f3f4f6;

  /* Typography */
  --fluid-font-sans: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;
  --fluid-font-mono: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', monospace;

  /* Font sizes - fluid scaling */
  --fluid-text-xs: clamp(0.75rem, 1.5vw, 0.875rem);
  --fluid-text-sm: clamp(0.875rem, 2vw, 1rem);
  --fluid-text-base: clamp(1rem, 2.5vw, 1.125rem);
  --fluid-text-lg: clamp(1.125rem, 3vw, 1.25rem);
  --fluid-text-xl: clamp(1.25rem, 3.5vw, 1.5rem);
  --fluid-text-2xl: clamp(1.5rem, 4vw, 2rem);
  --fluid-text-3xl: clamp(2rem, 5vw, 3rem);
  --fluid-text-4xl: clamp(2.5rem, 6vw, 4rem);

  /* Border radius */
  --fluid-radius-sm: 0.25rem;
  --fluid-radius-md: 0.5rem;
  --fluid-radius-lg: 0.75rem;
  --fluid-radius-xl: 1rem;
  --fluid-radius-2xl: 1.5rem;
  --fluid-radius-full: 9999px;

  /* Shadows - subtle and layered */
  --fluid-shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --fluid-shadow-sm: 0 2px 4px -1px rgb(0 0 0 / 0.06);
  --fluid-shadow-md: 0 4px 6px -2px rgb(0 0 0 / 0.1);
  --fluid-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);
  --fluid-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1);
  --fluid-shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);

  /* Container */
  --fluid-container-max: 1200px;
  --fluid-container-padding: var(--fluid-space-lg);

  /* Transitions */
  --fluid-transition-fast: 150ms ease;
  --fluid-transition: 250ms ease;
  --fluid-transition-slow: 350ms ease;

  /* Motion timing functions */
  --fluid-ease-in: cubic-bezier(0.4, 0, 1, 1);
  --fluid-ease-out: cubic-bezier(0, 0, 0.2, 1);
  --fluid-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --fluid-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Dark theme tokens */
[data-theme="dark"] {
  --fluid-color-text: #f3f4f6;
  --fluid-color-text-light: #9ca3af;
  --fluid-color-bg: #0a0a0a;
  --fluid-color-bg-alt: #18181b;
  --fluid-color-surface: #18181b;
  --fluid-color-border: #27272a;
  --fluid-color-border-light: #3f3f46;
}

/* ============================================
   LAYER 3: BASE TYPOGRAPHY
   ============================================ */

body {
  font-family: var(--fluid-font-sans);
  font-size: var(--fluid-text-base);
  color: var(--fluid-color-text);
  background: var(--fluid-color-bg);
}

/* Accessible focus styles */
:focus-visible {
  outline: 2px solid var(--fluid-color-primary);
  outline-offset: 2px;
}

a:focus-visible,
button:focus-visible,
.fluid-btn:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--fluid-color-primary) 30%, transparent);
  border-color: var(--fluid-color-primary);
}

/* Headings */
h1, h2, h3, h4, h5, h6 {
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--fluid-color-text);
}

h1 { font-size: var(--fluid-text-4xl); font-weight: 700; }
h2 { font-size: var(--fluid-text-3xl); font-weight: 600; }
h3 { font-size: var(--fluid-text-2xl); }
h4 { font-size: var(--fluid-text-xl); }
h5 { font-size: var(--fluid-text-lg); }
h6 { font-size: var(--fluid-text-base); font-weight: 500; }

/* Paragraphs and text */
p { margin-bottom: var(--fluid-space-md); }
p:last-child { margin-bottom: 0; }
strong { font-weight: 600; }
small { font-size: var(--fluid-text-sm); }

/* Links */
a {
  color: var(--fluid-color-primary);
  text-decoration: none;
  transition: color var(--fluid-transition-fast);
}
a:hover { color: var(--fluid-color-primary-hover); text-decoration: underline; }

/* Lists */
ul, ol { padding-left: var(--fluid-space-lg); margin-bottom: var(--fluid-space-md); }
li { margin-bottom: var(--fluid-space-xs); }

/* Code */
code {
  font-family: var(--fluid-font-mono);
  font-size: 0.875em;
  background: var(--fluid-color-bg-alt);
  padding: 0.125em 0.25em;
  border-radius: var(--fluid-radius-sm);
}
pre {
  font-family: var(--fluid-font-mono);
  font-size: var(--fluid-text-sm);
  background: var(--fluid-color-bg-alt);
  padding: var(--fluid-space-md);
  border-radius: var(--fluid-radius-md);
  overflow-x: auto;
  margin-bottom: var(--fluid-space-md);
}
pre code { background: none; padding: 0; }

/* ============================================
   LAYER 4: LAYOUT PRIMITIVES
   ============================================ */

.fluid-container {
  width: 100%;
  max-width: var(--fluid-container-max);
  margin-inline: auto;
  padding-inline: var(--fluid-container-padding);
}

.fluid-flow > * + * { margin-top: var(--fluid-flow-space, var(--fluid-space-lg)); }

.fluid-stack { display: flex; flex-direction: column; gap: var(--gap, var(--fluid-space-lg)); }

.fluid-cluster { display: flex; flex-wrap: wrap; gap: var(--gap, var(--fluid-space-md)); align-items: center; }

.fluid-grid { display: grid; gap: var(--gap, var(--fluid-space-lg)); grid-template-columns: repeat(auto-fit, minmax(var(--min, 250px), 1fr)); }

.fluid-center { display: grid; place-items: center; min-height: var(--min-height, 100vh); }

.fluid-section { padding-block: var(--fluid-space-3xl); }

/* ============================================
   RESPONSIVE (Core)
   ============================================ */

@media (max-width: 768px) {
  :root { --fluid-container-padding: var(--fluid-space-md); }
  .fluid-section { padding-block: var(--fluid-space-2xl); }
}

/* Print (Core) */
@media print {
  .fluid-no-print { display: none !important; }
}


/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jc3MvbGF5ZXJzL2NvcmUuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6ImZsdWlkLWNvcmUubWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRmx1aWQgQ29yZVxuICogUmVzZXQgJiBOb3JtYWxpemUsIERlc2lnbiBUb2tlbnMsIEJhc2UgVHlwb2dyYXBoeSwgTGF5b3V0IFByaW1pdGl2ZXMsXG4gKiBhbmQgY29yZSByZXNwb25zaXZlL3ByaW50IGhlbHBlcnMuXG4gKi9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIExBWUVSIDE6IFJFU0VUICYgTk9STUFMSVpFXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4qLCAqOjpiZWZvcmUsICo6OmFmdGVyIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xufVxuXG5odG1sIHtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgZm9udC1zaXplOiAxNnB4O1xufVxuXG5ib2R5IHtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5O1xufVxuXG5pbWcsIHBpY3R1cmUsIHZpZGVvLCBjYW52YXMsIHN2ZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cblxuaW5wdXQsIGJ1dHRvbiwgdGV4dGFyZWEsIHNlbGVjdCB7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGNvbG9yOiBpbmhlcml0O1xufVxuXG5idXR0b24ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxucCwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbmEge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTEFZRVIgMjogREVTSUdOIFRPS0VOU1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuOnJvb3Qge1xuICAvKiBDb3JlIHNwYWNpbmcgc2NhbGUgLSBmbHVpZCBhbmQgY29uc2lzdGVudCAqL1xuICAtLWZsdWlkLXNwYWNlLXVuaXQ6IDFyZW07XG4gIC0tZmx1aWQtc3BhY2UteHM6IGNhbGModmFyKC0tZmx1aWQtc3BhY2UtdW5pdCkgKiAwLjI1KTtcbiAgLS1mbHVpZC1zcGFjZS1zbTogY2FsYyh2YXIoLS1mbHVpZC1zcGFjZS11bml0KSAqIDAuNSk7XG4gIC0tZmx1aWQtc3BhY2UtbWQ6IHZhcigtLWZsdWlkLXNwYWNlLXVuaXQpO1xuICAtLWZsdWlkLXNwYWNlLWxnOiBjYWxjKHZhcigtLWZsdWlkLXNwYWNlLXVuaXQpICogMS41KTtcbiAgLS1mbHVpZC1zcGFjZS14bDogY2FsYyh2YXIoLS1mbHVpZC1zcGFjZS11bml0KSAqIDIpO1xuICAtLWZsdWlkLXNwYWNlLTJ4bDogY2FsYyh2YXIoLS1mbHVpZC1zcGFjZS11bml0KSAqIDMpO1xuICAtLWZsdWlkLXNwYWNlLTN4bDogY2FsYyh2YXIoLS1mbHVpZC1zcGFjZS11bml0KSAqIDQpO1xuICAtLWZsdWlkLXNwYWNlLTR4bDogY2FsYyh2YXIoLS1mbHVpZC1zcGFjZS11bml0KSAqIDYpO1xuXG4gIC8qIERlZmF1bHQgZmxvdyBzcGFjaW5nICovXG4gIC0tZmx1aWQtZmxvdy1zcGFjZTogdmFyKC0tZmx1aWQtc3BhY2UtbGcpO1xuXG4gIC8qIEJyYW5kIGNvbG9ycyAqL1xuICAtLWZsdWlkLWJyYW5kOiAjNWI2M2QzO1xuICAtLWZsdWlkLWJyYW5kLWRhcms6ICM0NTQ5YTM7XG4gIC0tZmx1aWQtYnJhbmQtbGlnaHQ6ICM4YjkzZTM7XG5cbiAgLyogU2VtYW50aWMgY29sb3JzICovXG4gIC0tZmx1aWQtY29sb3ItcHJpbWFyeTogdmFyKC0tZmx1aWQtYnJhbmQpO1xuICAtLWZsdWlkLWNvbG9yLXByaW1hcnktaG92ZXI6IHZhcigtLWZsdWlkLWJyYW5kLWRhcmspO1xuICAtLWZsdWlkLWNvbG9yLXN1Y2Nlc3M6ICMyMmM1NWU7XG4gIC0tZmx1aWQtY29sb3Itd2FybmluZzogI2ZiOTIzYztcbiAgLS1mbHVpZC1jb2xvci1kYW5nZXI6ICNlZjQ0NDQ7XG4gIC0tZmx1aWQtY29sb3ItaW5mbzogIzNiODJmNjtcblxuICAvKiBOZXV0cmFsIGNvbG9ycyAqL1xuICAtLWZsdWlkLWNvbG9yLXRleHQ6ICMxYTFhMWE7XG4gIC0tZmx1aWQtY29sb3ItdGV4dC1saWdodDogIzZiNzI4MDtcbiAgLS1mbHVpZC1jb2xvci1iZzogI2ZmZmZmZjtcbiAgLS1mbHVpZC1jb2xvci1iZy1hbHQ6ICNmOWZhZmI7XG4gIC0tZmx1aWQtY29sb3Itc3VyZmFjZTogI2ZmZmZmZjtcbiAgLS1mbHVpZC1jb2xvci1ib3JkZXI6ICNlNWU3ZWI7XG4gIC0tZmx1aWQtY29sb3ItYm9yZGVyLWxpZ2h0OiAjZjNmNGY2O1xuXG4gIC8qIFR5cG9ncmFwaHkgKi9cbiAgLS1mbHVpZC1mb250LXNhbnM6IHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgJ1NlZ29lIFVJJywgUm9ib3RvLCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmO1xuICAtLWZsdWlkLWZvbnQtbW9ubzogJ1NGIE1vbm8nLCBNb25hY28sICdDYXNjYWRpYSBDb2RlJywgJ1JvYm90byBNb25vJywgbW9ub3NwYWNlO1xuXG4gIC8qIEZvbnQgc2l6ZXMgLSBmbHVpZCBzY2FsaW5nICovXG4gIC0tZmx1aWQtdGV4dC14czogY2xhbXAoMC43NXJlbSwgMS41dncsIDAuODc1cmVtKTtcbiAgLS1mbHVpZC10ZXh0LXNtOiBjbGFtcCgwLjg3NXJlbSwgMnZ3LCAxcmVtKTtcbiAgLS1mbHVpZC10ZXh0LWJhc2U6IGNsYW1wKDFyZW0sIDIuNXZ3LCAxLjEyNXJlbSk7XG4gIC0tZmx1aWQtdGV4dC1sZzogY2xhbXAoMS4xMjVyZW0sIDN2dywgMS4yNXJlbSk7XG4gIC0tZmx1aWQtdGV4dC14bDogY2xhbXAoMS4yNXJlbSwgMy41dncsIDEuNXJlbSk7XG4gIC0tZmx1aWQtdGV4dC0yeGw6IGNsYW1wKDEuNXJlbSwgNHZ3LCAycmVtKTtcbiAgLS1mbHVpZC10ZXh0LTN4bDogY2xhbXAoMnJlbSwgNXZ3LCAzcmVtKTtcbiAgLS1mbHVpZC10ZXh0LTR4bDogY2xhbXAoMi41cmVtLCA2dncsIDRyZW0pO1xuXG4gIC8qIEJvcmRlciByYWRpdXMgKi9cbiAgLS1mbHVpZC1yYWRpdXMtc206IDAuMjVyZW07XG4gIC0tZmx1aWQtcmFkaXVzLW1kOiAwLjVyZW07XG4gIC0tZmx1aWQtcmFkaXVzLWxnOiAwLjc1cmVtO1xuICAtLWZsdWlkLXJhZGl1cy14bDogMXJlbTtcbiAgLS1mbHVpZC1yYWRpdXMtMnhsOiAxLjVyZW07XG4gIC0tZmx1aWQtcmFkaXVzLWZ1bGw6IDk5OTlweDtcblxuICAvKiBTaGFkb3dzIC0gc3VidGxlIGFuZCBsYXllcmVkICovXG4gIC0tZmx1aWQtc2hhZG93LXhzOiAwIDFweCAycHggMCByZ2IoMCAwIDAgLyAwLjA1KTtcbiAgLS1mbHVpZC1zaGFkb3ctc206IDAgMnB4IDRweCAtMXB4IHJnYigwIDAgMCAvIDAuMDYpO1xuICAtLWZsdWlkLXNoYWRvdy1tZDogMCA0cHggNnB4IC0ycHggcmdiKDAgMCAwIC8gMC4xKTtcbiAgLS1mbHVpZC1zaGFkb3ctbGc6IDAgMTBweCAxNXB4IC0zcHggcmdiKDAgMCAwIC8gMC4xKTtcbiAgLS1mbHVpZC1zaGFkb3cteGw6IDAgMjBweCAyNXB4IC01cHggcmdiKDAgMCAwIC8gMC4xKTtcbiAgLS1mbHVpZC1zaGFkb3ctMnhsOiAwIDI1cHggNTBweCAtMTJweCByZ2IoMCAwIDAgLyAwLjI1KTtcblxuICAvKiBDb250YWluZXIgKi9cbiAgLS1mbHVpZC1jb250YWluZXItbWF4OiAxMjAwcHg7XG4gIC0tZmx1aWQtY29udGFpbmVyLXBhZGRpbmc6IHZhcigtLWZsdWlkLXNwYWNlLWxnKTtcblxuICAvKiBUcmFuc2l0aW9ucyAqL1xuICAtLWZsdWlkLXRyYW5zaXRpb24tZmFzdDogMTUwbXMgZWFzZTtcbiAgLS1mbHVpZC10cmFuc2l0aW9uOiAyNTBtcyBlYXNlO1xuICAtLWZsdWlkLXRyYW5zaXRpb24tc2xvdzogMzUwbXMgZWFzZTtcblxuICAvKiBNb3Rpb24gdGltaW5nIGZ1bmN0aW9ucyAqL1xuICAtLWZsdWlkLWVhc2UtaW46IGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpO1xuICAtLWZsdWlkLWVhc2Utb3V0OiBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcbiAgLS1mbHVpZC1lYXNlLWluLW91dDogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcbiAgLS1mbHVpZC1lYXNlLXNwcmluZzogY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpO1xufVxuXG4vKiBEYXJrIHRoZW1lIHRva2VucyAqL1xuW2RhdGEtdGhlbWU9XCJkYXJrXCJdIHtcbiAgLS1mbHVpZC1jb2xvci10ZXh0OiAjZjNmNGY2O1xuICAtLWZsdWlkLWNvbG9yLXRleHQtbGlnaHQ6ICM5Y2EzYWY7XG4gIC0tZmx1aWQtY29sb3ItYmc6ICMwYTBhMGE7XG4gIC0tZmx1aWQtY29sb3ItYmctYWx0OiAjMTgxODFiO1xuICAtLWZsdWlkLWNvbG9yLXN1cmZhY2U6ICMxODE4MWI7XG4gIC0tZmx1aWQtY29sb3ItYm9yZGVyOiAjMjcyNzJhO1xuICAtLWZsdWlkLWNvbG9yLWJvcmRlci1saWdodDogIzNmM2Y0Njtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIExBWUVSIDM6IEJBU0UgVFlQT0dSQVBIWVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mbHVpZC1mb250LXNhbnMpO1xuICBmb250LXNpemU6IHZhcigtLWZsdWlkLXRleHQtYmFzZSk7XG4gIGNvbG9yOiB2YXIoLS1mbHVpZC1jb2xvci10ZXh0KTtcbiAgYmFja2dyb3VuZDogdmFyKC0tZmx1aWQtY29sb3ItYmcpO1xufVxuXG4vKiBBY2Nlc3NpYmxlIGZvY3VzIHN0eWxlcyAqL1xuOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZmx1aWQtY29sb3ItcHJpbWFyeSk7XG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbmE6Zm9jdXMtdmlzaWJsZSxcbmJ1dHRvbjpmb2N1cy12aXNpYmxlLFxuLmZsdWlkLWJ0bjpmb2N1cy12aXNpYmxlLFxuaW5wdXQ6Zm9jdXMtdmlzaWJsZSxcbnNlbGVjdDpmb2N1cy12aXNpYmxlLFxudGV4dGFyZWE6Zm9jdXMtdmlzaWJsZSB7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDNweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZmx1aWQtY29sb3ItcHJpbWFyeSkgMzAlLCB0cmFuc3BhcmVudCk7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tZmx1aWQtY29sb3ItcHJpbWFyeSk7XG59XG5cbi8qIEhlYWRpbmdzICovXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XG4gIGNvbG9yOiB2YXIoLS1mbHVpZC1jb2xvci10ZXh0KTtcbn1cblxuaDEgeyBmb250LXNpemU6IHZhcigtLWZsdWlkLXRleHQtNHhsKTsgZm9udC13ZWlnaHQ6IDcwMDsgfVxuaDIgeyBmb250LXNpemU6IHZhcigtLWZsdWlkLXRleHQtM3hsKTsgZm9udC13ZWlnaHQ6IDYwMDsgfVxuaDMgeyBmb250LXNpemU6IHZhcigtLWZsdWlkLXRleHQtMnhsKTsgfVxuaDQgeyBmb250LXNpemU6IHZhcigtLWZsdWlkLXRleHQteGwpOyB9XG5oNSB7IGZvbnQtc2l6ZTogdmFyKC0tZmx1aWQtdGV4dC1sZyk7IH1cbmg2IHsgZm9udC1zaXplOiB2YXIoLS1mbHVpZC10ZXh0LWJhc2UpOyBmb250LXdlaWdodDogNTAwOyB9XG5cbi8qIFBhcmFncmFwaHMgYW5kIHRleHQgKi9cbnAgeyBtYXJnaW4tYm90dG9tOiB2YXIoLS1mbHVpZC1zcGFjZS1tZCk7IH1cbnA6bGFzdC1jaGlsZCB7IG1hcmdpbi1ib3R0b206IDA7IH1cbnN0cm9uZyB7IGZvbnQtd2VpZ2h0OiA2MDA7IH1cbnNtYWxsIHsgZm9udC1zaXplOiB2YXIoLS1mbHVpZC10ZXh0LXNtKTsgfVxuXG4vKiBMaW5rcyAqL1xuYSB7XG4gIGNvbG9yOiB2YXIoLS1mbHVpZC1jb2xvci1wcmltYXJ5KTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBjb2xvciB2YXIoLS1mbHVpZC10cmFuc2l0aW9uLWZhc3QpO1xufVxuYTpob3ZlciB7IGNvbG9yOiB2YXIoLS1mbHVpZC1jb2xvci1wcmltYXJ5LWhvdmVyKTsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLyogTGlzdHMgKi9cbnVsLCBvbCB7IHBhZGRpbmctbGVmdDogdmFyKC0tZmx1aWQtc3BhY2UtbGcpOyBtYXJnaW4tYm90dG9tOiB2YXIoLS1mbHVpZC1zcGFjZS1tZCk7IH1cbmxpIHsgbWFyZ2luLWJvdHRvbTogdmFyKC0tZmx1aWQtc3BhY2UteHMpOyB9XG5cbi8qIENvZGUgKi9cbmNvZGUge1xuICBmb250LWZhbWlseTogdmFyKC0tZmx1aWQtZm9udC1tb25vKTtcbiAgZm9udC1zaXplOiAwLjg3NWVtO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1mbHVpZC1jb2xvci1iZy1hbHQpO1xuICBwYWRkaW5nOiAwLjEyNWVtIDAuMjVlbTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZmx1aWQtcmFkaXVzLXNtKTtcbn1cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mbHVpZC1mb250LW1vbm8pO1xuICBmb250LXNpemU6IHZhcigtLWZsdWlkLXRleHQtc20pO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1mbHVpZC1jb2xvci1iZy1hbHQpO1xuICBwYWRkaW5nOiB2YXIoLS1mbHVpZC1zcGFjZS1tZCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWZsdWlkLXJhZGl1cy1tZCk7XG4gIG92ZXJmbG93LXg6IGF1dG87XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLWZsdWlkLXNwYWNlLW1kKTtcbn1cbnByZSBjb2RlIHsgYmFja2dyb3VuZDogbm9uZTsgcGFkZGluZzogMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTEFZRVIgNDogTEFZT1VUIFBSSU1JVElWRVNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5mbHVpZC1jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiB2YXIoLS1mbHVpZC1jb250YWluZXItbWF4KTtcbiAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLWZsdWlkLWNvbnRhaW5lci1wYWRkaW5nKTtcbn1cblxuLmZsdWlkLWZsb3cgPiAqICsgKiB7IG1hcmdpbi10b3A6IHZhcigtLWZsdWlkLWZsb3ctc3BhY2UsIHZhcigtLWZsdWlkLXNwYWNlLWxnKSk7IH1cblxuLmZsdWlkLXN0YWNrIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiB2YXIoLS1nYXAsIHZhcigtLWZsdWlkLXNwYWNlLWxnKSk7IH1cblxuLmZsdWlkLWNsdXN0ZXIgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXA7IGdhcDogdmFyKC0tZ2FwLCB2YXIoLS1mbHVpZC1zcGFjZS1tZCkpOyBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi5mbHVpZC1ncmlkIHsgZGlzcGxheTogZ3JpZDsgZ2FwOiB2YXIoLS1nYXAsIHZhcigtLWZsdWlkLXNwYWNlLWxnKSk7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgodmFyKC0tbWluLCAyNTBweCksIDFmcikpOyB9XG5cbi5mbHVpZC1jZW50ZXIgeyBkaXNwbGF5OiBncmlkOyBwbGFjZS1pdGVtczogY2VudGVyOyBtaW4taGVpZ2h0OiB2YXIoLS1taW4taGVpZ2h0LCAxMDB2aCk7IH1cblxuLmZsdWlkLXNlY3Rpb24geyBwYWRkaW5nLWJsb2NrOiB2YXIoLS1mbHVpZC1zcGFjZS0zeGwpOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBSRVNQT05TSVZFIChDb3JlKVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIDpyb290IHsgLS1mbHVpZC1jb250YWluZXItcGFkZGluZzogdmFyKC0tZmx1aWQtc3BhY2UtbWQpOyB9XG4gIC5mbHVpZC1zZWN0aW9uIHsgcGFkZGluZy1ibG9jazogdmFyKC0tZmx1aWQtc3BhY2UtMnhsKTsgfVxufVxuXG4vKiBQcmludCAoQ29yZSkgKi9cbkBtZWRpYSBwcmludCB7XG4gIC5mbHVpZC1uby1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxufVxuXG4iXX0= */