@charset "UTF-8";
/* Base */ /* Reset and base styles  */
* {
  padding: 0;
  margin: 0;
  border: none;
}

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

/* Links */
a, a:link, a:visited {
  text-decoration: none;
}

a:hover {
  text-decoration: none;
}

/* Common */
aside, nav, footer, header, section, main {
  display: block;
}

h1, h2, h3, h4, h5, h6, p {
  font-size: inherit;
  font-weight: inherit;
}

ul, ul li {
  list-style: none;
}

img {
  vertical-align: top;
}

img, svg {
  max-width: 100%;
  height: auto;
}

address {
  font-style: normal;
}

/* Form */
input, textarea, button, select {
  font-family: inherit;
  font-size: inherit;
  color: inherit;
  background-color: transparent;
}

input::-ms-clear {
  display: none;
}

button, input[type=submit] {
  display: inline-block;
  box-shadow: none;
  background-color: transparent;
  background: none;
  cursor: pointer;
}

input:focus, input:active,
button:focus, button:active {
  outline: none;
}

button::-moz-focus-inner {
  padding: 0;
  border: 0;
}

label {
  cursor: pointer;
}

legend {
  display: block;
}

/* 1rem = 10px при стандартном размере шрифта в браузере (16px × 62.5%) */
html {
  font-size: 62.5%;
  -webkit-text-size-adjust: 100%;
}

body {
  font-size: 1.6rem;
  line-height: 1.5;
}

/* Брейкпоинты (значения для min-width, mobile-first) */
/* Max-width: удобно для «до планшета» и т.п. */
:root {
  /* Контейнер на всю ширину вьюпорта; сетку задаёт --container-padding */
  --container-width: 100%;
  --font-main: "Montserrat", sans-serif;
  --font-accent: "Montserrat", sans-serif;
  --font-titles: var(--font-accent);
  --page-bg: #fff;
  --text-color: #000;
  --accent: #ac182c;
  --link-color: #2578c8;
  /* Брейкпоинты в rem (1rem = 10px) — для calc в JS или кастомных правил */
  --bp-320: 32rem;
  --bp-360: 36rem;
  --bp-480: 48rem;
  --bp-567: 56.7rem;
  --bp-768: 76.8rem;
  --bp-992: 99.2rem;
  --bp-1200: 120rem;
  --bp-1440: 144rem;
  --bp-1600: 160rem;
  --bp-1920: 192rem;
  --laptop-size: 119.98rem;
  --tablet-size: 99.198rem;
  --mobile-size: 76.798rem;
  /* Боковые отступы: плавный рост к 8rem на 1440px; на 1600+ и 1920+ чуть шире «воздух» */
  --container-padding: 1.2rem;
}

@media (min-width: 360px) {
  :root {
    --container-padding: 1.2rem;
  }
}
@media (min-width: 480px) {
  :root {
    --container-padding: 1.4rem;
  }
}
@media (min-width: 567px) {
  :root {
    --container-padding: 1.6rem;
  }
}
@media (min-width: 768px) {
  :root {
    --container-padding: 2.4rem;
  }
}
@media (min-width: 992px) {
  :root {
    --container-padding: 4rem;
  }
}
@media (min-width: 1200px) {
  :root {
    --container-padding: 6rem;
  }
}
@media (min-width: 1440px) {
  :root {
    --container-padding: 8rem;
  }
}
@media (min-width: 1600px) {
  :root {
    --container-padding: 10rem;
  }
}
@media (min-width: 1920px) {
  :root {
    --container-padding: 12rem;
  }
}
.dark {
  --page-bg: #252526;
  --text-color: #fff;
}

/* Брейкпоинты (значения для min-width, mobile-first) */
/* Max-width: удобно для «до планшета» и т.п. */
/* Семантика шаблона: «планшет» — до 1200px, «мобильный» — до 768px */
@font-face {
  font-family: Montserrat;
  font-display: swap;
  src: url("../fonts/Montserrat-Bold.woff2") format("woff2"), url("../fonts/Montserrat-Bold.woff") format("woff");
  font-weight: 700;
  font-style: normal;
}
@font-face {
  font-family: Montserrat;
  font-display: swap;
  src: url("../fonts/Montserrat-BoldItalic.woff2") format("woff2"), url("../fonts/Montserrat-BoldItalic.woff") format("woff");
  font-weight: 700;
  font-style: italic;
}
@font-face {
  font-family: Montserrat;
  font-display: swap;
  src: url("../fonts/Montserrat-Regular.woff2") format("woff2"), url("../fonts/Montserrat-Regular.woff") format("woff");
  font-weight: 400;
  font-style: normal;
}
html {
  scroll-behavior: smooth;
  background-color: rgb(39, 39, 39);
}

body {
  background-color: var(--page-bg);
  color: var(--text-color);
  font-family: var(--font-main);
  text-wrap: balance;
}

img {
  display: block;
}

a {
  color: var(--link-color);
}

code {
  background-color: #e9f1f6;
  padding: 0.2rem;
  border-radius: 0.4rem;
}

pre.code {
  overflow-x: auto;
  background-color: #e9f1f6;
  padding: 1rem;
  border-radius: 0.4rem;
}

.docs {
  display: grid;
  line-height: 1.5;
}
.docs p {
  margin: 1rem 0;
}
.docs ul,
.docs ol {
  padding-left: 2rem;
}
.docs ul li,
.docs ol li {
  list-style: disc;
  margin-bottom: 0.5rem;
}
.docs ol li {
  list-style: decimal;
}
.docs section, .docs section.docs {
  padding: 4rem 0;
}
.docs section + section {
  border-top: 0.1rem solid #dae5e9;
}
.docs small {
  font-size: 1rem;
  color: rgb(172, 172, 172);
}
.docs .title-1:first-child,
.docs .title-2:first-child {
  margin-top: 0 !important;
}

.test {
  width: 60rem;
  height: 30rem;
  margin: 5rem auto;
  background-color: #999;
  background-position: center center; /* x y */
  background-size: cover;
  background-repeat: no-repeat;
  background-image: url("./../img/project-02.jpg");
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  .test {
    background-image: url("./../img/project-02@2x.jpg");
  }
}

.test-2 {
  width: 60rem;
  height: 30rem;
  margin: 5rem auto;
  background-color: #999;
  background-position: center center; /* x y */
  background-size: cover;
  background-repeat: no-repeat;
  background-image: image-set(url("./../img/project-02.jpg") 1x, url("./../img/project-02@2x.jpg") 2x);
}

.font-1 {
  font-family: "Montserrat";
  font-weight: 700;
  font-style: italic;
}

.font-2 {
  font-family: "Montserrat", sans-serif;
  font-weight: 400;
}

/* Отключить при необходимости */
.none {
  display: none !important;
}

.visually-hidden {
  position: absolute;
  width: 0.1rem;
  height: 0.1rem;
  margin: -0.1rem;
  border: 0;
  padding: 0;
  white-space: nowrap;
  clip-path: inset(100%);
  clip: rect(0 0 0 0);
  overflow: hidden;
}

.no-scroll {
  overflow-y: hidden;
}

.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

.text-center {
  text-align: center;
}

.d-flex {
  display: flex;
}

.flex-center {
  justify-content: center;
}

/* Демо контент */
.content-demo {
  margin-bottom: 5rem;
  padding: 1rem;
  background-color: #dadada;
}

/* Контейнеры */
.container {
  margin: 0 auto;
  padding: 0 var(--container-padding);
  max-width: var(--container-width);
  width: 100%;
}

.container-full {
  padding: 0 var(--container-padding);
  max-width: 100%;
}

.container-left-50 {
  padding: 0 var(--container-padding);
  max-width: 50%;
}
@media (max-width: 767.98px) {
  .container-left-50 {
    max-width: 100%;
  }
}

.container-right-50 {
  padding: 0 var(--container-padding);
  max-width: 50%;
  margin-left: auto;
}
@media (max-width: 767.98px) {
  .container-right-50 {
    max-width: 100%;
  }
}

.container-right {
  padding-left: calc((100% - var(--container-width)) / 2 + var(--container-padding));
}
@media (max-width: 1199.98px) {
  .container-right {
    padding-left: var(--container-padding);
  }
}

.container-left {
  padding-right: calc((100% - var(--container-width)) / 2 + var(--container-padding));
}
@media (max-width: 1199.98px) {
  .container-left {
    padding-right: var(--container-padding);
  }
}

.container-half-left {
  padding-right: calc((100% - var(--container-width)) / 2 + var(--container-width) / 2);
  padding-left: calc((100% - var(--container-width)) / 2 + var(--container-padding));
}
@media (max-width: 1199.98px) {
  .container-half-left {
    padding-left: var(--container-padding);
  }
}
@media (max-width: 767.98px) {
  .container-half-left {
    padding: 0 var(--container-padding);
  }
}

.container-half-right {
  padding-left: calc((100% - var(--container-width)) / 2 + var(--container-width) / 2);
  padding-right: calc((100% - var(--container-width)) / 2 + var(--container-padding));
}
@media (max-width: 1199.98px) {
  .container-half-right {
    padding-right: var(--container-padding);
  }
}
@media (max-width: 767.98px) {
  .container-half-right {
    padding: 0 var(--container-padding);
  }
}

html, body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.footer {
  margin-top: auto;
}

.footer {
  padding: 6rem 0;
  background-color: #e3e3e3;
}

/* Лендинг Валтекс (корневой index.html) */
/* Цвета и токены лендинга Валтекс */
:root {
  --vt-blue: #0A3FBF;
  --vt-blue-dark: #10328B;
  --vt-navy: #0C1139;
  --vt-charcoal: #282828;
  --vt-orange: #FD5202;
  --vt-gray: #C7C8C3;
  --vt-light: #F5F5F5;
  --vt-white: #FFFFFF;
  --vt-orange-hover: #e54a00;
  --vt-blue-hover: #0835a0;
  --vt-section-padding: 10rem 0;
  --vt-container: 120rem;
  /*
    Боковой «воздух» внутри .vt-container — не глобальный --container-padding
    (тот доходит до 8–10rem и сжимает контент при max-width 120rem).
  */
  --vt-container-inline: clamp(1.2rem, 2.5vw, 2.4rem);
}

/* База страницы Валтекс */
html {
  scroll-behavior: smooth;
}

body.vt-body {
  font-family: var(--font-main), "Montserrat", sans-serif;
  color: var(--vt-charcoal);
  background: var(--vt-white);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

/* Блоки лендинга Валтекс */
.vt-container {
  max-width: var(--vt-container);
  margin: 0 auto;
  padding: 0 var(--vt-container-inline);
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  text-decoration: none;
  color: inherit;
  transition: color 0.2s;
}

/* ═══════════════════════════════════════
   TYPOGRAPHY
═══════════════════════════════════════ */
h1, h2, h3, h4, h5 {
  line-height: 1.2;
}

.section-label {
  display: inline-block;
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: 0.3rem;
  text-transform: uppercase;
  color: var(--vt-orange);
  margin-bottom: 1.6rem;
}

.section-title {
  font-size: clamp(2.8rem, 4vw, 4.2rem);
  font-weight: 800;
  color: var(--vt-navy);
  margin-bottom: 2rem;
}

.section-subtitle {
  font-size: 1.7rem;
  color: #555;
  max-width: 64rem;
  line-height: 1.7;
}

/* ═══════════════════════════════════════
   BUTTONS
═══════════════════════════════════════ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  font-size: 1.5rem;
  padding: 1.6rem 3.6rem;
  border-radius: 0.6rem;
  border: none;
  cursor: pointer;
  transition: all 0.25s;
  white-space: nowrap;
}

.btn-primary {
  background: var(--vt-orange);
  color: var(--vt-white);
}

.btn-primary:hover {
  background: var(--vt-orange-hover);
  transform: translateY(-0.1rem);
}

.btn-secondary {
  background: transparent;
  color: var(--vt-white);
  border: 0.2rem solid rgba(255, 255, 255, 0.4);
}

.btn-secondary:hover {
  border-color: var(--vt-white);
  background: rgba(255, 255, 255, 0.08);
}

.btn-outline {
  background: transparent;
  color: var(--vt-blue);
  border: 0.2rem solid var(--vt-blue);
}

.btn-outline:hover {
  background: var(--vt-blue);
  color: var(--vt-white);
}

.btn-white {
  background: var(--vt-white);
  color: var(--vt-navy);
}

.btn-white:hover {
  background: var(--vt-light);
}

/* ═══════════════════════════════════════
   HEADER
═══════════════════════════════════════ */
.vt-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: rgba(12, 17, 57, 0.95);
  backdrop-filter: blur(1.2rem);
  border-bottom: 0.1rem solid rgba(255, 255, 255, 0.07);
  transition: background 0.3s;
}

.vt-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 8rem;
}

.vt-logo {
  font-size: 2.6rem;
  font-weight: 800;
  color: var(--vt-white);
  letter-spacing: 0.3rem;
  text-transform: uppercase;
}

.vt-logo span {
  color: var(--vt-orange);
}

.vt-nav {
  display: flex;
  align-items: center;
  gap: 3.2rem;
}

.vt-nav a {
  font-size: 1.4rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.75);
  transition: color 0.2s;
  letter-spacing: 0.03rem;
}

.vt-nav a:hover {
  color: var(--vt-white);
}

.vt-header-right {
  display: flex;
  align-items: center;
  gap: 2.4rem;
}

.vt-header-phone {
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--vt-white);
}

.vt-header-phone span {
  display: block;
  font-size: 1.1rem;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.5);
}

.vt-header-cta {
  background: var(--vt-orange);
  color: var(--vt-white);
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  font-size: 1.3rem;
  padding: 1.2rem 2.4rem;
  border-radius: 0.5rem;
  border: none;
  cursor: pointer;
  transition: background 0.2s;
}

.vt-header-cta:hover {
  background: var(--vt-orange-hover);
}

/* Mobile burger */
.vt-burger {
  display: none;
  flex-direction: column;
  gap: 0.5rem;
  cursor: pointer;
  padding: 0.8rem;
}

.vt-burger span {
  display: block;
  width: 2.4rem;
  height: 0.2rem;
  background: var(--vt-white);
  border-radius: 0.2rem;
  transition: 0.3s;
}

/* ═══════════════════════════════════════
   HERO
═══════════════════════════════════════ */
.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background-color: var(--vt-navy);
  background-image: linear-gradient(135deg, rgba(12, 17, 57, 0.88) 0%, rgba(16, 50, 139, 0.82) 50%, rgba(10, 63, 191, 0.1) 100%), url("../img/hero-bgr-1.jpg");
  background-size: cover, cover;
  background-position: center, center;
  background-repeat: no-repeat, no-repeat;
}

.hero > .container {
  max-width: none;
  width: 100%;
  flex: 1 1 auto;
  min-width: 0;
  align-self: stretch;
  display: flex;
  align-items: center;
}

.hero-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4rem 4.8rem;
  align-items: center;
  width: 100%;
  padding: 14rem 0 10rem;
}

@media (min-width: 768px) {
  .hero-layout {
    grid-template-columns: repeat(2, 1fr);
  }
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 20% 80%, rgba(253, 82, 2, 0.08) 0%, transparent 50%), radial-gradient(circle at 80% 20%, rgba(10, 63, 191, 0.15) 0%, transparent 50%);
}

.hero-grid-overlay {
  position: absolute;
  inset: 0;
}

.hero-content {
  position: relative;
  z-index: 2;
  min-width: 0;
  max-width: none;
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  background: rgba(255, 255, 255, 0.08);
  border: 0.1rem solid rgba(255, 255, 255, 0.12);
  border-radius: 5rem;
  padding: 0.8rem 2rem;
  margin-bottom: 3.2rem;
  font-size: 1.3rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.8);
}

.hero-badge strong {
  color: var(--vt-orange);
}

.hero h1 {
  font-size: clamp(3.6rem, 5.5vw, 5.8rem);
  font-weight: 800;
  color: var(--vt-white);
  margin-bottom: 2.4rem;
  line-height: 1.12;
}

.hero h1 span {
  color: var(--vt-orange);
}

.hero-text {
  font-size: 1.8rem;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.7;
  margin-bottom: 4.8rem;
  max-width: none;
}

.hero-buttons {
  display: flex;
  gap: 1.6rem;
  flex-wrap: wrap;
  margin-bottom: 7.2rem;
}

.hero-stats {
  display: flex;
  gap: 4.8rem;
  border-top: 0.1rem solid rgba(255, 255, 255, 0.12);
  padding-top: 4rem;
}

.hero-stat-value {
  font-size: 4.2rem;
  font-weight: 800;
  color: var(--vt-white);
  line-height: 1;
}

.hero-stat-value span {
  color: var(--vt-orange);
  font-size: 2.8rem;
}

.hero-stat-label {
  font-size: 1.3rem;
  color: rgba(255, 255, 255, 0.5);
  margin-top: 0.8rem;
  max-width: 13rem;
  line-height: 1.4;
}

.hero-visual {
  position: relative;
  z-index: 2;
  width: min(100%, 52rem);
  max-width: 100%;
  aspect-ratio: 1;
  margin: 0 auto;
  justify-self: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.03);
  border: 0.1rem solid rgba(255, 255, 255, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero-visual-inner {
  width: 73%;
  height: 73%;
  max-width: 38rem;
  max-height: 38rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.03);
  border: 0.1rem solid rgba(255, 255, 255, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  color: rgba(255, 255, 255, 0.2);
  text-align: center;
  padding: 4rem;
  box-sizing: border-box;
}

/* ═══════════════════════════════════════
   FACILITIES (Types of Sports Objects)
═══════════════════════════════════════ */
.facilities {
  padding: var(--vt-section-padding);
  background: var(--vt-white);
}

.facilities-header {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  margin-bottom: 5.6rem;
  gap: 4rem;
  flex-wrap: wrap;
}

.facilities-header .section-subtitle {
  margin: 0 auto;
}

.facilities-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(27rem, 1fr));
  gap: 2rem;
}

.facility-card {
  position: relative;
  background: var(--vt-light);
  border-radius: 1.2rem;
  padding: 3.2rem 2.8rem;
  transition: all 0.3s;
  border: 0.1rem solid transparent;
  cursor: default;
}

.facility-card:hover {
  border-color: rgba(10, 63, 191, 0.15);
  box-shadow: 0 0.8rem 3.2rem rgba(12, 17, 57, 0.08);
  transform: translateY(-0.2rem);
}

.facility-icon {
  width: 5.6rem;
  height: 5.6rem;
  border-radius: 1.2rem;
  background: var(--vt-white);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 2rem;
  font-size: 2.4rem;
  box-shadow: 0 0.2rem 0.8rem rgba(0, 0, 0, 0.06);
}

.facility-icon img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}

.facility-card h3 {
  font-size: 1.7rem;
  font-weight: 700;
  color: var(--vt-navy);
  margin-bottom: 1rem;
}

.facility-card p {
  font-size: 1.4rem;
  color: #666;
  line-height: 1.6;
}

/* ═══════════════════════════════════════
   TURNKEY (Why Us)
═══════════════════════════════════════ */
.turnkey {
  padding: var(--vt-section-padding);
  background: var(--vt-navy);
  color: var(--vt-white);
  position: relative;
  overflow: hidden;
}

.turnkey::before {
  content: "";
  position: absolute;
  top: -20rem;
  right: -20rem;
  width: 60rem;
  height: 60rem;
  background: radial-gradient(circle, rgba(253, 82, 2, 0.07) 0%, transparent 60%);
}

.turnkey .section-label {
  color: var(--vt-orange);
}

.turnkey .section-title {
  color: var(--vt-white);
}

.turnkey .section-subtitle {
  color: rgba(255, 255, 255, 0.6);
}

.turnkey-header {
  text-align: center;
  position: relative;
  z-index: 1;
}

.turnkey-header .section-subtitle {
  margin-left: auto;
  margin-right: auto;
}

.turnkey-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.4rem;
  margin-top: 5.6rem;
  position: relative;
  z-index: 1;
}

.turnkey-card {
  background: rgba(255, 255, 255, 0.04);
  border: 0.1rem solid rgba(255, 255, 255, 0.08);
  border-radius: 1.6rem;
  padding: 4rem 3.6rem;
  transition: all 0.3s;
}

.turnkey-card:hover {
  background: rgba(255, 255, 255, 0.07);
  border-color: rgba(253, 82, 2, 0.3);
}

.turnkey-card-num {
  font-size: 4.8rem;
  font-weight: 800;
  color: rgba(255, 255, 255, 0.06);
  line-height: 1;
  margin-bottom: 1.6rem;
}

.turnkey-card h3 {
  font-size: 2rem;
  font-weight: 700;
  color: var(--vt-white);
  margin-bottom: 1.4rem;
}

.turnkey-card p {
  font-size: 1.5rem;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.7;
}

/* ═══════════════════════════════════════
   STRUCTURES (Tent vs Permanent)
═══════════════════════════════════════ */
.structures {
  padding: var(--vt-section-padding);
  background: var(--vt-light);
}

.structures-header {
  text-align: center;
}

.structures-header .section-subtitle {
  margin-left: auto;
  margin-right: auto;
}

.structures-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3.2rem;
  margin-top: 5.6rem;
}

.structure-block {
  background: var(--vt-white);
  border-radius: 1.6rem;
  overflow: hidden;
  border: 0.1rem solid rgba(0, 0, 0, 0.06);
  transition: box-shadow 0.3s;
}

.structure-block:hover {
  box-shadow: 0 1.2rem 4rem rgba(12, 17, 57, 0.08);
}

.structure-img {
  height: 26rem;
  background: var(--vt-gray);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  color: #888;
  position: relative;
  overflow: hidden;
}

.structure-img::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(10, 63, 191, 0.1), rgba(12, 17, 57, 0.05));
}

.structure-img span {
  position: relative;
  z-index: 1;
}

.structure-body {
  padding: 3.6rem 3.2rem;
}

.structure-body h3 {
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--vt-navy);
  margin-bottom: 1.6rem;
}

.structure-body p {
  font-size: 1.5rem;
  color: #555;
  line-height: 1.7;
  margin-bottom: 2rem;
}

.structure-features {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.structure-features li {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  font-size: 1.4rem;
  color: #444;
}

.structure-features li::before {
  content: "";
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  margin-top: 0.2rem;
  border-radius: 50%;
  background: rgba(10, 63, 191, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M10 3L5 9L2 6' stroke='%230A3FBF' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
}

/* ═══════════════════════════════════════
   HOW WE WORK (Process)
═══════════════════════════════════════ */
.process {
  padding: var(--vt-section-padding);
  background: var(--vt-white);
}

.process-header {
  text-align: center;
  margin-bottom: 7.2rem;
}

.process-header .section-subtitle {
  margin: 0 auto;
}

.process-steps {
  position: relative;
}

.process-line {
  position: absolute;
  top: 4rem;
  left: calc(10% + 2.4rem);
  right: calc(10% + 2.4rem);
  height: 0.2rem;
  background: linear-gradient(90deg, var(--vt-blue), var(--vt-orange));
  opacity: 0.2;
}

.process-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1.6rem;
  position: relative;
  z-index: 1;
}

.process-step {
  text-align: center;
}

.process-num {
  width: 8rem;
  height: 8rem;
  border-radius: 50%;
  background: var(--vt-light);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.8rem;
  font-weight: 800;
  color: var(--vt-blue);
  margin: 0 auto 2.4rem;
  border: 0.3rem solid var(--vt-white);
  box-shadow: 0 0.4rem 1.6rem rgba(12, 17, 57, 0.08);
  transition: all 0.3s;
}

.process-step:hover .process-num {
  background: var(--vt-blue);
  color: var(--vt-white);
}

.process-step h4 {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--vt-navy);
  margin-bottom: 1rem;
}

.process-step p {
  font-size: 1.3rem;
  color: #777;
  line-height: 1.6;
  max-width: 20rem;
  margin: 0 auto;
}

/* ═══════════════════════════════════════
   ABOUT (Company)
═══════════════════════════════════════ */
.about {
  padding: var(--vt-section-padding);
  background: var(--vt-white);
}

.about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6.4rem;
  align-items: center;
}

.about-text p {
  font-size: 1.6rem;
  color: #444;
  line-height: 1.8;
  margin-bottom: 2rem;
}

.about-text p strong {
  color: var(--vt-navy);
}

.about-numbers {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.4rem;
  margin-top: 4rem;
}

