/*!*******************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/identitystore-md/styles/app.css ***!
  \*******************************************************************************************************************************/
/* start global classes */
:root {
    /* body bg color */
    --bodyColor: #000;

    --table-color-hover: #050505;

    --table-stripped-color: #111111;

    --table-stripped-color-hover: #090909;

    /* primary brand color */
    --primary-color: #02f291;

    /* white color */
    --white: #fff;

    /* grey color */
    --grey: #ababab;

    /* dark grey color */
    --dark-grey: #434e49;

    /* box color */
    --box-color: #000403;

    /* border radius */
    --border-radius: 0;
}

/* ========== srart dark-mode colors ============ */

body.dark-mode {
    /* body bg color */
    --bodyColor: #f3f3f3;

    --table-color-hover: #f1f1f1;

    --table-stripped-color: #e3e3e3;

    --table-stripped-color-hover: #e1e1e1;

    /* primary brand color */
    --primary-color: #03cc60;

    /* white color */
    --white: #050505;

    /* grey color */
    --grey: #5c5c5c;

    /* box color */
    --box-color: #f0f0f0;

    /* border radius */
    --border-radius: 0;
}

/* ========== end dark-mode colors ============ */

.switch-button {
    border-radius: var(--border-radius);
    background-color: transparent;
    display: flex;
    justify-content: center;
    align-items: center;
    border: none;
    outline: none;
    width: 45px;
    height: 45px;
    padding: 1rem;
    border: 0.5px solid var(--grey);
}

.btn-light-mode {
    color: var(--primary-color);
}

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

body {
    font-family: "Nunito Sans Regular", sans-serif;
    color: var(--white);
    background-color: var(--bodyColor);
    text-align: left;
    position: relative;
    overflow-x: hidden;
    width: 100%;
}

html {
    scroll-behavior: smooth;
    overflow-x: hidden;
    width: 100%;
    height: 100%;
}

::selection {
    color: var(--white);
    background-color: var(--primary-color);
}

.primary-text {
    color: var(--primary-color) !important;
}

.grey-text {
    color: var(--grey);
}

.text-white {
    color: var(--white);
}

.bg-box {
    background-color: var(--box-color);
}

.heading-1,
.heading-2 {
    color: var(--white);
}

.heading-1 {
    font-size: 56px;
    font-weight: bold;
    line-height: normal;
    text-transform: uppercase;
}

.heading-2 {
    font-size: 24px;
    font-weight: bold;
    text-transform: capitalize;
}

.heading-3 {
    font-size: 18px;
    font-weight: bold;
    text-transform: capitalize;
}

.body-1 {
    font-size: 18px;
    font-weight: 400;
    line-height: 30px;
    color: var(--grey);
}

.body-2 {
    font-family: "Space Mono", monospace;
    font-size: 16px;
    font-weight: 400;
    color: var(--grey);
    line-height: 28px;
}

.gap-8 {
    gap: 8px;
}

.gap-16 {
    gap: 16px;
}

.gap-32 {
    gap: 32px;
}

@media (max-width: 990px) {
    .heading-1 {
        font-size: 36px;
    }

    .heading-2 {
        font-size: 20px;
    }

    .heading-3 {
        font-size: 16px;
    }

    .body-1 {
        font-size: 16px;
        line-height: 28px;
    }

    .body-2 {
        font-family: "Space Mono", monospace;
        font-size: 14px;
        line-height: 26px;
    }

    .gap-8 {
        gap: 4px;
    }

    .gap-16 {
        gap: 8px;
    }

    .gap-32 {
        gap: 16px;
    }

    .padding-32 {
        padding: 16px;
    }

    .padding-16 {
        padding: 8px;
    }

    .padding-8 {
        padding: 4px;
    }

    .icon-lg {
        font-size: 36px;
    }

    .icon-md {
        font-size: 22px;
    }

    .icon-sm {
        font-size: 14px;
    }

    .section {
        padding-block: 3rem;
    }

    .bordered-box {
        padding: 8px;
    }

    .shape {
        display: none;
    }
}

a {
    text-decoration: none;
    text-transform: capitalize;
}

.w-fit {
    width: fit-content;
}

.shape {
    position: absolute;
    overflow: hidden;
    opacity: 0.6;
}

.dark-mode .sape {
    opacity: 0.4;
}

.bordered-box {
    border: 0.5px solid var(--dark-grey);
    padding: 16px;
    background-color: transparent;
    border-radius: var(--border-radius);
}

.padding-32 {
    padding: 32px;
}

.padding-16 {
    padding: 16px;
}

.padding-8 {
    padding: 8px;
}

.icon-lg {
    font-size: 48px;
}

.icon-md {
    font-size: 32px;
}

.icon-sm {
    font-size: 24px;
}

p {
    color: var(--grey);
}

.section {
    padding-block: 6rem;
}



.organise {
    width: 700px;
    z-index: -1;
}

input,
textarea {
    border: 0;
    outline: 0;
    background-color: transparent;
    color: var(--grey);
}

/* start buttons style */
.btn {
    background-color: var(--primary-color);
    color: var(--bodyColor);
    font-weight: 800;
    border-radius: var(--border-radius);
    padding: 10px 28px;
    font-size: 16px;
    position: relative;
    overflow: hidden;
    display: flex;
    justify-content: center;
    text-transform: capitalize;
    align-items: center;
    text-align: center;
    letter-spacing: 0.5px;
    outline: none;
    font-weight: bold;
    transition: all 0.3s ease-in-out 0s;
    cursor: pointer;
    z-index: 1;
    transition: color 300ms ease-in-out;
}

.btn:hover {
    color: var(--white);
    border: 0.5px solid var(--dark-grey);
}

/* end main button style */

ul {
    list-style: none;
}

img {
    width: 100%;
}

/* end global classes */

/* ==== start  preloader style  ===== */

/* ==== start  preloader style  ===== */
#preloader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--bodyColor);
    z-index: 9999;
}

.spinner {
    position: absolute;
    top: 45%;
    left: 45%;
    border: 12px solid var(--grey);
    border-top: 12px solid var(--primary-color);
    border-radius: 50%;
    width: 80px;
    height: 80px;
    animation: spin 2s linear infinite;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* ==== end  preloader style  ===== */

/* ======== start scroll-to-top button style  =========== */

#progress {
    position: fixed;
    bottom: 20px;
    right: 10px;
    height: 70px;
    width: 70px;
    display: none;
    place-items: center;
    border-radius: 50%;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
    cursor: pointer;
    z-index: 999;
}

#progress-value {
    display: block;
    height: calc(100% - 15px);
    width: calc(100% - 15px);
    border-radius: 50%;
    display: grid;
    background-color: var(--bodyColor);
    place-items: center;
    font-size: 35px;
    color: var(--primary-color);
}

#progress-value i {
    font-size: 24px;
}

/* ======== end scroll-to-top button style  =========== */

/*================== start navbar section ==================*/

.header {
    position: fixed;
    z-index: 900;
    padding-block: 12px;
    background-color: var(--bodyColor);
    top: 0;
    right: 0;
    width: 100%;
    z-index: 999;
}

.navbar-toggler,
.navbar-toggler:active,
.navbar-toggler:focus {
    border: none;
}

@media (max-width: 990px) {
    .navbar {
        background-color: var(--box-color);
    }
}

.navbar .logo {
    width: 9rem;
}

.navbar ul li a {
    font-weight: 600;
    color: var(--grey);
}

.navbar ul li a:hover,
.navbar ul li a.active {
    color: var(--primary-color) !important;
}

.navbar i {
    font-size: 24px;
    color: var(--grey);
}

/*================== End navbar section ==================*/



/*============== Start About section ==========*/

.about .blury-1 {
    top: -150px;
    right: -550px;
    z-index: -1;
}

.about .organise {
    top: 0;
    left: -400px;
    z-index: -1;
}

.about .container > * {
    position: relative;
}

.about .blury-2 {
    top: 100px;
    left: -500px;
}

/*============== End About section ==========*/

/*============== Start Services section ==========*/

.services .blury-1 {
    top: -150px;
    right: -500px;
}

.services .organise {
    width: 700px;
    top: 0;
    right: -300px;
}

.services .container > * {
    position: relative;
}

.services .blury-2 {
    top: 100px;
    left: -500px;
}

@media (max-width: 990px) {
    .mobile-none {
        display: none;
    }

    .services .reverse {
        display: flex;
        flex-direction: column-reverse !important;
        flex-wrap: wrap;
    }
}

/*============== End Services section ==========*/

/*============== Start portfolio section ==========*/

.portfolio .blury-1 {
    top: -200px;
    right: -500px;
}

.portfolio .organise {
    top: 0;
    right: -300px;
}

.portfolio .scroller > * {
    position: relative;
}

.portfolio .blury-2 {
    bottom: -100px;
    left: -500px;
}

/*============== End portfolio section ==========*/

/*============== Start testimonials section ==========*/
.testimonials .blury-1 {
    top: -200px;
    right: -500px;
}

.testimonials .organise {
    top: 0;
    left: -300px;
}

.testimonials .scroller > * {
    position: relative;
}

.testimonials .container > * {
    position: relative;
}

.testimonials .blury-2 {
    bottom: -100px;
    left: -500px;
}

.testimonials .bordered-box {
    width: 600px;
    background-color: var(--box-color);
}

@media (max-width: 990px) {
    .testimonials .bordered-box {
        width: 400px;
    }

    .testimonials .img img {
        width: 100px;
        height: 100px;
    }

    .testimonials .img {
        flex: 0.3;
    }

    .testimonials .text {
        flex: 0.7;
    }
}

.testimonials .img img {
    border-radius: 50%;
}

.testimonials .img {
    width: 300px;
    height: 300px;
}

@keyframes slide {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-100%);
    }
}

.scroller {
    width: 100%;
}

.scroller__inner {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.scroller[data-animated="true"] {
    overflow: hidden;
    -webkit-mask: linear-gradient(
            90deg,
            transparent,
            black 20%,
            black 80%,
            transparent
    );
    mask: linear-gradient(90deg, transparent, black 20%, black 80%, transparent);
}

.scroller[data-animated="true"] .scroller__inner {
    width: max-content;
    flex-wrap: nowrap;
    animation: scroll var(--_animation-duration, 40s) var(--_animation-direction, forwards) linear infinite;
}

.scroller[data-direction="right"] {
    --_animation-direction: reverse;
}

.scroller[data-direction="left"] {
    --_animation-direction: forwards;
}

.scroller[data-speed="fast"] {
    --_animation-duration: 35s;
}

.scroller[data-speed="slow"] {
    --_animation-duration: 60s;
}

@keyframes scroll {
    to {
        transform: translate(calc(-50% - 0.5rem));
    }
}

/*============== End testimonials section ==========*/

/*============== Start princing section ==========*/
.pricing .dollar {
    font-size: 18px;
    font-weight: bold;
}

.pricing .blury-1 {
    top: -300px;
    left: -600px;
}

.pricing .blury-2 {
    bottom: -400px;
    right: -600px;
}

.pricing .shape-text {
    position: absolute;
    top: 20px;
    right: 10px;
}

.pricing .shape-text h3 {
    font-size: 42px;
    color: rgba(34, 50, 43, 0.445);
    font-weight: bold;
    line-height: 16px;
}

.pricing .shape-text h4 {
    font-size: 30px;
    color: rgba(34, 50, 43, 0.466);
    font-weight: bold;
}

.pricing .month {
    text-transform: capitalize;
    font-size: 18px;
    font-weight: bold;
}

.pricing .line-0 {
    line-height: 0;
}

.pricing .shape-icon {
    position: absolute;
    top: 0;
    right: 0;
    font-size: 82px;
    color: #262e2b63;
}

/*============== End princing section ==========*/

/*============== Start CTA section ==========*/

.cta .blury-1 {
    top: -200px;
    left: -600px;
}

.cta .container > * {
    position: relative;
}

/*============== End CTA section ==========*/

/*============== Start team section ==========*/

.team .blury-1 {
    top: 200px;
    right: -600px;
}

.team .container > * {
    position: relative;
}

.team .content-overlay {
    position: absolute;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    padding-bottom: 1rem;
    width: 100%;
    height: 100%;
    bottom: 0;
    right: 0;
    background: linear-gradient(to top, rgb(0, 4, 3), rgba(0, 0, 0, 0.288));
    opacity: 0;
}

.dark-mode .team .content-overlay {
    background: linear-gradient(
            to top,
            rgb(235, 241, 240),
            rgba(255, 255, 255, 0.075)
    );
}

.team .content-overlay:hover {
    opacity: 1;
}

.team .icon {
    width: 50px;
    height: 50px;
}

/*============== End team section ==========*/

/*============== start FAQ section ==========*/

.faq .blury-1 {
    top: -200px;
    left: -600px;
}

.faq .blury-2 {
    top: 0;
    right: -600px;
}

.faq .container > * {
    position: relative;
}

.faq .btn {
    color: var(--white) !important;
    padding: 0;
    margin: 0;
    width: 100%;
    background-color: transparent !important;
    border: none !important;
    text-align: start;
}

.rotate-icon {
    transition: transform 0.3s ease-in-out;
}

.rotate-icon.rotated {
    transform: rotate(180deg);
}

/*============== End FAQ section ==========*/



/*============== End Footer section ==========*/

.footer-link {
    font-size: 16px;
    color: var(--grey);
}

.footer a i {
    font-size: 16px;
    color: var(--grey);
}

.footer i:hover {
    color: var(--primary-color);
}

.copy {
    font-size: 12px;
    color: var(--dark-grey);
}

/*============== End Footer section ==========*/

/*!********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/identitystore-md/styles/app.scss ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************/
body .text-left {
  text-align: left !important;
}
body .no-capitalize {
  text-transform: none !important;
}
body .blury {
  width: 980px;
  z-index: -1;
}
body > section.no-title {
  margin-top: 6%;
}
body .leaflet-control-attribution {
  display: none !important;
}
body .learn-more {
  text-transform: capitalize;
  color: var(--primary-color);
  display: flex;
  align-items: center;
  font-size: 18px;
  font-weight: bold;
  cursor: pointer;
  border: none;
  background-color: transparent;
}
body .learn-more:hover {
  letter-spacing: 1.5px;
  transition: all 0.5s;
  color: var(--white);
}
body .learn-more i {
  font-size: 22px;
  margin-left: 8px;
}
@media (max-width: 720px) {
  body > section.no-title {
    margin-top: 70px;
  }
}

section.content-project .content-intro ul li {
  text-align: left;
}

.table td, .table th {
  padding: 0.5em 1em;
  background-color: var(--bodyColor);
  color: var(--grey);
}
.table td > p, .table th > p {
  display: block;
  margin: 0;
}
.table th {
  font-weight: bolder;
  text-align: center;
  padding: 0.5em;
}
.table tbody tr:nth-of-type(odd) > * {
  background-color: var(--table-stripped-color);
}
.table tbody tr:nth-of-type(odd):hover > * {
  background-color: var(--table-stripped-color-hover);
}
.table tbody tr:nth-of-type(even) > * {
  background-color: var(--bodyColor);
}
.table tbody tr:nth-of-type(even):hover > * {
  background-color: var(--table-color-hover);
}
.table tbody td .learn-more:hover {
  letter-spacing: 0;
  transition: none;
}

.hero {
  margin-top: 8%;
}
.hero .heading-1 {
  font-size: 64px;
}
.hero .container > * {
  position: relative;
}
@media (max-width: 990px) {
  .hero .heading-1 {
    font-size: 56px;
  }
}
@media (max-width: 720px) {
  .hero.no-title {
    margin-top: 70px;
  }
  .hero .heading-1 {
    font-size: 36px;
  }
}
.hero .blury {
  position: absolute;
  right: 10%;
  top: -60%;
  width: 950px;
  transform: rotate(90deg);
}

/*============== Start contact section ==========*/
.contact .blury-1 {
  top: -400px;
  left: -600px;
}
.contact .blury-2 {
  top: -400px;
  right: -600px;
}
.contact h3 > a {
  color: var(--white);
}
.contact .contact-map {
  height: 320px;
}
@media (max-width: 990px) {
  .contact .contact-map {
    height: auto;
  }
}

.toast-success {
  background-color: var(--primary-color) !important;
  opacity: 1 !important;
}

.toast-error {
  background-color: #8b0500 !important;
  opacity: 1 !important;
}

.toast {
  border-radius: var(--border-radius) !important;
  color: var(--white);
  font-family: "Syne", sans-serif;
  box-shadow: none !important;
  z-index: 900;
}

/*============== End contact section ==========*/
/*!***************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/identitystore-md/styles/animations.scss ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/* ============================================================
   Identity Store — homepage motion & section styles
   Built on the existing tokens in app.css:
   --bodyColor #000 · --primary-color #02f291 · --grey #ababab
   --dark-grey #434e49 · --box-color #000403
   Corner radii come from the --radius-* scale defined in hero.scss.
   ============================================================ */
/* ---------- 1. Scroll reveal (the backbone) ---------- */
[data-reveal] {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  filter: blur(6px);
  transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1), transform 0.7s cubic-bezier(0.16, 1, 0.3, 1), filter 0.7s cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}

[data-reveal].is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  filter: blur(0);
}

/* ---------- 2. Headline word-by-word ---------- */
.ismd-word {
  display: inline-block;
  opacity: 0;
  transform: translate3d(0, 0.6em, 0) rotate(3deg);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: var(--word-delay, 0ms);
}

.is-visible .ismd-word,
.ismd-split.is-visible .ismd-word {
  opacity: 1;
  transform: translate3d(0, 0, 0) rotate(0);
}

/* ---------- 3. Shared section furniture ---------- */
.ismd-section {
  position: relative;
  padding: 96px 0;
}

.ismd-head {
  display: flex;
  flex-direction: column;
  gap: 14px;
  max-width: 760px;
  margin-bottom: 48px;
}

.ismd-head--center {
  margin-inline: auto;
  text-align: center;
  align-items: center;
}

.ismd-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--primary-color);
  font-weight: 600;
}

.ismd-eyebrow__dot {
  width: 7px;
  height: 7px;
  background: var(--primary-color);
  border-radius: 50%;
  animation: ismd-pulse-dot 2s ease-in-out infinite;
}

@keyframes ismd-pulse-dot {
  0%, 100% {
    opacity: 1;
    box-shadow: 0 0 0 0 rgba(94, 210, 156, 0.6);
  }
  50% {
    opacity: 0.6;
    box-shadow: 0 0 0 9px rgba(94, 210, 156, 0);
  }
}
.ismd-center {
  display: flex;
  justify-content: center;
  margin-top: 44px;
}

/* ---------- 4. Hero ---------- */
.ismd-hero {
  position: relative;
  overflow: hidden;
}

.ismd-hero__glow {
  position: absolute;
  top: -30%;
  left: 50%;
  width: 900px;
  height: 900px;
  max-width: 140vw;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(94, 210, 156, 0.16) 0%, rgba(94, 210, 156, 0) 62%);
  pointer-events: none;
  animation: ismd-breathe 9s ease-in-out infinite;
}

@keyframes ismd-breathe {
  0%, 100% {
    opacity: 0.75;
    transform: translateX(-50%) scale(1);
  }
  50% {
    opacity: 1;
    transform: translateX(-50%) scale(1.12);
  }
}
.ismd-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
  justify-content: center;
  margin-top: 8px;
}

.ismd-btn {
  border-radius: var(--radius-pill);
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  overflow: hidden;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s ease;
}

.ismd-btn i {
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.ismd-btn:hover i {
  transform: translateX(5px);
}

.ismd-btn::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 20%, rgba(255, 255, 255, 0.45) 50%, transparent 80%);
  transform: translateX(-120%);
  transition: transform 0.7s ease;
}

.ismd-btn:hover::after {
  transform: translateX(120%);
}

.ismd-btn-ghost {
  border-radius: var(--radius-pill);
  display: inline-flex;
  align-items: center;
  padding: 14px 26px;
  border: 1px solid var(--dark-grey);
  color: var(--white);
  text-decoration: none;
  transition: border-color 0.3s ease, color 0.3s ease, transform 0.25s ease;
}

.ismd-btn-ghost:hover {
  border-color: var(--primary-color);
  color: var(--primary-color);
}

.ismd-hero__media {
  width: 100%;
  max-width: 900px;
  margin-top: 24px;
}

.ismd-hero__frame,
.ismd-frame {
  border-radius: var(--radius);
  position: relative;
  border: 1px solid var(--dark-grey);
  background: var(--box-color);
  overflow: hidden;
  transform-style: preserve-3d;
  transition: border-color 0.4s ease, box-shadow 0.4s ease;
}

.ismd-hero__frame:hover,
.ismd-frame:hover {
  border-color: var(--primary-color);
  box-shadow: 0 0 44px rgba(94, 210, 156, 0.18);
}

.ismd-hero__frame img,
.ismd-frame img {
  display: block;
  width: 100%;
  height: auto;
}

.ismd-frame__placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 280px;
  color: var(--dark-grey);
  font-size: 14px;
}

.ismd-frame__placeholder i {
  font-size: 34px;
  animation: ismd-float 4s ease-in-out infinite;
}

@keyframes ismd-float {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-9px);
  }
}
.ismd-hero__live {
  border-radius: var(--radius-pill);
  position: absolute;
  top: 14px;
  right: 14px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 5px 11px;
  background: rgba(0, 0, 0, 0.72);
  border: 1px solid var(--primary-color);
  color: var(--primary-color);
  font-size: 11px;
  letter-spacing: 0.14em;
}

.ismd-pulse {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--primary-color);
  animation: ismd-pulse-dot 1.6s ease-in-out infinite;
}

.ismd-scroll-hint {
  position: absolute;
  bottom: 26px;
  left: 50%;
  transform: translateX(-50%);
  width: 22px;
  height: 36px;
  border: 1px solid var(--dark-grey);
  border-radius: var(--radius-pill);
  display: flex;
  justify-content: center;
  padding-top: 7px;
}

.ismd-scroll-hint span {
  width: 3px;
  height: 7px;
  background: var(--primary-color);
  animation: ismd-scroll-hint 1.9s ease-in-out infinite;
}

@keyframes ismd-scroll-hint {
  0% {
    opacity: 0;
    transform: translateY(0);
  }
  35% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translateY(13px);
  }
}
/* ---------- 5. Counters ---------- */
.ismd-counters__grid {
  display: grid;
  /* 4 counters: one clean row */
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

.ismd-counter {
  background: var(--box-color);
  border: 1px solid var(--dark-grey);
  border-radius: var(--radius);
  padding: 34px 26px;
  text-align: center;
  transition: background 0.35s ease, border-color 0.35s ease;
}

.ismd-counter:hover {
  background: var(--bodyColor);
  border-color: var(--primary-color);
}

.ismd-counter h2 {
  color: var(--primary-color);
  margin-bottom: 6px;
  font-variant-numeric: tabular-nums;
}

/* ---------- 6. Split layouts ---------- */
.ismd-split-layout {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 56px;
  align-items: center;
}

.ismd-split-layout--reverse .ismd-split-layout__media {
  order: -1;
}

@media (max-width: 767px) {
  .ismd-split-layout--reverse .ismd-split-layout__media {
    order: 0;
  }
}
.ismd-split-layout__text {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.ismd-ticks {
  list-style: none;
  padding: 0;
  margin: 8px 0 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ismd-ticks li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  color: var(--grey);
}

.ismd-ticks i {
  color: var(--primary-color);
  margin-top: 5px;
  flex-shrink: 0;
}

/* ---------- 7. Coverage ---------- */
.ismd-map-wrap {
  border-radius: var(--radius);
  border: 1px solid var(--dark-grey);
  margin-bottom: 40px;
  overflow: hidden;
}

.ismd-map {
  height: 440px;
  width: 100%;
  background: #2a2f2e;
}

/* The filter belongs on the tile pane, NOT on .ismd-map. A filter on the map
   container applies to everything inside it, pins included -- which is why the
   markers came out grey on a grey map however bright their colour was.
   Scoping it to the tiles leaves the pins, popups and controls untouched.

   invert() alone lands almost black; the brightness lift afterwards pulls the
   result back to a mid grey so streets and labels stay readable. */
.ismd-map .leaflet-tile-pane {
  filter: grayscale(0.92) invert(0.9) brightness(1.22) contrast(0.72);
}

.ismd-sectors {
  display: grid;
  /* 6 sectors: 3 + 3 */
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.ismd-sector {
  background: var(--box-color);
  border: 1px solid var(--dark-grey);
  border-radius: var(--radius);
  padding: 20px 22px;
  transition: border-color 0.35s ease;
}

.ismd-sector:hover {
  border-color: var(--primary-color);
}

.ismd-sector__top {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 11px;
}

.ismd-sector__name {
  color: var(--white);
}

.ismd-sector__count {
  color: var(--primary-color);
  font-size: 22px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.ismd-sector__bar {
  border-radius: var(--radius-pill);
  height: 3px;
  background: var(--dark-grey);
  overflow: hidden;
}

.ismd-sector__fill {
  border-radius: var(--radius-pill);
  display: block;
  height: 100%;
  width: 0;
  background: var(--primary-color);
  transition: width 1.1s cubic-bezier(0.16, 1, 0.3, 1) 0.15s;
}

.ismd-sector__fill.is-filled {
  width: var(--bar-width, 0%);
}

/* map pins, rendered by animations.js as Leaflet divIcons. No outline: the drop
   shadow alone lifts the dot off the tiles. */
.ismd-pin__dot {
  display: block;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--primary-color);
  box-shadow: 0 0 0 0 rgba(2, 242, 145, 0.6), 0 2px 6px rgba(0, 0, 0, 0.45);
  animation: ismd-pin-pulse 2.2s ease-out infinite;
}

@keyframes ismd-pin-pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(2, 242, 145, 0.6), 0 2px 6px rgba(0, 0, 0, 0.55);
  }
  70% {
    box-shadow: 0 0 0 14px rgba(2, 242, 145, 0), 0 2px 6px rgba(0, 0, 0, 0.55);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(2, 242, 145, 0), 0 2px 6px rgba(0, 0, 0, 0.55);
  }
}
/* Popups used to be inverted along with everything else; now that the filter is
   scoped to the tiles they render in their own colours, so give them the site's. */
.ismd-map .leaflet-popup-content-wrapper,
.ismd-map .leaflet-popup-tip {
  background: var(--box-color);
  color: var(--white);
  border: 1px solid var(--dark-grey);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45);
}

.ismd-map .leaflet-popup-content {
  margin: 11px 14px;
  font-weight: 700;
}

.ismd-map .leaflet-popup-close-button {
  color: var(--grey);
}

.ismd-map .leaflet-control-zoom a {
  background: var(--box-color);
  border-color: var(--dark-grey);
  color: var(--white);
}

.ismd-map .leaflet-control-zoom a:hover {
  color: var(--primary-color);
}

@media (prefers-reduced-motion: reduce) {
  .ismd-pin__dot {
    animation: none;
  }
}
/* ---------- 8. What plays on screen ---------- */
.ismd-rotation {
  display: grid;
  /* 4 rotation items: one clean row */
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}

.ismd-rotation__item {
  position: relative;
  background: var(--box-color);
  border: 1px solid var(--dark-grey);
  border-radius: var(--radius);
  padding: 30px 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: background 0.35s ease, border-color 0.35s ease;
}

.ismd-rotation__item:hover {
  background: var(--bodyColor);
  border-color: var(--primary-color);
}

.ismd-rotation__item > i {
  color: var(--primary-color);
  font-size: 21px;
}

.ismd-rotation__idx {
  position: absolute;
  top: 16px;
  right: 20px;
  color: var(--dark-grey);
  font-size: 13px;
  letter-spacing: 0.1em;
}

/* ---------- 9. Option cards ---------- */
.ismd-cards {
  display: grid;
  /* 6 options: 3 + 3 */
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.ismd-card {
  border-radius: var(--radius);
  position: relative;
  background: var(--box-color);
  border: 1px solid var(--dark-grey);
  padding: 30px 26px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow: hidden;
  transform-style: preserve-3d;
  transition: border-color 0.35s ease, transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.ismd-card:hover {
  border-color: var(--primary-color);
}

.ismd-card > i {
  font-size: 25px;
  color: var(--primary-color);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.ismd-card:hover > i {
  transform: scale(1.18) rotate(-7deg);
}

/* cursor-following glow, positioned by JS via --mx/--my */
.ismd-card__glow {
  position: absolute;
  top: 0;
  left: 0;
  width: 280px;
  height: 280px;
  background: radial-gradient(circle, rgba(94, 210, 156, 0.14) 0%, rgba(94, 210, 156, 0) 68%);
  transform: translate3d(calc(var(--mx, 50%) - 140px), calc(var(--my, 50%) - 140px), 0);
  opacity: 0;
  transition: opacity 0.35s ease;
  pointer-events: none;
}

.ismd-card:hover .ismd-card__glow {
  opacity: 1;
}

/* ---------- 10. QR demo ---------- */
.ismd-qr {
  border: 1px solid var(--dark-grey);
  background: var(--box-color);
  padding: 30px;
  display: flex;
  flex-direction: column;
  gap: 22px;
  transform-style: preserve-3d;
}

.ismd-qr__grid {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 5px;
  aspect-ratio: 1;
  max-width: 260px;
  margin-inline: auto;
}

.ismd-qr__grid span {
  background: var(--dark-grey);
  opacity: 0;
  transform: scale(0.4);
  transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), background 0.4s ease;
  transition-delay: var(--d, 0ms);
}

.is-visible .ismd-qr__grid span,
.ismd-qr.is-visible .ismd-qr__grid span {
  opacity: 1;
  transform: scale(1);
}

.ismd-qr__grid span:nth-child(3n) {
  background: var(--primary-color);
}

.ismd-qr__meta {
  display: flex;
  flex-direction: column;
  gap: 9px;
  font-size: 13px;
  color: var(--grey);
}

.ismd-qr__meta i {
  color: var(--primary-color);
  width: 17px;
  margin-right: 8px;
}

/* ---------- 11. Spec table ---------- */
.ismd-table-wrap {
  border-radius: var(--radius);
  overflow-x: auto;
  border: 1px solid var(--dark-grey);
}

.ismd-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 560px;
}

.ismd-table th,
.ismd-table td {
  text-align: left;
  padding: 15px 20px;
  border-bottom: 1px solid var(--dark-grey);
  color: var(--grey);
}

.ismd-table th {
  color: var(--primary-color);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.ismd-table td:first-child {
  color: var(--white);
}

.ismd-table tbody tr {
  transition: background 0.3s ease;
}

.ismd-table tbody tr:hover {
  background: var(--table-color-hover);
}

.ismd-table tbody tr:last-child td {
  border-bottom: none;
}

/* ---------- 12. Packages ---------- */
.ismd-packages__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 20px;
}

.ismd-package {
  border: 1px solid var(--dark-grey);
  background: var(--box-color);
  padding: 32px 26px;
  text-align: center;
  transform-style: preserve-3d;
  transition: border-color 0.35s ease, transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.ismd-package:hover {
  border-color: var(--primary-color);
}

.ismd-package--featured {
  border-color: var(--primary-color);
  box-shadow: 0 0 40px rgba(94, 210, 156, 0.12);
}

.ismd-package__rate {
  margin: 14px 0 6px;
  color: var(--primary-color);
  font-size: 42px;
  font-weight: 700;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.ismd-package__rate small {
  display: block;
  margin-top: 7px;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.1em;
  color: var(--grey);
  text-transform: uppercase;
}

/* ---------- 13. Partner marquee ---------- */
.ismd-logos {
  align-items: center;
  gap: 62px;
}

.ismd-logos img {
  height: 42px;
  width: auto;
  object-fit: contain;
  filter: grayscale(1) brightness(1.8);
  opacity: 0.6;
  transition: opacity 0.3s ease, filter 0.3s ease;
}

.ismd-logos img:hover {
  opacity: 1;
  filter: grayscale(0) brightness(1);
}

/* ---------- 14. Closing CTA ---------- */
.ismd-cta__box {
  border-radius: var(--radius-lg);
  position: relative;
  border: 1px solid var(--primary-color);
  background: var(--box-color);
  padding: 62px 40px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  overflow: hidden;
}

.ismd-cta__shine {
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 35%, rgba(94, 210, 156, 0.12) 50%, transparent 65%);
  transform: translateX(-100%);
  animation: ismd-shine 6s ease-in-out infinite;
  pointer-events: none;
}

@keyframes ismd-shine {
  0%, 65% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}
.ismd-cta__phones {
  display: flex;
  flex-wrap: wrap;
  gap: 26px;
  justify-content: center;
  margin-top: 10px;
}

.ismd-cta__phones a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--white);
  text-decoration: none;
  font-size: 18px;
  transition: color 0.3s ease;
}

.ismd-cta__phones a:hover {
  color: var(--primary-color);
}

.ismd-cta__phones i {
  color: var(--primary-color);
}

/* ---------- 15. Reduced motion — turn everything off ---------- */
@media (prefers-reduced-motion: reduce) {
  [data-reveal],
  [data-reveal].is-visible,
  .ismd-word,
  .ismd-qr__grid span {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
  .ismd-sector__fill {
    transition: none;
    width: var(--bar-width, 0%);
  }
  .ismd-hero__glow,
  .ismd-eyebrow__dot,
  .ismd-pulse,
  .ismd-scroll-hint span,
  .ismd-cta__shine,
  .ismd-frame__placeholder i {
    animation: none;
  }
  .ismd-btn::after {
    display: none;
  }
}
/* ---------- 16. Offer request form ---------- */
.ismd-form {
  width: 100%;
  max-width: 680px;
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-top: 26px;
  text-align: left;
}

.ismd-form__row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 18px;
}

.ismd-field {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.ismd-field > span {
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--grey);
}

.ismd-field > span em {
  color: var(--primary-color);
  font-style: normal;
}

.ismd-field input,
.ismd-field textarea {
  width: 100%;
  border-radius: var(--radius-sm);
  padding: 13px 15px;
  background: var(--bodyColor);
  border: 1px solid var(--dark-grey);
  color: var(--white);
  font: inherit;
  font-size: 15px;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.ismd-field textarea {
  resize: vertical;
  min-height: 92px;
}

.ismd-field input::placeholder,
.ismd-field textarea::placeholder {
  color: var(--dark-grey);
}

.ismd-field input:focus,
.ismd-field textarea:focus {
  outline: none;
  border-color: var(--primary-color);
  box-shadow: 0 0 0 3px rgba(94, 210, 156, 0.16);
}

.ismd-field input.is-invalid,
.ismd-field textarea.is-invalid {
  border-color: #ff5c5c;
  box-shadow: 0 0 0 3px rgba(255, 92, 92, 0.16);
}

.ismd-form .ismd-btn {
  align-self: flex-start;
}

.ismd-form button[disabled] {
  opacity: 0.65;
  cursor: progress;
}

/* honeypot — off-screen for people, still fillable by bots */
.ismd-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
/*!*********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/identitystore-md/styles/hero.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/* ============================================================
   Identity Store — hero & navigation
   Design language: deep ink ground, single green accent, thin
   rhythm lines, one glass object. Loaded after animations.scss
   so these tokens win.
   ============================================================ */
:root {
  /* refined from the theme's #000 / #02f291 */
  --bodyColor: #070b0a;
  --box-color: #0b100f;
  --primary-color: #5ed29c;
  --ink: #070b0a;
  --accent: #5ed29c;
  /* one radius scale for the whole site; the purchased theme shipped
     --border-radius: 0, which is why some blocks were square and the
     newer ones rounded */
  --radius-sm: 8px;
  --radius: 14px;
  --radius-lg: 20px;
  --radius-pill: 999px;
  --border-radius: var(--radius);
  --font-ui: "Inter", system-ui, -apple-system, sans-serif;
  --font-eyebrow: "Plus Jakarta Sans", "Inter", system-ui, sans-serif;
  --font-accent: "Instrument Serif", Georgia, serif;
}

body.body {
  background: var(--ink);
  font-family: var(--font-ui);
}

/* ---------- navigation ---------- */
/* Sticky, and frosted once the page has moved. It starts transparent so the hero
   video reads full-bleed, then the glass fades in on scroll -- js/animations.js
   adds .is-stuck past 40px. */
.ismd-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 40;
  padding: 26px 0;
  transition: padding 0.35s ease, background-color 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
  border-bottom: 1px solid transparent;
}

.ismd-nav.is-stuck {
  padding: 14px 0;
  background: rgba(8, 14, 12, 0.62);
  border-bottom-color: rgba(255, 255, 255, 0.09);
  box-shadow: 0 10px 34px rgba(0, 0, 0, 0.38);
  -webkit-backdrop-filter: blur(16px) saturate(1.5);
  backdrop-filter: blur(16px) saturate(1.5);
}

/* A hairline of brand colour along the bottom edge, so the bar reads as a pane
   of glass rather than a flat dark strip. */
.ismd-nav.is-stuck::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(2, 242, 145, 0.45), transparent);
}

