@charset "UTF-8";
/**
 * Master Icon Mixin
 * Creates a colorable icon using masks.
 * Usage: @include icon('Arrow_Large_Right', $copper, 24px);
 */
/**
 * Clearfix
 * Standard utility for resolving floating parent container heights.
 */
/**
 * Fonts registry
 * Adobe Typekit fonts are enqueued via functions.php
 * Only use this file for manually added local fonts (.woff2)
 */
/*
@font-face {
  font-family: 'LocalFont';
  src: url('../fonts/local-font.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
*/
/**
 * Global Reset & Normalization
 * Sets the base box-sizing and image responsiveness rules.
 */
html,
body {
  margin: 0;
  padding: 0;
  overflow-x: clip;
  box-sizing: border-box;
  font-smoothing: antialiased;
}

/**
 * Universal Box Sizing
 * Ensures all elements inherit the box-sizing rule from the HTML root.
 */
*,
*::before,
*::after {
  box-sizing: inherit;
}

/**
 * Media Fluidity
 * Ensures images and other media elements do not overflow their containers.
 */
img {
  max-width: 100%;
  height: auto;
}

p {
  margin: 0;
  padding: 0;
}

/**
 * Corvant Typography System
 * Configures global text scaling, heading resets, and utility classes.
 */
/**
 * Base Body Typography
 * Standard font family, size, and normalization for the document body.
 */
body {
  color: #000000;
  font-size: 16px;
  line-height: 1.2;
  font-smoothing: antialiased;
  background-color: #FFFFFF;
  font-family: "nitti-grotesk", sans-serif;
}

a {
  color: #000000;
}
a:hover .elementor-icon-list-text {
  color: #B15933 !important;
}

/**
 * Universal Heading Reset
 * Standardizes branded typography for all heading levels and utility classes.
 */
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6,
.h7,
.h8,
.display-1,
.elementor-heading-title {
  color: #0A2842;
  font-weight: 700;
  font-family: "zuume", sans-serif;
}

/**
 * Desktop Scale
 * High-fidelity typography scaling for large screens.
 */
.display-1, .display-1 .elementor-heading-title {
  font-size: 132px;
  line-height: 1 !important;
  letter-spacing: 0.02em;
}

h1, h1 .elementor-heading-title,
.h1,
.h1 .elementor-heading-title,
.elementor-size-xl,
.elementor-size-xl .elementor-heading-title {
  font-size: 120px;
  line-height: 0.9 !important;
  letter-spacing: 0.02em;
}

h2, h2 .elementor-heading-title,
.h2,
.h2 .elementor-heading-title,
.elementor-size-large,
.elementor-size-large .elementor-heading-title {
  font-size: 96px;
  line-height: 0.9 !important;
  letter-spacing: 0.02em;
}

h3, h3 .elementor-heading-title,
.h3,
.h3 .elementor-heading-title {
  font-size: 88px;
  line-height: 0.875 !important;
  letter-spacing: 0.02em;
}

h4, h4 .elementor-heading-title,
.h4,
.h4 .elementor-heading-title {
  font-size: 76px;
  line-height: 0.8947 !important;
  letter-spacing: 0.02em;
}

h5, h5 .elementor-heading-title,
.h5,
.h5 .elementor-heading-title,
.elementor-size-medium,
.elementor-size-medium .elementor-heading-title {
  font-size: 64px;
  line-height: 1 !important;
  letter-spacing: 0.02em;
}

h6, h6 .elementor-heading-title,
.h6,
.h6 .elementor-heading-title,
.elementor-size-small,
.elementor-size-small .elementor-heading-title {
  font-size: 48px;
  line-height: 1 !important;
  letter-spacing: 0.02em;
  font-weight: 400;
}

.h7, .h7 .elementor-heading-title {
  font-size: 48px;
  line-height: 1 !important;
  letter-spacing: 0.02em;
  font-weight: 700;
}

.h8, .h8 .elementor-heading-title {
  font-size: 32px;
  line-height: 1.1 !important;
  letter-spacing: 0;
  font-weight: 400;
}

.subhead-l, .subhead-l .elementor-heading-title {
  font-size: 32px;
  line-height: 1.1;
  letter-spacing: 0;
  font-weight: 400;
  font-family: "nitti-grotesk", sans-serif;
  text-transform: none;
}

/**
 * Mobile Scale
 * Optimized typography adjustments for small screens (768px and below).
 */
@media (max-width: 768px) {
  .display-1, .display-1 .elementor-heading-title {
    font-size: 76px;
    line-height: 1;
  }
  h1, h1 .elementor-heading-title,
  .h1,
  .h1 .elementor-heading-title,
  .elementor-size-xl,
  .elementor-size-xl .elementor-heading-title {
    font-size: 64px;
    line-height: 1;
    letter-spacing: 0.02em;
  }
  h2, h2 .elementor-heading-title,
  .h2,
  .h2 .elementor-heading-title,
  .elementor-size-large,
  .elementor-size-large .elementor-heading-title {
    font-size: 48px;
    line-height: 1;
    letter-spacing: 0.02em;
  }
  h3, h3 .elementor-heading-title,
  .h3,
  .h3 .elementor-heading-title {
    font-size: 48px;
    line-height: 1.1;
    letter-spacing: 0.02em;
  }
  h4, h4 .elementor-heading-title,
  .h4,
  .h4 .elementor-heading-title {
    font-size: 32px;
    line-height: 1.1;
    letter-spacing: 0.02em;
  }
  h5, h5 .elementor-heading-title,
  .h5,
  .h5 .elementor-heading-title,
  .elementor-size-medium,
  .elementor-size-medium .elementor-heading-title {
    font-size: 32px;
    line-height: 1.1;
  }
  h6, h6 .elementor-heading-title,
  .h6,
  .h6 .elementor-heading-title,
  .elementor-size-small,
  .elementor-size-small .elementor-heading-title {
    font-size: 32px;
    line-height: 1.1;
    letter-spacing: 0.03em;
  }
  .h7, .h7 .elementor-heading-title {
    font-size: 32px;
    line-height: 1.1;
  }
  .h8, .h8 .elementor-heading-title,
  .subhead-l,
  .subhead-l .elementor-heading-title {
    font-size: 22px;
    line-height: 1.2;
  }
  .body-l, .body-l .elementor-heading-title, .body-l p, .body-l span {
    font-size: 18px;
  }
  .body-m, .body-m .elementor-heading-title, .body-m p, .body-m span {
    font-size: 16px;
  }
}
/**
 * Text Utility Classes
 * Standard body text variations for different content needs.
 * Target both the class and internal Elementor heading tags for inheritance.
 */
.body-l, .body-l .elementor-heading-title, .body-l h1, .body-l h2, .body-l h3, .body-l h4, .body-l h5, .body-l h6, .body-l p, .body-l span {
  font-size: 22px;
  line-height: 1.2;
  text-transform: none;
}

.body-m, .body-m .elementor-heading-title, .body-m h1, .body-m h2, .body-m h3, .body-m h4, .body-m h5, .body-m h6, .body-m p, .body-m span {
  font-size: 20px;
  line-height: 1.2;
  text-transform: none;
}

.body-s, .body-s .elementor-heading-title, .body-s h1, .body-s h2, .body-s h3, .body-s h4, .body-s h5, .body-s h6, .body-s p, .body-s span {
  font-size: 18px;
  line-height: 1.2;
  text-transform: none;
}

.body-xs, .body-xs .elementor-heading-title, .body-xs h1, .body-xs h2, .body-xs h3, .body-xs h4, .body-xs h5, .body-xs h6, .body-xs p, .body-xs span {
  font-size: 16px;
  line-height: 1.2;
  text-transform: none;
}

.caption, .caption .elementor-heading-title, .caption p, .caption span {
  font-size: 14px;
  line-height: 1.3;
  text-transform: none;
}

/**
 * Font Weight Utilities
 */
.fw-regular {
  font-weight: 400;
}

.fw-medium {
  font-weight: 500;
}

.fw-bold {
  font-weight: 700;
}

/**
 * Specialized Branded Elements
 * Contextual styles for eyebrows and hero subtitles.
 */
.eyebrow, .eyebrow .elementor-heading-title,
.hero-intro,
.hero-intro .elementor-heading-title {
  margin-bottom: 15px;
  color: #0D3E70;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.02em;
  display: block;
  text-transform: uppercase;
  font-family: "zuume", sans-serif;
}

@media (max-width: 768px) {
  .eyebrow, .eyebrow .elementor-heading-title,
  .hero-intro,
  .hero-intro .elementor-heading-title {
    font-size: 16px;
  }
}
/**
 * Corvant Icon System
 * Base styles for SVG icons used as background masks.
 * Use the 'icon' mixin for component-specific icon implementation.
 */
/**
 * Global Icon Helper Class
 * Targets any element with a class starting with 'icon-' for base mask logic.
 */
[class^=icon-],
[class*=" icon-"] {
  width: 1em;
  height: 1em;
  display: inline-block;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: contain;
          mask-size: contain;
  vertical-align: middle;
  background-color: currentColor;
}

/**
 * Corvant Animation Styles
 * Keyframes and utility classes for the site's motion system.
 */