.about-number {
  background: var(--vt-light);
  border-radius: 1.2rem;
  padding: 2.8rem 2.4rem;
}

.about-number-value {
  font-size: 3.6rem;
  font-weight: 800;
  color: var(--vt-blue);
  line-height: 1;
}

.about-number-value span {
  color: var(--vt-orange);
}

.about-number-label {
  font-size: 1.3rem;
  color: #777;
  margin-top: 0.8rem;
  line-height: 1.4;
}

.about-img-area {
  background: var(--vt-light);
  border-radius: 1.6rem;
  height: 48rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #999;
  font-size: 1.4rem;
  position: relative;
  overflow: hidden;
  border: 0.1rem solid rgba(0, 0, 0, 0.04);
}

.about-img-area::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(to top, rgba(12, 17, 57, 0.05), transparent);
}

/* ═══════════════════════════════════════
   GALLERY
═══════════════════════════════════════ */
.gallery {
  padding: var(--vt-section-padding) 0;
  background: var(--vt-light);
  overflow-x: clip;
}

.gallery-header {
  text-align: center;
  margin-bottom: 5.6rem;
}

.gallery-header .section-subtitle {
  margin: 0 auto;
}

.gallery-strip {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
}

@media (hover: hover) and (pointer: fine) {
  .gallery-strip:hover,
  .gallery-strip:hover .gallery-item,
  .gallery-strip:hover .gallery-item img {
    cursor: none;
  }
}
.gallery-cursor {
  position: fixed;
  left: 0;
  top: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: max-content;
  max-width: min(32rem, 90vw);
  margin: -2.4rem 0 0 -2.4rem;
  pointer-events: none;
  z-index: 8;
  filter: drop-shadow(0 0.2rem 0.6rem rgba(12, 17, 57, 0.45));
  opacity: 0;
  transform: scale(0);
  transition: opacity 0.2s ease, transform 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);
  will-change: left, top, transform, opacity;
}

.gallery-cursor-icon {
  width: 4.8rem;
  height: 4.8rem;
  flex-shrink: 0;
  background: url("../img/zoom-icon.svg") center/contain no-repeat;
}

.gallery-cursor-tooltip {
  margin-top: 0.6rem;
  padding: 0.6rem 1rem;
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--vt-white);
  text-align: center;
  background: rgba(12, 17, 57, 0.92);
  border-radius: 0.5rem;
  max-width: 100%;
  opacity: 0;
  transform: translateY(-0.4rem);
  transition: opacity 0.18s ease, transform 0.18s ease;
}

.gallery-cursor-tooltip:not(:empty) {
  opacity: 1;
  transform: translateY(0);
}

.gallery-strip--hover .gallery-cursor {
  opacity: 1;
  transform: scale(1);
}

@media (prefers-reduced-motion: reduce) {
  .gallery-cursor,
  .gallery-cursor-tooltip {
    transition-duration: 0.01ms;
  }
}
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}

.gallery-item {
  position: relative;
  display: block;
  overflow: hidden;
  min-height: 0;
  aspect-ratio: 4/3;
  background: var(--vt-gray);
}

.gallery-item:focus {
  outline: none;
}

.gallery-item:focus-visible {
  outline: 0.2rem solid var(--vt-blue);
  outline-offset: -0.2rem;
  z-index: 1;
}

.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1);
  transition: transform 0.45s ease;
}

.gallery-item:hover img,
.gallery-item:focus-visible img {
  transform: scale(1.1);
}

@media (prefers-reduced-motion: reduce) {
  .gallery-item img {
    transition-duration: 0.01ms;
  }
}
/* ═══════════════════════════════════════
   QUIZ
═══════════════════════════════════════ */
.quiz-section {
  padding: var(--vt-section-padding);
  background: linear-gradient(135deg, var(--vt-navy) 0%, var(--vt-blue-dark) 100%);
  position: relative;
  overflow: hidden;
}

.quiz-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 10% 90%, rgba(253, 82, 2, 0.1) 0%, transparent 40%), radial-gradient(circle at 90% 10%, rgba(10, 63, 191, 0.1) 0%, transparent 40%);
}

.quiz-wrapper {
  position: relative;
  z-index: 1;
  max-width: var(--vt-container);
  width: 100%;
  margin: 0 auto;
}

.quiz-header {
  text-align: center;
  margin-bottom: 4.8rem;
}

.quiz-header .section-label {
  color: var(--vt-orange);
}

.quiz-header .section-title {
  color: var(--vt-white);
}

.quiz-header .section-subtitle {
  color: rgba(255, 255, 255, 0.6);
  margin: 0 auto;
}

.quiz-progress {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-bottom: 4rem;
}

.quiz-progress-bar {
  flex: 1;
  height: 0.4rem;
  border-radius: 0.4rem;
  background: rgba(255, 255, 255, 0.1);
  transition: background 0.4s;
}

.quiz-progress-bar.active {
  background: var(--vt-orange);
}

.quiz-progress-bar.done {
  background: rgba(253, 82, 2, 0.5);
}

.quiz-card {
  background: var(--vt-white);
  border-radius: 2rem;
  padding: 4.8rem;
  box-shadow: 0 2rem 6rem rgba(0, 0, 0, 0.2);
}

.quiz-step {
  display: none;
}

.quiz-step.active {
  display: block;
}

.quiz-step-counter {
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--vt-blue);
  letter-spacing: 0.2rem;
  text-transform: uppercase;
  margin-bottom: 0.8rem;
}

.quiz-step h3 {
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--vt-navy);
  margin-bottom: 0.8rem;
}

.quiz-step-hint {
  font-size: 1.4rem;
  color: #999;
  margin-bottom: 2.8rem;
}

.quiz-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.4rem 1.6rem;
  margin-bottom: 0.8rem;
}

.quiz-option {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 1.2rem;
  min-width: 0;
  padding: 1.6rem 2rem;
  border: 0.2rem solid #eee;
  border-radius: 1rem;
  cursor: pointer;
  transition: all 0.2s;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.45;
  color: var(--vt-charcoal);
  overflow-wrap: break-word;
  word-wrap: break-word;
}

.quiz-option:hover {
  border-color: var(--vt-blue);
  background: rgba(10, 63, 191, 0.02);
}

.quiz-option.selected {
  border-color: var(--vt-blue);
  background: rgba(10, 63, 191, 0.06);
  color: var(--vt-blue);
}

.quiz-option input {
  display: none;
}

.quiz-check {
  width: 2.2rem;
  height: 2.2rem;
  flex-shrink: 0;
  margin-top: 0.15em;
  border-radius: 0.6rem;
  border: 0.2rem solid #ddd;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}

.quiz-option.selected .quiz-check {
  background: var(--vt-blue);
  border-color: var(--vt-blue);
}

.quiz-option.selected .quiz-check::after {
  content: "";
  width: 1rem;
  height: 0.6rem;
  border-left: 0.2rem solid white;
  border-bottom: 0.2rem solid white;
  transform: rotate(-45deg) translateY(-0.1rem);
}

.quiz-radio .quiz-check {
  border-radius: 50%;
}

.quiz-radio.selected .quiz-check::after {
  width: 1rem;
  height: 1rem;
  border: none;
  background: white;
  border-radius: 50%;
  transform: none;
}

.quiz-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1.2rem 2rem;
  margin-top: 3.2rem;
  padding-top: 2.4rem;
  border-top: 0.1rem solid #eee;
}

.quiz-nav-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 1.2rem 1.6rem;
  margin-left: auto;
}

.quiz-nav-error {
  margin: 0;
  max-width: 28rem;
  font-size: 1.2rem;
  line-height: 1.35;
  font-weight: 500;
  color: #c62828;
}

.quiz-nav-error[hidden] {
  display: none !important;
}

.quiz-back {
  background: none;
  border: none;
  font-family: "Montserrat", sans-serif;
  font-size: 1.4rem;
  font-weight: 600;
  color: #999;
  cursor: pointer;
  padding: 0.8rem 0;
  transition: color 0.2s;
}

.quiz-back:hover {
  color: var(--vt-charcoal);
}

.quiz-back.hidden {
  visibility: hidden;
}

.quiz-next {
  background: var(--vt-orange);
  color: var(--vt-white);
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  font-size: 1.5rem;
  padding: 1.4rem 3.6rem;
  border-radius: 0.6rem;
  border: none;
  cursor: pointer;
  transition: all 0.2s;
}

.quiz-next:hover {
  background: var(--vt-orange-hover);
}

.quiz-next:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* Quiz contact form */
.quiz-form {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}

.quiz-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.6rem;
}

.quiz-input {
  width: 100%;
  padding: 1.4rem 1.8rem;
  border: 0.2rem solid #eee;
  border-radius: 0.8rem;
  font-family: "Montserrat", sans-serif;
  font-size: 1.5rem;
  color: var(--vt-charcoal);
  transition: border-color 0.2s;
  outline: none;
}

.quiz-input:focus {
  border-color: var(--vt-blue);
}

.quiz-input::placeholder {
  color: #bbb;
}

.quiz-textarea {
  resize: vertical;
  min-height: 8rem;
}

.quiz-consent {
  font-size: 1.2rem;
  color: #999;
  line-height: 1.5;
}

.quiz-consent a {
  color: var(--vt-blue);
  text-decoration: underline;
}

.quiz-success {
  text-align: center;
  padding: 4rem 2rem;
}

.quiz-success-icon {
  width: 8rem;
  height: 8rem;
  border-radius: 50%;
  background: rgba(10, 191, 10, 0.08);
  margin: 0 auto 2.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3.6rem;
}

.quiz-success h3 {
  font-size: 2.4rem;
  color: var(--vt-navy);
  margin-bottom: 1.2rem;
}

.quiz-success p {
  font-size: 1.5rem;
  color: #777;
}

/* ═══════════════════════════════════════
   GEOGRAPHY
═══════════════════════════════════════ */
.geography {
  padding: var(--vt-section-padding);
  background: var(--vt-white);
}

.geo-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6.4rem;
  align-items: center;
}

.geo-map {
  background: var(--vt-light);
  border-radius: 0.7rem;
  margin-top: 3rem;
  overflow: hidden;
  height: 42rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #999;
  font-size: 1.4rem;
  border: 0.1rem solid rgba(0, 0, 0, 0.04);
}

.geo-content p {
  font-size: 1.6rem;
  color: #555;
  line-height: 1.8;
  margin-bottom: 2rem;
}

.geo-cities {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 2.4rem;
}

.geo-city {
  background: var(--vt-light);
  padding: 0.8rem 1.6rem;
  border-radius: 0.6rem;
  font-size: 1.3rem;
  font-weight: 500;
  color: #555;
}

/* ═══════════════════════════════════════
   FAQ
═══════════════════════════════════════ */
.faq {
  padding: var(--vt-section-padding);
  background: var(--vt-light);
}

.faq-header {
  text-align: center;
  margin-bottom: 5.6rem;
}

.faq-header .section-subtitle {
  margin: 0 auto;
}

.faq-list {
  max-width: 80rem;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.faq-item {
  background: var(--vt-white);
  border-radius: 1.2rem;
  border: 0.1rem solid rgba(0, 0, 0, 0.05);
  overflow: hidden;
  transition: box-shadow 0.3s;
}

.faq-item:hover {
  box-shadow: 0 0.4rem 1.6rem rgba(0, 0, 0, 0.04);
}

.faq-question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 2.4rem 2.8rem;
  cursor: pointer;
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--vt-navy);
  gap: 1.6rem;
}

.faq-toggle {
  width: 3.2rem;
  height: 3.2rem;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--vt-light);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s;
}

.faq-toggle svg {
  width: 1.4rem;
  height: 1.4rem;
  transition: transform 0.3s;
}

.faq-item.open .faq-toggle {
  background: var(--vt-blue);
}

.faq-item.open .faq-toggle svg {
  transform: rotate(45deg);
}

.faq-item.open .faq-toggle svg line {
  stroke: white;
}

.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
}

.faq-answer-inner {
  padding: 0 2.8rem 2.4rem;
  font-size: 1.5rem;
  color: #666;
  line-height: 1.7;
}

/* ═══════════════════════════════════════
   CTA BANNER
═══════════════════════════════════════ */
.cta-banner {
  padding: 8rem 0;
  background: var(--vt-blue);
  position: relative;
  overflow: hidden;
}

.cta-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--vt-blue-dark), var(--vt-blue));
}

.cta-inner {
  position: relative;
  z-index: 1;
  text-align: center;
}

.cta-inner h2 {
  font-size: clamp(2.6rem, 3.5vw, 3.6rem);
  font-weight: 800;
  color: var(--vt-white);
  margin-bottom: 1.6rem;
}

.cta-inner p {
  font-size: 1.7rem;
  color: rgba(255, 255, 255, 0.65);
  margin-bottom: 3.6rem;
  max-width: 52rem;
  margin-left: auto;
  margin-right: auto;
}

.cta-inner .btn {
  font-size: 1.6rem;
  padding: 1.8rem 4.8rem;
}

.vt-cta-actions {
  display: flex;
  gap: 1.6rem;
  justify-content: center;
  flex-wrap: wrap;
}

.vt-contact-grid-spaced {
  margin-top: 4.8rem;
}

/* ═══════════════════════════════════════
   CONTACT FORM
═══════════════════════════════════════ */
.contact {
  padding: var(--vt-section-padding);
  background: var(--vt-white);
}

.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6.4rem;
  align-items: start;
}

.contact-info h3 {
  font-size: 2rem;
  font-weight: 700;
  color: var(--vt-navy);
  margin-bottom: 2.4rem;
}

.contact-details {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  margin-bottom: 3.6rem;
}

.contact-detail {
  display: flex;
  gap: 1.6rem;
  align-items: flex-start;
}

.contact-detail-icon {
  width: 4.8rem;
  height: 4.8rem;
  flex-shrink: 0;
  border-radius: 1.2rem;
  background: var(--vt-light);
  display: flex;
  align-items: center;
  justify-content: center;
}

.contact-detail-text {
  font-size: 1.5rem;
  color: #555;
  line-height: 1.5;
}

.contact-detail-text strong {
  color: var(--vt-navy);
  display: block;
  font-size: 1.4rem;
  margin-bottom: 0.2rem;
}

.contact-detail-link {
  color: inherit;
  text-decoration: none;
  font-weight: 500;
  transition: color 0.2s ease;
}

.contact-detail-link:hover {
  color: var(--vt-blue);
}

.contact-detail-link:focus-visible {
  outline: 0.2rem solid rgba(10, 63, 191, 0.45);
  outline-offset: 0.2rem;
  border-radius: 0.2rem;
  color: var(--vt-blue);
}

.contact-form {
  background: var(--vt-light);
  border-radius: 1.6rem;
  padding: 4rem;
}

.contact-form h3 {
  font-size: 2rem;
  font-weight: 700;
  color: var(--vt-navy);
  margin-bottom: 2.4rem;
}

.form-group {
  margin-bottom: 1.6rem;
}

.form-input {
  width: 100%;
  padding: 1.4rem 1.8rem;
  border: 0.2rem solid #e0e0e0;
  border-radius: 0.8rem;
  font-family: "Montserrat", sans-serif;
  font-size: 1.5rem;
  color: var(--vt-charcoal);
  transition: border-color 0.2s;
  outline: none;
  background: var(--vt-white);
}

.form-input:focus {
  border-color: var(--vt-blue);
}

.form-input::placeholder {
  color: #bbb;
}

.form-textarea {
  resize: vertical;
  min-height: 10rem;
}

.form-consent {
  font-size: 1.2rem;
  color: #999;
  line-height: 1.5;
  margin-top: 1.2rem;
}

.form-consent a {
  color: var(--vt-blue);
  text-decoration: underline;
}

.form-submit {
  margin-top: 2rem;
  width: 100%;
}

/* ═══════════════════════════════════════
   FOOTER
═══════════════════════════════════════ */
.vt-footer {
  background: var(--vt-navy);
  color: rgba(255, 255, 255, 0.55);
  padding: 7.2rem 0 3.6rem;
}

.vt-footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
  gap: 4rem 4.8rem;
  align-items: start;
  margin-bottom: 5.6rem;
}

.vt-footer-logo {
  display: inline-block;
  margin-bottom: 2.4rem;
  line-height: 0;
}

.vt-footer-logo img {
  width: 19.1rem;
  max-width: 100%;
  height: auto;
}

.vt-footer-about p {
  font-size: 1.4rem;
  line-height: 1.75;
  color: rgba(255, 255, 255, 0.45);
  max-width: 36rem;
  margin: 0;
}

.vt-footer-heading {
  margin: 0 0 2rem;
  padding-bottom: 1.2rem;
  border-bottom: 0.1rem solid rgba(255, 255, 255, 0.12);
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--vt-orange);
}

.vt-footer-col ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.vt-footer-col a {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.72);
  transition: color 0.2s;
}

.vt-footer-col a:hover {
  color: var(--vt-orange);
}

.vt-footer-address {
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.5);
}

.vt-footer-col--contacts a {
  color: rgba(255, 255, 255, 0.82);
}

.vt-footer-bottom {
  border-top: 0.1rem solid rgba(255, 255, 255, 0.1);
  padding-top: 2.8rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1.6rem 3.2rem;
  font-size: 1.3rem;
  color: rgba(255, 255, 255, 0.38);
}

.vt-footer-legal {
  text-align: right;
  max-width: 42rem;
}

/* ═══════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════ */
@media (max-width: 102.4rem) {
  .turnkey-grid {
    grid-template-columns: 1fr;
  }
  .about-grid {
    grid-template-columns: 1fr;
  }
  .about-img-area {
    height: 32rem;
  }
  .geo-grid {
    grid-template-columns: 1fr;
  }
  .contact-grid {
    grid-template-columns: 1fr;
  }
  .vt-footer-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4rem 3.2rem;
  }
  .vt-footer-about {
    grid-column: 1/-1;
    max-width: 56rem;
  }
  .vt-footer-legal {
    text-align: left;
  }
  .process-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .process-line {
    display: none;
  }
}
@media (max-width: 992px) {
  .structures-cols {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 76.8rem) {
  .vt-nav {
    display: none;
  }
  .vt-burger {
    display: flex;
  }
  .vt-header-phone {
    display: none;
  }
  .hero-layout {
    padding: 12rem 0 8rem;
  }
  .hero-stats {
    flex-wrap: wrap;
    gap: 3.2rem;
  }
  .process-grid {
    grid-template-columns: 1fr 1fr;
    gap: 3.2rem;
  }
  .quiz-card {
    padding: 3.2rem 2.4rem;
  }
  .quiz-form-row {
    grid-template-columns: 1fr;
  }
  .quiz-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .facilities-grid {
    grid-template-columns: 1fr 1fr;
  }
  .gallery-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .vt-footer-grid {
    grid-template-columns: 1fr;
    gap: 3.6rem;
  }
  .vt-footer-about {
    grid-column: auto;
    max-width: none;
  }
  .vt-footer-bottom {
    flex-direction: column;
    align-items: flex-start;
  }
  .vt-footer-legal {
    text-align: left;
    max-width: none;
  }
}
@media (max-width: 48rem) {
  .hero h1 {
    font-size: 3.2rem;
  }
  .hero-buttons {
    flex-direction: column;
  }
  .hero-buttons .btn {
    width: 100%;
  }
  .facilities-grid {
    grid-template-columns: 1fr;
  }
  .about-numbers {
    grid-template-columns: 1fr;
  }
  .process-grid {
    grid-template-columns: 1fr;
  }
  .quiz-options {
    grid-template-columns: 1fr;
  }
}
/* Breakpoints (desktop-first) — из header-standalone */
/*
  Стеклянный sticky-хедер (импорт из header-standalone).
  Префикс .vt-glass-header — чтобы не пересекаться с .header из blocks/_header.scss
*/
.vt-glass-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  padding: 3rem var(--container-padding) 0;
  pointer-events: none;
}

.vt-glass-header__bar {
  /* Выше выпадающего меню, чтобы кастомные тултипы кнопок были поверх панели */
  position: relative;
  z-index: 5;
  /* Промежуток между CTA / телефон / меню = отступ от меню до правого края плашки */
  --vt-glass-bar-actions-gap: 0.4rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.2rem;
  height: 4.8rem;
  margin: 0 auto;
  padding: 0 var(--vt-glass-bar-actions-gap) 0 1rem;
  border-radius: 0.8rem;
  background: rgba(6, 10, 24, 0.55);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, 0.06);
  pointer-events: auto;
  will-change: max-width;
  transition: max-width 0.35s ease, background-color 0.35s ease, box-shadow 0.35s ease;
}

.vt-glass-header__bar-end {
  display: flex;
  align-items: center;
  gap: var(--vt-glass-bar-actions-gap);
  flex-shrink: 0;
}

.vt-glass-header__actions {
  display: flex;
  align-items: center;
  gap: var(--vt-glass-bar-actions-gap);
  flex-shrink: 0;
}

.vt-glass-header__actions .vt-header-cta {
  display: none;
  padding: 0 1rem;
  height: 4rem;
  align-items: center;
  white-space: nowrap;
}

@media (min-width: 1024px) {
  .vt-glass-header__actions .vt-header-cta {
    display: inline-flex;
  }
}
.vt-glass-header__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.8);
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
.vt-glass-header__btn:hover {
  background: rgba(54, 103, 216, 0.15);
  border-color: rgba(54, 103, 216, 0.3);
  color: #fff;
}

/* Кастомный тултип (title в браузере не стилизуется) */
.vt-glass-header__tooltip {
  position: relative;
}

@media (hover: hover) and (pointer: fine) {
  .vt-glass-header__tooltip::after {
    content: attr(data-tooltip);
    position: absolute;
    top: calc(100% + 0.8rem);
    left: 50%;
    transform: translateX(-50%);
    padding: 0.5rem 0.9rem;
    font-size: 1.2rem;
    font-weight: 500;
    line-height: 1.2;
    color: var(--vt-white);
    background: rgba(12, 17, 57, 0.96);
    border: 0.1rem solid #f5f5f5;
    border-radius: 0.4rem;
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    z-index: 6;
    box-sizing: border-box;
    transition: opacity 0.15s ease, visibility 0.15s ease;
  }
  .vt-glass-header__tooltip:hover::after,
  .vt-glass-header__tooltip:focus-visible::after {
    opacity: 1;
    visibility: visible;
  }
}
.vt-glass-header__menu {
  position: relative;
}

.vt-glass-header__menu svg {
  width: 2.4rem;
  height: 2.4rem;
  transition: transform 600ms cubic-bezier(0.4, 0, 0.2, 1);
}

.vt-glass-header__menu .line {
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 3;
  transition: stroke-dasharray 600ms cubic-bezier(0.4, 0, 0.2, 1), stroke-dashoffset 600ms cubic-bezier(0.4, 0, 0.2, 1);
}

.vt-glass-header__menu .line-top-bottom {
  stroke-dasharray: 12 63;
}

.vt-glass-header__menu.is-active svg {
  transform: rotate(-45deg);
}

.vt-glass-header__menu.is-active .line-top-bottom {
  stroke-dasharray: 20 300;
  stroke-dashoffset: -32.42;
}

.vt-glass-header__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  text-decoration: none;
  color: inherit;
}
.vt-glass-header__logo img {
  display: block;
  height: clamp(2rem, 1.6rem + 0.6vw, 2.8rem);
  width: auto;
}

.vt-glass-header__phone {
  text-decoration: none;
}
.vt-glass-header__phone svg {
  width: 2rem;
  height: 2rem;
}

.vt-glass-header__nav {
  position: absolute;
  z-index: 4;
  top: calc(100% + 0.8rem);
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 90rem;
  padding: 0 var(--vt-container-inline);
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.vt-glass-header__nav.is-open {
  pointer-events: auto;
  opacity: 1;
  visibility: visible;
}

.vt-glass-header__nav-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  /* Порядок в 2 колонках: 1|4, 2|5, 3|6 (сверху вниз по колонкам) */
  grid-template-rows: repeat(3, auto);
  grid-auto-flow: column;
  gap: 0.4rem 2rem;
  padding: clamp(2.4rem, 2rem + 0.8vw, 3.6rem);
  border-radius: 1.6rem;
  background: rgba(6, 10, 24, 0.88);
  backdrop-filter: blur(32px);
  -webkit-backdrop-filter: blur(32px);
  border: 1px solid rgba(255, 255, 255, 0.06);
  box-shadow: 0 1.6rem 4.8rem rgba(0, 0, 0, 0.4);
  transform: translateY(-0.8rem) scale(0.98);
  opacity: 0;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.35s ease;
}