/* Without backdrop-filter the translucency just looks muddy, so go opaque. */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .ismd-nav.is-stuck {
    background: rgba(8, 14, 12, 0.94);
  }
}
@media (prefers-reduced-motion: reduce) {
  .ismd-nav {
    transition: none;
  }
}
.ismd-nav__inner {
  width: min(1240px, 100% - 48px);
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.ismd-nav__logo {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  text-decoration: none;
  color: #fff;
}

.ismd-nav__mark {
  width: 15px;
  height: 15px;
  border: 1.5px solid #fff;
  border-radius: 50%;
  position: relative;
  flex-shrink: 0;
}

.ismd-nav__mark::after {
  content: "";
  position: absolute;
  inset: 3.5px;
  background: var(--accent);
  border-radius: 50%;
}

.ismd-nav__wordmark {
  font-family: var(--font-ui);
  font-weight: 800;
  font-size: 15px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #fff;
}

.ismd-nav__links {
  display: none;
  gap: 34px;
}

.ismd-nav__links a {
  font-family: var(--font-ui);
  font-size: 16px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.82);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  transition: color 0.25s ease;
}

.ismd-nav__links a:hover,
.ismd-nav__links a[aria-current=page] {
  color: var(--accent);
}

.ismd-nav__actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

.ismd-nav__cta {
  display: none;
  padding: 10px 22px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: var(--radius-pill);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fff;
  text-decoration: none;
  transition: border-color 0.25s ease, color 0.25s ease, background 0.25s ease;
}

.ismd-nav__cta:hover {
  border-color: var(--accent);
  color: var(--ink);
  background: var(--accent);
}

/* Language switcher. Unlike the CTA next to it, this stays visible at every
   width: on a phone the CTA collapses into the burger menu, but a visitor who
   landed on the wrong language needs to be able to leave it immediately. */
.ismd-nav__langs {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  margin-right: 14px;
}

.ismd-nav__lang {
  padding: 6px 9px;
  border-radius: var(--radius-pill);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.62);
  text-decoration: none;
  transition: color 0.25s ease, background 0.25s ease;
}

.ismd-nav__lang:hover {
  color: #fff;
}

.ismd-nav__lang.is-current {
  color: var(--ink);
  background: var(--accent);
}

.ismd-nav__burger {
  width: 42px;
  height: 42px;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: var(--radius-pill);
  cursor: pointer;
}

.ismd-nav__burger span {
  display: block;
  width: 16px;
  height: 1.5px;
  background: #fff;
}

/* ---------- mobile overlay ---------- */
.ismd-mobile {
  position: fixed;
  inset: 0;
  z-index: 60;
  background: rgba(7, 11, 10, 0.97);
  backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.ismd-mobile[hidden] {
  display: none;
}

.ismd-mobile.is-open {
  opacity: 1;
}

.ismd-mobile__close {
  position: absolute;
  top: 24px;
  right: 30px;
  background: transparent;
  border: 0;
  color: #fff;
  font-size: 40px;
  line-height: 1;
  cursor: pointer;
}

.ismd-mobile__links {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 26px;
}

.ismd-mobile__links a {
  font-family: var(--font-ui);
  font-size: 26px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #fff;
  text-decoration: none;
}

.ismd-mobile__links a:hover {
  color: var(--accent);
}

.ismd-mobile__cta {
  margin-top: 12px;
  padding: 13px 30px;
  border-radius: var(--radius-pill);
  background: var(--accent);
  color: var(--ink) !important;
  font-size: 15px !important;
}

/* ---------- hero shell ---------- */
.ismd-hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: var(--ink);
  /* top padding sits the block slightly below centre, clear of the nav */
  padding: 210px 0 90px;
}

.ismd-hero__bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.ismd-hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* On a wide screen almost the whole 16:9 frame is visible, so the default
     centre is right. The narrow breakpoints below re-aim it. */
  object-position: 50% 50%;
  opacity: 0.6;
}

.ismd-hero__veil {
  position: absolute;
  inset: 0;
}

.ismd-hero__veil--left {
  background: linear-gradient(to right, #070b0a 0%, rgba(7, 11, 10, 0.72) 38%, rgba(7, 11, 10, 0) 78%);
}

.ismd-hero__veil--bottom {
  background: linear-gradient(to top, #070b0a 0%, rgba(7, 11, 10, 0.55) 26%, rgba(7, 11, 10, 0) 62%);
}

.ismd-hero__glow {
  position: absolute;
  top: -40px;
  left: 50%;
  transform: translateX(-50%);
  width: min(1200px, 130%);
  height: 420px;
  pointer-events: none;
}

.ismd-hero__grid {
  display: none;
  position: absolute;
  inset: 0;
}

.ismd-hero__grid span {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background: rgba(255, 255, 255, 0.1);
}

.ismd-hero__inner {
  position: relative;
  z-index: 2;
  width: min(1240px, 100% - 48px);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
}

/* ---------- liquid glass card ---------- */
.ismd-glass {
  position: relative;
  width: 200px;
  height: 200px;
  transform: translateY(-50px);
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 9px;
  border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.01);
  background-blend-mode: luminosity;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.1);
  overflow: hidden;
}

/* sharp 1.4px frame drawn with a masked gradient ring */
.ismd-glass::before {
  content: "";
  position: absolute;
  inset: 0;
  padding: 1.4px;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.75), rgba(255, 255, 255, 0.06));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

.ismd-glass__tag {
  font-family: var(--font-ui);
  font-size: 14px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.72);
  letter-spacing: 0.06em;
}

.ismd-glass__title {
  font-family: var(--font-ui);
  font-size: 18px;
  font-weight: 600;
  line-height: 1.28;
  color: #fff;
  margin: 0;
}

.ismd-glass__title em {
  font-family: var(--font-accent);
  font-style: italic;
  font-weight: 400;
  font-size: 21px;
}

.ismd-glass__note {
  font-family: var(--font-ui);
  font-size: 11px;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.55);
  margin: 0;
}

/* ---------- hero type ---------- */
.ismd-hero__eyebrow {
  font-family: var(--font-eyebrow);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0;
}

.ismd-hero__title {
  font-family: var(--font-ui);
  font-weight: 800;
  font-size: clamp(40px, 7vw, 72px);
  line-height: 1.02;
  letter-spacing: -0.035em;
  text-transform: uppercase;
  color: #fff;
  margin: 0;
  max-width: 15ch;
  text-wrap: balance;
}

.ismd-hero__dot {
  color: var(--accent);
}

.ismd-hero__lede {
  font-family: var(--font-ui);
  font-size: 14px;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.7);
  max-width: 512px;
  margin: 0;
}

.ismd-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  margin-top: 10px;
}

.ismd-cta-primary {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 30px;
  border-radius: var(--radius-pill);
  background: var(--accent);
  color: var(--ink);
  font-family: var(--font-ui);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.25s ease;
}

.ismd-cta-primary:hover {
  color: var(--ink);
  box-shadow: 0 10px 34px rgba(94, 210, 156, 0.28);
}

.ismd-cta-primary i {
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.ismd-cta-primary:hover i {
  transform: translateX(4px);
}

.ismd-cta-ghost {
  display: inline-flex;
  align-items: center;
  padding: 15px 26px;
  border-radius: var(--radius-pill);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.86);
  font-family: var(--font-ui);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  transition: border-color 0.25s ease, color 0.25s ease;
}

.ismd-cta-ghost:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* ---------- breakpoints ---------- */
@media (min-width: 992px) {
  .ismd-nav__links,
  .ismd-nav__cta {
    display: inline-flex;
  }
  .ismd-nav__burger {
    display: none;
  }
  .ismd-hero__grid {
    display: block;
  }
}
@media (max-width: 575px) {
  .ismd-glass {
    width: 172px;
    height: 172px;
    transform: translateY(-26px);
  }
}
/* The subject of the shot -- the panel on its pole -- sits at roughly 72% across
   the frame, not in the middle. `object-fit: cover` on a portrait screen crops
   the sides hard: a 390x844 phone shows only about a quarter of the video's
   width, and centred on 50% that quarter is the empty pavement on the left while
   the panel is cropped away entirely.

   object-position percentages are not "show this point in the middle" -- they
   slide the oversized image across the box, so the visible centre works out as
   X * (1 - visibleFraction) + visibleFraction / 2. Solving that for the panel at
   72% gives the values below, which is why they differ per breakpoint: the
   narrower the viewport, the less of the width survives the crop. */
/* Narrow screens see so little of the frame that a slow pan is worth having: it
   walks left to the shelter and the people waiting, then back to rest on the
   panel. The two ends are custom properties so one keyframe rule serves both
   breakpoints -- they resolve per element and do not change mid-animation, so
   the interpolation between them behaves like ordinary values.

   This animates object-position, which repaints rather than compositing. That is
   the honest cost of panning the *content* of a cover-fitted video: a transform
   would move the element box and reveal nothing new. One element at 24s makes it
   a non-issue in practice. */
@keyframes ismd-hero-pan {
  0%, 6% {
    object-position: var(--hero-pan-rest) 50%;
  }
  50%, 56% {
    object-position: var(--hero-pan-far) 50%;
  }
  100% {
    object-position: var(--hero-pan-rest) 50%;
  }
}
@media (max-width: 1099px) {
  .ismd-hero__video {
    --hero-pan-rest: 85%;
    --hero-pan-far: 32%;
    object-position: var(--hero-pan-rest) 50%;
    animation: ismd-hero-pan 24s ease-in-out infinite;
  }
}
@media (max-width: 719px) {
  .ismd-hero__video {
    --hero-pan-rest: 79%;
    --hero-pan-far: 26%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ismd-hero__video {
    display: none;
    animation: none;
  }
}
/* ============================================================
   Global typography — one pair for the whole site.
   Inter carries everything; Instrument Serif italic is the accent
   face; Plus Jakarta Sans is reserved for eyebrows/labels.
   Overrides the purchased theme's Nunito Sans / Space Mono / Syne.
   ============================================================ */
html,
body,
body.body,
button,
input,
select,
textarea,
.navbar,
.container,
p,
li,
td,
th,
label,
a {
  font-family: var(--font-ui);
}

h1, h2, h3, h4, h5, h6,
.heading-1,
.heading-2,
.heading-3 {
  font-family: var(--font-ui);
  font-weight: 800;
  letter-spacing: -0.03em;
  text-wrap: balance;
}

.body-1,
.body-2 {
  font-family: var(--font-ui);
  letter-spacing: 0;
}

.body-2 {
  text-transform: none;
}

.btn,
.ismd-btn,
.ismd-btn-ghost {
  font-family: var(--font-ui);
  font-weight: 700;
  letter-spacing: 0.08em;
}

/* the eyebrow/label voice */
.ismd-eyebrow,
.ismd-hero__eyebrow {
  font-family: var(--font-eyebrow);
  font-weight: 700;
}

/* accent words: wrap in <em> inside any heading */
.heading-1 em,
.heading-2 em,
.heading-3 em,
.ismd-hero__title em,
.ismd-accent {
  font-family: var(--font-accent);
  font-style: italic;
  font-weight: 400;
  letter-spacing: -0.01em;
}

/* The purchased theme title-cases headings (`text-transform: capitalize`).
   That is wrong for Romanian, which uses sentence case: "Publicul tău stă pe
   loc", not "Publicul Tău Stă Pe Loc". Only the hero headline stays uppercase,
   as a deliberate display choice. */
.heading-2,
.heading-3,
.body-2,
h2, h3, h4, h5, h6 {
  text-transform: none;
}

.ismd-hero__title {
  text-transform: uppercase;
}
/*!************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/identitystore-md/styles/pricing.scss ***!
  \************************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/* ============================================================
   Pachete — pricing plans
   Three cards, the middle one carried by the accent. Same ink
   ground and mint accent as the rest of the site.
   ============================================================ */
.ismd-pricing-intro {
  padding-top: 190px;
  padding-bottom: 0;
}

.ismd-pricing-intro .heading-1 {
  font-size: clamp(34px, 5vw, 58px);
  line-height: 1.05;
  letter-spacing: -0.035em;
}

.ismd-plans {
  display: grid;
  /* 3 packages: one clean row */
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  align-items: stretch;
}

.ismd-plan {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 34px 30px 30px;
  background: var(--box-color);
  border: 1px solid var(--dark-grey);
  border-radius: var(--radius-lg);
  transform-style: preserve-3d;
  transition: border-color 0.35s ease, box-shadow 0.35s ease;
}

.ismd-plan:hover {
  border-color: var(--accent);
}

.ismd-plan--featured {
  border-color: var(--accent);
  box-shadow: 0 0 48px rgba(94, 210, 156, 0.14);
}

.ismd-plan__badge {
  position: absolute;
  top: -12px;
  left: 30px;
  padding: 5px 14px;
  border-radius: var(--radius-pill);
  background: var(--accent);
  color: var(--ink);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.ismd-plan__name {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0;
}

.ismd-plan__price {
  display: flex;
  align-items: baseline;
  gap: 4px;
  margin: 0;
  font-size: 46px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.04em;
  color: #fff;
  font-variant-numeric: tabular-nums;
}

.ismd-plan__currency {
  font-size: 26px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.6);
}

.ismd-plan__price small {
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0;
  color: rgba(255, 255, 255, 0.55);
}

.ismd-plan__alt {
  margin: 0;
  font-size: 13.5px;
  color: rgba(255, 255, 255, 0.55);
}

.ismd-plan__save {
  align-self: flex-start;
  margin: 0;
  padding: 5px 12px;
  border: 1px solid color-mix(in srgb, var(--accent) 45%, transparent);
  border-radius: var(--radius-pill);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--accent);
}

.ismd-plan__specs {
  list-style: none;
  margin: 8px 0 0;
  padding: 18px 0 0;
  border-top: 1px solid var(--dark-grey);
  display: flex;
  flex-direction: column;
  gap: 11px;
  font-size: 14.5px;
  color: rgba(255, 255, 255, 0.72);
}

.ismd-plan__specs strong {
  color: #fff;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.ismd-plan__unit {
  margin: 6px 0 0;
  padding-top: 16px;
  border-top: 1px solid var(--dark-grey);
  font-size: 14px;
  color: rgba(255, 255, 255, 0.6);
}

/* the number a media buyer actually compares */
.ismd-plan__unit span {
  font-size: 22px;
  font-weight: 800;
  color: var(--accent);
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}

.ismd-plan__cta {
  margin-top: auto;
  justify-content: center;
  width: 100%;
}

.ismd-pricing__note {
  margin: 34px auto 0;
  max-width: 640px;
  text-align: center;
  font-size: 13.5px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.5);
}

/* ---------- included in every package ---------- */
.ismd-included__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  /* 6 items: 3 + 3 */
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}

.ismd-included__grid li {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 22px 24px;
  background: var(--box-color);
  border: 1px solid var(--dark-grey);
  border-radius: var(--radius);
  font-size: 14.5px;
  color: rgba(255, 255, 255, 0.78);
  transition: background 0.3s ease, border-color 0.3s ease;
}

.ismd-included__grid li:hover {
  background: var(--ink);
  border-color: var(--accent);
}

.ismd-included__grid i {
  color: var(--accent);
  font-size: 17px;
  flex-shrink: 0;
}

@media (max-width: 575px) {
  .ismd-pricing-intro {
    padding-top: 150px;
  }
  .ismd-plan {
    padding: 30px 24px 26px;
  }
}
/* ---------- panel types ---------- */
.ismd-types__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
}

.ismd-type {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 14px 14px 24px;
  background: var(--box-color);
  border: 1px solid var(--dark-grey);
  border-radius: var(--radius-lg);
  transform-style: preserve-3d;
  transition: border-color 0.35s ease;
}

.ismd-type:hover {
  border-color: var(--accent);
}

.ismd-type__media {
  border-radius: var(--radius);
  overflow: hidden;
  aspect-ratio: 4/3;
  background: var(--ink);
}

.ismd-type__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.ismd-type:hover .ismd-type__media img {
  transform: scale(1.04);
}

.ismd-type h3 {
  margin: 6px 0 0;
  padding-inline: 8px;
  font-size: 17px;
}

.ismd-type p {
  margin: 0;
  padding-inline: 8px;
}
/*!**********************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/resolve-url-loader/index.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/identitystore-md/styles/pages.scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/* ============================================================
   Identity Store — section styles added after the homepage build:
     · product cards + delivered projects on /monitoare-led
     · client reviews on the homepage
   Same tokens as everywhere else: --box-color, --dark-grey,
   --primary-color / --accent, --ink, and the --radius-* scale.
   ============================================================ */
/* ---------- Product families (LED page, section 02) ---------- */
/* two offers: one row of two */
.ismd-offer__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.ismd-offer {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 34px 30px;
  background: var(--box-color);
  border: 1px solid var(--dark-grey);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transform-style: preserve-3d;
  transition: border-color 0.35s ease;
}

.ismd-offer:hover {
  border-color: var(--primary-color);
}

.ismd-offer > i {
  font-size: 27px;
  color: var(--primary-color);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.ismd-offer:hover > i {
  transform: scale(1.15) rotate(-6deg);
}

.ismd-offer h3 {
  margin: 0;
}

.ismd-offer p {
  margin: 0;
}

.ismd-offer .ismd-ticks {
  margin-top: 6px;
  padding-top: 18px;
  border-top: 1px solid var(--dark-grey);
}

/* ---------- Delivered projects (LED page, section 04) ---------- */
/* Five delivered projects, and a sixth cannot be invented -- these are claims
   about real work. So this one is flex rather than grid: three per row, and the
   trailing two centre themselves instead of hanging off the left edge. Works for
   any count an editor ends up with. */
.ismd-projects__grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  gap: 20px;
}

.ismd-projects__grid > * {
  flex: 0 1 calc(33.333% - 14px);
  min-width: 280px;
}

@media (max-width: 1099px) {
  .ismd-projects__grid > * {
    flex-basis: calc(50% - 10px);
  }
}
@media (max-width: 719px) {
  .ismd-projects__grid > * {
    flex-basis: 100%;
    min-width: 0;
  }
}
.ismd-project {
  display: flex;
  flex-direction: column;
  background: var(--box-color);
  border: 1px solid var(--dark-grey);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transform-style: preserve-3d;
  transition: border-color 0.35s ease;
}

.ismd-project:hover {
  border-color: var(--primary-color);
}

.ismd-project__media {
  position: relative;
  aspect-ratio: 4/3;
  background: var(--ink);
  overflow: hidden;
}

.ismd-project__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.ismd-project:hover .ismd-project__media img {
  transform: scale(1.04);
}

/* the shared placeholder is sized for a tall frame; shrink it in this card */
.ismd-project__media .ismd-frame__placeholder {
  min-height: 100%;
}

.ismd-project__kind {
  position: absolute;
  left: 12px;
  bottom: 12px;
  padding: 5px 11px;
  border-radius: var(--radius-pill);
  background: rgba(0, 0, 0, 0.72);
  border: 1px solid var(--dark-grey);
  color: var(--grey);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.ismd-project__body {
  display: flex;
  flex-direction: column;
  gap: 9px;
  padding: 22px 22px 26px;
}

.ismd-project__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.ismd-project__top h3 {
  margin: 0;
  font-size: 18px;
}

.ismd-project__status {
  flex-shrink: 0;
  padding: 4px 10px;
  border-radius: var(--radius-pill);
  border: 1px solid var(--primary-color);
  color: var(--primary-color);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.ismd-project__status--wip {
  border-color: var(--dark-grey);
  color: var(--grey);
}

.ismd-project__place {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: var(--grey);
  font-size: 13px;
}

.ismd-project__place i {
  color: var(--primary-color);
}

.ismd-project__body p:last-child {
  margin: 0;
}

/* ---------- Client reviews (homepage, section 13) ---------- */
.ismd-reviews__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 20px;
}

.ismd-review {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 0;
  padding: 32px 28px;
  background: var(--box-color);
  border: 1px solid var(--dark-grey);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transform-style: preserve-3d;
  transition: border-color 0.35s ease;
}

.ismd-review:hover {
  border-color: var(--primary-color);
}

.ismd-review__mark {
  font-size: 22px;
  color: var(--primary-color);
  opacity: 0.55;
}

.ismd-review__stars {
  display: flex;
  gap: 4px;
  color: var(--primary-color);
  font-size: 13px;
}

.ismd-review__star--off {
  color: var(--dark-grey);
}

.ismd-review blockquote {
  margin: 0;
  color: var(--grey);
  quotes: none;
}

.ismd-review__by {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid var(--dark-grey);
}

.ismd-review__by span {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.ismd-review__by strong {
  color: var(--white);
  font-size: 15px;
}

.ismd-review__by em {
  font-style: normal;
  font-size: 13px;
}

.ismd-review__avatar {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid var(--dark-grey);
}

.ismd-review__avatar--initial {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ink);
  color: var(--primary-color);
  font-weight: 700;
}

@media (max-width: 720px) {
  .ismd-offer {
    padding: 26px 22px;
  }
  .ismd-review {
    padding: 26px 22px;
  }
}
/* ---------- Panel grid (homepage block + full list page) ----------
   One card design, two densities: `--compact` on the homepage where the block is
   a teaser, `--full` on the list page where the whole network is shown. */
.ismd-monitors__grid {
  display: grid;
  gap: 20px;
}

.ismd-monitors__grid--compact {
  /* 6 featured panels: 3 + 3 */
  grid-template-columns: repeat(3, 1fr);
}

.ismd-monitors__grid--full {
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 16px;
}

.ismd-monitor {
  display: flex;
  flex-direction: column;
  background: var(--box-color);
  border: 1px solid var(--dark-grey);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transform-style: preserve-3d;
  transition: border-color 0.35s ease;
}

.ismd-monitor:hover {
  border-color: var(--primary-color);
}

.ismd-monitor__media {
  position: relative;
  aspect-ratio: 4/3;
  background: var(--ink);
  overflow: hidden;
}

.ismd-monitor__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.ismd-monitor:hover .ismd-monitor__media img {
  transform: scale(1.04);
}

/* Most of the network has no photograph yet. A quiet branded card reads better
   than an empty frame, and makes the gap obvious to whoever maintains the CMS. */
.ismd-monitor__placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 100%;
  background: radial-gradient(circle at 50% 38%, rgba(2, 242, 145, 0.1), transparent 62%), var(--ink);
}

.ismd-monitor__placeholder svg {
  width: 82px;
  height: auto;
  opacity: 0.5;
}

.ismd-monitor__ph-screen {
  fill: none;
  stroke: var(--dark-grey);
  stroke-width: 2;
}

.ismd-monitor__ph-inner {
  fill: var(--primary-color);
  opacity: 0.12;
}

.ismd-monitor__ph-stand,
.ismd-monitor__ph-foot {
  fill: var(--dark-grey);
}

.ismd-monitor__placeholder span {
  color: var(--grey);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0.75;
}

.ismd-monitor__size {
  position: absolute;
  right: 12px;
  top: 12px;
  padding: 4px 10px;
  border-radius: var(--radius-pill);
  background: rgba(0, 0, 0, 0.72);
  border: 1px solid var(--dark-grey);
  color: var(--primary-color);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
}

.ismd-monitor__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 10px;
  justify-content: space-between;
  padding: 18px 20px 20px;
}

.ismd-monitor__address {
  margin: 0;
  color: var(--white);
  font-size: 16px;
  line-height: 1.35;
  text-transform: none;
}

.ismd-monitor__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--dark-grey);
}

.ismd-monitor__code {
  color: var(--grey);
  font-size: 11px;
  letter-spacing: 0.14em;
}

.ismd-monitor__link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--primary-color);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.ismd-monitor__link i {
  transition: transform 0.3s ease;
}

.ismd-monitor:hover .ismd-monitor__link i {
  transform: translateX(4px);
}

.ismd-monitors__cta {
  display: flex;
  justify-content: center;
  margin-top: 34px;
}

/* the live total, rendered beside the button so the two never disagree */
.ismd-monitors__count {
  margin-left: 10px;
  padding: 2px 9px;
  border-radius: var(--radius-pill);
  background: rgba(0, 0, 0, 0.25);
  font-size: 12px;
}

.ismd-monitors__total {
  margin: 0;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.ismd-monitors__total .counter {
  color: var(--primary-color);
  font-size: 20px;
  font-weight: 700;
}

@media (max-width: 720px) {
  .ismd-monitors__grid--compact,
  .ismd-monitors__grid--full {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  }
  .ismd-monitor__body {
    padding: 16px 16px 18px;
  }
}
/* ---------- Panel types: overview page + single type page ---------- */
.ismd-ptypes-hero .ismd-split-layout__text .heading-1 {
  margin-bottom: 4px;
}

.ismd-advantages__grid {
  display: grid;
  /* 6 advantages: 3 + 3 */
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.ismd-advantage {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 26px 24px;
  background: var(--box-color);
  border: 1px solid var(--dark-grey);
  border-radius: var(--radius-lg);
  transition: border-color 0.35s ease, transform 0.35s ease;
}

.ismd-advantage:hover {
  border-color: var(--primary-color);
  transform: translateY(-3px);
}

.ismd-advantage > i {
  color: var(--primary-color);
  font-size: 22px;
}

.ismd-advantage h3 {
  margin: 0;
  font-size: 17px;
  text-transform: none;
}

.ismd-advantage p {
  margin: 0;
}

.ismd-ptypes-note {
  margin: 30px 0 0;
  padding-left: 16px;
  border-left: 2px solid var(--primary-color);
}

/* ---------- the three mounting types ---------- */
.ismd-ptypes__grid {
  display: grid;
  /* kept for any 3-up cards */
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.ismd-ptype {
  display: flex;
  flex-direction: column;
  background: var(--box-color);
  border: 1px solid var(--dark-grey);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transform-style: preserve-3d;
  transition: border-color 0.35s ease;
}

.ismd-ptype:hover {
  border-color: var(--primary-color);
}

.ismd-ptype__media {
  position: relative;
  aspect-ratio: 4/3;
  background: var(--ink);
  overflow: hidden;
}

.ismd-ptype__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.ismd-ptype:hover .ismd-ptype__media img {
  transform: scale(1.04);
}

.ismd-ptype__placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: var(--dark-grey);
  font-size: 34px;
}

.ismd-ptype__size {
  position: absolute;
  right: 12px;
  top: 12px;
  padding: 4px 11px;
  border-radius: var(--radius-pill);
  background: rgba(0, 0, 0, 0.72);
  border: 1px solid var(--dark-grey);
  color: var(--primary-color);
  font-size: 12px;
  font-weight: 700;
}

.ismd-ptype__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 10px;
  padding: 22px 22px 24px;
}

.ismd-ptype__body h3 {
  margin: 0;
  font-size: 18px;
  line-height: 1.3;
  text-transform: none;
}

.ismd-ptype__mount {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--grey);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.ismd-ptype__mount i {
  color: var(--primary-color);
}

.ismd-ptype__link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid var(--dark-grey);
  color: var(--primary-color);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
}

.ismd-ptype__link i {
  transition: transform 0.3s ease;
}

.ismd-ptype:hover .ismd-ptype__link i {
  transform: translateX(4px);
}

/* ---------- single panel type page ---------- */
.ismd-product__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.ismd-product__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border-radius: var(--radius-pill);
  background: var(--box-color);
  border: 1px solid var(--dark-grey);
  color: var(--grey);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.ismd-product__badge i {
  color: var(--primary-color);
}

.ismd-product__badge--size {
  color: var(--primary-color);
  font-weight: 700;
  border-color: var(--primary-color);
}

/* specifications as rows rather than a pasted table */
.ismd-specrows {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 0 36px;
  margin: 0;
}

.ismd-specrow {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 15px 0;
  border-bottom: 1px solid var(--dark-grey);
}

.ismd-specrow dt {
  color: var(--grey);
  font-weight: 400;
  letter-spacing: 0.04em;
}

.ismd-specrow dd {
  margin: 0;
  color: var(--white);
  font-weight: 700;
  text-align: right;
  white-space: nowrap;
}

.ismd-gallery__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
}

.ismd-gallery__item {
  display: block;
  aspect-ratio: 4/3;
  overflow: hidden;
  background: var(--ink);
  border: 1px solid var(--dark-grey);
  border-radius: var(--radius-lg);
  transition: border-color 0.35s ease;
}

.ismd-gallery__item:hover {
  border-color: var(--primary-color);
}

.ismd-gallery__item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.ismd-gallery__item:hover img {
  transform: scale(1.04);
}

@media (max-width: 720px) {
  .ismd-advantage {
    padding: 22px 20px;
  }
  .ismd-specrow dd {
    white-space: normal;
  }
}
/* ---------- Site-wide dialogs (Pachete, Cere ofertă) ---------- */
.ismd-modal {
  /* app.css carries a blanket `* { margin: 0 }`, which wipes out the browser's
     own `dialog { margin: auto }` -- that is why the panel opened pinned to the
     top-left corner instead of centred. Put the centring back explicitly. */
  margin: auto;
  width: min(1120px, 100vw - 32px);
  max-height: calc(100vh - 64px);
  padding: 0;
  border: 1px solid var(--dark-grey);
  border-radius: var(--radius-lg);
  background: var(--bodyColor);
  color: var(--grey);
  overflow: hidden;
}

.ismd-modal::backdrop {
  background: rgba(0, 0, 0, 0.72);
  backdrop-filter: blur(3px);
}

.ismd-modal__body {
  max-height: calc(100vh - 64px);
  overflow-y: auto;
  padding: 42px 34px 38px;
}

.ismd-modal__close {
  position: absolute;
  top: 14px;
  right: 16px;
  z-index: 2;
  width: 36px;
  height: 36px;
  border: 1px solid var(--dark-grey);
  border-radius: 50%;
  background: var(--box-color);
  color: var(--grey);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  transition: color 0.3s ease, border-color 0.3s ease;
}

.ismd-modal__close:hover {
  color: var(--primary-color);
  border-color: var(--primary-color);
}

/* the page behind must not scroll while the dialog is up */
body.ismd-modal-open {
  overflow: hidden;
}

@media (max-width: 720px) {
  .ismd-modal__body {
    padding: 44px 18px 26px;
  }
}
.ismd-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
}

/* .ismd-cta-ghost was written for an <a>; as a <button> it also picks up the
   browser's default button chrome -- a light grey face behind the near-white
   label, which read as white-on-white. Reset it back to the ghost look. */
button.ismd-cta-ghost,
button.ismd-cta-primary {
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  cursor: pointer;
}

button.ismd-cta-ghost:hover {
  border-color: var(--primary-color);
  color: var(--primary-color);
}

/* The nav is fixed now. The homepage hero already reserves room for it, but a
   page whose first element is an ordinary section would slide underneath, so
   give the first section on those pages the clearance instead. */
.ismd-ptypes-hero,
.ismd-product-hero {
  padding-top: 150px;
}

/* in-page anchors must not land under the bar either */
html {
  scroll-padding-top: 96px;
}

/* the pricing table needs room; the enquiry form does not */
.ismd-pricing-modal {
  width: min(1120px, 100vw - 32px);
}

.ismd-enquiry-modal {
  width: min(680px, 100vw - 32px);
}

.ismd-modal .ismd-head {
  margin-bottom: 26px;
}

