/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[3]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[4]!./assets/scss/plugins/ce_jfeevents_eventbooking.scss ***!
  \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Universal form components styling - Modular approach
 * Backwards compatible with existing form-components() mixin
 */
/**
 * Form Labels Mixin
 */
/**
 * Form Controls Mixin (Input, Textarea, Select)
 */
/**
 * Form Checks Mixin (Radio & Checkbox)
 */
/**
 * Form Validation Mixin
 */
/**
 * Form Layout Mixin (Floating, Groups, Actions)
 */
/**
 * Form Accessibility Mixin
 */
/**
 * Main form-components mixin - BACKWARDS COMPATIBLE
 * Includes all form styling components
 */
.ce-jfeevents_eventbooking .form-label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 600;
  color: var(--color-black, #000000);
  font-size: 1rem;
  line-height: 1.4;
}
.ce-jfeevents_eventbooking .form-label.required::after {
  content: " *";
  color: var(--color-error, #dc3545);
  font-weight: 700;
}
.ce-jfeevents_eventbooking .form-label .required {
  color: var(--color-error, #dc3545);
  font-weight: 700;
}
.ce-jfeevents_eventbooking .form-label.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.ce-jfeevents_eventbooking legend {
  font-size: 1.25rem;
  font-weight: 700;
}
.ce-jfeevents_eventbooking .form-control {
  display: block;
  width: 100%;
  padding: 0.75rem 1rem;
  font-size: 1rem;
  font-family: inherit;
  line-height: 1.4;
  color: var(--color-black, #000000);
  background-color: var(--color-white, #ffffff);
  background-clip: padding-box;
  border: none;
  border-bottom: 2px solid var(--color-black, #000000);
  border-radius: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.ce-jfeevents_eventbooking .form-control::-moz-placeholder {
  color: var(--color-jfe-gray-darker, rgb(105, 105, 105));
  opacity: 1;
}
.ce-jfeevents_eventbooking .form-control::placeholder {
  color: var(--color-jfe-gray-darker, rgb(105, 105, 105));
  opacity: 1;
}
.ce-jfeevents_eventbooking .form-control:hover:not(:disabled):not([readonly]) {
  border-bottom-color: var(--color-primary, #009ddf);
}
.ce-jfeevents_eventbooking .form-control:focus {
  border-bottom-color: var(--color-primary, #009ddf);
  outline: 0;
  box-shadow: 0 0 0 2px rgba(var(--color-primary, #009ddf), 0.25);
}
.ce-jfeevents_eventbooking .form-control:disabled, .ce-jfeevents_eventbooking .form-control[readonly] {
  background-color: var(--color-jfe-gray, #f3f3f2);
  color: var(--color-jfe-gray-dark, rgb(189, 189, 189));
  opacity: 1;
  cursor: not-allowed;
}
.ce-jfeevents_eventbooking .form-control.is-invalid {
  border-bottom-color: var(--color-error, #dc3545);
}
.ce-jfeevents_eventbooking .form-control.is-invalid:focus {
  border-bottom-color: var(--color-error, #dc3545);
  box-shadow: 0 0 0 2px rgba(var(--color-error, #dc3545), 0.25);
}
.ce-jfeevents_eventbooking .form-control.is-valid {
  border-bottom-color: #95DF00;
}
.ce-jfeevents_eventbooking .form-control.is-valid:focus {
  border-bottom-color: #95DF00;
  box-shadow: 0 0 0 2px rgba(149, 223, 0, 0.25);
}
.ce-jfeevents_eventbooking textarea.form-control {
  min-height: 120px;
  resize: vertical;
  line-height: 1.5;
  border-top: 2px solid var(--color-black, #000000);
  border-left: 2px solid var(--color-black, #000000);
  border-right: 2px solid var(--color-black, #000000);
}
.ce-jfeevents_eventbooking textarea.form-control:hover:not(:disabled):not([readonly]) {
  border-color: var(--color-primary, #009ddf);
}
.ce-jfeevents_eventbooking textarea.form-control:focus {
  border-color: var(--color-primary, #009ddf);
}
.ce-jfeevents_eventbooking select.form-control:not([multiple]) {
  background-image: url(/build/images/IconArrowAccordion--Down.8e468af5.svg);
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 16px 12px;
  padding-right: 2.5rem;
  cursor: pointer;
  border: none;
  border-bottom: 2px solid var(--color-black, #000000);
}
.ce-jfeevents_eventbooking select.form-control:not([multiple])::-ms-expand {
  display: none;
}
.ce-jfeevents_eventbooking select.form-control:not([multiple]):hover:not(:disabled):not([readonly]) {
  border-bottom-color: var(--color-primary, #009ddf);
}
.ce-jfeevents_eventbooking select.form-control:not([multiple]):focus {
  border-bottom-color: var(--color-primary, #009ddf);
  background-image: url(/build/images/IconArrowAccordion--Up.2d71fcd5.svg);
}
.ce-jfeevents_eventbooking select.form-control:not([multiple]).is-invalid {
  border-bottom-color: var(--color-error, #dc3545);
}
.ce-jfeevents_eventbooking select.form-control:not([multiple]).is-invalid:focus {
  border-bottom-color: var(--color-error, #dc3545);
}
.ce-jfeevents_eventbooking select.form-control:not([multiple]).is-valid {
  border-bottom-color: #95DF00;
}
.ce-jfeevents_eventbooking select.form-control:not([multiple]).is-valid:focus {
  border-bottom-color: #95DF00;
}
.ce-jfeevents_eventbooking .form-check {
  display: block;
  min-height: 1.5rem;
  padding-left: 2rem;
  margin-bottom: 0.5rem;
  position: relative;
}
.ce-jfeevents_eventbooking .form-check .form-check-input,
.ce-jfeevents_eventbooking .form-check [type=checkbox],
.ce-jfeevents_eventbooking .form-check [type=radio] {
  position: absolute;
  left: 0;
  top: 0.25rem;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0;
  background-color: var(--color-white, #ffffff);
  border: 1px solid var(--color-black, #000000);
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.ce-jfeevents_eventbooking .form-check .form-check-input::before,
.ce-jfeevents_eventbooking .form-check [type=checkbox]::before,
.ce-jfeevents_eventbooking .form-check [type=radio]::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
}
.ce-jfeevents_eventbooking .form-check .form-check-input:hover:not(:disabled),
.ce-jfeevents_eventbooking .form-check [type=checkbox]:hover:not(:disabled),
.ce-jfeevents_eventbooking .form-check [type=radio]:hover:not(:disabled) {
  border-color: var(--color-primary, #009ddf);
}
.ce-jfeevents_eventbooking .form-check .form-check-input:focus,
.ce-jfeevents_eventbooking .form-check [type=checkbox]:focus,
.ce-jfeevents_eventbooking .form-check [type=radio]:focus {
  border-color: var(--color-primary, #009ddf);
  outline: 0;
  box-shadow: 0 0 0 2px rgba(var(--color-primary, #009ddf), 0.25);
}
.ce-jfeevents_eventbooking .form-check .form-check-input:checked,
.ce-jfeevents_eventbooking .form-check [type=checkbox]:checked,
.ce-jfeevents_eventbooking .form-check [type=radio]:checked {
  background-color: var(--color-primary, #009ddf);
  border-color: var(--color-primary, #009ddf);
}
.ce-jfeevents_eventbooking .form-check .form-check-input:disabled,
.ce-jfeevents_eventbooking .form-check [type=checkbox]:disabled,
.ce-jfeevents_eventbooking .form-check [type=radio]:disabled {
  background-color: var(--color-jfe-gray, #f3f3f2);
  border-color: var(--color-jfe-gray-dark, rgb(189, 189, 189));
  cursor: not-allowed;
  opacity: 0.5;
}
.ce-jfeevents_eventbooking .form-check .form-check-input.is-invalid,
.ce-jfeevents_eventbooking .form-check [type=checkbox].is-invalid,
.ce-jfeevents_eventbooking .form-check [type=radio].is-invalid {
  border-color: var(--color-error, #dc3545);
}
.ce-jfeevents_eventbooking .form-check .form-check-input.is-invalid:focus,
.ce-jfeevents_eventbooking .form-check [type=checkbox].is-invalid:focus,
.ce-jfeevents_eventbooking .form-check [type=radio].is-invalid:focus {
  box-shadow: 0 0 0 2px rgba(var(--color-error, #dc3545), 0.25);
}
.ce-jfeevents_eventbooking .form-check .form-check-input[type=checkbox],
.ce-jfeevents_eventbooking .form-check [type=checkbox] {
  border-radius: 2px;
}
.ce-jfeevents_eventbooking .form-check .form-check-input[type=checkbox]:checked,
.ce-jfeevents_eventbooking .form-check [type=checkbox]:checked {
  background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3e%3cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27M6 10l3 3 6-6%27/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1rem 1rem;
}
.ce-jfeevents_eventbooking .form-check .form-check-input[type=checkbox]:indeterminate,
.ce-jfeevents_eventbooking .form-check [type=checkbox]:indeterminate {
  background-color: var(--color-primary, #009ddf);
  border-color: var(--color-primary, #009ddf);
  background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3e%3cpath fill=%27none%27 stroke=%27%23fff%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%273%27 d=%27M6 10h8%27/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1rem 1rem;
}
.ce-jfeevents_eventbooking .form-check .form-check-input[type=radio],
.ce-jfeevents_eventbooking .form-check [type=radio] {
  border-radius: 50%;
}
.ce-jfeevents_eventbooking .form-check .form-check-input[type=radio]:checked,
.ce-jfeevents_eventbooking .form-check [type=radio]:checked {
  background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%27-4 -4 8 8%27%3e%3ccircle r=%272%27 fill=%27%23fff%27/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1rem 1rem;
}
.ce-jfeevents_eventbooking .form-check .form-check-label {
  display: inline-block;
  color: var(--color-black, #000000);
  cursor: pointer;
  font-size: 1rem;
  line-height: 1.4;
  margin-bottom: 0;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.ce-jfeevents_eventbooking .form-check .form-check-label.disabled {
  color: var(--color-jfe-gray-dark, rgb(189, 189, 189));
  cursor: not-allowed;
  opacity: 0.5;
}
.ce-jfeevents_eventbooking .form-check-inline {
  display: inline-block;
  margin-right: 1rem;
  margin-bottom: 0;
}
@media (min-width: 640px) {
  .ce-jfeevents_eventbooking .form-check-inline {
    margin-right: 1.5rem;
  }
}
.ce-jfeevents_eventbooking .form-text {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.875rem;
  color: var(--color-jfe-gray-darker, rgb(105, 105, 105));
  line-height: 1.4;
}
.ce-jfeevents_eventbooking .form-text.text-danger, .ce-jfeevents_eventbooking .form-text.invalid-feedback {
  color: var(--color-error, #dc3545);
}
.ce-jfeevents_eventbooking .form-text.text-success, .ce-jfeevents_eventbooking .form-text.valid-feedback {
  color: #95DF00;
}
.ce-jfeevents_eventbooking .invalid-feedback {
  display: none;
  margin-top: 0.25rem;
  font-size: 0.875rem;
  color: var(--color-black, #000000);
  line-height: 1.4;
  padding-left: 1.5rem;
  position: relative;
}
.ce-jfeevents_eventbooking .invalid-feedback::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1.25rem;
  height: 1.25rem;
  color: var(--color-black, #000000);
  background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27%23000%27 d=%27M2.146 2.854a.5.5 0 1 1 .708-.708L8 7.293l5.146-5.147a.5.5 0 0 1 .708.708L8.707 8l5.147 5.146a.5.5 0 0 1-.708.708L8 8.707l-5.146 5.147a.5.5 0 0 1-.708-.708L7.293 8 2.146 2.854Z%27/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 75% 75%;
  border-radius: 50%;
  border: 3px solid var(--color-error, #dc3545);
  display: flex;
  align-items: center;
  justify-content: center;
}
.form-control.is-invalid ~ .ce-jfeevents_eventbooking .invalid-feedback, .form-check-input.is-invalid ~ .ce-jfeevents_eventbooking .invalid-feedback {
  display: block;
}
.ce-jfeevents_eventbooking .valid-feedback {
  display: none;
  margin-top: 0.25rem;
  font-size: 0.875rem;
  color: #95DF00;
  line-height: 1.4;
}
.form-control.is-valid ~ .ce-jfeevents_eventbooking .valid-feedback, .form-check-input.is-valid ~ .ce-jfeevents_eventbooking .valid-feedback {
  display: block;
}
.ce-jfeevents_eventbooking .validation-summary {
  margin-bottom: 1.5rem;
  padding: 1rem 1.25rem;
  border: 2px solid var(--color-error, #dc3545);
  border-radius: 4px;
  background-color: color-mix(in srgb, var(--color-error, #dc3545) 5%, var(--color-white, #ffffff));
}
@media (min-width: 640px) {
  .ce-jfeevents_eventbooking .validation-summary {
    padding: 1.25rem 1.5rem;
  }
}
.ce-jfeevents_eventbooking .validation-summary .alert-heading {
  margin: 0 0 0.75rem 0;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--color-error, #dc3545);
  line-height: 1.3;
}
@media (min-width: 640px) {
  .ce-jfeevents_eventbooking .validation-summary .alert-heading {
    font-size: 1.25rem;
  }
}
.ce-jfeevents_eventbooking .validation-summary .alert-message {
  margin: 0 0 1rem 0;
  font-size: 0.9rem;
  color: color-mix(in srgb, var(--color-error, #dc3545) 85%, black);
  line-height: 1.4;
}
@media (min-width: 640px) {
  .ce-jfeevents_eventbooking .validation-summary .alert-message {
    font-size: 1rem;
  }
}
.ce-jfeevents_eventbooking .validation-summary-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.ce-jfeevents_eventbooking .validation-summary-list .validation-summary-item {
  margin-bottom: 0.5rem;
  padding-left: 1.5rem;
  position: relative;
  line-height: 1.4;
}
.ce-jfeevents_eventbooking .validation-summary-list .validation-summary-item:last-child {
  margin-bottom: 0;
}
.ce-jfeevents_eventbooking .validation-summary-list .validation-summary-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.2rem;
  width: 1rem;
  height: 1rem;
  background-image: url("data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27%23dc3545%27 d=%27M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z%27/%3e%3cpath fill=%27%23dc3545%27 d=%27M7.002 11a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7.1 4.995a.905.905 0 1 1 1.8 0l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 4.995z%27/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-size: contain;
  flex-shrink: 0;
}
.ce-jfeevents_eventbooking .validation-summary-list .validation-summary-item a {
  color: var(--color-error, #dc3545);
  text-decoration: underline;
  font-weight: 500;
  transition: color 0.2s ease;
}
.ce-jfeevents_eventbooking .validation-summary-list .validation-summary-item a:hover, .ce-jfeevents_eventbooking .validation-summary-list .validation-summary-item a:focus {
  color: color-mix(in srgb, var(--color-error, #dc3545) 85%, black);
  text-decoration: none;
}
.ce-jfeevents_eventbooking .validation-summary-list .validation-summary-item a:focus-visible {
  outline: 2px solid var(--color-primary, #009ddf);
  outline-offset: 2px;
  border-radius: 2px;
}
.ce-jfeevents_eventbooking .validation-summary {
  animation: slideInFromTop 0.3s ease-out;
}
@keyframes slideInFromTop {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.ce-jfeevents_eventbooking .form-floating {
  position: relative;
}
.ce-jfeevents_eventbooking .form-floating .form-control {
  padding: 1rem 0.75rem 0.5rem;
}
.ce-jfeevents_eventbooking .form-floating .form-control::-moz-placeholder {
  color: transparent;
}
.ce-jfeevents_eventbooking .form-floating .form-control::placeholder {
  color: transparent;
}
.ce-jfeevents_eventbooking .form-floating .form-control:not(:-moz-placeholder) ~ label {
  opacity: 0.65;
  transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
}
.ce-jfeevents_eventbooking .form-floating .form-control:focus ~ label, .ce-jfeevents_eventbooking .form-floating .form-control:not(:placeholder-shown) ~ label {
  opacity: 0.65;
  transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
}
.ce-jfeevents_eventbooking .form-floating label {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 1rem 0.75rem;
  overflow: hidden;
  text-align: start;
  text-overflow: ellipsis;
  white-space: nowrap;
  pointer-events: none;
  border: 1px solid transparent;
  transform-origin: 0 0;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.ce-jfeevents_eventbooking .form-group {
  margin-bottom: 3rem;
}
.ce-jfeevents_eventbooking .form-group:last-child {
  margin-bottom: 0;
}
.ce-jfeevents_eventbooking .form-section {
  margin-bottom: 2rem;
}
.ce-jfeevents_eventbooking .form-section:last-child {
  margin-bottom: 0;
}
.ce-jfeevents_eventbooking .form-section h2, .ce-jfeevents_eventbooking .form-section h3, .ce-jfeevents_eventbooking .form-section h4 {
  margin-bottom: 1rem;
  color: var(--color-black, #000000);
}
.ce-jfeevents_eventbooking .form-section .required {
  color: var(--color-error, #dc3545);
  font-weight: 700;
}
.ce-jfeevents_eventbooking .form-actions {
  display: flex;
  gap: 1rem;
  margin-top: 2rem;
  flex-wrap: wrap;
}
@media (min-width: 640px) {
  .ce-jfeevents_eventbooking .form-actions {
    flex-wrap: nowrap;
  }
}
.ce-jfeevents_eventbooking .form-actions .btn {
  flex: 1;
  min-width: 120px;
}
@media (min-width: 640px) {
  .ce-jfeevents_eventbooking .form-actions .btn {
    flex: 0 0 auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ce-jfeevents_eventbooking .form-control,
  .ce-jfeevents_eventbooking .form-check-input,
  .ce-jfeevents_eventbooking .form-floating label {
    transition: none;
  }
}
@media (forced-colors: active) {
  .ce-jfeevents_eventbooking .form-control,
  .ce-jfeevents_eventbooking .form-check-input {
    border-width: 2px;
  }
  .ce-jfeevents_eventbooking .validation-summary {
    border: 2px solid ButtonText;
    background-color: ButtonFace;
  }
  .ce-jfeevents_eventbooking .validation-summary .validation-summary-item::before {
    background-image: none;
    border: 1px solid ButtonText;
    border-radius: 50%;
  }
}
@media print {
  .ce-jfeevents_eventbooking .form-control,
  .ce-jfeevents_eventbooking .form-check-input {
    border: 1px solid black !important;
    box-shadow: none !important;
  }
  .ce-jfeevents_eventbooking .validation-summary {
    border: 2px solid black !important;
    background-color: white !important;
  }
  .ce-jfeevents_eventbooking .validation-summary .alert-heading,
  .ce-jfeevents_eventbooking .validation-summary .alert-message,
  .ce-jfeevents_eventbooking .validation-summary .validation-summary-item a {
    color: black !important;
  }
  .ce-jfeevents_eventbooking .validation-summary .validation-summary-item::before {
    display: none !important;
  }
}
.ce-jfeevents_eventbooking h3.ce-jfeevents_eventbooking__contact-name,
.ce-jfeevents_eventbooking h3.ce-jfeevents_eventbooking__name {
  color: var(--color-black, #000000);
  margin-bottom: 0.25rem;
}
.ce-jfeevents_eventbooking__picture {
  width: 200px;
  height: 200px;
  display: block;
}
.ce-jfeevents_eventbooking__phone a, .ce-jfeevents_eventbooking__email a, .ce-jfeevents_eventbooking__link-wrapper a {
  color: var(--color-black, #000000);
  text-decoration-line: underline;
  text-decoration-color: var(--color-secondary);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
  transition: all 0.2s ease;
}
.ce-jfeevents_eventbooking__phone a:hover, .ce-jfeevents_eventbooking__phone a:focus, .ce-jfeevents_eventbooking__email a:hover, .ce-jfeevents_eventbooking__email a:focus, .ce-jfeevents_eventbooking__link-wrapper a:hover, .ce-jfeevents_eventbooking__link-wrapper a:focus {
  color: var(--color-black, #000000);
  text-decoration-color: var(--color-black, #000000);
}
.ce-jfeevents_eventbooking__phone a:focus-visible, .ce-jfeevents_eventbooking__email a:focus-visible, .ce-jfeevents_eventbooking__link-wrapper a:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}
.ce-jfeevents_eventbooking ul.ce-jfeevents_eventbooking__contact-list {
  list-style: none;
  padding-left: 0;
  margin-bottom: 0;
}
.ce-jfeevents_eventbooking ul.ce-jfeevents_eventbooking__contact-list li.ce-jfeevents_eventbooking__contact-card {
  padding-left: 0;
  margin-bottom: 0;
}
.ce-jfeevents_eventbooking ul.ce-jfeevents_eventbooking__contact-list li.ce-jfeevents_eventbooking__contact-card::before {
  content: none;
}
.ce-jfeevents_eventbooking__intro {
  margin-bottom: 1.5rem;
}

/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUEwaUJSLEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9qdWdlbmQtZnVlci1ldXJvcGEvLi9hc3NldHMvc2Nzcy9jb21wb25lbnRzL19mb3JtLWNvbXBvbmVudHMuc2NzcyIsIndlYnBhY2s6Ly9qdWdlbmQtZnVlci1ldXJvcGEvLi9hc3NldHMvc2Nzcy9wbHVnaW5zL2NlX2pmZWV2ZW50c19ldmVudGJvb2tpbmcuc2NzcyIsIndlYnBhY2s6Ly9qdWdlbmQtZnVlci1ldXJvcGEvLi9hc3NldHMvc2Nzcy9nbG9iYWwvX2JyZWFrcG9pbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vanVnZW5kLWZ1ZXItZXVyb3BhLy4vYXNzZXRzL3Njc3MvY29tcG9uZW50cy9fY29udGFjdC1jYXJkLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gYXNzZXRzL3Njc3MvY29tcG9uZW50cy9fZm9ybS1jb21wb25lbnRzLnNjc3NcbkB1c2UgJy4uL2dsb2JhbC9jb2xvcnMnIGFzIGNvbG9ycztcbkB1c2UgJy4uL2dsb2JhbC9icmVha3BvaW50cycgYXMgYnA7XG5cbi8qKlxuICogVW5pdmVyc2FsIGZvcm0gY29tcG9uZW50cyBzdHlsaW5nIC0gTW9kdWxhciBhcHByb2FjaFxuICogQmFja3dhcmRzIGNvbXBhdGlibGUgd2l0aCBleGlzdGluZyBmb3JtLWNvbXBvbmVudHMoKSBtaXhpblxuICovXG5cbi8vIFZpc3VhbCBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyAoc2hhcmVkIGFjcm9zcyBhbGwgbWl4aW5zKVxuJG91dGxpbmUtd2lkdGg6IDJweCAhZGVmYXVsdDtcbiRvdXRsaW5lLW9mZnNldDogMnB4ICFkZWZhdWx0O1xuJHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnMgIWRlZmF1bHQ7XG4kdHJhbnNpdGlvbi1lYXNpbmc6IGVhc2UgIWRlZmF1bHQ7XG4kYm9yZGVyLXJhZGl1czogMCAhZGVmYXVsdDtcbiRib3JkZXItd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRmb2N1cy1ib3JkZXItd2lkdGg6IDJweCAhZGVmYXVsdDtcbiRtaW4tdG91Y2gtc2l6ZTogNDRweCAhZGVmYXVsdDtcblxuLy8gQ29sb3JzIC0gdXNpbmcgQ1NTIHZhcmlhYmxlcyBmb3IgdGhlbWUgZmxleGliaWxpdHlcbiRmb3JtLXByaW1hcnktY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnksIGNvbG9ycy4kY29sb3ItamZlLWxpZ2h0Ymx1ZSkgIWRlZmF1bHQ7XG4kZm9ybS1zZWNvbmRhcnktY29sb3I6IHZhcigtLWNvbG9yLXNlY29uZGFyeSwgY29sb3JzLiRjb2xvci1qZmUteWVsbG93KSAhZGVmYXVsdDtcbiRmb3JtLXRleHQtY29sb3I6IHZhcigtLWNvbG9yLWJsYWNrLCBjb2xvcnMuJGNvbG9yLWJsYWNrKSAhZGVmYXVsdDtcbiRmb3JtLWJnLWNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSwgY29sb3JzLiRjb2xvci13aGl0ZSkgIWRlZmF1bHQ7XG4kZm9ybS1ib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWJsYWNrLCBjb2xvcnMuJGNvbG9yLWJsYWNrKSAhZGVmYXVsdDtcbiRmb3JtLWZvY3VzLWJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSwgY29sb3JzLiRjb2xvci1qZmUtbGlnaHRibHVlKSAhZGVmYXVsdDtcbiRmb3JtLWVycm9yLWNvbG9yOiB2YXIoLS1jb2xvci1lcnJvciwgY29sb3JzLiRjb2xvci1lcnJvcikgIWRlZmF1bHQ7XG4kZm9ybS1zdWNjZXNzLWNvbG9yOiAjOTVERjAwICFkZWZhdWx0O1xuJGZvcm0tZGlzYWJsZWQtYmctY29sb3I6IHZhcigtLWNvbG9yLWpmZS1ncmF5LCBjb2xvcnMuJGNvbG9yLWpmZS1ncmF5KSAhZGVmYXVsdDtcbiRmb3JtLWRpc2FibGVkLXRleHQtY29sb3I6IHZhcigtLWNvbG9yLWpmZS1ncmF5LWRhcmssIGNvbG9ycy4kY29sb3ItamZlLWdyYXktZGFyaykgIWRlZmF1bHQ7XG4kZm9ybS1wbGFjZWhvbGRlci1jb2xvcjogdmFyKC0tY29sb3ItamZlLWdyYXktZGFya2VyLCBjb2xvcnMuJGNvbG9yLWpmZS1ncmF5LWRhcmtlcikgIWRlZmF1bHQ7XG5cbiRyYWRpby1jaGVja2VkLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nLTQgLTQgOCA4JyUzZSUzY2NpcmNsZSByPScyJyBmaWxsPSclMjNmZmYnLyUzZSUzYy9zdmclM2VcIikgIWRlZmF1bHQ7XG5cbi8qKlxuICogRm9ybSBMYWJlbHMgTWl4aW5cbiAqL1xuQG1peGluIGZvcm0tbGFiZWxzKCkge1xuICAgIC5mb3JtLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6ICRmb3JtLXRleHQtY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcblxuICAgICAgICAvLyBSZXF1aXJlZCBmaWVsZCBpbmRpY2F0b3JcbiAgICAgICAgJi5yZXF1aXJlZDo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCIgKlwiO1xuICAgICAgICAgICAgY29sb3I6ICRmb3JtLWVycm9yLWNvbG9yO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXF1aXJlZCB7XG4gICAgICAgICAgICBjb2xvcjogJGZvcm0tZXJyb3ItY29sb3I7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTGFiZWwgZm9yIHNjcmVlbiByZWFkZXJzIG9ubHlcbiAgICAgICAgJi5zci1vbmx5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IC0xcHg7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsZWdlbmQge1xuICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgfVxufVxuXG4vKipcbiAqIEZvcm0gQ29udHJvbHMgTWl4aW4gKElucHV0LCBUZXh0YXJlYSwgU2VsZWN0KVxuICovXG5AbWl4aW4gZm9ybS1jb250cm9scygpIHtcbiAgICAuZm9ybS1jb250cm9sIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgIGNvbG9yOiAkZm9ybS10ZXh0LWNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9ybS1iZy1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGZvcm0tYm9yZGVyLWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICAgIGJvcmRlci1jb2xvciAkdHJhbnNpdGlvbi1kdXJhdGlvbiAkdHJhbnNpdGlvbi1lYXNpbmcsXG4gICAgICAgICAgICBib3gtc2hhZG93ICR0cmFuc2l0aW9uLWR1cmF0aW9uICR0cmFuc2l0aW9uLWVhc2luZztcblxuICAgICAgICAvLyBQbGFjZWhvbGRlciBzdHlsaW5nXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkZm9ybS1wbGFjZWhvbGRlci1jb2xvcjtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBIb3ZlciBzdGF0ZVxuICAgICAgICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpOm5vdChbcmVhZG9ubHldKSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkZm9ybS1mb2N1cy1ib3JkZXItY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGb2N1cyBzdGF0ZVxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRmb3JtLWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkb3V0bGluZS13aWR0aCByZ2JhKCRmb3JtLWZvY3VzLWJvcmRlci1jb2xvciwgMC4yNSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEaXNhYmxlZCBzdGF0ZVxuICAgICAgICAmOmRpc2FibGVkLFxuICAgICAgICAmW3JlYWRvbmx5XSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9ybS1kaXNhYmxlZC1iZy1jb2xvcjtcbiAgICAgICAgICAgIGNvbG9yOiAkZm9ybS1kaXNhYmxlZC10ZXh0LWNvbG9yO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbnZhbGlkIHN0YXRlIChvbmx5IHdpdGggZXhwbGljaXQgY2xhc3MpXG4gICAgICAgICYuaXMtaW52YWxpZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkZm9ybS1lcnJvci1jb2xvcjtcblxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGZvcm0tZXJyb3ItY29sb3I7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgJG91dGxpbmUtd2lkdGggcmdiYSgkZm9ybS1lcnJvci1jb2xvciwgMC4yNSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBWYWxpZCBzdGF0ZSAob25seSB3aXRoIGV4cGxpY2l0IGNsYXNzKVxuICAgICAgICAmLmlzLXZhbGlkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRmb3JtLXN1Y2Nlc3MtY29sb3I7XG5cbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRmb3JtLXN1Y2Nlc3MtY29sb3I7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgJG91dGxpbmUtd2lkdGggcmdiYSgkZm9ybS1zdWNjZXNzLWNvbG9yLCAwLjI1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRleHRhcmVhIHNwZWNpZmljIHN0eWxpbmdcbiAgICB0ZXh0YXJlYS5mb3JtLWNvbnRyb2wge1xuICAgICAgICBtaW4taGVpZ2h0OiAxMjBweDtcbiAgICAgICAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICRmb3JtLWJvcmRlci1jb2xvcjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAkZm9ybS1ib3JkZXItY29sb3I7XG4gICAgICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICRmb3JtLWJvcmRlci1jb2xvcjtcblxuICAgICAgICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpOm5vdChbcmVhZG9ubHldKSB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRmb3JtLWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkZm9ybS1mb2N1cy1ib3JkZXItY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZWxlY3Qgc3BlY2lmaWMgc3R5bGluZyAoZXhjbHVkaW5nIG11bHRpc2VsZWN0KVxuICAgIHNlbGVjdC5mb3JtLWNvbnRyb2w6bm90KFttdWx0aXBsZV0pIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vaW1hZ2VzL2ljb25zL1NWRy9VSS9JY29uQXJyb3dBY2NvcmRpb24tLURvd24uc3ZnXCIpO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwLjc1cmVtIGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxNnB4IDEycHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIuNXJlbTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkZm9ybS1ib3JkZXItY29sb3I7XG5cbiAgICAgICAgLy8gUmVtb3ZlIGRlZmF1bHQgYXJyb3cgaW4gSUVcbiAgICAgICAgJjo6LW1zLWV4cGFuZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSG92ZXIgc3RhdGUgZm9yIHNlbGVjdFxuICAgICAgICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpOm5vdChbcmVhZG9ubHldKSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkZm9ybS1mb2N1cy1ib3JkZXItY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGb2N1cyBzdGF0ZSBmb3Igc2VsZWN0XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGZvcm0tZm9jdXMtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vLi4vaW1hZ2VzL2ljb25zL1NWRy9VSS9JY29uQXJyb3dBY2NvcmRpb24tLVVwLnN2Z1wiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEludmFsaWQgc3RhdGUgKG9ubHkgd2l0aCBleHBsaWNpdCBjbGFzcylcbiAgICAgICAgJi5pcy1pbnZhbGlkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRmb3JtLWVycm9yLWNvbG9yO1xuXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiAkZm9ybS1lcnJvci1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFZhbGlkIHN0YXRlIChvbmx5IHdpdGggZXhwbGljaXQgY2xhc3MpXG4gICAgICAgICYuaXMtdmFsaWQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGZvcm0tc3VjY2Vzcy1jb2xvcjtcblxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJGZvcm0tc3VjY2Vzcy1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBGb3JtIENoZWNrcyBNaXhpbiAoUmFkaW8gJiBDaGVja2JveClcbiAqL1xuQG1peGluIGZvcm0tY2hlY2tzKCkge1xuICAgIC5mb3JtLWNoZWNrIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAvLyBGb3JtIGNoZWNrIGlucHV0IChyYWRpbyAmIGNoZWNrYm94KVxuICAgICAgICAuZm9ybS1jaGVjay1pbnB1dCxcbiAgICAgICAgW3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICAgICAgW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiAwLjI1cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDEuMjVyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDEuMjVyZW07XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9ybS1iZy1jb2xvcjtcbiAgICAgICAgICAgIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCAkZm9ybS1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uLWR1cmF0aW9uICR0cmFuc2l0aW9uLWVhc2luZyxcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3IgJHRyYW5zaXRpb24tZHVyYXRpb24gJHRyYW5zaXRpb24tZWFzaW5nLFxuICAgICAgICAgICAgICAgIGJveC1zaGFkb3cgJHRyYW5zaXRpb24tZHVyYXRpb24gJHRyYW5zaXRpb24tZWFzaW5nO1xuXG4gICAgICAgICAgICAvLyBFbnN1cmUgbWluaW11bSB0b3VjaCB0YXJnZXQgc2l6ZVxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkbWluLXRvdWNoLXNpemU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkbWluLXRvdWNoLXNpemU7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAkbWluLXRvdWNoLXNpemU7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogJG1pbi10b3VjaC1zaXplO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBIb3ZlciBzdGF0ZVxuICAgICAgICAgICAgJjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkZm9ybS1mb2N1cy1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEZvY3VzIHN0YXRlXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRmb3JtLWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRvdXRsaW5lLXdpZHRoIHJnYmEoJGZvcm0tZm9jdXMtYm9yZGVyLWNvbG9yLCAwLjI1KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gQ2hlY2tlZCBzdGF0ZVxuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9ybS1mb2N1cy1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkZm9ybS1mb2N1cy1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIERpc2FibGVkIHN0YXRlXG4gICAgICAgICAgICAmOmRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9ybS1kaXNhYmxlZC1iZy1jb2xvcjtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRmb3JtLWRpc2FibGVkLXRleHQtY29sb3I7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEludmFsaWQgc3RhdGUgKG9ubHkgd2l0aCBleHBsaWNpdCBjbGFzcylcbiAgICAgICAgICAgICYuaXMtaW52YWxpZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkZm9ybS1lcnJvci1jb2xvcjtcblxuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkb3V0bGluZS13aWR0aCByZ2JhKCRmb3JtLWVycm9yLWNvbG9yLCAwLjI1KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVja2JveCBzcGVjaWZpYyBzdHlsaW5nXG4gICAgICAgIC5mb3JtLWNoZWNrLWlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcbiAgICAgICAgW3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG5cbiAgICAgICAgICAgIC8vIENoZWNrbWFya1xuICAgICAgICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDIwIDIwJyUzZSUzY3BhdGggZmlsbD0nbm9uZScgc3Ryb2tlPSclMjNmZmYnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgc3Ryb2tlLXdpZHRoPSczJyBkPSdNNiAxMGwzIDMgNi02Jy8lM2UlM2Mvc3ZnJTNlXCIpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMXJlbSAxcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBJbmRldGVybWluYXRlIHN0YXRlXG4gICAgICAgICAgICAmOmluZGV0ZXJtaW5hdGUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmb3JtLWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRmb3JtLWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDIwIDIwJyUzZSUzY3BhdGggZmlsbD0nbm9uZScgc3Ryb2tlPSclMjNmZmYnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgc3Ryb2tlLXdpZHRoPSczJyBkPSdNNiAxMGg4Jy8lM2UlM2Mvc3ZnJTNlXCIpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMXJlbSAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmFkaW8gYnV0dG9uIHNwZWNpZmljIHN0eWxpbmdcbiAgICAgICAgLmZvcm0tY2hlY2staW5wdXRbdHlwZT1cInJhZGlvXCJdLFxuICAgICAgICBbdHlwZT1cInJhZGlvXCJdIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgICAgICAgICAgLy8gUmFkaW8gZG90XG4gICAgICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRyYWRpby1jaGVja2VkLWltYWdlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogMXJlbSAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gRm9ybSBjaGVjayBsYWJlbFxuICAgICAgICAuZm9ybS1jaGVjay1sYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJGZvcm0tdGV4dC1jb2xvcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgICAgIC8vIERpc2FibGVkIHN0YXRlXG4gICAgICAgICAgICAmLmRpc2FibGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGZvcm0tZGlzYWJsZWQtdGV4dC1jb2xvcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIElubGluZSBmb3JtIGNoZWNrc1xuICAgIC5mb3JtLWNoZWNrLWlubGluZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgIEBpbmNsdWRlIGJwLmJyZWFrcG9pbnQoJ3NtJykge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogRm9ybSBWYWxpZGF0aW9uIE1peGluXG4gKi9cbkBtaXhpbiBmb3JtLXZhbGlkYXRpb24oKSB7XG4gICAgLy8gRm9ybSB0ZXh0IChoZWxwIHRleHQsIGVycm9yIG1lc3NhZ2VzKVxuICAgIC5mb3JtLXRleHQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgY29sb3I6ICRmb3JtLXBsYWNlaG9sZGVyLWNvbG9yO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40O1xuXG4gICAgICAgIC8vIEVycm9yIHRleHRcbiAgICAgICAgJi50ZXh0LWRhbmdlcixcbiAgICAgICAgJi5pbnZhbGlkLWZlZWRiYWNrIHtcbiAgICAgICAgICAgIGNvbG9yOiAkZm9ybS1lcnJvci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFN1Y2Nlc3MgdGV4dFxuICAgICAgICAmLnRleHQtc3VjY2VzcyxcbiAgICAgICAgJi52YWxpZC1mZWVkYmFjayB7XG4gICAgICAgICAgICBjb2xvcjogJGZvcm0tc3VjY2Vzcy1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEludmFsaWQgZmVlZGJhY2sgKGVycm9yIG1lc3NhZ2VzKVxuICAgIC5pbnZhbGlkLWZlZWRiYWNrIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgLy8gSW5pdGlhbGx5IGhpZGRlblxuICAgICAgICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBjb2xvcjogJGZvcm0tdGV4dC1jb2xvcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICB3aWR0aDogMS4yNXJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMS4yNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkZm9ybS10ZXh0LWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiAxNiclM2UlM2NwYXRoIGZpbGw9JyUyMzAwMCcgZD0nTTIuMTQ2IDIuODU0YS41LjUgMCAxIDEgLjcwOC0uNzA4TDggNy4yOTNsNS4xNDYtNS4xNDdhLjUuNSAwIDAgMSAuNzA4LjcwOEw4LjcwNyA4bDUuMTQ3IDUuMTQ2YS41LjUgMCAwIDEtLjcwOC43MDhMOCA4LjcwN2wtNS4xNDYgNS4xNDdhLjUuNSAwIDAgMS0uNzA4LS43MDhMNy4yOTMgOCAyLjE0NiAyLjg1NFonLyUzZSUzYy9zdmclM2VcIik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogNzUlIDc1JTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICRmb3JtLWVycm9yLWNvbG9yO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkgc2hvdyB3aGVuIHBhcmVudCBoYXMgaW52YWxpZCBmaWVsZFxuICAgICAgICAuZm9ybS1jb250cm9sLmlzLWludmFsaWR+JixcbiAgICAgICAgLmZvcm0tY2hlY2staW5wdXQuaXMtaW52YWxpZH4mIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gVmFsaWQgZmVlZGJhY2sgKHN1Y2Nlc3MgbWVzc2FnZXMpXG4gICAgLnZhbGlkLWZlZWRiYWNrIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgLy8gSW5pdGlhbGx5IGhpZGRlblxuICAgICAgICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBjb2xvcjogJGZvcm0tc3VjY2Vzcy1jb2xvcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcblxuICAgICAgICAvLyBPbmx5IHNob3cgd2hlbiBwYXJlbnQgaGFzIHZhbGlkIGZpZWxkXG4gICAgICAgIC5mb3JtLWNvbnRyb2wuaXMtdmFsaWR+JixcbiAgICAgICAgLmZvcm0tY2hlY2staW5wdXQuaXMtdmFsaWR+JiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFZhbGlkYXRpb24gU3VtbWFyeSBTdHlsZXNcbiAgICAudmFsaWRhdGlvbi1zdW1tYXJ5IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDEuMjVyZW07XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRmb3JtLWVycm9yLWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb2xvci1lcnJvciwgI3tjb2xvcnMuJGNvbG9yLWVycm9yfSkgNSUsIHZhcigtLWNvbG9yLXdoaXRlLCAje2NvbG9ycy4kY29sb3Itd2hpdGV9KSk7XG5cbiAgICAgICAgQGluY2x1ZGUgYnAuYnJlYWtwb2ludCgnc20nKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hbGVydC1oZWFkaW5nIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDAuNzVyZW0gMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgY29sb3I6ICRmb3JtLWVycm9yLWNvbG9yO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMztcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnAuYnJlYWtwb2ludCgnc20nKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmFsZXJ0LW1lc3NhZ2Uge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMXJlbSAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgICAgICAgICBjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWNvbG9yLWVycm9yLCAje2NvbG9ycy4kY29sb3ItZXJyb3J9KSA4NSUsIGJsYWNrKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJwLmJyZWFrcG9pbnQoJ3NtJykge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFZhbGlkYXRpb24gU3VtbWFyeSBMaXN0XG4gICAgLnZhbGlkYXRpb24tc3VtbWFyeS1saXN0IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuXG4gICAgICAgIC52YWxpZGF0aW9uLXN1bW1hcnktaXRlbSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRXJyb3IgaWNvblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDFyZW07XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiAxNiclM2UlM2NwYXRoIGZpbGw9JyUyM2RjMzU0NScgZD0nTTggMTVBNyA3IDAgMSAxIDggMWE3IDcgMCAwIDEgMCAxNHptMCAxQTggOCAwIDEgMCA4IDBhOCA4IDAgMCAwIDAgMTZ6Jy8lM2UlM2NwYXRoIGZpbGw9JyUyM2RjMzU0NScgZD0nTTcuMDAyIDExYTEgMSAwIDEgMSAyIDAgMSAxIDAgMCAxLTIgMHpNNy4xIDQuOTk1YS45MDUuOTA1IDAgMSAxIDEuOCAwbC0uMzUgMy41MDdhLjU1Mi41NTIgMCAwIDEtMS4xIDBMNy4xIDQuOTk1eicvJTNlJTNjL3N2ZyUzZVwiKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRmb3JtLWVycm9yLWNvbG9yO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgJHRyYW5zaXRpb24tZHVyYXRpb24gJHRyYW5zaXRpb24tZWFzaW5nO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1jb2xvci1lcnJvciwgI3tjb2xvcnMuJGNvbG9yLWVycm9yfSkgODUlLCBibGFjayk7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiAycHggc29saWQgJGZvcm0tZm9jdXMtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQW5pbWF0aW9uIGZvciB2YWxpZGF0aW9uIHN1bW1hcnlcbiAgICAudmFsaWRhdGlvbi1zdW1tYXJ5IHtcbiAgICAgICAgYW5pbWF0aW9uOiBzbGlkZUluRnJvbVRvcCAwLjNzIGVhc2Utb3V0O1xuXG4gICAgICAgIEBrZXlmcmFtZXMgc2xpZGVJbkZyb21Ub3Age1xuICAgICAgICAgICAgZnJvbSB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdG8ge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIEZvcm0gTGF5b3V0IE1peGluIChGbG9hdGluZywgR3JvdXBzLCBBY3Rpb25zKVxuICovXG5AbWl4aW4gZm9ybS1sYXlvdXQoKSB7XG4gICAgLy8gRm9ybSBmbG9hdGluZyBsYWJlbHMgKGlmIG5lZWRlZClcbiAgICAuZm9ybS1mbG9hdGluZyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAuZm9ybS1jb250cm9sIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMC43NXJlbSAwLjVyZW07XG5cbiAgICAgICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pIHtcbiAgICAgICAgICAgICAgICB+bGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuODUpIHRyYW5zbGF0ZVkoLTAuNXJlbSkgdHJhbnNsYXRlWCgwLjE1cmVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNzVyZW07XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIGJvcmRlcjogJGJvcmRlci13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgICAgICAgb3BhY2l0eSAkdHJhbnNpdGlvbi1kdXJhdGlvbiAkdHJhbnNpdGlvbi1lYXNpbmcsXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtICR0cmFuc2l0aW9uLWR1cmF0aW9uICR0cmFuc2l0aW9uLWVhc2luZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZvcm0gZ3JvdXBzIGZvciBzcGFjaW5nXG4gICAgLmZvcm0tZ3JvdXAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAzcmVtO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRm9ybSBzZWN0aW9uc1xuICAgIC5mb3JtLXNlY3Rpb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaDIsIGgzLCBoNCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICAgICAgY29sb3I6ICRmb3JtLXRleHQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAucmVxdWlyZWQge1xuICAgICAgICAgICAgY29sb3I6ICRmb3JtLWVycm9yLWNvbG9yO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZvcm0gYWN0aW9ucyAoYnV0dG9ucylcbiAgICAuZm9ybS1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICAgQGluY2x1ZGUgYnAuYnJlYWtwb2ludCgnc20nKSB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5idG4ge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTIwcHg7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGJwLmJyZWFrcG9pbnQoJ3NtJykge1xuICAgICAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIEZvcm0gQWNjZXNzaWJpbGl0eSBNaXhpblxuICovXG5AbWl4aW4gZm9ybS1hY2Nlc3NpYmlsaXR5KCkge1xuICAgIC8vIFJlZHVjZWQgbW90aW9uIHN1cHBvcnRcbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgICAgICAuZm9ybS1jb250cm9sLFxuICAgICAgICAuZm9ybS1jaGVjay1pbnB1dCxcbiAgICAgICAgLmZvcm0tZmxvYXRpbmcgbGFiZWwge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhpZ2ggY29udHJhc3QgbW9kZSBzdXBwb3J0XG4gICAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAgICAgLmZvcm0tY29udHJvbCxcbiAgICAgICAgLmZvcm0tY2hlY2staW5wdXQge1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAycHg7XG4gICAgICAgIH1cblxuICAgICAgICAudmFsaWRhdGlvbi1zdW1tYXJ5IHtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIEJ1dHRvblRleHQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBCdXR0b25GYWNlO1xuXG4gICAgICAgICAgICAudmFsaWRhdGlvbi1zdW1tYXJ5LWl0ZW06OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBCdXR0b25UZXh0O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFByaW50IHN0eWxlc1xuICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgIC5mb3JtLWNvbnRyb2wsXG4gICAgICAgIC5mb3JtLWNoZWNrLWlucHV0IHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAudmFsaWRhdGlvbi1zdW1tYXJ5IHtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICAuYWxlcnQtaGVhZGluZyxcbiAgICAgICAgICAgIC5hbGVydC1tZXNzYWdlLFxuICAgICAgICAgICAgLnZhbGlkYXRpb24tc3VtbWFyeS1pdGVtIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAudmFsaWRhdGlvbi1zdW1tYXJ5LWl0ZW06OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIE1haW4gZm9ybS1jb21wb25lbnRzIG1peGluIC0gQkFDS1dBUkRTIENPTVBBVElCTEVcbiAqIEluY2x1ZGVzIGFsbCBmb3JtIHN0eWxpbmcgY29tcG9uZW50c1xuICovXG5AbWl4aW4gZm9ybS1jb21wb25lbnRzKCkge1xuICAgIEBpbmNsdWRlIGZvcm0tbGFiZWxzKCk7XG4gICAgQGluY2x1ZGUgZm9ybS1jb250cm9scygpO1xuICAgIEBpbmNsdWRlIGZvcm0tY2hlY2tzKCk7XG4gICAgQGluY2x1ZGUgZm9ybS12YWxpZGF0aW9uKCk7XG4gICAgQGluY2x1ZGUgZm9ybS1sYXlvdXQoKTtcbiAgICBAaW5jbHVkZSBmb3JtLWFjY2Vzc2liaWxpdHkoKTtcbn1cbiIsIi8vIGFzc2V0cy9zY3NzL3BsdWdpbnMvY2VfamZlZXZlbnRzX2V2ZW50Ym9va2luZy5zY3NzXG5AdXNlICcuLi9jb21wb25lbnRzL2Zvcm0tY29tcG9uZW50cycgYXMgZm9ybS1jb21wb25lbnRzO1xuQHVzZSAnLi4vY29tcG9uZW50cy9jb250YWN0LWNhcmQnIGFzIGNvbnRhY3QtY2FyZDtcbkB1c2UgJy4uL2dsb2JhbC9icmVha3BvaW50cycgYXMgYnA7XG5AdXNlICcuLi9nbG9iYWwvY29sb3JzJyBhcyBjb2xvcnM7XG5cbi8vIEJsb2NrIGZvciBCRU0tTWV0aG9kb2xvZ3lcbiRibG9jazogJ2NlLWpmZWV2ZW50c19ldmVudGJvb2tpbmcnO1xuXG4uI3skYmxvY2t9IHtcbiAgICAvLyBJbmNsdWRlIHNoYXJlZCBmb3JtIHN0eWxlXG4gICAgQGluY2x1ZGUgZm9ybS1jb21wb25lbnRzLmZvcm0tY29tcG9uZW50cygpO1xuXG4gICAgLy8gSW5jbHVkZSBjb250YWN0IGNhcmQgY29tcG9uZW50IHN0eWxlc1xuICAgIEBpbmNsdWRlIGNvbnRhY3QtY2FyZC5jb250YWN0LWNhcmQtc3R5bGVzKCRibG9jayk7XG5cbiAgICAmX19pbnRybyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICB9XG5cbiAgICAvLyBBZGQgYW55IGJvb2tpbmctc3BlY2lmaWMgc3R5bGVzIGhlcmUgaWYgbmVlZGVkXG59XG4iLCIvLyBBVVRPLUdFTkVSQVRFRCBGSUxFIGZyb20gYnVpbGQtYnJlYWtwb2ludHMuanNcbi8vIERPIE5PVCBFRElUIERJUkVDVExZXG5cbi8vIEltcG9ydCBTYXNzIG1hcCBtb2R1bGVcbkB1c2UgXCJzYXNzOm1hcFwiO1xuXG4vLyBCcmVha3BvaW50IHZhbHVlc1xuJGJyZWFrcG9pbnQtc206IDY0MHB4O1xuJGJyZWFrcG9pbnQtbWQ6IDc2OHB4O1xuJGJyZWFrcG9pbnQtbGc6IDEwMjRweDtcbiRicmVha3BvaW50LXhsOiAxMjgwcHg7XG4kYnJlYWtwb2ludC0yeGw6IDE1MzZweDtcblxuLy8gTWFwIGZvciBwcm9ncmFtbWF0aWMgYWNjZXNzXG4kYnJlYWtwb2ludHM6IChcbiAgJ3NtJzogJGJyZWFrcG9pbnQtc20sXG4gICdtZCc6ICRicmVha3BvaW50LW1kLFxuICAnbGcnOiAkYnJlYWtwb2ludC1sZyxcbiAgJ3hsJzogJGJyZWFrcG9pbnQteGwsXG4gICcyeGwnOiAkYnJlYWtwb2ludC0yeGxcbik7XG5cbi8vIE1peGluIGZvciBlYXN5IG1lZGlhIHF1ZXJpZXMgYmFzZWQgb24gZGVmaW5lZCBicmVha3BvaW50c1xuQG1peGluIGJyZWFrcG9pbnQoJHBvaW50KSB7XG4gIEBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsICRwb2ludCkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KCRicmVha3BvaW50cywgJHBvaW50KSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcIkJyZWFrcG9pbnQgJyN7JHBvaW50fScgaXMgbm90IGRlZmluZWQgaW4gJGJyZWFrcG9pbnRzIG1hcC5cIjtcbiAgfVxufVxuXG4vLyBNaXhpbiBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXMgKHNtYWxsZXIgdGhhbiBhIGJyZWFrcG9pbnQpXG5AbWl4aW4gYnJlYWtwb2ludC1kb3duKCRwb2ludCkge1xuICBAaWYgbWFwLmhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkcG9pbnQpIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCgkYnJlYWtwb2ludHMsICRwb2ludCkgLSAxcHgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJCcmVha3BvaW50ICcjeyRwb2ludH0nIGlzIG5vdCBkZWZpbmVkIGluICRicmVha3BvaW50cyBtYXAuXCI7XG4gIH1cbn1cblxuLy8gTWl4aW4gZm9yIGNyZWF0aW5nIHN0eWxlcyBiZXR3ZWVuIHR3byBicmVha3BvaW50c1xuQG1peGluIGJyZWFrcG9pbnQtYmV0d2VlbigkbWluLCAkbWF4KSB7XG4gIEBpZiBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsICRtaW4pIGFuZCBtYXAuaGFzLWtleSgkYnJlYWtwb2ludHMsICRtYXgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLmdldCgkYnJlYWtwb2ludHMsICRtaW4pKSBhbmQgKG1heC13aWR0aDogbWFwLmdldCgkYnJlYWtwb2ludHMsICRtYXgpIC0gMXB4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuIFwiQnJlYWtwb2ludCAnI3skbWlufScgb3IgJyN7JG1heH0nIGlzIG5vdCBkZWZpbmVkIGluICRicmVha3BvaW50cyBtYXAuXCI7XG4gIH1cbn1cbiIsIi8vIGFzc2V0cy9zY3NzL2NvbXBvbmVudHMvX2NvbnRhY3QtY2FyZC5zY3NzXG5AdXNlICcuLi9nbG9iYWwvY29sb3JzJyBhcyBjb2xvcnM7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBDb250YWN0IENhcmQgQ29tcG9uZW50XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gVGhpcyBpcyBhIHJldXNhYmxlIGNvbnRhY3QgY2FyZCBjb21wb25lbnQgdGhhdCBjYW4gYmUgdXNlZCBhY3Jvc3MgZGlmZmVyZW50IGJsb2Nrc1xuLy8gVXNhZ2U6IEBpbmNsdWRlIGNvbnRhY3QtY2FyZC5jb250YWN0LWNhcmQtc3R5bGVzKCRibG9jayk7XG5cbi8vIExpbmsgc3R5bGluZyBjb25maWd1cmF0aW9uXG4vLyBVc2luZyBDU1MgdmFyaWFibGVzIGZvciBjb2xvcnMgdG8gcmVzcGVjdCBzaXRlLXNwZWNpZmljIHRoZW1lc1xuJGNvbnRhY3QtbGluay1jb2xvci1kZWZhdWx0OiB2YXIoLS1jb2xvci1ibGFjaywgY29sb3JzLiRjb2xvci1ibGFjayk7XG4kY29udGFjdC1saW5rLWNvbG9yLWhvdmVyOiB2YXIoLS1jb2xvci1ibGFjaywgY29sb3JzLiRjb2xvci1ibGFjayk7XG4kY29udGFjdC1saW5rLXVuZGVybGluZS1jb2xvcjogdmFyKC0tY29sb3Itc2Vjb25kYXJ5KTsgLy8gS2VlcCBhcyBDU1MgdmFyaWFibGUgdG8gcmVzcGVjdCBkaWZmZXJlbnQgcHJvZ3JhbSBjb250ZXh0c1xuJGNvbnRhY3QtbGluay11bmRlcmxpbmUtY29sb3ItaG92ZXI6IHZhcigtLWNvbG9yLWJsYWNrLCBjb2xvcnMuJGNvbG9yLWJsYWNrKTtcbiRjb250YWN0LWxpbmstZm9jdXMtb3V0bGluZS1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7IC8vIEtlZXAgYXMgQ1NTIHZhcmlhYmxlIHRvIHJlc3BlY3QgZGlmZmVyZW50IHByb2dyYW0gY29udGV4dHNcblxuLy8gVmlzdWFsIGNvbmZpZ3VyYXRpb25cbiRjb250YWN0LWxpbmstdW5kZXJsaW5lLXRoaWNrbmVzczogMnB4O1xuJGNvbnRhY3QtbGluay11bmRlcmxpbmUtb2Zmc2V0OiA0cHg7XG4kY29udGFjdC1saW5rLWZvY3VzLW91dGxpbmUtd2lkdGg6IDJweDtcbiRjb250YWN0LWxpbmstZm9jdXMtb3V0bGluZS1vZmZzZXQ6IDJweDtcbiRjb250YWN0LWxpbmstdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4ycztcbiRjb250YWN0LWxpbmstdHJhbnNpdGlvbi1lYXNpbmc6IGVhc2U7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBNYWluIG1peGluIGZvciBjb250YWN0IGNhcmQgc3R5bGVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuQG1peGluIGNvbnRhY3QtY2FyZC1zdHlsZXMoJGJsb2NrKSB7XG4gIC8vIENvbnRhY3QgbmFtZSBzdHlsaW5nXG4gIGgzLiN7JGJsb2NrfV9fY29udGFjdC1uYW1lLFxuICBoMy4jeyRibG9ja31fX25hbWUge1xuICAgIGNvbG9yOiAkY29udGFjdC1saW5rLWNvbG9yLWRlZmF1bHQ7XG4gICAgbWFyZ2luLWJvdHRvbTogLjI1cmVtO1xuICB9XG5cbiAgJl9fcGljdHVyZSB7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGhlaWdodDogMjAwcHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBTaGFyZWQgbGluayBzdHlsZXMgZm9yIGNvbnRhY3QgZWxlbWVudHNcbiAgJl9fcGhvbmUsXG4gICZfX2VtYWlsLFxuICAmX19saW5rLXdyYXBwZXIge1xuICAgIGEge1xuICAgICAgY29sb3I6ICRjb250YWN0LWxpbmstY29sb3ItZGVmYXVsdDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbi1saW5lOiB1bmRlcmxpbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb24tY29sb3I6ICRjb250YWN0LWxpbmstdW5kZXJsaW5lLWNvbG9yO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogJGNvbnRhY3QtbGluay11bmRlcmxpbmUtdGhpY2tuZXNzO1xuICAgICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAkY29udGFjdC1saW5rLXVuZGVybGluZS1vZmZzZXQ7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgJGNvbnRhY3QtbGluay10cmFuc2l0aW9uLWR1cmF0aW9uICRjb250YWN0LWxpbmstdHJhbnNpdGlvbi1lYXNpbmc7XG5cbiAgICAgICY6aG92ZXIsXG4gICAgICAmOmZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRjb250YWN0LWxpbmstY29sb3ItaG92ZXI7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogJGNvbnRhY3QtbGluay11bmRlcmxpbmUtY29sb3ItaG92ZXI7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgIG91dGxpbmU6ICRjb250YWN0LWxpbmstZm9jdXMtb3V0bGluZS13aWR0aCBzb2xpZCAkY29udGFjdC1saW5rLWZvY3VzLW91dGxpbmUtY29sb3I7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiAkY29udGFjdC1saW5rLWZvY3VzLW91dGxpbmUtb2Zmc2V0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICB1bC4jeyRibG9ja31fX2NvbnRhY3QtbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgIGxpLiN7JGJsb2NrfV9fY29udGFjdC1jYXJkIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OjA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICB9XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBBbHRlcm5hdGl2ZTogSW5kaXZpZHVhbCBtaXhpbnMgZm9yIG1vcmUgZ3JhbnVsYXIgY29udHJvbFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gTWl4aW4gZm9yIGNvbnRhY3QgbmFtZSBzdHlsaW5nXG5AbWl4aW4gY29udGFjdC1uYW1lLXN0eWxlcygkYmxvY2spIHtcbiAgaDMuI3skYmxvY2t9X19jb250YWN0LW5hbWUsXG4gIGgzLiN7JGJsb2NrfV9fbmFtZSB7XG4gICAgY29sb3I6ICRjb250YWN0LWxpbmstY29sb3ItZGVmYXVsdDtcbiAgfVxufVxuXG4vLyBNaXhpbiBmb3IgY29udGFjdCBsaW5rIHN0eWxpbmdcbkBtaXhpbiBjb250YWN0LWxpbmstc3R5bGVzKCRibG9jaykge1xuICAmX19waG9uZSxcbiAgJl9fZW1haWwsXG4gICZfX2xpbmstd3JhcHBlciB7XG4gICAgYSB7XG4gICAgICBjb2xvcjogJGNvbnRhY3QtbGluay1jb2xvci1kZWZhdWx0O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IHVuZGVybGluZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbi1jb2xvcjogJGNvbnRhY3QtbGluay11bmRlcmxpbmUtY29sb3I7XG4gICAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAkY29udGFjdC1saW5rLXVuZGVybGluZS10aGlja25lc3M7XG4gICAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6ICRjb250YWN0LWxpbmstdW5kZXJsaW5lLW9mZnNldDtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAkY29udGFjdC1saW5rLXRyYW5zaXRpb24tZHVyYXRpb24gJGNvbnRhY3QtbGluay10cmFuc2l0aW9uLWVhc2luZztcblxuICAgICAgJjpob3ZlcixcbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJGNvbnRhY3QtbGluay1jb2xvci1ob3ZlcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiAkY29udGFjdC1saW5rLXVuZGVybGluZS1jb2xvci1ob3ZlcjtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgb3V0bGluZTogJGNvbnRhY3QtbGluay1mb2N1cy1vdXRsaW5lLXdpZHRoIHNvbGlkICRjb250YWN0LWxpbmstZm9jdXMtb3V0bGluZS1jb2xvcjtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6ICRjb250YWN0LWxpbmstZm9jdXMtb3V0bGluZS1vZmZzZXQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/