.vt-glass-header__nav.is-open .vt-glass-header__nav-inner {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.vt-glass-header__nav-link {
  display: flex;
  align-items: center;
  padding: 1rem 1.2rem;
  border-radius: 0.8rem;
  font-size: clamp(1.4rem, 1.3rem + 0.15vw, 1.6rem);
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  transition: background 0.25s ease, color 0.25s ease;
}
.vt-glass-header__nav-link:hover {
  background: rgba(54, 103, 216, 0.12);
  color: #fff;
}

@media (max-width: 1023.98px) {
  .vt-glass-header {
    padding-top: 2.4rem;
  }
}
@media (max-width: 767.98px) {
  .vt-glass-header {
    padding-top: 2rem;
  }
  .vt-glass-header__nav {
    max-width: 100%;
    padding: 0 var(--vt-container-inline);
  }
  .vt-glass-header__nav-inner {
    grid-template-columns: 1fr;
    grid-template-rows: none;
    grid-auto-flow: row;
    gap: 0.4rem;
    padding: clamp(2rem, 1.6rem + 0.6vw, 2.8rem);
  }
  .vt-glass-header__nav-link {
    padding: 0.8rem 1rem;
    font-size: 1.4rem;
  }
}
@media (max-width: 599.98px) {
  .vt-glass-header {
    padding-top: 1.6rem;
  }
  .vt-glass-header__bar {
    --header-compact: 28rem;
    height: 4.4rem;
  }
  .vt-glass-header__btn {
    width: 3.6rem;
    height: 3.6rem;
  }
  .vt-glass-header__menu svg {
    width: 2rem;
    height: 2rem;
  }
  .vt-glass-header__phone svg {
    width: 1.8rem;
    height: 1.8rem;
  }
}
@media (max-width: 479.98px) {
  .vt-glass-header__bar {
    --header-compact: 24rem;
    --vt-glass-bar-actions-gap: 0.2rem;
    padding: 0 var(--vt-glass-bar-actions-gap) 0 1rem;
  }
  .vt-glass-header__logo img {
    height: 1.8rem;
  }
}
/* Якоря: учёт фиксированной шапки */
.vt-landing > section[id] {
  scroll-margin-top: 11rem;
}

/* Blocks */
.footer {
  background-color: rgb(39, 39, 39);
  padding: 5rem 0;
  font-size: 3.2rem;
  color: #fff;
}
.footer h1 {
  font-size: 3.2rem;
}
.footer a {
  color: #fff;
  text-decoration: underline;
}
@media (max-width: 1199.98px) {
  .footer {
    font-size: 2.6rem;
  }
}

.footer__copyright {
  padding: 1rem 0;
  font-size: 1.6rem;
}

.header {
  background-color: #c0e4f4;
  padding: 5rem 0;
}
.header__row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

@media (max-width: 1199.98px) {
  .header__nav {
    display: none;
  }
}

.icons-wrapper {
  padding: 3rem 0;
  display: flex;
  column-gap: 3rem;
  align-items: center;
}
.icons-wrapper img {
  display: block;
  width: 6.2rem;
  height: auto;
}

.icon {
  fill: transparent;
  stroke: transparent;
  width: 6.2rem;
  height: 6.2rem;
}

.icon--user {
  stroke: rgb(26, 134, 235);
  transition: all 0.2s ease-in;
}
.icon--user:hover {
  stroke: rgb(17, 193, 90);
}

.logo {
  font-size: 3.2rem;
}

.mobile-nav {
  position: fixed;
  top: -100%;
  width: 100%;
  height: 100%;
  z-index: 99;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding-top: 4rem;
  padding-bottom: 4rem;
  background: #8ccae6;
  transition: all 0.2s ease-in;
}

.mobile-nav--open {
  top: 0;
}

.mobile-nav a {
  color: #fff;
}

.mobile-nav__list {
  display: flex;
  flex-direction: column;
  align-items: center;
  row-gap: 2rem;
  font-size: 2.8rem;
}
.mobile-nav__list .active {
  opacity: 0.5;
}

/* Nav Icon */
.mobile-nav-btn {
  --time: 0.1s;
  --width: 4rem;
  --height: 3rem;
  --line-height: 0.4rem;
  --spacing: 0.6rem;
  --color: #000;
  --radius: 0.4rem;
  /* Fixed height and width */
  /* height: var(--height); */
  /* width: var(--width); */
  /* Dynamic height and width */
  height: calc(var(--line-height) * 3 + var(--spacing) * 2);
  width: var(--width);
  display: flex;
  justify-content: center;
  align-items: center;
}

.nav-icon {
  position: relative;
  width: var(--width);
  height: var(--line-height);
  background-color: var(--color);
  border-radius: var(--radius);
}

.nav-icon::before,
.nav-icon::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  width: var(--width);
  height: var(--line-height);
  border-radius: var(--radius);
  background-color: var(--color);
  transition: transform var(--time) ease-in, top var(--time) linear var(--time);
}

.nav-icon::before {
  /* top: calc(var(--line-height) * -2); */
  top: calc(-1 * (var(--line-height) + var(--spacing)));
}

.nav-icon::after {
  /* top: calc(var(--line-height) * 2); */
  top: calc(var(--line-height) + var(--spacing));
}

.nav-icon.nav-icon--active {
  background-color: transparent;
}

.nav-icon.nav-icon--active::before,
.nav-icon.nav-icon--active::after {
  top: 0;
  transition: top var(--time) linear, transform var(--time) ease-in var(--time);
}

.nav-icon.nav-icon--active::before {
  transform: rotate(45deg);
}

.nav-icon.nav-icon--active::after {
  transform: rotate(-45deg);
}

/* Layout */
.mobile-nav-btn {
  z-index: 999;
}

.nav {
  font-size: 1.8rem;
}

.nav__list {
  display: flex;
  column-gap: 3rem;
}