@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes slideLeft {
  from {
    opacity: 0;
    transform: translateX(50px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes slideRight {
  from {
    opacity: 0;
    transform: translateX(-50px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes scaleUp {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes loaderLogoFadeIn {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
[class*=animate-] {
  opacity: 0;
  --animation-delay: 0ms;
}
.elementor-editor-active [class*=animate-], .elementor-edit-mode [class*=animate-] {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

.animate-slide-up.is-animated, .elementor-active .animate-slide-up {
  animation: slideUp 0.6s cubic-bezier(0.6, 0, 0.2, 1) var(--animation-delay, 0ms) forwards;
}

.animate-slide-down.is-animated, .elementor-active .animate-slide-down {
  animation: slideDown 0.6s cubic-bezier(0.6, 0, 0.2, 1) var(--animation-delay, 0ms) forwards;
}

.animate-slide-left.is-animated, .elementor-active .animate-slide-left {
  animation: slideLeft 0.6s cubic-bezier(0.6, 0, 0.2, 1) var(--animation-delay, 0ms) forwards;
}

.animate-slide-right.is-animated, .elementor-active .animate-slide-right {
  animation: slideRight 0.6s cubic-bezier(0.6, 0, 0.2, 1) var(--animation-delay, 0ms) forwards;
}

.animate-fade-in.is-animated, .elementor-active .animate-fade-in {
  animation: fadeIn 0.6s cubic-bezier(0.6, 0, 0.2, 1) var(--animation-delay, 0ms) forwards;
}

.animate-scale-up.is-animated, .elementor-active .animate-scale-up {
  animation: scaleUp 0.6s cubic-bezier(0.6, 0, 0.2, 1) var(--animation-delay, 0ms) forwards;
}

.delay-100 {
  --animation-delay: 100ms !important;
}

.delay-150 {
  --animation-delay: 150ms !important;
}

.delay-200 {
  --animation-delay: 200ms !important;
}

.delay-250 {
  --animation-delay: 250ms !important;
}

.delay-300 {
  --animation-delay: 300ms !important;
}

.delay-350 {
  --animation-delay: 350ms !important;
}

.delay-400 {
  --animation-delay: 400ms !important;
}

.delay-500 {
  --animation-delay: 500ms !important;
}

.delay-600 {
  --animation-delay: 600ms !important;
}

.delay-700 {
  --animation-delay: 700ms !important;
}

.delay-800 {
  --animation-delay: 800ms !important;
}

.delay-900 {
  --animation-delay: 900ms !important;
}

.delay-1000 {
  --animation-delay: 1000ms !important;
}

.loader-curtain {
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 99999;
  pointer-events: none;
  will-change: transform;
  transition: transform 1.2s cubic-bezier(0.6, 0, 0.2, 1);
  position: fixed !important;
  background-color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
}
.loader-curtain.is-hidden {
  transform: translateY(-100%);
}
.loader-curtain .loader-content {
  text-align: center;
}
.loader-curtain .loader-logo {
  width: 250px;
  height: auto;
  opacity: 0;
  transform: translateY(20px);
  animation: loaderLogoFadeIn 0.8s cubic-bezier(0.6, 0, 0.2, 1) forwards 0.3s;
}

body:not(.home) .loader-curtain {
  transition-duration: 0.85s;
}

body.is-loading {
  overflow: hidden;
}

.js-interactive-sync .elementor-widget-image {
  transition: opacity 0.3s ease-out;
}
.js-interactive-sync .elementor-widget-image.is-active {
  animation: fadeIn 0.4s ease-out forwards;
}

.js-curtain-image-box {
  overflow: hidden;
  position: relative;
}
.js-curtain-image-box img {
  width: 100%;
  height: auto;
  display: block;
}
.js-curtain-image-box .curtain-img {
  width: 100%;
  height: 100%;
  inset: 0;
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
}
.js-curtain-image-box .curtain-down {
  animation: curtainDown 0.65s cubic-bezier(0.6, 0, 0.2, 1) forwards;
}
.js-curtain-image-box .curtain-up {
  animation: curtainUp 0.65s cubic-bezier(0.6, 0, 0.2, 1) forwards;
}

@keyframes curtainDown {
  from {
    clip-path: inset(0 0 100% 0);
  }
  to {
    clip-path: inset(0 0 0 0);
  }
}
@keyframes curtainUp {
  from {
    clip-path: inset(100% 0 0 0);
  }
  to {
    clip-path: inset(0 0 0 0);
  }
}
/* =========================================
   Elementor Mega Menu (Header)
   ========================================= */
/* 1. Mobile Menu State (Global Body Class) */
body.menu-open {
  overflow: hidden;
}

/* 2. Mega Menu Component */
.elementor-widget-n-menu {
  /* General Styles */
}
.elementor-widget-n-menu svg {
  fill: transparent !important;
}
.elementor-widget-n-menu .e-n-menu-wrapper .e-n-menu-title-container {
  width: 95%;
}
.elementor-widget-n-menu .e-n-menu-title {
  border-bottom: 3px solid transparent;
}
.elementor-widget-n-menu .e-n-menu-title .e-n-menu-title-text {
  cursor: pointer;
}
.elementor-widget-n-menu .e-n-menu-title:has(button[aria-expanded=true]) {
  border-bottom: 3px solid var(--e-global-color-85e16a2);
}
.elementor-widget-n-menu {
  /* Active State */
}
.elementor-widget-n-menu .e-n-menu-title.corvant-menu-active {
  border-style: solid !important;
  border-width: 0px 0px 3px 0px !important;
  border-color: var(--e-global-color-85e16a2) !important;
}
.elementor-widget-n-menu {
  /* Desktop Styles */
}
@media (min-width: 1025px) {
  .elementor-widget-n-menu {
    /* Global shadow for all dropdown menus (Capabilities, Markets, etc.) */
  }
  .elementor-widget-n-menu .e-n-menu-content > .e-con > .e-con-inner {
    box-shadow: 0px 4px 14px rgba(0, 0, 0, 0.15) !important;
  }
}
.elementor-widget-n-menu {
  /* Mobile Styles & Animations */
}
@media (max-width: 1024px) {
  .elementor-widget-n-menu .mobile-contact-wrapper {
    margin-top: 40px;
    padding: 0 16px;
  }
  .elementor-widget-n-menu .mobile-contact-wrapper a.elementor-button {
    width: 100%;
  }
  .elementor-widget-n-menu {
    /* Main Menu Animation */
  }
  .elementor-widget-n-menu .e-n-menu-wrapper {
    display: flex !important;
    flex-direction: column !important;
    background-color: var(--e-global-color-7b34698) !important;
    height: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-15px);
    transition: opacity 0.2s ease-out, transform 0.2s ease-out, visibility 0s linear 0.2s, height 0s linear 0.2s, padding 0s linear 0.2s !important;
  }
  .elementor-widget-n-menu:has(button.e-n-menu-toggle[aria-expanded=true]) .e-n-menu-wrapper {
    height: 100vh !important;
    padding: 32px 0 160px 0 !important;
    overflow-y: auto !important;
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition: opacity 0.2s ease-out, transform 0.2s ease-out, visibility 0s linear 0s, height 0s linear 0s, padding 0s linear 0s !important;
  }
  .elementor-widget-n-menu {
    /* Submenu Animation */
  }
  .elementor-widget-n-menu .e-n-menu-content > .e-con {
    display: flex !important;
    height: auto !important;
    overflow: visible !important;
  }
  .elementor-widget-n-menu .e-n-menu-content {
    height: auto !important;
    max-height: 0;
    opacity: 0;
    visibility: hidden;
    overflow: hidden !important;
    transition: max-height 0.25s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s ease-out, visibility 0s linear 0.25s !important;
  }
  .elementor-widget-n-menu .e-n-menu-item:has(button.e-n-menu-dropdown-icon[aria-expanded=true]) .e-n-menu-content {
    max-height: 3000px;
    opacity: 1;
    visibility: visible;
    overflow: visible !important;
    transition: max-height 0.6s ease-in-out, opacity 0.3s ease-in-out, visibility 0s linear 0s !important;
  }
}
@media (max-width: 768px) {
  .elementor-widget-n-menu .e-n-menu-wrapper .e-n-menu-title-container {
    padding-left: 16px;
  }
  .elementor-widget-n-menu .e-n-menu-wrapper .e-n-menu-dropdown-icon[aria-expanded=true] svg path {
    stroke: var(--e-global-color-85e16a2);
  }
}
@media (max-width: 570px) {
  .elementor-widget-n-menu .e-n-menu-wrapper .e-n-menu-title-container {
    width: 90%;
  }
}

/**
 * Corvant Button System
 * Implements high-fidelity interactive states and brand-compliant animations.
 */
/**
 * Base Button Styles
 * Configures global typography, transitions, and interactive scale transforms.
 */
.elementor-widget-button .elementor-button,
.elementor-field-type-submit .elementor-button {
  font-weight: 700;
  border: none;
  border-radius: 0;
  text-transform: uppercase;
  font-family: "nitti-grotesk", sans-serif;
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: transparent !important;
}
.elementor-widget-button .elementor-button::before,
.elementor-field-type-submit .elementor-button::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
  transition: background-color 0.35s cubic-bezier(0.6, 0, 0.2, 1), transform 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.elementor-widget-button .elementor-button .elementor-button-content-wrapper,
.elementor-widget-button .elementor-button .elementor-button-text,
.elementor-field-type-submit .elementor-button .elementor-button-content-wrapper,
.elementor-field-type-submit .elementor-button .elementor-button-text {
  position: relative;
  z-index: 1;
}
.elementor-widget-button .elementor-button:hover, .elementor-widget-button .elementor-button:focus, .elementor-widget-button .elementor-button:active,
.elementor-field-type-submit .elementor-button:hover,
.elementor-field-type-submit .elementor-button:focus,
.elementor-field-type-submit .elementor-button:active {
  transform: none !important;
}
.elementor-widget-button .elementor-button:hover::before, .elementor-widget-button .elementor-button:focus::before,
.elementor-field-type-submit .elementor-button:hover::before,
.elementor-field-type-submit .elementor-button:focus::before {
  transform: scale(0.95);
  transition: background-color 0.35s cubic-bezier(0.6, 0, 0.2, 1), transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.elementor-widget-button .elementor-button:active::before,
.elementor-field-type-submit .elementor-button:active::before {
  transform: scale(0.91);
  transition: background-color 0.35s cubic-bezier(0.6, 0, 0.2, 1), transform 0.15s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/**
 * Button Variants
 * Mappings for Solid Light, Solid Dark, and Text Gold button types.
 */
.elementor-button-solid-light .elementor-button,
.elementor-field-type-submit .elementor-button {
  color: #000000;
}
.elementor-button-solid-light .elementor-button::before,
.elementor-field-type-submit .elementor-button::before {
  background-color: #EEEAE3;
}
.elementor-button-solid-light .elementor-button:hover::before, .elementor-button-solid-light .elementor-button:focus::before,
.elementor-field-type-submit .elementor-button:hover::before,
.elementor-field-type-submit .elementor-button:focus::before {
  background-color: #DDD5C6;
}

.elementor-button-solid-light.elementor-button-size-small .elementor-button {
  padding: 0 16px;
}
.elementor-button-solid-light.elementor-button-size-medium .elementor-button {
  padding: 0 16px;
}
.elementor-button-solid-light.elementor-button-size-large .elementor-button {
  padding: 0 16px;
}

.elementor-button-solid-dark .elementor-button {
  color: #FFFFFF;
}
.elementor-button-solid-dark .elementor-button::before {
  background-color: #000000;
}
.elementor-button-solid-dark .elementor-button:hover::before, .elementor-button-solid-dark .elementor-button:focus::before {
  background-color: #000000;
}
.elementor-button-solid-dark .elementor-button .elementor-button-icon i,
.elementor-button-solid-dark .elementor-button .elementor-button-icon svg {
  color: #E08F35 !important;
  fill: #E08F35 !important;
}
.elementor-button-solid-dark.elementor-button-size-small .elementor-button {
  padding: 0 16px;
}
.elementor-button-solid-dark.elementor-button-size-medium .elementor-button {
  padding: 0 16px;
}
.elementor-button-solid-dark.elementor-button-size-large .elementor-button {
  padding: 0 16px;
}

.elementor-button-text-gold .elementor-button {
  height: 30px !important;
  padding: 0 !important;
  color: #000000;
  border-bottom: 2px solid #B15933;
}
.elementor-button-text-gold .elementor-button::before {
  display: none;
}
.elementor-button-text-gold .elementor-button:hover, .elementor-button-text-gold .elementor-button:focus {
  color: #000000;
  border-bottom-color: #B15933;
}
.elementor-button-text-gold .elementor-button:active {
  color: #000000;
  border-bottom-color: #B15933;
}
.btn-on-dark .elementor-button-text-gold .elementor-button {
  color: #FFFFFF;
}
.btn-on-dark .elementor-button-text-gold .elementor-button:hover {
  color: #EEEAE3;
}
.btn-on-dark .elementor-button-text-gold .elementor-button:active {
  color: #DDD5C6;
}
.elementor-button-text-gold .elementor-button .elementor-button-icon i,
.elementor-button-text-gold .elementor-button .elementor-button-icon svg {
  width: auto !important;
  height: auto !important;
}

/**
 * Button Sizes
 * Responsive sizing logic for small, medium, and large variants.
 */
.elementor-button-size-small .elementor-button,
.elementor-button.elementor-size-sm {
  height: 38px;
  font-size: 18px;
  padding: 0 16px;
}
.elementor-button-size-small .elementor-button:not(.elementor-button-text-gold) .elementor-button-icon i, .elementor-button-size-small .elementor-button:not(.elementor-button-text-gold) .elementor-button-icon svg,
.elementor-button.elementor-size-sm:not(.elementor-button-text-gold) .elementor-button-icon i,
.elementor-button.elementor-size-sm:not(.elementor-button-text-gold) .elementor-button-icon svg {
  width: auto !important;
  height: auto !important;
}

.elementor-button-size-small.elementor-button-text-gold .elementor-button {
  font-size: 16px;
}

.elementor-button-size-medium .elementor-button,
.elementor-button.elementor-size-md {
  height: 44px;
  font-size: 18px;
  padding: 0 16px;
}
.elementor-button-size-medium .elementor-button:not(.elementor-button-text-gold) .elementor-button-icon i, .elementor-button-size-medium .elementor-button:not(.elementor-button-text-gold) .elementor-button-icon svg,
.elementor-button.elementor-size-md:not(.elementor-button-text-gold) .elementor-button-icon i,
.elementor-button.elementor-size-md:not(.elementor-button-text-gold) .elementor-button-icon svg {
  width: auto !important;
  height: auto !important;
}

.elementor-button-size-medium.elementor-button-text-gold .elementor-button {
  font-size: 18px;
}

.elementor-button-size-large .elementor-button,
.elementor-button.elementor-size-lg {
  height: 50px;
  font-size: 20px;
  padding: 0 16px;
}
.elementor-button-size-large .elementor-button:not(.elementor-button-text-gold) .elementor-button-icon i, .elementor-button-size-large .elementor-button:not(.elementor-button-text-gold) .elementor-button-icon svg,
.elementor-button.elementor-size-lg:not(.elementor-button-text-gold) .elementor-button-icon i,
.elementor-button.elementor-size-lg:not(.elementor-button-text-gold) .elementor-button-icon svg {
  width: auto !important;
  height: auto !important;
}

.elementor-button-size-large.elementor-button-text-gold .elementor-button {
  font-size: 20px;
}

/**
 * Icon & Arrow Animations
 * Defines the 'arrowReenter' keyframes and icon coloring logic.
 */
@keyframes arrowHover {
  0% {
    transform: translateX(0);
    animation-timing-function: cubic-bezier(0.6, 0, 0.2, 1);
  }
  50% {
    transform: translateX(60px);
    animation-timing-function: step-end;
  }
  50.001% {
    transform: translateX(-60px);
    animation-timing-function: cubic-bezier(0.6, 0, 0.2, 1);
  }
  100% {
    transform: translateX(0);
  }
}
@keyframes arrowLeave {
  0% {
    transform: translateX(0);
    animation-timing-function: cubic-bezier(0.6, 0, 0.2, 1);
  }
  50% {
    transform: translateX(-60px);
    animation-timing-function: step-end;
  }
  50.001% {
    transform: translateX(60px);
    animation-timing-function: cubic-bezier(0.6, 0, 0.2, 1);
  }
  100% {
    transform: translateX(0);
  }
}
.elementor-button-content-wrapper {
  gap: 30px;
  display: flex;
  align-items: center;
}

.elementor-button-icon {
  display: flex;
  overflow: hidden;
  transition: transform 0.4s ease;
}
.elementor-button-icon i path,
.elementor-button-icon i line,
.elementor-button-icon i polyline,
.elementor-button-icon i rect,
.elementor-button-icon i circle,
.elementor-button-icon svg path,
.elementor-button-icon svg line,
.elementor-button-icon svg polyline,
.elementor-button-icon svg rect,
.elementor-button-icon svg circle {
  fill: transparent !important;
  stroke: currentColor !important;
}

.elementor-button:hover .elementor-button-icon i,
.elementor-button:hover .elementor-button-icon svg,
.elementor-button:focus .elementor-button-icon i,
.elementor-button:focus .elementor-button-icon svg {
  animation: arrowHover 0.6s cubic-bezier(0.6, 0, 0.2, 1) forwards;
}

.elementor-button.has-hovered:not(:hover):not(:focus) .elementor-button-icon i,
.elementor-button.has-hovered:not(:hover):not(:focus) .elementor-button-icon svg {
  animation: arrowLeave 0.6s cubic-bezier(0.6, 0, 0.2, 1) forwards;
}

.inquiry-form .elementor-field-type-submit button svg {
  width: 32px;
  height: auto;
}

/**
 * Forms & Inputs Component
 * Professional form styling for standard inputs, selects, and textareas.
 */
/**
 * Global Label Style
 * Standardizes typography for all form labels and required marks.
 */
label,
.form-label {
  margin-bottom: 8px;
  color: #000000;
  font-size: 14px;
  font-weight: 700;
  display: block;
  text-transform: uppercase;
  font-family: "nitti-grotesk", sans-serif;
}
label span,
.form-label span {
  color: #B15933;
}

/**
 * Base Input Styles
 * Covers text, email, tel, password, and textareas with brand-compliant states.
 */
input[type=text],
input[type=email],
input[type=tel],
input[type=password],
textarea,
select {
  width: 100%;
  height: 56px;
  padding: 12px 16px;
  color: #0A2842;
  font-size: 16px;
  outline: none;
  box-sizing: border-box;
  border: 1px solid transparent;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  background-color: #EEEAE3;
  font-family: "nitti-grotesk", sans-serif;
}
input[type=text]::-moz-placeholder, input[type=email]::-moz-placeholder, input[type=tel]::-moz-placeholder, input[type=password]::-moz-placeholder, textarea::-moz-placeholder, select::-moz-placeholder {
  color: rgba(10, 40, 66, 0.5);
}
input[type=text]::placeholder,
input[type=email]::placeholder,
input[type=tel]::placeholder,
input[type=password]::placeholder,
textarea::placeholder,
select::placeholder {
  color: rgba(10, 40, 66, 0.5);
}
input[type=text]:hover, input[type=text]:focus,
input[type=email]:hover,
input[type=email]:focus,
input[type=tel]:hover,
input[type=tel]:focus,
input[type=password]:hover,
input[type=password]:focus,
textarea:hover,
textarea:focus,
select:hover,
select:focus {
  border: 1px solid #0D3E70;
  background-color: #DDD5C6;
}
input[type=text].is-error, .wpcf7-not-valid input[type=text],
input[type=email].is-error,
.wpcf7-not-valid input[type=email],
input[type=tel].is-error,
.wpcf7-not-valid input[type=tel],
input[type=password].is-error,
.wpcf7-not-valid input[type=password],
textarea.is-error,
.wpcf7-not-valid textarea,
select.is-error,
.wpcf7-not-valid select {
  border-color: #D83B3B;
}

/**
 * Dropdown Menus (Select)
 * Custom arrow styling using themed SVG icons for consistent UI.
 */
select {
  cursor: pointer;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 6L11 1' stroke='%230A2842' stroke-width='2'/%3E%3C/svg%3E");
  background-position: right 16px center;
  background-repeat: no-repeat;
}
select option {
  color: #0A2842;
  background-color: #EEEAE3;
}

/**
 * Dark Form Modifier
 * High-fidelity variant for dark backgrounds using translucent elements.
 */
.form--dark label {
  color: #FFFFFF;
}
.form--dark input,
.form--dark textarea,
.form--dark select {
  color: #FFFFFF;
  border: 1px solid transparent;
  background-color: rgba(255, 255, 255, 0.1);
}
.form--dark input:hover, .form--dark input:focus,
.form--dark textarea:hover,
.form--dark textarea:focus,
.form--dark select:hover,
.form--dark select:focus {
  border: 1px solid #B15933;
  background-color: rgba(255, 255, 255, 0.15);
}
.form--dark input::-moz-placeholder, .form--dark textarea::-moz-placeholder, .form--dark select::-moz-placeholder {
  color: rgba(255, 255, 255, 0.6);
}
.form--dark input::placeholder,
.form--dark textarea::placeholder,
.form--dark select::placeholder {
  color: rgba(255, 255, 255, 0.6);
}
.form--dark select {
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 6L11 1' stroke='white' stroke-width='2'/%3E%3C/svg%3E");
}

/**
 * Custom Checkboxes & Radios
 * Premium brand-compliant toggle elements with copper indicators.
 */
input[type=checkbox],
input[type=radio] {
  width: 24px;
  height: 24px;
  cursor: pointer;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  position: relative;
  border: 2px solid #DDD5C6;
  transition: all 0.2s ease;
  background-color: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
input[type=checkbox]:hover,
input[type=radio]:hover {
  border-color: #B15933;
}
input[type=checkbox]:checked,
input[type=radio]:checked {
  border-color: #000000;
  background-color: #000000;
}
input[type=checkbox]:checked::after,
input[type=radio]:checked::after {
  content: "";
  width: 100%;
  height: 100%;
  transform: scale(0.5);
  clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
  background-color: #B15933;
}
.form--dark input[type=checkbox],
.form--dark input[type=radio] {
  border-color: #FFFFFF;
}
.form--dark input[type=checkbox]:checked,
.form--dark input[type=radio]:checked {
  border-color: #FFFFFF;
  background-color: #FFFFFF;
}

/**
 * Textarea Specific Logic
 * Fixed height and layout adjustments for multi-line inputs.
 */
textarea {
  height: 180px;
  padding: 16px;
  resize: vertical;
}

/**
 * Global Validation Messaging
 * Responsive error typography for automated form validation tools.
 */
.wpcf7-not-valid-tip,
.error-message {
  margin-top: 6px;
  color: #D83B3B;
  font-size: 12px;
  font-weight: 700;
  display: block;
}

/**
 * Privacy Policy Text & Submit Button Layout (Contact Forms)
 */
.inquiry-form .form-privacy-text {
  color: #FFFFFF;
}
.inquiry-form .form-privacy-text a {
  color: #FDC554;
  text-decoration: underline;
}
@media (max-width: 767px) {
  .inquiry-form .form-privacy-text br {
    display: none;
  }
}
.inquiry-form .elementor-field-type-submit {
  gap: 20px;
  display: flex;
  align-items: center;
}
@media (max-width: 767px) {
  .inquiry-form .elementor-field-type-submit {
    flex-direction: column;
    align-items: flex-start !important;
  }
}

/**
 * Light Form Variant Modifier
 * Overrides for reusing the form template in light background sections.
 */
.inquiry-form.form-variant-light .elementor-field-group label.elementor-field-label,
.inquiry-form.form-variant-light label.elementor-field-label {
  color: #000000 !important;
}
.inquiry-form.form-variant-light .elementor-field-group .elementor-field-textual,
.inquiry-form.form-variant-light .elementor-field-group input[type=text],
.inquiry-form.form-variant-light .elementor-field-group input[type=email],
.inquiry-form.form-variant-light .elementor-field-group input[type=tel],
.inquiry-form.form-variant-light .elementor-field-group input[type=password],
.inquiry-form.form-variant-light .elementor-field-group textarea,
.inquiry-form.form-variant-light .elementor-field-group select,
.inquiry-form.form-variant-light .elementor-field-textual,
.inquiry-form.form-variant-light input,
.inquiry-form.form-variant-light textarea,
.inquiry-form.form-variant-light select {
  color: #000000 !important;
  border: none !important;
  background-color: #EEEAE3 !important;
}
.inquiry-form.form-variant-light .elementor-field-group .elementor-field-textual::-moz-placeholder, .inquiry-form.form-variant-light .elementor-field-group input[type=text]::-moz-placeholder, .inquiry-form.form-variant-light .elementor-field-group input[type=email]::-moz-placeholder, .inquiry-form.form-variant-light .elementor-field-group input[type=tel]::-moz-placeholder, .inquiry-form.form-variant-light .elementor-field-group input[type=password]::-moz-placeholder, .inquiry-form.form-variant-light .elementor-field-group textarea::-moz-placeholder, .inquiry-form.form-variant-light .elementor-field-group select::-moz-placeholder, .inquiry-form.form-variant-light .elementor-field-textual::-moz-placeholder, .inquiry-form.form-variant-light input::-moz-placeholder, .inquiry-form.form-variant-light textarea::-moz-placeholder, .inquiry-form.form-variant-light select::-moz-placeholder {
  color: rgba(0, 0, 0, 0.5) !important;
}
.inquiry-form.form-variant-light .elementor-field-group .elementor-field-textual::placeholder,
.inquiry-form.form-variant-light .elementor-field-group input[type=text]::placeholder,
.inquiry-form.form-variant-light .elementor-field-group input[type=email]::placeholder,
.inquiry-form.form-variant-light .elementor-field-group input[type=tel]::placeholder,
.inquiry-form.form-variant-light .elementor-field-group input[type=password]::placeholder,
.inquiry-form.form-variant-light .elementor-field-group textarea::placeholder,
.inquiry-form.form-variant-light .elementor-field-group select::placeholder,
.inquiry-form.form-variant-light .elementor-field-textual::placeholder,
.inquiry-form.form-variant-light input::placeholder,
.inquiry-form.form-variant-light textarea::placeholder,
.inquiry-form.form-variant-light select::placeholder {
  color: rgba(0, 0, 0, 0.5) !important;
}
.inquiry-form.form-variant-light .elementor-field-group .elementor-field-textual:hover, .inquiry-form.form-variant-light .elementor-field-group .elementor-field-textual:focus,
.inquiry-form.form-variant-light .elementor-field-group input[type=text]:hover,
.inquiry-form.form-variant-light .elementor-field-group input[type=text]:focus,
.inquiry-form.form-variant-light .elementor-field-group input[type=email]:hover,
.inquiry-form.form-variant-light .elementor-field-group input[type=email]:focus,
.inquiry-form.form-variant-light .elementor-field-group input[type=tel]:hover,
.inquiry-form.form-variant-light .elementor-field-group input[type=tel]:focus,
.inquiry-form.form-variant-light .elementor-field-group input[type=password]:hover,
.inquiry-form.form-variant-light .elementor-field-group input[type=password]:focus,
.inquiry-form.form-variant-light .elementor-field-group textarea:hover,
.inquiry-form.form-variant-light .elementor-field-group textarea:focus,
.inquiry-form.form-variant-light .elementor-field-group select:hover,
.inquiry-form.form-variant-light .elementor-field-group select:focus,
.inquiry-form.form-variant-light .elementor-field-textual:hover,
.inquiry-form.form-variant-light .elementor-field-textual:focus,
.inquiry-form.form-variant-light input:hover,
.inquiry-form.form-variant-light input:focus,
.inquiry-form.form-variant-light textarea:hover,
.inquiry-form.form-variant-light textarea:focus,
.inquiry-form.form-variant-light select:hover,
.inquiry-form.form-variant-light select:focus {
  border: none !important;
  background-color: #EEEAE3 !important;
}
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button,
.inquiry-form.form-variant-light button.elementor-button[type=submit] {
  color: #FFFFFF !important;
  background-color: transparent !important;
}
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button::before,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button::before,
.inquiry-form.form-variant-light button.elementor-button[type=submit]::before {
  content: "" !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: -1 !important;
  display: block !important;
  transform: none !important;
  position: absolute !important;
  transition: background-color 0.35s cubic-bezier(0.6, 0, 0.2, 1), transform 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
  background-color: #000000 !important;
}
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button:hover::before, .inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button:focus::before,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button:hover::before,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button:focus::before,
.inquiry-form.form-variant-light button.elementor-button[type=submit]:hover::before,
.inquiry-form.form-variant-light button.elementor-button[type=submit]:focus::before {
  transform: scale(0.95) !important;
  background-color: #000000 !important;
}
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon i,
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon svg,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon i,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon svg,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon i,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon svg {
  color: #E08F35 !important;
  fill: #E08F35 !important;
}
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon i path,
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon i line,
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon i polyline,
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon i rect,
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon i circle,
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon svg path,
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon svg line,
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon svg polyline,
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon svg rect,
.inquiry-form.form-variant-light .elementor-field-type-submit button.elementor-button .elementor-button-icon svg circle,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon i path,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon i line,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon i polyline,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon i rect,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon i circle,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon svg path,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon svg line,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon svg polyline,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon svg rect,
.inquiry-form.form-variant-light .elementor-field-type-submit .elementor-button .elementor-button-icon svg circle,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon i path,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon i line,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon i polyline,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon i rect,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon i circle,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon svg path,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon svg line,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon svg polyline,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon svg rect,
.inquiry-form.form-variant-light button.elementor-button[type=submit] .elementor-button-icon svg circle {
  fill: currentColor !important;
  stroke: currentColor !important;
}
.inquiry-form.form-variant-light .form-privacy-text {
  color: #000000;
}
.inquiry-form.form-variant-light .form-privacy-text a {
  color: #B15933;
}

.elementor-widget-n-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-text {
  color: #5585C2 !important;
}
.elementor-widget-n-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-icon svg path {
  stroke: #5585C2 !important;
}

.capability-cards-container {
  gap: 10px;
  display: flex;
  flex-direction: column;
}
@media (max-width: 575px) {
  .capability-cards-container {
    padding-top: 32px;
    padding-bottom: 64px;
    border-bottom: 1px solid #DBDAD7;
  }
}
.capability-cards-container .capability-card-item {
  padding: 16px 0;
  gap: 24px;
  display: flex;
  align-items: center;
}
@media (max-width: 575px) {
  .capability-cards-container .capability-card-item {
    flex-direction: column;
  }
}
.capability-cards-container .capability-card-item .capability-card-image {
  width: 40%;
}
@media (max-width: 575px) {
  .capability-cards-container .capability-card-item .capability-card-image {
    width: 100%;
  }
}
.capability-cards-container .capability-card-item .capability-card-image img {
  width: 100%;
  height: auto;
}
.capability-cards-container .capability-card-item .capability-card-content {
  width: 60%;
}
@media (max-width: 575px) {
  .capability-cards-container .capability-card-item .capability-card-content {
    width: 100%;
  }
}
.capability-cards-container .capability-card-item .capability-card-content .capability-card-title {
  margin-top: 0;
  margin-bottom: 16px;
  color: #000000;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.02px;
  font-family: "zuume", sans-serif;
}
.capability-cards-container .capability-card-item .capability-card-content .capability-card-desc {
  color: #000000;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  font-family: "nitti-grotesk", sans-serif;
}

.services-we-offer-container {
  margin-bottom: 40px;
}
.services-we-offer-container .services-we-offer-title {
  margin-left: 24px;
  color: #B15933;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.02px;
  text-transform: uppercase;
  font-family: "zuume", sans-serif;
}
.services-we-offer-container .systems-we-serve-title {
  margin-top: 30px !important;
  margin-bottom: 0px !important;
  margin-left: 0px !important;
}
.services-we-offer-container .services-we-offer-list {
  margin: 0;
  padding: 0;
  list-style: none;
  position: relative;
}
.services-we-offer-container .services-we-offer-list:after {
  content: "";
  right: -100%;
  bottom: 0;
  width: 100%;
  height: 1px;
  position: absolute;
  background-color: #DBDAD7;
}
@media (max-width: 575px) {
  .services-we-offer-container .services-we-offer-list:after {
    display: none;
  }
}
.services-we-offer-container .services-we-offer-list .services-we-offer-item {
  margin: 0;
  padding: 20px 24px;
  position: relative;
  border-bottom: 1px solid #DBDAD7;
}
@media (max-width: 575px) {
  .services-we-offer-container .services-we-offer-list .services-we-offer-item {
    padding: 20px 16px;
  }
}
.services-we-offer-container .services-we-offer-list .services-we-offer-item:before {
  content: "";
  top: -0.5px;
  right: -100%;
  width: 100%;
  height: 0.5px;
  position: absolute;
  background-color: #DBDAD7;
}
@media (max-width: 575px) {
  .services-we-offer-container .services-we-offer-list .services-we-offer-item:before {
    display: none;
  }
}
.services-we-offer-container .services-we-offer-list .services-we-offer-item:first-child {
  border-top: 1px solid #DBDAD7;
}
.services-we-offer-container .services-we-offer-list .services-we-offer-item a,
.services-we-offer-container .services-we-offer-list .services-we-offer-item span {
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.375;
  position: relative;
  text-transform: uppercase;
  font-family: "nitti-grotesk", sans-serif;
}
.services-we-offer-container .services-we-offer-list .services-we-offer-item a {
  text-decoration: underline;
  text-decoration-color: #B15933;
  text-decoration-thickness: 2px;
  text-underline-offset: 5px;
}

.position-sticky {
  align-self: start;
}
@media (max-width: 575px) {
  .position-sticky {
    align-self: auto;
    border-top: 1px solid #DBDAD7;
  }
}

/* ==========================================================================
   Capabilities Sticky List
   ========================================================================== */
.smart-sticky-ancestor {
  overflow: visible !important;
  overflow-x: visible !important;
  overflow-y: visible !important;
  clip-path: none !important;
}

.smart-sticky-container {
  overflow: visible !important;
  height: -moz-max-content !important;
  height: max-content !important;
}
.smart-sticky-container .elementor-widget-shortcode {
  margin-top: 0;
}
.smart-sticky-container .services-we-offer-list,
.smart-sticky-container .elementor-shortcode > ul,
.smart-sticky-container .elementor-shortcode > div {
  margin-top: 0;
  margin-bottom: 0;
}
.smart-sticky-container .services-we-offer-list .services-we-offer-item:first-child {
  border-top: none;
}
.smart-sticky-container .services-we-offer-list .services-we-offer-item:first-child::before {
  display: none;
}
.smart-sticky-container.smart-sticky-short {
  top: 0 !important;
  position: sticky !important;
  align-self: flex-start !important;
}
.smart-sticky-container.smart-sticky-long {
  height: -moz-max-content !important;
  height: max-content !important;
  align-self: flex-start !important;
}

.smart-sticky-title-style {
  width: 100% !important;
  height: 62px !important;
  display: flex !important;
  align-items: center !important;
  box-sizing: border-box !important;
  margin-bottom: 0 !important;
  padding-top: 15px !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
  padding-bottom: 15px !important;
  position: relative;
  border-bottom: none;
  background-color: transparent;
}
.smart-sticky-title-style::after {
  content: "";
  top: -10px;
  left: 0;
  right: -100%;
  bottom: 0;
  z-index: -1;
  position: absolute;
  pointer-events: none;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  background-color: var(--smart-sticky-bg, #F9F8F6);
}
.smart-sticky-title-style .elementor-widget-heading,
.smart-sticky-title-style .elementor-widget-container,
.smart-sticky-title-style .elementor-heading-title {
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.smart-sticky-title-stick {
  top: 78px !important;
  z-index: 10 !important;
  position: sticky !important;
  align-self: stretch !important;
}
.admin-bar .smart-sticky-title-stick {
  top: 110px !important;
}

.market-cards-container {
  width: 100%;
  gap: 30px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 768px) {
  .market-cards-container {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 575px) {
  .market-cards-container {
    grid-template-columns: 1fr;
  }
}
.market-cards-container .market-card-item {
  padding: 40px 32px;
  border-top-width: 20px;
  border-top-style: solid;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
  background-color: #FFFFFF;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
@media (max-width: 575px) {
  .market-cards-container .market-card-item {
    height: auto;
  }
}
.market-cards-container .market-card-item:nth-child(3n+1) {
  border-top-color: #B15933;
}
.market-cards-container .market-card-item:nth-child(3n+2) {
  border-top-color: #0D3E70;
}
.market-cards-container .market-card-item:nth-child(3n) {
  border-top-color: #E08F35;
}
.market-cards-container .market-card-item .market-card-content {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.market-cards-container .market-card-item .market-card-content .market-card-title {
  margin: 0;
  margin-bottom: 64px;
  color: #000000;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.02px;
  text-transform: uppercase;
  font-family: "zuume", sans-serif;
}
@media (max-width: 575px) {
  .market-cards-container .market-card-item .market-card-content .market-card-title {
    margin-bottom: 24px;
  }
}
.market-cards-container .market-card-item .market-card-content .market-card-desc {
  margin: 0;
  color: #000000;
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.2;
  font-family: "nitti-grotesk", sans-serif;
}

.post-body-content h2 {
  margin-top: 2.5rem;
  margin-bottom: 1.5rem;
  color: #000000;
  font-size: 32px;
  line-height: 1.1 !important;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  font-family: "nitti-grotesk", sans-serif;
}
@media (max-width: 575px) {
  .post-body-content h2 {
    font-size: 22px;
    line-height: 26px !important;
  }
}
.post-body-content h3 {
  margin-top: 2rem;
  margin-bottom: 1rem;
  color: #000000;
  font-size: 22px;
  line-height: 26px !important;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content h4 {
  margin-top: 1.5rem;
  margin-bottom: 0.8rem;
  color: #000000;
  font-size: 18px;
  line-height: 22px !important;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content h5 {
  margin-top: 1.25rem;
  margin-bottom: 0.6rem;
  color: #000000;
  font-size: 16px;
  line-height: 20px !important;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content h6 {
  margin-top: 1rem;
  margin-bottom: 0.5rem;
  color: #000000;
  font-size: 14px;
  line-height: 18px !important;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content p {
  margin-bottom: 1.5rem;
  color: #000000;
  font-size: 16px;
  line-height: 20px;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content a {
  color: #0D3E70;
  text-decoration: underline;
}
.post-body-content a:hover {
  color: #5585C2;
}
.post-body-content ol {
  margin: 1.5rem 0;
  padding-left: 0;
  list-style: none;
  counter-reset: post-ol-counter;
}
.post-body-content ol li {
  counter-increment: post-ol-counter;
  margin-bottom: 12px;
  padding-left: 42px;
  color: #000000;
  font-size: 16px;
  line-height: 20px;
  position: relative;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content ol li::before {
  content: counter(post-ol-counter, decimal-leading-zero) ".";
  left: 0;
  top: -3px;
  width: 30px;
  color: #B15933;
  font-size: 22px;
  font-weight: 700;
  line-height: 26px;
  position: absolute;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content ol li strong:first-child,
.post-body-content ol li b:first-child {
  margin-bottom: 0.4rem;
  color: #000000;
  font-size: 1.15rem;
  display: block;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content ul {
  list-style: none;
  padding-left: 0;
  margin: 1.5rem 0;
}
.post-body-content ul li {
  margin-bottom: 12px;
  padding-left: 16px;
  color: #000000;
  font-size: 16px;
  line-height: 20px;
  position: relative;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content ul li::before {
  content: "";
  left: 0;
  top: 7px;
  width: 6px;
  height: 6px;
  position: absolute;
  border-radius: 50%;
  background-color: #B15933;
}
.post-body-content ul li strong,
.post-body-content ul li b {
  font-weight: 700;
}
.post-body-content ul.list-checkmark {
  list-style: none;
  margin: 1.5rem 0;
  padding-left: 0;
}
.post-body-content ul.list-checkmark li {
  margin-bottom: 12px;
  padding-left: 30px;
  color: #000000;
  font-size: 16px;
  line-height: 20px;
  position: relative;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content ul.list-checkmark li::before {
  content: "";
  top: 0;
  left: 0;
  width: 20px;
  height: 20px;
  border-radius: 0;
  position: absolute;
  background-color: transparent;
  background-image: url("../../assets/images/icons/check.svg");
  background-repeat: no-repeat;
  background-size: contain;
}
.post-body-content ul.list-checkmark li strong,
.post-body-content ul.list-checkmark li b {
  font-weight: 700;
}
.post-body-content .post-mark-checkmark {
  width: 20px;
  height: 20px;
  margin-right: 10px;
  display: inline-block;
  overflow: hidden;
  position: relative;
  text-indent: -9999px;
  vertical-align: middle;
}
.post-body-content .post-mark-checkmark::after {
  content: "";
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  position: absolute;
  background-image: url("../../assets/images/icons/check.svg");
  background-repeat: no-repeat;
  background-size: contain;
}
.post-body-content blockquote {
  margin: 48px 0;
  padding-left: 65px;
  border: none;
  position: relative;
}
.post-body-content blockquote::before {
  content: "";
  top: 6px;
  left: 0;
  width: 41px;
  height: 36px;
  position: absolute;
  background-image: url("../../assets/images/icons/blockquote.svg");
  background-repeat: no-repeat;
  background-size: contain;
}
.post-body-content blockquote p:first-of-type {
  margin-bottom: 24px;
  color: #000000;
  font-size: 32px;
  line-height: 35px;
  font-weight: 400;
  font-family: "nitti-grotesk", sans-serif;
}
.post-body-content blockquote p:last-of-type {
  margin-bottom: 0;
  color: #000000;
  font-size: 18px;
  line-height: 14px;
  font-weight: 700;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  font-family: "nitti-grotesk", sans-serif;
}
@media (max-width: 767px) {
  .post-body-content blockquote {
    padding-left: 54px;
  }
  .post-body-content blockquote::before {
    width: 36px;
    height: 32px;
    top: 4px;
  }
  .post-body-content blockquote p:first-of-type {
    font-size: 32px;
    line-height: 35px;
  }
  .post-body-content blockquote p:last-of-type {
    font-size: 18px;
    line-height: 14px;
  }
}
.post-body-content.post-body-content-white {
  color: #FFFFFF;
}
.post-body-content.post-body-content-white h2,
.post-body-content.post-body-content-white h3,
.post-body-content.post-body-content-white h4,
.post-body-content.post-body-content-white h5,
.post-body-content.post-body-content-white h6,
.post-body-content.post-body-content-white p,
.post-body-content.post-body-content-white li,
.post-body-content.post-body-content-white strong,
.post-body-content.post-body-content-white b {
  color: #FFFFFF;
}
.post-body-content.post-body-content-white ol li::before {
  color: #E08F35;
}
.post-body-content.post-body-content-white ul li::before {
  background-color: #E08F35;
}

body.single-case-study .position-sticky .post-body-content ul {
  margin: 0;
}

.corvant-custom-map-wrapper {
  width: 100%;
  height: 250px;
  overflow: hidden;
  position: relative;
  background-color: #EEEAE3;
}
.corvant-custom-map-wrapper .corvant-map-overlay-link {
  top: 15px;
  left: 15px;
  z-index: 10;
  padding: 8px 12px;
  color: #5585C2;
  font-size: 0.875rem;
  font-weight: 500;
  align-items: center;
  position: absolute;
  transition: all 0.2s ease;
  text-decoration: none;
  border-radius: 4px;
  border: 1px solid #5585C2;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
  background: #FFFFFF;
  font-family: "nitti-grotesk", sans-serif;
  gap: 6px;
  display: inline-flex;
}
.corvant-custom-map-wrapper .corvant-map-overlay-link svg {
  stroke: #5585C2;
  transition: all 0.2s ease;
}
.corvant-custom-map-wrapper .corvant-map-overlay-link:hover {
  color: #0D3E70;
  border-color: #0D3E70;
  background: #FBF8F3;
}
.corvant-custom-map-wrapper .corvant-map-overlay-link:hover svg {
  stroke: #0D3E70;
}
.corvant-custom-map-wrapper .corvant-custom-map {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  position: absolute;
}

/* =======================================================
   A. ESTILOS DEL CONTENEDOR PADRE DEL CARRUSEL
======================================================= */
@media (min-width: 1367px) {
  .detail-carousel-section {
    padding-left: calc((100vw - 1330px) / 2) !important;
    padding-right: 0px !important;
  }
}
@media (max-width: 1366px) and (min-width: 1280px) {
  .detail-carousel-section {
    padding-left: 60px !important;
    padding-right: 0px !important;
  }
}
@media (max-width: 1279px) and (min-width: 768px) {
  .detail-carousel-section {
    padding-left: 30px !important;
    padding-right: 0px !important;
  }
}
@media (max-width: 767px) {
  .detail-carousel-section {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}
/* Si el contenedor no tiene el carrusel adentro, se oculta automáticamente */
.detail-carousel-section:not(:has(.elementor-widget-image-carousel)) {
  display: none !important;
}

/* =======================================================
   B. ESTILOS DEL WIDGET CARRUSEL (FLECHAS Y SCROLL)
======================================================= */
.detail-carousel .elementor-swiper-button {
  top: auto !important;
  bottom: -70px !important;
  width: 46px !important;
  height: 44px !important;
  border-radius: 0 !important;
  opacity: 1 !important;
  transform: none !important;
  position: absolute !important;
  background-color: #000000 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.detail-carousel .elementor-swiper-button svg path {
  stroke: #ffffff !important;
}

.detail-carousel .elementor-swiper-button-prev {
  left: 0 !important;
}

.detail-carousel .elementor-swiper-button-next {
  left: 56px !important;
  right: auto !important;
}

.detail-carousel .elementor-swiper-button.swiper-button-disabled {
  cursor: not-allowed !important;
  background-color: #B7B5B0 !important;
}

/* =======================================================
   C. WIDGET CARRUSEL: COMPUTADORA (ANIMACIÓN PREMIUM)
======================================================= */
@media (min-width: 1025px) {
  .detail-carousel .elementor-widget-container,
  .detail-carousel .elementor-image-carousel-wrapper.swiper {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    clip-path: inset(-50px 0px -150px 0px) !important;
  }
  .detail-carousel .swiper-slide {
    height: 409px !important;
    position: relative !important;
  }
  .detail-carousel figure.swiper-slide-inner {
    max-width: none !important;
    position: absolute !important;
    transition: all 0.5s ease !important;
  }
  .detail-carousel figure.swiper-slide-inner img {
    width: 100% !important;
    height: 409px !important;
    -o-object-fit: cover !important;
       object-fit: cover !important;
  }
  /* Máquina de Estados (Transiciones Suaves) */
  .detail-carousel .swiper-slide-prev figure.swiper-slide-inner {
    left: 0 !important;
    width: 76.95% !important;
    opacity: 0 !important;
  }
  .detail-carousel .swiper-slide-active figure.swiper-slide-inner {
    left: 0 !important;
    width: 76.95% !important;
    opacity: 1 !important;
  }
  .detail-carousel .swiper-slide-next figure.swiper-slide-inner {
    left: -17.28% !important;
    width: 134.5% !important;
    z-index: 10;
    opacity: 1 !important;
  }
  .detail-carousel .swiper-slide-next + .swiper-slide figure.swiper-slide-inner {
    left: 22.96% !important;
    width: 76.95% !important;
    opacity: 1 !important;
  }
  .detail-carousel .swiper-slide-next + .swiper-slide ~ .swiper-slide figure.swiper-slide-inner {
    left: 22.96% !important;
    width: 76.95% !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
}
/* =======================================================
   D. WIDGET CARRUSEL: MÓVIL Y TABLET (PEEKING SLIDE)
======================================================= */
@media (max-width: 1024px) {
  .detail-carousel .elementor-widget-container {
    overflow: visible !important;
  }
  .detail-carousel .elementor-image-carousel-wrapper.swiper {
    width: 100% !important;
    overflow: visible !important;
    padding-right: 15% !important;
    clip-path: none !important;
    box-sizing: border-box !important;
  }
  .detail-carousel .swiper-slide {
    height: 320px !important;
    padding-right: 15px !important;
    box-sizing: border-box !important;
  }
  .detail-carousel .swiper-slide img {
    width: 100% !important;
    height: 320px !important;
    -o-object-fit: cover !important;
       object-fit: cover !important;
  }
}
/* =======================================================
   RELATED PROJECTS SECTION STYLES
======================================================= */
/* 1. Main container alignment and paddings */
@media (min-width: 1367px) {
  .related-projects-section {
    padding-left: calc((100vw - 1330px) / 2) !important;
    padding-right: 0px !important;
  }
}
@media (max-width: 1366px) and (min-width: 1280px) {
  .related-projects-section {
    padding-left: 60px !important;
    padding-right: 0px !important;
  }
}
@media (max-width: 1279px) and (min-width: 768px) {
  .related-projects-section {
    padding-left: 30px !important;
    padding-right: 0px !important;
  }
}
@media (max-width: 767px) {
  .related-projects-section {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}
/* Hide section if empty */
.related-projects-section:not(:has(.elementor-widget-loop-carousel)) {
  display: none !important;
}

/* 2. Slider navigation arrow styles */
.related-projects-carousel .elementor-swiper-button {
  top: auto !important;
  bottom: -70px !important;
  width: 46px !important;
  height: 44px !important;
  opacity: 1 !important;
  transform: none !important;
  border-radius: 0 !important;
  position: absolute !important;
  background-color: #000000 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.related-projects-carousel .elementor-swiper-button svg path {
  stroke: #FFFFFF !important;
}

.related-projects-carousel .elementor-swiper-button-prev {
  left: 0 !important;
}

.related-projects-carousel .elementor-swiper-button-next {
  left: 56px !important;
  right: auto !important;
}

.related-projects-carousel .elementor-swiper-button.swiper-button-disabled {
  cursor: not-allowed !important;
  background-color: #B7B5B0 !important;
}

/* 3. Support for single-slide items */
.related-projects-section:has(div.swiper-slide:only-of-type) .elementor-swiper-button {
  display: none !important;
}

.related-projects-carousel div.swiper-slide:only-of-type {
  max-width: 1320px !important;
}

/* =======================================================
   WIDGET LOGO MARQUEE (GALERÍA BÁSICA INFINITA)
======================================================= */
.custom-leaders-carousel {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  overflow: hidden !important;
  mix-blend-mode: multiply;
  filter: grayscale(100%) contrast(130%) brightness(80%);
}
.custom-leaders-carousel .gallery {
  display: flex !important;
  flex-wrap: nowrap !important;
  width: -moz-max-content !important;
  width: max-content !important;
  align-items: center;
  gap: 0 !important;
  will-change: transform;
}
.custom-leaders-carousel .gallery.marquee-ready {
  animation: slider-logos 45s linear infinite;
}
.custom-leaders-carousel .gallery .gallery-item {
  width: 180px !important;
  max-width: 180px !important;
  flex: 0 0 180px !important;
  height: 120px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}
@media (max-width: 767px) {
  .custom-leaders-carousel .gallery .gallery-item {
    width: 120px !important;
    max-width: 120px !important;
    flex: 0 0 120px !important;
    height: 90px !important;
  }
}
.custom-leaders-carousel .gallery-icon {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  height: 100% !important;
}
.custom-leaders-carousel .gallery-item img {
  width: 100px !important;
  height: auto !important;
  max-height: 100% !important;
  -o-object-fit: contain !important;
     object-fit: contain !important;
  border: none !important;
}
@media (max-width: 767px) {
  .custom-leaders-carousel .gallery-item img {
    width: 80px !important;
  }
}

@keyframes slider-logos {
  from {
    transform: translate3d(0, 0, 0);
  }
  to {
    transform: translate3d(-33.333%, 0, 0);
  }
}
.corvant-breadcrumbs {
  margin-bottom: 2px;
}
.corvant-breadcrumbs .corvant-breadcrumbs-list {
  margin: 0;
  padding: 0;
  list-style: none;
  gap: 8px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.corvant-breadcrumbs .corvant-breadcrumbs-item {
  color: #0A2842;
  font-size: 1rem;
  font-weight: 500;
}
.corvant-breadcrumbs .corvant-breadcrumbs-item a {
  color: #0A2842;
  text-decoration: none;
  transition: color 0.3s ease;
}
.corvant-breadcrumbs .corvant-breadcrumbs-item a:hover {
  color: #B15933;
}
.corvant-breadcrumbs .corvant-breadcrumbs-item.is-active .corvant-breadcrumbs-current {
  padding-bottom: 2px;
  color: #0A2842;
  border-bottom: 2px solid #B15933;
}
.corvant-breadcrumbs .corvant-breadcrumbs-separator {
  margin: 0 2.5px;
  color: #0A2842;
  font-size: 1rem;
  font-weight: 500;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

/* =======================================================
   WIDGET: CORVANT TESTIMONIALS
   Replaces the hand-built Nested Carousel on Apprenticeship and Careers.
   Values mirror the original design of both pages.
======================================================= */
.corvant-testimonials {
  position: relative;
}
.corvant-testimonials__swiper {
  width: 100%;
}
.corvant-testimonials .swiper-slide {
  height: auto;
}
.corvant-testimonials__nav {
  position: absolute;
  inset: 0;
  /* Swiper sets z-index 1 on its own container: without this the
     arrows are painted underneath the slide. */
  z-index: 2;
  pointer-events: none;
}
.corvant-testimonials__arrow {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 45px;
  height: 45px;
  padding: 0;
  border: 0;
  border-radius: 0;
  cursor: pointer;
  pointer-events: auto;
  transition: opacity 0.2s ease;
}
.corvant-testimonials__arrow svg {
  width: 24px;
  height: 24px;
  padding: 0 !important;
}
.corvant-testimonials__arrow.swiper-button-disabled {
  opacity: 0.4;
  cursor: default;
}
.corvant-testimonials {
  /* Notice shown inside the Elementor editor only. */
}
.corvant-testimonials--empty {
  padding: 24px;
  border: 1px dashed #B7B5B0;
  color: #B7B5B0;
  font-family: "nitti-grotesk", sans-serif;
  text-align: center;
}

.corvant-testimonial {
  height: 100%;
  background-repeat: no-repeat;
  background-position: center right;
  background-size: contain;
}
.corvant-testimonial__inner {
  display: flex;
  flex-direction: column;
}
.corvant-testimonial__content {
  display: flex;
}
.corvant-testimonial__icon {
  /* No forced size: the original markup let each SVG render at its own
     intrinsic size (64x57 amber, 52x45 plain). Elementor never resizes
     SVG files, so the image_custom_dimension setting was never applied.
     flex-shrink/align-self keep the icon at that size inside a flex
     column, where `stretch` would otherwise blow it up to full width. */
  display: block;
  flex: 0 0 auto;
  align-self: flex-start;
  max-width: 100%;
  height: auto;
}
.corvant-testimonial__quote {
  margin: 0;
  font-family: "nitti-grotesk", sans-serif;
  /* Honour the line breaks typed in the panel without adding <br>. */
  white-space: pre-line;
}
.corvant-testimonial__role {
  /* Elementor gave these text widgets the kit widget spacing; keeping it
     preserves the original block height, which the section background
     relies on because it is sized with `contain`. */
  margin: 0 0 var(--kit-widget-spacing, 20px);
  font-family: "nitti-grotesk", sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 14px;
  text-transform: uppercase;
}

/* -------------------------------------------------------
   "boxed" variant: dark blue card (Apprenticeship)
------------------------------------------------------- */
.corvant-testimonials--boxed .corvant-testimonial {
  display: flex;
  justify-content: center;
  background-color: #0A2842;
}
.corvant-testimonials--boxed .corvant-testimonial__inner {
  width: 100%;
  max-width: 1140px;
  padding: 64px 0;
  gap: 48px;
}
.corvant-testimonials--boxed .corvant-testimonial__content {
  flex-direction: column;
  align-items: flex-start;
  gap: 40px;
  padding-right: 88px;
}
.corvant-testimonials--boxed .corvant-testimonial__quote {
  margin-bottom: var(--kit-widget-spacing, 20px);
  font-size: 48px;
  line-height: 48px;
  color: #FFFFFF;
}
.corvant-testimonials--boxed .corvant-testimonial__role {
  color: #FFFFFF;
}
.corvant-testimonials--boxed .corvant-testimonials__arrow {
  bottom: 64px;
  background-color: #FFFFFF;
  color: #0D3E70;
}
.corvant-testimonials--boxed .corvant-testimonials__arrow--prev {
  right: 120px;
}
.corvant-testimonials--boxed .corvant-testimonials__arrow--next {
  right: 64px;
}
@media (max-width: 1024px) {
  .corvant-testimonials--boxed .corvant-testimonial__inner {
    max-width: 1024px;
    padding: 64px;
  }
  .corvant-testimonials--boxed .corvant-testimonial__quote {
    font-size: 34px;
    line-height: 34px;
  }
}
@media (max-width: 767px) {
  .corvant-testimonials--boxed .corvant-testimonial {
    background-position: bottom left;
    background-size: auto;
  }
  .corvant-testimonials--boxed .corvant-testimonial__inner {
    max-width: 767px;
    padding: 48px 24px 130px;
  }
  .corvant-testimonials--boxed .corvant-testimonial__content {
    padding-right: 0;
  }
  .corvant-testimonials--boxed .corvant-testimonials__arrow {
    bottom: 33px;
  }
  .corvant-testimonials--boxed .corvant-testimonials__arrow--prev {
    right: 80px;
  }
  .corvant-testimonials--boxed .corvant-testimonials__arrow--next {
    right: 24px;
  }
}

/* -------------------------------------------------------
   "plain" variant: text over the section background (Careers)
------------------------------------------------------- */
.corvant-testimonials--plain .corvant-testimonial__inner {
  gap: 64px;
}
.corvant-testimonials--plain .corvant-testimonial__content {
  position: relative;
}
.corvant-testimonials--plain .corvant-testimonial__icon {
  position: absolute;
  top: 0;
  left: 0;
}
.corvant-testimonials--plain .corvant-testimonial__quote {
  padding: 0 120px 0 75px;
  font-size: 48px;
  line-height: 48px;
  color: #000000;
}
.corvant-testimonials--plain .corvant-testimonial__role {
  padding-left: 75px;
}
.corvant-testimonials--plain .corvant-testimonials__arrow {
  bottom: -60px;
  background-color: #000000;
  color: #FFFFFF;
}
.corvant-testimonials--plain .corvant-testimonials__arrow--prev {
  right: 55px;
}
.corvant-testimonials--plain .corvant-testimonials__arrow--next {
  right: 0;
}
@media (max-width: 1024px) {
  .corvant-testimonials--plain .corvant-testimonial__inner {
    gap: 40px;
  }
  .corvant-testimonials--plain .corvant-testimonial__quote {
    padding: 0 0 0 75px;
    font-size: 32px;
    line-height: 35px;
  }
}
@media (max-width: 767px) {
  .corvant-testimonials--plain .corvant-testimonial__content {
    flex-direction: column;
    gap: 24px;
  }
  .corvant-testimonials--plain .corvant-testimonial__icon {
    position: relative;
  }
  .corvant-testimonials--plain .corvant-testimonial__quote {
    padding: 0;
  }
  .corvant-testimonials--plain .corvant-testimonial__role {
    padding-left: 0;
  }
  .corvant-testimonials--plain .corvant-testimonials__arrow {
    bottom: -90px;
  }
}

.home-page .elementor-loop-container.elementor-grid {
  display: block !important;
  -moz-column-count: 3 !important;
       column-count: 3 !important;
  -moz-column-gap: 30px !important;
       column-gap: 30px !important;
}
.home-page .elementor-loop-container.elementor-grid .e-loop-item {
  width: 100%;
  margin-bottom: 25px;
  -moz-column-break-inside: avoid;
       break-inside: avoid;
  display: inline-block;
  page-break-inside: avoid;
}

/*# sourceMappingURL=data:application/json;base64,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O0FBQ3BCO0FBQ0E7RUFDRSxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87QUFDVDtBQUNBO0VBQ0UsdUJBQXVCO0VBQ3ZCLGVBQWU7RUFDZixpQkFBaUI7RUFDakIsY0FBYztBQUNoQjtBQUNBO0VBQ0Usa0JBQWtCO0FBQ3BCO0FBQ0E7RUFDRSxhQUFhO0VBQ2IseUJBQXlCO0VBQ3pCLGNBQWM7QUFDaEI7QUFDQTtFQUNFLFdBQVc7QUFDYjtBQUNBO0VBQ0UsUUFBUTtBQUNWO0FBQ0E7RUFDRTtJQUNFLFNBQVM7RUFDWDtFQUNBO0lBQ0UsbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixpQkFBaUI7RUFDbkI7QUFDRjtBQUNBO0VBQ0U7SUFDRSxzQkFBc0I7SUFDdEIsU0FBUztFQUNYO0VBQ0E7SUFDRSxrQkFBa0I7RUFDcEI7RUFDQTtJQUNFLFVBQVU7RUFDWjtFQUNBO0lBQ0UsZUFBZTtFQUNqQjtFQUNBO0lBQ0UsYUFBYTtFQUNmO0FBQ0Y7O0FBRUE7RUFDRSx5QkFBeUI7RUFDekIsK0JBQTBCO09BQTFCLDBCQUEwQjtFQUMxQixnQ0FBMkI7T0FBM0IsMkJBQTJCO0FBQzdCO0FBQ0E7RUFDRSxXQUFXO0VBQ1gsbUJBQW1CO0VBQ25CLCtCQUFtQjtPQUFuQixtQkFBbUI7RUFDbkIscUJBQXFCO0VBQ3JCLHdCQUF3QjtBQUMxQiIsImZpbGUiOiJtYWluLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qKlxuICogTWFzdGVyIEljb24gTWl4aW5cbiAqIENyZWF0ZXMgYSBjb2xvcmFibGUgaWNvbiB1c2luZyBtYXNrcy5cbiAqIFVzYWdlOiBAaW5jbHVkZSBpY29uKCdBcnJvd19MYXJnZV9SaWdodCcsICRjb3BwZXIsIDI0cHgpO1xuICovXG4vKipcbiAqIENsZWFyZml4XG4gKiBTdGFuZGFyZCB1dGlsaXR5IGZvciByZXNvbHZpbmcgZmxvYXRpbmcgcGFyZW50IGNvbnRhaW5lciBoZWlnaHRzLlxuICovXG4vKipcbiAqIEZvbnRzIHJlZ2lzdHJ5XG4gKiBBZG9iZSBUeXBla2l0IGZvbnRzIGFyZSBlbnF1ZXVlZCB2aWEgZnVuY3Rpb25zLnBocFxuICogT25seSB1c2UgdGhpcyBmaWxlIGZvciBtYW51YWxseSBhZGRlZCBsb2NhbCBmb250cyAoLndvZmYyKVxuICovXG4vKlxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnTG9jYWxGb250JztcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL2xvY2FsLWZvbnQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xufVxuKi9cbi8qKlxuICogR2xvYmFsIFJlc2V0ICYgTm9ybWFsaXphdGlvblxuICogU2V0cyB0aGUgYmFzZSBib3gtc2l6aW5nIGFuZCBpbWFnZSByZXNwb25zaXZlbmVzcyBydWxlcy5cbiAqL1xuaHRtbCxcbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG92ZXJmbG93LXg6IGNsaXA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbn1cblxuLyoqXG4gKiBVbml2ZXJzYWwgQm94IFNpemluZ1xuICogRW5zdXJlcyBhbGwgZWxlbWVudHMgaW5oZXJpdCB0aGUgYm94LXNpemluZyBydWxlIGZyb20gdGhlIEhUTUwgcm9vdC5cbiAqL1xuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuLyoqXG4gKiBNZWRpYSBGbHVpZGl0eVxuICogRW5zdXJlcyBpbWFnZXMgYW5kIG90aGVyIG1lZGlhIGVsZW1lbnRzIGRvIG5vdCBvdmVyZmxvdyB0aGVpciBjb250YWluZXJzLlxuICovXG5pbWcge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbn1cblxucCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLyoqXG4gKiBDb3J2YW50IFR5cG9ncmFwaHkgU3lzdGVtXG4gKiBDb25maWd1cmVzIGdsb2JhbCB0ZXh0IHNjYWxpbmcsIGhlYWRpbmcgcmVzZXRzLCBhbmQgdXRpbGl0eSBjbGFzc2VzLlxuICovXG4vKipcbiAqIEJhc2UgQm9keSBUeXBvZ3JhcGh5XG4gKiBTdGFuZGFyZCBmb250IGZhbWlseSwgc2l6ZSwgYW5kIG5vcm1hbGl6YXRpb24gZm9yIHRoZSBkb2N1bWVudCBib2R5LlxuICovXG5ib2R5IHtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICBmb250LWZhbWlseTogXCJuaXR0aS1ncm90ZXNrXCIsIHNhbnMtc2VyaWY7XG59XG5cbmEge1xuICBjb2xvcjogIzAwMDAwMDtcbn1cbmE6aG92ZXIgLmVsZW1lbnRvci1pY29uLWxpc3QtdGV4dCB7XG4gIGNvbG9yOiAjQjE1OTMzICFpbXBvcnRhbnQ7XG59XG5cbi8qKlxuICogVW5pdmVyc2FsIEhlYWRpbmcgUmVzZXRcbiAqIFN0YW5kYXJkaXplcyBicmFuZGVkIHR5cG9ncmFwaHkgZm9yIGFsbCBoZWFkaW5nIGxldmVscyBhbmQgdXRpbGl0eSBjbGFzc2VzLlxuICovXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYsXG4uaDEsXG4uaDIsXG4uaDMsXG4uaDQsXG4uaDUsXG4uaDYsXG4uaDcsXG4uaDgsXG4uZGlzcGxheS0xLFxuLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlIHtcbiAgY29sb3I6ICMwQTI4NDI7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtZmFtaWx5OiBcInp1dW1lXCIsIHNhbnMtc2VyaWY7XG59XG5cbi8qKlxuICogRGVza3RvcCBTY2FsZVxuICogSGlnaC1maWRlbGl0eSB0eXBvZ3JhcGh5IHNjYWxpbmcgZm9yIGxhcmdlIHNjcmVlbnMuXG4gKi9cbi5kaXNwbGF5LTEsIC5kaXNwbGF5LTEgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxMzJweDtcbiAgbGluZS1oZWlnaHQ6IDEgIWltcG9ydGFudDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbn1cblxuaDEsIGgxIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSxcbi5oMSxcbi5oMSAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUsXG4uZWxlbWVudG9yLXNpemUteGwsXG4uZWxlbWVudG9yLXNpemUteGwgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxMjBweDtcbiAgbGluZS1oZWlnaHQ6IDAuOSAhaW1wb3J0YW50O1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xufVxuXG5oMiwgaDIgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlLFxuLmgyLFxuLmgyIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSxcbi5lbGVtZW50b3Itc2l6ZS1sYXJnZSxcbi5lbGVtZW50b3Itc2l6ZS1sYXJnZSAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUge1xuICBmb250LXNpemU6IDk2cHg7XG4gIGxpbmUtaGVpZ2h0OiAwLjkgIWltcG9ydGFudDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbn1cblxuaDMsIGgzIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSxcbi5oMyxcbi5oMyAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUge1xuICBmb250LXNpemU6IDg4cHg7XG4gIGxpbmUtaGVpZ2h0OiAwLjg3NSAhaW1wb3J0YW50O1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xufVxuXG5oNCwgaDQgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlLFxuLmg0LFxuLmg0IC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSB7XG4gIGZvbnQtc2l6ZTogNzZweDtcbiAgbGluZS1oZWlnaHQ6IDAuODk0NyAhaW1wb3J0YW50O1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xufVxuXG5oNSwgaDUgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlLFxuLmg1LFxuLmg1IC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSxcbi5lbGVtZW50b3Itc2l6ZS1tZWRpdW0sXG4uZWxlbWVudG9yLXNpemUtbWVkaXVtIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSB7XG4gIGZvbnQtc2l6ZTogNjRweDtcbiAgbGluZS1oZWlnaHQ6IDEgIWltcG9ydGFudDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbn1cblxuaDYsIGg2IC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSxcbi5oNixcbi5oNiAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUsXG4uZWxlbWVudG9yLXNpemUtc21hbGwsXG4uZWxlbWVudG9yLXNpemUtc21hbGwgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlIHtcbiAgZm9udC1zaXplOiA0OHB4O1xuICBsaW5lLWhlaWdodDogMSAhaW1wb3J0YW50O1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4uaDcsIC5oNyAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUge1xuICBmb250LXNpemU6IDQ4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxICFpbXBvcnRhbnQ7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5oOCwgLmg4IC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSB7XG4gIGZvbnQtc2l6ZTogMzJweDtcbiAgbGluZS1oZWlnaHQ6IDEuMSAhaW1wb3J0YW50O1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLnN1YmhlYWQtbCwgLnN1YmhlYWQtbCAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUge1xuICBmb250LXNpemU6IDMycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LWZhbWlseTogXCJuaXR0aS1ncm90ZXNrXCIsIHNhbnMtc2VyaWY7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIE1vYmlsZSBTY2FsZVxuICogT3B0aW1pemVkIHR5cG9ncmFwaHkgYWRqdXN0bWVudHMgZm9yIHNtYWxsIHNjcmVlbnMgKDc2OHB4IGFuZCBiZWxvdykuXG4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuZGlzcGxheS0xLCAuZGlzcGxheS0xIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSB7XG4gICAgZm9udC1zaXplOiA3NnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICB9XG4gIGgxLCBoMSAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUsXG4gIC5oMSxcbiAgLmgxIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSxcbiAgLmVsZW1lbnRvci1zaXplLXhsLFxuICAuZWxlbWVudG9yLXNpemUteGwgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDY0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgfVxuICBoMiwgaDIgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlLFxuICAuaDIsXG4gIC5oMiAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUsXG4gIC5lbGVtZW50b3Itc2l6ZS1sYXJnZSxcbiAgLmVsZW1lbnRvci1zaXplLWxhcmdlIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSB7XG4gICAgZm9udC1zaXplOiA0OHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gIH1cbiAgaDMsIGgzIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSxcbiAgLmgzLFxuICAuaDMgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICB9XG4gIGg0LCBoNCAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUsXG4gIC5oNCxcbiAgLmg0IC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSB7XG4gICAgZm9udC1zaXplOiAzMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgfVxuICBoNSwgaDUgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlLFxuICAuaDUsXG4gIC5oNSAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUsXG4gIC5lbGVtZW50b3Itc2l6ZS1tZWRpdW0sXG4gIC5lbGVtZW50b3Itc2l6ZS1tZWRpdW0gLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDMycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgfVxuICBoNiwgaDYgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlLFxuICAuaDYsXG4gIC5oNiAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUsXG4gIC5lbGVtZW50b3Itc2l6ZS1zbWFsbCxcbiAgLmVsZW1lbnRvci1zaXplLXNtYWxsIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSB7XG4gICAgZm9udC1zaXplOiAzMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDNlbTtcbiAgfVxuICAuaDcsIC5oNyAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICB9XG4gIC5oOCwgLmg4IC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSxcbiAgLnN1YmhlYWQtbCxcbiAgLnN1YmhlYWQtbCAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICB9XG4gIC5ib2R5LWwsIC5ib2R5LWwgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlLCAuYm9keS1sIHAsIC5ib2R5LWwgc3BhbiB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICB9XG4gIC5ib2R5LW0sIC5ib2R5LW0gLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlLCAuYm9keS1tIHAsIC5ib2R5LW0gc3BhbiB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICB9XG59XG4vKipcbiAqIFRleHQgVXRpbGl0eSBDbGFzc2VzXG4gKiBTdGFuZGFyZCBib2R5IHRleHQgdmFyaWF0aW9ucyBmb3IgZGlmZmVyZW50IGNvbnRlbnQgbmVlZHMuXG4gKiBUYXJnZXQgYm90aCB0aGUgY2xhc3MgYW5kIGludGVybmFsIEVsZW1lbnRvciBoZWFkaW5nIHRhZ3MgZm9yIGluaGVyaXRhbmNlLlxuICovXG4uYm9keS1sLCAuYm9keS1sIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSwgLmJvZHktbCBoMSwgLmJvZHktbCBoMiwgLmJvZHktbCBoMywgLmJvZHktbCBoNCwgLmJvZHktbCBoNSwgLmJvZHktbCBoNiwgLmJvZHktbCBwLCAuYm9keS1sIHNwYW4ge1xuICBmb250LXNpemU6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4uYm9keS1tLCAuYm9keS1tIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSwgLmJvZHktbSBoMSwgLmJvZHktbSBoMiwgLmJvZHktbSBoMywgLmJvZHktbSBoNCwgLmJvZHktbSBoNSwgLmJvZHktbSBoNiwgLmJvZHktbSBwLCAuYm9keS1tIHNwYW4ge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4uYm9keS1zLCAuYm9keS1zIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSwgLmJvZHktcyBoMSwgLmJvZHktcyBoMiwgLmJvZHktcyBoMywgLmJvZHktcyBoNCwgLmJvZHktcyBoNSwgLmJvZHktcyBoNiwgLmJvZHktcyBwLCAuYm9keS1zIHNwYW4ge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4uYm9keS14cywgLmJvZHkteHMgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlLCAuYm9keS14cyBoMSwgLmJvZHkteHMgaDIsIC5ib2R5LXhzIGgzLCAuYm9keS14cyBoNCwgLmJvZHkteHMgaDUsIC5ib2R5LXhzIGg2LCAuYm9keS14cyBwLCAuYm9keS14cyBzcGFuIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMS4yO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLmNhcHRpb24sIC5jYXB0aW9uIC5lbGVtZW50b3ItaGVhZGluZy10aXRsZSwgLmNhcHRpb24gcCwgLmNhcHRpb24gc3BhbiB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8qKlxuICogRm9udCBXZWlnaHQgVXRpbGl0aWVzXG4gKi9cbi5mdy1yZWd1bGFyIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLmZ3LW1lZGl1bSB7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5mdy1ib2xkIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLyoqXG4gKiBTcGVjaWFsaXplZCBCcmFuZGVkIEVsZW1lbnRzXG4gKiBDb250ZXh0dWFsIHN0eWxlcyBmb3IgZXllYnJvd3MgYW5kIGhlcm8gc3VidGl0bGVzLlxuICovXG4uZXllYnJvdywgLmV5ZWJyb3cgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlLFxuLmhlcm8taW50cm8sXG4uaGVyby1pbnRybyAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBjb2xvcjogIzBEM0U3MDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1mYW1pbHk6IFwienV1bWVcIiwgc2Fucy1zZXJpZjtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5leWVicm93LCAuZXllYnJvdyAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUsXG4gIC5oZXJvLWludHJvLFxuICAuaGVyby1pbnRybyAuZWxlbWVudG9yLWhlYWRpbmctdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgfVxufVxuLyoqXG4gKiBDb3J2YW50IEljb24gU3lzdGVtXG4gKiBCYXNlIHN0eWxlcyBmb3IgU1ZHIGljb25zIHVzZWQgYXMgYmFja2dyb3VuZCBtYXNrcy5cbiAqIFVzZSB0aGUgJ2ljb24nIG1peGluIGZvciBjb21wb25lbnQtc3BlY2lmaWMgaWNvbiBpbXBsZW1lbnRhdGlvbi5cbiAqL1xuLyoqXG4gKiBHbG9iYWwgSWNvbiBIZWxwZXIgQ2xhc3NcbiAqIFRhcmdldHMgYW55IGVsZW1lbnQgd2l0aCBhIGNsYXNzIHN0YXJ0aW5nIHdpdGggJ2ljb24tJyBmb3IgYmFzZSBtYXNrIGxvZ2ljLlxuICovXG5bY2xhc3NePWljb24tXSxcbltjbGFzcyo9XCIgaWNvbi1cIl0ge1xuICB3aWR0aDogMWVtO1xuICBoZWlnaHQ6IDFlbTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICBtYXNrLXBvc2l0aW9uOiBjZW50ZXI7XG4gIG1hc2stc2l6ZTogY29udGFpbjtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xufVxuXG4vKipcbiAqIENvcnZhbnQgQW5pbWF0aW9uIFN0eWxlc1xuICogS2V5ZnJhbWVzIGFuZCB1dGlsaXR5IGNsYXNzZXMgZm9yIHRoZSBzaXRlJ3MgbW90aW9uIHN5c3RlbS5cbiAqL1xuQGtleWZyYW1lcyBzbGlkZVVwIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHNsaWRlRG93biB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc2xpZGVMZWZ0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNTBweCk7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHNsaWRlUmlnaHQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTBweCk7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cbkBrZXlmcmFtZXMgc2NhbGVVcCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGxvYWRlckxvZ29GYWRlSW4ge1xuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cbltjbGFzcyo9YW5pbWF0ZS1dIHtcbiAgb3BhY2l0eTogMDtcbiAgLS1hbmltYXRpb24tZGVsYXk6IDBtcztcbn1cbi5lbGVtZW50b3ItZWRpdG9yLWFjdGl2ZSBbY2xhc3MqPWFuaW1hdGUtXSwgLmVsZW1lbnRvci1lZGl0LW1vZGUgW2NsYXNzKj1hbmltYXRlLV0ge1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLmFuaW1hdGUtc2xpZGUtdXAuaXMtYW5pbWF0ZWQsIC5lbGVtZW50b3ItYWN0aXZlIC5hbmltYXRlLXNsaWRlLXVwIHtcbiAgYW5pbWF0aW9uOiBzbGlkZVVwIDAuNnMgY3ViaWMtYmV6aWVyKDAuNiwgMCwgMC4yLCAxKSB2YXIoLS1hbmltYXRpb24tZGVsYXksIDBtcykgZm9yd2FyZHM7XG59XG5cbi5hbmltYXRlLXNsaWRlLWRvd24uaXMtYW5pbWF0ZWQsIC5lbGVtZW50b3ItYWN0aXZlIC5hbmltYXRlLXNsaWRlLWRvd24ge1xuICBhbmltYXRpb246IHNsaWRlRG93biAwLjZzIGN1YmljLWJlemllcigwLjYsIDAsIDAuMiwgMSkgdmFyKC0tYW5pbWF0aW9uLWRlbGF5LCAwbXMpIGZvcndhcmRzO1xufVxuXG4uYW5pbWF0ZS1zbGlkZS1sZWZ0LmlzLWFuaW1hdGVkLCAuZWxlbWVudG9yLWFjdGl2ZSAuYW5pbWF0ZS1zbGlkZS1sZWZ0IHtcbiAgYW5pbWF0aW9uOiBzbGlkZUxlZnQgMC42cyBjdWJpYy1iZXppZXIoMC42LCAwLCAwLjIsIDEpIHZhcigtLWFuaW1hdGlvbi1kZWxheSwgMG1zKSBmb3J3YXJkcztcbn1cblxuLmFuaW1hdGUtc2xpZGUtcmlnaHQuaXMtYW5pbWF0ZWQsIC5lbGVtZW50b3ItYWN0aXZlIC5hbmltYXRlLXNsaWRlLXJpZ2h0IHtcbiAgYW5pbWF0aW9uOiBzbGlkZVJpZ2h0IDAuNnMgY3ViaWMtYmV6aWVyKDAuNiwgMCwgMC4yLCAxKSB2YXIoLS1hbmltYXRpb24tZGVsYXksIDBtcykgZm9yd2FyZHM7XG59XG5cbi5hbmltYXRlLWZhZGUtaW4uaXMtYW5pbWF0ZWQsIC5lbGVtZW50b3ItYWN0aXZlIC5hbmltYXRlLWZhZGUtaW4ge1xuICBhbmltYXRpb246IGZhZGVJbiAwLjZzIGN1YmljLWJlemllcigwLjYsIDAsIDAuMiwgMSkgdmFyKC0tYW5pbWF0aW9uLWRlbGF5LCAwbXMpIGZvcndhcmRzO1xufVxuXG4uYW5pbWF0ZS1zY2FsZS11cC5pcy1hbmltYXRlZCwgLmVsZW1lbnRvci1hY3RpdmUgLmFuaW1hdGUtc2NhbGUtdXAge1xuICBhbmltYXRpb246IHNjYWxlVXAgMC42cyBjdWJpYy1iZXppZXIoMC42LCAwLCAwLjIsIDEpIHZhcigtLWFuaW1hdGlvbi1kZWxheSwgMG1zKSBmb3J3YXJkcztcbn1cblxuLmRlbGF5LTEwMCB7XG4gIC0tYW5pbWF0aW9uLWRlbGF5OiAxMDBtcyAhaW1wb3J0YW50O1xufVxuXG4uZGVsYXktMTUwIHtcbiAgLS1hbmltYXRpb24tZGVsYXk6IDE1MG1zICFpbXBvcnRhbnQ7XG59XG5cbi5kZWxheS0yMDAge1xuICAtLWFuaW1hdGlvbi1kZWxheTogMjAwbXMgIWltcG9ydGFudDtcbn1cblxuLmRlbGF5LTI1MCB7XG4gIC0tYW5pbWF0aW9uLWRlbGF5OiAyNTBtcyAhaW1wb3J0YW50O1xufVxuXG4uZGVsYXktMzAwIHtcbiAgLS1hbmltYXRpb24tZGVsYXk6IDMwMG1zICFpbXBvcnRhbnQ7XG59XG5cbi5kZWxheS0zNTAge1xuICAtLWFuaW1hdGlvbi1kZWxheTogMzUwbXMgIWltcG9ydGFudDtcbn1cblxuLmRlbGF5LTQwMCB7XG4gIC0tYW5pbWF0aW9uLWRlbGF5OiA0MDBtcyAhaW1wb3J0YW50O1xufVxuXG4uZGVsYXktNTAwIHtcbiAgLS1hbmltYXRpb24tZGVsYXk6IDUwMG1zICFpbXBvcnRhbnQ7XG59XG5cbi5kZWxheS02MDAge1xuICAtLWFuaW1hdGlvbi1kZWxheTogNjAwbXMgIWltcG9ydGFudDtcbn1cblxuLmRlbGF5LTcwMCB7XG4gIC0tYW5pbWF0aW9uLWRlbGF5OiA3MDBtcyAhaW1wb3J0YW50O1xufVxuXG4uZGVsYXktODAwIHtcbiAgLS1hbmltYXRpb24tZGVsYXk6IDgwMG1zICFpbXBvcnRhbnQ7XG59XG5cbi5kZWxheS05MDAge1xuICAtLWFuaW1hdGlvbi1kZWxheTogOTAwbXMgIWltcG9ydGFudDtcbn1cblxuLmRlbGF5LTEwMDAge1xuICAtLWFuaW1hdGlvbi1kZWxheTogMTAwMG1zICFpbXBvcnRhbnQ7XG59XG5cbi5sb2FkZXItY3VydGFpbiB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMHZoO1xuICB6LWluZGV4OiA5OTk5OTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAxLjJzIGN1YmljLWJlemllcigwLjYsIDAsIDAuMiwgMSk7XG4gIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5sb2FkZXItY3VydGFpbi5pcy1oaWRkZW4ge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xufVxuLmxvYWRlci1jdXJ0YWluIC5sb2FkZXItY29udGVudCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5sb2FkZXItY3VydGFpbiAubG9hZGVyLWxvZ28ge1xuICB3aWR0aDogMjUwcHg7XG4gIGhlaWdodDogYXV0bztcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpO1xuICBhbmltYXRpb246IGxvYWRlckxvZ29GYWRlSW4gMC44cyBjdWJpYy1iZXppZXIoMC42LCAwLCAwLjIsIDEpIGZvcndhcmRzIDAuM3M7XG59XG5cbmJvZHk6bm90KC5ob21lKSAubG9hZGVyLWN1cnRhaW4ge1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjg1cztcbn1cblxuYm9keS5pcy1sb2FkaW5nIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmpzLWludGVyYWN0aXZlLXN5bmMgLmVsZW1lbnRvci13aWRnZXQtaW1hZ2Uge1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1vdXQ7XG59XG4uanMtaW50ZXJhY3RpdmUtc3luYyAuZWxlbWVudG9yLXdpZGdldC1pbWFnZS5pcy1hY3RpdmUge1xuICBhbmltYXRpb246IGZhZGVJbiAwLjRzIGVhc2Utb3V0IGZvcndhcmRzO1xufVxuXG4uanMtY3VydGFpbi1pbWFnZS1ib3gge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uanMtY3VydGFpbi1pbWFnZS1ib3ggaW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uanMtY3VydGFpbi1pbWFnZS1ib3ggLmN1cnRhaW4taW1nIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgaW5zZXQ6IDA7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4uanMtY3VydGFpbi1pbWFnZS1ib3ggLmN1cnRhaW4tZG93biB7XG4gIGFuaW1hdGlvbjogY3VydGFpbkRvd24gMC42NXMgY3ViaWMtYmV6aWVyKDAuNiwgMCwgMC4yLCAxKSBmb3J3YXJkcztcbn1cbi5qcy1jdXJ0YWluLWltYWdlLWJveCAuY3VydGFpbi11cCB7XG4gIGFuaW1hdGlvbjogY3VydGFpblVwIDAuNjVzIGN1YmljLWJlemllcigwLjYsIDAsIDAuMiwgMSkgZm9yd2FyZHM7XG59XG5cbkBrZXlmcmFtZXMgY3VydGFpbkRvd24ge1xuICBmcm9tIHtcbiAgICBjbGlwLXBhdGg6IGluc2V0KDAgMCAxMDAlIDApO1xuICB9XG4gIHRvIHtcbiAgICBjbGlwLXBhdGg6IGluc2V0KDAgMCAwIDApO1xuICB9XG59XG5Aa2V5ZnJhbWVzIGN1cnRhaW5VcCB7XG4gIGZyb20ge1xuICAgIGNsaXAtcGF0aDogaW5zZXQoMTAwJSAwIDAgMCk7XG4gIH1cbiAgdG8ge1xuICAgIGNsaXAtcGF0aDogaW5zZXQoMCAwIDAgMCk7XG4gIH1cbn1cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBFbGVtZW50b3IgTWVnYSBNZW51IChIZWFkZXIpXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogMS4gTW9iaWxlIE1lbnUgU3RhdGUgKEdsb2JhbCBCb2R5IENsYXNzKSAqL1xuYm9keS5tZW51LW9wZW4ge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiAyLiBNZWdhIE1lbnUgQ29tcG9uZW50ICovXG4uZWxlbWVudG9yLXdpZGdldC1uLW1lbnUge1xuICAvKiBHZW5lcmFsIFN0eWxlcyAqL1xufVxuLmVsZW1lbnRvci13aWRnZXQtbi1tZW51IHN2ZyB7XG4gIGZpbGw6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4uZWxlbWVudG9yLXdpZGdldC1uLW1lbnUgLmUtbi1tZW51LXdyYXBwZXIgLmUtbi1tZW51LXRpdGxlLWNvbnRhaW5lciB7XG4gIHdpZHRoOiA5NSU7XG59XG4uZWxlbWVudG9yLXdpZGdldC1uLW1lbnUgLmUtbi1tZW51LXRpdGxlIHtcbiAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuLmVsZW1lbnRvci13aWRnZXQtbi1tZW51IC5lLW4tbWVudS10aXRsZSAuZS1uLW1lbnUtdGl0bGUtdGV4dCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5lbGVtZW50b3Itd2lkZ2V0LW4tbWVudSAuZS1uLW1lbnUtdGl0bGU6aGFzKGJ1dHRvblthcmlhLWV4cGFuZGVkPXRydWVdKSB7XG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCB2YXIoLS1lLWdsb2JhbC1jb2xvci04NWUxNmEyKTtcbn1cbi5lbGVtZW50b3Itd2lkZ2V0LW4tbWVudSB7XG4gIC8qIEFjdGl2ZSBTdGF0ZSAqL1xufVxuLmVsZW1lbnRvci13aWRnZXQtbi1tZW51IC5lLW4tbWVudS10aXRsZS5jb3J2YW50LW1lbnUtYWN0aXZlIHtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZCAhaW1wb3J0YW50O1xuICBib3JkZXItd2lkdGg6IDBweCAwcHggM3B4IDBweCAhaW1wb3J0YW50O1xuICBib3JkZXItY29sb3I6IHZhcigtLWUtZ2xvYmFsLWNvbG9yLTg1ZTE2YTIpICFpbXBvcnRhbnQ7XG59XG4uZWxlbWVudG9yLXdpZGdldC1uLW1lbnUge1xuICAvKiBEZXNrdG9wIFN0eWxlcyAqL1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjVweCkge1xuICAuZWxlbWVudG9yLXdpZGdldC1uLW1lbnUge1xuICAgIC8qIEdsb2JhbCBzaGFkb3cgZm9yIGFsbCBkcm9wZG93biBtZW51cyAoQ2FwYWJpbGl0aWVzLCBNYXJrZXRzLCBldGMuKSAqL1xuICB9XG4gIC5lbGVtZW50b3Itd2lkZ2V0LW4tbWVudSAuZS1uLW1lbnUtY29udGVudCA+IC5lLWNvbiA+IC5lLWNvbi1pbm5lciB7XG4gICAgYm94LXNoYWRvdzogMHB4IDRweCAxNHB4IHJnYmEoMCwgMCwgMCwgMC4xNSkgIWltcG9ydGFudDtcbiAgfVxufVxuLmVsZW1lbnRvci13aWRnZXQtbi1tZW51IHtcbiAgLyogTW9iaWxlIFN0eWxlcyAmIEFuaW1hdGlvbnMgKi9cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLmVsZW1lbnRvci13aWRnZXQtbi1tZW51IC5tb2JpbGUtY29udGFjdC13cmFwcGVyIHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgfVxuICAuZWxlbWVudG9yLXdpZGdldC1uLW1lbnUgLm1vYmlsZS1jb250YWN0LXdyYXBwZXIgYS5lbGVtZW50b3ItYnV0dG9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuZWxlbWVudG9yLXdpZGdldC1uLW1lbnUge1xuICAgIC8qIE1haW4gTWVudSBBbmltYXRpb24gKi9cbiAgfVxuICAuZWxlbWVudG9yLXdpZGdldC1uLW1lbnUgLmUtbi1tZW51LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZS1nbG9iYWwtY29sb3ItN2IzNDY5OCkgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2Utb3V0LCB0cmFuc2Zvcm0gMC4ycyBlYXNlLW91dCwgdmlzaWJpbGl0eSAwcyBsaW5lYXIgMC4ycywgaGVpZ2h0IDBzIGxpbmVhciAwLjJzLCBwYWRkaW5nIDBzIGxpbmVhciAwLjJzICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmVsZW1lbnRvci13aWRnZXQtbi1tZW51OmhhcyhidXR0b24uZS1uLW1lbnUtdG9nZ2xlW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0pIC5lLW4tbWVudS13cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMzJweCAwIDE2MHB4IDAgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdy15OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZS1vdXQsIHRyYW5zZm9ybSAwLjJzIGVhc2Utb3V0LCB2aXNpYmlsaXR5IDBzIGxpbmVhciAwcywgaGVpZ2h0IDBzIGxpbmVhciAwcywgcGFkZGluZyAwcyBsaW5lYXIgMHMgIWltcG9ydGFudDtcbiAgfVxuICAuZWxlbWVudG9yLXdpZGdldC1uLW1lbnUge1xuICAgIC8qIFN1Ym1lbnUgQW5pbWF0aW9uICovXG4gIH1cbiAgLmVsZW1lbnRvci13aWRnZXQtbi1tZW51IC5lLW4tbWVudS1jb250ZW50ID4gLmUtY29uIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgfVxuICAuZWxlbWVudG9yLXdpZGdldC1uLW1lbnUgLmUtbi1tZW51LWNvbnRlbnQge1xuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4yNXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgb3BhY2l0eSAwLjJzIGVhc2Utb3V0LCB2aXNpYmlsaXR5IDBzIGxpbmVhciAwLjI1cyAhaW1wb3J0YW50O1xuICB9XG4gIC5lbGVtZW50b3Itd2lkZ2V0LW4tbWVudSAuZS1uLW1lbnUtaXRlbTpoYXMoYnV0dG9uLmUtbi1tZW51LWRyb3Bkb3duLWljb25bYXJpYS1leHBhbmRlZD10cnVlXSkgLmUtbi1tZW51LWNvbnRlbnQge1xuICAgIG1heC1oZWlnaHQ6IDMwMDBweDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuNnMgZWFzZS1pbi1vdXQsIG9wYWNpdHkgMC4zcyBlYXNlLWluLW91dCwgdmlzaWJpbGl0eSAwcyBsaW5lYXIgMHMgIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5lbGVtZW50b3Itd2lkZ2V0LW4tbWVudSAuZS1uLW1lbnUtd3JhcHBlciAuZS1uLW1lbnUtdGl0bGUtY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gIH1cbiAgLmVsZW1lbnRvci13aWRnZXQtbi1tZW51IC5lLW4tbWVudS13cmFwcGVyIC5lLW4tbWVudS1kcm9wZG93bi1pY29uW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0gc3ZnIHBhdGgge1xuICAgIHN0cm9rZTogdmFyKC0tZS1nbG9iYWwtY29sb3ItODVlMTZhMik7XG4gIH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzBweCkge1xuICAuZWxlbWVudG9yLXdpZGdldC1uLW1lbnUgLmUtbi1tZW51LXdyYXBwZXIgLmUtbi1tZW51LXRpdGxlLWNvbnRhaW5lciB7XG4gICAgd2lkdGg6IDkwJTtcbiAgfVxufVxuXG4vKipcbiAqIENvcnZhbnQgQnV0dG9uIFN5c3RlbVxuICogSW1wbGVtZW50cyBoaWdoLWZpZGVsaXR5IGludGVyYWN0aXZlIHN0YXRlcyBhbmQgYnJhbmQtY29tcGxpYW50IGFuaW1hdGlvbnMuXG4gKi9cbi8qKlxuICogQmFzZSBCdXR0b24gU3R5bGVzXG4gKiBDb25maWd1cmVzIGdsb2JhbCB0eXBvZ3JhcGh5LCB0cmFuc2l0aW9ucywgYW5kIGludGVyYWN0aXZlIHNjYWxlIHRyYW5zZm9ybXMuXG4gKi9cbi5lbGVtZW50b3Itd2lkZ2V0LWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbixcbi5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgLmVsZW1lbnRvci1idXR0b24ge1xuICBmb250LXdlaWdodDogNzAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtZmFtaWx5OiBcIm5pdHRpLWdyb3Rlc2tcIiwgc2Fucy1zZXJpZjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG59XG4uZWxlbWVudG9yLXdpZGdldC1idXR0b24gLmVsZW1lbnRvci1idXR0b246OmJlZm9yZSxcbi5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgLmVsZW1lbnRvci1idXR0b246OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAtMTtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjM1cyBjdWJpYy1iZXppZXIoMC42LCAwLCAwLjIsIDEpLCB0cmFuc2Zvcm0gMC4yNXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xufVxuLmVsZW1lbnRvci13aWRnZXQtYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWNvbnRlbnQtd3JhcHBlcixcbi5lbGVtZW50b3Itd2lkZ2V0LWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi10ZXh0LFxuLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCAuZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi1jb250ZW50LXdyYXBwZXIsXG4uZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLXRleHQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG59XG4uZWxlbWVudG9yLXdpZGdldC1idXR0b24gLmVsZW1lbnRvci1idXR0b246aG92ZXIsIC5lbGVtZW50b3Itd2lkZ2V0LWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbjpmb2N1cywgLmVsZW1lbnRvci13aWRnZXQtYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uOmFjdGl2ZSxcbi5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgLmVsZW1lbnRvci1idXR0b246aG92ZXIsXG4uZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uOmZvY3VzLFxuLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCAuZWxlbWVudG9yLWJ1dHRvbjphY3RpdmUge1xuICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbn1cbi5lbGVtZW50b3Itd2lkZ2V0LWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbjpob3Zlcjo6YmVmb3JlLCAuZWxlbWVudG9yLXdpZGdldC1idXR0b24gLmVsZW1lbnRvci1idXR0b246Zm9jdXM6OmJlZm9yZSxcbi5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgLmVsZW1lbnRvci1idXR0b246aG92ZXI6OmJlZm9yZSxcbi5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgLmVsZW1lbnRvci1idXR0b246Zm9jdXM6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zNXMgY3ViaWMtYmV6aWVyKDAuNiwgMCwgMC4yLCAxKSwgdHJhbnNmb3JtIDAuMnMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xufVxuLmVsZW1lbnRvci13aWRnZXQtYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uOmFjdGl2ZTo6YmVmb3JlLFxuLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCAuZWxlbWVudG9yLWJ1dHRvbjphY3RpdmU6OmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC45MSk7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zNXMgY3ViaWMtYmV6aWVyKDAuNiwgMCwgMC4yLCAxKSwgdHJhbnNmb3JtIDAuMTVzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbn1cblxuLyoqXG4gKiBCdXR0b24gVmFyaWFudHNcbiAqIE1hcHBpbmdzIGZvciBTb2xpZCBMaWdodCwgU29saWQgRGFyaywgYW5kIFRleHQgR29sZCBidXR0b24gdHlwZXMuXG4gKi9cbi5lbGVtZW50b3ItYnV0dG9uLXNvbGlkLWxpZ2h0IC5lbGVtZW50b3ItYnV0dG9uLFxuLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCAuZWxlbWVudG9yLWJ1dHRvbiB7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuLmVsZW1lbnRvci1idXR0b24tc29saWQtbGlnaHQgLmVsZW1lbnRvci1idXR0b246OmJlZm9yZSxcbi5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgLmVsZW1lbnRvci1idXR0b246OmJlZm9yZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFRUVBRTM7XG59XG4uZWxlbWVudG9yLWJ1dHRvbi1zb2xpZC1saWdodCAuZWxlbWVudG9yLWJ1dHRvbjpob3Zlcjo6YmVmb3JlLCAuZWxlbWVudG9yLWJ1dHRvbi1zb2xpZC1saWdodCAuZWxlbWVudG9yLWJ1dHRvbjpmb2N1czo6YmVmb3JlLFxuLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCAuZWxlbWVudG9yLWJ1dHRvbjpob3Zlcjo6YmVmb3JlLFxuLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCAuZWxlbWVudG9yLWJ1dHRvbjpmb2N1czo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RERDVDNjtcbn1cblxuLmVsZW1lbnRvci1idXR0b24tc29saWQtbGlnaHQuZWxlbWVudG9yLWJ1dHRvbi1zaXplLXNtYWxsIC5lbGVtZW50b3ItYnV0dG9uIHtcbiAgcGFkZGluZzogMCAxNnB4O1xufVxuLmVsZW1lbnRvci1idXR0b24tc29saWQtbGlnaHQuZWxlbWVudG9yLWJ1dHRvbi1zaXplLW1lZGl1bSAuZWxlbWVudG9yLWJ1dHRvbiB7XG4gIHBhZGRpbmc6IDAgMTZweDtcbn1cbi5lbGVtZW50b3ItYnV0dG9uLXNvbGlkLWxpZ2h0LmVsZW1lbnRvci1idXR0b24tc2l6ZS1sYXJnZSAuZWxlbWVudG9yLWJ1dHRvbiB7XG4gIHBhZGRpbmc6IDAgMTZweDtcbn1cblxuLmVsZW1lbnRvci1idXR0b24tc29saWQtZGFyayAuZWxlbWVudG9yLWJ1dHRvbiB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLmVsZW1lbnRvci1idXR0b24tc29saWQtZGFyayAuZWxlbWVudG9yLWJ1dHRvbjo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbn1cbi5lbGVtZW50b3ItYnV0dG9uLXNvbGlkLWRhcmsgLmVsZW1lbnRvci1idXR0b246aG92ZXI6OmJlZm9yZSwgLmVsZW1lbnRvci1idXR0b24tc29saWQtZGFyayAuZWxlbWVudG9yLWJ1dHRvbjpmb2N1czo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbn1cbi5lbGVtZW50b3ItYnV0dG9uLXNvbGlkLWRhcmsgLmVsZW1lbnRvci1idXR0b24gLmVsZW1lbnRvci1idXR0b24taWNvbiBpLFxuLmVsZW1lbnRvci1idXR0b24tc29saWQtZGFyayAuZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2ZyB7XG4gIGNvbG9yOiAjRTA4RjM1ICFpbXBvcnRhbnQ7XG4gIGZpbGw6ICNFMDhGMzUgIWltcG9ydGFudDtcbn1cbi5lbGVtZW50b3ItYnV0dG9uLXNvbGlkLWRhcmsuZWxlbWVudG9yLWJ1dHRvbi1zaXplLXNtYWxsIC5lbGVtZW50b3ItYnV0dG9uIHtcbiAgcGFkZGluZzogMCAxNnB4O1xufVxuLmVsZW1lbnRvci1idXR0b24tc29saWQtZGFyay5lbGVtZW50b3ItYnV0dG9uLXNpemUtbWVkaXVtIC5lbGVtZW50b3ItYnV0dG9uIHtcbiAgcGFkZGluZzogMCAxNnB4O1xufVxuLmVsZW1lbnRvci1idXR0b24tc29saWQtZGFyay5lbGVtZW50b3ItYnV0dG9uLXNpemUtbGFyZ2UgLmVsZW1lbnRvci1idXR0b24ge1xuICBwYWRkaW5nOiAwIDE2cHg7XG59XG5cbi5lbGVtZW50b3ItYnV0dG9uLXRleHQtZ29sZCAuZWxlbWVudG9yLWJ1dHRvbiB7XG4gIGhlaWdodDogMzBweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgI0IxNTkzMztcbn1cbi5lbGVtZW50b3ItYnV0dG9uLXRleHQtZ29sZCAuZWxlbWVudG9yLWJ1dHRvbjo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5lbGVtZW50b3ItYnV0dG9uLXRleHQtZ29sZCAuZWxlbWVudG9yLWJ1dHRvbjpob3ZlciwgLmVsZW1lbnRvci1idXR0b24tdGV4dC1nb2xkIC5lbGVtZW50b3ItYnV0dG9uOmZvY3VzIHtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNCMTU5MzM7XG59XG4uZWxlbWVudG9yLWJ1dHRvbi10ZXh0LWdvbGQgLmVsZW1lbnRvci1idXR0b246YWN0aXZlIHtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICNCMTU5MzM7XG59XG4uYnRuLW9uLWRhcmsgLmVsZW1lbnRvci1idXR0b24tdGV4dC1nb2xkIC5lbGVtZW50b3ItYnV0dG9uIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4uYnRuLW9uLWRhcmsgLmVsZW1lbnRvci1idXR0b24tdGV4dC1nb2xkIC5lbGVtZW50b3ItYnV0dG9uOmhvdmVyIHtcbiAgY29sb3I6ICNFRUVBRTM7XG59XG4uYnRuLW9uLWRhcmsgLmVsZW1lbnRvci1idXR0b24tdGV4dC1nb2xkIC5lbGVtZW50b3ItYnV0dG9uOmFjdGl2ZSB7XG4gIGNvbG9yOiAjRERENUM2O1xufVxuLmVsZW1lbnRvci1idXR0b24tdGV4dC1nb2xkIC5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWljb24gaSxcbi5lbGVtZW50b3ItYnV0dG9uLXRleHQtZ29sZCAuZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2ZyB7XG4gIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuXG4vKipcbiAqIEJ1dHRvbiBTaXplc1xuICogUmVzcG9uc2l2ZSBzaXppbmcgbG9naWMgZm9yIHNtYWxsLCBtZWRpdW0sIGFuZCBsYXJnZSB2YXJpYW50cy5cbiAqL1xuLmVsZW1lbnRvci1idXR0b24tc2l6ZS1zbWFsbCAuZWxlbWVudG9yLWJ1dHRvbixcbi5lbGVtZW50b3ItYnV0dG9uLmVsZW1lbnRvci1zaXplLXNtIHtcbiAgaGVpZ2h0OiAzOHB4O1xuICBmb250LXNpemU6IDE4cHg7XG4gIHBhZGRpbmc6IDAgMTZweDtcbn1cbi5lbGVtZW50b3ItYnV0dG9uLXNpemUtc21hbGwgLmVsZW1lbnRvci1idXR0b246bm90KC5lbGVtZW50b3ItYnV0dG9uLXRleHQtZ29sZCkgLmVsZW1lbnRvci1idXR0b24taWNvbiBpLCAuZWxlbWVudG9yLWJ1dHRvbi1zaXplLXNtYWxsIC5lbGVtZW50b3ItYnV0dG9uOm5vdCguZWxlbWVudG9yLWJ1dHRvbi10ZXh0LWdvbGQpIC5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnLFxuLmVsZW1lbnRvci1idXR0b24uZWxlbWVudG9yLXNpemUtc206bm90KC5lbGVtZW50b3ItYnV0dG9uLXRleHQtZ29sZCkgLmVsZW1lbnRvci1idXR0b24taWNvbiBpLFxuLmVsZW1lbnRvci1idXR0b24uZWxlbWVudG9yLXNpemUtc206bm90KC5lbGVtZW50b3ItYnV0dG9uLXRleHQtZ29sZCkgLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcge1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmVsZW1lbnRvci1idXR0b24tc2l6ZS1zbWFsbC5lbGVtZW50b3ItYnV0dG9uLXRleHQtZ29sZCAuZWxlbWVudG9yLWJ1dHRvbiB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbn1cblxuLmVsZW1lbnRvci1idXR0b24tc2l6ZS1tZWRpdW0gLmVsZW1lbnRvci1idXR0b24sXG4uZWxlbWVudG9yLWJ1dHRvbi5lbGVtZW50b3Itc2l6ZS1tZCB7XG4gIGhlaWdodDogNDRweDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBwYWRkaW5nOiAwIDE2cHg7XG59XG4uZWxlbWVudG9yLWJ1dHRvbi1zaXplLW1lZGl1bSAuZWxlbWVudG9yLWJ1dHRvbjpub3QoLmVsZW1lbnRvci1idXR0b24tdGV4dC1nb2xkKSAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIGksIC5lbGVtZW50b3ItYnV0dG9uLXNpemUtbWVkaXVtIC5lbGVtZW50b3ItYnV0dG9uOm5vdCguZWxlbWVudG9yLWJ1dHRvbi10ZXh0LWdvbGQpIC5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnLFxuLmVsZW1lbnRvci1idXR0b24uZWxlbWVudG9yLXNpemUtbWQ6bm90KC5lbGVtZW50b3ItYnV0dG9uLXRleHQtZ29sZCkgLmVsZW1lbnRvci1idXR0b24taWNvbiBpLFxuLmVsZW1lbnRvci1idXR0b24uZWxlbWVudG9yLXNpemUtbWQ6bm90KC5lbGVtZW50b3ItYnV0dG9uLXRleHQtZ29sZCkgLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcge1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmVsZW1lbnRvci1idXR0b24tc2l6ZS1tZWRpdW0uZWxlbWVudG9yLWJ1dHRvbi10ZXh0LWdvbGQgLmVsZW1lbnRvci1idXR0b24ge1xuICBmb250LXNpemU6IDE4cHg7XG59XG5cbi5lbGVtZW50b3ItYnV0dG9uLXNpemUtbGFyZ2UgLmVsZW1lbnRvci1idXR0b24sXG4uZWxlbWVudG9yLWJ1dHRvbi5lbGVtZW50b3Itc2l6ZS1sZyB7XG4gIGhlaWdodDogNTBweDtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBwYWRkaW5nOiAwIDE2cHg7XG59XG4uZWxlbWVudG9yLWJ1dHRvbi1zaXplLWxhcmdlIC5lbGVtZW50b3ItYnV0dG9uOm5vdCguZWxlbWVudG9yLWJ1dHRvbi10ZXh0LWdvbGQpIC5lbGVtZW50b3ItYnV0dG9uLWljb24gaSwgLmVsZW1lbnRvci1idXR0b24tc2l6ZS1sYXJnZSAuZWxlbWVudG9yLWJ1dHRvbjpub3QoLmVsZW1lbnRvci1idXR0b24tdGV4dC1nb2xkKSAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2Zyxcbi5lbGVtZW50b3ItYnV0dG9uLmVsZW1lbnRvci1zaXplLWxnOm5vdCguZWxlbWVudG9yLWJ1dHRvbi10ZXh0LWdvbGQpIC5lbGVtZW50b3ItYnV0dG9uLWljb24gaSxcbi5lbGVtZW50b3ItYnV0dG9uLmVsZW1lbnRvci1zaXplLWxnOm5vdCguZWxlbWVudG9yLWJ1dHRvbi10ZXh0LWdvbGQpIC5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnIHtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi5lbGVtZW50b3ItYnV0dG9uLXNpemUtbGFyZ2UuZWxlbWVudG9yLWJ1dHRvbi10ZXh0LWdvbGQgLmVsZW1lbnRvci1idXR0b24ge1xuICBmb250LXNpemU6IDIwcHg7XG59XG5cbi8qKlxuICogSWNvbiAmIEFycm93IEFuaW1hdGlvbnNcbiAqIERlZmluZXMgdGhlICdhcnJvd1JlZW50ZXInIGtleWZyYW1lcyBhbmQgaWNvbiBjb2xvcmluZyBsb2dpYy5cbiAqL1xuQGtleWZyYW1lcyBhcnJvd0hvdmVyIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC42LCAwLCAwLjIsIDEpO1xuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDYwcHgpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHN0ZXAtZW5kO1xuICB9XG4gIDUwLjAwMSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNjBweCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNiwgMCwgMC4yLCAxKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cbn1cbkBrZXlmcmFtZXMgYXJyb3dMZWF2ZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNiwgMCwgMC4yLCAxKTtcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNjBweCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogc3RlcC1lbmQ7XG4gIH1cbiAgNTAuMDAxJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDYwcHgpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjYsIDAsIDAuMiwgMSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG4uZWxlbWVudG9yLWJ1dHRvbi1jb250ZW50LXdyYXBwZXIge1xuICBnYXA6IDMwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5lbGVtZW50b3ItYnV0dG9uLWljb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cyBlYXNlO1xufVxuLmVsZW1lbnRvci1idXR0b24taWNvbiBpIHBhdGgsXG4uZWxlbWVudG9yLWJ1dHRvbi1pY29uIGkgbGluZSxcbi5lbGVtZW50b3ItYnV0dG9uLWljb24gaSBwb2x5bGluZSxcbi5lbGVtZW50b3ItYnV0dG9uLWljb24gaSByZWN0LFxuLmVsZW1lbnRvci1idXR0b24taWNvbiBpIGNpcmNsZSxcbi5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnIHBhdGgsXG4uZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2ZyBsaW5lLFxuLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcgcG9seWxpbmUsXG4uZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2ZyByZWN0LFxuLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcgY2lyY2xlIHtcbiAgZmlsbDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgc3Ryb2tlOiBjdXJyZW50Q29sb3IgIWltcG9ydGFudDtcbn1cblxuLmVsZW1lbnRvci1idXR0b246aG92ZXIgLmVsZW1lbnRvci1idXR0b24taWNvbiBpLFxuLmVsZW1lbnRvci1idXR0b246aG92ZXIgLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcsXG4uZWxlbWVudG9yLWJ1dHRvbjpmb2N1cyAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIGksXG4uZWxlbWVudG9yLWJ1dHRvbjpmb2N1cyAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2ZyB7XG4gIGFuaW1hdGlvbjogYXJyb3dIb3ZlciAwLjZzIGN1YmljLWJlemllcigwLjYsIDAsIDAuMiwgMSkgZm9yd2FyZHM7XG59XG5cbi5lbGVtZW50b3ItYnV0dG9uLmhhcy1ob3ZlcmVkOm5vdCg6aG92ZXIpOm5vdCg6Zm9jdXMpIC5lbGVtZW50b3ItYnV0dG9uLWljb24gaSxcbi5lbGVtZW50b3ItYnV0dG9uLmhhcy1ob3ZlcmVkOm5vdCg6aG92ZXIpOm5vdCg6Zm9jdXMpIC5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnIHtcbiAgYW5pbWF0aW9uOiBhcnJvd0xlYXZlIDAuNnMgY3ViaWMtYmV6aWVyKDAuNiwgMCwgMC4yLCAxKSBmb3J3YXJkcztcbn1cblxuLmlucXVpcnktZm9ybSAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IGJ1dHRvbiBzdmcge1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKipcbiAqIEZvcm1zICYgSW5wdXRzIENvbXBvbmVudFxuICogUHJvZmVzc2lvbmFsIGZvcm0gc3R5bGluZyBmb3Igc3RhbmRhcmQgaW5wdXRzLCBzZWxlY3RzLCBhbmQgdGV4dGFyZWFzLlxuICovXG4vKipcbiAqIEdsb2JhbCBMYWJlbCBTdHlsZVxuICogU3RhbmRhcmRpemVzIHR5cG9ncmFwaHkgZm9yIGFsbCBmb3JtIGxhYmVscyBhbmQgcmVxdWlyZWQgbWFya3MuXG4gKi9cbmxhYmVsLFxuLmZvcm0tbGFiZWwge1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LWZhbWlseTogXCJuaXR0aS1ncm90ZXNrXCIsIHNhbnMtc2VyaWY7XG59XG5sYWJlbCBzcGFuLFxuLmZvcm0tbGFiZWwgc3BhbiB7XG4gIGNvbG9yOiAjQjE1OTMzO1xufVxuXG4vKipcbiAqIEJhc2UgSW5wdXQgU3R5bGVzXG4gKiBDb3ZlcnMgdGV4dCwgZW1haWwsIHRlbCwgcGFzc3dvcmQsIGFuZCB0ZXh0YXJlYXMgd2l0aCBicmFuZC1jb21wbGlhbnQgc3RhdGVzLlxuICovXG5pbnB1dFt0eXBlPXRleHRdLFxuaW5wdXRbdHlwZT1lbWFpbF0sXG5pbnB1dFt0eXBlPXRlbF0sXG5pbnB1dFt0eXBlPXBhc3N3b3JkXSxcbnRleHRhcmVhLFxuc2VsZWN0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogNTZweDtcbiAgcGFkZGluZzogMTJweCAxNnB4O1xuICBjb2xvcjogIzBBMjg0MjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBvdXRsaW5lOiBub25lO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFQUUzO1xuICBmb250LWZhbWlseTogXCJuaXR0aS1ncm90ZXNrXCIsIHNhbnMtc2VyaWY7XG59XG5pbnB1dFt0eXBlPXRleHRdOjpwbGFjZWhvbGRlcixcbmlucHV0W3R5cGU9ZW1haWxdOjpwbGFjZWhvbGRlcixcbmlucHV0W3R5cGU9dGVsXTo6cGxhY2Vob2xkZXIsXG5pbnB1dFt0eXBlPXBhc3N3b3JkXTo6cGxhY2Vob2xkZXIsXG50ZXh0YXJlYTo6cGxhY2Vob2xkZXIsXG5zZWxlY3Q6OnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHJnYmEoMTAsIDQwLCA2NiwgMC41KTtcbn1cbmlucHV0W3R5cGU9dGV4dF06aG92ZXIsIGlucHV0W3R5cGU9dGV4dF06Zm9jdXMsXG5pbnB1dFt0eXBlPWVtYWlsXTpob3ZlcixcbmlucHV0W3R5cGU9ZW1haWxdOmZvY3VzLFxuaW5wdXRbdHlwZT10ZWxdOmhvdmVyLFxuaW5wdXRbdHlwZT10ZWxdOmZvY3VzLFxuaW5wdXRbdHlwZT1wYXNzd29yZF06aG92ZXIsXG5pbnB1dFt0eXBlPXBhc3N3b3JkXTpmb2N1cyxcbnRleHRhcmVhOmhvdmVyLFxudGV4dGFyZWE6Zm9jdXMsXG5zZWxlY3Q6aG92ZXIsXG5zZWxlY3Q6Zm9jdXMge1xuICBib3JkZXI6IDFweCBzb2xpZCAjMEQzRTcwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRERENUM2O1xufVxuaW5wdXRbdHlwZT10ZXh0XS5pcy1lcnJvciwgLndwY2Y3LW5vdC12YWxpZCBpbnB1dFt0eXBlPXRleHRdLFxuaW5wdXRbdHlwZT1lbWFpbF0uaXMtZXJyb3IsXG4ud3BjZjctbm90LXZhbGlkIGlucHV0W3R5cGU9ZW1haWxdLFxuaW5wdXRbdHlwZT10ZWxdLmlzLWVycm9yLFxuLndwY2Y3LW5vdC12YWxpZCBpbnB1dFt0eXBlPXRlbF0sXG5pbnB1dFt0eXBlPXBhc3N3b3JkXS5pcy1lcnJvcixcbi53cGNmNy1ub3QtdmFsaWQgaW5wdXRbdHlwZT1wYXNzd29yZF0sXG50ZXh0YXJlYS5pcy1lcnJvcixcbi53cGNmNy1ub3QtdmFsaWQgdGV4dGFyZWEsXG5zZWxlY3QuaXMtZXJyb3IsXG4ud3BjZjctbm90LXZhbGlkIHNlbGVjdCB7XG4gIGJvcmRlci1jb2xvcjogI0Q4M0IzQjtcbn1cblxuLyoqXG4gKiBEcm9wZG93biBNZW51cyAoU2VsZWN0KVxuICogQ3VzdG9tIGFycm93IHN0eWxpbmcgdXNpbmcgdGhlbWVkIFNWRyBpY29ucyBmb3IgY29uc2lzdGVudCBVSS5cbiAqL1xuc2VsZWN0IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHdpZHRoPScxMicgaGVpZ2h0PSc4JyB2aWV3Qm94PScwIDAgMTIgOCcgZmlsbD0nbm9uZScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzRSUzQ3BhdGggZD0nTTEgMUw2IDZMMTEgMScgc3Ryb2tlPSclMjMwQTI4NDInIHN0cm9rZS13aWR0aD0nMicvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMTZweCBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG59XG5zZWxlY3Qgb3B0aW9uIHtcbiAgY29sb3I6ICMwQTI4NDI7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFRUVBRTM7XG59XG5cbi8qKlxuICogRGFyayBGb3JtIE1vZGlmaWVyXG4gKiBIaWdoLWZpZGVsaXR5IHZhcmlhbnQgZm9yIGRhcmsgYmFja2dyb3VuZHMgdXNpbmcgdHJhbnNsdWNlbnQgZWxlbWVudHMuXG4gKi9cbi5mb3JtLS1kYXJrIGxhYmVsIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4uZm9ybS0tZGFyayBpbnB1dCxcbi5mb3JtLS1kYXJrIHRleHRhcmVhLFxuLmZvcm0tLWRhcmsgc2VsZWN0IHtcbiAgY29sb3I6ICNGRkZGRkY7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG59XG4uZm9ybS0tZGFyayBpbnB1dDpob3ZlciwgLmZvcm0tLWRhcmsgaW5wdXQ6Zm9jdXMsXG4uZm9ybS0tZGFyayB0ZXh0YXJlYTpob3Zlcixcbi5mb3JtLS1kYXJrIHRleHRhcmVhOmZvY3VzLFxuLmZvcm0tLWRhcmsgc2VsZWN0OmhvdmVyLFxuLmZvcm0tLWRhcmsgc2VsZWN0OmZvY3VzIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI0IxNTkzMztcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcbn1cbi5mb3JtLS1kYXJrIGlucHV0OjpwbGFjZWhvbGRlcixcbi5mb3JtLS1kYXJrIHRleHRhcmVhOjpwbGFjZWhvbGRlcixcbi5mb3JtLS1kYXJrIHNlbGVjdDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xufVxuLmZvcm0tLWRhcmsgc2VsZWN0IHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB3aWR0aD0nMTInIGhlaWdodD0nOCcgdmlld0JveD0nMCAwIDEyIDgnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J00xIDFMNiA2TDExIDEnIHN0cm9rZT0nd2hpdGUnIHN0cm9rZS13aWR0aD0nMicvJTNFJTNDL3N2ZyUzRVwiKTtcbn1cblxuLyoqXG4gKiBDdXN0b20gQ2hlY2tib3hlcyAmIFJhZGlvc1xuICogUHJlbWl1bSBicmFuZC1jb21wbGlhbnQgdG9nZ2xlIGVsZW1lbnRzIHdpdGggY29wcGVyIGluZGljYXRvcnMuXG4gKi9cbmlucHV0W3R5cGU9Y2hlY2tib3hdLFxuaW5wdXRbdHlwZT1yYWRpb10ge1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyOiAycHggc29saWQgI0RERDVDNjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbmlucHV0W3R5cGU9Y2hlY2tib3hdOmhvdmVyLFxuaW5wdXRbdHlwZT1yYWRpb106aG92ZXIge1xuICBib3JkZXItY29sb3I6ICNCMTU5MzM7XG59XG5pbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkLFxuaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCB7XG4gIGJvcmRlci1jb2xvcjogIzAwMDAwMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbn1cbmlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6OmFmdGVyLFxuaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG4gIGNsaXAtcGF0aDogcG9seWdvbigxNCUgNDQlLCAwIDY1JSwgNTAlIDEwMCUsIDEwMCUgMTYlLCA4MCUgMCUsIDQzJSA2MiUpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjE1OTMzO1xufVxuLmZvcm0tLWRhcmsgaW5wdXRbdHlwZT1jaGVja2JveF0sXG4uZm9ybS0tZGFyayBpbnB1dFt0eXBlPXJhZGlvXSB7XG4gIGJvcmRlci1jb2xvcjogI0ZGRkZGRjtcbn1cbi5mb3JtLS1kYXJrIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQsXG4uZm9ybS0tZGFyayBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkIHtcbiAgYm9yZGVyLWNvbG9yOiAjRkZGRkZGO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGO1xufVxuXG4vKipcbiAqIFRleHRhcmVhIFNwZWNpZmljIExvZ2ljXG4gKiBGaXhlZCBoZWlnaHQgYW5kIGxheW91dCBhZGp1c3RtZW50cyBmb3IgbXVsdGktbGluZSBpbnB1dHMuXG4gKi9cbnRleHRhcmVhIHtcbiAgaGVpZ2h0OiAxODBweDtcbiAgcGFkZGluZzogMTZweDtcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcbn1cblxuLyoqXG4gKiBHbG9iYWwgVmFsaWRhdGlvbiBNZXNzYWdpbmdcbiAqIFJlc3BvbnNpdmUgZXJyb3IgdHlwb2dyYXBoeSBmb3IgYXV0b21hdGVkIGZvcm0gdmFsaWRhdGlvbiB0b29scy5cbiAqL1xuLndwY2Y3LW5vdC12YWxpZC10aXAsXG4uZXJyb3ItbWVzc2FnZSB7XG4gIG1hcmdpbi10b3A6IDZweDtcbiAgY29sb3I6ICNEODNCM0I7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogUHJpdmFjeSBQb2xpY3kgVGV4dCAmIFN1Ym1pdCBCdXR0b24gTGF5b3V0IChDb250YWN0IEZvcm1zKVxuICovXG4uaW5xdWlyeS1mb3JtIC5mb3JtLXByaXZhY3ktdGV4dCB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLmlucXVpcnktZm9ybSAuZm9ybS1wcml2YWN5LXRleHQgYSB7XG4gIGNvbG9yOiAjRkRDNTU0O1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuaW5xdWlyeS1mb3JtIC5mb3JtLXByaXZhY3ktdGV4dCBiciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmlucXVpcnktZm9ybSAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IHtcbiAgZ2FwOiAyMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5pbnF1aXJ5LWZvcm0gLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8qKlxuICogTGlnaHQgRm9ybSBWYXJpYW50IE1vZGlmaWVyXG4gKiBPdmVycmlkZXMgZm9yIHJldXNpbmcgdGhlIGZvcm0gdGVtcGxhdGUgaW4gbGlnaHQgYmFja2dyb3VuZCBzZWN0aW9ucy5cbiAqL1xuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCBsYWJlbC5lbGVtZW50b3ItZmllbGQtbGFiZWwsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCBsYWJlbC5lbGVtZW50b3ItZmllbGQtbGFiZWwge1xuICBjb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xufVxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCAuZWxlbWVudG9yLWZpZWxkLXRleHR1YWwsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLWdyb3VwIGlucHV0W3R5cGU9dGV4dF0sXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLWdyb3VwIGlucHV0W3R5cGU9ZW1haWxdLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCBpbnB1dFt0eXBlPXRlbF0sXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLWdyb3VwIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCB0ZXh0YXJlYSxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtZ3JvdXAgc2VsZWN0LFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10ZXh0dWFsLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgaW5wdXQsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCB0ZXh0YXJlYSxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IHNlbGVjdCB7XG4gIGNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG4gIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFQUUzICFpbXBvcnRhbnQ7XG59XG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLWdyb3VwIC5lbGVtZW50b3ItZmllbGQtdGV4dHVhbDo6cGxhY2Vob2xkZXIsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLWdyb3VwIGlucHV0W3R5cGU9dGV4dF06OnBsYWNlaG9sZGVyLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCBpbnB1dFt0eXBlPWVtYWlsXTo6cGxhY2Vob2xkZXIsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLWdyb3VwIGlucHV0W3R5cGU9dGVsXTo6cGxhY2Vob2xkZXIsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLWdyb3VwIGlucHV0W3R5cGU9cGFzc3dvcmRdOjpwbGFjZWhvbGRlcixcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtZ3JvdXAgdGV4dGFyZWE6OnBsYWNlaG9sZGVyLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCBzZWxlY3Q6OnBsYWNlaG9sZGVyLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10ZXh0dWFsOjpwbGFjZWhvbGRlcixcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IGlucHV0OjpwbGFjZWhvbGRlcixcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IHRleHRhcmVhOjpwbGFjZWhvbGRlcixcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IHNlbGVjdDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpICFpbXBvcnRhbnQ7XG59XG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLWdyb3VwIC5lbGVtZW50b3ItZmllbGQtdGV4dHVhbDpob3ZlciwgLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCAuZWxlbWVudG9yLWZpZWxkLXRleHR1YWw6Zm9jdXMsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLWdyb3VwIGlucHV0W3R5cGU9dGV4dF06aG92ZXIsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLWdyb3VwIGlucHV0W3R5cGU9dGV4dF06Zm9jdXMsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLWdyb3VwIGlucHV0W3R5cGU9ZW1haWxdOmhvdmVyLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCBpbnB1dFt0eXBlPWVtYWlsXTpmb2N1cyxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtZ3JvdXAgaW5wdXRbdHlwZT10ZWxdOmhvdmVyLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCBpbnB1dFt0eXBlPXRlbF06Zm9jdXMsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLWdyb3VwIGlucHV0W3R5cGU9cGFzc3dvcmRdOmhvdmVyLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCBpbnB1dFt0eXBlPXBhc3N3b3JkXTpmb2N1cyxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtZ3JvdXAgdGV4dGFyZWE6aG92ZXIsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLWdyb3VwIHRleHRhcmVhOmZvY3VzLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC1ncm91cCBzZWxlY3Q6aG92ZXIsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLWdyb3VwIHNlbGVjdDpmb2N1cyxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdGV4dHVhbDpob3Zlcixcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdGV4dHVhbDpmb2N1cyxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IGlucHV0OmhvdmVyLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgaW5wdXQ6Zm9jdXMsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCB0ZXh0YXJlYTpob3Zlcixcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IHRleHRhcmVhOmZvY3VzLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgc2VsZWN0OmhvdmVyLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgc2VsZWN0OmZvY3VzIHtcbiAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNFRUVBRTMgIWltcG9ydGFudDtcbn1cbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgYnV0dG9uLmVsZW1lbnRvci1idXR0b24sXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgYnV0dG9uLmVsZW1lbnRvci1idXR0b25bdHlwZT1zdWJtaXRdIHtcbiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgYnV0dG9uLmVsZW1lbnRvci1idXR0b246OmJlZm9yZSxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgLmVsZW1lbnRvci1idXR0b246OmJlZm9yZSxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uW3R5cGU9c3VibWl0XTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIiAhaW1wb3J0YW50O1xuICB0b3A6IDAgIWltcG9ydGFudDtcbiAgbGVmdDogMCAhaW1wb3J0YW50O1xuICByaWdodDogMCAhaW1wb3J0YW50O1xuICBib3R0b206IDAgIWltcG9ydGFudDtcbiAgei1pbmRleDogLTEgIWltcG9ydGFudDtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMzVzIGN1YmljLWJlemllcigwLjYsIDAsIDAuMiwgMSksIHRyYW5zZm9ybSAwLjI1cyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCkgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xufVxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCBidXR0b24uZWxlbWVudG9yLWJ1dHRvbjpob3Zlcjo6YmVmb3JlLCAuaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uOmZvY3VzOjpiZWZvcmUsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uOmhvdmVyOjpiZWZvcmUsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uOmZvY3VzOjpiZWZvcmUsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCBidXR0b24uZWxlbWVudG9yLWJ1dHRvblt0eXBlPXN1Ym1pdF06aG92ZXI6OmJlZm9yZSxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uW3R5cGU9c3VibWl0XTpmb2N1czo6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiBzY2FsZSgwLjk1KSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG59XG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWljb24gaSxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgYnV0dG9uLmVsZW1lbnRvci1idXR0b24gLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWljb24gaSxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgLmVsZW1lbnRvci1idXR0b24gLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCBidXR0b24uZWxlbWVudG9yLWJ1dHRvblt0eXBlPXN1Ym1pdF0gLmVsZW1lbnRvci1idXR0b24taWNvbiBpLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgYnV0dG9uLmVsZW1lbnRvci1idXR0b25bdHlwZT1zdWJtaXRdIC5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnIHtcbiAgY29sb3I6ICNFMDhGMzUgIWltcG9ydGFudDtcbiAgZmlsbDogI0UwOEYzNSAhaW1wb3J0YW50O1xufVxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCBidXR0b24uZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIGkgcGF0aCxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgYnV0dG9uLmVsZW1lbnRvci1idXR0b24gLmVsZW1lbnRvci1idXR0b24taWNvbiBpIGxpbmUsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWljb24gaSBwb2x5bGluZSxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgYnV0dG9uLmVsZW1lbnRvci1idXR0b24gLmVsZW1lbnRvci1idXR0b24taWNvbiBpIHJlY3QsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWljb24gaSBjaXJjbGUsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnIHBhdGgsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnIGxpbmUsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnIHBvbHlsaW5lLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCBidXR0b24uZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2ZyByZWN0LFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCBidXR0b24uZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2ZyBjaXJjbGUsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWljb24gaSBwYXRoLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCAuZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIGkgbGluZSxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgLmVsZW1lbnRvci1idXR0b24gLmVsZW1lbnRvci1idXR0b24taWNvbiBpIHBvbHlsaW5lLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmVsZW1lbnRvci1maWVsZC10eXBlLXN1Ym1pdCAuZWxlbWVudG9yLWJ1dHRvbiAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIGkgcmVjdCxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgLmVsZW1lbnRvci1idXR0b24gLmVsZW1lbnRvci1idXR0b24taWNvbiBpIGNpcmNsZSxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgLmVsZW1lbnRvci1idXR0b24gLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcgcGF0aCxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgLmVsZW1lbnRvci1idXR0b24gLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcgbGluZSxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5lbGVtZW50b3ItZmllbGQtdHlwZS1zdWJtaXQgLmVsZW1lbnRvci1idXR0b24gLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcgcG9seWxpbmUsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnIHJlY3QsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCAuZWxlbWVudG9yLWZpZWxkLXR5cGUtc3VibWl0IC5lbGVtZW50b3ItYnV0dG9uIC5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnIGNpcmNsZSxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uW3R5cGU9c3VibWl0XSAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIGkgcGF0aCxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uW3R5cGU9c3VibWl0XSAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIGkgbGluZSxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uW3R5cGU9c3VibWl0XSAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIGkgcG9seWxpbmUsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCBidXR0b24uZWxlbWVudG9yLWJ1dHRvblt0eXBlPXN1Ym1pdF0gLmVsZW1lbnRvci1idXR0b24taWNvbiBpIHJlY3QsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCBidXR0b24uZWxlbWVudG9yLWJ1dHRvblt0eXBlPXN1Ym1pdF0gLmVsZW1lbnRvci1idXR0b24taWNvbiBpIGNpcmNsZSxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uW3R5cGU9c3VibWl0XSAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2ZyBwYXRoLFxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgYnV0dG9uLmVsZW1lbnRvci1idXR0b25bdHlwZT1zdWJtaXRdIC5lbGVtZW50b3ItYnV0dG9uLWljb24gc3ZnIGxpbmUsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCBidXR0b24uZWxlbWVudG9yLWJ1dHRvblt0eXBlPXN1Ym1pdF0gLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcgcG9seWxpbmUsXG4uaW5xdWlyeS1mb3JtLmZvcm0tdmFyaWFudC1saWdodCBidXR0b24uZWxlbWVudG9yLWJ1dHRvblt0eXBlPXN1Ym1pdF0gLmVsZW1lbnRvci1idXR0b24taWNvbiBzdmcgcmVjdCxcbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IGJ1dHRvbi5lbGVtZW50b3ItYnV0dG9uW3R5cGU9c3VibWl0XSAuZWxlbWVudG9yLWJ1dHRvbi1pY29uIHN2ZyBjaXJjbGUge1xuICBmaWxsOiBjdXJyZW50Q29sb3IgIWltcG9ydGFudDtcbiAgc3Ryb2tlOiBjdXJyZW50Q29sb3IgIWltcG9ydGFudDtcbn1cbi5pbnF1aXJ5LWZvcm0uZm9ybS12YXJpYW50LWxpZ2h0IC5mb3JtLXByaXZhY3ktdGV4dCB7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuLmlucXVpcnktZm9ybS5mb3JtLXZhcmlhbnQtbGlnaHQgLmZvcm0tcHJpdmFjeS10ZXh0IGEge1xuICBjb2xvcjogI0IxNTkzMztcbn1cblxuLmVsZW1lbnRvci13aWRnZXQtbi1hY2NvcmRpb24gLmUtbi1hY2NvcmRpb24taXRlbVtvcGVuXSAuZS1uLWFjY29yZGlvbi1pdGVtLXRpdGxlLXRleHQge1xuICBjb2xvcjogIzU1ODVDMiAhaW1wb3J0YW50O1xufVxuLmVsZW1lbnRvci13aWRnZXQtbi1hY2NvcmRpb24gLmUtbi1hY2NvcmRpb24taXRlbVtvcGVuXSAuZS1uLWFjY29yZGlvbi1pdGVtLXRpdGxlLWljb24gc3ZnIHBhdGgge1xuICBzdHJva2U6ICM1NTg1QzIgIWltcG9ydGFudDtcbn1cblxuLmNhcGFiaWxpdHktY2FyZHMtY29udGFpbmVyIHtcbiAgZ2FwOiAxMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XG4gIC5jYXBhYmlsaXR5LWNhcmRzLWNvbnRhaW5lciB7XG4gICAgcGFkZGluZy10b3A6IDMycHg7XG4gICAgcGFkZGluZy1ib3R0b206IDY0cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNEQkRBRDc7XG4gIH1cbn1cbi5jYXBhYmlsaXR5LWNhcmRzLWNvbnRhaW5lciAuY2FwYWJpbGl0eS1jYXJkLWl0ZW0ge1xuICBwYWRkaW5nOiAxNnB4IDA7XG4gIGdhcDogMjRweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkge1xuICAuY2FwYWJpbGl0eS1jYXJkcy1jb250YWluZXIgLmNhcGFiaWxpdHktY2FyZC1pdGVtIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG59XG4uY2FwYWJpbGl0eS1jYXJkcy1jb250YWluZXIgLmNhcGFiaWxpdHktY2FyZC1pdGVtIC5jYXBhYmlsaXR5LWNhcmQtaW1hZ2Uge1xuICB3aWR0aDogNDAlO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XG4gIC5jYXBhYmlsaXR5LWNhcmRzLWNvbnRhaW5lciAuY2FwYWJpbGl0eS1jYXJkLWl0ZW0gLmNhcGFiaWxpdHktY2FyZC1pbWFnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cbi5jYXBhYmlsaXR5LWNhcmRzLWNvbnRhaW5lciAuY2FwYWJpbGl0eS1jYXJkLWl0ZW0gLmNhcGFiaWxpdHktY2FyZC1pbWFnZSBpbWcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmNhcGFiaWxpdHktY2FyZHMtY29udGFpbmVyIC5jYXBhYmlsaXR5LWNhcmQtaXRlbSAuY2FwYWJpbGl0eS1jYXJkLWNvbnRlbnQge1xuICB3aWR0aDogNjAlO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XG4gIC5jYXBhYmlsaXR5LWNhcmRzLWNvbnRhaW5lciAuY2FwYWJpbGl0eS1jYXJkLWl0ZW0gLmNhcGFiaWxpdHktY2FyZC1jb250ZW50IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuLmNhcGFiaWxpdHktY2FyZHMtY29udGFpbmVyIC5jYXBhYmlsaXR5LWNhcmQtaXRlbSAuY2FwYWJpbGl0eS1jYXJkLWNvbnRlbnQgLmNhcGFiaWxpdHktY2FyZC10aXRsZSB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXNpemU6IDJyZW07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGxldHRlci1zcGFjaW5nOiAwLjAycHg7XG4gIGZvbnQtZmFtaWx5OiBcInp1dW1lXCIsIHNhbnMtc2VyaWY7XG59XG4uY2FwYWJpbGl0eS1jYXJkcy1jb250YWluZXIgLmNhcGFiaWxpdHktY2FyZC1pdGVtIC5jYXBhYmlsaXR5LWNhcmQtY29udGVudCAuY2FwYWJpbGl0eS1jYXJkLWRlc2Mge1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBmb250LWZhbWlseTogXCJuaXR0aS1ncm90ZXNrXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5zZXJ2aWNlcy13ZS1vZmZlci1jb250YWluZXIge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xufVxuLnNlcnZpY2VzLXdlLW9mZmVyLWNvbnRhaW5lciAuc2VydmljZXMtd2Utb2ZmZXItdGl0bGUge1xuICBtYXJnaW4tbGVmdDogMjRweDtcbiAgY29sb3I6ICNCMTU5MzM7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1mYW1pbHk6IFwienV1bWVcIiwgc2Fucy1zZXJpZjtcbn1cbi5zZXJ2aWNlcy13ZS1vZmZlci1jb250YWluZXIgLnN5c3RlbXMtd2Utc2VydmUtdGl0bGUge1xuICBtYXJnaW4tdG9wOiAzMHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDBweCAhaW1wb3J0YW50O1xuICBtYXJnaW4tbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG59XG4uc2VydmljZXMtd2Utb2ZmZXItY29udGFpbmVyIC5zZXJ2aWNlcy13ZS1vZmZlci1saXN0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uc2VydmljZXMtd2Utb2ZmZXItY29udGFpbmVyIC5zZXJ2aWNlcy13ZS1vZmZlci1saXN0OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcmlnaHQ6IC0xMDAlO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDFweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjREJEQUQ3O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XG4gIC5zZXJ2aWNlcy13ZS1vZmZlci1jb250YWluZXIgLnNlcnZpY2VzLXdlLW9mZmVyLWxpc3Q6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5zZXJ2aWNlcy13ZS1vZmZlci1jb250YWluZXIgLnNlcnZpY2VzLXdlLW9mZmVyLWxpc3QgLnNlcnZpY2VzLXdlLW9mZmVyLWl0ZW0ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDIwcHggMjRweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0RCREFENztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkge1xuICAuc2VydmljZXMtd2Utb2ZmZXItY29udGFpbmVyIC5zZXJ2aWNlcy13ZS1vZmZlci1saXN0IC5zZXJ2aWNlcy13ZS1vZmZlci1pdGVtIHtcbiAgICBwYWRkaW5nOiAyMHB4IDE2cHg7XG4gIH1cbn1cbi5zZXJ2aWNlcy13ZS1vZmZlci1jb250YWluZXIgLnNlcnZpY2VzLXdlLW9mZmVyLWxpc3QgLnNlcnZpY2VzLXdlLW9mZmVyLWl0ZW06YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgdG9wOiAtMC41cHg7XG4gIHJpZ2h0OiAtMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMC41cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0RCREFENztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkge1xuICAuc2VydmljZXMtd2Utb2ZmZXItY29udGFpbmVyIC5zZXJ2aWNlcy13ZS1vZmZlci1saXN0IC5zZXJ2aWNlcy13ZS1vZmZlci1pdGVtOmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLnNlcnZpY2VzLXdlLW9mZmVyLWNvbnRhaW5lciAuc2VydmljZXMtd2Utb2ZmZXItbGlzdCAuc2VydmljZXMtd2Utb2ZmZXItaXRlbTpmaXJzdC1jaGlsZCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjREJEQUQ3O1xufVxuLnNlcnZpY2VzLXdlLW9mZmVyLWNvbnRhaW5lciAuc2VydmljZXMtd2Utb2ZmZXItbGlzdCAuc2VydmljZXMtd2Utb2ZmZXItaXRlbSBhLFxuLnNlcnZpY2VzLXdlLW9mZmVyLWNvbnRhaW5lciAuc2VydmljZXMtd2Utb2ZmZXItbGlzdCAuc2VydmljZXMtd2Utb2ZmZXItaXRlbSBzcGFuIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMS4zNzU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1mYW1pbHk6IFwibml0dGktZ3JvdGVza1wiLCBzYW5zLXNlcmlmO1xufVxuLnNlcnZpY2VzLXdlLW9mZmVyLWNvbnRhaW5lciAuc2VydmljZXMtd2Utb2ZmZXItbGlzdCAuc2VydmljZXMtd2Utb2ZmZXItaXRlbSBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogI0IxNTkzMztcbiAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMnB4O1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDVweDtcbn1cblxuLnBvc2l0aW9uLXN0aWNreSB7XG4gIGFsaWduLXNlbGY6IHN0YXJ0O1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XG4gIC5wb3NpdGlvbi1zdGlja3kge1xuICAgIGFsaWduLXNlbGY6IGF1dG87XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNEQkRBRDc7XG4gIH1cbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENhcGFiaWxpdGllcyBTdGlja3kgTGlzdFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5zbWFydC1zdGlja3ktYW5jZXN0b3Ige1xuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdy14OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIG92ZXJmbG93LXk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2xpcC1wYXRoOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5zbWFydC1zdGlja3ktY29udGFpbmVyIHtcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBtYXgtY29udGVudCAhaW1wb3J0YW50O1xufVxuLnNtYXJ0LXN0aWNreS1jb250YWluZXIgLmVsZW1lbnRvci13aWRnZXQtc2hvcnRjb2RlIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5zbWFydC1zdGlja3ktY29udGFpbmVyIC5zZXJ2aWNlcy13ZS1vZmZlci1saXN0LFxuLnNtYXJ0LXN0aWNreS1jb250YWluZXIgLmVsZW1lbnRvci1zaG9ydGNvZGUgPiB1bCxcbi5zbWFydC1zdGlja3ktY29udGFpbmVyIC5lbGVtZW50b3Itc2hvcnRjb2RlID4gZGl2IHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5zbWFydC1zdGlja3ktY29udGFpbmVyIC5zZXJ2aWNlcy13ZS1vZmZlci1saXN0IC5zZXJ2aWNlcy13ZS1vZmZlci1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgYm9yZGVyLXRvcDogbm9uZTtcbn1cbi5zbWFydC1zdGlja3ktY29udGFpbmVyIC5zZXJ2aWNlcy13ZS1vZmZlci1saXN0IC5zZXJ2aWNlcy13ZS1vZmZlci1pdGVtOmZpcnN0LWNoaWxkOjpiZWZvcmUge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnNtYXJ0LXN0aWNreS1jb250YWluZXIuc21hcnQtc3RpY2t5LXNob3J0IHtcbiAgdG9wOiAwICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiBzdGlja3kgIWltcG9ydGFudDtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydCAhaW1wb3J0YW50O1xufVxuLnNtYXJ0LXN0aWNreS1jb250YWluZXIuc21hcnQtc3RpY2t5LWxvbmcge1xuICBoZWlnaHQ6IG1heC1jb250ZW50ICFpbXBvcnRhbnQ7XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbn1cblxuLnNtYXJ0LXN0aWNreS10aXRsZS1zdHlsZSB7XG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogNjJweCAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50O1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctdG9wOiAxNXB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogMjRweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAxNXB4ICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uc21hcnQtc3RpY2t5LXRpdGxlLXN0eWxlOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHRvcDogLTEwcHg7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAtMTAwJTtcbiAgYm90dG9tOiAwO1xuICB6LWluZGV4OiAtMTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNtYXJ0LXN0aWNreS1iZywgI0Y5RjhGNik7XG59XG4uc21hcnQtc3RpY2t5LXRpdGxlLXN0eWxlIC5lbGVtZW50b3Itd2lkZ2V0LWhlYWRpbmcsXG4uc21hcnQtc3RpY2t5LXRpdGxlLXN0eWxlIC5lbGVtZW50b3Itd2lkZ2V0LWNvbnRhaW5lcixcbi5zbWFydC1zdGlja3ktdGl0bGUtc3R5bGUgLmVsZW1lbnRvci1oZWFkaW5nLXRpdGxlIHtcbiAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5zbWFydC1zdGlja3ktdGl0bGUtc3RpY2sge1xuICB0b3A6IDc4cHggIWltcG9ydGFudDtcbiAgei1pbmRleDogMTAgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHN0aWNreSAhaW1wb3J0YW50O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoICFpbXBvcnRhbnQ7XG59XG4uYWRtaW4tYmFyIC5zbWFydC1zdGlja3ktdGl0bGUtc3RpY2sge1xuICB0b3A6IDExMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJrZXQtY2FyZHMtY29udGFpbmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGdhcDogMzBweDtcbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAubWFya2V0LWNhcmRzLWNvbnRhaW5lciB7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XG4gIC5tYXJrZXQtY2FyZHMtY29udGFpbmVyIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgfVxufVxuLm1hcmtldC1jYXJkcy1jb250YWluZXIgLm1hcmtldC1jYXJkLWl0ZW0ge1xuICBwYWRkaW5nOiA0MHB4IDMycHg7XG4gIGJvcmRlci10b3Atd2lkdGg6IDIwcHg7XG4gIGJvcmRlci10b3Atc3R5bGU6IHNvbGlkO1xuICBib3gtc2hhZG93OiAwIDRweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkge1xuICAubWFya2V0LWNhcmRzLWNvbnRhaW5lciAubWFya2V0LWNhcmQtaXRlbSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG4ubWFya2V0LWNhcmRzLWNvbnRhaW5lciAubWFya2V0LWNhcmQtaXRlbTpudGgtY2hpbGQoM24rMSkge1xuICBib3JkZXItdG9wLWNvbG9yOiAjQjE1OTMzO1xufVxuLm1hcmtldC1jYXJkcy1jb250YWluZXIgLm1hcmtldC1jYXJkLWl0ZW06bnRoLWNoaWxkKDNuKzIpIHtcbiAgYm9yZGVyLXRvcC1jb2xvcjogIzBEM0U3MDtcbn1cbi5tYXJrZXQtY2FyZHMtY29udGFpbmVyIC5tYXJrZXQtY2FyZC1pdGVtOm50aC1jaGlsZCgzbikge1xuICBib3JkZXItdG9wLWNvbG9yOiAjRTA4RjM1O1xufVxuLm1hcmtldC1jYXJkcy1jb250YWluZXIgLm1hcmtldC1jYXJkLWl0ZW0gLm1hcmtldC1jYXJkLWNvbnRlbnQge1xuICBmbGV4LWdyb3c6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbi5tYXJrZXQtY2FyZHMtY29udGFpbmVyIC5tYXJrZXQtY2FyZC1pdGVtIC5tYXJrZXQtY2FyZC1jb250ZW50IC5tYXJrZXQtY2FyZC10aXRsZSB7XG4gIG1hcmdpbjogMDtcbiAgbWFyZ2luLWJvdHRvbTogNjRweDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMi41cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LWZhbWlseTogXCJ6dXVtZVwiLCBzYW5zLXNlcmlmO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XG4gIC5tYXJrZXQtY2FyZHMtY29udGFpbmVyIC5tYXJrZXQtY2FyZC1pdGVtIC5tYXJrZXQtY2FyZC1jb250ZW50IC5tYXJrZXQtY2FyZC10aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgfVxufVxuLm1hcmtldC1jYXJkcy1jb250YWluZXIgLm1hcmtldC1jYXJkLWl0ZW0gLm1hcmtldC1jYXJkLWNvbnRlbnQgLm1hcmtldC1jYXJkLWRlc2Mge1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXNpemU6IDEuMTI1cmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBmb250LWZhbWlseTogXCJuaXR0aS1ncm90ZXNrXCIsIHNhbnMtc2VyaWY7XG59XG5cbi5wb3N0LWJvZHktY29udGVudCBoMiB7XG4gIG1hcmdpbi10b3A6IDIuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAzMnB4O1xuICBsaW5lLWhlaWdodDogMS4xICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgZm9udC1mYW1pbHk6IFwibml0dGktZ3JvdGVza1wiLCBzYW5zLXNlcmlmO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XG4gIC5wb3N0LWJvZHktY29udGVudCBoMiB7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNnB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi5wb3N0LWJvZHktY29udGVudCBoMyB7XG4gIG1hcmdpbi10b3A6IDJyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXNpemU6IDIycHg7XG4gIGxpbmUtaGVpZ2h0OiAyNnB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgZm9udC1mYW1pbHk6IFwibml0dGktZ3JvdGVza1wiLCBzYW5zLXNlcmlmO1xufVxuLnBvc3QtYm9keS1jb250ZW50IGg0IHtcbiAgbWFyZ2luLXRvcDogMS41cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjhyZW07XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4ICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgZm9udC1mYW1pbHk6IFwibml0dGktZ3JvdGVza1wiLCBzYW5zLXNlcmlmO1xufVxuLnBvc3QtYm9keS1jb250ZW50IGg1IHtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC42cmVtO1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjBweCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiBcIm5pdHRpLWdyb3Rlc2tcIiwgc2Fucy1zZXJpZjtcbn1cbi5wb3N0LWJvZHktY29udGVudCBoNiB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBmb250LWZhbWlseTogXCJuaXR0aS1ncm90ZXNrXCIsIHNhbnMtc2VyaWY7XG59XG4ucG9zdC1ib2R5LWNvbnRlbnQgcCB7XG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIGZvbnQtZmFtaWx5OiBcIm5pdHRpLWdyb3Rlc2tcIiwgc2Fucy1zZXJpZjtcbn1cbi5wb3N0LWJvZHktY29udGVudCBhIHtcbiAgY29sb3I6ICMwRDNFNzA7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLnBvc3QtYm9keS1jb250ZW50IGE6aG92ZXIge1xuICBjb2xvcjogIzU1ODVDMjtcbn1cbi5wb3N0LWJvZHktY29udGVudCBvbCB7XG4gIG1hcmdpbjogMS41cmVtIDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgY291bnRlci1yZXNldDogcG9zdC1vbC1jb3VudGVyO1xufVxuLnBvc3QtYm9keS1jb250ZW50IG9sIGxpIHtcbiAgY291bnRlci1pbmNyZW1lbnQ6IHBvc3Qtb2wtY291bnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgcGFkZGluZy1sZWZ0OiA0MnB4O1xuICBjb2xvcjogIzAwMDAwMDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmb250LWZhbWlseTogXCJuaXR0aS1ncm90ZXNrXCIsIHNhbnMtc2VyaWY7XG59XG4ucG9zdC1ib2R5LWNvbnRlbnQgb2wgbGk6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IGNvdW50ZXIocG9zdC1vbC1jb3VudGVyLCBkZWNpbWFsLWxlYWRpbmctemVybykgXCIuXCI7XG4gIGxlZnQ6IDA7XG4gIHRvcDogLTNweDtcbiAgd2lkdGg6IDMwcHg7XG4gIGNvbG9yOiAjQjE1OTMzO1xuICBmb250LXNpemU6IDIycHg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGZvbnQtZmFtaWx5OiBcIm5pdHRpLWdyb3Rlc2tcIiwgc2Fucy1zZXJpZjtcbn1cbi5wb3N0LWJvZHktY29udGVudCBvbCBsaSBzdHJvbmc6Zmlyc3QtY2hpbGQsXG4ucG9zdC1ib2R5LWNvbnRlbnQgb2wgbGkgYjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDAuNHJlbTtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMS4xNXJlbTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBcIm5pdHRpLWdyb3Rlc2tcIiwgc2Fucy1zZXJpZjtcbn1cbi5wb3N0LWJvZHktY29udGVudCB1bCB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luOiAxLjVyZW0gMDtcbn1cbi5wb3N0LWJvZHktY29udGVudCB1bCBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG4gIHBhZGRpbmctbGVmdDogMTZweDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1mYW1pbHk6IFwibml0dGktZ3JvdGVza1wiLCBzYW5zLXNlcmlmO1xufVxuLnBvc3QtYm9keS1jb250ZW50IHVsIGxpOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBsZWZ0OiAwO1xuICB0b3A6IDdweDtcbiAgd2lkdGg6IDZweDtcbiAgaGVpZ2h0OiA2cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQjE1OTMzO1xufVxuLnBvc3QtYm9keS1jb250ZW50IHVsIGxpIHN0cm9uZyxcbi5wb3N0LWJvZHktY29udGVudCB1bCBsaSBiIHtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5wb3N0LWJvZHktY29udGVudCB1bC5saXN0LWNoZWNrbWFyayB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMS41cmVtIDA7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cbi5wb3N0LWJvZHktY29udGVudCB1bC5saXN0LWNoZWNrbWFyayBsaSB7XG4gIG1hcmdpbi1ib3R0b206IDEycHg7XG4gIHBhZGRpbmctbGVmdDogMzBweDtcbiAgY29sb3I6ICMwMDAwMDA7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZm9udC1mYW1pbHk6IFwibml0dGktZ3JvdGVza1wiLCBzYW5zLXNlcmlmO1xufVxuLnBvc3QtYm9keS1jb250ZW50IHVsLmxpc3QtY2hlY2ttYXJrIGxpOjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Fzc2V0cy9pbWFnZXMvaWNvbnMvY2hlY2suc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG59XG4ucG9zdC1ib2R5LWNvbnRlbnQgdWwubGlzdC1jaGVja21hcmsgbGkgc3Ryb25nLFxuLnBvc3QtYm9keS1jb250ZW50IHVsLmxpc3QtY2hlY2ttYXJrIGxpIGIge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuLnBvc3QtYm9keS1jb250ZW50IC5wb3N0LW1hcmstY2hlY2ttYXJrIHtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4ucG9zdC1ib2R5LWNvbnRlbnQgLnBvc3QtbWFyay1jaGVja21hcms6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Fzc2V0cy9pbWFnZXMvaWNvbnMvY2hlY2suc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG59XG4ucG9zdC1ib2R5LWNvbnRlbnQgYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogNDhweCAwO1xuICBwYWRkaW5nLWxlZnQ6IDY1cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLnBvc3QtYm9keS1jb250ZW50IGJsb2NrcXVvdGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHRvcDogNnB4O1xuICBsZWZ0OiAwO1xuICB3aWR0aDogNDFweDtcbiAgaGVpZ2h0OiAzNnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uLy4uL2Fzc2V0cy9pbWFnZXMvaWNvbnMvYmxvY2txdW90ZS5zdmdcIik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbn1cbi5wb3N0LWJvZHktY29udGVudCBibG9ja3F1b3RlIHA6Zmlyc3Qtb2YtdHlwZSB7XG4gIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXNpemU6IDMycHg7XG4gIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LWZhbWlseTogXCJuaXR0aS1ncm90ZXNrXCIsIHNhbnMtc2VyaWY7XG59XG4ucG9zdC1ib2R5LWNvbnRlbnQgYmxvY2txdW90ZSBwOmxhc3Qtb2YtdHlwZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIGNvbG9yOiAjMDAwMDAwO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wMWVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LWZhbWlseTogXCJuaXR0aS1ncm90ZXNrXCIsIHNhbnMtc2VyaWY7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnBvc3QtYm9keS1jb250ZW50IGJsb2NrcXVvdGUge1xuICAgIHBhZGRpbmctbGVmdDogNTRweDtcbiAgfVxuICAucG9zdC1ib2R5LWNvbnRlbnQgYmxvY2txdW90ZTo6YmVmb3JlIHtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgdG9wOiA0cHg7XG4gIH1cbiAgLnBvc3QtYm9keS1jb250ZW50IGJsb2NrcXVvdGUgcDpmaXJzdC1vZi10eXBlIHtcbiAgICBmb250LXNpemU6IDMycHg7XG4gICAgbGluZS1oZWlnaHQ6IDM1cHg7XG4gIH1cbiAgLnBvc3QtYm9keS1jb250ZW50IGJsb2NrcXVvdGUgcDpsYXN0LW9mLXR5cGUge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgfVxufVxuLnBvc3QtYm9keS1jb250ZW50LnBvc3QtYm9keS1jb250ZW50LXdoaXRlIHtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4ucG9zdC1ib2R5LWNvbnRlbnQucG9zdC1ib2R5LWNvbnRlbnQtd2hpdGUgaDIsXG4ucG9zdC1ib2R5LWNvbnRlbnQucG9zdC1ib2R5LWNvbnRlbnQtd2hpdGUgaDMsXG4ucG9zdC1ib2R5LWNvbnRlbnQucG9zdC1ib2R5LWNvbnRlbnQtd2hpdGUgaDQsXG4ucG9zdC1ib2R5LWNvbnRlbnQucG9zdC1ib2R5LWNvbnRlbnQtd2hpdGUgaDUsXG4ucG9zdC1ib2R5LWNvbnRlbnQucG9zdC1ib2R5LWNvbnRlbnQtd2hpdGUgaDYsXG4ucG9zdC1ib2R5LWNvbnRlbnQucG9zdC1ib2R5LWNvbnRlbnQtd2hpdGUgcCxcbi5wb3N0LWJvZHktY29udGVudC5wb3N0LWJvZHktY29udGVudC13aGl0ZSBsaSxcbi5wb3N0LWJvZHktY29udGVudC5wb3N0LWJvZHktY29udGVudC13aGl0ZSBzdHJvbmcsXG4ucG9zdC1ib2R5LWNvbnRlbnQucG9zdC1ib2R5LWNvbnRlbnQtd2hpdGUgYiB7XG4gIGNvbG9yOiAjRkZGRkZGO1xufVxuLnBvc3QtYm9keS1jb250ZW50LnBvc3QtYm9keS1jb250ZW50LXdoaXRlIG9sIGxpOjpiZWZvcmUge1xuICBjb2xvcjogI0UwOEYzNTtcbn1cbi5wb3N0LWJvZHktY29udGVudC5wb3N0LWJvZHktY29udGVudC13aGl0ZSB1bCBsaTo6YmVmb3JlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0UwOEYzNTtcbn1cblxuYm9keS5zaW5nbGUtY2FzZS1zdHVkeSAucG9zaXRpb24tc3RpY2t5IC5wb3N0LWJvZHktY29udGVudCB1bCB7XG4gIG1hcmdpbjogMDtcbn1cblxuLmNvcnZhbnQtY3VzdG9tLW1hcC13cmFwcGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMjUwcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VFRUFFMztcbn1cbi5jb3J2YW50LWN1c3RvbS1tYXAtd3JhcHBlciAuY29ydmFudC1tYXAtb3ZlcmxheS1saW5rIHtcbiAgdG9wOiAxNXB4O1xuICBsZWZ0OiAxNXB4O1xuICB6LWluZGV4OiAxMDtcbiAgcGFkZGluZzogOHB4IDEycHg7XG4gIGNvbG9yOiAjNTU4NUMyO1xuICBmb250LXNpemU6IDAuODc1cmVtO1xuICBmb250LXdlaWdodDogNTAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjNTU4NUMyO1xuICBib3gtc2hhZG93OiAwIDJweCA2cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgYmFja2dyb3VuZDogI0ZGRkZGRjtcbiAgZm9udC1mYW1pbHk6IFwibml0dGktZ3JvdGVza1wiLCBzYW5zLXNlcmlmO1xuICBnYXA6IDZweDtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG59XG4uY29ydmFudC1jdXN0b20tbWFwLXdyYXBwZXIgLmNvcnZhbnQtbWFwLW92ZXJsYXktbGluayBzdmcge1xuICBzdHJva2U6ICM1NTg1QzI7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG4uY29ydmFudC1jdXN0b20tbWFwLXdyYXBwZXIgLmNvcnZhbnQtbWFwLW92ZXJsYXktbGluazpob3ZlciB7XG4gIGNvbG9yOiAjMEQzRTcwO1xuICBib3JkZXItY29sb3I6ICMwRDNFNzA7XG4gIGJhY2tncm91bmQ6ICNGQkY4RjM7XG59XG4uY29ydmFudC1jdXN0b20tbWFwLXdyYXBwZXIgLmNvcnZhbnQtbWFwLW92ZXJsYXktbGluazpob3ZlciBzdmcge1xuICBzdHJva2U6ICMwRDNFNzA7XG59XG4uY29ydmFudC1jdXN0b20tbWFwLXdyYXBwZXIgLmNvcnZhbnQtY3VzdG9tLW1hcCB7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBBLiBFU1RJTE9TIERFTCBDT05URU5FRE9SIFBBRFJFIERFTCBDQVJSVVNFTFxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIChtaW4td2lkdGg6IDEzNjdweCkge1xuICAuZGV0YWlsLWNhcm91c2VsLXNlY3Rpb24ge1xuICAgIHBhZGRpbmctbGVmdDogY2FsYygoMTAwdncgLSAxMzMwcHgpIC8gMikgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEzNjZweCkgYW5kIChtaW4td2lkdGg6IDEyODBweCkge1xuICAuZGV0YWlsLWNhcm91c2VsLXNlY3Rpb24ge1xuICAgIHBhZGRpbmctbGVmdDogNjBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogMTI3OXB4KSBhbmQgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmRldGFpbC1jYXJvdXNlbC1zZWN0aW9uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5kZXRhaWwtY2Fyb3VzZWwtc2VjdGlvbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBTaSBlbCBjb250ZW5lZG9yIG5vIHRpZW5lIGVsIGNhcnJ1c2VsIGFkZW50cm8sIHNlIG9jdWx0YSBhdXRvbcOhdGljYW1lbnRlICovXG4uZGV0YWlsLWNhcm91c2VsLXNlY3Rpb246bm90KDpoYXMoLmVsZW1lbnRvci13aWRnZXQtaW1hZ2UtY2Fyb3VzZWwpKSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQi4gRVNUSUxPUyBERUwgV0lER0VUIENBUlJVU0VMIChGTEVDSEFTIFkgU0NST0xMKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLmRldGFpbC1jYXJvdXNlbCAuZWxlbWVudG9yLXN3aXBlci1idXR0b24ge1xuICB0b3A6IGF1dG8gIWltcG9ydGFudDtcbiAgYm90dG9tOiAtNzBweCAhaW1wb3J0YW50O1xuICB3aWR0aDogNDZweCAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDQ0cHggIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMCAhaW1wb3J0YW50O1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbn1cblxuLmRldGFpbC1jYXJvdXNlbCAuZWxlbWVudG9yLXN3aXBlci1idXR0b24gc3ZnIHBhdGgge1xuICBzdHJva2U6ICNmZmZmZmYgIWltcG9ydGFudDtcbn1cblxuLmRldGFpbC1jYXJvdXNlbCAuZWxlbWVudG9yLXN3aXBlci1idXR0b24tcHJldiB7XG4gIGxlZnQ6IDAgIWltcG9ydGFudDtcbn1cblxuLmRldGFpbC1jYXJvdXNlbCAuZWxlbWVudG9yLXN3aXBlci1idXR0b24tbmV4dCB7XG4gIGxlZnQ6IDU2cHggIWltcG9ydGFudDtcbiAgcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLmRldGFpbC1jYXJvdXNlbCAuZWxlbWVudG9yLXN3aXBlci1idXR0b24uc3dpcGVyLWJ1dHRvbi1kaXNhYmxlZCB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0I3QjVCMCAhaW1wb3J0YW50O1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDLiBXSURHRVQgQ0FSUlVTRUw6IENPTVBVVEFET1JBIChBTklNQUNJw5NOIFBSRU1JVU0pXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNXB4KSB7XG4gIC5kZXRhaWwtY2Fyb3VzZWwgLmVsZW1lbnRvci13aWRnZXQtY29udGFpbmVyLFxuICAuZGV0YWlsLWNhcm91c2VsIC5lbGVtZW50b3ItaW1hZ2UtY2Fyb3VzZWwtd3JhcHBlci5zd2lwZXIge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgY2xpcC1wYXRoOiBpbnNldCgtNTBweCAwcHggLTE1MHB4IDBweCkgIWltcG9ydGFudDtcbiAgfVxuICAuZGV0YWlsLWNhcm91c2VsIC5zd2lwZXItc2xpZGUge1xuICAgIGhlaWdodDogNDA5cHggIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgfVxuICAuZGV0YWlsLWNhcm91c2VsIGZpZ3VyZS5zd2lwZXItc2xpZGUtaW5uZXIge1xuICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2UgIWltcG9ydGFudDtcbiAgfVxuICAuZGV0YWlsLWNhcm91c2VsIGZpZ3VyZS5zd2lwZXItc2xpZGUtaW5uZXIgaW1nIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogNDA5cHggIWltcG9ydGFudDtcbiAgICBvYmplY3QtZml0OiBjb3ZlciAhaW1wb3J0YW50O1xuICB9XG4gIC8qIE3DoXF1aW5hIGRlIEVzdGFkb3MgKFRyYW5zaWNpb25lcyBTdWF2ZXMpICovXG4gIC5kZXRhaWwtY2Fyb3VzZWwgLnN3aXBlci1zbGlkZS1wcmV2IGZpZ3VyZS5zd2lwZXItc2xpZGUtaW5uZXIge1xuICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICB3aWR0aDogNzYuOTUlICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMCAhaW1wb3J0YW50O1xuICB9XG4gIC5kZXRhaWwtY2Fyb3VzZWwgLnN3aXBlci1zbGlkZS1hY3RpdmUgZmlndXJlLnN3aXBlci1zbGlkZS1pbm5lciB7XG4gICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiA3Ni45NSUgIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmRldGFpbC1jYXJvdXNlbCAuc3dpcGVyLXNsaWRlLW5leHQgZmlndXJlLnN3aXBlci1zbGlkZS1pbm5lciB7XG4gICAgbGVmdDogLTE3LjI4JSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxMzQuNSUgIWltcG9ydGFudDtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmRldGFpbC1jYXJvdXNlbCAuc3dpcGVyLXNsaWRlLW5leHQgKyAuc3dpcGVyLXNsaWRlIGZpZ3VyZS5zd2lwZXItc2xpZGUtaW5uZXIge1xuICAgIGxlZnQ6IDIyLjk2JSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiA3Ni45NSUgIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmRldGFpbC1jYXJvdXNlbCAuc3dpcGVyLXNsaWRlLW5leHQgKyAuc3dpcGVyLXNsaWRlIH4gLnN3aXBlci1zbGlkZSBmaWd1cmUuc3dpcGVyLXNsaWRlLWlubmVyIHtcbiAgICBsZWZ0OiAyMi45NiUgIWltcG9ydGFudDtcbiAgICB3aWR0aDogNzYuOTUlICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMCAhaW1wb3J0YW50O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEQuIFdJREdFVCBDQVJSVVNFTDogTcOTVklMIFkgVEFCTEVUIChQRUVLSU5HIFNMSURFKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuZGV0YWlsLWNhcm91c2VsIC5lbGVtZW50b3Itd2lkZ2V0LWNvbnRhaW5lciB7XG4gICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgfVxuICAuZGV0YWlsLWNhcm91c2VsIC5lbGVtZW50b3ItaW1hZ2UtY2Fyb3VzZWwtd3JhcHBlci5zd2lwZXIge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNSUgIWltcG9ydGFudDtcbiAgICBjbGlwLXBhdGg6IG5vbmUgIWltcG9ydGFudDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94ICFpbXBvcnRhbnQ7XG4gIH1cbiAgLmRldGFpbC1jYXJvdXNlbCAuc3dpcGVyLXNsaWRlIHtcbiAgICBoZWlnaHQ6IDMyMHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMTVweCAhaW1wb3J0YW50O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3ggIWltcG9ydGFudDtcbiAgfVxuICAuZGV0YWlsLWNhcm91c2VsIC5zd2lwZXItc2xpZGUgaW1nIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMzIwcHggIWltcG9ydGFudDtcbiAgICBvYmplY3QtZml0OiBjb3ZlciAhaW1wb3J0YW50O1xuICB9XG59XG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBSRUxBVEVEIFBST0pFQ1RTIFNFQ1RJT04gU1RZTEVTXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiAxLiBNYWluIGNvbnRhaW5lciBhbGlnbm1lbnQgYW5kIHBhZGRpbmdzICovXG5AbWVkaWEgKG1pbi13aWR0aDogMTM2N3B4KSB7XG4gIC5yZWxhdGVkLXByb2plY3RzLXNlY3Rpb24ge1xuICAgIHBhZGRpbmctbGVmdDogY2FsYygoMTAwdncgLSAxMzMwcHgpIC8gMikgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEzNjZweCkgYW5kIChtaW4td2lkdGg6IDEyODBweCkge1xuICAucmVsYXRlZC1wcm9qZWN0cy1zZWN0aW9uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDYwcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEyNzlweCkgYW5kIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5yZWxhdGVkLXByb2plY3RzLXNlY3Rpb24ge1xuICAgIHBhZGRpbmctbGVmdDogMzBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDBweCAhaW1wb3J0YW50O1xuICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLnJlbGF0ZWQtcHJvamVjdHMtc2VjdGlvbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMTZweCAhaW1wb3J0YW50O1xuICB9XG59XG4vKiBIaWRlIHNlY3Rpb24gaWYgZW1wdHkgKi9cbi5yZWxhdGVkLXByb2plY3RzLXNlY3Rpb246bm90KDpoYXMoLmVsZW1lbnRvci13aWRnZXQtbG9vcC1jYXJvdXNlbCkpIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiAyLiBTbGlkZXIgbmF2aWdhdGlvbiBhcnJvdyBzdHlsZXMgKi9cbi5yZWxhdGVkLXByb2plY3RzLWNhcm91c2VsIC5lbGVtZW50b3Itc3dpcGVyLWJ1dHRvbiB7XG4gIHRvcDogYXV0byAhaW1wb3J0YW50O1xuICBib3R0b206IC03MHB4ICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiA0NnB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogNDRweCAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xufVxuXG4ucmVsYXRlZC1wcm9qZWN0cy1jYXJvdXNlbCAuZWxlbWVudG9yLXN3aXBlci1idXR0b24gc3ZnIHBhdGgge1xuICBzdHJva2U6ICNGRkZGRkYgIWltcG9ydGFudDtcbn1cblxuLnJlbGF0ZWQtcHJvamVjdHMtY2Fyb3VzZWwgLmVsZW1lbnRvci1zd2lwZXItYnV0dG9uLXByZXYge1xuICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG59XG5cbi5yZWxhdGVkLXByb2plY3RzLWNhcm91c2VsIC5lbGVtZW50b3Itc3dpcGVyLWJ1dHRvbi1uZXh0IHtcbiAgbGVmdDogNTZweCAhaW1wb3J0YW50O1xuICByaWdodDogYXV0byAhaW1wb3J0YW50O1xufVxuXG4ucmVsYXRlZC1wcm9qZWN0cy1jYXJvdXNlbCAuZWxlbWVudG9yLXN3aXBlci1idXR0b24uc3dpcGVyLWJ1dHRvbi1kaXNhYmxlZCB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0I3QjVCMCAhaW1wb3J0YW50O1xufVxuXG4vKiAzLiBTdXBwb3J0IGZvciBzaW5nbGUtc2xpZGUgaXRlbXMgKi9cbi5yZWxhdGVkLXByb2plY3RzLXNlY3Rpb246aGFzKGRpdi5zd2lwZXItc2xpZGU6b25seS1vZi10eXBlKSAuZWxlbWVudG9yLXN3aXBlci1idXR0b24ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5yZWxhdGVkLXByb2plY3RzLWNhcm91c2VsIGRpdi5zd2lwZXItc2xpZGU6b25seS1vZi10eXBlIHtcbiAgbWF4LXdpZHRoOiAxMzIwcHggIWltcG9ydGFudDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgV0lER0VUIExPR08gTUFSUVVFRSAoR0FMRVLDjUEgQsOBU0lDQSBJTkZJTklUQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5jdXN0b20tbGVhZGVycy1jYXJvdXNlbCB7XG4gIHdpZHRoOiAxMDB2dztcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoNTAlIC0gNTB2dyk7XG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgbWl4LWJsZW5kLW1vZGU6IG11bHRpcGx5O1xuICBmaWx0ZXI6IGdyYXlzY2FsZSgxMDAlKSBjb250cmFzdCgxMzAlKSBicmlnaHRuZXNzKDgwJSk7XG59XG4uY3VzdG9tLWxlYWRlcnMtY2Fyb3VzZWwgLmdhbGxlcnkge1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGZsZXgtd3JhcDogbm93cmFwICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiBtYXgtY29udGVudCAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAgIWltcG9ydGFudDtcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbn1cbi5jdXN0b20tbGVhZGVycy1jYXJvdXNlbCAuZ2FsbGVyeS5tYXJxdWVlLXJlYWR5IHtcbiAgYW5pbWF0aW9uOiBzbGlkZXItbG9nb3MgNDVzIGxpbmVhciBpbmZpbml0ZTtcbn1cbi5jdXN0b20tbGVhZGVycy1jYXJvdXNlbCAuZ2FsbGVyeSAuZ2FsbGVyeS1pdGVtIHtcbiAgd2lkdGg6IDE4MHB4ICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDogMTgwcHggIWltcG9ydGFudDtcbiAgZmxleDogMCAwIDE4MHB4ICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMTIwcHggIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xuICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcbiAgLmN1c3RvbS1sZWFkZXJzLWNhcm91c2VsIC5nYWxsZXJ5IC5nYWxsZXJ5LWl0ZW0ge1xuICAgIHdpZHRoOiAxMjBweCAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMTIwcHggIWltcG9ydGFudDtcbiAgICBmbGV4OiAwIDAgMTIwcHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDkwcHggIWltcG9ydGFudDtcbiAgfVxufVxuLmN1c3RvbS1sZWFkZXJzLWNhcm91c2VsIC5nYWxsZXJ5LWljb24ge1xuICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG59XG4uY3VzdG9tLWxlYWRlcnMtY2Fyb3VzZWwgLmdhbGxlcnktaXRlbSBpbWcge1xuICB3aWR0aDogMTAwcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIG1heC1oZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgb2JqZWN0LWZpdDogY29udGFpbiAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY3VzdG9tLWxlYWRlcnMtY2Fyb3VzZWwgLmdhbGxlcnktaXRlbSBpbWcge1xuICAgIHdpZHRoOiA4MHB4ICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBzbGlkZXItbG9nb3Mge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0zMy4zMzMlLCAwLCAwKTtcbiAgfVxufVxuLmNvcnZhbnQtYnJlYWRjcnVtYnMge1xuICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG4uY29ydmFudC1icmVhZGNydW1icyAuY29ydmFudC1icmVhZGNydW1icy1saXN0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBnYXA6IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmNvcnZhbnQtYnJlYWRjcnVtYnMgLmNvcnZhbnQtYnJlYWRjcnVtYnMtaXRlbSB7XG4gIGNvbG9yOiAjMEEyODQyO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4uY29ydmFudC1icmVhZGNydW1icyAuY29ydmFudC1icmVhZGNydW1icy1pdGVtIGEge1xuICBjb2xvcjogIzBBMjg0MjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2U7XG59XG4uY29ydmFudC1icmVhZGNydW1icyAuY29ydmFudC1icmVhZGNydW1icy1pdGVtIGE6aG92ZXIge1xuICBjb2xvcjogI0IxNTkzMztcbn1cbi5jb3J2YW50LWJyZWFkY3J1bWJzIC5jb3J2YW50LWJyZWFkY3J1bWJzLWl0ZW0uaXMtYWN0aXZlIC5jb3J2YW50LWJyZWFkY3J1bWJzLWN1cnJlbnQge1xuICBwYWRkaW5nLWJvdHRvbTogMnB4O1xuICBjb2xvcjogIzBBMjg0MjtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICNCMTU5MzM7XG59XG4uY29ydmFudC1icmVhZGNydW1icyAuY29ydmFudC1icmVhZGNydW1icy1zZXBhcmF0b3Ige1xuICBtYXJnaW46IDAgMi41cHg7XG4gIGNvbG9yOiAjMEEyODQyO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBXSURHRVQ6IENPUlZBTlQgVEVTVElNT05JQUxTXG4gICBSZXBsYWNlcyB0aGUgaGFuZC1idWlsdCBOZXN0ZWQgQ2Fyb3VzZWwgb24gQXBwcmVudGljZXNoaXAgYW5kIENhcmVlcnMuXG4gICBWYWx1ZXMgbWlycm9yIHRoZSBvcmlnaW5hbCBkZXNpZ24gb2YgYm90aCBwYWdlcy5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5jb3J2YW50LXRlc3RpbW9uaWFscyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5jb3J2YW50LXRlc3RpbW9uaWFsc19fc3dpcGVyIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4uY29ydmFudC10ZXN0aW1vbmlhbHMgLnN3aXBlci1zbGlkZSB7XG4gIGhlaWdodDogYXV0bztcbn1cbi5jb3J2YW50LXRlc3RpbW9uaWFsc19fbmF2IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgLyogU3dpcGVyIHNldHMgei1pbmRleCAxIG9uIGl0cyBvd24gY29udGFpbmVyOiB3aXRob3V0IHRoaXMgdGhlXG4gICAgIGFycm93cyBhcmUgcGFpbnRlZCB1bmRlcm5lYXRoIHRoZSBzbGlkZS4gKi9cbiAgei1pbmRleDogMjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uY29ydmFudC10ZXN0aW1vbmlhbHNfX2Fycm93IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDQ1cHg7XG4gIGhlaWdodDogNDVweDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcbn1cbi5jb3J2YW50LXRlc3RpbW9uaWFsc19fYXJyb3cgc3ZnIHtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xufVxuLmNvcnZhbnQtdGVzdGltb25pYWxzX19hcnJvdy5zd2lwZXItYnV0dG9uLWRpc2FibGVkIHtcbiAgb3BhY2l0eTogMC40O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG4uY29ydmFudC10ZXN0aW1vbmlhbHMge1xuICAvKiBOb3RpY2Ugc2hvd24gaW5zaWRlIHRoZSBFbGVtZW50b3IgZWRpdG9yIG9ubHkuICovXG59XG4uY29ydmFudC10ZXN0aW1vbmlhbHMtLWVtcHR5IHtcbiAgcGFkZGluZzogMjRweDtcbiAgYm9yZGVyOiAxcHggZGFzaGVkICNCN0I1QjA7XG4gIGNvbG9yOiAjQjdCNUIwO1xuICBmb250LWZhbWlseTogXCJuaXR0aS1ncm90ZXNrXCIsIHNhbnMtc2VyaWY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmNvcnZhbnQtdGVzdGltb25pYWwge1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciByaWdodDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xufVxuLmNvcnZhbnQtdGVzdGltb25pYWxfX2lubmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5jb3J2YW50LXRlc3RpbW9uaWFsX19jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi5jb3J2YW50LXRlc3RpbW9uaWFsX19pY29uIHtcbiAgLyogTm8gZm9yY2VkIHNpemU6IHRoZSBvcmlnaW5hbCBtYXJrdXAgbGV0IGVhY2ggU1ZHIHJlbmRlciBhdCBpdHMgb3duXG4gICAgIGludHJpbnNpYyBzaXplICg2NHg1NyBhbWJlciwgNTJ4NDUgcGxhaW4pLiBFbGVtZW50b3IgbmV2ZXIgcmVzaXplc1xuICAgICBTVkcgZmlsZXMsIHNvIHRoZSBpbWFnZV9jdXN0b21fZGltZW5zaW9uIHNldHRpbmcgd2FzIG5ldmVyIGFwcGxpZWQuXG4gICAgIGZsZXgtc2hyaW5rL2FsaWduLXNlbGYga2VlcCB0aGUgaWNvbiBhdCB0aGF0IHNpemUgaW5zaWRlIGEgZmxleFxuICAgICBjb2x1bW4sIHdoZXJlIGBzdHJldGNoYCB3b3VsZCBvdGhlcndpc2UgYmxvdyBpdCB1cCB0byBmdWxsIHdpZHRoLiAqL1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxleDogMCAwIGF1dG87XG4gIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuLmNvcnZhbnQtdGVzdGltb25pYWxfX3F1b3RlIHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogXCJuaXR0aS1ncm90ZXNrXCIsIHNhbnMtc2VyaWY7XG4gIC8qIEhvbm91ciB0aGUgbGluZSBicmVha3MgdHlwZWQgaW4gdGhlIHBhbmVsIHdpdGhvdXQgYWRkaW5nIDxicj4uICovXG4gIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbn1cbi5jb3J2YW50LXRlc3RpbW9uaWFsX19yb2xlIHtcbiAgLyogRWxlbWVudG9yIGdhdmUgdGhlc2UgdGV4dCB3aWRnZXRzIHRoZSBraXQgd2lkZ2V0IHNwYWNpbmc7IGtlZXBpbmcgaXRcbiAgICAgcHJlc2VydmVzIHRoZSBvcmlnaW5hbCBibG9jayBoZWlnaHQsIHdoaWNoIHRoZSBzZWN0aW9uIGJhY2tncm91bmRcbiAgICAgcmVsaWVzIG9uIGJlY2F1c2UgaXQgaXMgc2l6ZWQgd2l0aCBgY29udGFpbmAuICovXG4gIG1hcmdpbjogMCAwIHZhcigtLWtpdC13aWRnZXQtc3BhY2luZywgMjBweCk7XG4gIGZvbnQtZmFtaWx5OiBcIm5pdHRpLWdyb3Rlc2tcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMTRweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgXCJib3hlZFwiIHZhcmlhbnQ6IGRhcmsgYmx1ZSBjYXJkIChBcHByZW50aWNlc2hpcClcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5jb3J2YW50LXRlc3RpbW9uaWFscy0tYm94ZWQgLmNvcnZhbnQtdGVzdGltb25pYWwge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBBMjg0Mjtcbn1cbi5jb3J2YW50LXRlc3RpbW9uaWFscy0tYm94ZWQgLmNvcnZhbnQtdGVzdGltb25pYWxfX2lubmVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTE0MHB4O1xuICBwYWRkaW5nOiA2NHB4IDA7XG4gIGdhcDogNDhweDtcbn1cbi5jb3J2YW50LXRlc3RpbW9uaWFscy0tYm94ZWQgLmNvcnZhbnQtdGVzdGltb25pYWxfX2NvbnRlbnQge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgZ2FwOiA0MHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA4OHB4O1xufVxuLmNvcnZhbnQtdGVzdGltb25pYWxzLS1ib3hlZCAuY29ydmFudC10ZXN0aW1vbmlhbF9fcXVvdGUge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1raXQtd2lkZ2V0LXNwYWNpbmcsIDIwcHgpO1xuICBmb250LXNpemU6IDQ4cHg7XG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi5jb3J2YW50LXRlc3RpbW9uaWFscy0tYm94ZWQgLmNvcnZhbnQtdGVzdGltb25pYWxfX3JvbGUge1xuICBjb2xvcjogI0ZGRkZGRjtcbn1cbi5jb3J2YW50LXRlc3RpbW9uaWFscy0tYm94ZWQgLmNvcnZhbnQtdGVzdGltb25pYWxzX19hcnJvdyB7XG4gIGJvdHRvbTogNjRweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjtcbiAgY29sb3I6ICMwRDNFNzA7XG59XG4uY29ydmFudC10ZXN0aW1vbmlhbHMtLWJveGVkIC5jb3J2YW50LXRlc3RpbW9uaWFsc19fYXJyb3ctLXByZXYge1xuICByaWdodDogMTIwcHg7XG59XG4uY29ydmFudC10ZXN0aW1vbmlhbHMtLWJveGVkIC5jb3J2YW50LXRlc3RpbW9uaWFsc19fYXJyb3ctLW5leHQge1xuICByaWdodDogNjRweDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgLmNvcnZhbnQtdGVzdGltb25pYWxzLS1ib3hlZCAuY29ydmFudC10ZXN0aW1vbmlhbF9faW5uZXIge1xuICAgIG1heC13aWR0aDogMTAyNHB4O1xuICAgIHBhZGRpbmc6IDY0cHg7XG4gIH1cbiAgLmNvcnZhbnQtdGVzdGltb25pYWxzLS1ib3hlZCAuY29ydmFudC10ZXN0aW1vbmlhbF9fcXVvdGUge1xuICAgIGZvbnQtc2l6ZTogMzRweDtcbiAgICBsaW5lLWhlaWdodDogMzRweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jb3J2YW50LXRlc3RpbW9uaWFscy0tYm94ZWQgLmNvcnZhbnQtdGVzdGltb25pYWwge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGJvdHRvbSBsZWZ0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogYXV0bztcbiAgfVxuICAuY29ydmFudC10ZXN0aW1vbmlhbHMtLWJveGVkIC5jb3J2YW50LXRlc3RpbW9uaWFsX19pbm5lciB7XG4gICAgbWF4LXdpZHRoOiA3NjdweDtcbiAgICBwYWRkaW5nOiA0OHB4IDI0cHggMTMwcHg7XG4gIH1cbiAgLmNvcnZhbnQtdGVzdGltb25pYWxzLS1ib3hlZCAuY29ydmFudC10ZXN0aW1vbmlhbF9fY29udGVudCB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxuICAuY29ydmFudC10ZXN0aW1vbmlhbHMtLWJveGVkIC5jb3J2YW50LXRlc3RpbW9uaWFsc19fYXJyb3cge1xuICAgIGJvdHRvbTogMzNweDtcbiAgfVxuICAuY29ydmFudC10ZXN0aW1vbmlhbHMtLWJveGVkIC5jb3J2YW50LXRlc3RpbW9uaWFsc19fYXJyb3ctLXByZXYge1xuICAgIHJpZ2h0OiA4MHB4O1xuICB9XG4gIC5jb3J2YW50LXRlc3RpbW9uaWFscy0tYm94ZWQgLmNvcnZhbnQtdGVzdGltb25pYWxzX19hcnJvdy0tbmV4dCB7XG4gICAgcmlnaHQ6IDI0cHg7XG4gIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgXCJwbGFpblwiIHZhcmlhbnQ6IHRleHQgb3ZlciB0aGUgc2VjdGlvbiBiYWNrZ3JvdW5kIChDYXJlZXJzKVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmNvcnZhbnQtdGVzdGltb25pYWxzLS1wbGFpbiAuY29ydmFudC10ZXN0aW1vbmlhbF9faW5uZXIge1xuICBnYXA6IDY0cHg7XG59XG4uY29ydmFudC10ZXN0aW1vbmlhbHMtLXBsYWluIC5jb3J2YW50LXRlc3RpbW9uaWFsX19jb250ZW50IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuLmNvcnZhbnQtdGVzdGltb25pYWxzLS1wbGFpbiAuY29ydmFudC10ZXN0aW1vbmlhbF9faWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xufVxuLmNvcnZhbnQtdGVzdGltb25pYWxzLS1wbGFpbiAuY29ydmFudC10ZXN0aW1vbmlhbF9fcXVvdGUge1xuICBwYWRkaW5nOiAwIDEyMHB4IDAgNzVweDtcbiAgZm9udC1zaXplOiA0OHB4O1xuICBsaW5lLWhlaWdodDogNDhweDtcbiAgY29sb3I6ICMwMDAwMDA7XG59XG4uY29ydmFudC10ZXN0aW1vbmlhbHMtLXBsYWluIC5jb3J2YW50LXRlc3RpbW9uaWFsX19yb2xlIHtcbiAgcGFkZGluZy1sZWZ0OiA3NXB4O1xufVxuLmNvcnZhbnQtdGVzdGltb25pYWxzLS1wbGFpbiAuY29ydmFudC10ZXN0aW1vbmlhbHNfX2Fycm93IHtcbiAgYm90dG9tOiAtNjBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcbiAgY29sb3I6ICNGRkZGRkY7XG59XG4uY29ydmFudC10ZXN0aW1vbmlhbHMtLXBsYWluIC5jb3J2YW50LXRlc3RpbW9uaWFsc19fYXJyb3ctLXByZXYge1xuICByaWdodDogNTVweDtcbn1cbi5jb3J2YW50LXRlc3RpbW9uaWFscy0tcGxhaW4gLmNvcnZhbnQtdGVzdGltb25pYWxzX19hcnJvdy0tbmV4dCB7XG4gIHJpZ2h0OiAwO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAuY29ydmFudC10ZXN0aW1vbmlhbHMtLXBsYWluIC5jb3J2YW50LXRlc3RpbW9uaWFsX19pbm5lciB7XG4gICAgZ2FwOiA0MHB4O1xuICB9XG4gIC5jb3J2YW50LXRlc3RpbW9uaWFscy0tcGxhaW4gLmNvcnZhbnQtdGVzdGltb25pYWxfX3F1b3RlIHtcbiAgICBwYWRkaW5nOiAwIDAgMCA3NXB4O1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICBsaW5lLWhlaWdodDogMzVweDtcbiAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XG4gIC5jb3J2YW50LXRlc3RpbW9uaWFscy0tcGxhaW4gLmNvcnZhbnQtdGVzdGltb25pYWxfX2NvbnRlbnQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAyNHB4O1xuICB9XG4gIC5jb3J2YW50LXRlc3RpbW9uaWFscy0tcGxhaW4gLmNvcnZhbnQtdGVzdGltb25pYWxfX2ljb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuICAuY29ydmFudC10ZXN0aW1vbmlhbHMtLXBsYWluIC5jb3J2YW50LXRlc3RpbW9uaWFsX19xdW90ZSB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuICAuY29ydmFudC10ZXN0aW1vbmlhbHMtLXBsYWluIC5jb3J2YW50LXRlc3RpbW9uaWFsX19yb2xlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbiAgLmNvcnZhbnQtdGVzdGltb25pYWxzLS1wbGFpbiAuY29ydmFudC10ZXN0aW1vbmlhbHNfX2Fycm93IHtcbiAgICBib3R0b206IC05MHB4O1xuICB9XG59XG5cbi5ob21lLXBhZ2UgLmVsZW1lbnRvci1sb29wLWNvbnRhaW5lci5lbGVtZW50b3ItZ3JpZCB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIGNvbHVtbi1jb3VudDogMyAhaW1wb3J0YW50O1xuICBjb2x1bW4tZ2FwOiAzMHB4ICFpbXBvcnRhbnQ7XG59XG4uaG9tZS1wYWdlIC5lbGVtZW50b3ItbG9vcC1jb250YWluZXIuZWxlbWVudG9yLWdyaWQgLmUtbG9vcC1pdGVtIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gIGJyZWFrLWluc2lkZTogYXZvaWQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xufVxuIl19 */