/* ---------- "De ce funcționează" reason cards ---------- */
.ismd-reasons__grid {
  display: grid;
  /* 6 reasons: 3 + 3 */
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.ismd-reason {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 30px 28px 34px;
  background: linear-gradient(160deg, rgba(2, 242, 145, 0.05), transparent 46%), var(--box-color);
  border: 1px solid var(--dark-grey);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: border-color 0.35s ease, transform 0.35s ease;
}

.ismd-reason:hover {
  border-color: var(--primary-color);
  transform: translateY(-4px);
}

/* the index is the ornament: large, outlined, and sat behind the text */
.ismd-reason__index {
  position: absolute;
  top: 10px;
  right: 16px;
  font-family: var(--font-accent, inherit);
  font-size: 62px;
  font-weight: 700;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1px var(--dark-grey);
  opacity: 0.85;
  pointer-events: none;
  transition: -webkit-text-stroke-color 0.35s ease, opacity 0.35s ease;
}

.ismd-reason:hover .ismd-reason__index {
  -webkit-text-stroke-color: var(--primary-color);
  opacity: 0.5;
}

.ismd-reason__icon {
  position: relative;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: rgba(2, 242, 145, 0.1);
  border: 1px solid rgba(2, 242, 145, 0.25);
  color: var(--primary-color);
  font-size: 17px;
  transition: background-color 0.35s ease;
}

.ismd-reason:hover .ismd-reason__icon {
  background: rgba(2, 242, 145, 0.18);
}

.ismd-reason__text {
  position: relative;
  margin: 0;
  color: var(--grey);
  font-size: 15px;
  line-height: 1.62;
}

/* hairline that fills in on hover, so the card has somewhere to go */
.ismd-reason__rule {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 2px;
  width: 100%;
  background: linear-gradient(90deg, var(--primary-color), transparent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.ismd-reason:hover .ismd-reason__rule {
  transform: scaleX(1);
}

@media (prefers-reduced-motion: reduce) {
  .ismd-reason,
  .ismd-reason__rule {
    transition: none;
  }
  .ismd-reason:hover {
    transform: none;
  }
}
@media (max-width: 720px) {
  .ismd-reason {
    padding: 26px 22px 30px;
  }
  .ismd-reason__index {
    font-size: 48px;
  }
}
/* On a phone a centred floating panel wastes the screen and leaves the content
   cramped, so the dialog becomes a bottom sheet: full width, anchored to the
   bottom edge, rounded only on top. */
@media (max-width: 720px) {
  .ismd-modal,
  .ismd-pricing-modal,
  .ismd-enquiry-modal {
    width: 100vw;
    max-width: 100vw;
    max-height: 88vh;
    margin: auto auto 0;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    border-bottom: 0;
  }
  .ismd-modal__body {
    max-height: 88vh;
  }
  /* a grab handle, so it reads as a sheet rather than a stuck panel */
  .ismd-modal::before {
    content: "";
    position: sticky;
    top: 0;
    z-index: 3;
    display: block;
    width: 42px;
    height: 4px;
    margin: 10px auto 0;
    border-radius: var(--radius-pill);
    background: var(--dark-grey);
  }
}
/* ---------- Grid harmonisation ----------
   Every grid above declares a fixed column count rather than auto-fit, so the
   browser can no longer pick a number that leaves an orphan on the last row
   (six sectors were landing as 5 + 1, six panels as 4 + 2, five option cards as
   4 + 1). These are the two step-downs, kept in one place so every block breaks
   at the same widths and the page stays in rhythm. */
@media (max-width: 1099px) {
  .ismd-counters__grid,
  .ismd-rotation {
    grid-template-columns: repeat(2, 1fr);
  }
  .ismd-sectors,
  .ismd-cards,
  .ismd-included__grid,
  .ismd-advantages__grid,
  .ismd-reasons__grid,
  .ismd-monitors__grid--compact,
  .ismd-ptypes__grid,
  .ismd-plans {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 719px) {
  /* counters stay two-up on a phone: four single-column tiles is a long scroll
     past numbers that are meant to be read at a glance */
  .ismd-counters__grid,
  .ismd-sectors {
    grid-template-columns: repeat(2, 1fr);
  }
  .ismd-rotation,
  .ismd-cards,
  .ismd-included__grid,
  .ismd-advantages__grid,
  .ismd-reasons__grid,
  .ismd-monitors__grid--compact,
  .ismd-ptypes__grid,
  .ismd-plans {
    grid-template-columns: 1fr;
  }
}
/* The full panel list is a catalogue, not a feature block: 37 entries cannot
   divide evenly, so it keeps a steady column count and lets the last row run
   short rather than stretching a lone card across the width. */
.ismd-monitors__grid--full {
  grid-template-columns: repeat(4, 1fr);
}

@media (max-width: 1099px) {
  .ismd-monitors__grid--full {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 719px) {
  .ismd-monitors__grid--full {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 719px) {
  .ismd-offer__grid {
    grid-template-columns: 1fr;
  }
}
/*!***************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/identitystore-md/js/leaflet/leaflet.css ***!
  \***************************************************************************************************************************************/
/* required styles */

.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer {
	position: absolute;
	left: 0;
	top: 0;
	}
.leaflet-container {
	overflow: hidden;
	}
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow {
	-webkit-user-select: none;
	   -moz-user-select: none;
	        user-select: none;
	  -webkit-user-drag: none;
	}
/* Prevents IE11 from highlighting tiles in blue */
.leaflet-tile::selection {
	background: transparent;
}
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
.leaflet-safari .leaflet-tile {
	image-rendering: -webkit-optimize-contrast;
	}
/* hack that prevents hw layers "stretching" when loading new tiles */
.leaflet-safari .leaflet-tile-container {
	width: 1600px;
	height: 1600px;
	-webkit-transform-origin: 0 0;
	}
.leaflet-marker-icon,
.leaflet-marker-shadow {
	display: block;
	}
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
.leaflet-container .leaflet-overlay-pane svg {
	max-width: none !important;
	max-height: none !important;
	}
.leaflet-container .leaflet-marker-pane img,
.leaflet-container .leaflet-shadow-pane img,
.leaflet-container .leaflet-tile-pane img,
.leaflet-container img.leaflet-image-layer,
.leaflet-container .leaflet-tile {
	max-width: none !important;
	max-height: none !important;
	width: auto;
	padding: 0;
	}

.leaflet-container img.leaflet-tile {
	/* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */
	mix-blend-mode: plus-lighter;
}

.leaflet-container.leaflet-touch-zoom {
	-ms-touch-action: pan-x pan-y;
	touch-action: pan-x pan-y;
	}
.leaflet-container.leaflet-touch-drag {
	-ms-touch-action: pinch-zoom;
	/* Fallback for FF which doesn't support pinch-zoom */
	touch-action: none;
	touch-action: pinch-zoom;
}
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
	-ms-touch-action: none;
	touch-action: none;
}
.leaflet-container {
	-webkit-tap-highlight-color: transparent;
}
.leaflet-container a {
	-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
}
.leaflet-tile {
	filter: inherit;
	visibility: hidden;
	}
.leaflet-tile-loaded {
	visibility: inherit;
	}
.leaflet-zoom-box {
	width: 0;
	height: 0;
	-moz-box-sizing: border-box;
	     box-sizing: border-box;
	z-index: 800;
	}
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
.leaflet-overlay-pane svg {
	-moz-user-select: none;
	}

.leaflet-pane         { z-index: 400; }

.leaflet-tile-pane    { z-index: 200; }
.leaflet-overlay-pane { z-index: 400; }
.leaflet-shadow-pane  { z-index: 500; }
.leaflet-marker-pane  { z-index: 600; }
.leaflet-tooltip-pane   { z-index: 650; }
.leaflet-popup-pane   { z-index: 700; }

.leaflet-map-pane canvas { z-index: 100; }
.leaflet-map-pane svg    { z-index: 200; }

.leaflet-vml-shape {
	width: 1px;
	height: 1px;
	}
.lvml {
	behavior: url(#default#VML);
	display: inline-block;
	position: absolute;
	}


/* control positioning */

.leaflet-control {
	position: relative;
	z-index: 800;
	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
	pointer-events: auto;
	}
.leaflet-top,
.leaflet-bottom {
	position: absolute;
	z-index: 1000;
	pointer-events: none;
	}
.leaflet-top {
	top: 0;
	}
.leaflet-right {
	right: 0;
	}
.leaflet-bottom {
	bottom: 0;
	}
.leaflet-left {
	left: 0;
	}
.leaflet-control {
	float: left;
	clear: both;
	}
.leaflet-right .leaflet-control {
	float: right;
	}
.leaflet-top .leaflet-control {
	margin-top: 10px;
	}
.leaflet-bottom .leaflet-control {
	margin-bottom: 10px;
	}
.leaflet-left .leaflet-control {
	margin-left: 10px;
	}
.leaflet-right .leaflet-control {
	margin-right: 10px;
	}


/* zoom and fade animations */

.leaflet-fade-anim .leaflet-popup {
	opacity: 0;
	-webkit-transition: opacity 0.2s linear;
	   -moz-transition: opacity 0.2s linear;
	        transition: opacity 0.2s linear;
	}
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
	opacity: 1;
	}
.leaflet-zoom-animated {
	-webkit-transform-origin: 0 0;
	    -ms-transform-origin: 0 0;
	        transform-origin: 0 0;
	}
svg.leaflet-zoom-animated {
	will-change: transform;
}

.leaflet-zoom-anim .leaflet-zoom-animated {
	-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
	   -moz-transition:    -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
	        transition:         transform 0.25s cubic-bezier(0,0,0.25,1);
	}
.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile {
	-webkit-transition: none;
	   -moz-transition: none;
	        transition: none;
	}

.leaflet-zoom-anim .leaflet-zoom-hide {
	visibility: hidden;
	}


/* cursors */

.leaflet-interactive {
	cursor: pointer;
	}
.leaflet-grab {
	cursor: -webkit-grab;
	cursor:    -moz-grab;
	cursor:         grab;
	}
.leaflet-crosshair,
.leaflet-crosshair .leaflet-interactive {
	cursor: crosshair;
	}
.leaflet-popup-pane,
.leaflet-control {
	cursor: auto;
	}
.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive,
.leaflet-dragging .leaflet-marker-draggable {
	cursor: move;
	cursor: -webkit-grabbing;
	cursor:    -moz-grabbing;
	cursor:         grabbing;
	}

/* marker & overlays interactivity */
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-image-layer,
.leaflet-pane > svg path,
.leaflet-tile-container {
	pointer-events: none;
	}

.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive,
.leaflet-pane > svg path.leaflet-interactive,
svg.leaflet-image-layer.leaflet-interactive path {
	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
	pointer-events: auto;
	}

/* visual tweaks */

.leaflet-container {
	background: #ddd;
	outline-offset: 1px;
	}
.leaflet-container a {
	color: #0078A8;
	}
.leaflet-zoom-box {
	border: 2px dotted #38f;
	background: rgba(255,255,255,0.5);
	}


/* general typography */
.leaflet-container {
	font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-size: 0.75rem;
	line-height: 1.5;
	}


/* general toolbar styles */

.leaflet-bar {
	box-shadow: 0 1px 5px rgba(0,0,0,0.65);
	border-radius: 4px;
	}
.leaflet-bar a {
	background-color: #fff;
	border-bottom: 1px solid #ccc;
	width: 26px;
	height: 26px;
	line-height: 26px;
	display: block;
	text-align: center;
	text-decoration: none;
	color: black;
	}
.leaflet-bar a,
.leaflet-control-layers-toggle {
	background-position: 50% 50%;
	background-repeat: no-repeat;
	display: block;
	}
.leaflet-bar a:hover,
.leaflet-bar a:focus {
	background-color: #f4f4f4;
	}
.leaflet-bar a:first-child {
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
	}
.leaflet-bar a:last-child {
	border-bottom-left-radius: 4px;
	border-bottom-right-radius: 4px;
	border-bottom: none;
	}
.leaflet-bar a.leaflet-disabled {
	cursor: default;
	background-color: #f4f4f4;
	color: #bbb;
	}

.leaflet-touch .leaflet-bar a {
	width: 30px;
	height: 30px;
	line-height: 30px;
	}
.leaflet-touch .leaflet-bar a:first-child {
	border-top-left-radius: 2px;
	border-top-right-radius: 2px;
	}
.leaflet-touch .leaflet-bar a:last-child {
	border-bottom-left-radius: 2px;
	border-bottom-right-radius: 2px;
	}

/* zoom control */

.leaflet-control-zoom-in,
.leaflet-control-zoom-out {
	font: bold 18px 'Lucida Console', Monaco, monospace;
	text-indent: 1px;
	}

.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out  {
	font-size: 22px;
	}


/* layers control */

.leaflet-control-layers {
	box-shadow: 0 1px 5px rgba(0,0,0,0.4);
	background: #fff;
	border-radius: 5px;
	}
.leaflet-control-layers-toggle {
	background-image: url(/build/website/images/layers.416d9136.png);
	width: 36px;
	height: 36px;
	}
.leaflet-retina .leaflet-control-layers-toggle {
	background-image: url(/build/website/images/layers-2x.8f2c4d11.png);
	background-size: 26px 26px;
	}
.leaflet-touch .leaflet-control-layers-toggle {
	width: 44px;
	height: 44px;
	}
.leaflet-control-layers .leaflet-control-layers-list,
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
	display: none;
	}
.leaflet-control-layers-expanded .leaflet-control-layers-list {
	display: block;
	position: relative;
	}
.leaflet-control-layers-expanded {
	padding: 6px 10px 6px 6px;
	color: #333;
	background: #fff;
	}
.leaflet-control-layers-scrollbar {
	overflow-y: scroll;
	overflow-x: hidden;
	padding-right: 5px;
	}
.leaflet-control-layers-selector {
	margin-top: 2px;
	position: relative;
	top: 1px;
	}
.leaflet-control-layers label {
	display: block;
	font-size: 13px;
	font-size: 1.08333em;
	}
.leaflet-control-layers-separator {
	height: 0;
	border-top: 1px solid #ddd;
	margin: 5px -10px 5px -6px;
	}

/* Default icon URLs */
.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */
	background-image: url(/build/website/images/marker-icon.2b3e1faf.png);
	}


/* attribution and scale controls */

.leaflet-container .leaflet-control-attribution {
	background: #fff;
	background: rgba(255, 255, 255, 0.8);
	margin: 0;
	}
.leaflet-control-attribution,
.leaflet-control-scale-line {
	padding: 0 5px;
	color: #333;
	line-height: 1.4;
	}
.leaflet-control-attribution a {
	text-decoration: none;
	}
.leaflet-control-attribution a:hover,
.leaflet-control-attribution a:focus {
	text-decoration: underline;
	}
.leaflet-attribution-flag {
	display: inline !important;
	vertical-align: baseline !important;
	width: 1em;
	height: 0.6669em;
	}
.leaflet-left .leaflet-control-scale {
	margin-left: 5px;
	}
.leaflet-bottom .leaflet-control-scale {
	margin-bottom: 5px;
	}
.leaflet-control-scale-line {
	border: 2px solid #777;
	border-top: none;
	line-height: 1.1;
	padding: 2px 5px 1px;
	white-space: nowrap;
	-moz-box-sizing: border-box;
	     box-sizing: border-box;
	background: rgba(255, 255, 255, 0.8);
	text-shadow: 1px 1px #fff;
	}
.leaflet-control-scale-line:not(:first-child) {
	border-top: 2px solid #777;
	border-bottom: none;
	margin-top: -2px;
	}
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
	border-bottom: 2px solid #777;
	}

.leaflet-touch .leaflet-control-attribution,
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	box-shadow: none;
	}
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	border: 2px solid rgba(0,0,0,0.2);
	background-clip: padding-box;
	}


/* popup */

.leaflet-popup {
	position: absolute;
	text-align: center;
	margin-bottom: 20px;
	}
.leaflet-popup-content-wrapper {
	padding: 1px;
	text-align: left;
	border-radius: 12px;
	}
.leaflet-popup-content {
	margin: 13px 24px 13px 20px;
	line-height: 1.3;
	font-size: 13px;
	font-size: 1.08333em;
	min-height: 1px;
	}
.leaflet-popup-content p {
	margin: 17px 0;
	margin: 1.3em 0;
	}
.leaflet-popup-tip-container {
	width: 40px;
	height: 20px;
	position: absolute;
	left: 50%;
	margin-top: -1px;
	margin-left: -20px;
	overflow: hidden;
	pointer-events: none;
	}
.leaflet-popup-tip {
	width: 17px;
	height: 17px;
	padding: 1px;

	margin: -10px auto 0;
	pointer-events: auto;

	-webkit-transform: rotate(45deg);
	   -moz-transform: rotate(45deg);
	    -ms-transform: rotate(45deg);
	        transform: rotate(45deg);
	}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
	background: white;
	color: #333;
	box-shadow: 0 3px 14px rgba(0,0,0,0.4);
	}
.leaflet-container a.leaflet-popup-close-button {
	position: absolute;
	top: 0;
	right: 0;
	border: none;
	text-align: center;
	width: 24px;
	height: 24px;
	font: 16px/24px Tahoma, Verdana, sans-serif;
	color: #757575;
	text-decoration: none;
	background: transparent;
	}
.leaflet-container a.leaflet-popup-close-button:hover,
.leaflet-container a.leaflet-popup-close-button:focus {
	color: #585858;
	}
.leaflet-popup-scrolled {
	overflow: auto;
	}

.leaflet-oldie .leaflet-popup-content-wrapper {
	-ms-zoom: 1;
	}
.leaflet-oldie .leaflet-popup-tip {
	width: 24px;
	margin: 0 auto;

	-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
	filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
	}

.leaflet-oldie .leaflet-control-zoom,
.leaflet-oldie .leaflet-control-layers,
.leaflet-oldie .leaflet-popup-content-wrapper,
.leaflet-oldie .leaflet-popup-tip {
	border: 1px solid #999;
	}


/* div icon */

.leaflet-div-icon {
	background: #fff;
	border: 1px solid #666;
	}


/* Tooltip */
/* Base styles for the element that has a tooltip */
.leaflet-tooltip {
	position: absolute;
	padding: 6px;
	background-color: #fff;
	border: 1px solid #fff;
	border-radius: 3px;
	color: #222;
	white-space: nowrap;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	pointer-events: none;
	box-shadow: 0 1px 3px rgba(0,0,0,0.4);
	}
.leaflet-tooltip.leaflet-interactive {
	cursor: pointer;
	pointer-events: auto;
	}
.leaflet-tooltip-top:before,
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	position: absolute;
	pointer-events: none;
	border: 6px solid transparent;
	background: transparent;
	content: "";
	}

/* Directions */

.leaflet-tooltip-bottom {
	margin-top: 6px;
}
.leaflet-tooltip-top {
	margin-top: -6px;
}
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-top:before {
	left: 50%;
	margin-left: -6px;
	}
.leaflet-tooltip-top:before {
	bottom: 0;
	margin-bottom: -12px;
	border-top-color: #fff;
	}
.leaflet-tooltip-bottom:before {
	top: 0;
	margin-top: -12px;
	margin-left: -6px;
	border-bottom-color: #fff;
	}
.leaflet-tooltip-left {
	margin-left: -6px;
}
.leaflet-tooltip-right {
	margin-left: 6px;
}
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	top: 50%;
	margin-top: -6px;
	}
.leaflet-tooltip-left:before {
	right: 0;
	margin-right: -12px;
	border-left-color: #fff;
	}
.leaflet-tooltip-right:before {
	left: 0;
	margin-left: -12px;
	border-right-color: #fff;
	}

/* Printing */