.demo-swiper {
  max-width: 48rem;
  margin: 3rem auto;
  padding-bottom: 4rem;
  border-radius: 0.8rem;
  overflow: hidden;
  background: #eef6fa;
}
.demo-swiper .swiper-slide {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 16rem;
  font-size: 2rem;
  font-weight: 600;
}
.demo-swiper .swiper-button-prev,
.demo-swiper .swiper-button-next {
  color: var(--accent, #ac182c);
}
.demo-swiper .swiper-pagination-bullet-active {
  background: var(--accent, #ac182c);
}

.title-1 {
  margin: 1em 0 0.5em;
  font-size: 3.8rem;
  font-weight: 700;
  font-family: var(--font-titles);
}

.title-2 {
  margin: 1em 0 0.5em;
  font-size: 3.2rem;
  font-weight: 700;
  font-family: var(--font-titles);
}

.title-3 {
  margin: 1em 0 0.5em;
  font-size: 2.6rem;
  font-weight: 700;
  font-family: var(--font-titles);
}

.title-4 {
  margin: 1em 0 0.5em;
  font-size: 1.8rem;
  font-weight: 700;
  font-family: var(--font-titles);
}

/* No styles code below. Only in modules */
/* Не пишите CSS код ниже. Только в подключаемых файлах */
/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsImJhc2UvX3Jlc2V0LnNjc3MiLCJiYXNlL19yZW0uc2NzcyIsImJhc2UvX2JyZWFrcG9pbnRzLnNjc3MiLCJiYXNlL192YXJzLnNjc3MiLCJiYXNlL19taXhpbnMuc2NzcyIsImJhc2UvX2ZvbnRzQXV0b0dlbi5zY3NzIiwiYmFzZS9fYmFzZS5zY3NzIiwiYmFzZS9fZG9jcy5zY3NzIiwiYmFzZS9fdXRpbHMuc2NzcyIsImJhc2UvX2NvbnRhaW5lcnMuc2NzcyIsImJhc2UvX3N0aWNreS1mb290ZXIuc2NzcyIsInBhZ2VzL192YWx0ZXgtdmFycy5zY3NzIiwicGFnZXMvX3ZhbHRleC1iYXNlLnNjc3MiLCJwYWdlcy9fdmFsdGV4LWxhbmRpbmcuc2NzcyIsInBhZ2VzL192YWx0ZXgtZ2xhc3MtaGVhZGVyLW1peGlucy5zY3NzIiwicGFnZXMvX3ZhbHRleC1nbGFzcy1oZWFkZXIuc2NzcyIsImJsb2Nrcy9fZm9vdGVyLnNjc3MiLCJibG9ja3MvX2hlYWRlci5zY3NzIiwiYmxvY2tzL19pY29ucy5zY3NzIiwiYmxvY2tzL19sb2dvLnNjc3MiLCJibG9ja3MvX21vYmlsZS1uYXYuc2NzcyIsImJsb2Nrcy9fbmF2LWljb24uc2NzcyIsImJsb2Nrcy9fbmF2LnNjc3MiLCJibG9ja3MvX3N3aXBlci1kZW1vLnNjc3MiLCJibG9ja3MvX3RpdGxlcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQ0NBO0VBQ0M7RUFDQTtFQUNBOzs7QUFHRDtBQUFBO0FBQUE7RUFHQzs7O0FBR0Q7QUFFQTtFQUNJOzs7QUFHSjtFQUNJOzs7QUFHSjtBQUVBO0VBQ0M7OztBQUdEO0VBQ0k7RUFDSDs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQztFQUNBOzs7QUFHRDtFQUNFOzs7QUFHRjtBQUVBO0VBQ0M7RUFDRztFQUNBO0VBQ0E7OztBQUdKO0VBQ0M7OztBQUdEO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0o7QUFBQTtFQUVJOzs7QUFHSjtFQUNDO0VBQ0E7OztBQUdEO0VBQ0M7OztBQUdEO0VBQ0M7OztBQ3ZGRDtBQUNBO0VBQ0M7RUFDQTs7O0FBR0Q7RUFDQztFQUNBOzs7QUNSRDtBQXdFQTtBQ3RFQTtBQUNDO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUFDQTtBQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7QUFFQTtFQUNBOzs7QURiQTtFQ2lCQTtJQUNDOzs7QURaRDtFQ2lCQTtJQUNDOzs7QURaRDtFQ2lCQTtJQUNDOzs7QURaRDtFQ2lCQTtJQUNDOzs7QURaRDtFQ2lCQTtJQUNDOzs7QURaRDtFQ2lCQTtJQUNDOzs7QURaRDtFQ2lCQTtJQUNDOzs7QURaRDtFQ2lCQTtJQUNDOzs7QURaRDtFQ2lCQTtJQUNDOzs7QUFJRjtFQUNDO0VBQ0E7OztBRDNGRDtBQXdFQTtBRWhFQTtBQ1JBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUQ7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQ25CRDtFQUNDO0VBQ0E7OztBQUdEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0VBQ0M7OztBQUdEO0VBQ0M7OztBQUdEO0VBQ0M7RUFDQTtFQUNBOzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBOzs7QUM5QkQ7RUFDQztFQUVBOztBQUVBO0VBQ0M7O0FBR0Q7QUFBQTtFQUVDOztBQUVBO0FBQUE7RUFDQztFQUNBOztBQUlGO0VBQ0M7O0FBR0Q7RUFDQzs7QUFHRDtFQUNDOztBQUdEO0VBQ0M7RUFDQTs7QUFHRDtBQUFBO0VBRUM7OztBQUlGO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFJQTs7QUhsREE7RUd1Q0Q7SUFhRTs7OztBQVNGO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFHQTs7O0FBS0Q7RUFDQztFQUNBO0VBQ0E7OztBQUdEO0VBQ0M7RUFDQTs7O0FSaEZzQjtBU1B2QjtFQUNDOzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRDtFQUNDOzs7QUFHRDtFQUNDOzs7QUFHRDtFQUNDOzs7QUFHRDtFQUNDOzs7QUFHRDtFQUNDOzs7QUFHRDtFQUNDOzs7QUN0Q0Q7QUFDQTtFQUNDO0VBQ0E7RUFDQTs7O0FBR0Q7QUFDQTtFQUNDO0VBQ0E7RUFFQTtFQUNBOzs7QUFHRDtFQUNDO0VBQ0E7OztBQUdEO0VBQ0M7RUFDQTs7QVBxRUE7RU92RUQ7SUFLRTs7OztBQUlGO0VBQ0M7RUFDQTtFQUNBOztBUDJEQTtFTzlERDtJQU1FOzs7O0FBSUY7RUFDQzs7QVArREE7RU9oRUQ7SUFNRTs7OztBQUlGO0VBQ0M7O0FQcURBO0VPdEREO0lBTUU7Ozs7QUFJRjtFQUNDO0VBR0E7O0FQd0NBO0VPNUNEO0lBU0U7OztBUHVCRDtFT2hDRDtJQWFFOzs7O0FBSUY7RUFDQztFQUdBOztBUHVCQTtFTzNCRDtJQVNFOzs7QVBNRDtFT2ZEO0lBYUU7Ozs7QUMxRkY7RUFDSTtFQUNBO0VBQ0E7OztBQUdKO0VBQ0k7OztBQUdKO0VBQ0M7RUFDQTs7O0FYQUQ7QVlaQTtBQUNBO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7RUFJQTs7O0FDbEJEO0FBQ0E7RUFDQzs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUNWRDtBQUVJO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUFNO0VBQWlCO0VBQWM7OztBQUVyQztFQUFJO0VBQXVCO0VBQWdCOzs7QUFFM0M7QUFBQTtBQUFBO0FBR0E7RUFBcUI7OztBQUVyQjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUVGO0VBQXFCO0VBQW9DOzs7QUFFekQ7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQXVCO0VBQStCOzs7QUFFdEQ7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQXFCO0VBQTRCOzs7QUFFakQ7RUFDRTtFQUNBOzs7QUFFRjtFQUFtQjs7O0FBRW5CO0FBQUE7QUFBQTtBQUdBO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQWdCOzs7QUFFaEI7RUFBVTtFQUFlO0VBQXFCOzs7QUFFOUM7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUFrQjs7O0FBRWxCO0VBQW1CO0VBQWU7RUFBcUI7OztBQUV2RDtFQUNFO0VBQ0E7RUFDQTs7O0FBRUY7RUFBd0I7RUFBZ0I7RUFBbUI7RUFBa0I7OztBQUU3RTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUF1Qjs7O0FBRXZCO0FBQ0E7RUFBYTtFQUFlO0VBQXdCO0VBQWE7RUFBaUI7OztBQUNsRjtFQUFrQjtFQUFnQjtFQUFlO0VBQWdCO0VBQTZCO0VBQXVCOzs7QUFFckg7QUFBQTtBQUFBO0FBR0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxrQkFDRTtFQUVGO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7SUFDRTs7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7RUFDQSxZQUNFOzs7QUFJSjtFQUNFO0VBQ0E7OztBQU9GO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBcUI7OztBQUVyQjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQWdCOzs7QUFFaEI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUFnQjtFQUFlO0VBQWE7RUFBaUI7OztBQUU3RDtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUF3QjtFQUF5Qjs7O0FBRWpEO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBR0E7RUFBYztFQUFvQzs7O0FBRWxEO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQTBCOzs7QUFDMUI7RUFBMEI7OztBQUMxQjtFQUE2Qjs7O0FBRTdCO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBR0E7RUFBYztFQUFvQzs7O0FBRWxEO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUF5Qjs7O0FBRXpCO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUFzQjtFQUFvQjs7O0FBRTFDO0VBQWtCOzs7QUFFbEI7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtBQUFBO0FBQUE7QUFHQTtFQUFXO0VBQW9DOzs7QUFFL0M7RUFBa0I7RUFBb0I7OztBQUN0QztFQUFvQzs7O0FBRXBDO0VBQWlCOzs7QUFFakI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUFnQjs7O0FBRWhCO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFBdUI7OztBQUV2QjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBMkI7OztBQUUzQjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUVGO0VBQW9DOzs7QUFFcEM7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7QUFBQTtBQUFBO0lBR0U7OztBQUlKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUNFO0FBQUE7SUFFRTs7O0FBSUo7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0FBQUE7RUFFRTs7O0FBR0Y7RUFDRTtJQUNFOzs7QUFJSjtBQUFBO0FBQUE7QUFHQTtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBLFlBQ0U7OztBQUlKO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBOzs7QUFHRjtFQUE4Qjs7O0FBQzlCO0VBQThCOzs7QUFDOUI7RUFBaUM7RUFBOEI7OztBQUUvRDtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQTRCOzs7QUFDNUI7RUFBMEI7OztBQUUxQjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUFhOzs7QUFDYjtFQUFvQjs7O0FBRXBCO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBcUI7RUFBOEI7OztBQUNuRDtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFBcUI7OztBQUVyQjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUEwQjs7O0FBQzFCO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQW1COzs7QUFDbkI7RUFBb0I7OztBQUVwQjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFFRjtFQUFtQjs7O0FBQ25CO0VBQXNCO0VBQWM7OztBQUVwQztBQUNBO0VBQWE7RUFBZTtFQUF3Qjs7O0FBRXBEO0VBQWlCO0VBQWU7RUFBZ0M7OztBQUVoRTtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBb0I7OztBQUNwQjtFQUEyQjs7O0FBRTNCO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUVGO0VBQWtCO0VBQXVCOzs7QUFFekM7RUFDRTtFQUNBOzs7QUFFRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBbUI7RUFBbUI7RUFBdUI7OztBQUM3RDtFQUFrQjtFQUFtQjs7O0FBRXJDO0FBQUE7QUFBQTtBQUdBO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBR0E7RUFDRTtFQUNBOzs7QUFHRjtFQUFjO0VBQW9COzs7QUFDbEM7RUFBZ0M7OztBQUVoQztFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBa0I7OztBQUVsQjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUVGO0VBQ0U7RUFDQTtFQUNBOzs7QUFFRjtFQUE2Qjs7O0FBQzdCO0VBQWlDOzs7QUFDakM7RUFBc0M7OztBQUV0QztFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7QUFBQTtBQUFBO0FBR0E7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUFrQjtFQUFtQjs7O0FBRXJDO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFBbUI7RUFBZTtFQUF3QjtFQUFXOzs7QUFFckU7RUFDRTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFBdUI7RUFBbUI7RUFBYTs7O0FBQ3ZEO0VBQThCO0VBQXVCO0VBQWdCO0VBQW1COzs7QUFDeEY7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBNkI7OztBQUM3QjtFQUNFO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBR0Y7RUFBYzs7O0FBRWQ7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBb0I7OztBQUNwQjtFQUEyQjs7O0FBRTNCO0VBQWlCO0VBQWtCOzs7QUFFbkM7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7O0FBRUY7RUFBa0I7RUFBdUI7OztBQUV6QztFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTs7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7OztBQUdGO0VBQ0U7OztBQUdGO0VBQ0U7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRjtFQUNFO0VBQ0E7OztBQUdGO0FBQUE7QUFBQTtBQUdBO0VBQ0U7SUFBZ0I7O0VBQ2hCO0lBQWM7O0VBQ2Q7SUFBa0I7O0VBQ2xCO0lBQVk7O0VBQ1o7SUFBZ0I7O0VBQ2hCO0lBQ0U7SUFDQTs7RUFHRjtJQUNFO0lBQ0E7O0VBR0Y7SUFDRTs7RUFFRjtJQUFnQjs7RUFDaEI7SUFBZ0I7OztBQUdsQjtFQUNFO0lBQW1COzs7QUFHckI7RUFDRTtJQUFVOztFQUNWO0lBQWE7O0VBQ2I7SUFBbUI7O0VBRW5CO0lBQWU7O0VBQ2Y7SUFBYztJQUFpQjs7RUFFL0I7SUFBZ0I7SUFBZ0M7O0VBRWhEO0lBQWE7O0VBQ2I7SUFBaUI7O0VBQ2pCO0lBQ0U7O0VBR0Y7SUFBbUI7O0VBRW5CO0lBQ0U7O0VBR0Y7SUFDRTtJQUNBOztFQUdGO0lBQ0U7SUFDQTs7RUFHRjtJQUNFO0lBQ0E7O0VBR0Y7SUFDRTtJQUNBOzs7QUFJSjtFQUNFO0lBQVc7O0VBQ1g7SUFBZ0I7O0VBQ2hCO0lBQXFCOztFQUNyQjtJQUFtQjs7RUFDbkI7SUFBaUI7O0VBQ2pCO0lBQWdCOztFQUVoQjtJQUNFOzs7QUMxaERSO0FDRUE7QUFBQTtBQUFBO0FBQUE7QUFLQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRDtBQUNDO0VBQ0E7RUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDQzs7O0FBS0Y7RUFDQztFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRDtFQUNDO0lBQ0M7OztBQUlGO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0M7RUFDQTtFQUNBOzs7QUFJRjtBQUNBO0VBQ0M7OztBQUdEO0VBQ0M7SUFDQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUdEO0FBQUE7SUFFQztJQUNBOzs7QUFJRjtFQUNDOzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTs7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDQzs7O0FBSUY7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7RUFDQztFQUNBOzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNDO0VBQ0E7RUFDQTs7O0FBSUY7RUFDQzs7QUFFQTtFQUNDO0VBQ0E7OztBQUlGO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLFlBQ0M7O0FBR0Q7RUFDQztFQUNBO0VBQ0E7OztBQUlGO0VBQ0M7RUFDQTtBQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDQzs7O0FBSUY7RUFDQztFQUNBOzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNDO0VBQ0E7OztBRHRQRDtFQzJQQTtJQUNDOzs7QUR2UEQ7RUM0UEE7SUFDQzs7RUFHRDtJQUNDO0lBQ0E7O0VBR0Q7SUFDQztJQUNBO0lBQ0E7SUFDQTtJQUNBOztFQUdEO0lBQ0M7SUFDQTs7O0FEMVFEO0VDK1FBO0lBQ0M7O0VBR0Q7SUFDQztJQUNBOztFQUdEO0lBQ0M7SUFDQTs7RUFHRDtJQUNDO0lBQ0E7O0VBR0Q7SUFDQztJQUNBOzs7QUQvUkQ7RUNxU0E7SUFDQztJQUNBO0lBQ0E7O0VBR0Q7SUFDQzs7O0FBSUY7QUFDQTtFQUNDOzs7QWhCalREO0FpQmxCQTtFQUNDO0VBQ0E7RUFDQTtFQUNHOztBQUVIO0VBQ0M7O0FBR0Q7RUFFQztFQUNBOztBZDJGRDtFY3hHRDtJQWlCRTs7OztBQUlGO0VBQ0M7RUFDQTs7O0FDdkJEO0VBQ0M7RUFDQTs7QUFFQTtFQUNDO0VBQ0E7RUFDQTs7O0FmaUdEO0VlN0ZEO0lBRUU7Ozs7QUNiRjtFQUNDO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0M7RUFDQTtFQUNBOzs7QUFJRjtFQUNDO0VBQ0E7RUFDQTtFQUNBOzs7QUFHRDtFQUNDO0VBQ0E7O0FBRUE7RUFDQzs7O0FDekJGO0VBQ0k7OztBQ0RKO0VBQ0M7RUFFQTtFQUNBO0VBQ0E7RUFDRztFQUVIO0VBQ0c7RUFDQTtFQUNIO0VBQ0c7RUFDQTtFQUVIO0VBQ0E7OztBQUdEO0VBQ0M7OztBQUdEO0VBQ0M7OztBQUdEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNDOzs7QUNuQ0Y7QUFDQTtFQUNDO0VBRUE7RUFDQTtFQUVBO0VBQ0E7RUFFQTtFQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBOzs7QUFHRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0FBQUE7RUFFQztFQUNBO0VBRUE7RUFDQTtFQUVBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7OztBQUlEO0FBQ0M7RUFDQTs7O0FBR0Q7QUFDQztFQUNBOzs7QUFHRDtFQUNDOzs7QUFHRDtBQUFBO0VBRUM7RUFDQTs7O0FBSUQ7RUFDQzs7O0FBR0Q7RUFDQzs7O0FBR0Q7QUFFQTtFQUNDOzs7QUNqRkQ7RUFDQzs7O0FBRUQ7RUFDQztFQUNBOzs7QUNQRDtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNDO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRDtBQUFBO0VBRUM7O0FBR0Q7RUFDQzs7O0FDdkJGO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7OztBQUdEO0VBQ0M7RUFDQTtFQUNBO0VBQ0E7OztBekJJRDtBQUNBIiwiZmlsZSI6Im1haW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyogQmFzZSAqL1xuQGltcG9ydCAnLi9iYXNlL3Jlc2V0JztcbkBpbXBvcnQgJy4vYmFzZS9yZW0nO1xuQGltcG9ydCAnLi9iYXNlL3ZhcnMnO1xuQGltcG9ydCAnLi9iYXNlL21peGlucyc7XG5AaW1wb3J0ICcuL2Jhc2UvZm9udHNBdXRvR2VuJztcbkBpbXBvcnQgJy4vYmFzZS9iYXNlJztcbkBpbXBvcnQgJy4vYmFzZS9kb2NzJzsgLyog0J7RgtC60LvRjtGH0LjRgtGMINC/0YDQuCDQvdC10L7QsdGF0L7QtNC40LzQvtGB0YLQuCAqL1xuQGltcG9ydCAnLi9iYXNlL3V0aWxzJzsgLy8g0KLQtdGB0YIg0L3QsCDQvtGI0LjQsdC60YNcbkBpbXBvcnQgJy4vYmFzZS9jb250YWluZXJzJztcbkBpbXBvcnQgJy4vYmFzZS9zdGlja3ktZm9vdGVyJztcblxuLyog0JvQtdC90LTQuNC90LMg0JLQsNC70YLQtdC60YEgKNC60L7RgNC90LXQstC+0LkgaW5kZXguaHRtbCkgKi9cbkBpbXBvcnQgJy4vcGFnZXMvdmFsdGV4LXZhcnMnO1xuQGltcG9ydCAnLi9wYWdlcy92YWx0ZXgtYmFzZSc7XG5AaW1wb3J0ICcuL3BhZ2VzL3ZhbHRleC1sYW5kaW5nJztcbkBpbXBvcnQgJy4vcGFnZXMvdmFsdGV4LWdsYXNzLWhlYWRlcic7XG5cbi8qIEJsb2NrcyAqL1xuQGltcG9ydCBcImJsb2Nrcy9fZm9vdGVyLnNjc3NcIjtcbkBpbXBvcnQgXCJibG9ja3MvX2hlYWRlci5zY3NzXCI7XG5AaW1wb3J0IFwiYmxvY2tzL19pY29ucy5zY3NzXCI7XG5AaW1wb3J0IFwiYmxvY2tzL19sb2dvLnNjc3NcIjtcbkBpbXBvcnQgXCJibG9ja3MvX21vYmlsZS1uYXYuc2Nzc1wiO1xuQGltcG9ydCBcImJsb2Nrcy9fbmF2LWljb24uc2Nzc1wiO1xuQGltcG9ydCBcImJsb2Nrcy9fbmF2LnNjc3NcIjtcbkBpbXBvcnQgXCJibG9ja3MvX3N3aXBlci1kZW1vLnNjc3NcIjtcbkBpbXBvcnQgXCJibG9ja3MvX3RpdGxlcy5zY3NzXCI7XG5cbi8qIE5vIHN0eWxlcyBjb2RlIGJlbG93LiBPbmx5IGluIG1vZHVsZXMgKi9cbi8qINCd0LUg0L/QuNGI0LjRgtC1IENTUyDQutC+0LQg0L3QuNC20LUuINCi0L7Qu9GM0LrQviDQsiDQv9C+0LTQutC70Y7Rh9Cw0LXQvNGL0YUg0YTQsNC50LvQsNGFICovXG4iLCIvKiBSZXNldCBhbmQgYmFzZSBzdHlsZXMgICovXG4qIHtcblx0cGFkZGluZzogMDtcblx0bWFyZ2luOiAwO1xuXHRib3JkZXI6IG5vbmU7XG59XG5cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG5cdGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8qIExpbmtzICovXG5cbmEsIGE6bGluaywgYTp2aXNpdGVkICB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5hOmhvdmVyICB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4vKiBDb21tb24gKi9cblxuYXNpZGUsIG5hdiwgZm9vdGVyLCBoZWFkZXIsIHNlY3Rpb24sIG1haW4ge1xuXHRkaXNwbGF5OiBibG9jaztcbn1cblxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCB7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuXHRmb250LXdlaWdodDogaW5oZXJpdDtcbn1cblxudWwsIHVsIGxpIHtcblx0bGlzdC1zdHlsZTogbm9uZTtcbn1cblxuaW1nIHtcblx0dmVydGljYWwtYWxpZ246IHRvcDtcbn1cblxuaW1nLCBzdmcge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG5cdGhlaWdodDogYXV0bztcbn1cblxuYWRkcmVzcyB7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLyogRm9ybSAqL1xuXG5pbnB1dCwgdGV4dGFyZWEsIGJ1dHRvbiwgc2VsZWN0IHtcblx0Zm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG5pbnB1dDo6LW1zLWNsZWFyIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cblxuYnV0dG9uLCBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuaW5wdXQ6Zm9jdXMsIGlucHV0OmFjdGl2ZSxcbmJ1dHRvbjpmb2N1cywgYnV0dG9uOmFjdGl2ZSB7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcblx0cGFkZGluZzogMDtcblx0Ym9yZGVyOiAwO1xufVxuXG5sYWJlbCB7XG5cdGN1cnNvcjogcG9pbnRlcjtcbn1cblxubGVnZW5kIHtcblx0ZGlzcGxheTogYmxvY2s7XG59XG4iLCIvKiAxcmVtID0gMTBweCDQv9GA0Lgg0YHRgtCw0L3QtNCw0YDRgtC90L7QvCDRgNCw0LfQvNC10YDQtSDRiNGA0LjRhNGC0LAg0LIg0LHRgNCw0YPQt9C10YDQtSAoMTZweCDDlyA2Mi41JSkgKi9cclxuaHRtbCB7XHJcblx0Zm9udC1zaXplOiA2Mi41JTtcclxuXHQtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XHJcbn1cclxuXHJcbmJvZHkge1xyXG5cdGZvbnQtc2l6ZTogMS42cmVtO1xyXG5cdGxpbmUtaGVpZ2h0OiAxLjU7XHJcbn1cclxuIiwiLyog0JHRgNC10LnQutC/0L7QuNC90YLRiyAo0LfQvdCw0YfQtdC90LjRjyDQtNC70Y8gbWluLXdpZHRoLCBtb2JpbGUtZmlyc3QpICovXHJcbiRicC0zMjA6IDMyMHB4O1xyXG4kYnAtMzYwOiAzNjBweDtcclxuJGJwLTQ4MDogNDgwcHg7XHJcbiRicC01Njc6IDU2N3B4O1xyXG4kYnAtNzY4OiA3NjhweDtcclxuJGJwLTk5MjogOTkycHg7XHJcbiRicC0xMjAwOiAxMjAwcHg7XHJcbiRicC0xNDQwOiAxNDQwcHg7XHJcbiRicC0xNjAwOiAxNjAwcHg7XHJcbiRicC0xOTIwOiAxOTIwcHg7XHJcblxyXG5AbWl4aW4gZnJvbS0zMjAge1xyXG5cdEBtZWRpYSAobWluLXdpZHRoOiAkYnAtMzIwKSB7XHJcblx0XHRAY29udGVudDtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBmcm9tLTM2MCB7XHJcblx0QG1lZGlhIChtaW4td2lkdGg6ICRicC0zNjApIHtcclxuXHRcdEBjb250ZW50O1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGZyb20tNDgwIHtcclxuXHRAbWVkaWEgKG1pbi13aWR0aDogJGJwLTQ4MCkge1xyXG5cdFx0QGNvbnRlbnQ7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gZnJvbS01Njcge1xyXG5cdEBtZWRpYSAobWluLXdpZHRoOiAkYnAtNTY3KSB7XHJcblx0XHRAY29udGVudDtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBmcm9tLTc2OCB7XHJcblx0QG1lZGlhIChtaW4td2lkdGg6ICRicC03NjgpIHtcclxuXHRcdEBjb250ZW50O1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGZyb20tOTkyIHtcclxuXHRAbWVkaWEgKG1pbi13aWR0aDogJGJwLTk5Mikge1xyXG5cdFx0QGNvbnRlbnQ7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gZnJvbS0xMjAwIHtcclxuXHRAbWVkaWEgKG1pbi13aWR0aDogJGJwLTEyMDApIHtcclxuXHRcdEBjb250ZW50O1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIGZyb20tMTQ0MCB7XHJcblx0QG1lZGlhIChtaW4td2lkdGg6ICRicC0xNDQwKSB7XHJcblx0XHRAY29udGVudDtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiBmcm9tLTE2MDAge1xyXG5cdEBtZWRpYSAobWluLXdpZHRoOiAkYnAtMTYwMCkge1xyXG5cdFx0QGNvbnRlbnQ7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gZnJvbS0xOTIwIHtcclxuXHRAbWVkaWEgKG1pbi13aWR0aDogJGJwLTE5MjApIHtcclxuXHRcdEBjb250ZW50O1xyXG5cdH1cclxufVxyXG5cclxuLyogTWF4LXdpZHRoOiDRg9C00L7QsdC90L4g0LTQu9GPIMKr0LTQviDQv9C70LDQvdGI0LXRgtCwwrsg0Lgg0YIu0L8uICovXHJcbkBtaXhpbiB1bnRpbC0zNTkge1xyXG5cdEBtZWRpYSAobWF4LXdpZHRoOiAzNTkuOThweCkge1xyXG5cdFx0QGNvbnRlbnQ7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gdW50aWwtNDc5IHtcclxuXHRAbWVkaWEgKG1heC13aWR0aDogNDc5Ljk4cHgpIHtcclxuXHRcdEBjb250ZW50O1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIHVudGlsLTU2NiB7XHJcblx0QG1lZGlhIChtYXgtd2lkdGg6IDU2Ni45OHB4KSB7XHJcblx0XHRAY29udGVudDtcclxuXHR9XHJcbn1cclxuXHJcbkBtaXhpbiB1bnRpbC03Njcge1xyXG5cdEBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xyXG5cdFx0QGNvbnRlbnQ7XHJcblx0fVxyXG59XHJcblxyXG5AbWl4aW4gdW50aWwtOTkxIHtcclxuXHRAbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcclxuXHRcdEBjb250ZW50O1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIHVudGlsLTExOTkge1xyXG5cdEBtZWRpYSAobWF4LXdpZHRoOiAxMTk5Ljk4cHgpIHtcclxuXHRcdEBjb250ZW50O1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIHVudGlsLTE0Mzkge1xyXG5cdEBtZWRpYSAobWF4LXdpZHRoOiAxNDM5Ljk4cHgpIHtcclxuXHRcdEBjb250ZW50O1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIHVudGlsLTE1OTkge1xyXG5cdEBtZWRpYSAobWF4LXdpZHRoOiAxNTk5Ljk4cHgpIHtcclxuXHRcdEBjb250ZW50O1xyXG5cdH1cclxufVxyXG5cclxuQG1peGluIHVudGlsLTE5MTkge1xyXG5cdEBtZWRpYSAobWF4LXdpZHRoOiAxOTE5Ljk4cHgpIHtcclxuXHRcdEBjb250ZW50O1xyXG5cdH1cclxufVxyXG4iLCJAaW1wb3J0ICcuL2JyZWFrcG9pbnRzJztcblxuOnJvb3Qge1xuXHQvKiDQmtC+0L3RgtC10LnQvdC10YAg0L3QsCDQstGB0Y4g0YjQuNGA0LjQvdGDINCy0YzRjtC/0L7RgNGC0LA7INGB0LXRgtC60YMg0LfQsNC00LDRkdGCIC0tY29udGFpbmVyLXBhZGRpbmcgKi9cblx0LS1jb250YWluZXItd2lkdGg6IDEwMCU7XG5cblx0LS1mb250LW1haW46ICdNb250c2VycmF0Jywgc2Fucy1zZXJpZjtcblx0LS1mb250LWFjY2VudDogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmO1xuXHQtLWZvbnQtdGl0bGVzOiB2YXIoLS1mb250LWFjY2VudCk7XG5cblx0LS1wYWdlLWJnOiAjZmZmO1xuXHQtLXRleHQtY29sb3I6ICMwMDA7XG5cdC0tYWNjZW50OiAjYWMxODJjO1xuXHQtLWxpbmstY29sb3I6ICMyNTc4Yzg7XG5cblx0Lyog0JHRgNC10LnQutC/0L7QuNC90YLRiyDQsiByZW0gKDFyZW0gPSAxMHB4KSDigJQg0LTQu9GPIGNhbGMg0LIgSlMg0LjQu9C4INC60LDRgdGC0L7QvNC90YvRhSDQv9GA0LDQstC40LsgKi9cblx0LS1icC0zMjA6IDMycmVtO1xuXHQtLWJwLTM2MDogMzZyZW07XG5cdC0tYnAtNDgwOiA0OHJlbTtcblx0LS1icC01Njc6IDU2LjdyZW07XG5cdC0tYnAtNzY4OiA3Ni44cmVtO1xuXHQtLWJwLTk5MjogOTkuMnJlbTtcblx0LS1icC0xMjAwOiAxMjByZW07XG5cdC0tYnAtMTQ0MDogMTQ0cmVtO1xuXHQtLWJwLTE2MDA6IDE2MHJlbTtcblx0LS1icC0xOTIwOiAxOTJyZW07XG5cblx0LS1sYXB0b3Atc2l6ZTogMTE5Ljk4cmVtO1xuXHQtLXRhYmxldC1zaXplOiA5OS4xOThyZW07XG5cdC0tbW9iaWxlLXNpemU6IDc2Ljc5OHJlbTtcblxuXHQvKiDQkdC+0LrQvtCy0YvQtSDQvtGC0YHRgtGD0L/Rizog0L/Qu9Cw0LLQvdGL0Lkg0YDQvtGB0YIg0LogOHJlbSDQvdCwIDE0NDBweDsg0L3QsCAxNjAwKyDQuCAxOTIwKyDRh9GD0YLRjCDRiNC40YDQtSDCq9Cy0L7Qt9C00YPRhcK7ICovXG5cdC0tY29udGFpbmVyLXBhZGRpbmc6IDEuMnJlbTtcbn1cblxuQGluY2x1ZGUgZnJvbS0zNjAge1xuXHQ6cm9vdCB7XG5cdFx0LS1jb250YWluZXItcGFkZGluZzogMS4ycmVtO1xuXHR9XG59XG5cbkBpbmNsdWRlIGZyb20tNDgwIHtcblx0OnJvb3Qge1xuXHRcdC0tY29udGFpbmVyLXBhZGRpbmc6IDEuNHJlbTtcblx0fVxufVxuXG5AaW5jbHVkZSBmcm9tLTU2NyB7XG5cdDpyb290IHtcblx0XHQtLWNvbnRhaW5lci1wYWRkaW5nOiAxLjZyZW07XG5cdH1cbn1cblxuQGluY2x1ZGUgZnJvbS03Njgge1xuXHQ6cm9vdCB7XG5cdFx0LS1jb250YWluZXItcGFkZGluZzogMi40cmVtO1xuXHR9XG59XG5cbkBpbmNsdWRlIGZyb20tOTkyIHtcblx0OnJvb3Qge1xuXHRcdC0tY29udGFpbmVyLXBhZGRpbmc6IDRyZW07XG5cdH1cbn1cblxuQGluY2x1ZGUgZnJvbS0xMjAwIHtcblx0OnJvb3Qge1xuXHRcdC0tY29udGFpbmVyLXBhZGRpbmc6IDZyZW07XG5cdH1cbn1cblxuQGluY2x1ZGUgZnJvbS0xNDQwIHtcblx0OnJvb3Qge1xuXHRcdC0tY29udGFpbmVyLXBhZGRpbmc6IDhyZW07XG5cdH1cbn1cblxuQGluY2x1ZGUgZnJvbS0xNjAwIHtcblx0OnJvb3Qge1xuXHRcdC0tY29udGFpbmVyLXBhZGRpbmc6IDEwcmVtO1xuXHR9XG59XG5cbkBpbmNsdWRlIGZyb20tMTkyMCB7XG5cdDpyb290IHtcblx0XHQtLWNvbnRhaW5lci1wYWRkaW5nOiAxMnJlbTtcblx0fVxufVxuXG4uZGFyayB7XG5cdC0tcGFnZS1iZzogIzI1MjUyNjtcblx0LS10ZXh0LWNvbG9yOiAjZmZmO1xufVxuIiwiQGltcG9ydCAnLi9icmVha3BvaW50cyc7XG5cbkBtaXhpbiBtZWRpYUJnKCkge1xuXHRAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMiksIChtaW4tcmVzb2x1dGlvbjogMTkyZHBpKSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuLyog0KHQtdC80LDQvdGC0LjQutCwINGI0LDQsdC70L7QvdCwOiDCq9C/0LvQsNC90YjQtdGCwrsg4oCUINC00L4gMTIwMHB4LCDCq9C80L7QsdC40LvRjNC90YvQucK7IOKAlCDQtNC+IDc2OHB4ICovXG5AbWl4aW4gdGFibGV0KCkge1xuXHRAaW5jbHVkZSB1bnRpbC0xMTk5IHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG5AbWl4aW4gbW9iaWxlKCkge1xuXHRAaW5jbHVkZSB1bnRpbC03Njcge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG4iLCJAZm9udC1mYWNlIHtcblx0Zm9udC1mYW1pbHk6IE1vbnRzZXJyYXQ7XG5cdGZvbnQtZGlzcGxheTogc3dhcDtcblx0c3JjOiB1cmwoXCIuLi9mb250cy9Nb250c2VycmF0LUJvbGQud29mZjJcIikgZm9ybWF0KFwid29mZjJcIiksIHVybChcIi4uL2ZvbnRzL01vbnRzZXJyYXQtQm9sZC53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG5cdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cclxuQGZvbnQtZmFjZSB7XG5cdGZvbnQtZmFtaWx5OiBNb250c2VycmF0O1xuXHRmb250LWRpc3BsYXk6IHN3YXA7XG5cdHNyYzogdXJsKFwiLi4vZm9udHMvTW9udHNlcnJhdC1Cb2xkSXRhbGljLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9Nb250c2VycmF0LUJvbGRJdGFsaWMud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpO1xuXHRmb250LXdlaWdodDogNzAwO1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG59XHJcbkBmb250LWZhY2Uge1xuXHRmb250LWZhbWlseTogTW9udHNlcnJhdDtcblx0Zm9udC1kaXNwbGF5OiBzd2FwO1xuXHRzcmM6IHVybChcIi4uL2ZvbnRzL01vbnRzZXJyYXQtUmVndWxhci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvTW9udHNlcnJhdC1SZWd1bGFyLndvZmZcIikgZm9ybWF0KFwid29mZlwiKTtcblx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xufVxyXG4iLCJodG1sIHtcblx0c2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG5cdGJhY2tncm91bmQtY29sb3I6IHJnYigzOSwgMzksIDM5KTtcbn1cblxuYm9keSB7XG5cdGJhY2tncm91bmQtY29sb3I6IHZhcigtLXBhZ2UtYmcpO1xuXHRjb2xvcjogdmFyKC0tdGV4dC1jb2xvcik7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1haW4pO1xuXHR0ZXh0LXdyYXA6IGJhbGFuY2U7XG59XG5cbmltZyB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG5hIHtcblx0Y29sb3I6IHZhcigtLWxpbmstY29sb3IpO1xufVxuXG5jb2RlIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2U5ZjFmNjtcblx0cGFkZGluZzogMC4ycmVtO1xuXHRib3JkZXItcmFkaXVzOiAwLjRyZW07XG59XG5cbnByZS5jb2RlIHtcblx0b3ZlcmZsb3cteDogYXV0bztcblx0YmFja2dyb3VuZC1jb2xvcjogI2U5ZjFmNjtcblx0cGFkZGluZzogMXJlbTtcblx0Ym9yZGVyLXJhZGl1czogMC40cmVtO1xufVxuIiwiLmRvY3Mge1xuXHRkaXNwbGF5OiBncmlkO1xuXHQvLyByb3ctZ2FwOiA0MHB4O1xuXHRsaW5lLWhlaWdodDogMS41O1xuXG5cdHAge1xuXHRcdG1hcmdpbjogMXJlbSAwO1xuXHR9XG5cblx0dWwsXG5cdG9sIHtcblx0XHRwYWRkaW5nLWxlZnQ6IDJyZW07XG5cblx0XHRsaSB7XG5cdFx0XHRsaXN0LXN0eWxlOiBkaXNjO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXHRcdH1cblx0fVxuXG5cdG9sIGxpIHtcblx0XHRsaXN0LXN0eWxlOiBkZWNpbWFsO1xuXHR9XG5cblx0c2VjdGlvbiwgc2VjdGlvbi5kb2NzIHtcblx0XHRwYWRkaW5nOiA0cmVtIDA7XG5cdH1cblxuXHRzZWN0aW9uICsgc2VjdGlvbiB7XG5cdFx0Ym9yZGVyLXRvcDogMC4xcmVtIHNvbGlkICNkYWU1ZTk7XG5cdH1cblxuXHRzbWFsbCB7XG5cdFx0Zm9udC1zaXplOiAxcmVtO1xuXHRcdGNvbG9yOiByZ2IoMTcyLCAxNzIsIDE3Mik7XG5cdH1cblxuXHQudGl0bGUtMTpmaXJzdC1jaGlsZCxcblx0LnRpdGxlLTI6Zmlyc3QtY2hpbGQge1xuXHRcdG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcblx0fVxufVxuXG4udGVzdCB7XG5cdHdpZHRoOiA2MHJlbTtcblx0aGVpZ2h0OiAzMHJlbTtcblx0bWFyZ2luOiA1cmVtIGF1dG87XG5cdGJhY2tncm91bmQtY29sb3I6ICM5OTk7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7IC8qIHggeSAqL1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXG5cdC8vINCg0LDQsdC+0YLQsNC10YIgcmV0aW5hIHNjc3Mgd2VicFxuXHQvLyDQs9GA0YPQt9C40YLRgdGPIDJ4IGpwZWcgMnggd2VicFxuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4vLi4vaW1nL3Byb2plY3QtMDIuanBnJyk7XG5cdEBpbmNsdWRlIG1lZGlhQmcoKSB7XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLy4uL2ltZy9wcm9qZWN0LTAyQDJ4LmpwZycpO1xuXHR9XG5cblx0Ly8g0J3QtSDRgNCw0LHQvtGC0LDQtdGCIHdlYnAgYyDQv9C+0LTRgdGC0LDQvdC+0LLQutC+0LkgMngsINCz0YDRg9C30LjRgtGB0Y8ganBnIDJ4XG5cdC8vIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXNldChcblx0Ly8gXHR1cmwoJy4vLi4vaW1nL3Byb2plY3QtMDIuanBnJykgMXgsXG5cdC8vIFx0dXJsKCcuLy4uL2ltZy9wcm9qZWN0LTAyQDJ4LmpwZycpIDJ4KTtcbn1cblxuLnRlc3QtMiB7XG5cdHdpZHRoOiA2MHJlbTtcblx0aGVpZ2h0OiAzMHJlbTtcblx0bWFyZ2luOiA1cmVtIGF1dG87XG5cdGJhY2tncm91bmQtY29sb3I6ICM5OTk7XG5cdGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7IC8qIHggeSAqL1xuXHRiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXG5cdC8vINCd0LUg0YDQsNCx0L7RgtCw0LXRgiB3ZWJwIGMg0L/QvtC00YHRgtCw0L3QvtCy0LrQvtC5IDJ4LCDQs9GA0YPQt9C40YLRgdGPIGpwZyAyeFxuXHRiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS1zZXQoXG5cdFx0dXJsKCcuLy4uL2ltZy9wcm9qZWN0LTAyLmpwZycpIDF4LFxuXHRcdHVybCgnLi8uLi9pbWcvcHJvamVjdC0wMkAyeC5qcGcnKSAyeCk7XG59XG5cbi5mb250LTEge1xuXHRmb250LWZhbWlseTogJ01vbnRzZXJyYXQnO1xuXHRmb250LXdlaWdodDogNzAwO1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5mb250LTIge1xuXHRmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmO1xuXHRmb250LXdlaWdodDogNDAwO1xufVxuIiwiLm5vbmUge1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi52aXN1YWxseS1oaWRkZW4ge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiAwLjFyZW07XG5cdGhlaWdodDogMC4xcmVtO1xuXHRtYXJnaW46IC0wLjFyZW07XG5cdGJvcmRlcjogMDtcblx0cGFkZGluZzogMDtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0Y2xpcC1wYXRoOiBpbnNldCgxMDAlKTtcblx0Y2xpcDogcmVjdCgwIDAgMCAwKTtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm5vLXNjcm9sbCB7XG5cdG92ZXJmbG93LXk6IGhpZGRlbjtcbn1cblxuLnRleHQtbGVmdCB7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi50ZXh0LXJpZ2h0IHtcblx0dGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi50ZXh0LWNlbnRlciB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmQtZmxleCB7XG5cdGRpc3BsYXk6IGZsZXg7XG59XG5cbi5mbGV4LWNlbnRlciB7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuIiwiLyog0JTQtdC80L4g0LrQvtC90YLQtdC90YIgKi9cbi5jb250ZW50LWRlbW8ge1xuXHRtYXJnaW4tYm90dG9tOiA1cmVtO1xuXHRwYWRkaW5nOiAxcmVtO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZGFkYWRhO1xufVxuXG4vKiDQmtC+0L3RgtC10LnQvdC10YDRiyAqL1xuLmNvbnRhaW5lciB7XG5cdG1hcmdpbjogMCBhdXRvO1xuXHRwYWRkaW5nOiAwIHZhcigtLWNvbnRhaW5lci1wYWRkaW5nKTtcblxuXHRtYXgtd2lkdGg6IHZhcigtLWNvbnRhaW5lci13aWR0aCk7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4uY29udGFpbmVyLWZ1bGwge1xuXHRwYWRkaW5nOiAwIHZhcigtLWNvbnRhaW5lci1wYWRkaW5nKTtcblx0bWF4LXdpZHRoOiAxMDAlO1xufVxuXG4uY29udGFpbmVyLWxlZnQtNTAge1xuXHRwYWRkaW5nOiAwIHZhcigtLWNvbnRhaW5lci1wYWRkaW5nKTtcblx0bWF4LXdpZHRoOiA1MCU7XG5cblx0QGluY2x1ZGUgbW9iaWxlIHtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdH1cbn1cblxuLmNvbnRhaW5lci1yaWdodC01MCB7XG5cdHBhZGRpbmc6IDAgdmFyKC0tY29udGFpbmVyLXBhZGRpbmcpO1xuXHRtYXgtd2lkdGg6IDUwJTtcblx0bWFyZ2luLWxlZnQ6IGF1dG87XG5cblx0QGluY2x1ZGUgbW9iaWxlIHtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdH1cbn1cblxuLmNvbnRhaW5lci1yaWdodCB7XG5cdHBhZGRpbmctbGVmdDogY2FsYyhcblx0XHQoMTAwJSAtIHZhcigtLWNvbnRhaW5lci13aWR0aCkpIC8gMiArIHZhcigtLWNvbnRhaW5lci1wYWRkaW5nKVxuXHQpO1xuXG5cdEBpbmNsdWRlIHRhYmxldCB7XG5cdFx0cGFkZGluZy1sZWZ0OiB2YXIoLS1jb250YWluZXItcGFkZGluZyk7XG5cdH1cbn1cblxuLmNvbnRhaW5lci1sZWZ0IHtcblx0cGFkZGluZy1yaWdodDogY2FsYyhcblx0XHQoMTAwJSAtIHZhcigtLWNvbnRhaW5lci13aWR0aCkpIC8gMiArIHZhcigtLWNvbnRhaW5lci1wYWRkaW5nKVxuXHQpO1xuXG5cdEBpbmNsdWRlIHRhYmxldCB7XG5cdFx0cGFkZGluZy1yaWdodDogdmFyKC0tY29udGFpbmVyLXBhZGRpbmcpO1xuXHR9XG59XG5cbi5jb250YWluZXItaGFsZi1sZWZ0IHtcblx0cGFkZGluZy1yaWdodDogY2FsYyhcblx0XHQoMTAwJSAtIHZhcigtLWNvbnRhaW5lci13aWR0aCkpIC8gMiArICh2YXIoLS1jb250YWluZXItd2lkdGgpIC8gMilcblx0KTtcblx0cGFkZGluZy1sZWZ0OiBjYWxjKFxuXHRcdCgxMDAlIC0gdmFyKC0tY29udGFpbmVyLXdpZHRoKSkgLyAyICsgdmFyKC0tY29udGFpbmVyLXBhZGRpbmcpXG5cdCk7XG5cblx0QGluY2x1ZGUgdGFibGV0IHtcblx0XHRwYWRkaW5nLWxlZnQ6IHZhcigtLWNvbnRhaW5lci1wYWRkaW5nKTtcblx0fVxuXG5cdEBpbmNsdWRlIG1vYmlsZSB7XG5cdFx0cGFkZGluZzogMCB2YXIoLS1jb250YWluZXItcGFkZGluZyk7XG5cdH1cbn1cblxuLmNvbnRhaW5lci1oYWxmLXJpZ2h0IHtcblx0cGFkZGluZy1sZWZ0OiBjYWxjKFxuXHRcdCgxMDAlIC0gdmFyKC0tY29udGFpbmVyLXdpZHRoKSkgLyAyICsgKHZhcigtLWNvbnRhaW5lci13aWR0aCkgLyAyKVxuXHQpO1xuXHRwYWRkaW5nLXJpZ2h0OiBjYWxjKFxuXHRcdCgxMDAlIC0gdmFyKC0tY29udGFpbmVyLXdpZHRoKSkgLyAyICsgdmFyKC0tY29udGFpbmVyLXBhZGRpbmcpXG5cdCk7XG5cblx0QGluY2x1ZGUgdGFibGV0IHtcblx0XHRwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jb250YWluZXItcGFkZGluZyk7XG5cdH1cblxuXHRAaW5jbHVkZSBtb2JpbGUge1xuXHRcdHBhZGRpbmc6IDAgdmFyKC0tY29udGFpbmVyLXBhZGRpbmcpO1xuXHR9XG59XG4iLCJodG1sLCBib2R5IHtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5mb290ZXIge1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG59XG5cbi5mb290ZXIge1xuXHRwYWRkaW5nOiA2cmVtIDA7XG5cdGJhY2tncm91bmQtY29sb3I6ICNlM2UzZTM7XG59IiwiLyog0KbQstC10YLQsCDQuCDRgtC+0LrQtdC90Ysg0LvQtdC90LTQuNC90LPQsCDQktCw0LvRgtC10LrRgSAqL1xuOnJvb3Qge1xuXHQtLXZ0LWJsdWU6ICMwQTNGQkY7XG5cdC0tdnQtYmx1ZS1kYXJrOiAjMTAzMjhCO1xuXHQtLXZ0LW5hdnk6ICMwQzExMzk7XG5cdC0tdnQtY2hhcmNvYWw6ICMyODI4Mjg7XG5cdC0tdnQtb3JhbmdlOiAjRkQ1MjAyO1xuXHQtLXZ0LWdyYXk6ICNDN0M4QzM7XG5cdC0tdnQtbGlnaHQ6ICNGNUY1RjU7XG5cdC0tdnQtd2hpdGU6ICNGRkZGRkY7XG5cdC0tdnQtb3JhbmdlLWhvdmVyOiAjZTU0YTAwO1xuXHQtLXZ0LWJsdWUtaG92ZXI6ICMwODM1YTA7XG5cdC0tdnQtc2VjdGlvbi1wYWRkaW5nOiAxMHJlbSAwO1xuXHQtLXZ0LWNvbnRhaW5lcjogMTIwcmVtO1xuXHQvKlxuXHQgINCR0L7QutC+0LLQvtC5IMKr0LLQvtC30LTRg9GFwrsg0LLQvdGD0YLRgNC4IC52dC1jb250YWluZXIg4oCUINC90LUg0LPQu9C+0LHQsNC70YzQvdGL0LkgLS1jb250YWluZXItcGFkZGluZ1xuXHQgICjRgtC+0YIg0LTQvtGF0L7QtNC40YIg0LTQviA44oCTMTByZW0g0Lgg0YHQttC40LzQsNC10YIg0LrQvtC90YLQtdC90YIg0L/RgNC4IG1heC13aWR0aCAxMjByZW0pLlxuXHQqL1xuXHQtLXZ0LWNvbnRhaW5lci1pbmxpbmU6IGNsYW1wKDEuMnJlbSwgMi41dncsIDIuNHJlbSk7XG59XG4iLCIvKiDQkdCw0LfQsCDRgdGC0YDQsNC90LjRhtGLINCS0LDQu9GC0LXQutGBICovXG5odG1sIHtcblx0c2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG5cbmJvZHkudnQtYm9keSB7XG5cdGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1haW4pLCAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7XG5cdGNvbG9yOiB2YXIoLS12dC1jaGFyY29hbCk7XG5cdGJhY2tncm91bmQ6IHZhcigtLXZ0LXdoaXRlKTtcblx0bGluZS1oZWlnaHQ6IDEuNjtcblx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG4iLCIvKiDQkdC70L7QutC4INC70LXQvdC00LjQvdCz0LAg0JLQsNC70YLQtdC60YEgKi9cblxuICAgIC52dC1jb250YWluZXIge1xuICAgICAgbWF4LXdpZHRoOiB2YXIoLS12dC1jb250YWluZXIpO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBwYWRkaW5nOiAwIHZhcigtLXZ0LWNvbnRhaW5lci1pbmxpbmUpO1xuICAgIH1cblxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJTsgaGVpZ2h0OiBhdXRvOyBkaXNwbGF5OiBibG9jazsgfVxuXG4gICAgYSB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgY29sb3I6IGluaGVyaXQ7IHRyYW5zaXRpb246IGNvbG9yIDAuMnM7IH1cblxuICAgIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgICAgIFRZUE9HUkFQSFlcbiAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbiAgICBoMSwgaDIsIGgzLCBoNCwgaDUgeyBsaW5lLWhlaWdodDogMS4yOyB9XG5cbiAgICAuc2VjdGlvbi1sYWJlbCB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMC4zcmVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGNvbG9yOiB2YXIoLS12dC1vcmFuZ2UpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS42cmVtO1xuICAgIH1cblxuICAgIC5zZWN0aW9uLXRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMi44cmVtLCA0dncsIDQuMnJlbSk7XG4gICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgY29sb3I6IHZhcigtLXZ0LW5hdnkpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICB9XG5cbiAgICAuc2VjdGlvbi1zdWJ0aXRsZSB7XG4gICAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICAgIGNvbG9yOiAjNTU1O1xuICAgICAgbWF4LXdpZHRoOiA2NHJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjc7XG4gICAgfVxuXG4gICAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICAgICAgQlVUVE9OU1xuICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuICAgIC5idG4ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBnYXA6IDAuOHJlbTtcbiAgICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBwYWRkaW5nOiAxLjZyZW0gMy42cmVtO1xuICAgICAgYm9yZGVyLXJhZGl1czogMC42cmVtO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMjVzO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAuYnRuLXByaW1hcnkge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnQtb3JhbmdlKTtcbiAgICAgIGNvbG9yOiB2YXIoLS12dC13aGl0ZSk7XG4gICAgfVxuICAgIC5idG4tcHJpbWFyeTpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLXZ0LW9yYW5nZS1ob3Zlcik7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC4xcmVtKTsgfVxuXG4gICAgLmJ0bi1zZWNvbmRhcnkge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogdmFyKC0tdnQtd2hpdGUpO1xuICAgICAgYm9yZGVyOiAwLjJyZW0gc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjQpO1xuICAgIH1cbiAgICAuYnRuLXNlY29uZGFyeTpob3ZlciB7IGJvcmRlci1jb2xvcjogdmFyKC0tdnQtd2hpdGUpOyBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpOyB9XG5cbiAgICAuYnRuLW91dGxpbmUge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogdmFyKC0tdnQtYmx1ZSk7XG4gICAgICBib3JkZXI6IDAuMnJlbSBzb2xpZCB2YXIoLS12dC1ibHVlKTtcbiAgICB9XG4gICAgLmJ0bi1vdXRsaW5lOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tdnQtYmx1ZSk7IGNvbG9yOiB2YXIoLS12dC13aGl0ZSk7IH1cblxuICAgIC5idG4td2hpdGUge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnQtd2hpdGUpO1xuICAgICAgY29sb3I6IHZhcigtLXZ0LW5hdnkpO1xuICAgIH1cbiAgICAuYnRuLXdoaXRlOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tdnQtbGlnaHQpOyB9XG5cbiAgICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgICAgICBIRUFERVJcbiAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbiAgICAudnQtaGVhZGVyIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDEyLCAxNywgNTcsIDAuOTUpO1xuICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEuMnJlbSk7XG4gICAgICBib3JkZXItYm90dG9tOiAwLjFyZW0gc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA3KTtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcztcbiAgICB9XG5cbiAgICAudnQtaGVhZGVyLWlubmVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgaGVpZ2h0OiA4cmVtO1xuICAgIH1cblxuICAgIC52dC1sb2dvIHtcbiAgICAgIGZvbnQtc2l6ZTogMi42cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgIGNvbG9yOiB2YXIoLS12dC13aGl0ZSk7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMC4zcmVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG4gICAgLnZ0LWxvZ28gc3BhbiB7IGNvbG9yOiB2YXIoLS12dC1vcmFuZ2UpOyB9XG5cbiAgICAudnQtbmF2IHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAzLjJyZW07IH1cblxuICAgIC52dC1uYXYgYSB7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjc1KTtcbiAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnM7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMC4wM3JlbTtcbiAgICB9XG4gICAgLnZ0LW5hdiBhOmhvdmVyIHsgY29sb3I6IHZhcigtLXZ0LXdoaXRlKTsgfVxuXG4gICAgLnZ0LWhlYWRlci1yaWdodCB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMi40cmVtOyB9XG5cbiAgICAudnQtaGVhZGVyLXBob25lIHtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGNvbG9yOiB2YXIoLS12dC13aGl0ZSk7XG4gICAgfVxuICAgIC52dC1oZWFkZXItcGhvbmUgc3BhbiB7IGRpc3BsYXk6IGJsb2NrOyBmb250LXNpemU6IDEuMXJlbTsgZm9udC13ZWlnaHQ6IDQwMDsgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC41KTsgfVxuXG4gICAgLnZ0LWhlYWRlci1jdGEge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnQtb3JhbmdlKTtcbiAgICAgIGNvbG9yOiB2YXIoLS12dC13aGl0ZSk7XG4gICAgICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgICAgcGFkZGluZzogMS4ycmVtIDIuNHJlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycztcbiAgICB9XG4gICAgLnZ0LWhlYWRlci1jdGE6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS12dC1vcmFuZ2UtaG92ZXIpOyB9XG5cbiAgICAvKiBNb2JpbGUgYnVyZ2VyICovXG4gICAgLnZ0LWJ1cmdlciB7IGRpc3BsYXk6IG5vbmU7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMC41cmVtOyBjdXJzb3I6IHBvaW50ZXI7IHBhZGRpbmc6IDAuOHJlbTsgfVxuICAgIC52dC1idXJnZXIgc3BhbiB7IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogMi40cmVtOyBoZWlnaHQ6IDAuMnJlbTsgYmFja2dyb3VuZDogdmFyKC0tdnQtd2hpdGUpOyBib3JkZXItcmFkaXVzOiAwLjJyZW07IHRyYW5zaXRpb246IDAuM3M7IH1cblxuICAgIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgICAgIEhFUk9cbiAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbiAgICAuaGVybyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXZ0LW5hdnkpO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTpcbiAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgxMiwgMTcsIDU3LCAwLjg4KSAwJSwgcmdiYSgxNiwgNTAsIDEzOSwgMC44MikgNTAlLCByZ2JhKDEwLCA2MywgMTkxLCAwLjEpIDEwMCUpLFxuICAgICAgICB1cmwoJy4uL2ltZy9oZXJvLWJnci0xLmpwZycpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlciwgY292ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIsIGNlbnRlcjtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIG5vLXJlcGVhdDtcbiAgICB9XG5cbiAgICAuaGVybyA+IC5jb250YWluZXIge1xuICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuaGVyby1sYXlvdXQge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgZ2FwOiA0cmVtIDQuOHJlbTtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDE0cmVtIDAgMTByZW07XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAuaGVyby1sYXlvdXQge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5oZXJvOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBpbnNldDogMDtcbiAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMjAlIDgwJSwgcmdiYSgyNTMsIDgyLCAyLCAwLjA4KSAwJSwgdHJhbnNwYXJlbnQgNTAlKSxcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA4MCUgMjAlLCByZ2JhKDEwLCA2MywgMTkxLCAwLjE1KSAwJSwgdHJhbnNwYXJlbnQgNTAlKTtcbiAgICB9XG5cbiAgICAuaGVyby1ncmlkLW92ZXJsYXkge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaW5zZXQ6IDA7XG4gICAgICAvLyBiYWNrZ3JvdW5kLWltYWdlOlxuICAgICAgLy8gICBsaW5lYXItZ3JhZGllbnQocmdiYSgyNTUsMjU1LDI1NSwwLjAzKSAwLjFyZW0sIHRyYW5zcGFyZW50IDAuMXJlbSksXG4gICAgICAvLyAgIGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyNTUsMjU1LDI1NSwwLjAzKSAwLjFyZW0sIHRyYW5zcGFyZW50IDAuMXJlbSk7XG4gICAgICAvLyBiYWNrZ3JvdW5kLXNpemU6IDZyZW0gNnJlbTtcbiAgICB9XG5cbiAgICAuaGVyby1jb250ZW50IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuXG4gICAgLmhlcm8tYmFkZ2Uge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiAwLjhyZW07XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpO1xuICAgICAgYm9yZGVyOiAwLjFyZW0gc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjEyKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVyZW07XG4gICAgICBwYWRkaW5nOiAwLjhyZW0gMnJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDMuMnJlbTtcbiAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuOCk7XG4gICAgfVxuICAgIC5oZXJvLWJhZGdlIHN0cm9uZyB7IGNvbG9yOiB2YXIoLS12dC1vcmFuZ2UpOyB9XG5cbiAgICAuaGVybyBoMSB7XG4gICAgICBmb250LXNpemU6IGNsYW1wKDMuNnJlbSwgNS41dncsIDUuOHJlbSk7XG4gICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgY29sb3I6IHZhcigtLXZ0LXdoaXRlKTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIuNHJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjEyO1xuICAgIH1cbiAgICAuaGVybyBoMSBzcGFuIHsgY29sb3I6IHZhcigtLXZ0LW9yYW5nZSk7IH1cblxuICAgIC5oZXJvLXRleHQge1xuICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjcpO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNztcbiAgICAgIG1hcmdpbi1ib3R0b206IDQuOHJlbTtcbiAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG5cbiAgICAuaGVyby1idXR0b25zIHsgZGlzcGxheTogZmxleDsgZ2FwOiAxLjZyZW07IGZsZXgtd3JhcDogd3JhcDsgbWFyZ2luLWJvdHRvbTogNy4ycmVtOyB9XG5cbiAgICAuaGVyby1zdGF0cyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZ2FwOiA0LjhyZW07XG4gICAgICBib3JkZXItdG9wOiAwLjFyZW0gc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjEyKTtcbiAgICAgIHBhZGRpbmctdG9wOiA0cmVtO1xuICAgIH1cblxuICAgIC5oZXJvLXN0YXQtdmFsdWUge1xuICAgICAgZm9udC1zaXplOiA0LjJyZW07XG4gICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgY29sb3I6IHZhcigtLXZ0LXdoaXRlKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIH1cbiAgICAuaGVyby1zdGF0LXZhbHVlIHNwYW4geyBjb2xvcjogdmFyKC0tdnQtb3JhbmdlKTsgZm9udC1zaXplOiAyLjhyZW07IH1cblxuICAgIC5oZXJvLXN0YXQtbGFiZWwge1xuICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjUpO1xuICAgICAgbWFyZ2luLXRvcDogMC44cmVtO1xuICAgICAgbWF4LXdpZHRoOiAxM3JlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgfVxuXG4gICAgLmhlcm8tdmlzdWFsIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDI7XG4gICAgICB3aWR0aDogbWluKDEwMCUsIDUycmVtKTtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAganVzdGlmeS1zZWxmOiBjZW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDMpO1xuICAgICAgYm9yZGVyOiAwLjFyZW0gc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA2KTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLmhlcm8tdmlzdWFsLWlubmVyIHtcbiAgICAgIHdpZHRoOiA3MyU7XG4gICAgICBoZWlnaHQ6IDczJTtcbiAgICAgIG1heC13aWR0aDogMzhyZW07XG4gICAgICBtYXgtaGVpZ2h0OiAzOHJlbTtcbiAgICAgIGFzcGVjdC1yYXRpbzogMTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wMyk7XG4gICAgICBib3JkZXI6IDAuMXJlbSBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDYpO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBhZGRpbmc6IDRyZW07XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cblxuICAgIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgICAgIEZBQ0lMSVRJRVMgKFR5cGVzIG9mIFNwb3J0cyBPYmplY3RzKVxuICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuICAgIC5mYWNpbGl0aWVzIHsgcGFkZGluZzogdmFyKC0tdnQtc2VjdGlvbi1wYWRkaW5nKTsgYmFja2dyb3VuZDogdmFyKC0tdnQtd2hpdGUpOyB9XG5cbiAgICAuZmFjaWxpdGllcy1oZWFkZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDUuNnJlbTtcbiAgICAgIGdhcDogNHJlbTtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB9XG5cbiAgICAuZmFjaWxpdGllcy1oZWFkZXIgLnNlY3Rpb24tc3VidGl0bGUge1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuXG4gICAgLmZhY2lsaXRpZXMtZ3JpZCB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMjdyZW0sIDFmcikpO1xuICAgICAgZ2FwOiAycmVtO1xuICAgIH1cblxuICAgIC5mYWNpbGl0eS1jYXJkIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZ0LWxpZ2h0KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEuMnJlbTtcbiAgICAgIHBhZGRpbmc6IDMuMnJlbSAyLjhyZW07XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIH1cbiAgICAuZmFjaWxpdHktY2FyZDpob3ZlciB7XG4gICAgICBib3JkZXItY29sb3I6IHJnYmEoMTAsIDYzLCAxOTEsIDAuMTUpO1xuICAgICAgYm94LXNoYWRvdzogMCAwLjhyZW0gMy4ycmVtIHJnYmEoMTIsIDE3LCA1NywgMC4wOCk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuMnJlbSk7XG4gICAgfVxuXG4gICAgLmZhY2lsaXR5LWljb24ge1xuICAgICAgd2lkdGg6IDUuNnJlbTtcbiAgICAgIGhlaWdodDogNS42cmVtO1xuICAgICAgYm9yZGVyLXJhZGl1czogMS4ycmVtO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnQtd2hpdGUpO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICBmb250LXNpemU6IDIuNHJlbTtcbiAgICAgIGJveC1zaGFkb3c6IDAgMC4ycmVtIDAuOHJlbSByZ2JhKDAsMCwwLDAuMDYpO1xuICAgIH1cblxuICAgIC5mYWNpbGl0eS1pY29uIGltZyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgfVxuXG4gICAgLmZhY2lsaXR5LWNhcmQgaDMge1xuICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgY29sb3I6IHZhcigtLXZ0LW5hdnkpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB9XG5cbiAgICAuZmFjaWxpdHktY2FyZCBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgY29sb3I6ICM2NjY7XG4gICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIH1cblxuICAgIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgICAgIFRVUk5LRVkgKFdoeSBVcylcbiAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbiAgICAudHVybmtleSB7XG4gICAgICBwYWRkaW5nOiB2YXIoLS12dC1zZWN0aW9uLXBhZGRpbmcpO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnQtbmF2eSk7XG4gICAgICBjb2xvcjogdmFyKC0tdnQtd2hpdGUpO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAudHVybmtleTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtMjByZW07XG4gICAgICByaWdodDogLTIwcmVtO1xuICAgICAgd2lkdGg6IDYwcmVtO1xuICAgICAgaGVpZ2h0OiA2MHJlbTtcbiAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoMjUzLCA4MiwgMiwgMC4wNykgMCUsIHRyYW5zcGFyZW50IDYwJSk7XG4gICAgfVxuXG4gICAgLnR1cm5rZXkgLnNlY3Rpb24tbGFiZWwgeyBjb2xvcjogdmFyKC0tdnQtb3JhbmdlKTsgfVxuICAgIC50dXJua2V5IC5zZWN0aW9uLXRpdGxlIHsgY29sb3I6IHZhcigtLXZ0LXdoaXRlKTsgfVxuICAgIC50dXJua2V5IC5zZWN0aW9uLXN1YnRpdGxlIHsgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC42KTsgfVxuXG4gICAgLnR1cm5rZXktaGVhZGVyIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgLnR1cm5rZXktaGVhZGVyIC5zZWN0aW9uLXN1YnRpdGxlIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC50dXJua2V5LWdyaWQge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgICBnYXA6IDIuNHJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDUuNnJlbTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgfVxuXG4gICAgLnR1cm5rZXktY2FyZCB7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDQpO1xuICAgICAgYm9yZGVyOiAwLjFyZW0gc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjA4KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEuNnJlbTtcbiAgICAgIHBhZGRpbmc6IDRyZW0gMy42cmVtO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gICAgfVxuICAgIC50dXJua2V5LWNhcmQ6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjA3KTtcbiAgICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTMsIDgyLCAyLCAwLjMpO1xuICAgIH1cblxuICAgIC50dXJua2V5LWNhcmQtbnVtIHtcbiAgICAgIGZvbnQtc2l6ZTogNC44cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDYpO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjZyZW07XG4gICAgfVxuXG4gICAgLnR1cm5rZXktY2FyZCBoMyB7XG4gICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgY29sb3I6IHZhcigtLXZ0LXdoaXRlKTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuNHJlbTtcbiAgICB9XG5cbiAgICAudHVybmtleS1jYXJkIHAge1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjU1KTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjc7XG4gICAgfVxuXG4gICAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICAgICAgU1RSVUNUVVJFUyAoVGVudCB2cyBQZXJtYW5lbnQpXG4gICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG4gICAgLnN0cnVjdHVyZXMgeyBwYWRkaW5nOiB2YXIoLS12dC1zZWN0aW9uLXBhZGRpbmcpOyBiYWNrZ3JvdW5kOiB2YXIoLS12dC1saWdodCk7IH1cblxuICAgIC5zdHJ1Y3R1cmVzLWhlYWRlciB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLnN0cnVjdHVyZXMtaGVhZGVyIC5zZWN0aW9uLXN1YnRpdGxlIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC5zdHJ1Y3R1cmVzLWNvbHMge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgIGdhcDogMy4ycmVtO1xuICAgICAgbWFyZ2luLXRvcDogNS42cmVtO1xuICAgIH1cblxuICAgIC5zdHJ1Y3R1cmUtYmxvY2sge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnQtd2hpdGUpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMS42cmVtO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkIHJnYmEoMCwwLDAsMC4wNik7XG4gICAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuM3M7XG4gICAgfVxuICAgIC5zdHJ1Y3R1cmUtYmxvY2s6aG92ZXIgeyBib3gtc2hhZG93OiAwIDEuMnJlbSA0cmVtIHJnYmEoMTIsMTcsNTcsMC4wOCk7IH1cblxuICAgIC5zdHJ1Y3R1cmUtaW1nIHtcbiAgICAgIGhlaWdodDogMjZyZW07XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS12dC1ncmF5KTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIGNvbG9yOiAjODg4O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gICAgLnN0cnVjdHVyZS1pbWc6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGluc2V0OiAwO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgxMCw2MywxOTEsMC4xKSwgcmdiYSgxMiwxNyw1NywwLjA1KSk7XG4gICAgfVxuICAgIC5zdHJ1Y3R1cmUtaW1nIHNwYW4geyBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDE7IH1cblxuICAgIC5zdHJ1Y3R1cmUtYm9keSB7IHBhZGRpbmc6IDMuNnJlbSAzLjJyZW07IH1cblxuICAgIC5zdHJ1Y3R1cmUtYm9keSBoMyB7XG4gICAgICBmb250LXNpemU6IDIuMnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBjb2xvcjogdmFyKC0tdnQtbmF2eSk7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjZyZW07XG4gICAgfVxuXG4gICAgLnN0cnVjdHVyZS1ib2R5IHAge1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBjb2xvcjogIzU1NTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjc7XG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIH1cblxuICAgIC5zdHJ1Y3R1cmUtZmVhdHVyZXMge1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZ2FwOiAxcmVtO1xuICAgIH1cblxuICAgIC5zdHJ1Y3R1cmUtZmVhdHVyZXMgbGkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgZ2FwOiAxcmVtO1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICBjb2xvcjogIzQ0NDtcbiAgICB9XG5cbiAgICAuc3RydWN0dXJlLWZlYXR1cmVzIGxpOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgbWFyZ2luLXRvcDogMC4ycmVtO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgxMCwgNjMsIDE5MSwgMC4wOCk7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMicgaGVpZ2h0PScxMicgdmlld0JveD0nMCAwIDEyIDEyJyUzRSUzQ3BhdGggZD0nTTEwIDNMNSA5TDIgNicgc3Ryb2tlPSclMjMwQTNGQkYnIHN0cm9rZS13aWR0aD0nMicgZmlsbD0nbm9uZScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJy8lM0UlM0Mvc3ZnJTNFXCIpO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgICAgICBIT1cgV0UgV09SSyAoUHJvY2VzcylcbiAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbiAgICAucHJvY2VzcyB7IHBhZGRpbmc6IHZhcigtLXZ0LXNlY3Rpb24tcGFkZGluZyk7IGJhY2tncm91bmQ6IHZhcigtLXZ0LXdoaXRlKTsgfVxuXG4gICAgLnByb2Nlc3MtaGVhZGVyIHsgdGV4dC1hbGlnbjogY2VudGVyOyBtYXJnaW4tYm90dG9tOiA3LjJyZW07IH1cbiAgICAucHJvY2Vzcy1oZWFkZXIgLnNlY3Rpb24tc3VidGl0bGUgeyBtYXJnaW46IDAgYXV0bzsgfVxuXG4gICAgLnByb2Nlc3Mtc3RlcHMgeyBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuICAgIC5wcm9jZXNzLWxpbmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA0cmVtO1xuICAgICAgbGVmdDogY2FsYygxMCUgKyAyLjRyZW0pO1xuICAgICAgcmlnaHQ6IGNhbGMoMTAlICsgMi40cmVtKTtcbiAgICAgIGhlaWdodDogMC4ycmVtO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS12dC1ibHVlKSwgdmFyKC0tdnQtb3JhbmdlKSk7XG4gICAgICBvcGFjaXR5OiAwLjI7XG4gICAgfVxuXG4gICAgLnByb2Nlc3MtZ3JpZCB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNSwgMWZyKTtcbiAgICAgIGdhcDogMS42cmVtO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICAucHJvY2Vzcy1zdGVwIHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbiAgICAucHJvY2Vzcy1udW0ge1xuICAgICAgd2lkdGg6IDhyZW07XG4gICAgICBoZWlnaHQ6IDhyZW07XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS12dC1saWdodCk7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgZm9udC1zaXplOiAyLjhyZW07XG4gICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgY29sb3I6IHZhcigtLXZ0LWJsdWUpO1xuICAgICAgbWFyZ2luOiAwIGF1dG8gMi40cmVtO1xuICAgICAgYm9yZGVyOiAwLjNyZW0gc29saWQgdmFyKC0tdnQtd2hpdGUpO1xuICAgICAgYm94LXNoYWRvdzogMCAwLjRyZW0gMS42cmVtIHJnYmEoMTIsMTcsNTcsMC4wOCk7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICB9XG4gICAgLnByb2Nlc3Mtc3RlcDpob3ZlciAucHJvY2Vzcy1udW0ge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnQtYmx1ZSk7XG4gICAgICBjb2xvcjogdmFyKC0tdnQtd2hpdGUpO1xuICAgIH1cblxuICAgIC5wcm9jZXNzLXN0ZXAgaDQge1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgY29sb3I6IHZhcigtLXZ0LW5hdnkpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB9XG5cbiAgICAucHJvY2Vzcy1zdGVwIHAge1xuICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgICBjb2xvcjogIzc3NztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgICBtYXgtd2lkdGg6IDIwcmVtO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuXG4gICAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICAgICAgQUJPVVQgKENvbXBhbnkpXG4gICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG4gICAgLmFib3V0IHtcbiAgICAgIHBhZGRpbmc6IHZhcigtLXZ0LXNlY3Rpb24tcGFkZGluZyk7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS12dC13aGl0ZSk7XG4gICAgfVxuXG4gICAgLmFib3V0LWdyaWQge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgIGdhcDogNi40cmVtO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuYWJvdXQtdGV4dCBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgY29sb3I6ICM0NDQ7XG4gICAgICBsaW5lLWhlaWdodDogMS44O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICB9XG5cbiAgICAuYWJvdXQtdGV4dCBwIHN0cm9uZyB7IGNvbG9yOiB2YXIoLS12dC1uYXZ5KTsgfVxuXG4gICAgLmFib3V0LW51bWJlcnMge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgIGdhcDogMi40cmVtO1xuICAgICAgbWFyZ2luLXRvcDogNHJlbTtcbiAgICB9XG5cbiAgICAuYWJvdXQtbnVtYmVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZ0LWxpZ2h0KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEuMnJlbTtcbiAgICAgIHBhZGRpbmc6IDIuOHJlbSAyLjRyZW07XG4gICAgfVxuXG4gICAgLmFib3V0LW51bWJlci12YWx1ZSB7XG4gICAgICBmb250LXNpemU6IDMuNnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICBjb2xvcjogdmFyKC0tdnQtYmx1ZSk7XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG4gICAgLmFib3V0LW51bWJlci12YWx1ZSBzcGFuIHsgY29sb3I6IHZhcigtLXZ0LW9yYW5nZSk7IH1cblxuICAgIC5hYm91dC1udW1iZXItbGFiZWwge1xuICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgICBjb2xvcjogIzc3NztcbiAgICAgIG1hcmdpbi10b3A6IDAuOHJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgfVxuXG4gICAgLmFib3V0LWltZy1hcmVhIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZ0LWxpZ2h0KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEuNnJlbTtcbiAgICAgIGhlaWdodDogNDhyZW07XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgY29sb3I6ICM5OTk7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBib3JkZXI6IDAuMXJlbSBzb2xpZCByZ2JhKDAsMCwwLDAuMDQpO1xuICAgIH1cblxuICAgIC5hYm91dC1pbWctYXJlYTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgaGVpZ2h0OiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDEyLDE3LDU3LDAuMDUpLCB0cmFuc3BhcmVudCk7XG4gICAgfVxuXG4gICAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICAgICAgR0FMTEVSWVxuICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuICAgIC5nYWxsZXJ5IHtcbiAgICAgIHBhZGRpbmc6IHZhcigtLXZ0LXNlY3Rpb24tcGFkZGluZykgMDtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZ0LWxpZ2h0KTtcbiAgICAgIG92ZXJmbG93LXg6IGNsaXA7XG4gICAgfVxuXG4gICAgLmdhbGxlcnktaGVhZGVyIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDUuNnJlbTtcbiAgICB9XG4gICAgLmdhbGxlcnktaGVhZGVyIC5zZWN0aW9uLXN1YnRpdGxlIHsgbWFyZ2luOiAwIGF1dG87IH1cblxuICAgIC5nYWxsZXJ5LXN0cmlwIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiAxMDB2dztcbiAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDUwJSAtIDUwdncpO1xuICAgIH1cblxuICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAgIC5nYWxsZXJ5LXN0cmlwOmhvdmVyLFxuICAgICAgLmdhbGxlcnktc3RyaXA6aG92ZXIgLmdhbGxlcnktaXRlbSxcbiAgICAgIC5nYWxsZXJ5LXN0cmlwOmhvdmVyIC5nYWxsZXJ5LWl0ZW0gaW1nIHtcbiAgICAgICAgY3Vyc29yOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5nYWxsZXJ5LWN1cnNvciB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdG9wOiAwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgbWF4LXdpZHRoOiBtaW4oMzJyZW0sIDkwdncpO1xuICAgICAgbWFyZ2luOiAtMi40cmVtIDAgMCAtMi40cmVtO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICB6LWluZGV4OiA4O1xuICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAuMnJlbSAwLjZyZW0gcmdiYSgxMiwgMTcsIDU3LCAwLjQ1KSk7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLCB0cmFuc2Zvcm0gMC4yOHMgY3ViaWMtYmV6aWVyKDAuMzQsIDEuNTYsIDAuNjQsIDEpO1xuICAgICAgd2lsbC1jaGFuZ2U6IGxlZnQsIHRvcCwgdHJhbnNmb3JtLCBvcGFjaXR5O1xuICAgIH1cblxuICAgIC5nYWxsZXJ5LWN1cnNvci1pY29uIHtcbiAgICAgIHdpZHRoOiA0LjhyZW07XG4gICAgICBoZWlnaHQ6IDQuOHJlbTtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWcvem9vbS1pY29uLnN2ZycpIGNlbnRlciAvIGNvbnRhaW4gbm8tcmVwZWF0O1xuICAgIH1cblxuICAgIC5nYWxsZXJ5LWN1cnNvci10b29sdGlwIHtcbiAgICAgIG1hcmdpbi10b3A6IDAuNnJlbTtcbiAgICAgIHBhZGRpbmc6IDAuNnJlbSAxcmVtO1xuICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICAgIGNvbG9yOiB2YXIoLS12dC13aGl0ZSk7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDEyLCAxNywgNTcsIDAuOTIpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC40cmVtKTtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xOHMgZWFzZSwgdHJhbnNmb3JtIDAuMThzIGVhc2U7XG4gICAgfVxuXG4gICAgLmdhbGxlcnktY3Vyc29yLXRvb2x0aXA6bm90KDplbXB0eSkge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB9XG5cbiAgICAuZ2FsbGVyeS1zdHJpcC0taG92ZXIgLmdhbGxlcnktY3Vyc29yIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIH1cblxuICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgICAuZ2FsbGVyeS1jdXJzb3IsXG4gICAgICAuZ2FsbGVyeS1jdXJzb3ItdG9vbHRpcCB7XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMDFtcztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZ2FsbGVyeS1ncmlkIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICAgICAgZ2FwOiAwO1xuICAgIH1cblxuICAgIC5nYWxsZXJ5LWl0ZW0ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIGFzcGVjdC1yYXRpbzogNCAvIDM7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS12dC1ncmF5KTtcbiAgICB9XG5cbiAgICAuZ2FsbGVyeS1pdGVtOmZvY3VzIHtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuXG4gICAgLmdhbGxlcnktaXRlbTpmb2N1cy12aXNpYmxlIHtcbiAgICAgIG91dGxpbmU6IDAuMnJlbSBzb2xpZCB2YXIoLS12dC1ibHVlKTtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMC4ycmVtO1xuICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICAuZ2FsbGVyeS1pdGVtIGltZyB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNDVzIGVhc2U7XG4gICAgfVxuXG4gICAgLmdhbGxlcnktaXRlbTpob3ZlciBpbWcsXG4gICAgLmdhbGxlcnktaXRlbTpmb2N1cy12aXNpYmxlIGltZyB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gICAgfVxuXG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAgIC5nYWxsZXJ5LWl0ZW0gaW1nIHtcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4wMW1zO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgICAgIFFVSVpcbiAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbiAgICAucXVpei1zZWN0aW9uIHtcbiAgICAgIHBhZGRpbmc6IHZhcigtLXZ0LXNlY3Rpb24tcGFkZGluZyk7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS12dC1uYXZ5KSAwJSwgdmFyKC0tdnQtYmx1ZS1kYXJrKSAxMDAlKTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLnF1aXotc2VjdGlvbjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgaW5zZXQ6IDA7XG4gICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDEwJSA5MCUsIHJnYmEoMjUzLCA4MiwgMiwgMC4xKSAwJSwgdHJhbnNwYXJlbnQgNDAlKSxcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA5MCUgMTAlLCByZ2JhKDEwLCA2MywgMTkxLCAwLjEpIDAlLCB0cmFuc3BhcmVudCA0MCUpO1xuICAgIH1cblxuICAgIC5xdWl6LXdyYXBwZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIG1heC13aWR0aDogdmFyKC0tdnQtY29udGFpbmVyKTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuXG4gICAgLnF1aXotaGVhZGVyIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDQuOHJlbTtcbiAgICB9XG5cbiAgICAucXVpei1oZWFkZXIgLnNlY3Rpb24tbGFiZWwgeyBjb2xvcjogdmFyKC0tdnQtb3JhbmdlKTsgfVxuICAgIC5xdWl6LWhlYWRlciAuc2VjdGlvbi10aXRsZSB7IGNvbG9yOiB2YXIoLS12dC13aGl0ZSk7IH1cbiAgICAucXVpei1oZWFkZXIgLnNlY3Rpb24tc3VidGl0bGUgeyBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjYpOyBtYXJnaW46IDAgYXV0bzsgfVxuXG4gICAgLnF1aXotcHJvZ3Jlc3Mge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDAuNHJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDRyZW07XG4gICAgfVxuXG4gICAgLnF1aXotcHJvZ3Jlc3MtYmFyIHtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBoZWlnaHQ6IDAuNHJlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4xKTtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC40cztcbiAgICB9XG4gICAgLnF1aXotcHJvZ3Jlc3MtYmFyLmFjdGl2ZSB7IGJhY2tncm91bmQ6IHZhcigtLXZ0LW9yYW5nZSk7IH1cbiAgICAucXVpei1wcm9ncmVzcy1iYXIuZG9uZSB7IGJhY2tncm91bmQ6IHJnYmEoMjUzLCA4MiwgMiwgMC41KTsgfVxuXG4gICAgLnF1aXotY2FyZCB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS12dC13aGl0ZSk7XG4gICAgICBib3JkZXItcmFkaXVzOiAycmVtO1xuICAgICAgcGFkZGluZzogNC44cmVtO1xuICAgICAgYm94LXNoYWRvdzogMCAycmVtIDZyZW0gcmdiYSgwLDAsMCwwLjIpO1xuICAgIH1cblxuICAgIC5xdWl6LXN0ZXAgeyBkaXNwbGF5OiBub25lOyB9XG4gICAgLnF1aXotc3RlcC5hY3RpdmUgeyBkaXNwbGF5OiBibG9jazsgfVxuXG4gICAgLnF1aXotc3RlcC1jb3VudGVyIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGNvbG9yOiB2YXIoLS12dC1ibHVlKTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjJyZW07XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC44cmVtO1xuICAgIH1cblxuICAgIC5xdWl6LXN0ZXAgaDMge1xuICAgICAgZm9udC1zaXplOiAyLjJyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgY29sb3I6IHZhcigtLXZ0LW5hdnkpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMC44cmVtO1xuICAgIH1cblxuICAgIC5xdWl6LXN0ZXAtaGludCB7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIGNvbG9yOiAjOTk5O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMi44cmVtO1xuICAgIH1cblxuICAgIC5xdWl6LW9wdGlvbnMge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgIGdhcDogMS40cmVtIDEuNnJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuOHJlbTtcbiAgICB9XG5cbiAgICAucXVpei1vcHRpb24ge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgZ2FwOiAxLjJyZW07XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICBwYWRkaW5nOiAxLjZyZW0gMnJlbTtcbiAgICAgIGJvcmRlcjogMC4ycmVtIHNvbGlkICNlZWU7XG4gICAgICBib3JkZXItcmFkaXVzOiAxcmVtO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBsaW5lLWhlaWdodDogMS40NTtcbiAgICAgIGNvbG9yOiB2YXIoLS12dC1jaGFyY29hbCk7XG4gICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIH1cbiAgICAucXVpei1vcHRpb246aG92ZXIgeyBib3JkZXItY29sb3I6IHZhcigtLXZ0LWJsdWUpOyBiYWNrZ3JvdW5kOiByZ2JhKDEwLDYzLDE5MSwwLjAyKTsgfVxuICAgIC5xdWl6LW9wdGlvbi5zZWxlY3RlZCB7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXZ0LWJsdWUpO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgxMCwgNjMsIDE5MSwgMC4wNik7XG4gICAgICBjb2xvcjogdmFyKC0tdnQtYmx1ZSk7XG4gICAgfVxuXG4gICAgLnF1aXotb3B0aW9uIGlucHV0IHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgLnF1aXotY2hlY2sge1xuICAgICAgd2lkdGg6IDIuMnJlbTtcbiAgICAgIGhlaWdodDogMi4ycmVtO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICBtYXJnaW4tdG9wOiAwLjE1ZW07XG4gICAgICBib3JkZXItcmFkaXVzOiAwLjZyZW07XG4gICAgICBib3JkZXI6IDAuMnJlbSBzb2xpZCAjZGRkO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICAgIH1cbiAgICAucXVpei1vcHRpb24uc2VsZWN0ZWQgLnF1aXotY2hlY2sge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnQtYmx1ZSk7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLXZ0LWJsdWUpO1xuICAgIH1cbiAgICAucXVpei1vcHRpb24uc2VsZWN0ZWQgLnF1aXotY2hlY2s6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgd2lkdGg6IDFyZW07XG4gICAgICBoZWlnaHQ6IDAuNnJlbTtcbiAgICAgIGJvcmRlci1sZWZ0OiAwLjJyZW0gc29saWQgd2hpdGU7XG4gICAgICBib3JkZXItYm90dG9tOiAwLjJyZW0gc29saWQgd2hpdGU7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZVkoLTAuMXJlbSk7XG4gICAgfVxuXG4gICAgLnF1aXotcmFkaW8gLnF1aXotY2hlY2sgeyBib3JkZXItcmFkaXVzOiA1MCU7IH1cbiAgICAucXVpei1yYWRpby5zZWxlY3RlZCAucXVpei1jaGVjazo6YWZ0ZXIge1xuICAgICAgd2lkdGg6IDFyZW07XG4gICAgICBoZWlnaHQ6IDFyZW07XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG5cbiAgICAucXVpei1uYXYge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBnYXA6IDEuMnJlbSAycmVtO1xuICAgICAgbWFyZ2luLXRvcDogMy4ycmVtO1xuICAgICAgcGFkZGluZy10b3A6IDIuNHJlbTtcbiAgICAgIGJvcmRlci10b3A6IDAuMXJlbSBzb2xpZCAjZWVlO1xuICAgIH1cblxuICAgIC5xdWl6LW5hdi1yaWdodCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBnYXA6IDEuMnJlbSAxLjZyZW07XG4gICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAucXVpei1uYXYtZXJyb3Ige1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgbWF4LXdpZHRoOiAyOHJlbTtcbiAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgY29sb3I6ICNjNjI4Mjg7XG4gICAgfVxuXG4gICAgLnF1aXotbmF2LWVycm9yW2hpZGRlbl0ge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5xdWl6LWJhY2sge1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBjb2xvcjogIzk5OTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHBhZGRpbmc6IDAuOHJlbSAwO1xuICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycztcbiAgICB9XG4gICAgLnF1aXotYmFjazpob3ZlciB7IGNvbG9yOiB2YXIoLS12dC1jaGFyY29hbCk7IH1cbiAgICAucXVpei1iYWNrLmhpZGRlbiB7IHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4gICAgLnF1aXotbmV4dCB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS12dC1vcmFuZ2UpO1xuICAgICAgY29sb3I6IHZhcigtLXZ0LXdoaXRlKTtcbiAgICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBwYWRkaW5nOiAxLjRyZW0gMy42cmVtO1xuICAgICAgYm9yZGVyLXJhZGl1czogMC42cmVtO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gICAgfVxuICAgIC5xdWl6LW5leHQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS12dC1vcmFuZ2UtaG92ZXIpOyB9XG4gICAgLnF1aXotbmV4dDpkaXNhYmxlZCB7IG9wYWNpdHk6IDAuNDsgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuXG4gICAgLyogUXVpeiBjb250YWN0IGZvcm0gKi9cbiAgICAucXVpei1mb3JtIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAxLjZyZW07IH1cblxuICAgIC5xdWl6LWZvcm0tcm93IHsgZGlzcGxheTogZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyBnYXA6IDEuNnJlbTsgfVxuXG4gICAgLnF1aXotaW5wdXQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiAxLjRyZW0gMS44cmVtO1xuICAgICAgYm9yZGVyOiAwLjJyZW0gc29saWQgI2VlZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAuOHJlbTtcbiAgICAgIGZvbnQtZmFtaWx5OiAnTW9udHNlcnJhdCcsIHNhbnMtc2VyaWY7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIGNvbG9yOiB2YXIoLS12dC1jaGFyY29hbCk7XG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycztcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICAgIC5xdWl6LWlucHV0OmZvY3VzIHsgYm9yZGVyLWNvbG9yOiB2YXIoLS12dC1ibHVlKTsgfVxuICAgIC5xdWl6LWlucHV0OjpwbGFjZWhvbGRlciB7IGNvbG9yOiAjYmJiOyB9XG5cbiAgICAucXVpei10ZXh0YXJlYSB7XG4gICAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgICAgbWluLWhlaWdodDogOHJlbTtcbiAgICB9XG5cbiAgICAucXVpei1jb25zZW50IHtcbiAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgY29sb3I6ICM5OTk7XG4gICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIH1cbiAgICAucXVpei1jb25zZW50IGEgeyBjb2xvcjogdmFyKC0tdnQtYmx1ZSk7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbiAgICAucXVpei1zdWNjZXNzIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBhZGRpbmc6IDRyZW0gMnJlbTtcbiAgICB9XG4gICAgLnF1aXotc3VjY2Vzcy1pY29uIHtcbiAgICAgIHdpZHRoOiA4cmVtO1xuICAgICAgaGVpZ2h0OiA4cmVtO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgxMCwgMTkxLCAxMCwgMC4wOCk7XG4gICAgICBtYXJnaW46IDAgYXV0byAyLjRyZW07XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgZm9udC1zaXplOiAzLjZyZW07XG4gICAgfVxuICAgIC5xdWl6LXN1Y2Nlc3MgaDMgeyBmb250LXNpemU6IDIuNHJlbTsgY29sb3I6IHZhcigtLXZ0LW5hdnkpOyBtYXJnaW4tYm90dG9tOiAxLjJyZW07IH1cbiAgICAucXVpei1zdWNjZXNzIHAgeyBmb250LXNpemU6IDEuNXJlbTsgY29sb3I6ICM3Nzc7IH1cblxuICAgIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgICAgIEdFT0dSQVBIWVxuICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuICAgIC5nZW9ncmFwaHkge1xuICAgICAgcGFkZGluZzogdmFyKC0tdnQtc2VjdGlvbi1wYWRkaW5nKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZ0LXdoaXRlKTtcbiAgICB9XG5cbiAgICAuZ2VvLWdyaWQge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICAgIGdhcDogNi40cmVtO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuZ2VvLW1hcCB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS12dC1saWdodCk7XG4gICAgICBib3JkZXItcmFkaXVzOiAwLjdyZW07XG4gICAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGhlaWdodDogNDJyZW07XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgY29sb3I6ICM5OTk7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkIHJnYmEoMCwwLDAsMC4wNCk7XG4gICAgfVxuXG4gICAgLmdlby1jb250ZW50IHAge1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICBjb2xvcjogIzU1NTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjg7XG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgIH1cblxuICAgIC5nZW8tY2l0aWVzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBnYXA6IDAuOHJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDIuNHJlbTtcbiAgICB9XG5cbiAgICAuZ2VvLWNpdHkge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnQtbGlnaHQpO1xuICAgICAgcGFkZGluZzogMC44cmVtIDEuNnJlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAuNnJlbTtcbiAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGNvbG9yOiAjNTU1O1xuICAgIH1cblxuICAgIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgICAgIEZBUVxuICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuICAgIC5mYXEge1xuICAgICAgcGFkZGluZzogdmFyKC0tdnQtc2VjdGlvbi1wYWRkaW5nKTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZ0LWxpZ2h0KTtcbiAgICB9XG5cbiAgICAuZmFxLWhlYWRlciB7IHRleHQtYWxpZ246IGNlbnRlcjsgbWFyZ2luLWJvdHRvbTogNS42cmVtOyB9XG4gICAgLmZhcS1oZWFkZXIgLnNlY3Rpb24tc3VidGl0bGUgeyBtYXJnaW46IDAgYXV0bzsgfVxuXG4gICAgLmZhcS1saXN0IHtcbiAgICAgIG1heC13aWR0aDogODByZW07XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgZ2FwOiAxLjJyZW07XG4gICAgfVxuXG4gICAgLmZhcS1pdGVtIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZ0LXdoaXRlKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEuMnJlbTtcbiAgICAgIGJvcmRlcjogMC4xcmVtIHNvbGlkIHJnYmEoMCwwLDAsMC4wNSk7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjNzO1xuICAgIH1cbiAgICAuZmFxLWl0ZW06aG92ZXIgeyBib3gtc2hhZG93OiAwIDAuNHJlbSAxLjZyZW0gcmdiYSgwLDAsMCwwLjA0KTsgfVxuXG4gICAgLmZhcS1xdWVzdGlvbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIHBhZGRpbmc6IDIuNHJlbSAyLjhyZW07XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBjb2xvcjogdmFyKC0tdnQtbmF2eSk7XG4gICAgICBnYXA6IDEuNnJlbTtcbiAgICB9XG5cbiAgICAuZmFxLXRvZ2dsZSB7XG4gICAgICB3aWR0aDogMy4ycmVtO1xuICAgICAgaGVpZ2h0OiAzLjJyZW07XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZ0LWxpZ2h0KTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICB9XG4gICAgLmZhcS10b2dnbGUgc3ZnIHtcbiAgICAgIHdpZHRoOiAxLjRyZW07XG4gICAgICBoZWlnaHQ6IDEuNHJlbTtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICAgIH1cbiAgICAuZmFxLWl0ZW0ub3BlbiAuZmFxLXRvZ2dsZSB7IGJhY2tncm91bmQ6IHZhcigtLXZ0LWJsdWUpOyB9XG4gICAgLmZhcS1pdGVtLm9wZW4gLmZhcS10b2dnbGUgc3ZnIHsgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOyB9XG4gICAgLmZhcS1pdGVtLm9wZW4gLmZhcS10b2dnbGUgc3ZnIGxpbmUgeyBzdHJva2U6IHdoaXRlOyB9XG5cbiAgICAuZmFxLWFuc3dlciB7XG4gICAgICBtYXgtaGVpZ2h0OiAwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC40cyBlYXNlO1xuICAgIH1cblxuICAgIC5mYXEtYW5zd2VyLWlubmVyIHtcbiAgICAgIHBhZGRpbmc6IDAgMi44cmVtIDIuNHJlbTtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgY29sb3I6ICM2NjY7XG4gICAgICBsaW5lLWhlaWdodDogMS43O1xuICAgIH1cblxuICAgIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgICAgIENUQSBCQU5ORVJcbiAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbiAgICAuY3RhLWJhbm5lciB7XG4gICAgICBwYWRkaW5nOiA4cmVtIDA7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS12dC1ibHVlKTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLmN0YS1iYW5uZXI6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGluc2V0OiAwO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tdnQtYmx1ZS1kYXJrKSwgdmFyKC0tdnQtYmx1ZSkpO1xuICAgIH1cblxuICAgIC5jdGEtaW5uZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuY3RhLWlubmVyIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMi42cmVtLCAzLjV2dywgMy42cmVtKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICBjb2xvcjogdmFyKC0tdnQtd2hpdGUpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS42cmVtO1xuICAgIH1cblxuICAgIC5jdGEtaW5uZXIgcCB7XG4gICAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNjUpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMy42cmVtO1xuICAgICAgbWF4LXdpZHRoOiA1MnJlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC5jdGEtaW5uZXIgLmJ0biB7IGZvbnQtc2l6ZTogMS42cmVtOyBwYWRkaW5nOiAxLjhyZW0gNC44cmVtOyB9XG5cbiAgICAudnQtY3RhLWFjdGlvbnMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGdhcDogMS42cmVtO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuXG4gICAgLnZ0LWNvbnRhY3QtZ3JpZC1zcGFjZWQge1xuICAgICAgbWFyZ2luLXRvcDogNC44cmVtO1xuICAgIH1cblxuICAgIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgICAgIENPTlRBQ1QgRk9STVxuICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuICAgIC5jb250YWN0IHtcbiAgICAgIHBhZGRpbmc6IHZhcigtLXZ0LXNlY3Rpb24tcGFkZGluZyk7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS12dC13aGl0ZSk7XG4gICAgfVxuXG4gICAgLmNvbnRhY3QtZ3JpZCB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgICAgZ2FwOiA2LjRyZW07XG4gICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgfVxuXG4gICAgLmNvbnRhY3QtaW5mbyBoMyB7XG4gICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgY29sb3I6IHZhcigtLXZ0LW5hdnkpO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMi40cmVtO1xuICAgIH1cblxuICAgIC5jb250YWN0LWRldGFpbHMgeyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDJyZW07IG1hcmdpbi1ib3R0b206IDMuNnJlbTsgfVxuXG4gICAgLmNvbnRhY3QtZGV0YWlsIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBnYXA6IDEuNnJlbTtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgIC5jb250YWN0LWRldGFpbC1pY29uIHtcbiAgICAgIHdpZHRoOiA0LjhyZW07XG4gICAgICBoZWlnaHQ6IDQuOHJlbTtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogMS4ycmVtO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnQtbGlnaHQpO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuY29udGFjdC1kZXRhaWwtdGV4dCB7IGZvbnQtc2l6ZTogMS41cmVtOyBjb2xvcjogIzU1NTsgbGluZS1oZWlnaHQ6IDEuNTsgfVxuICAgIC5jb250YWN0LWRldGFpbC10ZXh0IHN0cm9uZyB7IGNvbG9yOiB2YXIoLS12dC1uYXZ5KTsgZGlzcGxheTogYmxvY2s7IGZvbnQtc2l6ZTogMS40cmVtOyBtYXJnaW4tYm90dG9tOiAwLjJyZW07IH1cbiAgICAuY29udGFjdC1kZXRhaWwtbGluayB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2U7XG4gICAgfVxuICAgIC5jb250YWN0LWRldGFpbC1saW5rOmhvdmVyIHsgY29sb3I6IHZhcigtLXZ0LWJsdWUpOyB9XG4gICAgLmNvbnRhY3QtZGV0YWlsLWxpbms6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICBvdXRsaW5lOiAwLjJyZW0gc29saWQgcmdiYSgxMCwgNjMsIDE5MSwgMC40NSk7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMC4ycmVtO1xuICAgICAgYm9yZGVyLXJhZGl1czogMC4ycmVtO1xuICAgICAgY29sb3I6IHZhcigtLXZ0LWJsdWUpO1xuICAgIH1cblxuICAgIC5jb250YWN0LWZvcm0ge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnQtbGlnaHQpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMS42cmVtO1xuICAgICAgcGFkZGluZzogNHJlbTtcbiAgICB9XG5cbiAgICAuY29udGFjdC1mb3JtIGgzIHtcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBjb2xvcjogdmFyKC0tdnQtbmF2eSk7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyLjRyZW07XG4gICAgfVxuXG4gICAgLmZvcm0tZ3JvdXAgeyBtYXJnaW4tYm90dG9tOiAxLjZyZW07IH1cblxuICAgIC5mb3JtLWlucHV0IHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZzogMS40cmVtIDEuOHJlbTtcbiAgICAgIGJvcmRlcjogMC4ycmVtIHNvbGlkICNlMGUwZTA7XG4gICAgICBib3JkZXItcmFkaXVzOiAwLjhyZW07XG4gICAgICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmO1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBjb2xvcjogdmFyKC0tdnQtY2hhcmNvYWwpO1xuICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnM7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tdnQtd2hpdGUpO1xuICAgIH1cbiAgICAuZm9ybS1pbnB1dDpmb2N1cyB7IGJvcmRlci1jb2xvcjogdmFyKC0tdnQtYmx1ZSk7IH1cbiAgICAuZm9ybS1pbnB1dDo6cGxhY2Vob2xkZXIgeyBjb2xvcjogI2JiYjsgfVxuXG4gICAgLmZvcm0tdGV4dGFyZWEgeyByZXNpemU6IHZlcnRpY2FsOyBtaW4taGVpZ2h0OiAxMHJlbTsgfVxuXG4gICAgLmZvcm0tY29uc2VudCB7XG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgIGNvbG9yOiAjOTk5O1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgIG1hcmdpbi10b3A6IDEuMnJlbTtcbiAgICB9XG4gICAgLmZvcm0tY29uc2VudCBhIHsgY29sb3I6IHZhcigtLXZ0LWJsdWUpOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuXG4gICAgLmZvcm0tc3VibWl0IHtcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgICAgICBGT09URVJcbiAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbiAgICAudnQtZm9vdGVyIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXZ0LW5hdnkpO1xuICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NSk7XG4gICAgICBwYWRkaW5nOiA3LjJyZW0gMCAzLjZyZW07XG4gICAgfVxuXG4gICAgLnZ0LWZvb3Rlci1ncmlkIHtcbiAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxLjRmcikgcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgIGdhcDogNHJlbSA0LjhyZW07XG4gICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1LjZyZW07XG4gICAgfVxuXG4gICAgLnZ0LWZvb3Rlci1sb2dvIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1ib3R0b206IDIuNHJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIH1cblxuICAgIC52dC1mb290ZXItbG9nbyBpbWcge1xuICAgICAgd2lkdGg6IDE5LjFyZW07XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgfVxuXG4gICAgLnZ0LWZvb3Rlci1hYm91dCBwIHtcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNzU7XG4gICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQ1KTtcbiAgICAgIG1heC13aWR0aDogMzZyZW07XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLnZ0LWZvb3Rlci1oZWFkaW5nIHtcbiAgICAgIG1hcmdpbjogMCAwIDJyZW07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMS4ycmVtO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMC4xcmVtIHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMC4xNGVtO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIGNvbG9yOiB2YXIoLS12dC1vcmFuZ2UpO1xuICAgIH1cblxuICAgIC52dC1mb290ZXItY29sIHVsIHtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBnYXA6IDEuMnJlbTtcbiAgICB9XG5cbiAgICAudnQtZm9vdGVyLWNvbCBhIHtcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43Mik7XG4gICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzO1xuICAgIH1cblxuICAgIC52dC1mb290ZXItY29sIGE6aG92ZXIge1xuICAgICAgY29sb3I6IHZhcigtLXZ0LW9yYW5nZSk7XG4gICAgfVxuXG4gICAgLnZ0LWZvb3Rlci1hZGRyZXNzIHtcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICAgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgICB9XG5cbiAgICAudnQtZm9vdGVyLWNvbC0tY29udGFjdHMgYSB7XG4gICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgyKTtcbiAgICB9XG5cbiAgICAudnQtZm9vdGVyLWJvdHRvbSB7XG4gICAgICBib3JkZXItdG9wOiAwLjFyZW0gc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuICAgICAgcGFkZGluZy10b3A6IDIuOHJlbTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiAxLjZyZW0gMy4ycmVtO1xuICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM4KTtcbiAgICB9XG5cbiAgICAudnQtZm9vdGVyLWxlZ2FsIHtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgbWF4LXdpZHRoOiA0MnJlbTtcbiAgICB9XG5cbiAgICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgICAgICBSRVNQT05TSVZFXG4gICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDEwMi40cmVtKSB7XG4gICAgICAudHVybmtleS1ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH1cbiAgICAgIC5hYm91dC1ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH1cbiAgICAgIC5hYm91dC1pbWctYXJlYSB7IGhlaWdodDogMzJyZW07IH1cbiAgICAgIC5nZW8tZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9XG4gICAgICAuY29udGFjdC1ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH1cbiAgICAgIC52dC1mb290ZXItZ3JpZCB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgZ2FwOiA0cmVtIDMuMnJlbTtcbiAgICAgIH1cblxuICAgICAgLnZ0LWZvb3Rlci1hYm91dCB7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxIC8gLTE7XG4gICAgICAgIG1heC13aWR0aDogNTZyZW07XG4gICAgICB9XG5cbiAgICAgIC52dC1mb290ZXItbGVnYWwge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuICAgICAgLnByb2Nlc3MtZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7IH1cbiAgICAgIC5wcm9jZXNzLWxpbmUgeyBkaXNwbGF5OiBub25lOyB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDk5MnB4KSB7XG4gICAgICAuc3RydWN0dXJlcy1jb2xzIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNzYuOHJlbSkge1xuICAgICAgLnZ0LW5hdiB7IGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIC52dC1idXJnZXIgeyBkaXNwbGF5OiBmbGV4OyB9XG4gICAgICAudnQtaGVhZGVyLXBob25lIHsgZGlzcGxheTogbm9uZTsgfVxuXG4gICAgICAuaGVyby1sYXlvdXQgeyBwYWRkaW5nOiAxMnJlbSAwIDhyZW07IH1cbiAgICAgIC5oZXJvLXN0YXRzIHsgZmxleC13cmFwOiB3cmFwOyBnYXA6IDMuMnJlbTsgfVxuXG4gICAgICAucHJvY2Vzcy1ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyOyBnYXA6IDMuMnJlbTsgfVxuXG4gICAgICAucXVpei1jYXJkIHsgcGFkZGluZzogMy4ycmVtIDIuNHJlbTsgfVxuICAgICAgLnF1aXotZm9ybS1yb3cgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjsgfVxuICAgICAgLnF1aXotb3B0aW9ucyB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgIH1cblxuICAgICAgLmZhY2lsaXRpZXMtZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjsgfVxuXG4gICAgICAuZ2FsbGVyeS1ncmlkIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICAgIH1cblxuICAgICAgLnZ0LWZvb3Rlci1ncmlkIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgICAgIGdhcDogMy42cmVtO1xuICAgICAgfVxuXG4gICAgICAudnQtZm9vdGVyLWFib3V0IHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IGF1dG87XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLnZ0LWZvb3Rlci1ib3R0b20ge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIH1cblxuICAgICAgLnZ0LWZvb3Rlci1sZWdhbCB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDhyZW0pIHtcbiAgICAgIC5oZXJvIGgxIHsgZm9udC1zaXplOiAzLjJyZW07IH1cbiAgICAgIC5oZXJvLWJ1dHRvbnMgeyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgICAuaGVyby1idXR0b25zIC5idG4geyB3aWR0aDogMTAwJTsgfVxuICAgICAgLmZhY2lsaXRpZXMtZ3JpZCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9XG4gICAgICAuYWJvdXQtbnVtYmVycyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9XG4gICAgICAucHJvY2Vzcy1ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH1cblxuICAgICAgLnF1aXotb3B0aW9ucyB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgfVxuICAgIH1cbiIsIi8qIEJyZWFrcG9pbnRzIChkZXNrdG9wLWZpcnN0KSDigJQg0LjQtyBoZWFkZXItc3RhbmRhbG9uZSAqL1xyXG5AbWl4aW4gdG8tMTAyNCgpIHtcclxuXHRAbWVkaWEgKG1heC13aWR0aDogMTAyMy45OHB4KSB7XHJcblx0XHRAY29udGVudDtcclxuXHR9XHJcbn1cclxuQG1peGluIHRvLTc2OCgpIHtcclxuXHRAbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcclxuXHRcdEBjb250ZW50O1xyXG5cdH1cclxufVxyXG5AbWl4aW4gdG8tNjAwKCkge1xyXG5cdEBtZWRpYSAobWF4LXdpZHRoOiA1OTkuOThweCkge1xyXG5cdFx0QGNvbnRlbnQ7XHJcblx0fVxyXG59XHJcbkBtaXhpbiB0by00ODAoKSB7XHJcblx0QG1lZGlhIChtYXgtd2lkdGg6IDQ3OS45OHB4KSB7XHJcblx0XHRAY29udGVudDtcclxuXHR9XHJcbn1cclxuIiwiQHVzZSAndmFsdGV4LWdsYXNzLWhlYWRlci1taXhpbnMnIGFzICo7XG5cbi8qXG4gINCh0YLQtdC60LvRj9C90L3Ri9C5IHN0aWNreS3RhdC10LTQtdGAICjQuNC80L/QvtGA0YIg0LjQtyBoZWFkZXItc3RhbmRhbG9uZSkuXG4gINCf0YDQtdGE0LjQutGBIC52dC1nbGFzcy1oZWFkZXIg4oCUINGH0YLQvtCx0Ysg0L3QtSDQv9C10YDQtdGB0LXQutCw0YLRjNGB0Y8g0YEgLmhlYWRlciDQuNC3IGJsb2Nrcy9faGVhZGVyLnNjc3NcbiovXG5cbi52dC1nbGFzcy1oZWFkZXIge1xuXHRwb3NpdGlvbjogZml4ZWQ7XG5cdHRvcDogMDtcblx0bGVmdDogMDtcblx0cmlnaHQ6IDA7XG5cdHotaW5kZXg6IDEwMDA7XG5cdHBhZGRpbmc6IDNyZW0gdmFyKC0tY29udGFpbmVyLXBhZGRpbmcpIDA7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4udnQtZ2xhc3MtaGVhZGVyX19iYXIge1xuXHQvKiDQktGL0YjQtSDQstGL0L/QsNC00LDRjtGJ0LXQs9C+INC80LXQvdGOLCDRh9GC0L7QsdGLINC60LDRgdGC0L7QvNC90YvQtSDRgtGD0LvRgtC40L/RiyDQutC90L7Qv9C+0Log0LHRi9C70Lgg0L/QvtCy0LXRgNGFINC/0LDQvdC10LvQuCAqL1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHotaW5kZXg6IDU7XG5cdC8qINCf0YDQvtC80LXQttGD0YLQvtC6INC80LXQttC00YMgQ1RBIC8g0YLQtdC70LXRhNC+0L0gLyDQvNC10L3RjiA9INC+0YLRgdGC0YPQvyDQvtGCINC80LXQvdGOINC00L4g0L/RgNCw0LLQvtCz0L4g0LrRgNCw0Y8g0L/Qu9Cw0YjQutC4ICovXG5cdC0tdnQtZ2xhc3MtYmFyLWFjdGlvbnMtZ2FwOiAwLjRyZW07XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcblx0Z2FwOiAxLjJyZW07XG5cdGhlaWdodDogNC44cmVtO1xuXHRtYXJnaW46IDAgYXV0bztcblx0cGFkZGluZzogMCB2YXIoLS12dC1nbGFzcy1iYXItYWN0aW9ucy1nYXApIDAgMXJlbTtcblx0Ym9yZGVyLXJhZGl1czogMC44cmVtO1xuXHRiYWNrZ3JvdW5kOiByZ2JhKDYsIDEwLCAyNCwgMC41NSk7XG5cdGJhY2tkcm9wLWZpbHRlcjogYmx1cigyNHB4KTtcblx0LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjRweCk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7XG5cdHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuXHR3aWxsLWNoYW5nZTogbWF4LXdpZHRoO1xuXHR0cmFuc2l0aW9uOlxuXHRcdG1heC13aWR0aCAwLjM1cyBlYXNlLFxuXHRcdGJhY2tncm91bmQtY29sb3IgMC4zNXMgZWFzZSxcblx0XHRib3gtc2hhZG93IDAuMzVzIGVhc2U7XG59XG5cbi52dC1nbGFzcy1oZWFkZXJfX2Jhci1lbmQge1xuXHRkaXNwbGF5OiBmbGV4O1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRnYXA6IHZhcigtLXZ0LWdsYXNzLWJhci1hY3Rpb25zLWdhcCk7XG5cdGZsZXgtc2hyaW5rOiAwO1xufVxuXG4udnQtZ2xhc3MtaGVhZGVyX19hY3Rpb25zIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0Z2FwOiB2YXIoLS12dC1nbGFzcy1iYXItYWN0aW9ucy1nYXApO1xuXHRmbGV4LXNocmluazogMDtcbn1cblxuLnZ0LWdsYXNzLWhlYWRlcl9fYWN0aW9ucyAudnQtaGVhZGVyLWN0YSB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdHBhZGRpbmc6IDAgMXJlbTtcblx0aGVpZ2h0OiA0cmVtO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG5cdC52dC1nbGFzcy1oZWFkZXJfX2FjdGlvbnMgLnZ0LWhlYWRlci1jdGEge1xuXHRcdGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXHR9XG59XG5cbi52dC1nbGFzcy1oZWFkZXJfX2J0biB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHR3aWR0aDogNHJlbTtcblx0aGVpZ2h0OiA0cmVtO1xuXHRib3JkZXItcmFkaXVzOiAwLjVyZW07XG5cdGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XG5cdGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7XG5cdGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG5cdGN1cnNvcjogcG9pbnRlcjtcblx0ZmxleC1zaHJpbms6IDA7XG5cdHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcyBlYXNlLCBjb2xvciAwLjNzIGVhc2UsIGJvcmRlci1jb2xvciAwLjNzIGVhc2U7XG5cblx0Jjpob3ZlciB7XG5cdFx0YmFja2dyb3VuZDogcmdiYSg1NCwgMTAzLCAyMTYsIDAuMTUpO1xuXHRcdGJvcmRlci1jb2xvcjogcmdiYSg1NCwgMTAzLCAyMTYsIDAuMyk7XG5cdFx0Y29sb3I6ICNmZmY7XG5cdH1cbn1cblxuLyog0JrQsNGB0YLQvtC80L3Ri9C5INGC0YPQu9GC0LjQvyAodGl0bGUg0LIg0LHRgNCw0YPQt9C10YDQtSDQvdC1INGB0YLQuNC70LjQt9GD0LXRgtGB0Y8pICovXG4udnQtZ2xhc3MtaGVhZGVyX190b29sdGlwIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG5AbWVkaWEgKGhvdmVyOiBob3ZlcikgYW5kIChwb2ludGVyOiBmaW5lKSB7XG5cdC52dC1nbGFzcy1oZWFkZXJfX3Rvb2x0aXA6OmFmdGVyIHtcblx0XHRjb250ZW50OiBhdHRyKGRhdGEtdG9vbHRpcCk7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogY2FsYygxMDAlICsgMC44cmVtKTtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXHRcdHBhZGRpbmc6IDAuNXJlbSAwLjlyZW07XG5cdFx0Zm9udC1zaXplOiAxLjJyZW07XG5cdFx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0XHRsaW5lLWhlaWdodDogMS4yO1xuXHRcdGNvbG9yOiB2YXIoLS12dC13aGl0ZSk7XG5cdFx0YmFja2dyb3VuZDogcmdiYSgxMiwgMTcsIDU3LCAwLjk2KTtcblx0XHRib3JkZXI6IDAuMXJlbSBzb2xpZCAjZjVmNWY1O1xuXHRcdGJvcmRlci1yYWRpdXM6IDAuNHJlbTtcblx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdG9wYWNpdHk6IDA7XG5cdFx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRcdHotaW5kZXg6IDY7XG5cdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHR0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2UsIHZpc2liaWxpdHkgMC4xNXMgZWFzZTtcblx0fVxuXG5cdC52dC1nbGFzcy1oZWFkZXJfX3Rvb2x0aXA6aG92ZXI6OmFmdGVyLFxuXHQudnQtZ2xhc3MtaGVhZGVyX190b29sdGlwOmZvY3VzLXZpc2libGU6OmFmdGVyIHtcblx0XHRvcGFjaXR5OiAxO1xuXHRcdHZpc2liaWxpdHk6IHZpc2libGU7XG5cdH1cbn1cblxuLnZ0LWdsYXNzLWhlYWRlcl9fbWVudSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnZ0LWdsYXNzLWhlYWRlcl9fbWVudSBzdmcge1xuXHR3aWR0aDogMi40cmVtO1xuXHRoZWlnaHQ6IDIuNHJlbTtcblx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDYwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG5cbi52dC1nbGFzcy1oZWFkZXJfX21lbnUgLmxpbmUge1xuXHRmaWxsOiBub25lO1xuXHRzdHJva2U6IGN1cnJlbnRDb2xvcjtcblx0c3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xuXHRzdHJva2UtbGluZWpvaW46IHJvdW5kO1xuXHRzdHJva2Utd2lkdGg6IDM7XG5cdHRyYW5zaXRpb246XG5cdFx0c3Ryb2tlLWRhc2hhcnJheSA2MDBtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpLFxuXHRcdHN0cm9rZS1kYXNob2Zmc2V0IDYwMG1zIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XG59XG5cbi52dC1nbGFzcy1oZWFkZXJfX21lbnUgLmxpbmUtdG9wLWJvdHRvbSB7XG5cdHN0cm9rZS1kYXNoYXJyYXk6IDEyIDYzO1xufVxuXG4udnQtZ2xhc3MtaGVhZGVyX19tZW51LmlzLWFjdGl2ZSBzdmcge1xuXHR0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xufVxuXG4udnQtZ2xhc3MtaGVhZGVyX19tZW51LmlzLWFjdGl2ZSAubGluZS10b3AtYm90dG9tIHtcblx0c3Ryb2tlLWRhc2hhcnJheTogMjAgMzAwO1xuXHRzdHJva2UtZGFzaG9mZnNldDogLTMyLjQyO1xufVxuXG4udnQtZ2xhc3MtaGVhZGVyX19sb2dvIHtcblx0ZGlzcGxheTogZmxleDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdGZsZXgtc2hyaW5rOiAwO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdGNvbG9yOiBpbmhlcml0O1xuXG5cdGltZyB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0aGVpZ2h0OiBjbGFtcCgycmVtLCAxLjZyZW0gKyAwLjZ2dywgMi44cmVtKTtcblx0XHR3aWR0aDogYXV0bztcblx0fVxufVxuXG4udnQtZ2xhc3MtaGVhZGVyX19waG9uZSB7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuXHRzdmcge1xuXHRcdHdpZHRoOiAycmVtO1xuXHRcdGhlaWdodDogMnJlbTtcblx0fVxufVxuXG4udnQtZ2xhc3MtaGVhZGVyX19uYXYge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHotaW5kZXg6IDQ7XG5cdHRvcDogY2FsYygxMDAlICsgMC44cmVtKTtcblx0bGVmdDogNTAlO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdHdpZHRoOiAxMDAlO1xuXHRtYXgtd2lkdGg6IDkwcmVtO1xuXHRwYWRkaW5nOiAwIHZhcigtLXZ0LWNvbnRhaW5lci1pbmxpbmUpO1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0b3BhY2l0eTogMDtcblx0dmlzaWJpbGl0eTogaGlkZGVuO1xuXHR0cmFuc2l0aW9uOlxuXHRcdG9wYWNpdHkgMC4zcyBlYXNlLFxuXHRcdHZpc2liaWxpdHkgMC4zcyBlYXNlO1xuXG5cdCYuaXMtb3BlbiB7XG5cdFx0cG9pbnRlci1ldmVudHM6IGF1dG87XG5cdFx0b3BhY2l0eTogMTtcblx0XHR2aXNpYmlsaXR5OiB2aXNpYmxlO1xuXHR9XG59XG5cbi52dC1nbGFzcy1oZWFkZXJfX25hdi1pbm5lciB7XG5cdGRpc3BsYXk6IGdyaWQ7XG5cdGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcblx0Lyog0J/QvtGA0Y/QtNC+0Log0LIgMiDQutC+0LvQvtC90LrQsNGFOiAxfDQsIDJ8NSwgM3w2ICjRgdCy0LXRgNGF0YMg0LLQvdC40Lcg0L/QviDQutC+0LvQvtC90LrQsNC8KSAqL1xuXHRncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdCgzLCBhdXRvKTtcblx0Z3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcblx0Z2FwOiAwLjRyZW0gMnJlbTtcblx0cGFkZGluZzogY2xhbXAoMi40cmVtLCAycmVtICsgMC44dncsIDMuNnJlbSk7XG5cdGJvcmRlci1yYWRpdXM6IDEuNnJlbTtcblx0YmFja2dyb3VuZDogcmdiYSg2LCAxMCwgMjQsIDAuODgpO1xuXHRiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMzJweCk7XG5cdC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDMycHgpO1xuXHRib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpO1xuXHRib3gtc2hhZG93OiAwIDEuNnJlbSA0LjhyZW0gcmdiYSgwLCAwLCAwLCAwLjQpO1xuXHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTAuOHJlbSkgc2NhbGUoMC45OCk7XG5cdG9wYWNpdHk6IDA7XG5cdHRyYW5zaXRpb246XG5cdFx0dHJhbnNmb3JtIDAuNHMgY3ViaWMtYmV6aWVyKDAuMjIsIDEsIDAuMzYsIDEpLFxuXHRcdG9wYWNpdHkgMC4zNXMgZWFzZTtcbn1cblxuLnZ0LWdsYXNzLWhlYWRlcl9fbmF2LmlzLW9wZW4gLnZ0LWdsYXNzLWhlYWRlcl9fbmF2LWlubmVyIHtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xuXHRvcGFjaXR5OiAxO1xufVxuXG4udnQtZ2xhc3MtaGVhZGVyX19uYXYtbGluayB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdHBhZGRpbmc6IDFyZW0gMS4ycmVtO1xuXHRib3JkZXItcmFkaXVzOiAwLjhyZW07XG5cdGZvbnQtc2l6ZTogY2xhbXAoMS40cmVtLCAxLjNyZW0gKyAwLjE1dncsIDEuNnJlbSk7XG5cdGxpbmUtaGVpZ2h0OiAxLjQ7XG5cdGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0dHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjI1cyBlYXNlLCBjb2xvciAwLjI1cyBlYXNlO1xuXG5cdCY6aG92ZXIge1xuXHRcdGJhY2tncm91bmQ6IHJnYmEoNTQsIDEwMywgMjE2LCAwLjEyKTtcblx0XHRjb2xvcjogI2ZmZjtcblx0fVxufVxuXG5AaW5jbHVkZSB0by0xMDI0KCkge1xuXHQudnQtZ2xhc3MtaGVhZGVyIHtcblx0XHRwYWRkaW5nLXRvcDogMi40cmVtO1xuXHR9XG59XG5cbkBpbmNsdWRlIHRvLTc2OCgpIHtcblx0LnZ0LWdsYXNzLWhlYWRlciB7XG5cdFx0cGFkZGluZy10b3A6IDJyZW07XG5cdH1cblxuXHQudnQtZ2xhc3MtaGVhZGVyX19uYXYge1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0XHRwYWRkaW5nOiAwIHZhcigtLXZ0LWNvbnRhaW5lci1pbmxpbmUpO1xuXHR9XG5cblx0LnZ0LWdsYXNzLWhlYWRlcl9fbmF2LWlubmVyIHtcblx0XHRncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcblx0XHRncmlkLXRlbXBsYXRlLXJvd3M6IG5vbmU7XG5cdFx0Z3JpZC1hdXRvLWZsb3c6IHJvdztcblx0XHRnYXA6IDAuNHJlbTtcblx0XHRwYWRkaW5nOiBjbGFtcCgycmVtLCAxLjZyZW0gKyAwLjZ2dywgMi44cmVtKTtcblx0fVxuXG5cdC52dC1nbGFzcy1oZWFkZXJfX25hdi1saW5rIHtcblx0XHRwYWRkaW5nOiAwLjhyZW0gMXJlbTtcblx0XHRmb250LXNpemU6IDEuNHJlbTtcblx0fVxufVxuXG5AaW5jbHVkZSB0by02MDAoKSB7XG5cdC52dC1nbGFzcy1oZWFkZXIge1xuXHRcdHBhZGRpbmctdG9wOiAxLjZyZW07XG5cdH1cblxuXHQudnQtZ2xhc3MtaGVhZGVyX19iYXIge1xuXHRcdC0taGVhZGVyLWNvbXBhY3Q6IDI4cmVtO1xuXHRcdGhlaWdodDogNC40cmVtO1xuXHR9XG5cblx0LnZ0LWdsYXNzLWhlYWRlcl9fYnRuIHtcblx0XHR3aWR0aDogMy42cmVtO1xuXHRcdGhlaWdodDogMy42cmVtO1xuXHR9XG5cblx0LnZ0LWdsYXNzLWhlYWRlcl9fbWVudSBzdmcge1xuXHRcdHdpZHRoOiAycmVtO1xuXHRcdGhlaWdodDogMnJlbTtcblx0fVxuXG5cdC52dC1nbGFzcy1oZWFkZXJfX3Bob25lIHN2ZyB7XG5cdFx0d2lkdGg6IDEuOHJlbTtcblx0XHRoZWlnaHQ6IDEuOHJlbTtcblx0fVxuXG59XG5cbkBpbmNsdWRlIHRvLTQ4MCgpIHtcblx0LnZ0LWdsYXNzLWhlYWRlcl9fYmFyIHtcblx0XHQtLWhlYWRlci1jb21wYWN0OiAyNHJlbTtcblx0XHQtLXZ0LWdsYXNzLWJhci1hY3Rpb25zLWdhcDogMC4ycmVtO1xuXHRcdHBhZGRpbmc6IDAgdmFyKC0tdnQtZ2xhc3MtYmFyLWFjdGlvbnMtZ2FwKSAwIDFyZW07XG5cdH1cblxuXHQudnQtZ2xhc3MtaGVhZGVyX19sb2dvIGltZyB7XG5cdFx0aGVpZ2h0OiAxLjhyZW07XG5cdH1cbn1cblxuLyog0K/QutC+0YDRjzog0YPRh9GR0YIg0YTQuNC60YHQuNGA0L7QstCw0L3QvdC+0Lkg0YjQsNC/0LrQuCAqL1xuLnZ0LWxhbmRpbmcgPiBzZWN0aW9uW2lkXSB7XG5cdHNjcm9sbC1tYXJnaW4tdG9wOiAxMXJlbTtcbn1cbiIsIi5mb290ZXIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMzksIDM5LCAzOSk7XG5cdHBhZGRpbmc6IDVyZW0gMDtcblx0Zm9udC1zaXplOiAzLjJyZW07XG4gICAgY29sb3I6ICNmZmY7XG5cblx0aDEge1xuXHRcdGZvbnQtc2l6ZTogMy4ycmVtO1xuXHR9XG5cblx0YSB7XG5cdFx0Ly8gY29sb3I6IHZhcigtLWxpbmstY29sb3IpO1xuXHRcdGNvbG9yOiAjZmZmO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHR9XG5cblx0QGluY2x1ZGUgdW50aWwtMTE5OSB7XG5cdFx0Zm9udC1zaXplOiAyLjZyZW07XG5cdH1cbn1cblxuLmZvb3Rlcl9fY29weXJpZ2h0IHtcblx0cGFkZGluZzogMXJlbSAwO1xuXHRmb250LXNpemU6IDEuNnJlbTtcblxufVxuIiwiLmhlYWRlciB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNjMGU0ZjQ7XG5cdHBhZGRpbmc6IDVyZW0gMDtcblxuXHQmX19yb3cge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0anVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdH1cbn1cblxuLmhlYWRlcl9fbmF2IHtcblx0QGluY2x1ZGUgdGFibGV0IHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59IiwiLmljb25zLXdyYXBwZXIge1xuXHRwYWRkaW5nOiAzcmVtIDA7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGNvbHVtbi1nYXA6IDNyZW07XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cblx0aW1nIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR3aWR0aDogNi4ycmVtO1xuXHRcdGhlaWdodDogYXV0bztcblx0fVxufVxuXG4uaWNvbiB7XG5cdGZpbGw6IHRyYW5zcGFyZW50O1xuXHRzdHJva2U6IHRyYW5zcGFyZW50O1xuXHR3aWR0aDogNi4ycmVtO1xuXHRoZWlnaHQ6IDYuMnJlbTtcbn1cblxuLmljb24tLXVzZXIge1xuXHRzdHJva2U6IHJnYigyNiwgMTM0LCAyMzUpO1xuXHR0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluO1xuXG5cdCY6aG92ZXIge1xuXHRcdHN0cm9rZTogcmdiKDE3LCAxOTMsIDkwKTtcblx0fVxufVxuIiwiLmxvZ28ge1xuICAgIGZvbnQtc2l6ZTogMy4ycmVtO1xufSIsIi5tb2JpbGUtbmF2IHtcblx0cG9zaXRpb246IGZpeGVkO1xuXHQvLyB0b3A6IDA7XG5cdHRvcDogLTEwMCU7XG5cdHdpZHRoOiAxMDAlO1xuXHRoZWlnaHQ6IDEwMCU7XG4gICAgei1pbmRleDogOTk7XG5cblx0ZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmctdG9wOiA0cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiA0cmVtO1xuICAgIC8vIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgyMDlkZWcsICM0Mjg3YjMgLTE3LjM4JSwgIzEzM2Y2YiA3OC40JSksICMyNzYxOTU7XG5cdGJhY2tncm91bmQ6ICM4Y2NhZTY7XG5cdHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47XG59XG5cbi5tb2JpbGUtbmF2LS1vcGVuIHtcblx0dG9wOiAwO1xufVxuXG4ubW9iaWxlLW5hdiBhIHtcblx0Y29sb3I6ICNmZmY7XG59XG5cbi5tb2JpbGUtbmF2X19saXN0IHtcblx0ZGlzcGxheTogZmxleDtcblx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0cm93LWdhcDogMnJlbTtcblx0Zm9udC1zaXplOiAyLjhyZW07XG5cblx0JiAuYWN0aXZlIHtcblx0XHRvcGFjaXR5OiAwLjU7XG5cdH1cbn0iLCIvKiBOYXYgSWNvbiAqL1xuLm1vYmlsZS1uYXYtYnRuIHtcblx0LS10aW1lOiAwLjFzO1xuXG5cdC0td2lkdGg6IDRyZW07XG5cdC0taGVpZ2h0OiAzcmVtO1xuXG5cdC0tbGluZS1oZWlnaHQ6IDAuNHJlbTtcblx0LS1zcGFjaW5nOiAwLjZyZW07XG5cblx0LS1jb2xvcjogIzAwMDtcblx0LS1yYWRpdXM6IDAuNHJlbTtcblxuXHQvKiBGaXhlZCBoZWlnaHQgYW5kIHdpZHRoICovXG5cdC8qIGhlaWdodDogdmFyKC0taGVpZ2h0KTsgKi9cblx0Lyogd2lkdGg6IHZhcigtLXdpZHRoKTsgKi9cblxuXHQvKiBEeW5hbWljIGhlaWdodCBhbmQgd2lkdGggKi9cblx0aGVpZ2h0OiBjYWxjKHZhcigtLWxpbmUtaGVpZ2h0KSAqIDMgKyB2YXIoLS1zcGFjaW5nKSAqIDIpO1xuXHR3aWR0aDogdmFyKC0td2lkdGgpO1xuXG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubmF2LWljb24ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHdpZHRoOiB2YXIoLS13aWR0aCk7XG5cdGhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQpO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvcik7XG5cdGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7XG59XG5cbi5uYXYtaWNvbjo6YmVmb3JlLFxuLm5hdi1pY29uOjphZnRlciB7XG5cdGNvbnRlbnQ6ICcnO1xuXHRkaXNwbGF5OiBibG9jaztcblxuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdGxlZnQ6IDA7XG5cblx0d2lkdGg6IHZhcigtLXdpZHRoKTtcblx0aGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodCk7XG5cblx0Ym9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzKTtcblx0YmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3IpO1xuXHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tdGltZSkgZWFzZS1pbixcblx0XHR0b3AgdmFyKC0tdGltZSkgbGluZWFyIHZhcigtLXRpbWUpO1xufVxuXG4ubmF2LWljb246OmJlZm9yZSB7XG5cdC8qIHRvcDogY2FsYyh2YXIoLS1saW5lLWhlaWdodCkgKiAtMik7ICovXG5cdHRvcDogY2FsYygtMSAqICh2YXIoLS1saW5lLWhlaWdodCkgKyB2YXIoLS1zcGFjaW5nKSkpO1xufVxuXG4ubmF2LWljb246OmFmdGVyIHtcblx0LyogdG9wOiBjYWxjKHZhcigtLWxpbmUtaGVpZ2h0KSAqIDIpOyAqL1xuXHR0b3A6IGNhbGModmFyKC0tbGluZS1oZWlnaHQpICsgdmFyKC0tc3BhY2luZykpO1xufVxuXG4ubmF2LWljb24ubmF2LWljb24tLWFjdGl2ZSB7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ubmF2LWljb24ubmF2LWljb24tLWFjdGl2ZTo6YmVmb3JlLFxuLm5hdi1pY29uLm5hdi1pY29uLS1hY3RpdmU6OmFmdGVyIHtcblx0dG9wOiAwO1xuXHR0cmFuc2l0aW9uOiB0b3AgdmFyKC0tdGltZSkgbGluZWFyLFxuXHRcdHRyYW5zZm9ybSB2YXIoLS10aW1lKSBlYXNlLWluIHZhcigtLXRpbWUpO1xufVxuXG4ubmF2LWljb24ubmF2LWljb24tLWFjdGl2ZTo6YmVmb3JlIHtcblx0dHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuXG4ubmF2LWljb24ubmF2LWljb24tLWFjdGl2ZTo6YWZ0ZXIge1xuXHR0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xufVxuXG4vKiBMYXlvdXQgKi9cblxuLm1vYmlsZS1uYXYtYnRuIHtcblx0ei1pbmRleDogOTk5O1xuXHQvLyBkaXNwbGF5OiBub25lO1xufVxuXG4vLyBAbWVkaWEgKG1heC13aWR0aDogMTAwMHB4KSB7XG4vLyBcdC5tb2JpbGUtbmF2LWJ0biB7XG4vLyBcdFx0ZGlzcGxheTogYmxvY2s7XG4vLyBcdH1cbi8vIH0iLCIuaGVhZGVyX19uYXYge1xufVxuLm5hdiB7XG5cdGZvbnQtc2l6ZTogMS44cmVtO1xufVxuLm5hdl9fbGlzdCB7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGNvbHVtbi1nYXA6IDNyZW07XG59XG4uYWN0aXZlIHtcbn0iLCIuZGVtby1zd2lwZXIge1xyXG5cdG1heC13aWR0aDogNDhyZW07XHJcblx0bWFyZ2luOiAzcmVtIGF1dG87XHJcblx0cGFkZGluZy1ib3R0b206IDRyZW07XHJcblx0Ym9yZGVyLXJhZGl1czogMC44cmVtO1xyXG5cdG92ZXJmbG93OiBoaWRkZW47XHJcblx0YmFja2dyb3VuZDogI2VlZjZmYTtcclxuXHJcblx0LnN3aXBlci1zbGlkZSB7XHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGNlbnRlcjtcclxuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG5cdFx0bWluLWhlaWdodDogMTZyZW07XHJcblx0XHRmb250LXNpemU6IDJyZW07XHJcblx0XHRmb250LXdlaWdodDogNjAwO1xyXG5cdH1cclxuXHJcblx0LnN3aXBlci1idXR0b24tcHJldixcclxuXHQuc3dpcGVyLWJ1dHRvbi1uZXh0IHtcclxuXHRcdGNvbG9yOiB2YXIoLS1hY2NlbnQsICNhYzE4MmMpO1xyXG5cdH1cclxuXHJcblx0LnN3aXBlci1wYWdpbmF0aW9uLWJ1bGxldC1hY3RpdmUge1xyXG5cdFx0YmFja2dyb3VuZDogdmFyKC0tYWNjZW50LCAjYWMxODJjKTtcclxuXHR9XHJcbn1cclxuIiwiLnRpdGxlLTEge1xuXHRtYXJnaW46IDFlbSAwIDAuNWVtO1xuXHRmb250LXNpemU6IDMuOHJlbTtcblx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0Zm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdGl0bGVzKTtcbn1cblxuLnRpdGxlLTIge1xuXHRtYXJnaW46IDFlbSAwIDAuNWVtO1xuXHRmb250LXNpemU6IDMuMnJlbTtcblx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0Zm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdGl0bGVzKTtcbn1cblxuLnRpdGxlLTMge1xuXHRtYXJnaW46IDFlbSAwIDAuNWVtO1xuXHRmb250LXNpemU6IDIuNnJlbTtcblx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0Zm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdGl0bGVzKTtcbn1cblxuLnRpdGxlLTQge1xuXHRtYXJnaW46IDFlbSAwIDAuNWVtO1xuXHRmb250LXNpemU6IDEuOHJlbTtcblx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0Zm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdGl0bGVzKTtcbn0iXX0= */