@media print {
	/* Prevent printers from removing background-images of controls. */
	.leaflet-control {
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
		}
	}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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O0VBQ3RCO0FBQ0Y7QUFDQTtFQUNJO0VBQ0E7RUFDQTtBQUNKOztBQUVBO0FBQ0E7RUFDSTtFQUNBO0FBQ0o7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNKOztBQUVBO0VBQ0k7SUFBVztJQUFlO0VBRzVCO0VBRkU7SUFBTTtJQUFZO0VBTXBCO0FBQ0Y7QUFKQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQU1KOztBQUhBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFNSjs7QUFIQTtFQUNJO0FBTUo7O0FBSEE7RUFDSTtBQU1KOztBQUhBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBTUo7O0FBSEE7RUFDSTtBQU1KOztBQUhBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQU1KOztBQUhBO0VBQ0k7RUFDQTtBQU1KOztBQUhBO0VBQ0k7RUFDQTtFQUNBO0FBTUo7O0FBSEE7O0VBRUk7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFNSjs7QUFIQTs7RUFFSTtFQUNBO0FBTUo7O0FBSEE7O0VBRUk7RUFDQTtFQUNBO0FBTUo7O0FBSEE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBTUo7O0FBSEE7RUFDSTtFQUNBO0FBTUo7O0FBSEE7RUFDSTtJQUFXO0VBT2I7RUFORTtJQUFNO0VBU1I7QUFDRjtBQVBBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFTSjs7QUFOQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFTSjs7QUFOQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFTSjs7QUFOQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBU0o7O0FBTkE7RUFDSTtJQUFLO0lBQVk7RUFXbkI7RUFWRTtJQUFNO0VBYVI7RUFaRTtJQUFPO0lBQVk7RUFnQnJCO0FBQ0Y7QUFkQTtBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUFnQko7O0FBYkE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFnQko7O0FBYkE7RUFDSTtFQUNBO0FBZ0JKOztBQWJBO0VBQ0k7RUFDQTtFQUNBO0FBZ0JKOztBQWJBO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQWdCSjs7QUFiQTtFQUNJO0FBZ0JKOztBQWJBO0VBQ0k7SUFDSTtFQWdCTjtBQUNGO0FBYkE7RUFDSTtFQUNBO0VBQ0E7QUFlSjs7QUFaQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQWVKOztBQVpBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUFlSjs7QUFaQTtFQUNJO0VBQ0E7RUFDQTtBQWVKOztBQVpBO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQWVKOztBQVpBO0VBQ0k7RUFDQTtFQUNBO0FBZUo7O0FBWkE7Ozs7OzttRUFBQTtBQU9BO0VBQ0k7QUFlSjs7QUFaQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBZUo7O0FBWkE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBZUo7O0FBWkE7RUFDSTtBQWVKOztBQVpBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUFlSjs7QUFaQTtFQUNJO0FBZUo7O0FBWkE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQWVKOztBQVpBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUFlSjs7QUFaQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQWVKOztBQVpBO0VBQ0k7QUFlSjs7QUFaQTs4Q0FBQTtBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLHlFQUNJO0VBRUo7QUFhSjs7QUFWQTtFQUNJO0lBQ0k7RUFhTjtFQVhFO0lBQ0k7RUFhTjtFQVhFO0lBQ0k7RUFhTjtBQUNGO0FBVkE7bUZBQUE7QUFFQTs7RUFFSTtFQUNBO0VBQ0E7RUFDQTtBQVlKOztBQVRBO0VBQ0k7RUFDQTtBQVlKOztBQVRBO0VBQ0k7QUFZSjs7QUFUQTtFQUNJO0VBQ0E7RUFDQTtBQVlKOztBQVRBO0VBQ0k7QUFZSjs7QUFUQTtFQUNJO0lBQ0k7RUFZTjtBQUNGO0FBVEE7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBV0o7O0FBUkE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFXSjs7QUFSQTtFQUNJO0VBQ0E7QUFXSjs7QUFSQTtFQUNJO0VBQ0E7QUFXSjs7QUFSQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVdKOztBQVJBO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQVdKOztBQVJBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVdKOztBQVJBO0VBQ0k7QUFXSjs7QUFSQTtFQUNJO0VBQ0E7RUFDQTtBQVdKOztBQVJBO0VBQ0k7QUFXSjs7QUFSQTtBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFXSjs7QUFSQTtFQUNJO0FBV0o7O0FBUkE7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBV0o7O0FBUkE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFXSjs7QUFSQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFXSjs7QUFSQTs7RUFFSTtFQUNBO0FBV0o7O0FBUkE7RUFDSTtBQVdKOztBQVJBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVdKOztBQVJBO0VBQ0k7RUFDQTtFQUNBO0FBV0o7O0FBUkE7QUFDQTtFQUNJO0VBQ0E7RUFDQTtBQVdKOztBQVJBO0VBQ0k7RUFDQTtFQUNBO0FBV0o7O0FBUkE7O0VBRUk7RUFDQTtFQUNBO0VBQ0E7QUFXSjs7QUFSQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBV0o7O0FBUkE7RUFDSTtBQVdKOztBQVJBO0VBQ0k7QUFXSjs7QUFSQTtFQUNJO0FBV0o7O0FBUkE7RUFDSTtBQVdKOztBQVJBO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7QUFXSjs7QUFSQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVdKOztBQVJBO0VBQ0k7QUFXSjs7QUFSQTtFQUNJO0VBQ0E7QUFXSjs7QUFSQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVdKOztBQVJBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFXSjs7QUFSQTtBQUNBO0VBQ0k7RUFDQTtBQVdKOztBQVJBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBV0o7O0FBUkE7RUFDSTtFQUNBO0FBV0o7O0FBUkE7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFXSjs7QUFSQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVdKOztBQVJBO0VBQ0k7SUFBVTtFQVlaO0VBWEU7SUFBTztFQWNUO0FBQ0Y7QUFaQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFjSjs7QUFYQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBY0o7O0FBWEE7RUFDSTtBQWNKOztBQVhBO0VBQ0k7QUFjSjs7QUFYQTtBQUNBO0VBQ0k7Ozs7SUFJSTtJQUNBO0lBQ0E7SUFDQTtFQWNOO0VBWEU7SUFDSTtJQUNBO0VBYU47RUFWRTs7Ozs7O0lBTUk7RUFZTjtFQVRFO0lBQ0k7RUFXTjtBQUNGO0FBUkE7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBVUo7O0FBUEE7RUFDSTtFQUNBO0VBQ0E7QUFVSjs7QUFQQTtFQUNJO0VBQ0E7RUFDQTtBQVVKOztBQVBBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUFVSjs7QUFQQTtFQUNJO0VBQ0E7QUFVSjs7QUFQQTs7RUFFSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFVSjs7QUFQQTtFQUNJO0VBQ0E7QUFVSjs7QUFQQTs7RUFFSTtBQVVKOztBQVBBOztFQUVJO0VBQ0E7RUFDQTtBQVVKOztBQVBBOztFQUVJO0VBQ0E7QUFVSjs7QUFQQTtFQUNJO0FBVUo7O0FBUEE7RUFDSTtFQUNBO0FBVUo7O0FBUEE7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFVSixDOzs7O0FDaDZCQSxnQkFBZ0I7QUFBaEI7Ozs7O2lFQUFBO0FBT0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTs7eUJBQUE7RUFHQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0FBREo7O0FBSUE7RUFDSTtFQUNBO0FBREo7O0FBSUE7QUFDQTs7OEJBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7QUFGSjs7QUFLQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUZKOztBQUtBOzRDQUFBO0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUZKOztBQVVBO0FBQ0E7RUFDSTtJQUNJO0VBUE47QUFDRjtBQVVBO0VBQ0k7SUFDSTtFQVJOO0FBQ0Y7QUFXQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVRKOztBQVlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVRKOztBQVlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBVEo7O0FBWUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBVEo7O0FBWUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFUSjs7QUFZQTtFQUNJO0VBQ0E7QUFUSjs7QUFZQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFUSjs7QUFZQTs7RUFFSTtBQVRKOztBQVlBO0VBQ0k7RUFDQTtFQUNBO0FBVEo7O0FBWUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBVEo7O0FBWUE7RUFDSTtFQUNBO0VBQ0E7QUFUSjs7QUFZQTs7MkVBQUE7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBVEo7O0FBWUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBVEo7O0FBWUE7RUFDSTtBQVRKOztBQVlBO0VBQ0k7RUFDQTtBQVRKOztBQVlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVRKOztBQVlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUFUSjs7QUFZQTtBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFUSjs7QUFZQTtFQUNJO0FBVEo7O0FBWUE7RUFDSTtBQVRKOztBQVlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBVEo7O0FBWUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQVRKOztBQVlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFUSjs7QUFZQTtFQUNJO0FBVEo7O0FBWUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFUSjs7QUFZQTtBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVRKOztBQVlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUFUSjs7QUFZQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTsrREFBQTtFQUVBO0VBQ0E7QUFUSjs7QUFZQTtFQUNJO0VBQ0E7QUFUSjs7QUFZQTtFQUNJO0FBVEo7O0FBWUE7RUFDSTtBQVRKOztBQVlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFUSjs7QUFZQTtFQUNJO0VBQ0E7RUFDQTtBQVRKOztBQVlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVRKOztBQVlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVRKOztBQVlBO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVRKOztBQVlBO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBVEo7O0FBWUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBVEo7O0FBWUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFUSjs7QUFZQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBVEo7O0FBWUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBVEo7O0FBWUE7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBVEo7O0FBWUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVRKOztBQVlBO0VBQ0k7QUFUSjs7QUFZQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVRKOztBQVlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVRKOztBQVlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVRKOztBQVlBO0VBQ0k7RUFDQTtBQVRKOztBQVlBO0VBQ0k7QUFUSjs7QUFZQTtFQUNJO0FBVEo7O0FBWUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVRKOztBQVlBO0VBQ0k7RUFDQTtBQVRKOztBQVlBO0FBQ0E7RUFDSTs7SUFFSTtFQVROO0VBWUU7SUFDSTtFQVZOO0VBYUU7SUFDSTtFQVhOO0FBQ0Y7QUFjQTtFQUNJO0lBQ0k7SUFDQTtJQUNBO0VBWk47QUFDRjtBQWVBOzs7Ozs7Ozs7O29FQUFBO0FBV0E7Ozs7Ozs7Ozs2QkFBQTtBQVVBO0VBQ0k7SUFDSTtFQWJOO0VBZ0JFO0lBQ0k7RUFkTjtFQWlCRTtJQUNJO0VBZk47QUFDRjtBQWtCQTtFQUNJO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7RUFoQk47QUFDRjtBQW1CQTtFQUNJO0lBQ0k7SUFDQTtFQWpCTjtBQUNGO0FBb0JBO0VBQ0k7SUFDSTtJQUNBO0VBbEJOO0FBQ0Y7QUFxQkE7Ozs7O2lFQUFBO0FBTUE7Ozs7Ozs7Ozs7Ozs7OztFQWVJO0FBbkJKOztBQXNCQTs7OztFQUlJO0VBQ0E7RUFDQTtFQUNBO0FBbkJKOztBQXNCQTs7RUFFSTtFQUNBO0FBbkJKOztBQXNCQTtFQUNJO0FBbkJKOztBQXNCQTs7O0VBR0k7RUFDQTtFQUNBO0FBbkJKOztBQXNCQTtBQUNBOztFQUVJO0VBQ0E7QUFuQko7O0FBc0JBO0FBQ0E7Ozs7O0VBS0k7RUFDQTtFQUNBO0VBQ0E7QUFuQko7O0FBc0JBOzs7b0NBQUE7QUFJQTs7OztFQUlJO0FBbkJKOztBQXNCQTtFQUNJO0FBbkJKLEM7Ozs7QUMxcUJBLGdCQUFnQjtBQUFoQjs7OztpRUFBQTtBQU1BO0VBQ0k7RUFDQTtBQUNKOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0FBQ0o7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0o7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNKOztBQUVBO0VBQ0k7QUFDSjs7QUFFQTtFQUNJO0VBQ0E7QUFDSjs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDSjs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNKOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDSjs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtBQUNKOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUFDSjs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtBQUNKOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0o7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDSjs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtBQUNKOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNKOztBQUVBO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0o7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7QUFDSjs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNKOztBQUVBO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNKOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDSjs7QUFFQTtFQUNJO0VBQ0E7QUFDSjs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtBQUNKOztBQUVBO0VBQ0k7SUFDSTtFQUNOO0VBRUU7SUFDSTtFQUFOO0FBQ0Y7QUFHQTtBQUNBO0VBQ0k7RUFDQTtFQUNBO0FBREo7O0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFESjs7QUFJQTtFQUNJO0FBREo7O0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQURKOztBQUlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQURKOztBQUlBO0VBQ0k7QUFESjs7QUFJQTtFQUNJO0VBQ0E7RUFDQTtBQURKOztBQUlBO0VBQ0k7RUFDQTtBQURKLEM7Ozs7QUNsUUEsZ0JBQWdCO0FBQWhCOzs7Ozs7aUVBQUE7QUFRQTtBQUNBO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7QUFDSjs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDSjs7QUFFQTtFQUNJO0FBQ0o7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7QUFDSjs7QUFFQTtFQUNJO0FBQ0o7O0FBRUE7RUFDSTtBQUNKOztBQUVBO0VBQ0k7QUFDSjs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtBQUNKOztBQUVBO0FBQ0E7OztzQ0FBQTtBQUlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNKOztBQUVBO0VBQ0k7RUFDQTtBQUNKOztBQUVBO0VBQ0k7SUFDSTtFQUNOO0FBQ0Y7QUFFQTtFQUNJO0lBQ0k7SUFDQTtFQUFOO0FBQ0Y7QUFHQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFESjs7QUFJQTtFQUNJO0FBREo7O0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQURKOztBQUlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQURKOztBQUlBO0VBQ0k7QUFESjs7QUFJQTtBQUNBO0VBQ0k7QUFESjs7QUFJQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFESjs7QUFJQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBREo7O0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQURKOztBQUlBO0VBQ0k7RUFDQTtBQURKOztBQUlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQURKOztBQUlBO0VBQ0k7RUFDQTtBQURKOztBQUlBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBREo7O0FBSUE7RUFDSTtBQURKOztBQUlBO0VBQ0k7QUFESjs7QUFJQTtBQUNBO0VBQ0k7RUFDQTtFQUNBO0FBREo7O0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFESjs7QUFJQTtFQUNJO0FBREo7O0FBSUE7RUFDSTtFQUNBO0VBQ0E7QUFESjs7QUFJQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBREo7O0FBSUE7RUFDSTtBQURKOztBQUlBO0VBQ0k7RUFDQTtFQUNBO0FBREo7O0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFESjs7QUFJQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBREo7O0FBSUE7RUFDSTtFQUNBO0FBREo7O0FBSUE7RUFDSTtFQUNBO0FBREo7O0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFESjs7QUFJQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQURKOztBQUlBO0VBQ0k7SUFDSTtFQUROO0VBSUU7SUFDSTtFQUZOO0FBQ0Y7QUFLQTs7MEVBQUE7QUFHQTtFQUNJO0VBQ0E7QUFISjs7QUFNQTtFQUNJO0VBQ0E7QUFISjs7QUFNQTtFQUNJO0VBQ0E7QUFISjs7QUFNQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFISjs7QUFNQTtFQUNJO0FBSEo7O0FBTUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQUhKOztBQU1BO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUhKOztBQU1BO0VBQ0k7QUFISjs7QUFNQTtpRkFBQTtBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxtR0FDSTtBQUpSOztBQVFBO0VBQ0k7RUFDQTtFQUNBO0FBTEo7O0FBUUE7RUFDSTtFQUNBO0VBQ0E7QUFMSjs7QUFRQTtFQUNJO0VBQ0E7QUFMSjs7QUFRQTs7RUFFSTtBQUxKOztBQVFBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUxKOztBQVFBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUxKOztBQVFBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBTEo7O0FBUUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBTEo7O0FBUUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFMSjs7QUFRQTtFQUNJO0VBQ0E7RUFDQTtBQUxKOztBQVFBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUxKOztBQVFBO0VBQ0k7QUFMSjs7QUFRQTtFQUNJO0FBTEo7O0FBUUE7RUFDSTtFQUNBO0VBQ0E7QUFMSjs7QUFRQTtBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUxKOztBQVFBO0VBQ0k7RUFDQTtFQUNBO0FBTEo7O0FBUUE7RUFDSTtFQUNBO0VBQ0E7QUFMSjs7QUFRQTtFQUNJOztJQUVJO0VBTE47RUFRRTtJQUNJO0VBTk47QUFDRjtBQVNBO0FBQ0E7RUFDSTtBQVBKOztBQVVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7QUFQSjs7QUFVQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFQSjs7QUFVQTtFQUNJO0VBQ0E7QUFQSjs7QUFVQTtFQUNJO0VBQ0E7QUFQSjs7QUFVQTtFQUNJO0VBQ0E7RUFDQTtBQVBKOztBQVVBO0VBQ0k7QUFQSjs7QUFVQTtFQUNJO0VBQ0E7RUFDQTtBQVBKOztBQVVBO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQVBKOztBQVVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVBKOztBQVVBO0VBQ0k7QUFQSjs7QUFVQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0FBUEo7O0FBVUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBUEo7O0FBVUE7RUFDSTtBQVBKOztBQVVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFQSjs7QUFVQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBUEo7O0FBVUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBUEo7O0FBVUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQVBKOztBQVVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFQSjs7QUFVQTtFQUNJO0FBUEo7O0FBVUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVBKOztBQVVBO0VBQ0k7QUFQSjs7QUFVQTtFQUNJO0FBUEo7O0FBVUE7QUFDQTtFQUNJO0VBQ0E7RUFDQTtBQVBKOztBQVVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVBKOztBQVVBO0VBQ0k7QUFQSjs7QUFVQTtFQUNJO0VBQ0E7RUFDQTtBQVBKOztBQVVBO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQVBKOztBQVVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBUEo7O0FBVUE7RUFDSTtFQUNBO0VBQ0E7QUFQSjs7QUFVQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFQSjs7QUFVQTtFQUNJO0VBQ0E7RUFDQTtBQVBKOztBQVVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFQSjs7QUFVQTtFQUNJO0FBUEo7O0FBVUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBUEo7O0FBVUE7RUFDSTtBQVBKOztBQVVBO0VBQ0k7SUFDSTtFQVBOO0VBVUU7SUFDSTtFQVJOO0FBQ0Y7QUFXQTtBQUNBO0VBQ0k7OzRFQUFBO0VBR0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBVEo7O0FBWUE7RUFDSTtFQUNBO0FBVEo7O0FBWUE7RUFDSTtFQUNBO0VBQ0E7QUFUSjs7QUFZQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFUSjs7QUFZQTtFQUNJO0VBQ0E7QUFUSjs7QUFZQTtBQUNBO0VBQ0k7QUFUSjs7QUFZQTtFQUNJO0lBQ0k7RUFUTjtBQUNGO0FBWUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQVZKOztBQWFBOzswRUFBQTtBQUdBOztFQUVJO0VBQ0E7RUFDQTtFQUNBO0FBVko7O0FBYUE7RUFDSTtFQUNBO0FBVko7O0FBYUE7O2lFQUFBO0FBR0E7O0VBRUk7QUFWSjs7QUFhQTtBQUNBO0VBQ0k7QUFWSjs7QUFhQTtBQUNBO0VBQ0k7QUFWSjs7QUFhQTtFQUNJO0FBVko7O0FBYUE7RUFDSTtBQVZKOztBQWFBO0FBQ0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtBQVZKOztBQWFBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBLCtGQUNJO0VBRUo7RUFDQTtFQUNBO0VBQ0E7QUFaSjs7QUFlQTtFQUNJO0VBQ0E7QUFaSjs7QUFlQTtBQUNBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBWko7O0FBZUE7RUFDSTtFQUNBO0FBWko7O0FBZUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFaSjs7QUFlQTtFQUNJO0FBWko7O0FBZUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBWko7O0FBZUE7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQVpKOztBQWVBO0VBQ0k7QUFaSjs7QUFlQTtFQUNJOztJQUVJO0VBWk47RUFlRTtJQUNJO0VBYk47QUFDRjtBQWdCQTtFQUNJO0lBQ0k7RUFkTjtFQWlCRTtJQUNJO0VBZk47QUFDRjtBQWtCQTs7c0NBQUE7QUFHQTtFQUNJOzs7SUFHSTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUFoQk47RUFtQkU7SUFDSTtFQWpCTjtFQW9CRTtFQUNBO0lBQ0k7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUFsQk47QUFDRjtBQXFCQTs7Ozs7cURBQUE7QUFNQTtFQUNJOztJQUVJO0VBbkJOO0VBc0JFOzs7Ozs7OztJQVFJO0VBcEJOO0FBQ0Y7QUF1QkE7RUFDSTt5REFBQTtFQUVBOztJQUVJO0VBckJOO0VBd0JFOzs7Ozs7OztJQVFJO0VBdEJOO0FBQ0Y7QUF5QkE7OytEQUFBO0FBR0E7RUFDSTtBQXZCSjs7QUEwQkE7RUFDSTtJQUNJO0VBdkJOO0FBQ0Y7QUEwQkE7RUFDSTtJQUNJO0VBeEJOO0FBQ0Y7QUEyQkE7RUFDSTtJQUNJO0VBekJOO0FBQ0YsQzs7OztBQ3ZpQ0Esb0JBQW9COztBQUVwQjs7Ozs7Ozs7OztDQVVDLGtCQUFrQjtDQUNsQixPQUFPO0NBQ1AsTUFBTTtDQUNOO0FBQ0Q7Q0FDQyxnQkFBZ0I7Q0FDaEI7QUFDRDs7O0NBR0MseUJBQXlCO0lBQ3RCLHNCQUFzQjtTQUNqQixpQkFBaUI7R0FDdkIsdUJBQXVCO0NBQ3pCO0FBQ0Qsa0RBQWtEO0FBQ2xEO0NBQ0MsdUJBQXVCO0FBQ3hCO0FBQ0EsbUZBQW1GO0FBQ25GO0NBQ0MsMENBQTBDO0NBQzFDO0FBQ0QscUVBQXFFO0FBQ3JFO0NBQ0MsYUFBYTtDQUNiLGNBQWM7Q0FDZCw2QkFBNkI7Q0FDN0I7QUFDRDs7Q0FFQyxjQUFjO0NBQ2Q7QUFDRCxnR0FBZ0c7QUFDaEcscUZBQXFGO0FBQ3JGO0NBQ0MsMEJBQTBCO0NBQzFCLDJCQUEyQjtDQUMzQjtBQUNEOzs7OztDQUtDLDBCQUEwQjtDQUMxQiwyQkFBMkI7Q0FDM0IsV0FBVztDQUNYLFVBQVU7Q0FDVjs7QUFFRDtDQUNDLHNFQUFzRTtDQUN0RSw0QkFBNEI7QUFDN0I7O0FBRUE7Q0FDQyw2QkFBNkI7Q0FDN0IseUJBQXlCO0NBQ3pCO0FBQ0Q7Q0FDQyw0QkFBNEI7Q0FDNUIscURBQXFEO0NBQ3JELGtCQUFrQjtDQUNsQix3QkFBd0I7QUFDekI7QUFDQTtDQUNDLHNCQUFzQjtDQUN0QixrQkFBa0I7QUFDbkI7QUFDQTtDQUNDLHdDQUF3QztBQUN6QztBQUNBO0NBQ0Msb0RBQW9EO0FBQ3JEO0FBQ0E7Q0FDQyxlQUFlO0NBQ2Ysa0JBQWtCO0NBQ2xCO0FBQ0Q7Q0FDQyxtQkFBbUI7Q0FDbkI7QUFDRDtDQUNDLFFBQVE7Q0FDUixTQUFTO0NBQ1QsMkJBQTJCO01BQ3RCLHNCQUFzQjtDQUMzQixZQUFZO0NBQ1o7QUFDRCx1RUFBdUU7QUFDdkU7Q0FDQyxzQkFBc0I7Q0FDdEI7O0FBRUQsd0JBQXdCLFlBQVksRUFBRTs7QUFFdEMsd0JBQXdCLFlBQVksRUFBRTtBQUN0Qyx3QkFBd0IsWUFBWSxFQUFFO0FBQ3RDLHdCQUF3QixZQUFZLEVBQUU7QUFDdEMsd0JBQXdCLFlBQVksRUFBRTtBQUN0QywwQkFBMEIsWUFBWSxFQUFFO0FBQ3hDLHdCQUF3QixZQUFZLEVBQUU7O0FBRXRDLDJCQUEyQixZQUFZLEVBQUU7QUFDekMsMkJBQTJCLFlBQVksRUFBRTs7QUFFekM7Q0FDQyxVQUFVO0NBQ1YsV0FBVztDQUNYO0FBQ0Q7Q0FDQywyQkFBMkI7Q0FDM0IscUJBQXFCO0NBQ3JCLGtCQUFrQjtDQUNsQjs7O0FBR0Qsd0JBQXdCOztBQUV4QjtDQUNDLGtCQUFrQjtDQUNsQixZQUFZO0NBQ1osOEJBQThCLEVBQUUsOEJBQThCO0NBQzlELG9CQUFvQjtDQUNwQjtBQUNEOztDQUVDLGtCQUFrQjtDQUNsQixhQUFhO0NBQ2Isb0JBQW9CO0NBQ3BCO0FBQ0Q7Q0FDQyxNQUFNO0NBQ047QUFDRDtDQUNDLFFBQVE7Q0FDUjtBQUNEO0NBQ0MsU0FBUztDQUNUO0FBQ0Q7Q0FDQyxPQUFPO0NBQ1A7QUFDRDtDQUNDLFdBQVc7Q0FDWCxXQUFXO0NBQ1g7QUFDRDtDQUNDLFlBQVk7Q0FDWjtBQUNEO0NBQ0MsZ0JBQWdCO0NBQ2hCO0FBQ0Q7Q0FDQyxtQkFBbUI7Q0FDbkI7QUFDRDtDQUNDLGlCQUFpQjtDQUNqQjtBQUNEO0NBQ0Msa0JBQWtCO0NBQ2xCOzs7QUFHRCw2QkFBNkI7O0FBRTdCO0NBQ0MsVUFBVTtDQUNWLHVDQUF1QztJQUNwQyxvQ0FBb0M7U0FDL0IsK0JBQStCO0NBQ3ZDO0FBQ0Q7Q0FDQyxVQUFVO0NBQ1Y7QUFDRDtDQUNDLDZCQUE2QjtLQUN6Qix5QkFBeUI7U0FDckIscUJBQXFCO0NBQzdCO0FBQ0Q7Q0FDQyxzQkFBc0I7QUFDdkI7O0FBRUE7Q0FDQyxvRUFBb0U7SUFDakUsaUVBQWlFO1NBQzVELDREQUE0RDtDQUNwRTtBQUNEOztDQUVDLHdCQUF3QjtJQUNyQixxQkFBcUI7U0FDaEIsZ0JBQWdCO0NBQ3hCOztBQUVEO0NBQ0Msa0JBQWtCO0NBQ2xCOzs7QUFHRCxZQUFZOztBQUVaO0NBQ0MsZUFBZTtDQUNmO0FBQ0Q7Q0FDQyxvQkFBb0I7Q0FDcEIsb0JBQW9CO0NBQ3BCLG9CQUFvQjtDQUNwQjtBQUNEOztDQUVDLGlCQUFpQjtDQUNqQjtBQUNEOztDQUVDLFlBQVk7Q0FDWjtBQUNEOzs7Q0FHQyxZQUFZO0NBQ1osd0JBQXdCO0NBQ3hCLHdCQUF3QjtDQUN4Qix3QkFBd0I7Q0FDeEI7O0FBRUQsb0NBQW9DO0FBQ3BDOzs7OztDQUtDLG9CQUFvQjtDQUNwQjs7QUFFRDs7OztDQUlDLDhCQUE4QixFQUFFLDhCQUE4QjtDQUM5RCxvQkFBb0I7Q0FDcEI7O0FBRUQsa0JBQWtCOztBQUVsQjtDQUNDLGdCQUFnQjtDQUNoQixtQkFBbUI7Q0FDbkI7QUFDRDtDQUNDLGNBQWM7Q0FDZDtBQUNEO0NBQ0MsdUJBQXVCO0NBQ3ZCLGlDQUFpQztDQUNqQzs7O0FBR0QsdUJBQXVCO0FBQ3ZCO0NBQ0MsMkRBQTJEO0NBQzNELGVBQWU7Q0FDZixrQkFBa0I7Q0FDbEIsZ0JBQWdCO0NBQ2hCOzs7QUFHRCwyQkFBMkI7O0FBRTNCO0NBQ0Msc0NBQXNDO0NBQ3RDLGtCQUFrQjtDQUNsQjtBQUNEO0NBQ0Msc0JBQXNCO0NBQ3RCLDZCQUE2QjtDQUM3QixXQUFXO0NBQ1gsWUFBWTtDQUNaLGlCQUFpQjtDQUNqQixjQUFjO0NBQ2Qsa0JBQWtCO0NBQ2xCLHFCQUFxQjtDQUNyQixZQUFZO0NBQ1o7QUFDRDs7Q0FFQyw0QkFBNEI7Q0FDNUIsNEJBQTRCO0NBQzVCLGNBQWM7Q0FDZDtBQUNEOztDQUVDLHlCQUF5QjtDQUN6QjtBQUNEO0NBQ0MsMkJBQTJCO0NBQzNCLDRCQUE0QjtDQUM1QjtBQUNEO0NBQ0MsOEJBQThCO0NBQzlCLCtCQUErQjtDQUMvQixtQkFBbUI7Q0FDbkI7QUFDRDtDQUNDLGVBQWU7Q0FDZix5QkFBeUI7Q0FDekIsV0FBVztDQUNYOztBQUVEO0NBQ0MsV0FBVztDQUNYLFlBQVk7Q0FDWixpQkFBaUI7Q0FDakI7QUFDRDtDQUNDLDJCQUEyQjtDQUMzQiw0QkFBNEI7Q0FDNUI7QUFDRDtDQUNDLDhCQUE4QjtDQUM5QiwrQkFBK0I7Q0FDL0I7O0FBRUQsaUJBQWlCOztBQUVqQjs7Q0FFQyxtREFBbUQ7Q0FDbkQsZ0JBQWdCO0NBQ2hCOztBQUVEO0NBQ0MsZUFBZTtDQUNmOzs7QUFHRCxtQkFBbUI7O0FBRW5CO0NBQ0MscUNBQXFDO0NBQ3JDLGdCQUFnQjtDQUNoQixrQkFBa0I7Q0FDbEI7QUFDRDtDQUNDLHlEQUF3QztDQUN4QyxXQUFXO0NBQ1gsWUFBWTtDQUNaO0FBQ0Q7Q0FDQyx5REFBMkM7Q0FDM0MsMEJBQTBCO0NBQzFCO0FBQ0Q7Q0FDQyxXQUFXO0NBQ1gsWUFBWTtDQUNaO0FBQ0Q7O0NBRUMsYUFBYTtDQUNiO0FBQ0Q7Q0FDQyxjQUFjO0NBQ2Qsa0JBQWtCO0NBQ2xCO0FBQ0Q7Q0FDQyx5QkFBeUI7Q0FDekIsV0FBVztDQUNYLGdCQUFnQjtDQUNoQjtBQUNEO0NBQ0Msa0JBQWtCO0NBQ2xCLGtCQUFrQjtDQUNsQixrQkFBa0I7Q0FDbEI7QUFDRDtDQUNDLGVBQWU7Q0FDZixrQkFBa0I7Q0FDbEIsUUFBUTtDQUNSO0FBQ0Q7Q0FDQyxjQUFjO0NBQ2QsZUFBZTtDQUNmLG9CQUFvQjtDQUNwQjtBQUNEO0NBQ0MsU0FBUztDQUNULDBCQUEwQjtDQUMxQiwwQkFBMEI7Q0FDMUI7O0FBRUQsc0JBQXNCO0FBQ3RCLDZCQUE2Qiw2REFBNkQ7Q0FDekYseURBQTZDO0NBQzdDOzs7QUFHRCxtQ0FBbUM7O0FBRW5DO0NBQ0MsZ0JBQWdCO0NBQ2hCLG9DQUFvQztDQUNwQyxTQUFTO0NBQ1Q7QUFDRDs7Q0FFQyxjQUFjO0NBQ2QsV0FBVztDQUNYLGdCQUFnQjtDQUNoQjtBQUNEO0NBQ0MscUJBQXFCO0NBQ3JCO0FBQ0Q7O0NBRUMsMEJBQTBCO0NBQzFCO0FBQ0Q7Q0FDQywwQkFBMEI7Q0FDMUIsbUNBQW1DO0NBQ25DLFVBQVU7Q0FDVixnQkFBZ0I7Q0FDaEI7QUFDRDtDQUNDLGdCQUFnQjtDQUNoQjtBQUNEO0NBQ0Msa0JBQWtCO0NBQ2xCO0FBQ0Q7Q0FDQyxzQkFBc0I7Q0FDdEIsZ0JBQWdCO0NBQ2hCLGdCQUFnQjtDQUNoQixvQkFBb0I7Q0FDcEIsbUJBQW1CO0NBQ25CLDJCQUEyQjtNQUN0QixzQkFBc0I7Q0FDM0Isb0NBQW9DO0NBQ3BDLHlCQUF5QjtDQUN6QjtBQUNEO0NBQ0MsMEJBQTBCO0NBQzFCLG1CQUFtQjtDQUNuQixnQkFBZ0I7Q0FDaEI7QUFDRDtDQUNDLDZCQUE2QjtDQUM3Qjs7QUFFRDs7O0NBR0MsZ0JBQWdCO0NBQ2hCO0FBQ0Q7O0NBRUMsaUNBQWlDO0NBQ2pDLDRCQUE0QjtDQUM1Qjs7O0FBR0QsVUFBVTs7QUFFVjtDQUNDLGtCQUFrQjtDQUNsQixrQkFBa0I7Q0FDbEIsbUJBQW1CO0NBQ25CO0FBQ0Q7Q0FDQyxZQUFZO0NBQ1osZ0JBQWdCO0NBQ2hCLG1CQUFtQjtDQUNuQjtBQUNEO0NBQ0MsMkJBQTJCO0NBQzNCLGdCQUFnQjtDQUNoQixlQUFlO0NBQ2Ysb0JBQW9CO0NBQ3BCLGVBQWU7Q0FDZjtBQUNEO0NBQ0MsY0FBYztDQUNkLGVBQWU7Q0FDZjtBQUNEO0NBQ0MsV0FBVztDQUNYLFlBQVk7Q0FDWixrQkFBa0I7Q0FDbEIsU0FBUztDQUNULGdCQUFnQjtDQUNoQixrQkFBa0I7Q0FDbEIsZ0JBQWdCO0NBQ2hCLG9CQUFvQjtDQUNwQjtBQUNEO0NBQ0MsV0FBVztDQUNYLFlBQVk7Q0FDWixZQUFZOztDQUVaLG9CQUFvQjtDQUNwQixvQkFBb0I7O0NBRXBCLGdDQUFnQztJQUM3Qiw2QkFBNkI7S0FDNUIsNEJBQTRCO1NBQ3hCLHdCQUF3QjtDQUNoQztBQUNEOztDQUVDLGlCQUFpQjtDQUNqQixXQUFXO0NBQ1gsc0NBQXNDO0NBQ3RDO0FBQ0Q7Q0FDQyxrQkFBa0I7Q0FDbEIsTUFBTTtDQUNOLFFBQVE7Q0FDUixZQUFZO0NBQ1osa0JBQWtCO0NBQ2xCLFdBQVc7Q0FDWCxZQUFZO0NBQ1osMkNBQTJDO0NBQzNDLGNBQWM7Q0FDZCxxQkFBcUI7Q0FDckIsdUJBQXVCO0NBQ3ZCO0FBQ0Q7O0NBRUMsY0FBYztDQUNkO0FBQ0Q7Q0FDQyxjQUFjO0NBQ2Q7O0FBRUQ7Q0FDQyxXQUFXO0NBQ1g7QUFDRDtDQUNDLFdBQVc7Q0FDWCxjQUFjOztDQUVkLHVIQUF1SDtDQUN2SCxpSEFBaUg7Q0FDakg7O0FBRUQ7Ozs7Q0FJQyxzQkFBc0I7Q0FDdEI7OztBQUdELGFBQWE7O0FBRWI7Q0FDQyxnQkFBZ0I7Q0FDaEIsc0JBQXNCO0NBQ3RCOzs7QUFHRCxZQUFZO0FBQ1osbURBQW1EO0FBQ25EO0NBQ0Msa0JBQWtCO0NBQ2xCLFlBQVk7Q0FDWixzQkFBc0I7Q0FDdEIsc0JBQXNCO0NBQ3RCLGtCQUFrQjtDQUNsQixXQUFXO0NBQ1gsbUJBQW1CO0NBQ25CLHlCQUF5QjtDQUN6QixzQkFBc0I7Q0FDdEIscUJBQXFCO0NBQ3JCLGlCQUFpQjtDQUNqQixvQkFBb0I7Q0FDcEIscUNBQXFDO0NBQ3JDO0FBQ0Q7Q0FDQyxlQUFlO0NBQ2Ysb0JBQW9CO0NBQ3BCO0FBQ0Q7Ozs7Q0FJQyxrQkFBa0I7Q0FDbEIsb0JBQW9CO0NBQ3BCLDZCQUE2QjtDQUM3Qix1QkFBdUI7Q0FDdkIsV0FBVztDQUNYOztBQUVELGVBQWU7O0FBRWY7Q0FDQyxlQUFlO0FBQ2hCO0FBQ0E7Q0FDQyxnQkFBZ0I7QUFDakI7QUFDQTs7Q0FFQyxTQUFTO0NBQ1QsaUJBQWlCO0NBQ2pCO0FBQ0Q7Q0FDQyxTQUFTO0NBQ1Qsb0JBQW9CO0NBQ3BCLHNCQUFzQjtDQUN0QjtBQUNEO0NBQ0MsTUFBTTtDQUNOLGlCQUFpQjtDQUNqQixpQkFBaUI7Q0FDakIseUJBQXlCO0NBQ3pCO0FBQ0Q7Q0FDQyxpQkFBaUI7QUFDbEI7QUFDQTtDQUNDLGdCQUFnQjtBQUNqQjtBQUNBOztDQUVDLFFBQVE7Q0FDUixnQkFBZ0I7Q0FDaEI7QUFDRDtDQUNDLFFBQVE7Q0FDUixtQkFBbUI7Q0FDbkIsdUJBQXVCO0NBQ3ZCO0FBQ0Q7Q0FDQyxPQUFPO0NBQ1Asa0JBQWtCO0NBQ2xCLHdCQUF3QjtDQUN4Qjs7QUFFRCxhQUFhOztBQUViO0NBQ0Msa0VBQWtFO0NBQ2xFO0VBQ0MsaUNBQWlDO0VBQ2pDLHlCQUF5QjtFQUN6QjtDQUNEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2lkZW50aXR5c3RvcmUtbWQvc3R5bGVzL2FwcC5jc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2lkZW50aXR5c3RvcmUtbWQvc3R5bGVzL2FwcC5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9pZGVudGl0eXN0b3JlLW1kL3N0eWxlcy9hbmltYXRpb25zLnNjc3MiLCJ3ZWJwYWNrOi8vLy4vYXNzZXRzL2lkZW50aXR5c3RvcmUtbWQvc3R5bGVzL2hlcm8uc2NzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvaWRlbnRpdHlzdG9yZS1tZC9zdHlsZXMvcHJpY2luZy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9pZGVudGl0eXN0b3JlLW1kL3N0eWxlcy9wYWdlcy5zY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9pZGVudGl0eXN0b3JlLW1kL2pzL2xlYWZsZXQvbGVhZmxldC5jc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLyogc3RhcnQgZ2xvYmFsIGNsYXNzZXMgKi9cbjpyb290IHtcbiAgICAvKiBib2R5IGJnIGNvbG9yICovXG4gICAgLS1ib2R5Q29sb3I6ICMwMDA7XG5cbiAgICAtLXRhYmxlLWNvbG9yLWhvdmVyOiAjMDUwNTA1O1xuXG4gICAgLS10YWJsZS1zdHJpcHBlZC1jb2xvcjogIzExMTExMTtcblxuICAgIC0tdGFibGUtc3RyaXBwZWQtY29sb3ItaG92ZXI6ICMwOTA5MDk7XG5cbiAgICAvKiBwcmltYXJ5IGJyYW5kIGNvbG9yICovXG4gICAgLS1wcmltYXJ5LWNvbG9yOiAjMDJmMjkxO1xuXG4gICAgLyogd2hpdGUgY29sb3IgKi9cbiAgICAtLXdoaXRlOiAjZmZmO1xuXG4gICAgLyogZ3JleSBjb2xvciAqL1xuICAgIC0tZ3JleTogI2FiYWJhYjtcblxuICAgIC8qIGRhcmsgZ3JleSBjb2xvciAqL1xuICAgIC0tZGFyay1ncmV5OiAjNDM0ZTQ5O1xuXG4gICAgLyogYm94IGNvbG9yICovXG4gICAgLS1ib3gtY29sb3I6ICMwMDA0MDM7XG5cbiAgICAvKiBib3JkZXIgcmFkaXVzICovXG4gICAgLS1ib3JkZXItcmFkaXVzOiAwO1xufVxuXG4vKiA9PT09PT09PT09IHNyYXJ0IGRhcmstbW9kZSBjb2xvcnMgPT09PT09PT09PT09ICovXG5cbmJvZHkuZGFyay1tb2RlIHtcbiAgICAvKiBib2R5IGJnIGNvbG9yICovXG4gICAgLS1ib2R5Q29sb3I6ICNmM2YzZjM7XG5cbiAgICAtLXRhYmxlLWNvbG9yLWhvdmVyOiAjZjFmMWYxO1xuXG4gICAgLS10YWJsZS1zdHJpcHBlZC1jb2xvcjogI2UzZTNlMztcblxuICAgIC0tdGFibGUtc3RyaXBwZWQtY29sb3ItaG92ZXI6ICNlMWUxZTE7XG5cbiAgICAvKiBwcmltYXJ5IGJyYW5kIGNvbG9yICovXG4gICAgLS1wcmltYXJ5LWNvbG9yOiAjMDNjYzYwO1xuXG4gICAgLyogd2hpdGUgY29sb3IgKi9cbiAgICAtLXdoaXRlOiAjMDUwNTA1O1xuXG4gICAgLyogZ3JleSBjb2xvciAqL1xuICAgIC0tZ3JleTogIzVjNWM1YztcblxuICAgIC8qIGJveCBjb2xvciAqL1xuICAgIC0tYm94LWNvbG9yOiAjZjBmMGYwO1xuXG4gICAgLyogYm9yZGVyIHJhZGl1cyAqL1xuICAgIC0tYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLyogPT09PT09PT09PSBlbmQgZGFyay1tb2RlIGNvbG9ycyA9PT09PT09PT09PT0gKi9cblxuLnN3aXRjaC1idXR0b24ge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB3aWR0aDogNDVweDtcbiAgICBoZWlnaHQ6IDQ1cHg7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICBib3JkZXI6IDAuNXB4IHNvbGlkIHZhcigtLWdyZXkpO1xufVxuXG4uYnRuLWxpZ2h0LW1vZGUge1xuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcbn1cblxuKiB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuYm9keSB7XG4gICAgZm9udC1mYW1pbHk6IFwiTnVuaXRvIFNhbnMgUmVndWxhclwiLCBzYW5zLXNlcmlmO1xuICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm9keUNvbG9yKTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbmh0bWwge1xuICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbjo6c2VsZWN0aW9uIHtcbiAgICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xufVxuXG4ucHJpbWFyeS10ZXh0IHtcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcikgIWltcG9ydGFudDtcbn1cblxuLmdyZXktdGV4dCB7XG4gICAgY29sb3I6IHZhcigtLWdyZXkpO1xufVxuXG4udGV4dC13aGl0ZSB7XG4gICAgY29sb3I6IHZhcigtLXdoaXRlKTtcbn1cblxuLmJnLWJveCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm94LWNvbG9yKTtcbn1cblxuLmhlYWRpbmctMSxcbi5oZWFkaW5nLTIge1xuICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG59XG5cbi5oZWFkaW5nLTEge1xuICAgIGZvbnQtc2l6ZTogNTZweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5oZWFkaW5nLTIge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbn1cblxuLmhlYWRpbmctMyB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuXG4uYm9keS0xIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICBjb2xvcjogdmFyKC0tZ3JleSk7XG59XG5cbi5ib2R5LTIge1xuICAgIGZvbnQtZmFtaWx5OiBcIlNwYWNlIE1vbm9cIiwgbW9ub3NwYWNlO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGNvbG9yOiB2YXIoLS1ncmV5KTtcbiAgICBsaW5lLWhlaWdodDogMjhweDtcbn1cblxuLmdhcC04IHtcbiAgICBnYXA6IDhweDtcbn1cblxuLmdhcC0xNiB7XG4gICAgZ2FwOiAxNnB4O1xufVxuXG4uZ2FwLTMyIHtcbiAgICBnYXA6IDMycHg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTBweCkge1xuICAgIC5oZWFkaW5nLTEge1xuICAgICAgICBmb250LXNpemU6IDM2cHg7XG4gICAgfVxuXG4gICAgLmhlYWRpbmctMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB9XG5cbiAgICAuaGVhZGluZy0zIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgIH1cblxuICAgIC5ib2R5LTEge1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyOHB4O1xuICAgIH1cblxuICAgIC5ib2R5LTIge1xuICAgICAgICBmb250LWZhbWlseTogXCJTcGFjZSBNb25vXCIsIG1vbm9zcGFjZTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMjZweDtcbiAgICB9XG5cbiAgICAuZ2FwLTgge1xuICAgICAgICBnYXA6IDRweDtcbiAgICB9XG5cbiAgICAuZ2FwLTE2IHtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgfVxuXG4gICAgLmdhcC0zMiB7XG4gICAgICAgIGdhcDogMTZweDtcbiAgICB9XG5cbiAgICAucGFkZGluZy0zMiB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgfVxuXG4gICAgLnBhZGRpbmctMTYge1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgfVxuXG4gICAgLnBhZGRpbmctOCB7XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICB9XG5cbiAgICAuaWNvbi1sZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICB9XG5cbiAgICAuaWNvbi1tZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICB9XG5cbiAgICAuaWNvbi1zbSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB9XG5cbiAgICAuc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmctYmxvY2s6IDNyZW07XG4gICAgfVxuXG4gICAgLmJvcmRlcmVkLWJveCB7XG4gICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICB9XG5cbiAgICAuc2hhcGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuXG4udy1maXQge1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbn1cblxuLnNoYXBlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBvcGFjaXR5OiAwLjY7XG59XG5cbi5kYXJrLW1vZGUgLnNhcGUge1xuICAgIG9wYWNpdHk6IDAuNDtcbn1cblxuLmJvcmRlcmVkLWJveCB7XG4gICAgYm9yZGVyOiAwLjVweCBzb2xpZCB2YXIoLS1kYXJrLWdyZXkpO1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cyk7XG59XG5cbi5wYWRkaW5nLTMyIHtcbiAgICBwYWRkaW5nOiAzMnB4O1xufVxuXG4ucGFkZGluZy0xNiB7XG4gICAgcGFkZGluZzogMTZweDtcbn1cblxuLnBhZGRpbmctOCB7XG4gICAgcGFkZGluZzogOHB4O1xufVxuXG4uaWNvbi1sZyB7XG4gICAgZm9udC1zaXplOiA0OHB4O1xufVxuXG4uaWNvbi1tZCB7XG4gICAgZm9udC1zaXplOiAzMnB4O1xufVxuXG4uaWNvbi1zbSB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xufVxuXG5wIHtcbiAgICBjb2xvcjogdmFyKC0tZ3JleSk7XG59XG5cbi5zZWN0aW9uIHtcbiAgICBwYWRkaW5nLWJsb2NrOiA2cmVtO1xufVxuXG5cblxuLm9yZ2FuaXNlIHtcbiAgICB3aWR0aDogNzAwcHg7XG4gICAgei1pbmRleDogLTE7XG59XG5cbmlucHV0LFxudGV4dGFyZWEge1xuICAgIGJvcmRlcjogMDtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiB2YXIoLS1ncmV5KTtcbn1cblxuLyogc3RhcnQgYnV0dG9ucyBzdHlsZSAqL1xuLmJ0biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG4gICAgY29sb3I6IHZhcigtLWJvZHlDb2xvcik7XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzKTtcbiAgICBwYWRkaW5nOiAxMHB4IDI4cHg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQgMHM7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHotaW5kZXg6IDE7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMzAwbXMgZWFzZS1pbi1vdXQ7XG59XG5cbi5idG46aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gICAgYm9yZGVyOiAwLjVweCBzb2xpZCB2YXIoLS1kYXJrLWdyZXkpO1xufVxuXG4vKiBlbmQgbWFpbiBidXR0b24gc3R5bGUgKi9cblxudWwge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbmltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi8qIGVuZCBnbG9iYWwgY2xhc3NlcyAqL1xuXG4vKiA9PT09IHN0YXJ0ICBwcmVsb2FkZXIgc3R5bGUgID09PT09ICovXG5cbi8qID09PT0gc3RhcnQgIHByZWxvYWRlciBzdHlsZSAgPT09PT0gKi9cbiNwcmVsb2FkZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm9keUNvbG9yKTtcbiAgICB6LWluZGV4OiA5OTk5O1xufVxuXG4uc3Bpbm5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNDUlO1xuICAgIGxlZnQ6IDQ1JTtcbiAgICBib3JkZXI6IDEycHggc29saWQgdmFyKC0tZ3JleSk7XG4gICAgYm9yZGVyLXRvcDogMTJweCBzb2xpZCB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgd2lkdGg6IDgwcHg7XG4gICAgaGVpZ2h0OiA4MHB4O1xuICAgIGFuaW1hdGlvbjogc3BpbiAycyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgc3BpbiB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG59XG5cbi8qID09PT0gZW5kICBwcmVsb2FkZXIgc3R5bGUgID09PT09ICovXG5cbi8qID09PT09PT09IHN0YXJ0IHNjcm9sbC10by10b3AgYnV0dG9uIHN0eWxlICA9PT09PT09PT09PSAqL1xuXG4jcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IDIwcHg7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgaGVpZ2h0OiA3MHB4O1xuICAgIHdpZHRoOiA3MHB4O1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB6LWluZGV4OiA5OTk7XG59XG5cbiNwcm9ncmVzcy12YWx1ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSAxNXB4KTtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMTVweCk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm9keUNvbG9yKTtcbiAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMzVweDtcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG59XG5cbiNwcm9ncmVzcy12YWx1ZSBpIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG59XG5cbi8qID09PT09PT09IGVuZCBzY3JvbGwtdG8tdG9wIGJ1dHRvbiBzdHlsZSAgPT09PT09PT09PT0gKi9cblxuLyo9PT09PT09PT09PT09PT09PT0gc3RhcnQgbmF2YmFyIHNlY3Rpb24gPT09PT09PT09PT09PT09PT09Ki9cblxuLmhlYWRlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDkwMDtcbiAgICBwYWRkaW5nLWJsb2NrOiAxMnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJvZHlDb2xvcik7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDk5OTtcbn1cblxuLm5hdmJhci10b2dnbGVyLFxuLm5hdmJhci10b2dnbGVyOmFjdGl2ZSxcbi5uYXZiYXItdG9nZ2xlcjpmb2N1cyB7XG4gICAgYm9yZGVyOiBub25lO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTkwcHgpIHtcbiAgICAubmF2YmFyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYm94LWNvbG9yKTtcbiAgICB9XG59XG5cbi5uYXZiYXIgLmxvZ28ge1xuICAgIHdpZHRoOiA5cmVtO1xufVxuXG4ubmF2YmFyIHVsIGxpIGEge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6IHZhcigtLWdyZXkpO1xufVxuXG4ubmF2YmFyIHVsIGxpIGE6aG92ZXIsXG4ubmF2YmFyIHVsIGxpIGEuYWN0aXZlIHtcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcikgIWltcG9ydGFudDtcbn1cblxuLm5hdmJhciBpIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgY29sb3I6IHZhcigtLWdyZXkpO1xufVxuXG4vKj09PT09PT09PT09PT09PT09PSBFbmQgbmF2YmFyIHNlY3Rpb24gPT09PT09PT09PT09PT09PT09Ki9cblxuXG5cbi8qPT09PT09PT09PT09PT0gU3RhcnQgQWJvdXQgc2VjdGlvbiA9PT09PT09PT09Ki9cblxuLmFib3V0IC5ibHVyeS0xIHtcbiAgICB0b3A6IC0xNTBweDtcbiAgICByaWdodDogLTU1MHB4O1xuICAgIHotaW5kZXg6IC0xO1xufVxuXG4uYWJvdXQgLm9yZ2FuaXNlIHtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogLTQwMHB4O1xuICAgIHotaW5kZXg6IC0xO1xufVxuXG4uYWJvdXQgLmNvbnRhaW5lciA+ICoge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmFib3V0IC5ibHVyeS0yIHtcbiAgICB0b3A6IDEwMHB4O1xuICAgIGxlZnQ6IC01MDBweDtcbn1cblxuLyo9PT09PT09PT09PT09PSBFbmQgQWJvdXQgc2VjdGlvbiA9PT09PT09PT09Ki9cblxuLyo9PT09PT09PT09PT09PSBTdGFydCBTZXJ2aWNlcyBzZWN0aW9uID09PT09PT09PT0qL1xuXG4uc2VydmljZXMgLmJsdXJ5LTEge1xuICAgIHRvcDogLTE1MHB4O1xuICAgIHJpZ2h0OiAtNTAwcHg7XG59XG5cbi5zZXJ2aWNlcyAub3JnYW5pc2Uge1xuICAgIHdpZHRoOiA3MDBweDtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IC0zMDBweDtcbn1cblxuLnNlcnZpY2VzIC5jb250YWluZXIgPiAqIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5zZXJ2aWNlcyAuYmx1cnktMiB7XG4gICAgdG9wOiAxMDBweDtcbiAgICBsZWZ0OiAtNTAwcHg7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTBweCkge1xuICAgIC5tb2JpbGUtbm9uZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLnNlcnZpY2VzIC5yZXZlcnNlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlICFpbXBvcnRhbnQ7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB9XG59XG5cbi8qPT09PT09PT09PT09PT0gRW5kIFNlcnZpY2VzIHNlY3Rpb24gPT09PT09PT09PSovXG5cbi8qPT09PT09PT09PT09PT0gU3RhcnQgcG9ydGZvbGlvIHNlY3Rpb24gPT09PT09PT09PSovXG5cbi5wb3J0Zm9saW8gLmJsdXJ5LTEge1xuICAgIHRvcDogLTIwMHB4O1xuICAgIHJpZ2h0OiAtNTAwcHg7XG59XG5cbi5wb3J0Zm9saW8gLm9yZ2FuaXNlIHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IC0zMDBweDtcbn1cblxuLnBvcnRmb2xpbyAuc2Nyb2xsZXIgPiAqIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5wb3J0Zm9saW8gLmJsdXJ5LTIge1xuICAgIGJvdHRvbTogLTEwMHB4O1xuICAgIGxlZnQ6IC01MDBweDtcbn1cblxuLyo9PT09PT09PT09PT09PSBFbmQgcG9ydGZvbGlvIHNlY3Rpb24gPT09PT09PT09PSovXG5cbi8qPT09PT09PT09PT09PT0gU3RhcnQgdGVzdGltb25pYWxzIHNlY3Rpb24gPT09PT09PT09PSovXG4udGVzdGltb25pYWxzIC5ibHVyeS0xIHtcbiAgICB0b3A6IC0yMDBweDtcbiAgICByaWdodDogLTUwMHB4O1xufVxuXG4udGVzdGltb25pYWxzIC5vcmdhbmlzZSB7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IC0zMDBweDtcbn1cblxuLnRlc3RpbW9uaWFscyAuc2Nyb2xsZXIgPiAqIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi50ZXN0aW1vbmlhbHMgLmNvbnRhaW5lciA+ICoge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnRlc3RpbW9uaWFscyAuYmx1cnktMiB7XG4gICAgYm90dG9tOiAtMTAwcHg7XG4gICAgbGVmdDogLTUwMHB4O1xufVxuXG4udGVzdGltb25pYWxzIC5ib3JkZXJlZC1ib3gge1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ib3gtY29sb3IpO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTkwcHgpIHtcbiAgICAudGVzdGltb25pYWxzIC5ib3JkZXJlZC1ib3gge1xuICAgICAgICB3aWR0aDogNDAwcHg7XG4gICAgfVxuXG4gICAgLnRlc3RpbW9uaWFscyAuaW1nIGltZyB7XG4gICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgaGVpZ2h0OiAxMDBweDtcbiAgICB9XG5cbiAgICAudGVzdGltb25pYWxzIC5pbWcge1xuICAgICAgICBmbGV4OiAwLjM7XG4gICAgfVxuXG4gICAgLnRlc3RpbW9uaWFscyAudGV4dCB7XG4gICAgICAgIGZsZXg6IDAuNztcbiAgICB9XG59XG5cbi50ZXN0aW1vbmlhbHMgLmltZyBpbWcge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuLnRlc3RpbW9uaWFscyAuaW1nIHtcbiAgICB3aWR0aDogMzAwcHg7XG4gICAgaGVpZ2h0OiAzMDBweDtcbn1cblxuQGtleWZyYW1lcyBzbGlkZSB7XG4gICAgZnJvbSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gICAgfVxufVxuXG4uc2Nyb2xsZXIge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4uc2Nyb2xsZXJfX2lubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDE2cHg7XG59XG5cbi5zY3JvbGxlcltkYXRhLWFuaW1hdGVkPVwidHJ1ZVwiXSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAtd2Via2l0LW1hc2s6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgIDkwZGVnLFxuICAgICAgICAgICAgdHJhbnNwYXJlbnQsXG4gICAgICAgICAgICBibGFjayAyMCUsXG4gICAgICAgICAgICBibGFjayA4MCUsXG4gICAgICAgICAgICB0cmFuc3BhcmVudFxuICAgICk7XG4gICAgbWFzazogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgYmxhY2sgMjAlLCBibGFjayA4MCUsIHRyYW5zcGFyZW50KTtcbn1cblxuLnNjcm9sbGVyW2RhdGEtYW5pbWF0ZWQ9XCJ0cnVlXCJdIC5zY3JvbGxlcl9faW5uZXIge1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBhbmltYXRpb246IHNjcm9sbCB2YXIoLS1fYW5pbWF0aW9uLWR1cmF0aW9uLCA0MHMpIHZhcigtLV9hbmltYXRpb24tZGlyZWN0aW9uLCBmb3J3YXJkcykgbGluZWFyIGluZmluaXRlO1xufVxuXG4uc2Nyb2xsZXJbZGF0YS1kaXJlY3Rpb249XCJyaWdodFwiXSB7XG4gICAgLS1fYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTtcbn1cblxuLnNjcm9sbGVyW2RhdGEtZGlyZWN0aW9uPVwibGVmdFwiXSB7XG4gICAgLS1fYW5pbWF0aW9uLWRpcmVjdGlvbjogZm9yd2FyZHM7XG59XG5cbi5zY3JvbGxlcltkYXRhLXNwZWVkPVwiZmFzdFwiXSB7XG4gICAgLS1fYW5pbWF0aW9uLWR1cmF0aW9uOiAzNXM7XG59XG5cbi5zY3JvbGxlcltkYXRhLXNwZWVkPVwic2xvd1wiXSB7XG4gICAgLS1fYW5pbWF0aW9uLWR1cmF0aW9uOiA2MHM7XG59XG5cbkBrZXlmcmFtZXMgc2Nyb2xsIHtcbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKGNhbGMoLTUwJSAtIDAuNXJlbSkpO1xuICAgIH1cbn1cblxuLyo9PT09PT09PT09PT09PSBFbmQgdGVzdGltb25pYWxzIHNlY3Rpb24gPT09PT09PT09PSovXG5cbi8qPT09PT09PT09PT09PT0gU3RhcnQgcHJpbmNpbmcgc2VjdGlvbiA9PT09PT09PT09Ki9cbi5wcmljaW5nIC5kb2xsYXIge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnByaWNpbmcgLmJsdXJ5LTEge1xuICAgIHRvcDogLTMwMHB4O1xuICAgIGxlZnQ6IC02MDBweDtcbn1cblxuLnByaWNpbmcgLmJsdXJ5LTIge1xuICAgIGJvdHRvbTogLTQwMHB4O1xuICAgIHJpZ2h0OiAtNjAwcHg7XG59XG5cbi5wcmljaW5nIC5zaGFwZS10ZXh0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyMHB4O1xuICAgIHJpZ2h0OiAxMHB4O1xufVxuXG4ucHJpY2luZyAuc2hhcGUtdGV4dCBoMyB7XG4gICAgZm9udC1zaXplOiA0MnB4O1xuICAgIGNvbG9yOiByZ2JhKDM0LCA1MCwgNDMsIDAuNDQ1KTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbn1cblxuLnByaWNpbmcgLnNoYXBlLXRleHQgaDQge1xuICAgIGZvbnQtc2l6ZTogMzBweDtcbiAgICBjb2xvcjogcmdiYSgzNCwgNTAsIDQzLCAwLjQ2Nik7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5wcmljaW5nIC5tb250aCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ucHJpY2luZyAubGluZS0wIHtcbiAgICBsaW5lLWhlaWdodDogMDtcbn1cblxuLnByaWNpbmcgLnNoYXBlLWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgZm9udC1zaXplOiA4MnB4O1xuICAgIGNvbG9yOiAjMjYyZTJiNjM7XG59XG5cbi8qPT09PT09PT09PT09PT0gRW5kIHByaW5jaW5nIHNlY3Rpb24gPT09PT09PT09PSovXG5cbi8qPT09PT09PT09PT09PT0gU3RhcnQgQ1RBIHNlY3Rpb24gPT09PT09PT09PSovXG5cbi5jdGEgLmJsdXJ5LTEge1xuICAgIHRvcDogLTIwMHB4O1xuICAgIGxlZnQ6IC02MDBweDtcbn1cblxuLmN0YSAuY29udGFpbmVyID4gKiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vKj09PT09PT09PT09PT09IEVuZCBDVEEgc2VjdGlvbiA9PT09PT09PT09Ki9cblxuLyo9PT09PT09PT09PT09PSBTdGFydCB0ZWFtIHNlY3Rpb24gPT09PT09PT09PSovXG5cbi50ZWFtIC5ibHVyeS0xIHtcbiAgICB0b3A6IDIwMHB4O1xuICAgIHJpZ2h0OiAtNjAwcHg7XG59XG5cbi50ZWFtIC5jb250YWluZXIgPiAqIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi50ZWFtIC5jb250ZW50LW92ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgcmdiKDAsIDQsIDMpLCByZ2JhKDAsIDAsIDAsIDAuMjg4KSk7XG4gICAgb3BhY2l0eTogMDtcbn1cblxuLmRhcmstbW9kZSAudGVhbSAuY29udGVudC1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICB0byB0b3AsXG4gICAgICAgICAgICByZ2IoMjM1LCAyNDEsIDI0MCksXG4gICAgICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDc1KVxuICAgICk7XG59XG5cbi50ZWFtIC5jb250ZW50LW92ZXJsYXk6aG92ZXIge1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi50ZWFtIC5pY29uIHtcbiAgICB3aWR0aDogNTBweDtcbiAgICBoZWlnaHQ6IDUwcHg7XG59XG5cbi8qPT09PT09PT09PT09PT0gRW5kIHRlYW0gc2VjdGlvbiA9PT09PT09PT09Ki9cblxuLyo9PT09PT09PT09PT09PSBzdGFydCBGQVEgc2VjdGlvbiA9PT09PT09PT09Ki9cblxuLmZhcSAuYmx1cnktMSB7XG4gICAgdG9wOiAtMjAwcHg7XG4gICAgbGVmdDogLTYwMHB4O1xufVxuXG4uZmFxIC5ibHVyeS0yIHtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IC02MDBweDtcbn1cblxuLmZhcSAuY29udGFpbmVyID4gKiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uZmFxIC5idG4ge1xuICAgIGNvbG9yOiB2YXIoLS13aGl0ZSkgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246IHN0YXJ0O1xufVxuXG4ucm90YXRlLWljb24ge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2UtaW4tb3V0O1xufVxuXG4ucm90YXRlLWljb24ucm90YXRlZCB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbn1cblxuLyo9PT09PT09PT09PT09PSBFbmQgRkFRIHNlY3Rpb24gPT09PT09PT09PSovXG5cblxuXG4vKj09PT09PT09PT09PT09IEVuZCBGb290ZXIgc2VjdGlvbiA9PT09PT09PT09Ki9cblxuLmZvb3Rlci1saW5rIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgY29sb3I6IHZhcigtLWdyZXkpO1xufVxuXG4uZm9vdGVyIGEgaSB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGNvbG9yOiB2YXIoLS1ncmV5KTtcbn1cblxuLmZvb3RlciBpOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG59XG5cbi5jb3B5IHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6IHZhcigtLWRhcmstZ3JleSk7XG59XG5cbi8qPT09PT09PT09PT09PT0gRW5kIEZvb3RlciBzZWN0aW9uID09PT09PT09PT0qL1xuIiwiYm9keSB7XG4gIC50ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5uby1jYXBpdGFsaXplIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgLmJsdXJ5IHtcbiAgICB3aWR0aDogOTgwcHg7XG4gICAgei1pbmRleDogLTE7XG4gIH1cblxuICA+IHNlY3Rpb24ge1xuICAgICYubm8tdGl0bGUge1xuICAgICAgbWFyZ2luLXRvcDogNiU7XG4gICAgfVxuICB9XG5cbiAgLmxlYWZsZXQtY29udHJvbC1hdHRyaWJ1dGlvbiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG5cblxuXG4gIC5sZWFybi1tb3JlIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMS41cHg7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC41cztcbiAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gICAgfVxuXG4gICAgaSB7XG4gICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAgID4gc2VjdGlvbiB7XG4gICAgICAmLm5vLXRpdGxlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNzBweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuc2VjdGlvbi5jb250ZW50LXByb2plY3Qge1xuICAuY29udGVudC1pbnRybyB7XG4gICAgdWwge1xuICAgICAgbGkge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi50YWJsZSB7XG4gIHRkLCB0aCB7XG4gICAgcGFkZGluZzogMC41ZW0gMWVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJvZHlDb2xvcik7XG4gICAgY29sb3I6IHZhcigtLWdyZXkpO1xuXG4gICAgPiBwIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxuXG4gIHRoIHtcbiAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwLjVlbTtcbiAgfVxuXG4gIHRib2R5IHtcbiAgICB0ciB7XG4gICAgICAmOm50aC1vZi10eXBlKG9kZCkge1xuICAgICAgICA+ICoge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRhYmxlLXN0cmlwcGVkLWNvbG9yKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10YWJsZS1zdHJpcHBlZC1jb2xvci1ob3Zlcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6bnRoLW9mLXR5cGUoZXZlbikge1xuICAgICAgICA+ICoge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJvZHlDb2xvcik7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdGFibGUtY29sb3ItaG92ZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuXG4gICAgdGQge1xuICAgICAgLmxlYXJuLW1vcmUge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5oZXJvIHtcbiAgbWFyZ2luLXRvcDogOCU7XG5cbiAgLmhlYWRpbmctMSB7XG4gICAgZm9udC1zaXplOiA2NHB4O1xuICB9XG5cbiAgLmNvbnRhaW5lciA+ICoge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA5OTBweCkge1xuICAgIC5oZWFkaW5nLTEge1xuICAgICAgZm9udC1zaXplOiA1NnB4O1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAgICYubm8tdGl0bGUge1xuICAgICAgbWFyZ2luLXRvcDogNzBweDtcbiAgICB9XG5cbiAgICAuaGVhZGluZy0xIHtcbiAgICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICB9XG4gIH1cblxuICAuYmx1cnkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMTAlO1xuICAgIHRvcDogLTYwJTtcbiAgICB3aWR0aDogOTUwcHg7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICB9XG59XG5cbi8qPT09PT09PT09PT09PT0gU3RhcnQgY29udGFjdCBzZWN0aW9uID09PT09PT09PT0qL1xuLmNvbnRhY3Qge1xuICAuYmx1cnktMSB7XG4gICAgdG9wOiAtNDAwcHg7XG4gICAgbGVmdDogLTYwMHB4O1xuICB9XG5cbiAgLmJsdXJ5LTIge1xuICAgIHRvcDogLTQwMHB4O1xuICAgIHJpZ2h0OiAtNjAwcHg7XG4gIH1cblxuICBoMyA+IGEge1xuICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIH1cblxuICAuY29udGFjdC1tYXAge1xuICAgIGhlaWdodDogMzIwcHg7XG4gIH1cblxuICBAbWVkaWEgKG1heC13aWR0aDogOTkwcHgpIHtcbiAgICAuY29udGFjdC1tYXAge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cbiAgfVxufVxuXG4udG9hc3Qtc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDEgIWltcG9ydGFudDtcbn1cblxuLnRvYXN0LWVycm9yIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhiMDUwMCAhaW1wb3J0YW50O1xuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG59XG5cbi50b2FzdCB7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMpICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gIGZvbnQtZmFtaWx5OiBcIlN5bmVcIiwgc2Fucy1zZXJpZjtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICB6LWluZGV4OiA5MDA7XG59XG5cbi8qPT09PT09PT09PT09PT0gRW5kIGNvbnRhY3Qgc2VjdGlvbiA9PT09PT09PT09Ki8iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIElkZW50aXR5IFN0b3JlIOKAlCBob21lcGFnZSBtb3Rpb24gJiBzZWN0aW9uIHN0eWxlc1xuICAgQnVpbHQgb24gdGhlIGV4aXN0aW5nIHRva2VucyBpbiBhcHAuY3NzOlxuICAgLS1ib2R5Q29sb3IgIzAwMCDCtyAtLXByaW1hcnktY29sb3IgIzAyZjI5MSDCtyAtLWdyZXkgI2FiYWJhYlxuICAgLS1kYXJrLWdyZXkgIzQzNGU0OSDCtyAtLWJveC1jb2xvciAjMDAwNDAzXG4gICBDb3JuZXIgcmFkaWkgY29tZSBmcm9tIHRoZSAtLXJhZGl1cy0qIHNjYWxlIGRlZmluZWQgaW4gaGVyby5zY3NzLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIC0tLS0tLS0tLS0gMS4gU2Nyb2xsIHJldmVhbCAodGhlIGJhY2tib25lKSAtLS0tLS0tLS0tICovXG5bZGF0YS1yZXZlYWxdIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjhweCwgMCk7XG4gICAgZmlsdGVyOiBibHVyKDZweCk7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgICAgb3BhY2l0eSAwLjdzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpLFxuICAgICAgICB0cmFuc2Zvcm0gMC43cyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKSxcbiAgICAgICAgZmlsdGVyIDAuN3MgY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSk7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tcmV2ZWFsLWRlbGF5LCAwbXMpO1xuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCB0cmFuc2Zvcm07XG59XG5cbltkYXRhLXJldmVhbF0uaXMtdmlzaWJsZSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIGZpbHRlcjogYmx1cigwKTtcbn1cblxuLyogLS0tLS0tLS0tLSAyLiBIZWFkbGluZSB3b3JkLWJ5LXdvcmQgLS0tLS0tLS0tLSAqL1xuLmlzbWQtd29yZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLjZlbSwgMCkgcm90YXRlKDNkZWcpO1xuICAgIHRyYW5zaXRpb246XG4gICAgICAgIG9wYWNpdHkgMC42cyBlYXNlLFxuICAgICAgICB0cmFuc2Zvcm0gMC42cyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS13b3JkLWRlbGF5LCAwbXMpO1xufVxuXG4uaXMtdmlzaWJsZSAuaXNtZC13b3JkLFxuLmlzbWQtc3BsaXQuaXMtdmlzaWJsZSAuaXNtZC13b3JkIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgcm90YXRlKDApO1xufVxuXG4vKiAtLS0tLS0tLS0tIDMuIFNoYXJlZCBzZWN0aW9uIGZ1cm5pdHVyZSAtLS0tLS0tLS0tICovXG4uaXNtZC1zZWN0aW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogOTZweCAwO1xufVxuXG4uaXNtZC1oZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNHB4O1xuICAgIG1heC13aWR0aDogNzYwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNDhweDtcbn1cblxuLmlzbWQtaGVhZC0tY2VudGVyIHtcbiAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4uaXNtZC1leWVicm93IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOXB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4xOGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5pc21kLWV5ZWJyb3dfX2RvdCB7XG4gICAgd2lkdGg6IDdweDtcbiAgICBoZWlnaHQ6IDdweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYW5pbWF0aW9uOiBpc21kLXB1bHNlLWRvdCAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyBpc21kLXB1bHNlLWRvdCB7XG4gICAgMCUsIDEwMCUgeyBvcGFjaXR5OiAxOyBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoOTQsIDIxMCwgMTU2LCAwLjYpOyB9XG4gICAgNTAlIHsgb3BhY2l0eTogMC42OyBib3gtc2hhZG93OiAwIDAgMCA5cHggcmdiYSg5NCwgMjEwLCAxNTYsIDApOyB9XG59XG5cbi5pc21kLWNlbnRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiA0NHB4O1xufVxuXG4vKiAtLS0tLS0tLS0tIDQuIEhlcm8gLS0tLS0tLS0tLSAqL1xuLmlzbWQtaGVybyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5pc21kLWhlcm9fX2dsb3cge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0zMCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiA5MDBweDtcbiAgICBoZWlnaHQ6IDkwMHB4O1xuICAgIG1heC13aWR0aDogMTQwdnc7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoOTQsIDIxMCwgMTU2LCAwLjE2KSAwJSwgcmdiYSg5NCwgMjEwLCAxNTYsIDApIDYyJSk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgYW5pbWF0aW9uOiBpc21kLWJyZWF0aGUgOXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgaXNtZC1icmVhdGhlIHtcbiAgICAwJSwgMTAwJSB7IG9wYWNpdHk6IDAuNzU7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSBzY2FsZSgxKTsgfVxuICAgIDUwJSB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSBzY2FsZSgxLjEyKTsgfVxufVxuXG4uaXNtZC1jdGEtcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDE2cHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG59XG5cbi5pc21kLWJ0biB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXBpbGwpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKSwgYm94LXNoYWRvdyAwLjI1cyBlYXNlO1xufVxuXG4uaXNtZC1idG4gaSB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSk7XG59XG5cbi5pc21kLWJ0bjpob3ZlciBpIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNXB4KTtcbn1cblxuLmlzbWQtYnRuOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDExMGRlZywgdHJhbnNwYXJlbnQgMjAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDUpIDUwJSwgdHJhbnNwYXJlbnQgODAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEyMCUpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjdzIGVhc2U7XG59XG5cbi5pc21kLWJ0bjpob3Zlcjo6YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMjAlKTtcbn1cblxuLmlzbWQtYnRuLWdob3N0IHtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCk7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxNHB4IDI2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGFyay1ncmV5KTtcbiAgICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4zcyBlYXNlLCBjb2xvciAwLjNzIGVhc2UsIHRyYW5zZm9ybSAwLjI1cyBlYXNlO1xufVxuXG4uaXNtZC1idG4tZ2hvc3Q6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG4gICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xufVxuXG4uaXNtZC1oZXJvX19tZWRpYSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA5MDBweDtcbiAgICBtYXJnaW4tdG9wOiAyNHB4O1xufVxuXG4uaXNtZC1oZXJvX19mcmFtZSxcbi5pc21kLWZyYW1lIHtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kYXJrLWdyZXkpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJveC1jb2xvcik7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjRzIGVhc2UsIGJveC1zaGFkb3cgMC40cyBlYXNlO1xufVxuXG4uaXNtZC1oZXJvX19mcmFtZTpob3Zlcixcbi5pc21kLWZyYW1lOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuICAgIGJveC1zaGFkb3c6IDAgMCA0NHB4IHJnYmEoOTQsIDIxMCwgMTU2LCAwLjE4KTtcbn1cblxuLmlzbWQtaGVyb19fZnJhbWUgaW1nLFxuLmlzbWQtZnJhbWUgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG59XG5cbi5pc21kLWZyYW1lX19wbGFjZWhvbGRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1pbi1oZWlnaHQ6IDI4MHB4O1xuICAgIGNvbG9yOiB2YXIoLS1kYXJrLWdyZXkpO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmlzbWQtZnJhbWVfX3BsYWNlaG9sZGVyIGkge1xuICAgIGZvbnQtc2l6ZTogMzRweDtcbiAgICBhbmltYXRpb246IGlzbWQtZmxvYXQgNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgaXNtZC1mbG9hdCB7XG4gICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbiAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTlweCk7IH1cbn1cblxuLmlzbWQtaGVyb19fbGl2ZSB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXBpbGwpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDE0cHg7XG4gICAgcmlnaHQ6IDE0cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDdweDtcbiAgICBwYWRkaW5nOiA1cHggMTFweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNzIpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXByaW1hcnktY29sb3IpO1xuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMTRlbTtcbn1cblxuLmlzbWQtcHVsc2Uge1xuICAgIHdpZHRoOiA2cHg7XG4gICAgaGVpZ2h0OiA2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktY29sb3IpO1xuICAgIGFuaW1hdGlvbjogaXNtZC1wdWxzZS1kb3QgMS42cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLmlzbWQtc2Nyb2xsLWhpbnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDI2cHg7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGFyay1ncmV5KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nLXRvcDogN3B4O1xufVxuXG4uaXNtZC1zY3JvbGwtaGludCBzcGFuIHtcbiAgICB3aWR0aDogM3B4O1xuICAgIGhlaWdodDogN3B4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktY29sb3IpO1xuICAgIGFuaW1hdGlvbjogaXNtZC1zY3JvbGwtaGludCAxLjlzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIGlzbWQtc2Nyb2xsLWhpbnQge1xuICAgIDAlIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XG4gICAgMzUlIHsgb3BhY2l0eTogMTsgfVxuICAgIDEwMCUgeyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTNweCk7IH1cbn1cblxuLyogLS0tLS0tLS0tLSA1LiBDb3VudGVycyAtLS0tLS0tLS0tICovXG4uaXNtZC1jb3VudGVyc19fZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICAvKiA0IGNvdW50ZXJzOiBvbmUgY2xlYW4gcm93ICovXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcbiAgICBnYXA6IDE0cHg7XG59XG5cbi5pc21kLWNvdW50ZXIge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJveC1jb2xvcik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGFyay1ncmV5KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpO1xuICAgIHBhZGRpbmc6IDM0cHggMjZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjM1cyBlYXNlLCBib3JkZXItY29sb3IgMC4zNXMgZWFzZTtcbn1cblxuLmlzbWQtY291bnRlcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYm9keUNvbG9yKTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xufVxuXG4uaXNtZC1jb3VudGVyIGgyIHtcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG59XG5cbi8qIC0tLS0tLS0tLS0gNi4gU3BsaXQgbGF5b3V0cyAtLS0tLS0tLS0tICovXG4uaXNtZC1zcGxpdC1sYXlvdXQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMjBweCwgMWZyKSk7XG4gICAgZ2FwOiA1NnB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5pc21kLXNwbGl0LWxheW91dC0tcmV2ZXJzZSAuaXNtZC1zcGxpdC1sYXlvdXRfX21lZGlhIHtcbiAgICBvcmRlcjogLTE7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5pc21kLXNwbGl0LWxheW91dC0tcmV2ZXJzZSAuaXNtZC1zcGxpdC1sYXlvdXRfX21lZGlhIHtcbiAgICAgICAgb3JkZXI6IDA7XG4gICAgfVxufVxuXG4uaXNtZC1zcGxpdC1sYXlvdXRfX3RleHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE4cHg7XG59XG5cbi5pc21kLXRpY2tzIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiA4cHggMCAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG59XG5cbi5pc21kLXRpY2tzIGxpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogMTJweDtcbiAgICBjb2xvcjogdmFyKC0tZ3JleSk7XG59XG5cbi5pc21kLXRpY2tzIGkge1xuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi8qIC0tLS0tLS0tLS0gNy4gQ292ZXJhZ2UgLS0tLS0tLS0tLSAqL1xuLmlzbWQtbWFwLXdyYXAge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGFyay1ncmV5KTtcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5pc21kLW1hcCB7XG4gICAgaGVpZ2h0OiA0NDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAjMmEyZjJlO1xufVxuXG4vKiBUaGUgZmlsdGVyIGJlbG9uZ3Mgb24gdGhlIHRpbGUgcGFuZSwgTk9UIG9uIC5pc21kLW1hcC4gQSBmaWx0ZXIgb24gdGhlIG1hcFxuICAgY29udGFpbmVyIGFwcGxpZXMgdG8gZXZlcnl0aGluZyBpbnNpZGUgaXQsIHBpbnMgaW5jbHVkZWQgLS0gd2hpY2ggaXMgd2h5IHRoZVxuICAgbWFya2VycyBjYW1lIG91dCBncmV5IG9uIGEgZ3JleSBtYXAgaG93ZXZlciBicmlnaHQgdGhlaXIgY29sb3VyIHdhcy5cbiAgIFNjb3BpbmcgaXQgdG8gdGhlIHRpbGVzIGxlYXZlcyB0aGUgcGlucywgcG9wdXBzIGFuZCBjb250cm9scyB1bnRvdWNoZWQuXG5cbiAgIGludmVydCgpIGFsb25lIGxhbmRzIGFsbW9zdCBibGFjazsgdGhlIGJyaWdodG5lc3MgbGlmdCBhZnRlcndhcmRzIHB1bGxzIHRoZVxuICAgcmVzdWx0IGJhY2sgdG8gYSBtaWQgZ3JleSBzbyBzdHJlZXRzIGFuZCBsYWJlbHMgc3RheSByZWFkYWJsZS4gKi9cbi5pc21kLW1hcCAubGVhZmxldC10aWxlLXBhbmUge1xuICAgIGZpbHRlcjogZ3JheXNjYWxlKDAuOTIpIGludmVydCgwLjkpIGJyaWdodG5lc3MoMS4yMikgY29udHJhc3QoMC43Mik7XG59XG5cbi5pc21kLXNlY3RvcnMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgLyogNiBzZWN0b3JzOiAzICsgMyAqL1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgZ2FwOiAyMnB4O1xufVxuXG4uaXNtZC1zZWN0b3Ige1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJveC1jb2xvcik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGFyay1ncmV5KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpO1xuICAgIHBhZGRpbmc6IDIwcHggMjJweDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4zNXMgZWFzZTtcbn1cblxuLmlzbWQtc2VjdG9yOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xufVxuXG4uaXNtZC1zZWN0b3JfX3RvcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIG1hcmdpbi1ib3R0b206IDExcHg7XG59XG5cbi5pc21kLXNlY3Rvcl9fbmFtZSB7XG4gICAgY29sb3I6IHZhcigtLXdoaXRlKTtcbn1cblxuLmlzbWQtc2VjdG9yX19jb3VudCB7XG4gICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG59XG5cbi5pc21kLXNlY3Rvcl9fYmFyIHtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCk7XG4gICAgaGVpZ2h0OiAzcHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZGFyay1ncmV5KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uaXNtZC1zZWN0b3JfX2ZpbGwge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1waWxsKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDA7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMS4xcyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKSAwLjE1cztcbn1cblxuLmlzbWQtc2VjdG9yX19maWxsLmlzLWZpbGxlZCB7XG4gICAgd2lkdGg6IHZhcigtLWJhci13aWR0aCwgMCUpO1xufVxuXG4vKiBtYXAgcGlucywgcmVuZGVyZWQgYnkgYW5pbWF0aW9ucy5qcyBhcyBMZWFmbGV0IGRpdkljb25zLiBObyBvdXRsaW5lOiB0aGUgZHJvcFxuICAgc2hhZG93IGFsb25lIGxpZnRzIHRoZSBkb3Qgb2ZmIHRoZSB0aWxlcy4gKi9cbi5pc21kLXBpbl9fZG90IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktY29sb3IpO1xuICAgIGJveC1zaGFkb3c6XG4gICAgICAgIDAgMCAwIDAgcmdiYSgyLCAyNDIsIDE0NSwgMC42KSxcbiAgICAgICAgMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC40NSk7XG4gICAgYW5pbWF0aW9uOiBpc21kLXBpbi1wdWxzZSAyLjJzIGVhc2Utb3V0IGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIGlzbWQtcGluLXB1bHNlIHtcbiAgICAwJSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgyLCAyNDIsIDE0NSwgMC42KSwgMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC41NSk7XG4gICAgfVxuICAgIDcwJSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDE0cHggcmdiYSgyLCAyNDIsIDE0NSwgMCksIDAgMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuNTUpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDIsIDI0MiwgMTQ1LCAwKSwgMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC41NSk7XG4gICAgfVxufVxuXG4vKiBQb3B1cHMgdXNlZCB0byBiZSBpbnZlcnRlZCBhbG9uZyB3aXRoIGV2ZXJ5dGhpbmcgZWxzZTsgbm93IHRoYXQgdGhlIGZpbHRlciBpc1xuICAgc2NvcGVkIHRvIHRoZSB0aWxlcyB0aGV5IHJlbmRlciBpbiB0aGVpciBvd24gY29sb3Vycywgc28gZ2l2ZSB0aGVtIHRoZSBzaXRlJ3MuICovXG4uaXNtZC1tYXAgLmxlYWZsZXQtcG9wdXAtY29udGVudC13cmFwcGVyLFxuLmlzbWQtbWFwIC5sZWFmbGV0LXBvcHVwLXRpcCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYm94LWNvbG9yKTtcbiAgICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRhcmstZ3JleSk7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLCAwLCAwLCAwLjQ1KTtcbn1cblxuLmlzbWQtbWFwIC5sZWFmbGV0LXBvcHVwLWNvbnRlbnQge1xuICAgIG1hcmdpbjogMTFweCAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi5pc21kLW1hcCAubGVhZmxldC1wb3B1cC1jbG9zZS1idXR0b24ge1xuICAgIGNvbG9yOiB2YXIoLS1ncmV5KTtcbn1cblxuLmlzbWQtbWFwIC5sZWFmbGV0LWNvbnRyb2wtem9vbSBhIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ib3gtY29sb3IpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGFyay1ncmV5KTtcbiAgICBjb2xvcjogdmFyKC0td2hpdGUpO1xufVxuXG4uaXNtZC1tYXAgLmxlYWZsZXQtY29udHJvbC16b29tIGE6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAuaXNtZC1waW5fX2RvdCB7XG4gICAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0gOC4gV2hhdCBwbGF5cyBvbiBzY3JlZW4gLS0tLS0tLS0tLSAqL1xuLmlzbWQtcm90YXRpb24ge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgLyogNCByb3RhdGlvbiBpdGVtczogb25lIGNsZWFuIHJvdyAqL1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XG4gICAgZ2FwOiAxNHB4O1xufVxuXG4uaXNtZC1yb3RhdGlvbl9faXRlbSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJveC1jb2xvcik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGFyay1ncmV5KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpO1xuICAgIHBhZGRpbmc6IDMwcHggMjRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zNXMgZWFzZSwgYm9yZGVyLWNvbG9yIDAuMzVzIGVhc2U7XG59XG5cbi5pc21kLXJvdGF0aW9uX19pdGVtOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ib2R5Q29sb3IpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG59XG5cbi5pc21kLXJvdGF0aW9uX19pdGVtID4gaSB7XG4gICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuICAgIGZvbnQtc2l6ZTogMjFweDtcbn1cblxuLmlzbWQtcm90YXRpb25fX2lkeCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTZweDtcbiAgICByaWdodDogMjBweDtcbiAgICBjb2xvcjogdmFyKC0tZGFyay1ncmV5KTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xufVxuXG4vKiAtLS0tLS0tLS0tIDkuIE9wdGlvbiBjYXJkcyAtLS0tLS0tLS0tICovXG4uaXNtZC1jYXJkcyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICAvKiA2IG9wdGlvbnM6IDMgKyAzICovXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICBnYXA6IDIwcHg7XG59XG5cbi5pc21kLWNhcmQge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJveC1jb2xvcik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGFyay1ncmV5KTtcbiAgICBwYWRkaW5nOiAzMHB4IDI2cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMzVzIGVhc2UsIHRyYW5zZm9ybSAwLjM1cyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKTtcbn1cblxuLmlzbWQtY2FyZDpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcbn1cblxuLmlzbWQtY2FyZCA+IGkge1xuICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSk7XG59XG5cbi5pc21kLWNhcmQ6aG92ZXIgPiBpIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMTgpIHJvdGF0ZSgtN2RlZyk7XG59XG5cbi8qIGN1cnNvci1mb2xsb3dpbmcgZ2xvdywgcG9zaXRpb25lZCBieSBKUyB2aWEgLS1teC8tLW15ICovXG4uaXNtZC1jYXJkX19nbG93IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDI4MHB4O1xuICAgIGhlaWdodDogMjgwcHg7XG4gICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgcmdiYSg5NCwgMjEwLCAxNTYsIDAuMTQpIDAlLCByZ2JhKDk0LCAyMTAsIDE1NiwgMCkgNjglKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKGNhbGModmFyKC0tbXgsIDUwJSkgLSAxNDBweCksIGNhbGModmFyKC0tbXksIDUwJSkgLSAxNDBweCksIDApO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjM1cyBlYXNlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uaXNtZC1jYXJkOmhvdmVyIC5pc21kLWNhcmRfX2dsb3cge1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi8qIC0tLS0tLS0tLS0gMTAuIFFSIGRlbW8gLS0tLS0tLS0tLSAqL1xuLmlzbWQtcXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRhcmstZ3JleSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYm94LWNvbG9yKTtcbiAgICBwYWRkaW5nOiAzMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDIycHg7XG4gICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbn1cblxuLmlzbWQtcXJfX2dyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoOCwgMWZyKTtcbiAgICBnYXA6IDVweDtcbiAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgbWF4LXdpZHRoOiAyNjBweDtcbiAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xufVxuXG4uaXNtZC1xcl9fZ3JpZCBzcGFuIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXJrLWdyZXkpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjQpO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLCB0cmFuc2Zvcm0gMC40cyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKSwgYmFja2dyb3VuZCAwLjRzIGVhc2U7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogdmFyKC0tZCwgMG1zKTtcbn1cblxuLmlzLXZpc2libGUgLmlzbWQtcXJfX2dyaWQgc3Bhbixcbi5pc21kLXFyLmlzLXZpc2libGUgLmlzbWQtcXJfX2dyaWQgc3BhbiB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xufVxuXG4uaXNtZC1xcl9fZ3JpZCBzcGFuOm50aC1jaGlsZCgzbikge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktY29sb3IpO1xufVxuXG4uaXNtZC1xcl9fbWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOXB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogdmFyKC0tZ3JleSk7XG59XG5cbi5pc21kLXFyX19tZXRhIGkge1xuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcbiAgICB3aWR0aDogMTdweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbn1cblxuLyogLS0tLS0tLS0tLSAxMS4gU3BlYyB0YWJsZSAtLS0tLS0tLS0tICovXG4uaXNtZC10YWJsZS13cmFwIHtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpO1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGFyay1ncmV5KTtcbn1cblxuLmlzbWQtdGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgbWluLXdpZHRoOiA1NjBweDtcbn1cblxuLmlzbWQtdGFibGUgdGgsXG4uaXNtZC10YWJsZSB0ZCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nOiAxNXB4IDIwcHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRhcmstZ3JleSk7XG4gICAgY29sb3I6IHZhcigtLWdyZXkpO1xufVxuXG4uaXNtZC10YWJsZSB0aCB7XG4gICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4xNGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5pc21kLXRhYmxlIHRkOmZpcnN0LWNoaWxkIHtcbiAgICBjb2xvcjogdmFyKC0td2hpdGUpO1xufVxuXG4uaXNtZC10YWJsZSB0Ym9keSB0ciB7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGVhc2U7XG59XG5cbi5pc21kLXRhYmxlIHRib2R5IHRyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10YWJsZS1jb2xvci1ob3Zlcik7XG59XG5cbi5pc21kLXRhYmxlIHRib2R5IHRyOmxhc3QtY2hpbGQgdGQge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG5cbi8qIC0tLS0tLS0tLS0gMTIuIFBhY2thZ2VzIC0tLS0tLS0tLS0gKi9cbi5pc21kLXBhY2thZ2VzX19ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjEwcHgsIDFmcikpO1xuICAgIGdhcDogMjBweDtcbn1cblxuLmlzbWQtcGFja2FnZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGFyay1ncmV5KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ib3gtY29sb3IpO1xuICAgIHBhZGRpbmc6IDMycHggMjZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4zNXMgZWFzZSwgdHJhbnNmb3JtIDAuMzVzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpO1xufVxuXG4uaXNtZC1wYWNrYWdlOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xufVxuXG4uaXNtZC1wYWNrYWdlLS1mZWF0dXJlZCB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcbiAgICBib3gtc2hhZG93OiAwIDAgNDBweCByZ2JhKDk0LCAyMTAsIDE1NiwgMC4xMik7XG59XG5cbi5pc21kLXBhY2thZ2VfX3JhdGUge1xuICAgIG1hcmdpbjogMTRweCAwIDZweDtcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG4gICAgZm9udC1zaXplOiA0MnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC12YXJpYW50LW51bWVyaWM6IHRhYnVsYXItbnVtcztcbn1cblxuLmlzbWQtcGFja2FnZV9fcmF0ZSBzbWFsbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogN3B4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjFlbTtcbiAgICBjb2xvcjogdmFyKC0tZ3JleSk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLyogLS0tLS0tLS0tLSAxMy4gUGFydG5lciBtYXJxdWVlIC0tLS0tLS0tLS0gKi9cbi5pc21kLWxvZ29zIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNjJweDtcbn1cblxuLmlzbWQtbG9nb3MgaW1nIHtcbiAgICBoZWlnaHQ6IDQycHg7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxKSBicmlnaHRuZXNzKDEuOCk7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLCBmaWx0ZXIgMC4zcyBlYXNlO1xufVxuXG4uaXNtZC1sb2dvcyBpbWc6aG92ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgZmlsdGVyOiBncmF5c2NhbGUoMCkgYnJpZ2h0bmVzcygxKTtcbn1cblxuLyogLS0tLS0tLS0tLSAxNC4gQ2xvc2luZyBDVEEgLS0tLS0tLS0tLSAqL1xuLmlzbWQtY3RhX19ib3gge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXByaW1hcnktY29sb3IpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJveC1jb2xvcik7XG4gICAgcGFkZGluZzogNjJweCA0MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE4cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmlzbWQtY3RhX19zaGluZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMTVkZWcsIHRyYW5zcGFyZW50IDM1JSwgcmdiYSg5NCwgMjEwLCAxNTYsIDAuMTIpIDUwJSwgdHJhbnNwYXJlbnQgNjUlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICAgIGFuaW1hdGlvbjogaXNtZC1zaGluZSA2cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuQGtleWZyYW1lcyBpc21kLXNoaW5lIHtcbiAgICAwJSwgNjUlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgfVxuICAgIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cbn1cblxuLmlzbWQtY3RhX19waG9uZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogMjZweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uaXNtZC1jdGFfX3Bob25lcyBhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBjb2xvcjogdmFyKC0td2hpdGUpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlO1xufVxuXG4uaXNtZC1jdGFfX3Bob25lcyBhOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG59XG5cbi5pc21kLWN0YV9fcGhvbmVzIGkge1xuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcbn1cblxuLyogLS0tLS0tLS0tLSAxNS4gUmVkdWNlZCBtb3Rpb24g4oCUIHR1cm4gZXZlcnl0aGluZyBvZmYgLS0tLS0tLS0tLSAqL1xuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICBbZGF0YS1yZXZlYWxdLFxuICAgIFtkYXRhLXJldmVhbF0uaXMtdmlzaWJsZSxcbiAgICAuaXNtZC13b3JkLFxuICAgIC5pc21kLXFyX19ncmlkIHNwYW4ge1xuICAgICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBmaWx0ZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5pc21kLXNlY3Rvcl9fZmlsbCB7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1iYXItd2lkdGgsIDAlKTtcbiAgICB9XG5cbiAgICAuaXNtZC1oZXJvX19nbG93LFxuICAgIC5pc21kLWV5ZWJyb3dfX2RvdCxcbiAgICAuaXNtZC1wdWxzZSxcbiAgICAuaXNtZC1zY3JvbGwtaGludCBzcGFuLFxuICAgIC5pc21kLWN0YV9fc2hpbmUsXG4gICAgLmlzbWQtZnJhbWVfX3BsYWNlaG9sZGVyIGkge1xuICAgICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLmlzbWQtYnRuOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4vKiAtLS0tLS0tLS0tIDE2LiBPZmZlciByZXF1ZXN0IGZvcm0gLS0tLS0tLS0tLSAqL1xuLmlzbWQtZm9ybSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA2ODBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxOHB4O1xuICAgIG1hcmdpbi10b3A6IDI2cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmlzbWQtZm9ybV9fcm93IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjIwcHgsIDFmcikpO1xuICAgIGdhcDogMThweDtcbn1cblxuLmlzbWQtZmllbGQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDdweDtcbn1cblxuLmlzbWQtZmllbGQgPiBzcGFuIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMTJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiB2YXIoLS1ncmV5KTtcbn1cblxuLmlzbWQtZmllbGQgPiBzcGFuIGVtIHtcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4uaXNtZC1maWVsZCBpbnB1dCxcbi5pc21kLWZpZWxkIHRleHRhcmVhIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pO1xuICAgIHBhZGRpbmc6IDEzcHggMTVweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ib2R5Q29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRhcmstZ3JleSk7XG4gICAgY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgICBmb250OiBpbmhlcml0O1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4yNXMgZWFzZSwgYm94LXNoYWRvdyAwLjI1cyBlYXNlO1xufVxuXG4uaXNtZC1maWVsZCB0ZXh0YXJlYSB7XG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgICBtaW4taGVpZ2h0OiA5MnB4O1xufVxuXG4uaXNtZC1maWVsZCBpbnB1dDo6cGxhY2Vob2xkZXIsXG4uaXNtZC1maWVsZCB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiB2YXIoLS1kYXJrLWdyZXkpO1xufVxuXG4uaXNtZC1maWVsZCBpbnB1dDpmb2N1cyxcbi5pc21kLWZpZWxkIHRleHRhcmVhOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoOTQsIDIxMCwgMTU2LCAwLjE2KTtcbn1cblxuLmlzbWQtZmllbGQgaW5wdXQuaXMtaW52YWxpZCxcbi5pc21kLWZpZWxkIHRleHRhcmVhLmlzLWludmFsaWQge1xuICAgIGJvcmRlci1jb2xvcjogI2ZmNWM1YztcbiAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgyNTUsIDkyLCA5MiwgMC4xNik7XG59XG5cbi5pc21kLWZvcm0gLmlzbWQtYnRuIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xufVxuXG4uaXNtZC1mb3JtIGJ1dHRvbltkaXNhYmxlZF0ge1xuICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgY3Vyc29yOiBwcm9ncmVzcztcbn1cblxuLyogaG9uZXlwb3Qg4oCUIG9mZi1zY3JlZW4gZm9yIHBlb3BsZSwgc3RpbGwgZmlsbGFibGUgYnkgYm90cyAqL1xuLmlzbWQtaHAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAtOTk5OXB4O1xuICAgIHdpZHRoOiAxcHg7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbiIsIi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSWRlbnRpdHkgU3RvcmUg4oCUIGhlcm8gJiBuYXZpZ2F0aW9uXG4gICBEZXNpZ24gbGFuZ3VhZ2U6IGRlZXAgaW5rIGdyb3VuZCwgc2luZ2xlIGdyZWVuIGFjY2VudCwgdGhpblxuICAgcmh5dGhtIGxpbmVzLCBvbmUgZ2xhc3Mgb2JqZWN0LiBMb2FkZWQgYWZ0ZXIgYW5pbWF0aW9ucy5zY3NzXG4gICBzbyB0aGVzZSB0b2tlbnMgd2luLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbjpyb290IHtcbiAgICAvKiByZWZpbmVkIGZyb20gdGhlIHRoZW1lJ3MgIzAwMCAvICMwMmYyOTEgKi9cbiAgICAtLWJvZHlDb2xvcjogIzA3MGIwYTtcbiAgICAtLWJveC1jb2xvcjogIzBiMTAwZjtcbiAgICAtLXByaW1hcnktY29sb3I6ICM1ZWQyOWM7XG4gICAgLS1pbms6ICMwNzBiMGE7XG4gICAgLS1hY2NlbnQ6ICM1ZWQyOWM7XG5cbiAgICAvKiBvbmUgcmFkaXVzIHNjYWxlIGZvciB0aGUgd2hvbGUgc2l0ZTsgdGhlIHB1cmNoYXNlZCB0aGVtZSBzaGlwcGVkXG4gICAgICAgLS1ib3JkZXItcmFkaXVzOiAwLCB3aGljaCBpcyB3aHkgc29tZSBibG9ja3Mgd2VyZSBzcXVhcmUgYW5kIHRoZVxuICAgICAgIG5ld2VyIG9uZXMgcm91bmRlZCAqL1xuICAgIC0tcmFkaXVzLXNtOiA4cHg7XG4gICAgLS1yYWRpdXM6IDE0cHg7XG4gICAgLS1yYWRpdXMtbGc6IDIwcHg7XG4gICAgLS1yYWRpdXMtcGlsbDogOTk5cHg7XG4gICAgLS1ib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMpO1xuXG4gICAgLS1mb250LXVpOiBcIkludGVyXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgc2Fucy1zZXJpZjtcbiAgICAtLWZvbnQtZXllYnJvdzogXCJQbHVzIEpha2FydGEgU2Fuc1wiLCBcIkludGVyXCIsIHN5c3RlbS11aSwgc2Fucy1zZXJpZjtcbiAgICAtLWZvbnQtYWNjZW50OiBcIkluc3RydW1lbnQgU2VyaWZcIiwgR2VvcmdpYSwgc2VyaWY7XG59XG5cbmJvZHkuYm9keSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0taW5rKTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC11aSk7XG59XG5cbi8qIC0tLS0tLS0tLS0gbmF2aWdhdGlvbiAtLS0tLS0tLS0tICovXG4vKiBTdGlja3ksIGFuZCBmcm9zdGVkIG9uY2UgdGhlIHBhZ2UgaGFzIG1vdmVkLiBJdCBzdGFydHMgdHJhbnNwYXJlbnQgc28gdGhlIGhlcm9cbiAgIHZpZGVvIHJlYWRzIGZ1bGwtYmxlZWQsIHRoZW4gdGhlIGdsYXNzIGZhZGVzIGluIG9uIHNjcm9sbCAtLSBqcy9hbmltYXRpb25zLmpzXG4gICBhZGRzIC5pcy1zdHVjayBwYXN0IDQwcHguICovXG4uaXNtZC1uYXYge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB6LWluZGV4OiA0MDtcbiAgICBwYWRkaW5nOiAyNnB4IDA7XG4gICAgdHJhbnNpdGlvbjogcGFkZGluZyAwLjM1cyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMzVzIGVhc2UsXG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yIDAuMzVzIGVhc2UsIGJveC1zaGFkb3cgMC4zNXMgZWFzZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5pc21kLW5hdi5pcy1zdHVjayB7XG4gICAgcGFkZGluZzogMTRweCAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoOCwgMTQsIDEyLCAwLjYyKTtcbiAgICBib3JkZXItYm90dG9tLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDkpO1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAzNHB4IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTZweCkgc2F0dXJhdGUoMS41KTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTZweCkgc2F0dXJhdGUoMS41KTtcbn1cblxuLyogQSBoYWlybGluZSBvZiBicmFuZCBjb2xvdXIgYWxvbmcgdGhlIGJvdHRvbSBlZGdlLCBzbyB0aGUgYmFyIHJlYWRzIGFzIGEgcGFuZVxuICAgb2YgZ2xhc3MgcmF0aGVyIHRoYW4gYSBmbGF0IGRhcmsgc3RyaXAuICovXG4uaXNtZC1uYXYuaXMtc3R1Y2s6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogLTFweDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgIDkwZGVnLFxuICAgICAgICB0cmFuc3BhcmVudCxcbiAgICAgICAgcmdiYSgyLCAyNDIsIDE0NSwgMC40NSksXG4gICAgICAgIHRyYW5zcGFyZW50XG4gICAgKTtcbn1cblxuLyogV2l0aG91dCBiYWNrZHJvcC1maWx0ZXIgdGhlIHRyYW5zbHVjZW5jeSBqdXN0IGxvb2tzIG11ZGR5LCBzbyBnbyBvcGFxdWUuICovXG5Ac3VwcG9ydHMgbm90ICgoYmFja2Ryb3AtZmlsdGVyOiBibHVyKDFweCkpIG9yICgtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxcHgpKSkge1xuICAgIC5pc21kLW5hdi5pcy1zdHVjayB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoOCwgMTQsIDEyLCAwLjk0KTtcbiAgICB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLmlzbWQtbmF2IHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG59XG5cbi5pc21kLW5hdl9faW5uZXIge1xuICAgIHdpZHRoOiBtaW4oMTI0MHB4LCAxMDAlIC0gNDhweCk7XG4gICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMjRweDtcbn1cblxuLmlzbWQtbmF2X19sb2dvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTFweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi5pc21kLW5hdl9fbWFyayB7XG4gICAgd2lkdGg6IDE1cHg7XG4gICAgaGVpZ2h0OiAxNXB4O1xuICAgIGJvcmRlcjogMS41cHggc29saWQgI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uaXNtZC1uYXZfX21hcms6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMy41cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cbi5pc21kLW5hdl9fd29yZG1hcmsge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXVpKTtcbiAgICBmb250LXdlaWdodDogODAwO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4xNmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi5pc21kLW5hdl9fbGlua3Mge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgZ2FwOiAzNHB4O1xufVxuXG4uaXNtZC1uYXZfX2xpbmtzIGEge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXVpKTtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgyKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMjVzIGVhc2U7XG59XG5cbi5pc21kLW5hdl9fbGlua3MgYTpob3Zlcixcbi5pc21kLW5hdl9fbGlua3MgYVthcmlhLWN1cnJlbnQ9XCJwYWdlXCJdIHtcbiAgICBjb2xvcjogdmFyKC0tYWNjZW50KTtcbn1cblxuLmlzbWQtbmF2X19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNHB4O1xufVxuXG4uaXNtZC1uYXZfX2N0YSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwYWRkaW5nOiAxMHB4IDIycHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIyKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCk7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4yNXMgZWFzZSwgY29sb3IgMC4yNXMgZWFzZSwgYmFja2dyb3VuZCAwLjI1cyBlYXNlO1xufVxuXG4uaXNtZC1uYXZfX2N0YTpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpO1xuICAgIGNvbG9yOiB2YXIoLS1pbmspO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudCk7XG59XG5cbi8qIExhbmd1YWdlIHN3aXRjaGVyLiBVbmxpa2UgdGhlIENUQSBuZXh0IHRvIGl0LCB0aGlzIHN0YXlzIHZpc2libGUgYXQgZXZlcnlcbiAgIHdpZHRoOiBvbiBhIHBob25lIHRoZSBDVEEgY29sbGFwc2VzIGludG8gdGhlIGJ1cmdlciBtZW51LCBidXQgYSB2aXNpdG9yIHdob1xuICAgbGFuZGVkIG9uIHRoZSB3cm9uZyBsYW5ndWFnZSBuZWVkcyB0byBiZSBhYmxlIHRvIGxlYXZlIGl0IGltbWVkaWF0ZWx5LiAqL1xuLmlzbWQtbmF2X19sYW5ncyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDJweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE0cHg7XG59XG5cbi5pc21kLW5hdl9fbGFuZyB7XG4gICAgcGFkZGluZzogNnB4IDlweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCk7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYyKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4yNXMgZWFzZSwgYmFja2dyb3VuZCAwLjI1cyBlYXNlO1xufVxuXG4uaXNtZC1uYXZfX2xhbmc6aG92ZXIge1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4uaXNtZC1uYXZfX2xhbmcuaXMtY3VycmVudCB7XG4gICAgY29sb3I6IHZhcigtLWluayk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTtcbn1cblxuLmlzbWQtbmF2X19idXJnZXIge1xuICAgIHdpZHRoOiA0MnB4O1xuICAgIGhlaWdodDogNDJweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA1cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE4KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uaXNtZC1uYXZfX2J1cmdlciBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDEuNXB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG5cbi8qIC0tLS0tLS0tLS0gbW9iaWxlIG92ZXJsYXkgLS0tLS0tLS0tLSAqL1xuLmlzbWQtbW9iaWxlIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogNjA7XG4gICAgYmFja2dyb3VuZDogcmdiYSg3LCAxMSwgMTAsIDAuOTcpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlO1xufVxuXG4uaXNtZC1tb2JpbGVbaGlkZGVuXSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmlzbWQtbW9iaWxlLmlzLW9wZW4ge1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5pc21kLW1vYmlsZV9fY2xvc2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDI0cHg7XG4gICAgcmlnaHQ6IDMwcHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5pc21kLW1vYmlsZV9fbGlua3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMjZweDtcbn1cblxuLmlzbWQtbW9iaWxlX19saW5rcyBhIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC11aSk7XG4gICAgZm9udC1zaXplOiAyNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmlzbWQtbW9iaWxlX19saW5rcyBhOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tYWNjZW50KTtcbn1cblxuLmlzbWQtbW9iaWxlX19jdGEge1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgcGFkZGluZzogMTNweCAzMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1waWxsKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQpO1xuICAgIGNvbG9yOiB2YXIoLS1pbmspICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxNXB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qIC0tLS0tLS0tLS0gaGVybyBzaGVsbCAtLS0tLS0tLS0tICovXG4uaXNtZC1oZXJvIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLWhlaWdodDogMTAwc3ZoO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWluayk7XG4gICAgLyogdG9wIHBhZGRpbmcgc2l0cyB0aGUgYmxvY2sgc2xpZ2h0bHkgYmVsb3cgY2VudHJlLCBjbGVhciBvZiB0aGUgbmF2ICovXG4gICAgcGFkZGluZzogMjEwcHggMCA5MHB4O1xufVxuXG4uaXNtZC1oZXJvX19iZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5pc21kLWhlcm9fX3ZpZGVvIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIC8qIE9uIGEgd2lkZSBzY3JlZW4gYWxtb3N0IHRoZSB3aG9sZSAxNjo5IGZyYW1lIGlzIHZpc2libGUsIHNvIHRoZSBkZWZhdWx0XG4gICAgICAgY2VudHJlIGlzIHJpZ2h0LiBUaGUgbmFycm93IGJyZWFrcG9pbnRzIGJlbG93IHJlLWFpbSBpdC4gKi9cbiAgICBvYmplY3QtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgb3BhY2l0eTogMC42O1xufVxuXG4uaXNtZC1oZXJvX192ZWlsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG59XG5cbi5pc21kLWhlcm9fX3ZlaWwtLWxlZnQge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgIzA3MGIwYSAwJSwgcmdiYSg3LCAxMSwgMTAsIDAuNzIpIDM4JSwgcmdiYSg3LCAxMSwgMTAsIDApIDc4JSk7XG59XG5cbi5pc21kLWhlcm9fX3ZlaWwtLWJvdHRvbSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgIzA3MGIwYSAwJSwgcmdiYSg3LCAxMSwgMTAsIDAuNTUpIDI2JSwgcmdiYSg3LCAxMSwgMTAsIDApIDYyJSk7XG59XG5cbi5pc21kLWhlcm9fX2dsb3cge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC00MHB4O1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgd2lkdGg6IG1pbigxMjAwcHgsIDEzMCUpO1xuICAgIGhlaWdodDogNDIwcHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5pc21kLWhlcm9fX2dyaWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xufVxuXG4uaXNtZC1oZXJvX19ncmlkIHNwYW4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xufVxuXG4uaXNtZC1oZXJvX19pbm5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgd2lkdGg6IG1pbigxMjQwcHgsIDEwMCUgLSA0OHB4KTtcbiAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDIwcHg7XG59XG5cbi8qIC0tLS0tLS0tLS0gbGlxdWlkIGdsYXNzIGNhcmQgLS0tLS0tLS0tLSAqL1xuLmlzbWQtZ2xhc3Mge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgaGVpZ2h0OiAyMDBweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwcHgpO1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZ2FwOiA5cHg7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDEpO1xuICAgIGJhY2tncm91bmQtYmxlbmQtbW9kZTogbHVtaW5vc2l0eTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNHB4KTtcbiAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogc2hhcnAgMS40cHggZnJhbWUgZHJhd24gd2l0aCBhIG1hc2tlZCBncmFkaWVudCByaW5nICovXG4uaXNtZC1nbGFzczo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBwYWRkaW5nOiAxLjRweDtcbiAgICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSksIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNikpO1xuICAgIC13ZWJraXQtbWFzazogbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKSBjb250ZW50LWJveCwgbGluZWFyLWdyYWRpZW50KCNmZmYgMCAwKTtcbiAgICBtYXNrOiBsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApIGNvbnRlbnQtYm94LCBsaW5lYXItZ3JhZGllbnQoI2ZmZiAwIDApO1xuICAgIC13ZWJraXQtbWFzay1jb21wb3NpdGU6IHhvcjtcbiAgICBtYXNrLWNvbXBvc2l0ZTogZXhjbHVkZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmlzbWQtZ2xhc3NfX3RhZyB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdWkpO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzIpO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG59XG5cbi5pc21kLWdsYXNzX190aXRsZSB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdWkpO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIG1hcmdpbjogMDtcbn1cblxuLmlzbWQtZ2xhc3NfX3RpdGxlIGVtIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1hY2NlbnQpO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc2l6ZTogMjFweDtcbn1cblxuLmlzbWQtZ2xhc3NfX25vdGUge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXVpKTtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NSk7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4vKiAtLS0tLS0tLS0tIGhlcm8gdHlwZSAtLS0tLS0tLS0tICovXG4uaXNtZC1oZXJvX19leWVicm93IHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1leWVicm93KTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4yZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogdmFyKC0tYWNjZW50KTtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5pc21kLWhlcm9fX3RpdGxlIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC11aSk7XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBmb250LXNpemU6IGNsYW1wKDQwcHgsIDd2dywgNzJweCk7XG4gICAgbGluZS1oZWlnaHQ6IDEuMDI7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAzNWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbWFyZ2luOiAwO1xuICAgIG1heC13aWR0aDogMTVjaDtcbiAgICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG59XG5cbi5pc21kLWhlcm9fX2RvdCB7XG4gICAgY29sb3I6IHZhcigtLWFjY2VudCk7XG59XG5cbi5pc21kLWhlcm9fX2xlZGUge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXVpKTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjU7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiAgICBtYXgtd2lkdGg6IDUxMnB4O1xuICAgIG1hcmdpbjogMDtcbn1cblxuLmlzbWQtaGVyb19fYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE0cHg7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLmlzbWQtY3RhLXByaW1hcnkge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIHBhZGRpbmc6IDE1cHggMzBweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50KTtcbiAgICBjb2xvcjogdmFyKC0taW5rKTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC11aSk7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKSwgYm94LXNoYWRvdyAwLjI1cyBlYXNlO1xufVxuXG4uaXNtZC1jdGEtcHJpbWFyeTpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLWluayk7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDM0cHggcmdiYSg5NCwgMjEwLCAxNTYsIDAuMjgpO1xufVxuXG4uaXNtZC1jdGEtcHJpbWFyeSBpIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKTtcbn1cblxuLmlzbWQtY3RhLXByaW1hcnk6aG92ZXIgaSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDRweCk7XG59XG5cbi5pc21kLWN0YS1naG9zdCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxNXB4IDI2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXBpbGwpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg2KTtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC11aSk7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjI1cyBlYXNlLCBjb2xvciAwLjI1cyBlYXNlO1xufVxuXG4uaXNtZC1jdGEtZ2hvc3Q6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50KTtcbiAgICBjb2xvcjogdmFyKC0tYWNjZW50KTtcbn1cblxuLyogLS0tLS0tLS0tLSBicmVha3BvaW50cyAtLS0tLS0tLS0tICovXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgICAuaXNtZC1uYXZfX2xpbmtzLFxuICAgIC5pc21kLW5hdl9fY3RhIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgfVxuXG4gICAgLmlzbWQtbmF2X19idXJnZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5pc21kLWhlcm9fX2dyaWQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkge1xuICAgIC5pc21kLWdsYXNzIHtcbiAgICAgICAgd2lkdGg6IDE3MnB4O1xuICAgICAgICBoZWlnaHQ6IDE3MnB4O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI2cHgpO1xuICAgIH1cbn1cblxuLyogVGhlIHN1YmplY3Qgb2YgdGhlIHNob3QgLS0gdGhlIHBhbmVsIG9uIGl0cyBwb2xlIC0tIHNpdHMgYXQgcm91Z2hseSA3MiUgYWNyb3NzXG4gICB0aGUgZnJhbWUsIG5vdCBpbiB0aGUgbWlkZGxlLiBgb2JqZWN0LWZpdDogY292ZXJgIG9uIGEgcG9ydHJhaXQgc2NyZWVuIGNyb3BzXG4gICB0aGUgc2lkZXMgaGFyZDogYSAzOTB4ODQ0IHBob25lIHNob3dzIG9ubHkgYWJvdXQgYSBxdWFydGVyIG9mIHRoZSB2aWRlbydzXG4gICB3aWR0aCwgYW5kIGNlbnRyZWQgb24gNTAlIHRoYXQgcXVhcnRlciBpcyB0aGUgZW1wdHkgcGF2ZW1lbnQgb24gdGhlIGxlZnQgd2hpbGVcbiAgIHRoZSBwYW5lbCBpcyBjcm9wcGVkIGF3YXkgZW50aXJlbHkuXG5cbiAgIG9iamVjdC1wb3NpdGlvbiBwZXJjZW50YWdlcyBhcmUgbm90IFwic2hvdyB0aGlzIHBvaW50IGluIHRoZSBtaWRkbGVcIiAtLSB0aGV5XG4gICBzbGlkZSB0aGUgb3ZlcnNpemVkIGltYWdlIGFjcm9zcyB0aGUgYm94LCBzbyB0aGUgdmlzaWJsZSBjZW50cmUgd29ya3Mgb3V0IGFzXG4gICBYICogKDEgLSB2aXNpYmxlRnJhY3Rpb24pICsgdmlzaWJsZUZyYWN0aW9uIC8gMi4gU29sdmluZyB0aGF0IGZvciB0aGUgcGFuZWwgYXRcbiAgIDcyJSBnaXZlcyB0aGUgdmFsdWVzIGJlbG93LCB3aGljaCBpcyB3aHkgdGhleSBkaWZmZXIgcGVyIGJyZWFrcG9pbnQ6IHRoZVxuICAgbmFycm93ZXIgdGhlIHZpZXdwb3J0LCB0aGUgbGVzcyBvZiB0aGUgd2lkdGggc3Vydml2ZXMgdGhlIGNyb3AuICovXG4vKiBOYXJyb3cgc2NyZWVucyBzZWUgc28gbGl0dGxlIG9mIHRoZSBmcmFtZSB0aGF0IGEgc2xvdyBwYW4gaXMgd29ydGggaGF2aW5nOiBpdFxuICAgd2Fsa3MgbGVmdCB0byB0aGUgc2hlbHRlciBhbmQgdGhlIHBlb3BsZSB3YWl0aW5nLCB0aGVuIGJhY2sgdG8gcmVzdCBvbiB0aGVcbiAgIHBhbmVsLiBUaGUgdHdvIGVuZHMgYXJlIGN1c3RvbSBwcm9wZXJ0aWVzIHNvIG9uZSBrZXlmcmFtZSBydWxlIHNlcnZlcyBib3RoXG4gICBicmVha3BvaW50cyAtLSB0aGV5IHJlc29sdmUgcGVyIGVsZW1lbnQgYW5kIGRvIG5vdCBjaGFuZ2UgbWlkLWFuaW1hdGlvbiwgc29cbiAgIHRoZSBpbnRlcnBvbGF0aW9uIGJldHdlZW4gdGhlbSBiZWhhdmVzIGxpa2Ugb3JkaW5hcnkgdmFsdWVzLlxuXG4gICBUaGlzIGFuaW1hdGVzIG9iamVjdC1wb3NpdGlvbiwgd2hpY2ggcmVwYWludHMgcmF0aGVyIHRoYW4gY29tcG9zaXRpbmcuIFRoYXQgaXNcbiAgIHRoZSBob25lc3QgY29zdCBvZiBwYW5uaW5nIHRoZSAqY29udGVudCogb2YgYSBjb3Zlci1maXR0ZWQgdmlkZW86IGEgdHJhbnNmb3JtXG4gICB3b3VsZCBtb3ZlIHRoZSBlbGVtZW50IGJveCBhbmQgcmV2ZWFsIG5vdGhpbmcgbmV3LiBPbmUgZWxlbWVudCBhdCAyNHMgbWFrZXMgaXRcbiAgIGEgbm9uLWlzc3VlIGluIHByYWN0aWNlLiAqL1xuQGtleWZyYW1lcyBpc21kLWhlcm8tcGFuIHtcbiAgICAwJSwgNiUge1xuICAgICAgICBvYmplY3QtcG9zaXRpb246IHZhcigtLWhlcm8tcGFuLXJlc3QpIDUwJTtcbiAgICB9XG5cbiAgICA1MCUsIDU2JSB7XG4gICAgICAgIG9iamVjdC1wb3NpdGlvbjogdmFyKC0taGVyby1wYW4tZmFyKSA1MCU7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9iamVjdC1wb3NpdGlvbjogdmFyKC0taGVyby1wYW4tcmVzdCkgNTAlO1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDEwOTlweCkge1xuICAgIC5pc21kLWhlcm9fX3ZpZGVvIHtcbiAgICAgICAgLS1oZXJvLXBhbi1yZXN0OiA4NSU7XG4gICAgICAgIC0taGVyby1wYW4tZmFyOiAzMiU7XG4gICAgICAgIG9iamVjdC1wb3NpdGlvbjogdmFyKC0taGVyby1wYW4tcmVzdCkgNTAlO1xuICAgICAgICBhbmltYXRpb246IGlzbWQtaGVyby1wYW4gMjRzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDcxOXB4KSB7XG4gICAgLmlzbWQtaGVyb19fdmlkZW8ge1xuICAgICAgICAtLWhlcm8tcGFuLXJlc3Q6IDc5JTtcbiAgICAgICAgLS1oZXJvLXBhbi1mYXI6IDI2JTtcbiAgICB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLmlzbWQtaGVyb19fdmlkZW8ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBhbmltYXRpb246IG5vbmU7XG4gICAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEdsb2JhbCB0eXBvZ3JhcGh5IOKAlCBvbmUgcGFpciBmb3IgdGhlIHdob2xlIHNpdGUuXG4gICBJbnRlciBjYXJyaWVzIGV2ZXJ5dGhpbmc7IEluc3RydW1lbnQgU2VyaWYgaXRhbGljIGlzIHRoZSBhY2NlbnRcbiAgIGZhY2U7IFBsdXMgSmFrYXJ0YSBTYW5zIGlzIHJlc2VydmVkIGZvciBleWVicm93cy9sYWJlbHMuXG4gICBPdmVycmlkZXMgdGhlIHB1cmNoYXNlZCB0aGVtZSdzIE51bml0byBTYW5zIC8gU3BhY2UgTW9ubyAvIFN5bmUuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbmh0bWwsXG5ib2R5LFxuYm9keS5ib2R5LFxuYnV0dG9uLFxuaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSxcbi5uYXZiYXIsXG4uY29udGFpbmVyLFxucCxcbmxpLFxudGQsXG50aCxcbmxhYmVsLFxuYSB7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdWkpO1xufVxuXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LFxuLmhlYWRpbmctMSxcbi5oZWFkaW5nLTIsXG4uaGVhZGluZy0zIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC11aSk7XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDNlbTtcbiAgICB0ZXh0LXdyYXA6IGJhbGFuY2U7XG59XG5cbi5ib2R5LTEsXG4uYm9keS0yIHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC11aSk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG59XG5cbi5ib2R5LTIge1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4uYnRuLFxuLmlzbWQtYnRuLFxuLmlzbWQtYnRuLWdob3N0IHtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC11aSk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xufVxuXG4vKiB0aGUgZXllYnJvdy9sYWJlbCB2b2ljZSAqL1xuLmlzbWQtZXllYnJvdyxcbi5pc21kLWhlcm9fX2V5ZWJyb3cge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWV5ZWJyb3cpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi8qIGFjY2VudCB3b3Jkczogd3JhcCBpbiA8ZW0+IGluc2lkZSBhbnkgaGVhZGluZyAqL1xuLmhlYWRpbmctMSBlbSxcbi5oZWFkaW5nLTIgZW0sXG4uaGVhZGluZy0zIGVtLFxuLmlzbWQtaGVyb19fdGl0bGUgZW0sXG4uaXNtZC1hY2NlbnQge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWFjY2VudCk7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAxZW07XG59XG5cbi8qIFRoZSBwdXJjaGFzZWQgdGhlbWUgdGl0bGUtY2FzZXMgaGVhZGluZ3MgKGB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZWApLlxuICAgVGhhdCBpcyB3cm9uZyBmb3IgUm9tYW5pYW4sIHdoaWNoIHVzZXMgc2VudGVuY2UgY2FzZTogXCJQdWJsaWN1bCB0xIN1IHN0xIMgcGVcbiAgIGxvY1wiLCBub3QgXCJQdWJsaWN1bCBUxIN1IFN0xIMgUGUgTG9jXCIuIE9ubHkgdGhlIGhlcm8gaGVhZGxpbmUgc3RheXMgdXBwZXJjYXNlLFxuICAgYXMgYSBkZWxpYmVyYXRlIGRpc3BsYXkgY2hvaWNlLiAqL1xuLmhlYWRpbmctMixcbi5oZWFkaW5nLTMsXG4uYm9keS0yLFxuaDIsIGgzLCBoNCwgaDUsIGg2IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLmlzbWQtaGVyb19fdGl0bGUge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFBhY2hldGUg4oCUIHByaWNpbmcgcGxhbnNcbiAgIFRocmVlIGNhcmRzLCB0aGUgbWlkZGxlIG9uZSBjYXJyaWVkIGJ5IHRoZSBhY2NlbnQuIFNhbWUgaW5rXG4gICBncm91bmQgYW5kIG1pbnQgYWNjZW50IGFzIHRoZSByZXN0IG9mIHRoZSBzaXRlLlxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi5pc21kLXByaWNpbmctaW50cm8ge1xuICAgIHBhZGRpbmctdG9wOiAxOTBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmlzbWQtcHJpY2luZy1pbnRybyAuaGVhZGluZy0xIHtcbiAgICBmb250LXNpemU6IGNsYW1wKDM0cHgsIDV2dywgNThweCk7XG4gICAgbGluZS1oZWlnaHQ6IDEuMDU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjAzNWVtO1xufVxuXG4uaXNtZC1wbGFucyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICAvKiAzIHBhY2thZ2VzOiBvbmUgY2xlYW4gcm93ICovXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICBnYXA6IDIycHg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG5cbi5pc21kLXBsYW4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNHB4O1xuICAgIHBhZGRpbmc6IDM0cHggMzBweCAzMHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJveC1jb2xvcik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGFyay1ncmV5KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpO1xuICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMzVzIGVhc2UsIGJveC1zaGFkb3cgMC4zNXMgZWFzZTtcbn1cblxuLmlzbWQtcGxhbjpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpO1xufVxuXG4uaXNtZC1wbGFuLS1mZWF0dXJlZCB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQpO1xuICAgIGJveC1zaGFkb3c6IDAgMCA0OHB4IHJnYmEoOTQsIDIxMCwgMTU2LCAwLjE0KTtcbn1cblxuLmlzbWQtcGxhbl9fYmFkZ2Uge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xMnB4O1xuICAgIGxlZnQ6IDMwcHg7XG4gICAgcGFkZGluZzogNXB4IDE0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXBpbGwpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudCk7XG4gICAgY29sb3I6IHZhcigtLWluayk7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMTJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uaXNtZC1wbGFuX19uYW1lIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4xNmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6IHZhcigtLWFjY2VudCk7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4uaXNtZC1wbGFuX19wcmljZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgZ2FwOiA0cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogNDZweDtcbiAgICBmb250LXdlaWdodDogODAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtdmFyaWFudC1udW1lcmljOiB0YWJ1bGFyLW51bXM7XG59XG5cbi5pc21kLXBsYW5fX2N1cnJlbmN5IHtcbiAgICBmb250LXNpemU6IDI2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xufVxuXG4uaXNtZC1wbGFuX19wcmljZSBzbWFsbCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41NSk7XG59XG5cbi5pc21kLXBsYW5fX2FsdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTMuNXB4O1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNTUpO1xufVxuXG4uaXNtZC1wbGFuX19zYXZlIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiA1cHggMTJweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYWNjZW50KSA0NSUsIHRyYW5zcGFyZW50KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCk7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbiAgICBjb2xvcjogdmFyKC0tYWNjZW50KTtcbn1cblxuLmlzbWQtcGxhbl9fc3BlY3Mge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiA4cHggMCAwO1xuICAgIHBhZGRpbmc6IDE4cHggMCAwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kYXJrLWdyZXkpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDExcHg7XG4gICAgZm9udC1zaXplOiAxNC41cHg7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43Mik7XG59XG5cbi5pc21kLXBsYW5fX3NwZWNzIHN0cm9uZyB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xufVxuXG4uaXNtZC1wbGFuX191bml0IHtcbiAgICBtYXJnaW46IDZweCAwIDA7XG4gICAgcGFkZGluZy10b3A6IDE2cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWRhcmstZ3JleSk7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG59XG5cbi8qIHRoZSBudW1iZXIgYSBtZWRpYSBidXllciBhY3R1YWxseSBjb21wYXJlcyAqL1xuLmlzbWQtcGxhbl9fdW5pdCBzcGFuIHtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgICBjb2xvcjogdmFyKC0tYWNjZW50KTtcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcbiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xufVxuXG4uaXNtZC1wbGFuX19jdGEge1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5pc21kLXByaWNpbmdfX25vdGUge1xuICAgIG1hcmdpbjogMzRweCBhdXRvIDA7XG4gICAgbWF4LXdpZHRoOiA2NDBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxMy41cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xufVxuXG4vKiAtLS0tLS0tLS0tIGluY2x1ZGVkIGluIGV2ZXJ5IHBhY2thZ2UgLS0tLS0tLS0tLSAqL1xuLmlzbWQtaW5jbHVkZWRfX2dyaWQge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICAvKiA2IGl0ZW1zOiAzICsgMyAqL1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgZ2FwOiAxNHB4O1xufVxuXG4uaXNtZC1pbmNsdWRlZF9fZ3JpZCBsaSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTRweDtcbiAgICBwYWRkaW5nOiAyMnB4IDI0cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYm94LWNvbG9yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kYXJrLWdyZXkpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7XG4gICAgZm9udC1zaXplOiAxNC41cHg7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43OCk7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGVhc2UsIGJvcmRlci1jb2xvciAwLjNzIGVhc2U7XG59XG5cbi5pc21kLWluY2x1ZGVkX19ncmlkIGxpOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pbmspO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50KTtcbn1cblxuLmlzbWQtaW5jbHVkZWRfX2dyaWQgaSB7XG4gICAgY29sb3I6IHZhcigtLWFjY2VudCk7XG4gICAgZm9udC1zaXplOiAxN3B4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcbiAgICAuaXNtZC1wcmljaW5nLWludHJvIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDE1MHB4O1xuICAgIH1cblxuICAgIC5pc21kLXBsYW4ge1xuICAgICAgICBwYWRkaW5nOiAzMHB4IDI0cHggMjZweDtcbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0gcGFuZWwgdHlwZXMgLS0tLS0tLS0tLSAqL1xuLmlzbWQtdHlwZXNfX2dyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyODBweCwgMWZyKSk7XG4gICAgZ2FwOiAyMHB4O1xufVxuXG4uaXNtZC10eXBlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE0cHggMTRweCAyNHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJveC1jb2xvcik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGFyay1ncmV5KTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbGcpO1xuICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMzVzIGVhc2U7XG59XG5cbi5pc21kLXR5cGU6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50KTtcbn1cblxuLmlzbWQtdHlwZV9fbWVkaWEge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cyk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBhc3BlY3QtcmF0aW86IDQgLyAzO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWluayk7XG59XG5cbi5pc21kLXR5cGVfX21lZGlhIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjZzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpO1xufVxuXG4uaXNtZC10eXBlOmhvdmVyIC5pc21kLXR5cGVfX21lZGlhIGltZyB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA0KTtcbn1cblxuLmlzbWQtdHlwZSBoMyB7XG4gICAgbWFyZ2luOiA2cHggMCAwO1xuICAgIHBhZGRpbmctaW5saW5lOiA4cHg7XG4gICAgZm9udC1zaXplOiAxN3B4O1xufVxuXG4uaXNtZC10eXBlIHAge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLWlubGluZTogOHB4O1xufVxuIiwiLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBJZGVudGl0eSBTdG9yZSDigJQgc2VjdGlvbiBzdHlsZXMgYWRkZWQgYWZ0ZXIgdGhlIGhvbWVwYWdlIGJ1aWxkOlxuICAgICDCtyBwcm9kdWN0IGNhcmRzICsgZGVsaXZlcmVkIHByb2plY3RzIG9uIC9tb25pdG9hcmUtbGVkXG4gICAgIMK3IGNsaWVudCByZXZpZXdzIG9uIHRoZSBob21lcGFnZVxuICAgU2FtZSB0b2tlbnMgYXMgZXZlcnl3aGVyZSBlbHNlOiAtLWJveC1jb2xvciwgLS1kYXJrLWdyZXksXG4gICAtLXByaW1hcnktY29sb3IgLyAtLWFjY2VudCwgLS1pbmssIGFuZCB0aGUgLS1yYWRpdXMtKiBzY2FsZS5cbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiAtLS0tLS0tLS0tIFByb2R1Y3QgZmFtaWxpZXMgKExFRCBwYWdlLCBzZWN0aW9uIDAyKSAtLS0tLS0tLS0tICovXG4vKiB0d28gb2ZmZXJzOiBvbmUgcm93IG9mIHR3byAqL1xuLmlzbWQtb2ZmZXJfX2dyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICBnYXA6IDIwcHg7XG59XG5cbi5pc21kLW9mZmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTRweDtcbiAgICBwYWRkaW5nOiAzNHB4IDMwcHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYm94LWNvbG9yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kYXJrLWdyZXkpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjM1cyBlYXNlO1xufVxuXG4uaXNtZC1vZmZlcjpob3ZlciB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcbn1cblxuLmlzbWQtb2ZmZXIgPiBpIHtcbiAgICBmb250LXNpemU6IDI3cHg7XG4gICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpO1xufVxuXG4uaXNtZC1vZmZlcjpob3ZlciA+IGkge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xNSkgcm90YXRlKC02ZGVnKTtcbn1cblxuLmlzbWQtb2ZmZXIgaDMge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLmlzbWQtb2ZmZXIgcCB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4uaXNtZC1vZmZlciAuaXNtZC10aWNrcyB7XG4gICAgbWFyZ2luLXRvcDogNnB4O1xuICAgIHBhZGRpbmctdG9wOiAxOHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kYXJrLWdyZXkpO1xufVxuXG4vKiAtLS0tLS0tLS0tIERlbGl2ZXJlZCBwcm9qZWN0cyAoTEVEIHBhZ2UsIHNlY3Rpb24gMDQpIC0tLS0tLS0tLS0gKi9cbi8qIEZpdmUgZGVsaXZlcmVkIHByb2plY3RzLCBhbmQgYSBzaXh0aCBjYW5ub3QgYmUgaW52ZW50ZWQgLS0gdGhlc2UgYXJlIGNsYWltc1xuICAgYWJvdXQgcmVhbCB3b3JrLiBTbyB0aGlzIG9uZSBpcyBmbGV4IHJhdGhlciB0aGFuIGdyaWQ6IHRocmVlIHBlciByb3csIGFuZCB0aGVcbiAgIHRyYWlsaW5nIHR3byBjZW50cmUgdGhlbXNlbHZlcyBpbnN0ZWFkIG9mIGhhbmdpbmcgb2ZmIHRoZSBsZWZ0IGVkZ2UuIFdvcmtzIGZvclxuICAgYW55IGNvdW50IGFuIGVkaXRvciBlbmRzIHVwIHdpdGguICovXG4uaXNtZC1wcm9qZWN0c19fZ3JpZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZ2FwOiAyMHB4O1xufVxuXG4uaXNtZC1wcm9qZWN0c19fZ3JpZCA+ICoge1xuICAgIGZsZXg6IDAgMSBjYWxjKDMzLjMzMyUgLSAxNHB4KTtcbiAgICBtaW4td2lkdGg6IDI4MHB4O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTA5OXB4KSB7XG4gICAgLmlzbWQtcHJvamVjdHNfX2dyaWQgPiAqIHtcbiAgICAgICAgZmxleC1iYXNpczogY2FsYyg1MCUgLSAxMHB4KTtcbiAgICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3MTlweCkge1xuICAgIC5pc21kLXByb2plY3RzX19ncmlkID4gKiB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG59XG5cbi5pc21kLXByb2plY3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ib3gtY29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRhcmstZ3JleSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMzVzIGVhc2U7XG59XG5cbi5pc21kLXByb2plY3Q6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG59XG5cbi5pc21kLXByb2plY3RfX21lZGlhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYXNwZWN0LXJhdGlvOiA0IC8gMztcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pbmspO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5pc21kLXByb2plY3RfX21lZGlhIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjZzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpO1xufVxuXG4uaXNtZC1wcm9qZWN0OmhvdmVyIC5pc21kLXByb2plY3RfX21lZGlhIGltZyB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA0KTtcbn1cblxuLyogdGhlIHNoYXJlZCBwbGFjZWhvbGRlciBpcyBzaXplZCBmb3IgYSB0YWxsIGZyYW1lOyBzaHJpbmsgaXQgaW4gdGhpcyBjYXJkICovXG4uaXNtZC1wcm9qZWN0X19tZWRpYSAuaXNtZC1mcmFtZV9fcGxhY2Vob2xkZXIge1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG59XG5cbi5pc21kLXByb2plY3RfX2tpbmQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAxMnB4O1xuICAgIGJvdHRvbTogMTJweDtcbiAgICBwYWRkaW5nOiA1cHggMTFweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcyKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kYXJrLWdyZXkpO1xuICAgIGNvbG9yOiB2YXIoLS1ncmV5KTtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMTJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uaXNtZC1wcm9qZWN0X19ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA5cHg7XG4gICAgcGFkZGluZzogMjJweCAyMnB4IDI2cHg7XG59XG5cbi5pc21kLXByb2plY3RfX3RvcCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHg7XG59XG5cbi5pc21kLXByb2plY3RfX3RvcCBoMyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbn1cblxuLmlzbWQtcHJvamVjdF9fc3RhdHVzIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBwYWRkaW5nOiA0cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcHJpbWFyeS1jb2xvcik7XG4gICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4xZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmlzbWQtcHJvamVjdF9fc3RhdHVzLS13aXAge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGFyay1ncmV5KTtcbiAgICBjb2xvcjogdmFyKC0tZ3JleSk7XG59XG5cbi5pc21kLXByb2plY3RfX3BsYWNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiB2YXIoLS1ncmV5KTtcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5pc21kLXByb2plY3RfX3BsYWNlIGkge1xuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcbn1cblxuLmlzbWQtcHJvamVjdF9fYm9keSBwOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLyogLS0tLS0tLS0tLSBDbGllbnQgcmV2aWV3cyAoaG9tZXBhZ2UsIHNlY3Rpb24gMTMpIC0tLS0tLS0tLS0gKi9cbi5pc21kLXJldmlld3NfX2dyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMDBweCwgMWZyKSk7XG4gICAgZ2FwOiAyMHB4O1xufVxuXG4uaXNtZC1yZXZpZXcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAzMnB4IDI4cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYm94LWNvbG9yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kYXJrLWdyZXkpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjM1cyBlYXNlO1xufVxuXG4uaXNtZC1yZXZpZXc6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG59XG5cbi5pc21kLXJldmlld19fbWFyayB7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcbiAgICBvcGFjaXR5OiAwLjU1O1xufVxuXG4uaXNtZC1yZXZpZXdfX3N0YXJzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogNHB4O1xuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG5cbi5pc21kLXJldmlld19fc3Rhci0tb2ZmIHtcbiAgICBjb2xvcjogdmFyKC0tZGFyay1ncmV5KTtcbn1cblxuLmlzbWQtcmV2aWV3IGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogdmFyKC0tZ3JleSk7XG4gICAgcXVvdGVzOiBub25lO1xufVxuXG4uaXNtZC1yZXZpZXdfX2J5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxM3B4O1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgcGFkZGluZy10b3A6IDE4cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWRhcmstZ3JleSk7XG59XG5cbi5pc21kLXJldmlld19fYnkgc3BhbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLmlzbWQtcmV2aWV3X19ieSBzdHJvbmcge1xuICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7XG4gICAgZm9udC1zaXplOiAxNXB4O1xufVxuXG4uaXNtZC1yZXZpZXdfX2J5IGVtIHtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC1zaXplOiAxM3B4O1xufVxuXG4uaXNtZC1yZXZpZXdfX2F2YXRhciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2lkdGg6IDQ0cHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kYXJrLWdyZXkpO1xufVxuXG4uaXNtZC1yZXZpZXdfX2F2YXRhci0taW5pdGlhbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWluayk7XG4gICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAgIC5pc21kLW9mZmVyIHtcbiAgICAgICAgcGFkZGluZzogMjZweCAyMnB4O1xuICAgIH1cblxuICAgIC5pc21kLXJldmlldyB7XG4gICAgICAgIHBhZGRpbmc6IDI2cHggMjJweDtcbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0gUGFuZWwgZ3JpZCAoaG9tZXBhZ2UgYmxvY2sgKyBmdWxsIGxpc3QgcGFnZSkgLS0tLS0tLS0tLVxuICAgT25lIGNhcmQgZGVzaWduLCB0d28gZGVuc2l0aWVzOiBgLS1jb21wYWN0YCBvbiB0aGUgaG9tZXBhZ2Ugd2hlcmUgdGhlIGJsb2NrIGlzXG4gICBhIHRlYXNlciwgYC0tZnVsbGAgb24gdGhlIGxpc3QgcGFnZSB3aGVyZSB0aGUgd2hvbGUgbmV0d29yayBpcyBzaG93bi4gKi9cbi5pc21kLW1vbml0b3JzX19ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogMjBweDtcbn1cblxuLmlzbWQtbW9uaXRvcnNfX2dyaWQtLWNvbXBhY3Qge1xuICAgIC8qIDYgZmVhdHVyZWQgcGFuZWxzOiAzICsgMyAqL1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG59XG5cbi5pc21kLW1vbml0b3JzX19ncmlkLS1mdWxsIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyNjBweCwgMWZyKSk7XG4gICAgZ2FwOiAxNnB4O1xufVxuXG4uaXNtZC1tb25pdG9yIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYm94LWNvbG9yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kYXJrLWdyZXkpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjM1cyBlYXNlO1xufVxuXG4uaXNtZC1tb25pdG9yOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xufVxuXG4uaXNtZC1tb25pdG9yX19tZWRpYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGFzcGVjdC1yYXRpbzogNCAvIDM7XG4gICAgYmFja2dyb3VuZDogdmFyKC0taW5rKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uaXNtZC1tb25pdG9yX19tZWRpYSBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC42cyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKTtcbn1cblxuLmlzbWQtbW9uaXRvcjpob3ZlciAuaXNtZC1tb25pdG9yX19tZWRpYSBpbWcge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNCk7XG59XG5cbi8qIE1vc3Qgb2YgdGhlIG5ldHdvcmsgaGFzIG5vIHBob3RvZ3JhcGggeWV0LiBBIHF1aWV0IGJyYW5kZWQgY2FyZCByZWFkcyBiZXR0ZXJcbiAgIHRoYW4gYW4gZW1wdHkgZnJhbWUsIGFuZCBtYWtlcyB0aGUgZ2FwIG9idmlvdXMgdG8gd2hvZXZlciBtYWludGFpbnMgdGhlIENNUy4gKi9cbi5pc21kLW1vbml0b3JfX3BsYWNlaG9sZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDpcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA1MCUgMzglLCByZ2JhKDIsIDI0MiwgMTQ1LCAwLjEwKSwgdHJhbnNwYXJlbnQgNjIlKSxcbiAgICAgICAgdmFyKC0taW5rKTtcbn1cblxuLmlzbWQtbW9uaXRvcl9fcGxhY2Vob2xkZXIgc3ZnIHtcbiAgICB3aWR0aDogODJweDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgb3BhY2l0eTogMC41O1xufVxuXG4uaXNtZC1tb25pdG9yX19waC1zY3JlZW4ge1xuICAgIGZpbGw6IG5vbmU7XG4gICAgc3Ryb2tlOiB2YXIoLS1kYXJrLWdyZXkpO1xuICAgIHN0cm9rZS13aWR0aDogMjtcbn1cblxuLmlzbWQtbW9uaXRvcl9fcGgtaW5uZXIge1xuICAgIGZpbGw6IHZhcigtLXByaW1hcnktY29sb3IpO1xuICAgIG9wYWNpdHk6IDAuMTI7XG59XG5cbi5pc21kLW1vbml0b3JfX3BoLXN0YW5kLFxuLmlzbWQtbW9uaXRvcl9fcGgtZm9vdCB7XG4gICAgZmlsbDogdmFyKC0tZGFyay1ncmV5KTtcbn1cblxuLmlzbWQtbW9uaXRvcl9fcGxhY2Vob2xkZXIgc3BhbiB7XG4gICAgY29sb3I6IHZhcigtLWdyZXkpO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4xMmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgb3BhY2l0eTogMC43NTtcbn1cblxuLmlzbWQtbW9uaXRvcl9fc2l6ZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxMnB4O1xuICAgIHRvcDogMTJweDtcbiAgICBwYWRkaW5nOiA0cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcyKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kYXJrLWdyZXkpO1xuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xufVxuXG4uaXNtZC1tb25pdG9yX19ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDE7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHBhZGRpbmc6IDE4cHggMjBweCAyMHB4O1xufVxuXG4uaXNtZC1tb25pdG9yX19hZGRyZXNzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMzU7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi5pc21kLW1vbml0b3JfX21ldGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kYXJrLWdyZXkpO1xufVxuXG4uaXNtZC1tb25pdG9yX19jb2RlIHtcbiAgICBjb2xvcjogdmFyKC0tZ3JleSk7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjE0ZW07XG59XG5cbi5pc21kLW1vbml0b3JfX2xpbmsge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA3cHg7XG4gICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmlzbWQtbW9uaXRvcl9fbGluayBpIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xufVxuXG4uaXNtZC1tb25pdG9yOmhvdmVyIC5pc21kLW1vbml0b3JfX2xpbmsgaSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDRweCk7XG59XG5cbi5pc21kLW1vbml0b3JzX19jdGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogMzRweDtcbn1cblxuLyogdGhlIGxpdmUgdG90YWwsIHJlbmRlcmVkIGJlc2lkZSB0aGUgYnV0dG9uIHNvIHRoZSB0d28gbmV2ZXIgZGlzYWdyZWUgKi9cbi5pc21kLW1vbml0b3JzX19jb3VudCB7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgcGFkZGluZzogMnB4IDlweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5pc21kLW1vbml0b3JzX190b3RhbCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLmlzbWQtbW9uaXRvcnNfX3RvdGFsIC5jb3VudGVyIHtcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAgIC5pc21kLW1vbml0b3JzX19ncmlkLS1jb21wYWN0LFxuICAgIC5pc21kLW1vbml0b3JzX19ncmlkLS1mdWxsIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMjBweCwgMWZyKSk7XG4gICAgfVxuXG4gICAgLmlzbWQtbW9uaXRvcl9fYm9keSB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMTZweCAxOHB4O1xuICAgIH1cbn1cblxuLyogLS0tLS0tLS0tLSBQYW5lbCB0eXBlczogb3ZlcnZpZXcgcGFnZSArIHNpbmdsZSB0eXBlIHBhZ2UgLS0tLS0tLS0tLSAqL1xuLmlzbWQtcHR5cGVzLWhlcm8gLmlzbWQtc3BsaXQtbGF5b3V0X190ZXh0IC5oZWFkaW5nLTEge1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbn1cblxuLmlzbWQtYWR2YW50YWdlc19fZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICAvKiA2IGFkdmFudGFnZXM6IDMgKyAzICovXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICBnYXA6IDE4cHg7XG59XG5cbi5pc21kLWFkdmFudGFnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAyNnB4IDI0cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYm94LWNvbG9yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kYXJrLWdyZXkpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMzVzIGVhc2UsIHRyYW5zZm9ybSAwLjM1cyBlYXNlO1xufVxuXG4uaXNtZC1hZHZhbnRhZ2U6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpO1xufVxuXG4uaXNtZC1hZHZhbnRhZ2UgPiBpIHtcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG4gICAgZm9udC1zaXplOiAyMnB4O1xufVxuXG4uaXNtZC1hZHZhbnRhZ2UgaDMge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDE3cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi5pc21kLWFkdmFudGFnZSBwIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5pc21kLXB0eXBlcy1ub3RlIHtcbiAgICBtYXJnaW46IDMwcHggMCAwO1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLXByaW1hcnktY29sb3IpO1xufVxuXG4vKiAtLS0tLS0tLS0tIHRoZSB0aHJlZSBtb3VudGluZyB0eXBlcyAtLS0tLS0tLS0tICovXG4uaXNtZC1wdHlwZXNfX2dyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgLyoga2VwdCBmb3IgYW55IDMtdXAgY2FyZHMgKi9cbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgIGdhcDogMjBweDtcbn1cblxuLmlzbWQtcHR5cGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ib3gtY29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRhcmstZ3JleSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMzVzIGVhc2U7XG59XG5cbi5pc21kLXB0eXBlOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xufVxuXG4uaXNtZC1wdHlwZV9fbWVkaWEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBhc3BlY3QtcmF0aW86IDQgLyAzO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWluayk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmlzbWQtcHR5cGVfX21lZGlhIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjZzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpO1xufVxuXG4uaXNtZC1wdHlwZTpob3ZlciAuaXNtZC1wdHlwZV9fbWVkaWEgaW1nIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDQpO1xufVxuXG4uaXNtZC1wdHlwZV9fcGxhY2Vob2xkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgY29sb3I6IHZhcigtLWRhcmstZ3JleSk7XG4gICAgZm9udC1zaXplOiAzNHB4O1xufVxuXG4uaXNtZC1wdHlwZV9fc2l6ZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAxMnB4O1xuICAgIHRvcDogMTJweDtcbiAgICBwYWRkaW5nOiA0cHggMTFweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcyKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kYXJrLWdyZXkpO1xuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cblxuLmlzbWQtcHR5cGVfX2JvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAyMnB4IDIycHggMjRweDtcbn1cblxuLmlzbWQtcHR5cGVfX2JvZHkgaDMge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLmlzbWQtcHR5cGVfX21vdW50IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIGNvbG9yOiB2YXIoLS1ncmV5KTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uaXNtZC1wdHlwZV9fbW91bnQgaSB7XG4gICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xufVxuXG4uaXNtZC1wdHlwZV9fbGluayB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDdweDtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kYXJrLWdyZXkpO1xuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xufVxuXG4uaXNtZC1wdHlwZV9fbGluayBpIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xufVxuXG4uaXNtZC1wdHlwZTpob3ZlciAuaXNtZC1wdHlwZV9fbGluayBpIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KTtcbn1cblxuLyogLS0tLS0tLS0tLSBzaW5nbGUgcGFuZWwgdHlwZSBwYWdlIC0tLS0tLS0tLS0gKi9cbi5pc21kLXByb2R1Y3RfX2JhZGdlcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAxMHB4O1xufVxuXG4uaXNtZC1wcm9kdWN0X19iYWRnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA2cHggMTRweDtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtcGlsbCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYm94LWNvbG9yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kYXJrLWdyZXkpO1xuICAgIGNvbG9yOiB2YXIoLS1ncmV5KTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDZlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uaXNtZC1wcm9kdWN0X19iYWRnZSBpIHtcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG59XG5cbi5pc21kLXByb2R1Y3RfX2JhZGdlLS1zaXplIHtcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xufVxuXG4vKiBzcGVjaWZpY2F0aW9ucyBhcyByb3dzIHJhdGhlciB0aGFuIGEgcGFzdGVkIHRhYmxlICovXG4uaXNtZC1zcGVjcm93cyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDMwMHB4LCAxZnIpKTtcbiAgICBnYXA6IDAgMzZweDtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5pc21kLXNwZWNyb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZzogMTVweCAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1kYXJrLWdyZXkpO1xufVxuXG4uaXNtZC1zcGVjcm93IGR0IHtcbiAgICBjb2xvcjogdmFyKC0tZ3JleSk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xufVxuXG4uaXNtZC1zcGVjcm93IGRkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6IHZhcigtLXdoaXRlKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5pc21kLWdhbGxlcnlfX2dyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyNjBweCwgMWZyKSk7XG4gICAgZ2FwOiAxNnB4O1xufVxuXG4uaXNtZC1nYWxsZXJ5X19pdGVtIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBhc3BlY3QtcmF0aW86IDQgLyAzO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogdmFyKC0taW5rKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kYXJrLWdyZXkpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMzVzIGVhc2U7XG59XG5cbi5pc21kLWdhbGxlcnlfX2l0ZW06aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG59XG5cbi5pc21kLWdhbGxlcnlfX2l0ZW0gaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNnMgY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSk7XG59XG5cbi5pc21kLWdhbGxlcnlfX2l0ZW06aG92ZXIgaW1nIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDQpO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgICAuaXNtZC1hZHZhbnRhZ2Uge1xuICAgICAgICBwYWRkaW5nOiAyMnB4IDIwcHg7XG4gICAgfVxuXG4gICAgLmlzbWQtc3BlY3JvdyBkZCB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgfVxufVxuXG4vKiAtLS0tLS0tLS0tIFNpdGUtd2lkZSBkaWFsb2dzIChQYWNoZXRlLCBDZXJlIG9mZXJ0xIMpIC0tLS0tLS0tLS0gKi9cbi5pc21kLW1vZGFsIHtcbiAgICAvKiBhcHAuY3NzIGNhcnJpZXMgYSBibGFua2V0IGAqIHsgbWFyZ2luOiAwIH1gLCB3aGljaCB3aXBlcyBvdXQgdGhlIGJyb3dzZXInc1xuICAgICAgIG93biBgZGlhbG9nIHsgbWFyZ2luOiBhdXRvIH1gIC0tIHRoYXQgaXMgd2h5IHRoZSBwYW5lbCBvcGVuZWQgcGlubmVkIHRvIHRoZVxuICAgICAgIHRvcC1sZWZ0IGNvcm5lciBpbnN0ZWFkIG9mIGNlbnRyZWQuIFB1dCB0aGUgY2VudHJpbmcgYmFjayBleHBsaWNpdGx5LiAqL1xuICAgIG1hcmdpbjogYXV0bztcbiAgICB3aWR0aDogbWluKDExMjBweCwgY2FsYygxMDB2dyAtIDMycHgpKTtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNjRweCk7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kYXJrLWdyZXkpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZyk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYm9keUNvbG9yKTtcbiAgICBjb2xvcjogdmFyKC0tZ3JleSk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmlzbWQtbW9kYWw6OmJhY2tkcm9wIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNzIpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigzcHgpO1xufVxuXG4uaXNtZC1tb2RhbF9fYm9keSB7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDY0cHgpO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgcGFkZGluZzogNDJweCAzNHB4IDM4cHg7XG59XG5cbi5pc21kLW1vZGFsX19jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTRweDtcbiAgICByaWdodDogMTZweDtcbiAgICB6LWluZGV4OiAyO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kYXJrLWdyZXkpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1ib3gtY29sb3IpO1xuICAgIGNvbG9yOiB2YXIoLS1ncmV5KTtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZSwgYm9yZGVyLWNvbG9yIDAuM3MgZWFzZTtcbn1cblxuLmlzbWQtbW9kYWxfX2Nsb3NlOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcbn1cblxuLyogdGhlIHBhZ2UgYmVoaW5kIG11c3Qgbm90IHNjcm9sbCB3aGlsZSB0aGUgZGlhbG9nIGlzIHVwICovXG5ib2R5LmlzbWQtbW9kYWwtb3BlbiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDcyMHB4KSB7XG4gICAgLmlzbWQtbW9kYWxfX2JvZHkge1xuICAgICAgICBwYWRkaW5nOiA0NHB4IDE4cHggMjZweDtcbiAgICB9XG59XG5cbi5pc21kLWN0YV9fYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiAxNHB4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vKiAuaXNtZC1jdGEtZ2hvc3Qgd2FzIHdyaXR0ZW4gZm9yIGFuIDxhPjsgYXMgYSA8YnV0dG9uPiBpdCBhbHNvIHBpY2tzIHVwIHRoZVxuICAgYnJvd3NlcidzIGRlZmF1bHQgYnV0dG9uIGNocm9tZSAtLSBhIGxpZ2h0IGdyZXkgZmFjZSBiZWhpbmQgdGhlIG5lYXItd2hpdGVcbiAgIGxhYmVsLCB3aGljaCByZWFkIGFzIHdoaXRlLW9uLXdoaXRlLiBSZXNldCBpdCBiYWNrIHRvIHRoZSBnaG9zdCBsb29rLiAqL1xuYnV0dG9uLmlzbWQtY3RhLWdob3N0LFxuYnV0dG9uLmlzbWQtY3RhLXByaW1hcnkge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuYnV0dG9uLmlzbWQtY3RhLWdob3N0OmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcbn1cblxuLyogVGhlIG5hdiBpcyBmaXhlZCBub3cuIFRoZSBob21lcGFnZSBoZXJvIGFscmVhZHkgcmVzZXJ2ZXMgcm9vbSBmb3IgaXQsIGJ1dCBhXG4gICBwYWdlIHdob3NlIGZpcnN0IGVsZW1lbnQgaXMgYW4gb3JkaW5hcnkgc2VjdGlvbiB3b3VsZCBzbGlkZSB1bmRlcm5lYXRoLCBzb1xuICAgZ2l2ZSB0aGUgZmlyc3Qgc2VjdGlvbiBvbiB0aG9zZSBwYWdlcyB0aGUgY2xlYXJhbmNlIGluc3RlYWQuICovXG4uaXNtZC1wdHlwZXMtaGVybyxcbi5pc21kLXByb2R1Y3QtaGVybyB7XG4gICAgcGFkZGluZy10b3A6IDE1MHB4O1xufVxuXG4vKiBpbi1wYWdlIGFuY2hvcnMgbXVzdCBub3QgbGFuZCB1bmRlciB0aGUgYmFyIGVpdGhlciAqL1xuaHRtbCB7XG4gICAgc2Nyb2xsLXBhZGRpbmctdG9wOiA5NnB4O1xufVxuXG4vKiB0aGUgcHJpY2luZyB0YWJsZSBuZWVkcyByb29tOyB0aGUgZW5xdWlyeSBmb3JtIGRvZXMgbm90ICovXG4uaXNtZC1wcmljaW5nLW1vZGFsIHtcbiAgICB3aWR0aDogbWluKDExMjBweCwgY2FsYygxMDB2dyAtIDMycHgpKTtcbn1cblxuLmlzbWQtZW5xdWlyeS1tb2RhbCB7XG4gICAgd2lkdGg6IG1pbig2ODBweCwgY2FsYygxMDB2dyAtIDMycHgpKTtcbn1cblxuLmlzbWQtbW9kYWwgLmlzbWQtaGVhZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjZweDtcbn1cblxuLyogLS0tLS0tLS0tLSBcIkRlIGNlIGZ1bmPIm2lvbmVhesSDXCIgcmVhc29uIGNhcmRzIC0tLS0tLS0tLS0gKi9cbi5pc21kLXJlYXNvbnNfX2dyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgLyogNiByZWFzb25zOiAzICsgMyAqL1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgZ2FwOiAxOHB4O1xufVxuXG4uaXNtZC1yZWFzb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNHB4O1xuICAgIHBhZGRpbmc6IDMwcHggMjhweCAzNHB4O1xuICAgIGJhY2tncm91bmQ6XG4gICAgICAgIGxpbmVhci1ncmFkaWVudCgxNjBkZWcsIHJnYmEoMiwgMjQyLCAxNDUsIDAuMDUpLCB0cmFuc3BhcmVudCA0NiUpLFxuICAgICAgICB2YXIoLS1ib3gtY29sb3IpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRhcmstZ3JleSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjM1cyBlYXNlLCB0cmFuc2Zvcm0gMC4zNXMgZWFzZTtcbn1cblxuLmlzbWQtcmVhc29uOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbn1cblxuLyogdGhlIGluZGV4IGlzIHRoZSBvcm5hbWVudDogbGFyZ2UsIG91dGxpbmVkLCBhbmQgc2F0IGJlaGluZCB0aGUgdGV4dCAqL1xuLmlzbWQtcmVhc29uX19pbmRleCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTBweDtcbiAgICByaWdodDogMTZweDtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1hY2NlbnQsIGluaGVyaXQpO1xuICAgIGZvbnQtc2l6ZTogNjJweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAtd2Via2l0LXRleHQtc3Ryb2tlOiAxcHggdmFyKC0tZGFyay1ncmV5KTtcbiAgICBvcGFjaXR5OiAwLjg1O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zaXRpb246IC13ZWJraXQtdGV4dC1zdHJva2UtY29sb3IgMC4zNXMgZWFzZSwgb3BhY2l0eSAwLjM1cyBlYXNlO1xufVxuXG4uaXNtZC1yZWFzb246aG92ZXIgLmlzbWQtcmVhc29uX19pbmRleCB7XG4gICAgLXdlYmtpdC10ZXh0LXN0cm9rZS1jb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcik7XG4gICAgb3BhY2l0eTogMC41O1xufVxuXG4uaXNtZC1yZWFzb25fX2ljb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogNDRweDtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMiwgMjQyLCAxNDUsIDAuMSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyLCAyNDIsIDE0NSwgMC4yNSk7XG4gICAgY29sb3I6IHZhcigtLXByaW1hcnktY29sb3IpO1xuICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMzVzIGVhc2U7XG59XG5cbi5pc21kLXJlYXNvbjpob3ZlciAuaXNtZC1yZWFzb25fX2ljb24ge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMiwgMjQyLCAxNDUsIDAuMTgpO1xufVxuXG4uaXNtZC1yZWFzb25fX3RleHQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6IHZhcigtLWdyZXkpO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBsaW5lLWhlaWdodDogMS42Mjtcbn1cblxuLyogaGFpcmxpbmUgdGhhdCBmaWxscyBpbiBvbiBob3Zlciwgc28gdGhlIGNhcmQgaGFzIHNvbWV3aGVyZSB0byBnbyAqL1xuLmlzbWQtcmVhc29uX19ydWxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1wcmltYXJ5LWNvbG9yKSwgdHJhbnNwYXJlbnQpO1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSk7XG59XG5cbi5pc21kLXJlYXNvbjpob3ZlciAuaXNtZC1yZWFzb25fX3J1bGUge1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgIC5pc21kLXJlYXNvbixcbiAgICAuaXNtZC1yZWFzb25fX3J1bGUge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC5pc21kLXJlYXNvbjpob3ZlciB7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3MjBweCkge1xuICAgIC5pc21kLXJlYXNvbiB7XG4gICAgICAgIHBhZGRpbmc6IDI2cHggMjJweCAzMHB4O1xuICAgIH1cblxuICAgIC5pc21kLXJlYXNvbl9faW5kZXgge1xuICAgICAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgfVxufVxuXG4vKiBPbiBhIHBob25lIGEgY2VudHJlZCBmbG9hdGluZyBwYW5lbCB3YXN0ZXMgdGhlIHNjcmVlbiBhbmQgbGVhdmVzIHRoZSBjb250ZW50XG4gICBjcmFtcGVkLCBzbyB0aGUgZGlhbG9nIGJlY29tZXMgYSBib3R0b20gc2hlZXQ6IGZ1bGwgd2lkdGgsIGFuY2hvcmVkIHRvIHRoZVxuICAgYm90dG9tIGVkZ2UsIHJvdW5kZWQgb25seSBvbiB0b3AuICovXG5AbWVkaWEgKG1heC13aWR0aDogNzIwcHgpIHtcbiAgICAuaXNtZC1tb2RhbCxcbiAgICAuaXNtZC1wcmljaW5nLW1vZGFsLFxuICAgIC5pc21kLWVucXVpcnktbW9kYWwge1xuICAgICAgICB3aWR0aDogMTAwdnc7XG4gICAgICAgIG1heC13aWR0aDogMTAwdnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDg4dmg7XG4gICAgICAgIG1hcmdpbjogYXV0byBhdXRvIDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1sZykgdmFyKC0tcmFkaXVzLWxnKSAwIDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLmlzbWQtbW9kYWxfX2JvZHkge1xuICAgICAgICBtYXgtaGVpZ2h0OiA4OHZoO1xuICAgIH1cblxuICAgIC8qIGEgZ3JhYiBoYW5kbGUsIHNvIGl0IHJlYWRzIGFzIGEgc2hlZXQgcmF0aGVyIHRoYW4gYSBzdHVjayBwYW5lbCAqL1xuICAgIC5pc21kLW1vZGFsOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogNDJweDtcbiAgICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICAgIG1hcmdpbjogMTBweCBhdXRvIDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1waWxsKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGFyay1ncmV5KTtcbiAgICB9XG59XG5cbi8qIC0tLS0tLS0tLS0gR3JpZCBoYXJtb25pc2F0aW9uIC0tLS0tLS0tLS1cbiAgIEV2ZXJ5IGdyaWQgYWJvdmUgZGVjbGFyZXMgYSBmaXhlZCBjb2x1bW4gY291bnQgcmF0aGVyIHRoYW4gYXV0by1maXQsIHNvIHRoZVxuICAgYnJvd3NlciBjYW4gbm8gbG9uZ2VyIHBpY2sgYSBudW1iZXIgdGhhdCBsZWF2ZXMgYW4gb3JwaGFuIG9uIHRoZSBsYXN0IHJvd1xuICAgKHNpeCBzZWN0b3JzIHdlcmUgbGFuZGluZyBhcyA1ICsgMSwgc2l4IHBhbmVscyBhcyA0ICsgMiwgZml2ZSBvcHRpb24gY2FyZHMgYXNcbiAgIDQgKyAxKS4gVGhlc2UgYXJlIHRoZSB0d28gc3RlcC1kb3ducywga2VwdCBpbiBvbmUgcGxhY2Ugc28gZXZlcnkgYmxvY2sgYnJlYWtzXG4gICBhdCB0aGUgc2FtZSB3aWR0aHMgYW5kIHRoZSBwYWdlIHN0YXlzIGluIHJoeXRobS4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDk5cHgpIHtcbiAgICAuaXNtZC1jb3VudGVyc19fZ3JpZCxcbiAgICAuaXNtZC1yb3RhdGlvbiB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XG4gICAgfVxuXG4gICAgLmlzbWQtc2VjdG9ycyxcbiAgICAuaXNtZC1jYXJkcyxcbiAgICAuaXNtZC1pbmNsdWRlZF9fZ3JpZCxcbiAgICAuaXNtZC1hZHZhbnRhZ2VzX19ncmlkLFxuICAgIC5pc21kLXJlYXNvbnNfX2dyaWQsXG4gICAgLmlzbWQtbW9uaXRvcnNfX2dyaWQtLWNvbXBhY3QsXG4gICAgLmlzbWQtcHR5cGVzX19ncmlkLFxuICAgIC5pc21kLXBsYW5zIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3MTlweCkge1xuICAgIC8qIGNvdW50ZXJzIHN0YXkgdHdvLXVwIG9uIGEgcGhvbmU6IGZvdXIgc2luZ2xlLWNvbHVtbiB0aWxlcyBpcyBhIGxvbmcgc2Nyb2xsXG4gICAgICAgcGFzdCBudW1iZXJzIHRoYXQgYXJlIG1lYW50IHRvIGJlIHJlYWQgYXQgYSBnbGFuY2UgKi9cbiAgICAuaXNtZC1jb3VudGVyc19fZ3JpZCxcbiAgICAuaXNtZC1zZWN0b3JzIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICB9XG5cbiAgICAuaXNtZC1yb3RhdGlvbixcbiAgICAuaXNtZC1jYXJkcyxcbiAgICAuaXNtZC1pbmNsdWRlZF9fZ3JpZCxcbiAgICAuaXNtZC1hZHZhbnRhZ2VzX19ncmlkLFxuICAgIC5pc21kLXJlYXNvbnNfX2dyaWQsXG4gICAgLmlzbWQtbW9uaXRvcnNfX2dyaWQtLWNvbXBhY3QsXG4gICAgLmlzbWQtcHR5cGVzX19ncmlkLFxuICAgIC5pc21kLXBsYW5zIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgfVxufVxuXG4vKiBUaGUgZnVsbCBwYW5lbCBsaXN0IGlzIGEgY2F0YWxvZ3VlLCBub3QgYSBmZWF0dXJlIGJsb2NrOiAzNyBlbnRyaWVzIGNhbm5vdFxuICAgZGl2aWRlIGV2ZW5seSwgc28gaXQga2VlcHMgYSBzdGVhZHkgY29sdW1uIGNvdW50IGFuZCBsZXRzIHRoZSBsYXN0IHJvdyBydW5cbiAgIHNob3J0IHJhdGhlciB0aGFuIHN0cmV0Y2hpbmcgYSBsb25lIGNhcmQgYWNyb3NzIHRoZSB3aWR0aC4gKi9cbi5pc21kLW1vbml0b3JzX19ncmlkLS1mdWxsIHtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTA5OXB4KSB7XG4gICAgLmlzbWQtbW9uaXRvcnNfX2dyaWQtLWZ1bGwge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDcxOXB4KSB7XG4gICAgLmlzbWQtbW9uaXRvcnNfX2dyaWQtLWZ1bGwge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDcxOXB4KSB7XG4gICAgLmlzbWQtb2ZmZXJfX2dyaWQge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB9XG59XG4iLCIvKiByZXF1aXJlZCBzdHlsZXMgKi9cblxuLmxlYWZsZXQtcGFuZSxcbi5sZWFmbGV0LXRpbGUsXG4ubGVhZmxldC1tYXJrZXItaWNvbixcbi5sZWFmbGV0LW1hcmtlci1zaGFkb3csXG4ubGVhZmxldC10aWxlLWNvbnRhaW5lcixcbi5sZWFmbGV0LXBhbmUgPiBzdmcsXG4ubGVhZmxldC1wYW5lID4gY2FudmFzLFxuLmxlYWZsZXQtem9vbS1ib3gsXG4ubGVhZmxldC1pbWFnZS1sYXllcixcbi5sZWFmbGV0LWxheWVyIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRsZWZ0OiAwO1xuXHR0b3A6IDA7XG5cdH1cbi5sZWFmbGV0LWNvbnRhaW5lciB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdH1cbi5sZWFmbGV0LXRpbGUsXG4ubGVhZmxldC1tYXJrZXItaWNvbixcbi5sZWFmbGV0LW1hcmtlci1zaGFkb3cge1xuXHQtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuXHQgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuXHQgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXHQgIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xuXHR9XG4vKiBQcmV2ZW50cyBJRTExIGZyb20gaGlnaGxpZ2h0aW5nIHRpbGVzIGluIGJsdWUgKi9cbi5sZWFmbGV0LXRpbGU6OnNlbGVjdGlvbiB7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuLyogU2FmYXJpIHJlbmRlcnMgbm9uLXJldGluYSB0aWxlIG9uIHJldGluYSBiZXR0ZXIgd2l0aCB0aGlzLCBidXQgQ2hyb21lIGlzIHdvcnNlICovXG4ubGVhZmxldC1zYWZhcmkgLmxlYWZsZXQtdGlsZSB7XG5cdGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcblx0fVxuLyogaGFjayB0aGF0IHByZXZlbnRzIGh3IGxheWVycyBcInN0cmV0Y2hpbmdcIiB3aGVuIGxvYWRpbmcgbmV3IHRpbGVzICovXG4ubGVhZmxldC1zYWZhcmkgLmxlYWZsZXQtdGlsZS1jb250YWluZXIge1xuXHR3aWR0aDogMTYwMHB4O1xuXHRoZWlnaHQ6IDE2MDBweDtcblx0LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG5cdH1cbi5sZWFmbGV0LW1hcmtlci1pY29uLFxuLmxlYWZsZXQtbWFya2VyLXNoYWRvdyB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHR9XG4vKiAubGVhZmxldC1jb250YWluZXIgc3ZnOiByZXNldCBzdmcgbWF4LXdpZHRoIGRlY2xlcmF0aW9uIHNoaXBwZWQgaW4gSm9vbWxhISAoam9vbWxhLm9yZykgMy54ICovXG4vKiAubGVhZmxldC1jb250YWluZXIgaW1nOiBtYXAgaXMgYnJva2VuIGluIEZGIGlmIHlvdSBoYXZlIG1heC13aWR0aDogMTAwJSBvbiB0aWxlcyAqL1xuLmxlYWZsZXQtY29udGFpbmVyIC5sZWFmbGV0LW92ZXJsYXktcGFuZSBzdmcge1xuXHRtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcblx0bWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG4ubGVhZmxldC1jb250YWluZXIgLmxlYWZsZXQtbWFya2VyLXBhbmUgaW1nLFxuLmxlYWZsZXQtY29udGFpbmVyIC5sZWFmbGV0LXNoYWRvdy1wYW5lIGltZyxcbi5sZWFmbGV0LWNvbnRhaW5lciAubGVhZmxldC10aWxlLXBhbmUgaW1nLFxuLmxlYWZsZXQtY29udGFpbmVyIGltZy5sZWFmbGV0LWltYWdlLWxheWVyLFxuLmxlYWZsZXQtY29udGFpbmVyIC5sZWFmbGV0LXRpbGUge1xuXHRtYXgtd2lkdGg6IG5vbmUgIWltcG9ydGFudDtcblx0bWF4LWhlaWdodDogbm9uZSAhaW1wb3J0YW50O1xuXHR3aWR0aDogYXV0bztcblx0cGFkZGluZzogMDtcblx0fVxuXG4ubGVhZmxldC1jb250YWluZXIgaW1nLmxlYWZsZXQtdGlsZSB7XG5cdC8qIFNlZTogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NjAwMTIwICovXG5cdG1peC1ibGVuZC1tb2RlOiBwbHVzLWxpZ2h0ZXI7XG59XG5cbi5sZWFmbGV0LWNvbnRhaW5lci5sZWFmbGV0LXRvdWNoLXpvb20ge1xuXHQtbXMtdG91Y2gtYWN0aW9uOiBwYW4teCBwYW4teTtcblx0dG91Y2gtYWN0aW9uOiBwYW4teCBwYW4teTtcblx0fVxuLmxlYWZsZXQtY29udGFpbmVyLmxlYWZsZXQtdG91Y2gtZHJhZyB7XG5cdC1tcy10b3VjaC1hY3Rpb246IHBpbmNoLXpvb207XG5cdC8qIEZhbGxiYWNrIGZvciBGRiB3aGljaCBkb2Vzbid0IHN1cHBvcnQgcGluY2gtem9vbSAqL1xuXHR0b3VjaC1hY3Rpb246IG5vbmU7XG5cdHRvdWNoLWFjdGlvbjogcGluY2gtem9vbTtcbn1cbi5sZWFmbGV0LWNvbnRhaW5lci5sZWFmbGV0LXRvdWNoLWRyYWcubGVhZmxldC10b3VjaC16b29tIHtcblx0LW1zLXRvdWNoLWFjdGlvbjogbm9uZTtcblx0dG91Y2gtYWN0aW9uOiBub25lO1xufVxuLmxlYWZsZXQtY29udGFpbmVyIHtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi5sZWFmbGV0LWNvbnRhaW5lciBhIHtcblx0LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDUxLCAxODEsIDIyOSwgMC40KTtcbn1cbi5sZWFmbGV0LXRpbGUge1xuXHRmaWx0ZXI6IGluaGVyaXQ7XG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0fVxuLmxlYWZsZXQtdGlsZS1sb2FkZWQge1xuXHR2aXNpYmlsaXR5OiBpbmhlcml0O1xuXHR9XG4ubGVhZmxldC16b29tLWJveCB7XG5cdHdpZHRoOiAwO1xuXHRoZWlnaHQ6IDA7XG5cdC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcblx0ICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHR6LWluZGV4OiA4MDA7XG5cdH1cbi8qIHdvcmthcm91bmQgZm9yIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTg4ODMxOSAqL1xuLmxlYWZsZXQtb3ZlcmxheS1wYW5lIHN2ZyB7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdH1cblxuLmxlYWZsZXQtcGFuZSAgICAgICAgIHsgei1pbmRleDogNDAwOyB9XG5cbi5sZWFmbGV0LXRpbGUtcGFuZSAgICB7IHotaW5kZXg6IDIwMDsgfVxuLmxlYWZsZXQtb3ZlcmxheS1wYW5lIHsgei1pbmRleDogNDAwOyB9XG4ubGVhZmxldC1zaGFkb3ctcGFuZSAgeyB6LWluZGV4OiA1MDA7IH1cbi5sZWFmbGV0LW1hcmtlci1wYW5lICB7IHotaW5kZXg6IDYwMDsgfVxuLmxlYWZsZXQtdG9vbHRpcC1wYW5lICAgeyB6LWluZGV4OiA2NTA7IH1cbi5sZWFmbGV0LXBvcHVwLXBhbmUgICB7IHotaW5kZXg6IDcwMDsgfVxuXG4ubGVhZmxldC1tYXAtcGFuZSBjYW52YXMgeyB6LWluZGV4OiAxMDA7IH1cbi5sZWFmbGV0LW1hcC1wYW5lIHN2ZyAgICB7IHotaW5kZXg6IDIwMDsgfVxuXG4ubGVhZmxldC12bWwtc2hhcGUge1xuXHR3aWR0aDogMXB4O1xuXHRoZWlnaHQ6IDFweDtcblx0fVxuLmx2bWwge1xuXHRiZWhhdmlvcjogdXJsKCNkZWZhdWx0I1ZNTCk7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR9XG5cblxuLyogY29udHJvbCBwb3NpdGlvbmluZyAqL1xuXG4ubGVhZmxldC1jb250cm9sIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR6LWluZGV4OiA4MDA7XG5cdHBvaW50ZXItZXZlbnRzOiB2aXNpYmxlUGFpbnRlZDsgLyogSUUgOS0xMCBkb2Vzbid0IGhhdmUgYXV0byAqL1xuXHRwb2ludGVyLWV2ZW50czogYXV0bztcblx0fVxuLmxlYWZsZXQtdG9wLFxuLmxlYWZsZXQtYm90dG9tIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR6LWluZGV4OiAxMDAwO1xuXHRwb2ludGVyLWV2ZW50czogbm9uZTtcblx0fVxuLmxlYWZsZXQtdG9wIHtcblx0dG9wOiAwO1xuXHR9XG4ubGVhZmxldC1yaWdodCB7XG5cdHJpZ2h0OiAwO1xuXHR9XG4ubGVhZmxldC1ib3R0b20ge1xuXHRib3R0b206IDA7XG5cdH1cbi5sZWFmbGV0LWxlZnQge1xuXHRsZWZ0OiAwO1xuXHR9XG4ubGVhZmxldC1jb250cm9sIHtcblx0ZmxvYXQ6IGxlZnQ7XG5cdGNsZWFyOiBib3RoO1xuXHR9XG4ubGVhZmxldC1yaWdodCAubGVhZmxldC1jb250cm9sIHtcblx0ZmxvYXQ6IHJpZ2h0O1xuXHR9XG4ubGVhZmxldC10b3AgLmxlYWZsZXQtY29udHJvbCB7XG5cdG1hcmdpbi10b3A6IDEwcHg7XG5cdH1cbi5sZWFmbGV0LWJvdHRvbSAubGVhZmxldC1jb250cm9sIHtcblx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0fVxuLmxlYWZsZXQtbGVmdCAubGVhZmxldC1jb250cm9sIHtcblx0bWFyZ2luLWxlZnQ6IDEwcHg7XG5cdH1cbi5sZWFmbGV0LXJpZ2h0IC5sZWFmbGV0LWNvbnRyb2wge1xuXHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdH1cblxuXG4vKiB6b29tIGFuZCBmYWRlIGFuaW1hdGlvbnMgKi9cblxuLmxlYWZsZXQtZmFkZS1hbmltIC5sZWFmbGV0LXBvcHVwIHtcblx0b3BhY2l0eTogMDtcblx0LXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgbGluZWFyO1xuXHQgICAtbW96LXRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBsaW5lYXI7XG5cdCAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGxpbmVhcjtcblx0fVxuLmxlYWZsZXQtZmFkZS1hbmltIC5sZWFmbGV0LW1hcC1wYW5lIC5sZWFmbGV0LXBvcHVwIHtcblx0b3BhY2l0eTogMTtcblx0fVxuLmxlYWZsZXQtem9vbS1hbmltYXRlZCB7XG5cdC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuXHQgICAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IDAgMDtcblx0ICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG5cdH1cbnN2Zy5sZWFmbGV0LXpvb20tYW5pbWF0ZWQge1xuXHR3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xufVxuXG4ubGVhZmxldC16b29tLWFuaW0gLmxlYWZsZXQtem9vbS1hbmltYXRlZCB7XG5cdC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4yNXMgY3ViaWMtYmV6aWVyKDAsMCwwLjI1LDEpO1xuXHQgICAtbW96LXRyYW5zaXRpb246ICAgIC1tb3otdHJhbnNmb3JtIDAuMjVzIGN1YmljLWJlemllcigwLDAsMC4yNSwxKTtcblx0ICAgICAgICB0cmFuc2l0aW9uOiAgICAgICAgIHRyYW5zZm9ybSAwLjI1cyBjdWJpYy1iZXppZXIoMCwwLDAuMjUsMSk7XG5cdH1cbi5sZWFmbGV0LXpvb20tYW5pbSAubGVhZmxldC10aWxlLFxuLmxlYWZsZXQtcGFuLWFuaW0gLmxlYWZsZXQtdGlsZSB7XG5cdC13ZWJraXQtdHJhbnNpdGlvbjogbm9uZTtcblx0ICAgLW1vei10cmFuc2l0aW9uOiBub25lO1xuXHQgICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG5cdH1cblxuLmxlYWZsZXQtem9vbS1hbmltIC5sZWFmbGV0LXpvb20taGlkZSB7XG5cdHZpc2liaWxpdHk6IGhpZGRlbjtcblx0fVxuXG5cbi8qIGN1cnNvcnMgKi9cblxuLmxlYWZsZXQtaW50ZXJhY3RpdmUge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdH1cbi5sZWFmbGV0LWdyYWIge1xuXHRjdXJzb3I6IC13ZWJraXQtZ3JhYjtcblx0Y3Vyc29yOiAgICAtbW96LWdyYWI7XG5cdGN1cnNvcjogICAgICAgICBncmFiO1xuXHR9XG4ubGVhZmxldC1jcm9zc2hhaXIsXG4ubGVhZmxldC1jcm9zc2hhaXIgLmxlYWZsZXQtaW50ZXJhY3RpdmUge1xuXHRjdXJzb3I6IGNyb3NzaGFpcjtcblx0fVxuLmxlYWZsZXQtcG9wdXAtcGFuZSxcbi5sZWFmbGV0LWNvbnRyb2wge1xuXHRjdXJzb3I6IGF1dG87XG5cdH1cbi5sZWFmbGV0LWRyYWdnaW5nIC5sZWFmbGV0LWdyYWIsXG4ubGVhZmxldC1kcmFnZ2luZyAubGVhZmxldC1ncmFiIC5sZWFmbGV0LWludGVyYWN0aXZlLFxuLmxlYWZsZXQtZHJhZ2dpbmcgLmxlYWZsZXQtbWFya2VyLWRyYWdnYWJsZSB7XG5cdGN1cnNvcjogbW92ZTtcblx0Y3Vyc29yOiAtd2Via2l0LWdyYWJiaW5nO1xuXHRjdXJzb3I6ICAgIC1tb3otZ3JhYmJpbmc7XG5cdGN1cnNvcjogICAgICAgICBncmFiYmluZztcblx0fVxuXG4vKiBtYXJrZXIgJiBvdmVybGF5cyBpbnRlcmFjdGl2aXR5ICovXG4ubGVhZmxldC1tYXJrZXItaWNvbixcbi5sZWFmbGV0LW1hcmtlci1zaGFkb3csXG4ubGVhZmxldC1pbWFnZS1sYXllcixcbi5sZWFmbGV0LXBhbmUgPiBzdmcgcGF0aCxcbi5sZWFmbGV0LXRpbGUtY29udGFpbmVyIHtcblx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdH1cblxuLmxlYWZsZXQtbWFya2VyLWljb24ubGVhZmxldC1pbnRlcmFjdGl2ZSxcbi5sZWFmbGV0LWltYWdlLWxheWVyLmxlYWZsZXQtaW50ZXJhY3RpdmUsXG4ubGVhZmxldC1wYW5lID4gc3ZnIHBhdGgubGVhZmxldC1pbnRlcmFjdGl2ZSxcbnN2Zy5sZWFmbGV0LWltYWdlLWxheWVyLmxlYWZsZXQtaW50ZXJhY3RpdmUgcGF0aCB7XG5cdHBvaW50ZXItZXZlbnRzOiB2aXNpYmxlUGFpbnRlZDsgLyogSUUgOS0xMCBkb2Vzbid0IGhhdmUgYXV0byAqL1xuXHRwb2ludGVyLWV2ZW50czogYXV0bztcblx0fVxuXG4vKiB2aXN1YWwgdHdlYWtzICovXG5cbi5sZWFmbGV0LWNvbnRhaW5lciB7XG5cdGJhY2tncm91bmQ6ICNkZGQ7XG5cdG91dGxpbmUtb2Zmc2V0OiAxcHg7XG5cdH1cbi5sZWFmbGV0LWNvbnRhaW5lciBhIHtcblx0Y29sb3I6ICMwMDc4QTg7XG5cdH1cbi5sZWFmbGV0LXpvb20tYm94IHtcblx0Ym9yZGVyOiAycHggZG90dGVkICMzOGY7XG5cdGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC41KTtcblx0fVxuXG5cbi8qIGdlbmVyYWwgdHlwb2dyYXBoeSAqL1xuLmxlYWZsZXQtY29udGFpbmVyIHtcblx0Zm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcblx0Zm9udC1zaXplOiAxMnB4O1xuXHRmb250LXNpemU6IDAuNzVyZW07XG5cdGxpbmUtaGVpZ2h0OiAxLjU7XG5cdH1cblxuXG4vKiBnZW5lcmFsIHRvb2xiYXIgc3R5bGVzICovXG5cbi5sZWFmbGV0LWJhciB7XG5cdGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuNjUpO1xuXHRib3JkZXItcmFkaXVzOiA0cHg7XG5cdH1cbi5sZWFmbGV0LWJhciBhIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG5cdHdpZHRoOiAyNnB4O1xuXHRoZWlnaHQ6IDI2cHg7XG5cdGxpbmUtaGVpZ2h0OiAyNnB4O1xuXHRkaXNwbGF5OiBibG9jaztcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdGNvbG9yOiBibGFjaztcblx0fVxuLmxlYWZsZXQtYmFyIGEsXG4ubGVhZmxldC1jb250cm9sLWxheWVycy10b2dnbGUge1xuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuXHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRkaXNwbGF5OiBibG9jaztcblx0fVxuLmxlYWZsZXQtYmFyIGE6aG92ZXIsXG4ubGVhZmxldC1iYXIgYTpmb2N1cyB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmNGY0ZjQ7XG5cdH1cbi5sZWFmbGV0LWJhciBhOmZpcnN0LWNoaWxkIHtcblx0Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNHB4O1xuXHRib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNHB4O1xuXHR9XG4ubGVhZmxldC1iYXIgYTpsYXN0LWNoaWxkIHtcblx0Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuXHRib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xuXHRib3JkZXItYm90dG9tOiBub25lO1xuXHR9XG4ubGVhZmxldC1iYXIgYS5sZWFmbGV0LWRpc2FibGVkIHtcblx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjRmNGY0O1xuXHRjb2xvcjogI2JiYjtcblx0fVxuXG4ubGVhZmxldC10b3VjaCAubGVhZmxldC1iYXIgYSB7XG5cdHdpZHRoOiAzMHB4O1xuXHRoZWlnaHQ6IDMwcHg7XG5cdGxpbmUtaGVpZ2h0OiAzMHB4O1xuXHR9XG4ubGVhZmxldC10b3VjaCAubGVhZmxldC1iYXIgYTpmaXJzdC1jaGlsZCB7XG5cdGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDJweDtcblx0Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDJweDtcblx0fVxuLmxlYWZsZXQtdG91Y2ggLmxlYWZsZXQtYmFyIGE6bGFzdC1jaGlsZCB7XG5cdGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDJweDtcblx0Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDJweDtcblx0fVxuXG4vKiB6b29tIGNvbnRyb2wgKi9cblxuLmxlYWZsZXQtY29udHJvbC16b29tLWluLFxuLmxlYWZsZXQtY29udHJvbC16b29tLW91dCB7XG5cdGZvbnQ6IGJvbGQgMThweCAnTHVjaWRhIENvbnNvbGUnLCBNb25hY28sIG1vbm9zcGFjZTtcblx0dGV4dC1pbmRlbnQ6IDFweDtcblx0fVxuXG4ubGVhZmxldC10b3VjaCAubGVhZmxldC1jb250cm9sLXpvb20taW4sIC5sZWFmbGV0LXRvdWNoIC5sZWFmbGV0LWNvbnRyb2wtem9vbS1vdXQgIHtcblx0Zm9udC1zaXplOiAyMnB4O1xuXHR9XG5cblxuLyogbGF5ZXJzIGNvbnRyb2wgKi9cblxuLmxlYWZsZXQtY29udHJvbC1sYXllcnMge1xuXHRib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjQpO1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHRib3JkZXItcmFkaXVzOiA1cHg7XG5cdH1cbi5sZWFmbGV0LWNvbnRyb2wtbGF5ZXJzLXRvZ2dsZSB7XG5cdGJhY2tncm91bmQtaW1hZ2U6IHVybChpbWFnZXMvbGF5ZXJzLnBuZyk7XG5cdHdpZHRoOiAzNnB4O1xuXHRoZWlnaHQ6IDM2cHg7XG5cdH1cbi5sZWFmbGV0LXJldGluYSAubGVhZmxldC1jb250cm9sLWxheWVycy10b2dnbGUge1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaW1hZ2VzL2xheWVycy0yeC5wbmcpO1xuXHRiYWNrZ3JvdW5kLXNpemU6IDI2cHggMjZweDtcblx0fVxuLmxlYWZsZXQtdG91Y2ggLmxlYWZsZXQtY29udHJvbC1sYXllcnMtdG9nZ2xlIHtcblx0d2lkdGg6IDQ0cHg7XG5cdGhlaWdodDogNDRweDtcblx0fVxuLmxlYWZsZXQtY29udHJvbC1sYXllcnMgLmxlYWZsZXQtY29udHJvbC1sYXllcnMtbGlzdCxcbi5sZWFmbGV0LWNvbnRyb2wtbGF5ZXJzLWV4cGFuZGVkIC5sZWFmbGV0LWNvbnRyb2wtbGF5ZXJzLXRvZ2dsZSB7XG5cdGRpc3BsYXk6IG5vbmU7XG5cdH1cbi5sZWFmbGV0LWNvbnRyb2wtbGF5ZXJzLWV4cGFuZGVkIC5sZWFmbGV0LWNvbnRyb2wtbGF5ZXJzLWxpc3Qge1xuXHRkaXNwbGF5OiBibG9jaztcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR9XG4ubGVhZmxldC1jb250cm9sLWxheWVycy1leHBhbmRlZCB7XG5cdHBhZGRpbmc6IDZweCAxMHB4IDZweCA2cHg7XG5cdGNvbG9yOiAjMzMzO1xuXHRiYWNrZ3JvdW5kOiAjZmZmO1xuXHR9XG4ubGVhZmxldC1jb250cm9sLWxheWVycy1zY3JvbGxiYXIge1xuXHRvdmVyZmxvdy15OiBzY3JvbGw7XG5cdG92ZXJmbG93LXg6IGhpZGRlbjtcblx0cGFkZGluZy1yaWdodDogNXB4O1xuXHR9XG4ubGVhZmxldC1jb250cm9sLWxheWVycy1zZWxlY3RvciB7XG5cdG1hcmdpbi10b3A6IDJweDtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3A6IDFweDtcblx0fVxuLmxlYWZsZXQtY29udHJvbC1sYXllcnMgbGFiZWwge1xuXHRkaXNwbGF5OiBibG9jaztcblx0Zm9udC1zaXplOiAxM3B4O1xuXHRmb250LXNpemU6IDEuMDgzMzNlbTtcblx0fVxuLmxlYWZsZXQtY29udHJvbC1sYXllcnMtc2VwYXJhdG9yIHtcblx0aGVpZ2h0OiAwO1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcblx0bWFyZ2luOiA1cHggLTEwcHggNXB4IC02cHg7XG5cdH1cblxuLyogRGVmYXVsdCBpY29uIFVSTHMgKi9cbi5sZWFmbGV0LWRlZmF1bHQtaWNvbi1wYXRoIHsgLyogdXNlZCBvbmx5IGluIHBhdGgtZ3Vlc3NpbmcgaGV1cmlzdGljLCBzZWUgTC5JY29uLkRlZmF1bHQgKi9cblx0YmFja2dyb3VuZC1pbWFnZTogdXJsKGltYWdlcy9tYXJrZXItaWNvbi5wbmcpO1xuXHR9XG5cblxuLyogYXR0cmlidXRpb24gYW5kIHNjYWxlIGNvbnRyb2xzICovXG5cbi5sZWFmbGV0LWNvbnRhaW5lciAubGVhZmxldC1jb250cm9sLWF0dHJpYnV0aW9uIHtcblx0YmFja2dyb3VuZDogI2ZmZjtcblx0YmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuXHRtYXJnaW46IDA7XG5cdH1cbi5sZWFmbGV0LWNvbnRyb2wtYXR0cmlidXRpb24sXG4ubGVhZmxldC1jb250cm9sLXNjYWxlLWxpbmUge1xuXHRwYWRkaW5nOiAwIDVweDtcblx0Y29sb3I6ICMzMzM7XG5cdGxpbmUtaGVpZ2h0OiAxLjQ7XG5cdH1cbi5sZWFmbGV0LWNvbnRyb2wtYXR0cmlidXRpb24gYSB7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0fVxuLmxlYWZsZXQtY29udHJvbC1hdHRyaWJ1dGlvbiBhOmhvdmVyLFxuLmxlYWZsZXQtY29udHJvbC1hdHRyaWJ1dGlvbiBhOmZvY3VzIHtcblx0dGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdH1cbi5sZWFmbGV0LWF0dHJpYnV0aW9uLWZsYWcge1xuXHRkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDtcblx0dmVydGljYWwtYWxpZ246IGJhc2VsaW5lICFpbXBvcnRhbnQ7XG5cdHdpZHRoOiAxZW07XG5cdGhlaWdodDogMC42NjY5ZW07XG5cdH1cbi5sZWFmbGV0LWxlZnQgLmxlYWZsZXQtY29udHJvbC1zY2FsZSB7XG5cdG1hcmdpbi1sZWZ0OiA1cHg7XG5cdH1cbi5sZWFmbGV0LWJvdHRvbSAubGVhZmxldC1jb250cm9sLXNjYWxlIHtcblx0bWFyZ2luLWJvdHRvbTogNXB4O1xuXHR9XG4ubGVhZmxldC1jb250cm9sLXNjYWxlLWxpbmUge1xuXHRib3JkZXI6IDJweCBzb2xpZCAjNzc3O1xuXHRib3JkZXItdG9wOiBub25lO1xuXHRsaW5lLWhlaWdodDogMS4xO1xuXHRwYWRkaW5nOiAycHggNXB4IDFweDtcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblx0LW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHQgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cdGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcblx0dGV4dC1zaGFkb3c6IDFweCAxcHggI2ZmZjtcblx0fVxuLmxlYWZsZXQtY29udHJvbC1zY2FsZS1saW5lOm5vdCg6Zmlyc3QtY2hpbGQpIHtcblx0Ym9yZGVyLXRvcDogMnB4IHNvbGlkICM3Nzc7XG5cdGJvcmRlci1ib3R0b206IG5vbmU7XG5cdG1hcmdpbi10b3A6IC0ycHg7XG5cdH1cbi5sZWFmbGV0LWNvbnRyb2wtc2NhbGUtbGluZTpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpIHtcblx0Ym9yZGVyLWJvdHRvbTogMnB4IHNvbGlkICM3Nzc7XG5cdH1cblxuLmxlYWZsZXQtdG91Y2ggLmxlYWZsZXQtY29udHJvbC1hdHRyaWJ1dGlvbixcbi5sZWFmbGV0LXRvdWNoIC5sZWFmbGV0LWNvbnRyb2wtbGF5ZXJzLFxuLmxlYWZsZXQtdG91Y2ggLmxlYWZsZXQtYmFyIHtcblx0Ym94LXNoYWRvdzogbm9uZTtcblx0fVxuLmxlYWZsZXQtdG91Y2ggLmxlYWZsZXQtY29udHJvbC1sYXllcnMsXG4ubGVhZmxldC10b3VjaCAubGVhZmxldC1iYXIge1xuXHRib3JkZXI6IDJweCBzb2xpZCByZ2JhKDAsMCwwLDAuMik7XG5cdGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cdH1cblxuXG4vKiBwb3B1cCAqL1xuXG4ubGVhZmxldC1wb3B1cCB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHR9XG4ubGVhZmxldC1wb3B1cC1jb250ZW50LXdyYXBwZXIge1xuXHRwYWRkaW5nOiAxcHg7XG5cdHRleHQtYWxpZ246IGxlZnQ7XG5cdGJvcmRlci1yYWRpdXM6IDEycHg7XG5cdH1cbi5sZWFmbGV0LXBvcHVwLWNvbnRlbnQge1xuXHRtYXJnaW46IDEzcHggMjRweCAxM3B4IDIwcHg7XG5cdGxpbmUtaGVpZ2h0OiAxLjM7XG5cdGZvbnQtc2l6ZTogMTNweDtcblx0Zm9udC1zaXplOiAxLjA4MzMzZW07XG5cdG1pbi1oZWlnaHQ6IDFweDtcblx0fVxuLmxlYWZsZXQtcG9wdXAtY29udGVudCBwIHtcblx0bWFyZ2luOiAxN3B4IDA7XG5cdG1hcmdpbjogMS4zZW0gMDtcblx0fVxuLmxlYWZsZXQtcG9wdXAtdGlwLWNvbnRhaW5lciB7XG5cdHdpZHRoOiA0MHB4O1xuXHRoZWlnaHQ6IDIwcHg7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogNTAlO1xuXHRtYXJnaW4tdG9wOiAtMXB4O1xuXHRtYXJnaW4tbGVmdDogLTIwcHg7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHR9XG4ubGVhZmxldC1wb3B1cC10aXAge1xuXHR3aWR0aDogMTdweDtcblx0aGVpZ2h0OiAxN3B4O1xuXHRwYWRkaW5nOiAxcHg7XG5cblx0bWFyZ2luOiAtMTBweCBhdXRvIDA7XG5cdHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuXG5cdC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXHQgICAtbW96LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcblx0ICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cdCAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuXHR9XG4ubGVhZmxldC1wb3B1cC1jb250ZW50LXdyYXBwZXIsXG4ubGVhZmxldC1wb3B1cC10aXAge1xuXHRiYWNrZ3JvdW5kOiB3aGl0ZTtcblx0Y29sb3I6ICMzMzM7XG5cdGJveC1zaGFkb3c6IDAgM3B4IDE0cHggcmdiYSgwLDAsMCwwLjQpO1xuXHR9XG4ubGVhZmxldC1jb250YWluZXIgYS5sZWFmbGV0LXBvcHVwLWNsb3NlLWJ1dHRvbiB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRyaWdodDogMDtcblx0Ym9yZGVyOiBub25lO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdHdpZHRoOiAyNHB4O1xuXHRoZWlnaHQ6IDI0cHg7XG5cdGZvbnQ6IDE2cHgvMjRweCBUYWhvbWEsIFZlcmRhbmEsIHNhbnMtc2VyaWY7XG5cdGNvbG9yOiAjNzU3NTc1O1xuXHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXHR9XG4ubGVhZmxldC1jb250YWluZXIgYS5sZWFmbGV0LXBvcHVwLWNsb3NlLWJ1dHRvbjpob3Zlcixcbi5sZWFmbGV0LWNvbnRhaW5lciBhLmxlYWZsZXQtcG9wdXAtY2xvc2UtYnV0dG9uOmZvY3VzIHtcblx0Y29sb3I6ICM1ODU4NTg7XG5cdH1cbi5sZWFmbGV0LXBvcHVwLXNjcm9sbGVkIHtcblx0b3ZlcmZsb3c6IGF1dG87XG5cdH1cblxuLmxlYWZsZXQtb2xkaWUgLmxlYWZsZXQtcG9wdXAtY29udGVudC13cmFwcGVyIHtcblx0LW1zLXpvb206IDE7XG5cdH1cbi5sZWFmbGV0LW9sZGllIC5sZWFmbGV0LXBvcHVwLXRpcCB7XG5cdHdpZHRoOiAyNHB4O1xuXHRtYXJnaW46IDAgYXV0bztcblxuXHQtbXMtZmlsdGVyOiBcInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5NYXRyaXgoTTExPTAuNzA3MTA2NzgsIE0xMj0wLjcwNzEwNjc4LCBNMjE9LTAuNzA3MTA2NzgsIE0yMj0wLjcwNzEwNjc4KVwiO1xuXHRmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5NYXRyaXgoTTExPTAuNzA3MTA2NzgsIE0xMj0wLjcwNzEwNjc4LCBNMjE9LTAuNzA3MTA2NzgsIE0yMj0wLjcwNzEwNjc4KTtcblx0fVxuXG4ubGVhZmxldC1vbGRpZSAubGVhZmxldC1jb250cm9sLXpvb20sXG4ubGVhZmxldC1vbGRpZSAubGVhZmxldC1jb250cm9sLWxheWVycyxcbi5sZWFmbGV0LW9sZGllIC5sZWFmbGV0LXBvcHVwLWNvbnRlbnQtd3JhcHBlcixcbi5sZWFmbGV0LW9sZGllIC5sZWFmbGV0LXBvcHVwLXRpcCB7XG5cdGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG5cdH1cblxuXG4vKiBkaXYgaWNvbiAqL1xuXG4ubGVhZmxldC1kaXYtaWNvbiB7XG5cdGJhY2tncm91bmQ6ICNmZmY7XG5cdGJvcmRlcjogMXB4IHNvbGlkICM2NjY7XG5cdH1cblxuXG4vKiBUb29sdGlwICovXG4vKiBCYXNlIHN0eWxlcyBmb3IgdGhlIGVsZW1lbnQgdGhhdCBoYXMgYSB0b29sdGlwICovXG4ubGVhZmxldC10b29sdGlwIHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRwYWRkaW5nOiA2cHg7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG5cdGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG5cdGJvcmRlci1yYWRpdXM6IDNweDtcblx0Y29sb3I6ICMyMjI7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cdC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XG5cdC1tcy11c2VyLXNlbGVjdDogbm9uZTtcblx0dXNlci1zZWxlY3Q6IG5vbmU7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjQpO1xuXHR9XG4ubGVhZmxldC10b29sdGlwLmxlYWZsZXQtaW50ZXJhY3RpdmUge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuXHR9XG4ubGVhZmxldC10b29sdGlwLXRvcDpiZWZvcmUsXG4ubGVhZmxldC10b29sdGlwLWJvdHRvbTpiZWZvcmUsXG4ubGVhZmxldC10b29sdGlwLWxlZnQ6YmVmb3JlLFxuLmxlYWZsZXQtdG9vbHRpcC1yaWdodDpiZWZvcmUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xuXHRib3JkZXI6IDZweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdGNvbnRlbnQ6IFwiXCI7XG5cdH1cblxuLyogRGlyZWN0aW9ucyAqL1xuXG4ubGVhZmxldC10b29sdGlwLWJvdHRvbSB7XG5cdG1hcmdpbi10b3A6IDZweDtcbn1cbi5sZWFmbGV0LXRvb2x0aXAtdG9wIHtcblx0bWFyZ2luLXRvcDogLTZweDtcbn1cbi5sZWFmbGV0LXRvb2x0aXAtYm90dG9tOmJlZm9yZSxcbi5sZWFmbGV0LXRvb2x0aXAtdG9wOmJlZm9yZSB7XG5cdGxlZnQ6IDUwJTtcblx0bWFyZ2luLWxlZnQ6IC02cHg7XG5cdH1cbi5sZWFmbGV0LXRvb2x0aXAtdG9wOmJlZm9yZSB7XG5cdGJvdHRvbTogMDtcblx0bWFyZ2luLWJvdHRvbTogLTEycHg7XG5cdGJvcmRlci10b3AtY29sb3I6ICNmZmY7XG5cdH1cbi5sZWFmbGV0LXRvb2x0aXAtYm90dG9tOmJlZm9yZSB7XG5cdHRvcDogMDtcblx0bWFyZ2luLXRvcDogLTEycHg7XG5cdG1hcmdpbi1sZWZ0OiAtNnB4O1xuXHRib3JkZXItYm90dG9tLWNvbG9yOiAjZmZmO1xuXHR9XG4ubGVhZmxldC10b29sdGlwLWxlZnQge1xuXHRtYXJnaW4tbGVmdDogLTZweDtcbn1cbi5sZWFmbGV0LXRvb2x0aXAtcmlnaHQge1xuXHRtYXJnaW4tbGVmdDogNnB4O1xufVxuLmxlYWZsZXQtdG9vbHRpcC1sZWZ0OmJlZm9yZSxcbi5sZWFmbGV0LXRvb2x0aXAtcmlnaHQ6YmVmb3JlIHtcblx0dG9wOiA1MCU7XG5cdG1hcmdpbi10b3A6IC02cHg7XG5cdH1cbi5sZWFmbGV0LXRvb2x0aXAtbGVmdDpiZWZvcmUge1xuXHRyaWdodDogMDtcblx0bWFyZ2luLXJpZ2h0OiAtMTJweDtcblx0Ym9yZGVyLWxlZnQtY29sb3I6ICNmZmY7XG5cdH1cbi5sZWFmbGV0LXRvb2x0aXAtcmlnaHQ6YmVmb3JlIHtcblx0bGVmdDogMDtcblx0bWFyZ2luLWxlZnQ6IC0xMnB4O1xuXHRib3JkZXItcmlnaHQtY29sb3I6ICNmZmY7XG5cdH1cblxuLyogUHJpbnRpbmcgKi9cblxuQG1lZGlhIHByaW50IHtcblx0LyogUHJldmVudCBwcmludGVycyBmcm9tIHJlbW92aW5nIGJhY2tncm91bmQtaW1hZ2VzIG9mIGNvbnRyb2xzLiAqL1xuXHQubGVhZmxldC1jb250cm9sIHtcblx0XHQtd2Via2l0LXByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7XG5cdFx0cHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDtcblx0XHR9XG5cdH1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/