/*!**************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/app.css ***!
  \**************************************************************************************************************/
:root {
    --tosa-orange: #f14910;
    --tosa-blue: #4545DB;
    --tosa-blue-light: #E6F3F9;
    --tosa-teal: #0d6b6e;
    --tosa-yellow: #FFE350;
    --tosa-light-blue: #E6F3F9;
}

@media (min-width: 1200px) {
    .container-xl {
        max-width: 1600px;
    }
}

.container-xl {
    padding-left: clamp(1rem, 2.5vw, 2rem) !important;
    padding-right: clamp(1rem, 2.5vw, 2rem) !important;
}

body,
button,
input,
select,
textarea,
optgroup {
    font-family: 'Epilogue', sans-serif !important;
}

:root {
    --bs-body-color: #1D1D1B;
    --bs-body-color-rgb: 29, 29, 27;
}
body {
    color: #1D1D1B;
}
/* Force Epilogue everywhere — overrides Bootstrap defaults and any inline
   font-family set by external content (e.g. DropInBlog post HTML). */
*,
*::before,
*::after {
    font-family: inherit;
}
.dib-post,
.dib-post-content,
.dib-post-content * {
    font-family: 'Epilogue', sans-serif !important;
}

/* ── Reusable Components ─────────────────────────── */

/* Section dots - three small orange circles used as decorators before section titles */
.section-dots span,
.hero__dots span {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--tosa-orange);
    margin-right: 4px;
}

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

.section-title {
    font-size: clamp(1.75rem, 3.5vw, 2.75rem);
    color: #1a1a2e;
}

/* CTA Buttons - orange buttons with clip-path cut on top-right corner */
.cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 32px;
    font-size: 1rem;
    font-weight: 600;
    white-space: nowrap;
    text-decoration: none;
    border: none;
    cursor: pointer;
    clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 16px, 100% 100%, 0 100%);
    transition: background-color 0.2s;
}

.cta-btn--orange {
    background-color: var(--tosa-orange);
    color: #fff;
}

.cta-btn--orange:hover {
    background-color: #d63d09;
    color: #fff;
}

.cta-btn__icon {
    font-size: 1.25rem;
    font-weight: 300;
}

/* ── Menubar ──────────────────────────────────────── */
/* Keep all existing menubar styles */
.navbar { min-height: 72px; padding-top: 0; padding-bottom: 0; }
.navbar .nav-link { color: #1a1a1a !important; }
.menubar__cta-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 20px; font-size: 0.875rem; font-weight: 600; white-space: nowrap; cursor: pointer; clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%); }
.menubar__cta-btn--dark { background-color: #1a1a1a; color: #fff; }
.menubar__cta-btn--dark:hover { background-color: #333; color: #fff; }
.menubar__cta-btn--orange { background-color: var(--tosa-orange); color: #fff; }
.menubar__cta-btn--orange:hover { background-color: #d63d09; color: #fff; }
.menubar__chevron { transition: transform 0.2s ease; -webkit-text-stroke: 0.8px currentColor; }
.dropdown.show .menubar__chevron, .nav-item.show .menubar__chevron { transform: rotate(180deg); }

/* Navbar nav links spacing */
.navbar .navbar-nav .nav-link,
.navbar .navbar-nav .menubar__link {
    padding: 1.5rem 1rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: #1a1a1a !important;
    position: relative;
    cursor: default;
}
.navbar .navbar-nav .menubar__link:hover {
    color: var(--tosa-orange) !important;
}
.navbar .navbar-nav .menubar__item:not(.dropdown) .menubar__link {
    cursor: pointer;
}

.navbar .container-xl {
    max-width: 99%;
    min-height: 72px;
    align-items: stretch;
}

.navbar #menubarNav {
    min-height: 72px;
    align-items: stretch;
}

.navbar .navbar-nav {
    min-height: 72px;
    align-items: stretch;
    margin-left: auto !important;
    margin-right: auto !important;
}

.navbar .navbar-brand {
    display: flex;
    align-items: center;
}
/* Active / open state: orange underline + 3 orange dots centered below the link */
.menubar__item {
    position: relative;
}
.menubar__item::after {
    /* orange underline aligned with bottom of navbar */
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 3px;
    background-color: var(--tosa-orange);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.2s ease;
    pointer-events: none;
}
.menubar__item .menubar__link::before {
    /* 3 orange dots centered below the link */
    content: "• • •";
    position: absolute;
    left: 50%;
    bottom: 0.5rem;
    transform: translateX(-50%);
    color: var(--tosa-orange);
    font-size: 0.65rem;
    letter-spacing: 3px;
    line-height: 1;
    font-weight: 700;
    white-space: nowrap;
    opacity: 0;
    transition: opacity 0.2s ease;
    pointer-events: none;
}
.navbar ul.menubar__dropdown::before{
    content: "";
}
.menubar__item.show:not(.menubar__item--account)::after,
.menubar__item:hover:not(.menubar__item--account)::after,
.menubar__item:not(.menubar__item--account):has(.menubar__link[aria-expanded="true"])::after {
    transform: scaleX(1);
}
.menubar__item.show:not(.menubar__item--account) .menubar__link::before,
.menubar__item:hover:not(.menubar__item--account) .menubar__link::before,
.menubar__item:not(.menubar__item--account) .menubar__link[aria-expanded="true"]::before {
    opacity: 1;
}

/* Dropdown menus — cards stacked with no gap, no rounded corners */
.navbar .menubar__dropdown {
    margin-top: 1.2rem;
    padding: 0;
    min-width: 280px;
    border: none;
    background: transparent;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    border-radius: 0;
    overflow: visible;
    position: absolute;
}
/* Upward-pointing arrow on top of the first submenu item */
.navbar .menubar__dropdown::before {
    content: "";
    position: absolute;
    top: -8px;
    left: 24px;
    width: 0;
    height: 0;
    border-left: 9px solid transparent;
    border-right: 9px solid transparent;
    border-bottom: 9px solid #fff;
    filter: drop-shadow(0 -2px 2px rgba(0, 0, 0, 0.06));
    z-index: 1;
}
/* For the Account dropdown (menu-end), place the arrow on the right side */
.navbar .dropdown-menu-end.menubar__dropdown::before {
    left: auto;
    right: 24px;
}
.navbar .menubar__dropdown > li {
    margin: 0 !important;
}
.navbar .menubar__dropdown .menubar__dropdown-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: #1a1a1a;
    background-color: #fff;
    border-radius: 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    transition: color 0.15s ease, background-color 0.15s ease;
}
.navbar .menubar__dropdown > li:last-child .menubar__dropdown-item {
    border-bottom: none;
}
.navbar .menubar__dropdown .menubar__dropdown-item i.bi-chevron-right {
    color: var(--tosa-orange);
    font-size: 0.875rem;
    font-weight: 700;
    -webkit-text-stroke: 0.5px currentColor;
}
.navbar .menubar__dropdown .menubar__dropdown-item:hover,
.navbar .menubar__dropdown .menubar__dropdown-item:focus {
    color: var(--tosa-orange);
    background-color: #fff6f1;
}

/* Nested submenu (used on Solutions > Certifications) */
.navbar .menubar__has-submenu {
    position: relative;
}
.navbar .menubar__submenu {
    display: none;
    position: absolute;
    top: 0;
    left: 100%;
    margin: 0 0 0 4px;
    min-width: 260px;
}
.navbar .menubar__submenu::before {
    /* Move the arrow to the left side so it points back at the parent item */
    top: 16px;
    left: -8px;
    border-left: 0;
    border-right: 9px solid #fff;
    border-top: 9px solid transparent;
    border-bottom: 9px solid transparent;
    filter: drop-shadow(-2px 0 2px rgba(0, 0, 0, 0.06));
}

/* Open dropdown on hover for desktop */
@media (min-width: 992px) {
    .navbar .nav-item.dropdown:hover > .dropdown-menu,
    .navbar .dropdown:hover > .dropdown-menu,
    .navbar .menubar__item--account:hover > .dropdown-menu {
        display: block;
    }
    .navbar .menubar__has-submenu:hover > .menubar__submenu,
    .navbar .menubar__has-submenu:focus-within > .menubar__submenu {
        display: block;
    }

    /* Invisible hover bridge — fills the 1.2rem (2rem for the Account
       menu) gap between the nav-link and the dropdown so the cursor
       can travel between them without losing :hover. Pure hover target,
       no visible change. */
    .navbar .menubar__dropdown::after {
        content: "";
        position: absolute;
        top: -1.2rem;
        left: 0;
        right: 0;
        height: 1.2rem;
        background: transparent;
        pointer-events: auto;
    }
    .navbar .menubar__item--account > .dropdown-menu-end::after {
        top: -2rem;
        height: 2rem;
    }
}

.navbar .menubar__item--account {
    position: relative;
}
.navbar .menubar__item--account > .dropdown-menu-end {
    right: 0;
    left: auto;
    margin-top: 2rem;
}

/* ── Hero ─────────────────────────────────────────── */
/* Full width hero with background image covering the entire section. Text overlays on the left. */
.hero {
    position: relative;
    min-height: 85vh;
}

.hero__bg {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.hero__bg-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero__bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(255,255,255,0.92) 0%, rgba(255,255,255,0.7) 40%, rgba(255,255,255,0) 65%);
}

.hero__title {
    font-size: clamp(2.25rem, 4.5vw, 3.5rem);
    color: #1a1a2e;
}

.hero__subtitle {
    color: #555;
    max-width: 500px;
}

.min-vh-75 {
    min-height: 75vh;
}

/* ── Beyond Diploma ───────────────────────────────── */
.beyond-diploma {
    background: #fff;
    position: relative;
    overflow: hidden;
    padding: 80px 0;
}

/* Vector.png decorative shape on the left */
.beyond-diploma::before {
    content: '';
    position: absolute;
    top: 40px;
    left: 0;
    width: 49%;
    height: 110%;
    background: url(/build/images/vector-beyond.0e5c4489.png) no-repeat left top;
    background-size: cover;
    pointer-events: none;
    z-index: 0;
    opacity: 0.5;
}

.beyond-diploma .container-xl {
    position: relative;
    z-index: 1;
}



/* Grey dots above the beyond-diploma image */
.beyond-diploma__grey-dots {
    display: flex;
    gap: 16px;
    margin-bottom: 16px;
}

.beyond-diploma__grey-dots span {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #c0c0c0;
    margin-right: 0;
}

.beyond-diploma__image-wrapper {
    position: relative;
    display: inline-block;
}

.beyond-diploma__image {
    display: block;
    width: 480px;
    height: 580px;
    object-fit: cover;
    object-position: 60% 15%;
    clip-path: polygon(0 0, 82% 0, 100% 14%, 100% 100%, 0 100%);
    border-radius: 0;
}

/* Stat card overlapping the image at bottom-right */
.beyond-diploma__stat-card {
    position: absolute;
    bottom: 40px;
    right: -60px;
    background: #fff;
    border-radius: 0;
    padding: 22px 24px;
    box-shadow: 0 8px 40px rgba(0,0,0,0.08);
    max-width: 210px;
    z-index: 3;
}

/* Blue circle briefcase icon floating at top-right of stat card */
.beyond-diploma__stat-icon {
    position: absolute;
    top: -20px;
    right: -20px;
    width: 52px;
    height: 52px;
    background: var(--tosa-blue);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 1.5rem;
    z-index: 4;
    box-shadow: 0 4px 16px rgba(69,69,219,0.3);
}

.beyond-diploma__stat-number {
    font-size: 2.6rem;
    font-weight: 700;
    color: var(--tosa-blue);
    line-height: 1;
    margin-bottom: 12px;
    padding-left: 12px;
    border-left: 4px solid var(--tosa-blue);
}

.beyond-diploma__stat-text {
    font-size: 0.875rem;
    color: #666;
    margin: 0;
    line-height: 1.4;
}

/* Software icons row below the image */
.beyond-diploma__software-icons {
    display: flex;
    gap: 20px;
    margin-top: 40px;
}

.beyond-diploma__sw-icon {
    width: 64px;
    height: 64px;
    background: #f5f5f5;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.beyond-diploma__sw-icon img {
    width: 36px;
    height: 36px;
    object-fit: contain;
}

/* Right column text styling */
.beyond-diploma .section-title {
    color: #1a1a2e;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.15;
}

/* Highlighted text inside beyond-diploma paragraph */
.text-highlight {
    color: var(--tosa-orange);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ── Certify Skills ───────────────────────────────── */
.certify-skills {
    background-color: #f0f7f7;
    background-image: url(/build/images/vector-certifyslider.cff1111f.png), linear-gradient(180deg, #f0f7f7 0%, #fff 100%);
    background-repeat: no-repeat, no-repeat;
    background-position: center center, center center;
    background-size: auto, cover;
    overflow: hidden;
}

/* Swiper container - fade aux bords gauche et droit */
.swiper.certify-swiper {
    width: 100%;
    overflow: visible !important;
    padding-top: 30px;
    padding-bottom: 40px;
    -webkit-mask-image: linear-gradient(
        to right,
        transparent 0%,
        black 12%,
        black 88%,
        transparent 100%
    );
    mask-image: linear-gradient(
        to right,
        transparent 0%,
        black 12%,
        black 88%,
        transparent 100%
    );
}

.certify-swiper .swiper-wrapper {
    transition-timing-function: linear !important;
    -webkit-transition-timing-function: linear !important;
    align-items: center;
    will-change: transform;
    overflow: visible !important;
}

/* Override Swiper default width: 100% on slides - fixed width */
.certify-swiper .swiper-slide {
    width: 260px !important;
    min-width: 260px !important;
    max-width: 260px !important;
    height: auto;
    display: flex;
    align-items: stretch;
}

.certify-card {
    background: #fff;
    padding: 32px 20px;
    text-align: center;
    width: 260px;
    min-width: 260px;
    max-width: 260px;
    height: 280px;
    min-height: 280px;
    max-height: 280px;
    overflow: hidden;
    flex-shrink: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    box-shadow: 0px 3px 20px #dedede;
}

.certify-card__icon {
    width: 100px;
    height: 100px;
    min-width: 100px;
    min-height: 100px;
    margin: auto;
    margin-bottom: 2em;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0;
}

.certify-card__icon img {
    width: 100px !important;
    height: 100px !important;
    min-width: 100px;
    min-height: 100px;
    object-fit: contain;
    object-position: center;
    display: block;
    flex-shrink: 0;
}

/* Bundle cards — the bundle banner is wide, so override the square icon slot */
.certify-card--bundle {
    color: inherit;
}
.certify-card__icon--bundle {
    width: 100%;
    height: 120px;
    min-width: 0;
    min-height: 0;
    margin-bottom: 1.2em;
}
.certify-card__icon--bundle img {
    width: 100% !important;
    height: 100% !important;
    min-width: 0;
    min-height: 0;
    object-fit: contain;
}

.certify-card__label {
    font-size: 0.8rem;
    font-weight: 600;
    word-break: break-word;
    overflow-wrap: break-word;
    white-space: normal;
    width: 100%;
    color: #1a1a2e;
    margin: 0;
    line-height: 1.3;
    min-height: 2.6em;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ── Certification Offerings ──────────────────────── */
.cert-offerings {
    position: relative;
    min-height: 600px;
    background-color: #3846d8;
    background-image: url("/build/images/Group%20108.2387bf19.png");
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

.cert-offerings__heading {
    display: inline-block;
    background: #FFE350;
    color: #1a1a2e;
    font-weight: 700;
    border-radius: 50px;
    padding: 14px 48px;
    white-space: nowrap;
    margin-bottom: 1.25rem;
    font-size: clamp(1rem, 2.4vw, 1.9rem);
    line-height: 1.2;
}
.cert-offerings__lead {
    max-width: 720px;
    color: #fff;
    font-size: 1.0625rem;
    line-height: 1.6;
}
.cert-offerings__tabs-label {
    color: #fff;
    letter-spacing: 0.02em;
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 1rem;
}

.cert-offerings__bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.cert-offerings__bg-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center;
}

.cert-offerings__arrow {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: auto;
    object-fit: contain;
    object-position: left center;
    z-index: 1;
    pointer-events: none;
}

.cert-offerings__card {
    background: #fff;
    border-radius: 0;
    padding: 48px;
    position: relative;
    z-index: 2;
}

.cert-offerings__logo-item {
    padding: 8px 0;
}

.cert-offerings__logo-line {
    height: 3px;
    width: 100%;
    border-radius: 2px;
}

/* ── Learning Platform ────────────────────────────── */
.learning-platform {
    background-color: #fff;
    background-image: url(/build/images/gradient-bg.9466a959.png);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
}

.platform-feature__icon {
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

/* Subtle shadow ellipse below the icon */
.platform-feature__icon::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 50%;
    transform: translateX(-50%);
    width: 44px;
    height: 8px;
    border-radius: 50%;
    background: rgba(69, 69, 219, 0.08);
    filter: blur(3px);
}

.platform-feature__icon img,
.platform-feature__icon video {
    width: 48px;
    height: 48px;
    object-fit: contain;
    position: relative;
    z-index: 1;
}

/* Why-choose & Who-we-serve icon size constraints */
.why-card__icon {
    width: 64px;
    height: 64px;
    margin-bottom: 12px;
}
.why-card__icon img,
.why-card__icon video {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
/* ── Who We Serve ─────────────────────────────────── */
.who-we-serve {
    background: #fff;
    padding: 40px 0;
    position: relative;
    overflow: hidden;
}

.who-we-serve .container-xl {
    background: var(--tosa-blue) url(/build/images/vector-whoweserve.67be3c7f.png) no-repeat;
    background-size: countain;
    color: #fff;
    padding: 64px 56px;
    position: relative;
    overflow: hidden;
    background-position-x: 80%;
    clip-path: polygon(0 0, 94% 0, 100% 14%, 100% 100%, 0 100%);
}

.who-we-serve .col-lg-7{
    padding-top: 4em;
}

.who-we-serve .col-lg-5{
   padding: 0% 3%;
}

.who-we-serve .section-dots--orange span{
    background: var(--tosa-yellow) !important;
}
.who-we-serve .section-title {
    color: #fff;
}

.who-we-serve p {
    color: rgba(255,255,255,0.85);
}

.section-dots--orange span {
    background: var(--tosa-orange) !important;
}

.section-dots--yellow span {
    background: var(--tosa-yellow) !important;
}

.serve-card {
    background: #fff;
    padding: 41px 20px;
    text-align: center;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 0;
}

.serve-card__title {
    font-size: 1rem;
    color: #1a1a2e;
    margin: 0;
}

.serve-card__icon {
    width: 100px;
    height: 100px;
    margin-bottom: 66px;
}
.serve-card__icon img,
.serve-card__icon video {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.platform-feature__title {
    font-size: 1.1rem;
    color: var(--tosa-blue) !important;
}

.platform-feature__text {
    font-size: 0.9rem;
}

/* ── Why Choose ───────────────────────────────────── */
.why-choose {
    background: #E6F3F9 url(/build/images/vector-whychoose.2af2d342.png) no-repeat center center;
    background-size: cover;
    position: relative;
    overflow: hidden;
    padding: 80px 0;
}

.why-choose .container-xl {
    position: relative;
    z-index: 1;
}

.why-choose .section-title {
    color: #1a1a2e;
}

.why-choose .row {
    background: #fff;
}

.why-choose .why-card {
    background: #fff;
    border-radius: 0;
    padding: 40px 28px;
    text-align: left;
    height: 100%;
    border: 1px solid #E6F3F9;
    position: relative;
    min-height: 430px;
}

.why-card__icon {
    width: 64px;
    height: 64px;
    margin-bottom: 16px;
}

.why-card__icon img,
.why-card__icon video {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* Small blue underline between icon and title - blurred */
.why-card__line {
    width: 40px;
    height: 2px;
    background: var(--tosa-blue);
    margin-bottom: 16px;
    border-radius: 2px;
    filter: blur(7px);
    margin-left: 16px;
}

.why-card__title {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--tosa-blue);
    margin-bottom: 12px;
    line-height: 1.25;
    margin-top: 62px;
}

.why-card__text {
    font-size: 0.9rem;
    color: #555;
    line-height: 1.55;
    margin: 0;
}

/* CTA card: orange background */
.why-card--cta {
    background: var(--tosa-orange) url(/build/images/whychooselink.ea58f6d8.png) no-repeat bottom left !important;
    background-size: auto 65% !important;
    padding: 40px 28px;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    border-right: none !important;
    color: #fff;
    text-decoration: none;
    transition: background-color 0.2s;
}

.why-card--cta:hover {
    background-color: #d63d09 !important;
    color: #fff;
}

.why-card__cta-title {
    font-size: 1.35rem;
    line-height: 1.25;
    color: #fff;
    margin: 0;
}


.why-card__cta-arrow {
    width: 56px;
    height: 56px;
    background: var(--tosa-yellow);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: #1a1a2e;
    margin-top: 32px;
    align-self: flex-end;
}

/* ── Testimonials ─────────────────────────────────── */
.testimonials {
    background: linear-gradient(to right, #05676A 0%, #05676A 50%, #005356 50%, #005356 100%);
    position: relative;
    overflow: hidden;
    padding-bottom: 280px !important;
}

.testimonials::after {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    width: 1.5px;
    height: 100%;
    background: rgba(255, 255, 255, 0.3);
    z-index: 2;
    pointer-events: none;
}

.testimonials__left {
    position: relative;
    z-index: 1;
    padding-left: 80px;
    padding-top: 40px;
    padding-bottom: 40px;
}

.testimonials::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 50%;
    height: 129%;
    background: url(/build/images/vector-testimonial-left.43362597.png) no-repeat bottom left;
    background-size: cover;
    pointer-events: none;
    z-index: 0;
}

.testimonials__right {
    position: relative;
    z-index: 1;
}

.testimonials > .container-xl::after {
    content: '';
    position: absolute;
    bottom: -280px;
    right: -220px;
    width: 600px;
    height: 500px;
    background: url(/build/images/vector-testimonial-right.3f3d7a58.png) no-repeat bottom right;
    background-size: contain;
    pointer-events: none;
    z-index: 0;
}

.testimonials > .container-xl {
    position: relative;
}

.testimonial-card.is-active {
    background: transparent;
}

/* Speech-bubble background image. The image's tail is ~34% of its height, so
   the bottom inset is a PERCENTAGE of the card height (not a fixed px): the
   image's body then always covers the quote + author no matter how long the
   quote is, and the tail extends proportionally below. */
.testimonial-card.is-active::before {
    content: '';
    position: absolute;
    top: -40px;
    left: -40px;
    right: -40px;
    bottom: -55%;
    background: url(/build/images/vector-testimonial-dialog.90c704f2.webp) no-repeat center center;
    background-size: 100% 100%;
    z-index: -1;
    pointer-events: none;
}

.testimonials__avatar {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    border: 5px solid var(--tosa-teal);
    margin-left: -15px;
    overflow: hidden;
    cursor: pointer;
    display: inline-block;
    position: relative;
}

.testimonials__avatar:nth-child(1) { z-index: 1; }
.testimonials__avatar:nth-child(2) { z-index: 2; }
.testimonials__avatar:nth-child(3) { z-index: 3; }

.testimonials__avatar:first-child {
    margin-left: 0;
}

.testimonials__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: grayscale(100%);
    transition: filter 0.3s;
}

.testimonials__avatar.is-active img {
    filter: grayscale(0%);
}


.testimonials__nav-btn {
    width: 52px;
    height: 52px;
    border: none;
    border-radius: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    cursor: pointer;
    transition: background-color 0.2s;
    clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%);
}

.testimonials__nav-btn--prev {
    background: #fff;
    color: var(--tosa-orange);
    clip-path: polygon(14px 0, 100% 0, 100% 100%, 0 100%, 0 14px);
}

.testimonials__nav-btn--prev:hover {
    background: #f0f0f0;
}

.testimonials__nav-btn--next {
    background: var(--tosa-orange);
    color: #fff;
}

.testimonials__nav-btn--next:hover {
    background: #d63d09;
}

/* Slider wrapper */
.testimonials__slider {
    position: relative;
    max-width: 80%;
    margin-left: auto;
}

/* All slides hidden by default */
.testimonials__slide {
    display: none;
}

/* Active slide: block + fade-in animation */
.testimonials__slide.is-active {
    display: block;
    animation: testimonial-fadein 0.4s ease forwards;
}

@keyframes testimonial-fadein {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: translateY(0); }
}

.testimonial-card {
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 56px 64px;
    position: relative;
    z-index: 2;
    min-height: 460px;
}

.testimonials__slide.is-active.testimonial-card {
    display: flex;
    flex-direction: column;
    justify-content: normal;
}

.testimonial-card__quote p {
    color: #fff;
    font-size: 1.35rem;
    line-height: 1.6;
}

.testimonial-card__author-line {
    width: 4px;
    height: 48px;
    background: var(--tosa-yellow);
    border-radius: 2px;
}

.testimonial-card__author-img {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid var(--tosa-teal);
}

.testimonial-card__author-name {
    color: var(--tosa-yellow);
    font-size: 1.1rem;
}

.testimonial-card__author-role {
    color: rgba(255,255,255,0.7);
}

/* ── Get Started ──────────────────────────────────── */
.get-started {
    background: transparent;
    padding: 0;
    position: relative;
    margin-top: -220px;
    margin-bottom: -220px;
    z-index: 2;
}

.get-started__card {
    background: var(--tosa-yellow);
    border-radius: 0;
    overflow: hidden;
    position: relative;
    max-width: 1140px;
    margin: 0 auto;
    /* Clip-path cut on top-right to match design style */
    clip-path: polygon(0 0, calc(100% - 60px) 0, 100% 60px, 100% 100%, 0 100%);
}

.get-started__card > .container-xl {
    padding-left: 0;
    padding-right: 0;
    max-width: none;
}

.get-started__image-wrapper {
    position: relative;
    height: 100%;
    min-height: 420px;
    overflow: hidden;
}

.get-started__image {
    display: block;
    width: 100%;
    height: 100%;
    max-height: 440px;
    object-fit: cover;
}

/* Blog page variant: image stretches to the bottom of the card. */
.get-started--blog .get-started__image-wrapper {
    height: 100%;
    min-height: 0;
}
.get-started--blog .get-started__image {
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: cover;
    object-position: center bottom;
}

.get-started__title {
    font-size: clamp(1.5rem, 2.8vw, 2.25rem);
    color: #1a1a2e;
    line-height: 1.2;
}

.get-started__text {
    color: #1a1a2e;
    opacity: 0.85;
    font-size: 1.05rem;
}

/* ── Newsletter ───────────────────────────────────── */
.newsletter {
    background-color: #eaf3fb;
    background-position: bottom;
    background-size: cover;
    background-repeat: no-repeat;
    position: relative;
    overflow: hidden;
    padding-top: 320px !important;
    padding-bottom: 80px !important;
}

.newsletter__input-wrapper {
    position: relative;
}

.newsletter__input-icon {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: #999;
    font-size: 1.1rem;
}

.newsletter__input {
    padding: 16px 16px 16px 48px;
    border: 1px solid #ddd;
    border-radius: 0;
    font-size: 1rem;
    background: #fff;
    height: 56px;
}

.newsletter__select {
    padding-left: 48px;
    border-radius: 0;
    height: 56px;
}

.newsletter__input:focus {
    border-color: var(--tosa-orange);
    box-shadow: 0 0 0 0.2rem rgba(241, 73, 16, 0.15);
}

.newsletter__multiselect {
    position: relative;
}
.newsletter__multiselect-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    height: 56px;
    padding: 16px 16px 16px 48px;
    border: 1px solid #ddd;
    border-radius: 0;
    background: #fff;
    font-family: inherit;
    font-size: 1rem;
    color: #6c757d;
    text-align: left;
    cursor: pointer;
}
.newsletter__multiselect-trigger[aria-expanded="true"] {
    border-color: var(--tosa-orange);
    box-shadow: 0 0 0 0.2rem rgba(241, 73, 16, 0.15);
}
.newsletter__multiselect-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.newsletter__multiselect-label.has-selection {
    color: #212529;
}
.newsletter__multiselect-caret {
    flex-shrink: 0;
    color: #999;
    transition: transform 0.15s ease;
}
.newsletter__multiselect-trigger[aria-expanded="true"] .newsletter__multiselect-caret {
    transform: rotate(180deg);
}
.newsletter__multiselect-panel {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 20;
    background: #fff;
    border: 1px solid #ddd;
    box-shadow: 0 10px 28px rgba(20, 30, 60, 0.15);
    padding: 8px 0;
}
.newsletter__multiselect-option {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 10px 16px;
    font-size: 0.95rem;
    color: #212529;
    cursor: pointer;
}
.newsletter__multiselect-option:hover {
    background: #f5f7fc;
}
.newsletter__multiselect-option input[type="checkbox"] {
    width: 16px;
    height: 16px;
    accent-color: var(--tosa-orange);
    cursor: pointer;
}
.newsletter__error {
    margin: 0 0 12px;
    padding: 10px 14px;
    background: rgba(241, 73, 16, 0.1);
    border-left: 3px solid var(--tosa-orange);
    color: #8a4b1a;
    font-size: 0.92rem;
    line-height: 1.45;
}
.newsletter__success {
    padding: 14px 18px;
    background: rgba(255, 255, 255, 0.7);
    border: 1px solid rgba(20, 30, 60, 0.12);
    color: #1a1a2e;
    font-weight: 600;
    text-align: center;
}

/* ── Footer ───────────────────────────────────────── */
.footer {
    background: #1a1a2e;
    position: relative;
    overflow: hidden;
}

.footer::before {
    content: '';
    position: absolute;
    top: 21px;
    left: 0;
    bottom: 0;
    width: 100%;
    background: url(/build/images/vector-footer.28e6318c.png) no-repeat left center;
    background-size: contain;
    pointer-events: none;
    z-index: 0;
}

.footer > .container-xl {
    position: relative;
    z-index: 1;
}


.footer__links a:hover {
    opacity: 1 !important;
    text-decoration: underline !important;
}

.footer__social-btn {
    width: 44px;
    height: 44px;
    border-radius: 0;
    clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 0 100%);
    background: rgba(255,255,255,0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 1.1rem;
    text-decoration: none;
    transition: background 0.2s;
    flex-shrink: 0;
}

.footer__social-btn:hover {
    background: rgba(255,255,255,0.18);
    color: #fff;
}

.footer__heading-dots span {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--tosa-orange);
    margin-right: 3px;
}

/* ── Responsive ───────────────────────────────────── */
@media (max-width: 991.98px) {
    .hero {
        min-height: 60vh;
    }

    .hero__bg::after {
        background: linear-gradient(180deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.85) 60%, rgba(255,255,255,0.5) 100%);
    }

    .cert-offerings__shape {
        display: none;
    }

    .cert-offerings__card {
        padding: 32px;
    }

    .get-started__image-wrapper {
        min-height: 250px;
    }
}

/* ══════════════════════════════════════════════════
   CERTIFICATIONS PAGE
   ══════════════════════════════════════════════════ */

/* Cert Hero */
.cert-hero {
    position: relative;
    padding: 96px 0 160px;
}
.cert-hero__bg {
    position: absolute;
    inset: 0;
    z-index: 1;
}
.cert-hero__bg-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 89%;
}
.cert-hero__bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(255,255,255,0.92) 0%, rgba(255,255,255,0.7) 40%, rgba(255,255,255,0) 65%);
}
.cert-hero__row {
    min-height: 60vh;
}
.cert-hero__title {
    font-size: clamp(2rem, 4vw, 3.25rem);
    color: #1a1a2e;
}
.cert-hero__subtitle {
    color: #222;
    max-width: 540px;
}

/* Cert Unique Section */
.cert-unique {
    background: transparent;
}
.cert-unique__card {
    position: relative;
    background: var(--tosa-blue);
    clip-path: polygon(0 0, calc(100% - 80px) 0, 100% 80px, 100% 100%, 0 100%);
    padding: 5px;
    overflow: hidden;
}
.cert-unique__card-inner {
    position: relative;
    clip-path: polygon(0 0, calc(100% - 78px) 0, 100% 78px, 100% 100%, 0 100%);
    background: #EDEEFB;
    padding: 72px 64px;
    overflow: hidden;
}
.cert-unique__vector {
    display: block;
    width: 100%;
    max-width: 340px;
    height: auto;
    margin-top: 32px;
    opacity: 0.85;
}
.cert-unique__item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 20px 0;
    border-top: 1px solid rgba(69, 69, 219, 0.2);
}
.cert-unique__items .cert-unique__item:first-child {
    border-top: none;
    padding-top: 0;
}
.cert-unique__icon {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 0;
    background: transparent;
    padding: 0;
    object-fit: contain;
}
.cert-unique__title {
    font-size: 1.125rem;
    color: var(--tosa-blue);
    margin-bottom: 6px;
}
.cert-unique__desc {
    color: #333;
    line-height: 1.55;
    font-size: 0.95rem;
}

/* 5 Steps pill title */
.cert-unique__steps {
    text-align: center;
}
.cert-steps__title-pill {
    display: inline-block;
    border: 2px solid var(--tosa-blue);
    border-radius: 50px;
    padding: 10px 36px;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--tosa-blue) !important;
    background: #fff;
    margin: 32px 0 40px;
    line-height: 1.2;
}
.cert-unique__items {
    display: flex;
    flex-direction: column;
    gap: 32px;
}
.cert-unique__item {
    display: flex;
    align-items: flex-start;
    gap: 20px;
}
.cert-unique__icon {
    flex-shrink: 0;
    width: 64px;
    height: 64px;
    object-fit: contain;
    border-radius: 12px;
}
.cert-unique__body {
    flex: 1;
}
.cert-unique__title {
    font-size: 1.25rem;
    color: var(--tosa-blue);
    margin-bottom: 8px;
}
.cert-unique__desc {
    color: #333;
    line-height: 1.6;
}

/* Cert Step (image-based) */
.cert-step__img {
    width: auto;
    height: 100%;
    display: block;
    margin: auto;
}
.cert-step__desc {
    margin: 1.25rem 0 0;
    color: #4a4a55;
    font-size: 0.9rem;
    line-height: 1.55;
    text-align: center;
    padding: 0 .25rem;
}

/* Cert Offerings Section */
.cert-offerings__tabs {
    justify-content: center;
    gap: 80px;
    border-bottom: 0;
    margin-left: auto;
    margin-right: auto;
}
.cert-offerings__tabs .nav-item {
    flex: 1;
    position: relative;
}
.cert-offerings__tabs .nav-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    gap: 8px;
    border: 2px solid rgba(255, 255, 255, 0.6);
    color: #777;
    font-weight: 600;
    padding: 16px 28px;
    font-size: 1rem;
    background: rgba(255, 255, 255, 0.5);
    border-radius: 16px;
    margin-bottom: 0;
    transition: background-color 0.2s, border-color 0.2s, box-shadow 0.2s;
}
.cert-offerings__tabs .nav-link.active {
    color: var(--tosa-blue);
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.10);
}
.cert-offerings__tab-logo {
    height: 55px;
    width: auto;
    display: block;
}
.cert-offerings__tab-tagline {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #555;
    text-align: center;
    line-height: 1.2;
}
.cert-offerings__tab-chevron {
    font-size: 1.25rem;
    color: #9aa0b5;
    line-height: 1;
}
.cert-offerings__tabs .nav-link.active .cert-offerings__tab-chevron {
    visibility: hidden;
}
.cert-offerings__tabs .nav-link.active::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -28px;
    transform: translateX(-50%);
    border-left: 13px solid transparent;
    border-right: 13px solid transparent;
    border-top: 15px solid #fff;
}
.cert-offerings__mockup {
    background-color: rgba(255, 255, 255, 0.88);
    border: 0;
    border-radius: 20px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.12);
    overflow: hidden;
    margin: 0 auto;
    padding: 32px;
}
.cert-offerings__mockup-header {
    padding: 8px 8px 20px;
    text-align: left;
}
.cert-offerings__mockup-title {
    font-size: 2rem;
    color: #1a1a2e;
}
.cert-offerings__mockup-content {
    padding: 24px 32px 32px;
}
.cert-offerings__app-icon {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    aspect-ratio: 1 / 1;
    padding: 16px 10px;
    background: #D9D9D933;
    border: 1px solid #D9D9D9;
    border-radius: 14px;
    text-decoration: none;
    color: #1a1a1a;
    transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s, background-color 0.2s;
}
.cert-offerings__app-icon:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(69, 69, 219, 0.08);
    border-color: var(--tosa-blue);
    color: var(--tosa-blue);
}
.cert-offerings__app-icon img {
    max-width: 100%;
    max-height: 74px;
    object-fit: contain;
}
.cert-offerings__app-icon--bundle {
    padding: 8px;
}
.cert-offerings__app-icon--bundle img {
    max-width: 100%;
    max-height: 100%;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.cert-offerings__app-name {
    font-size: 0.85rem;
    font-weight: 600;
    text-align: center;
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
}

/* Cert Steps */
.cert-steps {
    background: linear-gradient(135deg, #f5f5ff 0%, #e8f0ff 100%);
}
.cert-steps__title-pill {
    display: inline-block;
    border: 2px solid var(--tosa-blue);
    border-radius: 50px;
    padding: 12px 48px;
    font-size: 1.75rem;
    font-weight: 700;
    color: #1a1a2e;
    margin-bottom: 48px;
}
.cert-step {
    text-align: center;
}
.cert-step__chart {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 12px;
    margin-bottom: 16px;
}
.cert-step__level {
    padding: 4px 8px;
    font-size: 0.75rem;
    border-bottom: 1px solid #f0f0f0;
}
.cert-step__level--active {
    color: var(--tosa-orange);
    font-weight: 700;
}
.cert-step__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--tosa-orange);
    color: #fff;
    font-weight: 700;
    font-size: 0.875rem;
}
.cert-step__name {
    font-size: 1rem;
    font-weight: 700;
    color: var(--tosa-blue);
}
.cert-step__sub {
    display: inline-block;
    background: #333;
    color: #fff;
    font-size: 0.7rem;
    padding: 2px 10px;
    border-radius: 4px;
}
.cert-step__score {
    padding: 4px 8px;
    font-size: 0.75rem;
    border-bottom: 1px solid #f0f0f0;
}
.cert-step__score--active {
    background: var(--tosa-yellow);
    font-weight: 700;
}

/* Cert Catalog / Offerings Tabs */
.cert-catalog {
    background: #e8f4f8;
}
.cert-catalog__tabs {
    display: flex;
    gap: 0;
    margin-bottom: 0;
}
.cert-catalog__tab {
    flex: 1;
    padding: 16px 24px;
    background: transparent;
    border: none;
    font-weight: 600;
    color: #999;
    cursor: pointer;
    transition: all 0.2s;
    opacity: 0.5;
}
.cert-catalog__tab--active,
.cert-catalog__tab:hover {
    background: #fff;
    color: #1a1a2e;
    opacity: 1;
    box-shadow: 0 -2px 8px rgba(0,0,0,0.05);
}
.cert-catalog__tab img {
    height: 32px;
    object-fit: contain;
}
.cert-catalog__browser {
    background: #fff;
    border-radius: 0 0 12px 12px;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0,0,0,0.08);
}
.cert-catalog__browser-bar {
    background: #f5f5f5;
    padding: 12px 20px;
    display: flex;
    align-items: center;
    gap: 12px;
    border-bottom: 1px solid #eee;
}
.cert-catalog__browser-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #ddd;
}
.cert-catalog__browser-url {
    flex: 1;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 20px;
    padding: 6px 16px;
    font-size: 0.8rem;
    color: #666;
}
.cert-catalog__app-icon {
    background: #f9f9f9;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 20px;
    text-align: center;
    transition: transform 0.2s, box-shadow 0.2s;
}
.cert-catalog__app-icon:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.cert-catalog__app-icon img {
    width: 56px;
    height: 56px;
    object-fit: contain;
    margin-bottom: 8px;
}
.cert-catalog__app-icon p {
    font-size: 0.8rem;
    font-weight: 500;
    margin: 0;
}

/* Cert Bundles */
.cert-bundles {
    background: #fff;
}
.cert-bundles__inner {
    padding: 24px 48px;
}
.cert-bundles__intro {
    max-width: 860px;
    color: #333;
    line-height: 1.6;
}
.cert-bundles__graphic {
    background: #fff;
    padding: 48px;
    border-radius: 4px;
}
.cert-bundles__graphic img {
    display: block;
    margin: 0 auto;
    max-width: 100%;
}
.cert-bundles__credly {
    max-width: 780px;
    color: #333;
    line-height: 1.6;
}
.cert-bundles__credly a {
    color: var(--tosa-orange);
}
.cert-bundles__matrix-img {
    max-width: 100%;
    height: auto;
}

/* Cert Entries (individual certifications) */
.cert-entries {
    background: url(/build/images/bg-01.f480dd6c.jpg) center/cover no-repeat;
}
.cert-entries .container-xl {
    max-width: 1440px;
}
.cert-entry {
    margin-bottom: 48px;
    box-shadow: 0 43px 40px rgba(0, 0, 0, 0.15);
}
.cert-entry:last-child {
    margin-bottom: 0;
}
.cert-entry__inner {
    display: flex;
    align-items: stretch;
    gap: 80px;
}
.cert-entry--reverse .cert-entry__inner {
    flex-direction: row-reverse;
}

/* Cert Ready (audiences) */
.cert-ready__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border: 1px solid #dcdce5;
    background: #fff;
}
.cert-ready__card {
    display: flex;
    flex-direction: column;
    padding: 32px 24px;
    background: #fff;
    border-right: 1px solid #dcdce5;
}
.cert-ready__card:last-child {
    border-right: none;
}
.cert-ready__card--highlight {
    background: var(--tosa-yellow);
}
.cert-ready__icon {
    width: 64px;
    height: 64px;
    margin-bottom: 24px;
    object-fit: contain;
    display: block;
}
.cert-ready__title {
    font-size: 1.125rem;
    color: var(--tosa-blue);
    margin-bottom: 12px;
}
.cert-ready__text {
    color: #333;
    font-size: 0.925rem;
    line-height: 1.5;
    flex: 1;
}
.cert-ready__link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--tosa-orange);
    font-weight: 600;
    text-decoration: none;
    margin-top: 24px;
}
.cert-ready__card--highlight .cert-ready__link {
    color: var(--tosa-blue);
}
.cert-ready__arrow {
    font-size: 1.1rem;
    line-height: 1;
}

/* Cert Testimonial */
.cert-testimonial {
    position: relative;
    background: #005356;
    overflow: hidden;
    padding-top: 120px;
    padding-bottom: 280px;
}
.cert-testimonial__vector {
    position: absolute;
    top: 0;
    bottom: 0;
    height: 100%;
    width: auto;
    pointer-events: none;
}
.cert-testimonial__vector--left { left: 0; }
.cert-testimonial__vector--right { right: 0; }
.cert-testimonial__quote {
    position: relative;
    max-width: 1040px;
    margin: 80px auto;
    padding: 72px 80px;
    color: #fff;
    font-size: 1.3125rem;
    line-height: 1.65;
    text-align: center;
    border: 1.5px solid rgba(255, 255, 255, 0.85);
    border-image: linear-gradient(180deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.5) 60%, rgba(255,255,255,0) 100%) 1;
    background: transparent;
}
.cert-testimonial__quote--with-photo {
    padding-top: 40px;
}
.cert-testimonial__photo {
    display: block;
    width: 80px;
    height: 80px;
    margin: 0 auto 24px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #05676a;
    background: #05676a;
}
.cert-testimonial__text {
    font-style: italic;
}
.cert-testimonial__footer {
    margin-top: 8px;
}
.cert-testimonial__author {
    color: var(--tosa-yellow);
    font-weight: 700;
    font-size: 1rem;
    margin-bottom: 2px;
}
.cert-testimonial__role {
    color: #fff;
    font-size: 0.875rem;
    font-weight: 400;
}
@media (max-width: 991.98px) {
    .cert-ready__grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .cert-ready__card:nth-child(2n) {
        border-right: none;
    }
    .cert-ready__card:nth-child(-n+2) {
        border-bottom: 1px solid #dcdce5;
    }
}
@media (max-width: 575.98px) {
    .cert-ready__grid {
        grid-template-columns: 1fr;
    }
    .cert-ready__card {
        border-right: none;
        border-bottom: 1px solid #dcdce5;
    }
    .cert-ready__card:last-child {
        border-bottom: none;
    }
}
.cert-entry__badge-col {
    flex: 0 0 500px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: #fff;
    padding: 48px;
    clip-path: polygon(0 0, calc(100% - 56px) 0, 100% 56px, 100% 100%, 0 100%);
}
.cert-entry--reverse .cert-entry__badge-col {
    clip-path: polygon(56px 0, 100% 0, 100% 100%, 0 100%, 0 56px);
}
.cert-entry__badge-link {
    display: inline-block;
    line-height: 0;
    transition: transform .15s ease, opacity .15s ease;
}
.cert-entry__badge-link:hover,
.cert-entry__badge-link:focus-visible {
    transform: translateY(-2px);
    opacity: 0.92;
}
.cert-entry__badge-link .cert-entry__badge {
    display: block;
}
.cert-entry__badge {
    max-width: 100%;
    width: 400px;
    height: auto;
}
.cert-entry__body {
    flex: 1;
    max-width: 620px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-right: 56px;
}
.cert-entry--reverse .cert-entry__body {
    padding-right: 0;
    padding-left: 56px;
}
.cert-entry__title {
    font-size: 1.5rem;
    color: #1a1a2e;
}
.cert-entry__description {
    color: #333;
    line-height: 1.55;
}
.cert-entry__levels {
    list-style: none;
    padding: 0;
    margin: 0;
}
.cert-entry__levels li {
    position: relative;
    padding-left: 20px;
    margin-bottom: 10px;
    color: #333;
    line-height: 1.5;
}
.cert-entry__levels li::before {
    content: '›';
    position: absolute;
    left: 0;
    top: -2px;
    color: var(--tosa-orange);
    font-weight: 700;
    font-size: 1.2rem;
}
@media (max-width: 767.98px) {
    .cert-entry {
        margin-bottom: 32px;
    }
    .cert-entry__inner,
    .cert-entry--reverse .cert-entry__inner {
        flex-direction: column;
        gap: 24px;
    }
    .cert-entry__badge-col {
        flex: initial;
        padding: 32px;
    }
    .cert-entry__body {
        flex: initial;
    }
}

/* Cert Badges */
.cert-badges {
    background: #f8f8f8;
}
.cert-badges__img {
    max-width: 280px;
    width: 100%;
}

/* ══════════════════════════════════════════════════
   SHARED PAGE HERO (all inner pages)
   ══════════════════════════════════════════════════ */
.page-hero {
    position: relative;
    min-height: 50vh;
    display: flex;
    align-items: center;
    overflow: hidden;
}
.page-hero--light {
    background: linear-gradient(135deg, #f0f7f7 0%, #e8f0ff 50%, #f5f5ff 100%);
}
.page-hero--teal {
    background: var(--tosa-teal);
    color: #fff;
}
.page-hero--blue {
    background: var(--tosa-blue);
    color: #fff;
}
.page-hero__title {
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 700;
}
.page-hero__subtitle {
    font-size: 1.15rem;
    max-width: 600px;
}

/* ══════════════════════════════════════════════════
   EXPERTISE PAGE
   ══════════════════════════════════════════════════ */
.expertise-features {
    background: linear-gradient(135deg, #f8f5ff 0%, #fff 100%);
}
.expertise-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 32px 24px;
    height: 100%;
    text-align: center;
    transition: transform 0.2s, box-shadow 0.2s;
}
.expertise-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
.expertise-card__icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 16px;
    background: #e8f0ff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    color: var(--tosa-blue);
}
.expertise-card__title {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--tosa-blue);
    margin-bottom: 12px;
}
.expertise-stats {
    background: var(--tosa-blue);
}
.expertise-stat {
    text-align: center;
    color: #fff;
    padding: 24px;
}
.expertise-stat__number {
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--tosa-yellow);
}
.expertise-stat__label {
    font-size: 0.9rem;
    opacity: 0.85;
}
.expertise-table {
    background: #fff;
}
.expertise-table table {
    width: 100%;
}
.expertise-table th {
    background: var(--tosa-blue);
    color: #fff;
    padding: 16px;
    font-weight: 600;
}
.expertise-table td {
    padding: 14px 16px;
    border-bottom: 1px solid #eee;
}

/* ══════════════════════════════════════════════════
   DELIVER TOSA PAGE
   ══════════════════════════════════════════════════ */
.deliver-benefits {
    background: linear-gradient(135deg, #f0f7f7 0%, #fff 100%);
}
.deliver-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 32px 24px;
    height: 100%;
    text-align: center;
    transition: transform 0.2s;
}
.deliver-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
.deliver-card__icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 16px;
    background: #fff3e0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    color: var(--tosa-orange);
}
.deliver-card__title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1a1a2e;
    margin-bottom: 12px;
}
.deliver-steps {
    background: #fff;
}
.deliver-step__number {
    width: 64px;
    height: 64px;
    background: var(--tosa-orange);
    color: #fff;
    font-size: 1.75rem;
    font-weight: 700;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
}
.deliver-tiers {
    background: linear-gradient(135deg, #f5f5ff 0%, #fff 100%);
}
.deliver-tier {
    background: #fff;
    border: 2px solid #eee;
    border-radius: 12px;
    padding: 40px 24px;
    text-align: center;
    height: 100%;
    transition: transform 0.2s;
}
.deliver-tier:hover {
    transform: translateY(-4px);
}
.deliver-tier--gold {
    border-color: var(--tosa-yellow);
}
.deliver-tier--platinum {
    border-color: var(--tosa-blue);
    background: linear-gradient(135deg, #f8f5ff, #fff);
}
.deliver-tier__badge {
    width: 80px;
    height: 80px;
    margin: 0 auto 16px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
}
.deliver-tier__badge--silver { background: #e0e0e0; color: #666; }
.deliver-tier__badge--gold { background: var(--tosa-yellow); color: #333; }
.deliver-tier__badge--platinum { background: var(--tosa-blue); color: #fff; }

/* ══════════════════════════════════════════════════
   TAKE EXAM PAGE
   ══════════════════════════════════════════════════ */
.exam-paths {
    background: linear-gradient(135deg, #f0f7f7 0%, #fff 100%);
}
.exam-path-card {
    background: #fff;
    border: 2px solid #eee;
    border-radius: 12px;
    padding: 48px 32px;
    text-align: center;
    height: 100%;
    transition: transform 0.2s, border-color 0.2s;
}
.exam-path-card:hover {
    transform: translateY(-4px);
    border-color: var(--tosa-blue);
}
.exam-path-card__icon {
    width: 80px;
    height: 80px;
    margin: 0 auto 24px;
    background: #e8f0ff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: var(--tosa-blue);
}
.exam-expect {
    background: #fff;
}
.exam-expect__item {
    background: #f8f8f8;
    border-radius: 12px;
    padding: 32px 24px;
    text-align: center;
    height: 100%;
}
.exam-expect__icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 16px;
    background: var(--tosa-orange);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
}

/* ══════════════════════════════════════════════════
   REMOTE EXAM PAGE
   ══════════════════════════════════════════════════ */
.remote-requirements {
    background: linear-gradient(135deg, #f0f7f7 0%, #fff 100%);
}
.remote-req-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 12px;
    padding: 32px 24px;
    text-align: center;
    height: 100%;
}
.remote-req-card__icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 16px;
    background: #e8f0ff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    color: var(--tosa-blue);
}
.remote-process {
    background: #fff;
}
.remote-step {
    text-align: center;
    position: relative;
}
.remote-step__number {
    width: 48px;
    height: 48px;
    background: var(--tosa-orange);
    color: #fff;
    font-weight: 700;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
}
.remote-faq {
    background: linear-gradient(135deg, #f8f5ff 0%, #fff 100%);
}
.remote-faq .accordion-button:not(.collapsed) {
    background: #f0f0ff;
    color: var(--tosa-blue);
}

/* ══════════════════════════════════════════════════
   FIND CENTER PAGE
   ══════════════════════════════════════════════════ */
.center-search {
    background: linear-gradient(135deg, #f0f7f7 0%, #fff 100%);
}
.center-search__form {
    background: #fff;
    border-radius: 12px;
    padding: 32px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
.center-map {
    background: #e8f4f8;
    min-height: 400px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #666;
    font-size: 1.25rem;
}
.center-card {
    background: #fff;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 24px;
    height: 100%;
}
.center-card__name {
    font-weight: 700;
    color: var(--tosa-blue);
}

/* ══════════════════════════════════════════════════
   CHECK SCORE PAGE
   ══════════════════════════════════════════════════ */
.score-lookup {
    background: linear-gradient(135deg, #f0f7f7 0%, #fff 100%);
}
.score-lookup__form {
    background: #fff;
    border-radius: 12px;
    padding: 40px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.06);
    max-width: 600px;
    margin: 0 auto;
}
.score-scale {
    background: #fff;
}
.score-level {
    border-radius: 8px;
    padding: 24px 20px;
    text-align: center;
    height: 100%;
}
.score-level--beginner { background: #f0f0f0; }
.score-level--basic { background: #e3f2fd; }
.score-level--productive { background: #e8f5e9; }
.score-level--advanced { background: #fff3e0; }
.score-level--expert { background: #fce4ec; }
.score-level__range {
    font-size: 1.5rem;
    font-weight: 700;
    color: #1a1a2e;
}
.score-level__name {
    font-weight: 600;
    color: var(--tosa-blue);
}

/* ══════════════════════════════════════════════════
   RESPONSIVE OVERRIDES
   ══════════════════════════════════════════════════ */
@media (max-width: 991.98px) {
    .hero {
        min-height: 60vh;
    }
    .hero__bg::after {
        background: linear-gradient(180deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.85) 60%, rgba(255,255,255,0.5) 100%);
    }
    .cert-hero {
        min-height: 60vh;
    }
    .cert-hero__bg::after {
        background: linear-gradient(180deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.85) 60%, rgba(255,255,255,0.5) 100%);
    }
    .cert-unique__card {
        padding: 32px;
        clip-path: none;
    }
    .cert-offerings__shape {
        display: none;
    }
    .why-card {
        padding: 24px 16px;
    }
    .testimonial-card {
        padding: 32px 24px;
        min-height: 0;
    }
    .cert-steps__title-pill {
        font-size: 1.25rem;
        padding: 10px 32px;
    }
    .cert-catalog__tabs {
        flex-wrap: wrap;
    }
    .cert-catalog__tab {
        flex: 1 1 50%;
    }

    /* Navbar mobile: release min-height so collapsed menu can expand */
    .navbar .container-xl,
    .navbar #menubarNav,
    .navbar .navbar-nav {
        min-height: 0;
    }
    .navbar #menubarNav {
        padding: 1rem 0;
    }
    .navbar .navbar-nav {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    .navbar .navbar-nav .nav-link,
    .navbar .navbar-nav .menubar__link {
        padding: 0.75rem 0;
    }
    .menubar__item::after {
        display: none;
    }
    .navbar .menubar__dropdown {
        position: static !important;
        margin-top: 0.5rem;
        box-shadow: none;
    }
    .navbar .menubar__dropdown::before {
        display: none;
    }
    .navbar .menubar__item--account > .dropdown-menu-end {
        margin-top: 0.5rem;
    }

    /* Testimonials: stack columns, drop background split & decorative vectors */
    .testimonials {
        background: #05676A;
        padding-bottom: 180px !important;
    }
    .testimonials::before,
    .testimonials::after,
    .testimonials > .container-xl::after {
        display: none;
    }
    .testimonials__left {
        padding-left: 0;
    }
    .testimonials__slider {
        max-width: 100%;
        margin-left: 0;
    }
    .testimonial-card.is-active::before {
        display: none;
    }

    /* Get Started: reduce overlap */
    .get-started,
    .he-cta {
        margin-top: -120px;
        margin-bottom: -120px;
    }
    .st-cta {
        margin-bottom: -120px;
    }
    .get-started__card,
    .he-cta__card,
    .st-cta__card {
        clip-path: polygon(0 0, calc(100% - 30px) 0, 100% 30px, 100% 100%, 0 100%);
    }
    .get-started__image-wrapper,
    .st-cta__image-wrapper {
        min-height: 280px;
    }

    /* Newsletter: reduce top padding */
    .newsletter {
        padding-top: 200px !important;
    }

    /* Footer: shrink decorative vector */
    .footer::before {
        width: 180px;
        opacity: 0.5;
    }
}

/* Mobile (<768px) */
@media (max-width: 767.98px) {
    .testimonials {
        padding-bottom: 140px !important;
    }
    .testimonials__left {
        padding-top: 20px;
        padding-bottom: 20px;
    }
    .testimonial-card {
        padding: 24px 20px;
    }
    .testimonial-card__quote p {
        font-size: 1rem;
    }

    .get-started,
    .he-cta {
        margin-top: -80px;
        margin-bottom: -80px;
    }
    .st-cta {
        margin-bottom: -80px;
    }
    .get-started__image-wrapper,
    .st-cta__image-wrapper {
        min-height: 220px;
    }

    .newsletter {
        padding-top: 140px !important;
    }

    .footer::before {
        width: 120px;
        opacity: 0.3;
    }
}

/* ──────────────────────────────────────────────────────────────
   Subject Details page
   ────────────────────────────────────────────────────────────── */
.subject-details { background: #fff; }

/* Reduce the newsletter top padding on the subject details page only. */
.subject-details ~ .newsletter {
    padding-top: 20px !important;
}

.subject-details__sidebar {
    position: sticky;
    top: 88px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.subject-details__schedule-cta { align-self: flex-start; }

.subject-details__card {
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 4px 18px rgba(30, 30, 60, 0.06);
    padding: 22px 24px;
}

.subject-details__card-title {
    color: var(--tosa-blue);
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0 0 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid #e3e4ef;
}

.subject-details__bullet-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.subject-details__bullet-list li {
    position: relative;
    padding: 6px 0 6px 20px;
    font-size: 0.95rem;
    line-height: 1.45;
}
.subject-details__bullet-list li::before {
    content: "›";
    position: absolute;
    left: 0;
    top: 5px;
    color: var(--tosa-blue);
    font-weight: 700;
    font-size: 1.1rem;
}

.subject-details__lang-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.subject-details__lang-pill {
    border: 1px solid #d9dae6;
    border-radius: 6px;
    padding: 6px 14px;
    font-size: 0.9rem;
    background: #fff;
}

.subject-details__resource-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.subject-details__resource-list li {
    position: relative;
    padding: 6px 0 6px 20px;
    font-size: 0.95rem;
}
.subject-details__resource-list li::before {
    content: "›";
    position: absolute;
    left: 0;
    top: 5px;
    color: var(--tosa-orange);
    font-weight: 700;
    font-size: 1.1rem;
}
.subject-details__resource-link {
    color: var(--tosa-orange);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.subject-details__resource-link:hover {
    color: #d63d09;
}

.subject-details__main {
    min-width: 0;
}

.subject-details > .container-xl.pt-5 {
    max-width: 100%;
    padding: 0 !important;
}
.subject-details > .container-xl.pb-5 {
    max-width: 100%;
    padding-left: clamp(16px, 4vw, 64px);
    padding-right: clamp(16px, 4vw, 64px);
}
.subject-details__hero {
    background: var(--tosa-light-blue) url(/build/images/Banner.ffea2286.jpg) center/cover no-repeat;
    padding: 48px 24px;
    margin-bottom: 48px;
    position: relative;
    overflow: hidden;
    /* Contain the ::before blend so it only recolors the banner artwork. */
    isolation: isolate;
}
/* Recolors the shared banner with the subject's gamme color (set inline as
   --gamme-color, same palette as the certifications-page tabs). */
.subject-details__hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--gamme-color, transparent);
    mix-blend-mode: color;
    pointer-events: none;
}
.subject-details__hero-title {
    font-size: clamp(2rem, 4vw, 3rem);
    color: #1a1a1a;
    margin: 0;
}
/* Long product names must still fit the painted banner box. */
.subject-details__hero-title--long {
    font-size: clamp(1.5rem, 2.8vw, 2.2rem);
    overflow-wrap: break-word;
}
.subject-details__hero-tile {
    padding: 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}
.subject-details__hero-icon {
    width: 160px;
    height: 160px;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
}
.subject-details__hero-icon img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

/* Desktop: lock the hero to the banner's aspect ratio so `cover` fills it
   exactly (no distortion, no letterbox). The square in the banner then sits
   at a fixed fraction, so the logo can be centered on it at any width. */
@media (min-width: 768px) {
    .subject-details__hero {
        aspect-ratio: 1920 / 592;
        padding: 0;
    }
    .subject-details__hero-title {
        position: absolute;
        left: 3.5%;
        top: 50%;
        transform: translateY(-50%);
        max-width: 46%;
    }
    .subject-details__hero-tile {
        position: absolute;
        left: 78%;
        top: 52%;
        transform: translate(-50%, -50%);
        margin: 0;
        padding: 0;
    }
}

.subject-details__section { margin-bottom: 56px; }

.subject-details__section-title {
    font-size: clamp(1.6rem, 2.6vw, 2.2rem);
    font-weight: 700;
    color: #1a1a1a;
    margin: 0 0 18px;
    line-height: 1.2;
}

.subject-details__sub-title {
    color: var(--tosa-blue);
    font-size: 1.25rem;
    font-weight: 700;
    margin: 28px 0 12px;
}

.subject-details__inline-link {
    color: var(--tosa-orange);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.subject-details__inline-link:hover {
    color: #d63d09;
}

.subject-details__sample-wrap,
.subject-details__chart-wrap {
    margin: 24px 0;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 18px rgba(30, 30, 60, 0.06);
    padding: 16px;
}
.subject-details__sample-img,
.subject-details__chart { width: 100%; height: auto; }

.subject-details__domains {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.subject-details__domain-card {
    display: grid;
    grid-template-columns: 96px 1fr;
    gap: 18px;
    align-items: flex-start;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 18px rgba(30, 30, 60, 0.06);
    padding: 20px 24px;
}
.subject-details__domain-icon {
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--tosa-blue);
}
.subject-details__domain-icon img { max-width: 100%; max-height: 100%; }
.subject-details__domain-title {
    color: var(--tosa-blue);
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 8px;
}

.subject-details__table-wrap {
    background: #fff;
    border: 2px solid #c9cbe0;
    border-radius: 6px;
    overflow-x: auto;
    margin-top: 16px;
}
.subject-details__score-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 520px;
}
.subject-details__score-table th,
.subject-details__score-table td {
    padding: 18px 24px;
    text-align: left;
    vertical-align: top;
    font-size: 0.95rem;
    border-bottom: 2px solid #c9cbe0;
    border-right: 2px solid #c9cbe0;
}
.subject-details__score-table th:last-child,
.subject-details__score-table td:last-child {
    border-right: none;
}
.subject-details__score-table tbody tr:last-child td {
    border-bottom: none;
}
.subject-details__score-table thead th {
    color: var(--tosa-blue);
    font-weight: 700;
    background: #fff;
}
.subject-details__score-table tbody tr:nth-child(odd) td {
    background: #f5f7fd;
}
.subject-details__score-table .subject-details__credly-link,
a.subject-details__credly-link {
    color: var(--tosa-orange) !important;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 500;
}
.subject-details__score-table .subject-details__credly-link:hover,
a.subject-details__credly-link:hover {
    color: #d63d09 !important;
}

.subject-details__prep-list {
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin-top: 8px;
}
.subject-details__prep-item {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: 20px;
    align-items: flex-start;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 18px rgba(30, 30, 60, 0.06);
    padding: 22px 26px;
}
.subject-details__prep-icon {
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #eef0fb;
    overflow: hidden;
    flex-shrink: 0;
}
.subject-details__prep-icon video {
    width: 100%;
    height: 100%;
    object-fit: contain;
    pointer-events: none;
}
.subject-details__prep-body { min-width: 0; }
.subject-details__prep-title {
    color: var(--tosa-blue);
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 8px;
    line-height: 1.3;
}
.subject-details__prep-desc {
    font-size: 0.95rem;
    line-height: 1.55;
}
.subject-details__prep-desc p { margin-bottom: 0.6em; }
.subject-details__prep-desc p:last-child { margin-bottom: 0; }

.subject-details__flow { text-align: center; }
.subject-details__flow img { max-width: 100%; height: auto; }

.subject-details__bundle-card {
    position: relative;
    background: var(--tosa-blue);
    padding: 32px 36px;
    margin-top: 16px;
    max-width: 520px;
    clip-path: polygon(0 0, calc(100% - 40px) 0, 100% 40px, 100% 100%, 0 100%);
}
/* Inner fill inset by the border width — the blue card background showing
   through the 2px gap is the border, and it follows the diagonal cut too. */
.subject-details__bundle-card::before {
    content: "";
    position: absolute;
    inset: 2px;
    background: #f5f6ff;
    clip-path: polygon(0 0, calc(100% - 38px) 0, 100% 38px, 100% 100%, 0 100%);
    z-index: 0;
}
.subject-details__bundle-card > * {
    position: relative;
    z-index: 1;
}
.subject-details__bundle-badge {
    max-width: 160px;
    margin-bottom: 16px;
}
.subject-details__bundle-badge img { width: 100%; height: auto; }
.subject-details__bundle-title {
    font-size: 1.35rem;
    font-weight: 700;
    margin: 0 0 12px;
    color: #1a1a1a;
}
.subject-details__bundle-desc { margin-bottom: 20px; }

.subject-details__bundle-tiers {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-top: 16px;
    padding-top: 20px;
    border-top: 1px solid #d4d6f0;
}
.subject-details__bundle-tier {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: 16px;
    align-items: flex-start;
}
.subject-details__bundle-tier-icon {
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--tosa-blue);
}
.subject-details__bundle-tier-icon img { max-width: 100%; max-height: 100%; }
.subject-details__bundle-tier-title {
    color: var(--tosa-blue);
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 4px;
}

@media (max-width: 991.98px) {
    .subject-details__sidebar {
        position: static;
        margin-bottom: 32px;
    }
    .subject-details__hero { padding: 32px 24px; }
    .subject-details__hero-tile { margin-top: 24px; }
}

@media (max-width: 575.98px) {
    .subject-details__hero { padding: 24px 18px; }
    .subject-details__card { padding: 18px 20px; }
    .subject-details__domain-card {
        grid-template-columns: 1fr;
        padding: 18px;
    }
    .subject-details__domain-icon {
        width: 48px;
        height: 48px;
    }
    .subject-details__bundle-card { padding: 22px 20px; }
    .subject-details__prep-item {
        grid-template-columns: 56px 1fr;
        gap: 14px;
        padding: 18px 20px;
    }
    .subject-details__prep-icon {
        width: 48px;
        height: 48px;
    }
}


/* ── Higher Education page ──────────────────────── */

/* Banner */
.he-banner {
    position: relative;
    width: 100%;
    height: 592px;
    overflow: hidden;
    background: #fff;
}
.he-banner__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center;
}
.he-banner__bg--k12 {
    object-position: right 27%;
}

.he-banner::after {
  background: linear-gradient(90deg, rgba(255,255,255,0.92) 0%, rgba(255, 255, 255, 0.53) 40%, rgba(255, 255, 255, 0) 65%);
  content: '';
  position: absolute;
  inset: 0;
}

.he-banner__inner {
    position: relative;
    height: 100%;
    display: flex;
    align-items: center;
    z-index: 2;
}
.he-banner__title {
    color: #1a1a2e;
    font-size: clamp(2.25rem, 4.5vw, 3.5rem);
    max-width: 540px;
}

/* S1 Drive Student Success */
.he-s1 {
    padding: 80px 0;
}
.he-s1__media {
    position: relative;
}
.he-s1__media > img {
    position: relative;
    width: 100%;
    height: auto;
    display: block;
    z-index: 1;
    border-radius: 8px;
}
.he-s1__media::before,
.he-s1__media::after {
    content: '';
    position: absolute;
    background-image: radial-gradient(circle, #c4c4c4 2px, transparent 2.5px);
    background-size: 14px 14px;
    z-index: 2;
    pointer-events: none;
}
.he-s1__media::before {
    top: -28px;
    left: 0;
    width: 70px;
    height: 14px;
}
.he-s1__media::after {
    bottom: -32px;
    right: 0;
    width: 70px;
    height: 28px;
}
.he-s1__photo {
    position: relative;
    width: 100%;
    height: auto;
    display: block;
    z-index: 1;
}
.he-s1__vector {
    position: absolute;
    top: -91px;
    left: -237px;
    width: 124%;
    height: auto;
    z-index: 0;
    pointer-events: none;
}
.he-s1__text {
    color: #333;
    line-height: 1.6;
}

/* S1b Solving Key Challenges in K-12 Education */
.he-s1b {
    position: relative;
    padding: 80px 0 0;
    background-color: #F5FAFC;
    background-image: url(/build/images/shape-yellow.8885795a.jpg);
    background-repeat: no-repeat;
    background-size: cover;
    overflow: hidden;
}
.he-s1b > .container-xl { padding-bottom: 0 !important; }
.he-s1b__intro {
    color: #333;
    line-height: 1.6;
    max-width: 880px;
}
.he-s1b__media {
    position: relative;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}
.he-s1b__boy {
    position: relative;
    display: block;
    width: 100%;
    max-width: 520px;
    height: auto;
}

/* S2 Why HE Institutions Choose Tosa */
.he-s2 {
    background: linear-gradient(135deg, #E6F3F4 0%, #F2F8F8 100%);
    padding: 80px 0;
}
.he-s2__media {
    position: relative;
    background: var(--tosa-teal);
    padding: 30px 30px 0;
    clip-path: polygon(0 0, calc(100% - 50px) 0, 100% 50px, 100% 100%, 0 100%);
    overflow: hidden;
}
.he-s2__vector {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.45;
    z-index: 0;
    pointer-events: none;
    filter: brightness(0) invert(1); /* white tint over teal bg */
    mix-blend-mode: soft-light;
}
.he-s2__portrait {
    position: relative;
    width: 100%;
    height: auto;
    display: block;
    z-index: 1;
}

/* He Features (image + checklist) — used in S2 */
.he-features__list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.he-features__item {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    padding: 18px 0;
    border-top: 1px solid rgba(69, 69, 219, 0.18);
}
.he-features__list .he-features__item:first-child {
    border-top: none;
    padding-top: 0;
}
.he-features__icon-wrap {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
}
.he-features__icon {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    object-fit: cover;
    background: #fff;
}
.he-features__bar {
    display: block;
    width: 40px;
    height: 2px;
    background: var(--tosa-blue);
    border-radius: 2px;
    filter: blur(7px);
}
.he-features__title {
    font-size: 1.0625rem;
    color: var(--tosa-blue);
    margin-bottom: 6px;
}
.he-features__text {
    color: #333;
    line-height: 1.55;
    font-size: 0.95rem;
}

/* S3 Key Tosa Differentiators */
.he-s3 {
    background: linear-gradient(135deg, #E6F3F8 0%, #F2F8FB 100%);
    padding: 80px 0;
    position: relative;
    overflow: hidden;
}
.he-s3::before,
.he-s3::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    background: rgba(152, 221, 229, 0.35);
    pointer-events: none;
}
.he-s3::before {
    width: 280px;
    height: 280px;
    left: -100px;
    top: 30%;
}
.he-s3::after {
    width: 320px;
    height: 320px;
    right: -120px;
    bottom: 10%;
}
.he-s3__cards {
    position: relative;
    z-index: 1;
}
@media (min-width: 992px) {
    .he-s3__cards {
        --bs-gutter-x: 0;
        --bs-gutter-y: 0;
    }
}
.he-s3__card {
    background: #fff;
    border-radius: 4px;
    padding: 40px 28px;
    height: 100%;
    box-shadow: 0 2px 16px rgba(0,0,0,0.06);
}
@media (min-width: 992px) {
    .he-s3__card {
        border-radius: 0;
        padding: 48px 40px;
        box-shadow: none;
        border-right: 1px solid rgba(56, 70, 216, 0.2);
    }
    .he-s3__cards > *:last-child .he-s3__card {
        border-right: none;
    }
}
.he-s3__icon {
    width: 64px;
    height: 64px;
    margin-bottom: 16px;
    border-radius: 0;
    object-fit: cover;
}
.he-s3__bar {
    display: block;
    width: 40px;
    height: 2px;
    background: var(--tosa-blue);
    border-radius: 2px;
    filter: blur(7px);
    margin-bottom: 28px;
}
.he-s3__title {
    font-size: 1.375rem;
    color: var(--tosa-blue);
    margin-bottom: 16px;
    line-height: 1.3;
}
.he-s3__text {
    color: #555;
    font-size: 0.9375rem;
    line-height: 1.6;
}

/* S4 Turnkey Credentialing Solution */
.he-s4 {
    background: var(--tosa-blue);
    padding: 80px 0;
    color: #fff;
    position: relative;
    overflow: hidden;
}
.he-s4__title {
    color: #fff;
    font-size: clamp(1.75rem, 3.2vw, 2.5rem);
}
.he-s4__text {
    color: rgba(255,255,255,0.95);
    line-height: 1.6;
}
.he-s4__browser {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 16px 60px rgba(0,0,0,0.2);
}
.he-s4__browser-bar {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 12px;
    background: #f0f0f5;
    border-bottom: 1px solid #e0e0e5;
}
.he-s4__browser-bar span {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #ccc;
}
.he-s4__browser-bar span:nth-child(1) { background: #ff5f56; }
.he-s4__browser-bar span:nth-child(2) { background: #ffbd2e; }
.he-s4__browser-bar span:nth-child(3) { background: #27c93f; }
.he-s4__url {
    flex: 1;
    margin-left: 12px;
    background: #fff;
    border-radius: 4px;
    padding: 4px 10px;
    font-size: 0.75rem;
    color: #666;
}
.he-s4__video {
    width: 100%;
    height: 360px;
    object-fit: cover;
    background: var(--tosa-yellow);
    display: block;
}

/* S5 Why Students/Instructors Love Tosa */
.he-s5 {
    background: linear-gradient(135deg, #fff 0%, #F2F8FB 100%);
    padding: 60px 0;
}
.he-s5__card {
    background: #fff;
    box-shadow: 0 12px 50px rgba(0,0,0,0.10);
    overflow: hidden;
    max-height: 770px;
}
.he-s5__media {
    height: 100%;
    min-height: 280px;
    overflow: hidden;
    border-top-right-radius: 80px;
}
.he-s5 .flex-row-reverse .he-s5__media {
    border-top-right-radius: 0;
    border-top-left-radius: 80px;
}
.he-s5__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.he-s5__body {
    padding: 40px 48px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.he-s5__body .cta-btn {
    align-self: flex-start;
    margin-bottom: 24px;
}

/* ── Become a Tosa-Approved Testing Center (reusable CTA banner) ── */
.cert-testing-center {
    padding: 0;
    background: var(--tosa-yellow);
    overflow: hidden;
}
.cert-testing-center > .container-xl {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}
.cert-testing-center__row {
    min-height: 620px;
}
.cert-testing-center__row > [class*="col-"] {
    display: flex;
}
.cert-testing-center__media {
    flex: 1;
    width: 100%;
    min-height: 620px;
    background: url(/build/images/image-with-bg.5b44957a.jpg) no-repeat center bottom;
    background-size: cover;
}
.cert-testing-center__body {
    padding: 60px 96px;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}
.cert-testing-center__body .cta-btn {
    align-self: flex-start;
}
.cert-testing-center__text {
    color: #1a1a2e;
    line-height: 1.6;
    font-size: 1.0625rem;
}
@media (min-width: 1200px) {
    .cert-testing-center__row,
    .cert-testing-center__media {
        min-height: 720px;
    }
    .cert-testing-center__body {
        padding: 100px 320px 100px 96px;
    }
}
.he-s5__subtitle {
    color: var(--tosa-blue);
    font-size: 1.0625rem;
}
.he-s5__text {
    color: #333;
    line-height: 1.6;
}

/* FAQ on dark blue */
.faq {
    padding: 0;
    background: var(--tosa-blue);
}
.faq__card {
    background: var(--tosa-blue);
    border-radius: 0;
    padding: 80px 48px;
    color: #fff;
    position: relative;
    overflow: hidden;
}
.faq__accordion {
    max-width: 880px;
    margin: 24px auto 0;
}
.faq__item {
    background: transparent;
    border: 2px solid #fff;
    border-radius: 0;
    /* Override Bootstrap's accordion radius variables — the default
       :first-of-type / :last-of-type rules round the first and last
       button by reading these custom properties. */
    --bs-accordion-border-radius: 0;
    --bs-accordion-inner-border-radius: 0;
    margin-bottom: 16px;
}
/* Bootstrap removes the top border from non-first items to avoid double
   borders when items stack — restore it because we want each item
   visibly framed. */
.faq__item:not(:first-of-type) {
    border-top: 2px solid #fff;
}
.faq__button {
    background: transparent;
    color: #fff;
    font-weight: 600;
    font-size: 1.0625rem;
    padding: 18px 24px;
    box-shadow: none;
    border-radius: 0;
}
.faq__button:not(.collapsed) {
    background: transparent;
    color: #fff;
    box-shadow: none;
}
.faq__button:focus {
    box-shadow: none;
    border-color: transparent;
}
.faq__button::after {
    background-image: none;
    content: "+";
    color: #fff;
    font-size: 1.5rem;
    width: auto;
    height: auto;
    transform: none;
    transition: transform 0.2s;
}
.faq__button:not(.collapsed)::after {
    content: "−"; /* U+2212 minus sign — replaces the + when the panel is open */
    background-image: none; /* kill Bootstrap's default chevron icon */
    transform: none;
}
.faq__body {
    color: rgba(255,255,255,0.85);
    padding: 0 24px 18px;
}
.faq__body p { margin-bottom: 12px; }
.faq__body p:last-child { margin-bottom: 0; }
.faq__body ul { margin: 4px 0 12px; padding-left: 20px; }
.faq__body li { margin-bottom: 6px; }
.faq__body strong { color: #fff; }
.faq__body a { color: #fff; text-decoration: underline; }
.faq__links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.25);
}
/* White on the dark-blue FAQ card (scoped to beat the generic link rule). */
.faq__body .faq__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #fff;
    font-weight: 600;
    font-size: 0.9rem;
    text-decoration: none;
}
.faq__body .faq__link:hover {
    color: #fff;
    text-decoration: underline;
}
.faq__body .faq__link .bi { font-size: 0.78rem; }

/* CTA Ready to Empower */
.he-cta {
    background: transparent;
    padding: 0;
    position: relative;
    margin-top: -320px;
    margin-bottom: -320px;
    z-index: 2;
}
.he-cta__card {
    background: var(--tosa-yellow);
    border-radius: 0;
    overflow: hidden;
    position: relative;
    max-width: 1140px;
    margin: 0 auto;
    clip-path: polygon(0 0, calc(100% - 60px) 0, 100% 60px, 100% 100%, 0 100%);
}
.he-cta__img {
    width: 100%;
    max-width: 480px;
    height: auto;
    display: block;
}
.he-cta__body {
    padding: 24px 48px 24px 0;
}
.he-cta__text {
    color: #333;
    line-height: 1.6;
    font-size: 1rem;
}

/* ── 404 / Error page ────────────────────────────────── */
.error-page {
    background: #f7f8fe;
    padding: 96px 0 120px;
    min-height: 70vh;
    display: flex;
    align-items: center;
}
.error-page__code {
    font-size: clamp(6rem, 16vw, 12rem);
    font-weight: 900;
    line-height: 0.9;
    letter-spacing: -0.04em;
    margin: 0 0 1rem;
    color: var(--tosa-orange);
    background: linear-gradient(180deg, var(--tosa-orange) 0%, #ffb38a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.error-page__title {
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    color: #1a1a2e;
    line-height: 1.2;
}
.error-page__text {
    color: #4a4a55;
    font-size: 1.0625rem;
    line-height: 1.6;
    max-width: 580px;
}
.error-page__actions {
    display: inline-flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
    justify-content: center;
}
.error-page__link {
    color: var(--tosa-blue);
    text-decoration: none;
    font-weight: 600;
}
.error-page__link:hover {
    color: #2d2db8;
    text-decoration: underline;
}

/* ── Blog page ──────────────────────────────────────── */
.blog-header {
    background: #f7f8fe;
}
.blog-header__title {
    font-size: clamp(2.25rem, 4vw, 3rem);
    color: #1a1a2e;
    letter-spacing: -0.02em;
}
.blog-header__text {
    color: #4a4a55;
    font-size: 1.0625rem;
    line-height: 1.6;
    max-width: 720px;
}

/* ── Server-rendered grid ─────────────────────────────── */
.blog-grid-section {
    background: #f7f8fe url(/build/images/scoring-bg.06285efa.jpg) bottom/cover no-repeat;
}
.blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem 2rem;
    margin-bottom: 3rem;
}
@media (max-width: 991.98px) {
    .blog-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575.98px) {
    .blog-grid { grid-template-columns: 1fr; }
}

.blog-card {
    background: transparent;
    display: flex;
    flex-direction: column;
}
.blog-card__media {
    display: block;
    overflow: hidden;
    background: #f1f3f8;
    /* Top-right corner clipped diagonally (no rounded radius). */
    clip-path: polygon(0 0, calc(100% - 32px) 0, 100% 32px, 100% 100%, 0 100%);
}
.blog-card__img {
    width: 100%;
    height: auto;
    object-fit: contain;
    display: block;
}
.blog-card__body {
    padding: 1.25rem 1.25rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: .75rem;
    flex: 1 1 auto;
}
.blog-card__title {
    font-size: 1.15rem;
    line-height: 1.35;
    font-weight: 700;
    margin: 0;
    color: #1a1a2e;
    flex: 1 1 auto;
}
.blog-card__title a {
    color: inherit;
    text-decoration: none;
}
.blog-card__title a:hover {
    color: #F14910;
}
.blog-card__more {
    color: #F14910;
    font-weight: 600;
    text-decoration: none;
    font-size: .95rem;
    margin-top: .25rem;
}
.blog-card__more:hover {
    color: #c8390a;
}

/* ── Card meta (author • read time) ──────────────────── */
.dib-meta-text {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem .5rem;
    margin: 0;
    color: #6b7280;
    font-size: .85rem;
    line-height: 1.4;
}
.dib-meta-item {
    display: inline-flex;
    align-items: center;
}
.dib-meta-item + .dib-meta-item::before {
    content: "•";
    margin-right: .5rem;
    color: #b8bcc7;
}
.dib-meta-author {
    font-weight: 600;
    color: #1a1a2e;
}
.dib-meta-readtime {
    font-style: italic;
}

/* ── Pagination ──────────────────────────────────────── */
.blog-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin: 2.5rem 0 1rem;
}
.blog-pagination__pages {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: .5rem;
}
.blog-pagination__btn,
.blog-pagination__page {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.75rem;
    height: 2.75rem;
    padding: 0 .9rem;
    font-weight: 600;
    text-decoration: none;
    border: 1px solid transparent;
    transition: background .2s, color .2s, border-color .2s;
}
.blog-pagination__btn--nav {
    background: #F14910;
    color: #fff;
    padding: 0 1.6rem;
    gap: .5rem;
    min-width: 9rem;
}
.blog-pagination__btn--prev {
    /* top-left corner cut diagonally (bottom edges stay square) */
    clip-path: polygon(14px 0, 100% 0, 100% 100%, 0 100%, 0 14px);
}
.blog-pagination__btn--next {
    /* top-right corner cut diagonally (bottom edges stay square) */
    clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%);
}
.blog-pagination__btn--nav:hover {
    background: #c8390a;
    color: #fff;
}
.blog-pagination__btn.is-disabled {
    background: #f1f1f1;
    color: #aaa;
    pointer-events: none;
}
.blog-pagination__page {
    background: rgba(69, 69, 219, 0.1); /* var(--tosa-blue) @ 10% */
    color: var(--tosa-blue);
    border-color: transparent;
}
.blog-pagination__page:hover {
    background: rgba(69, 69, 219, 0.18);
    color: var(--tosa-blue);
    border-color: transparent;
}
.blog-pagination__page.is-active {
    background: var(--tosa-blue);
    color: #fff;
    border-color: var(--tosa-blue);
    cursor: default;
}

/* Single-post embed wrapper (kept for ?p=<slug>) */
.blog-feed {
    background: url(/build/images/scoring-bg.06285efa.jpg) center/cover no-repeat;
    min-height: 480px;
}
.blog-feed__container {
    max-width: 1100px;
    margin: 0 auto;
}
.blog-feed__loading {
    color: var(--tosa-blue);
}

/* ── Single post (server-rendered) ──────────────────── */
.dib-post {
    background: transparent;
    padding: 48px clamp(1.25rem, 4vw, 3.5rem);
    max-width: none;
    width: 100%;
    margin: 0;
}
.dib-post-title {
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 700;
    color: #1a1a2e;
    line-height: 1.2;
    margin: 0 0 1rem;
}
.dib-post .dib-meta-text {
    margin-bottom: 1.5rem;
}
.dib-post-featured-image {
    display: block;
    width: 100%;
    height: auto;
    margin: 0 0 2rem;
}
.dib-audio {
    background: #fff;
    border: none;
    border-radius: 0;
    padding: .85rem 1.25rem;
    margin: 0 0 2rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    box-shadow: 0 6px 20px rgba(20, 30, 60, 0.08);
}
.dib-audio audio {
    display: none; /* hidden — replaced by the custom controls below */
}
.dib-audio__btn {
    border: 0;
    background: transparent;
    padding: 0;
    cursor: pointer;
    color: #1a1a2e;
    font-size: 1.25rem;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.dib-audio__btn:hover {
    color: #000;
}
.dib-audio__play {
    color: var(--tosa-orange);
    font-size: 1.85rem;
}
.dib-audio__play:hover {
    color: #c8390a;
}
.dib-audio__time {
    font-variant-numeric: tabular-nums;
    color: #1a1a2e;
    font-size: .9rem;
    white-space: nowrap;
    font-weight: 500;
}
.dib-audio__progress {
    flex: 1 1 auto;
    height: 6px;
    background: #DBEDF5; /* light cyan track */
    border-radius: 999px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    min-width: 80px;
}
.dib-audio__progress-fill {
    background: var(--tosa-teal); /* darker teal progress */
    width: 0%;
    height: 100%;
    border-radius: 999px;
    transition: width .1s linear;
}
.dib-audio__progress:focus {
    outline: 2px solid rgba(13, 107, 110, 0.4);
    outline-offset: 2px;
}
.dib-post-content {
    color: #2a2a3a;
    line-height: 1.7;
    font-size: 1.0625rem;
}
/* All links inside the article use the Tosa orange. */
.dib-post a,
.dib-post a:visited,
.dib-post a span {
    color: var(--tosa-orange) !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.dib-post a:hover,
.dib-post a:focus {
    color: #c8390a !important;
    text-decoration: underline;
}
.dib-post-content p { margin: 0 0 1.1rem; }
.dib-post-content img { max-width: 100%; height: auto; }
.dib-post-content h2 { font-size: 1.5rem; margin: 2rem 0 1rem; }
.dib-post-content h3 { font-size: 1.2rem; margin: 1.6rem 0 .8rem; }
.dib-related {
    margin: 4rem 0 0;
    padding-top: 2.5rem;
    border-top: 1px solid rgba(20, 30, 60, 0.12);
}
.dib-related__title {
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    font-weight: 700;
    color: #1a1a2e;
    margin: 0;
    text-align: center;
}
.dib-related__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}
@media (max-width: 991.98px) {
    .dib-related__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575.98px) {
    .dib-related__grid { grid-template-columns: 1fr; }
}
/* Related-post card titles stay black + no underline,
   overriding the orange/underline rule applied to all anchors inside .dib-post. */
.dib-related .blog-card__title a,
.dib-related .blog-card__title a:visited {
    color: #1a1a2e !important;
    text-decoration: none !important;
}
.dib-related .blog-card__title a:hover {
    color: #F14910 !important;
}
.dib-related .blog-card__more,
.dib-related .blog-card__more span,
.dib-related .blog-card__title a span {
    text-decoration: none !important;
}

.dib-post-back {
    margin-top: 2.5rem;
    font-weight: 600;
}
.dib-post-back a {
    color: var(--tosa-blue);
    text-decoration: none;
}
.dib-post-back a:hover {
    text-decoration: underline;
}

/* Online-store variant of the newsletter — extra-tall section with the team
   photo above the form. */
.newsletter--online-store {
    padding-top: 80px !important;
    padding-bottom: 96px !important;
}
.newsletter--online-store__photo-wrap {
    max-width: 1100px;
    margin: 0 auto;
}
.newsletter--online-store__photo {
    display: block;
    width: 100%;
    height: auto;
    clip-path: polygon(0 0, calc(100% - 80px) 0, 100% 80px, 100% 100%, 0 100%);
}

/* ── Book Exam page ──────────────────────────────────── */

/* Hero — full-section cover image with overlay copy on the left.
   The aspect-ratio is locked to the source image (≈1600×873) so the entire
   photo is always visible, edge-to-edge. Capped to stay below viewport
   height so the whole hero (and a hint of the section below) fits on screen. */
.be-hero {
    position: relative;
    width: 100%;
    aspect-ratio: 1600 / 873;
    max-height: calc(100vh - 100px);
    min-height: 360px;
    overflow: hidden;
    background: #eaf3fb;
}
.be-hero__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
}
.be-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.95) 0%, rgba(255, 255, 255, 0.82) 35%, rgba(255, 255, 255, 0.35) 60%, rgba(255, 255, 255, 0) 75%);
}
.be-hero__inner {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    align-items: center;
    padding-top: 64px;
    padding-bottom: 64px;
}
.be-hero__copy { max-width: 620px; }
.be-hero__title {
    color: #1a1a2e;
    font-size: clamp(2rem, 3.6vw, 2.75rem);
}
.be-hero__text {
    color: #2a2a3a;
    line-height: 1.65;
    font-size: 1rem;
}
.be-hero__link {
    color: var(--tosa-orange);
    text-decoration: underline;
}
.be-hero__link:hover {
    color: var(--tosa-orange);
}
@media (max-width: 767.98px) {
    .be-hero__overlay {
        background: linear-gradient(180deg, rgba(255, 255, 255, 0.92) 0%, rgba(255, 255, 255, 0.85) 100%);
    }
}

/* Steps */
.be-steps {
    background: #fff;
}
.be-steps__card {
    background: transparent;
    max-width: 1100px;
    margin: 0 auto;
    padding: 48px clamp(20px, 3vw, 56px);
    box-shadow: none;
}
.be-step {
    display: flex;
    gap: 20px;
    align-items: flex-start;
    padding: 28px 26px;
    background: #fff;
    height: 100%;
    min-height: 156px;
}
.be-step__icon-wrap {
    position: relative;
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
}
/* Soft blue blurred line under the icon. */
.be-step__icon-wrap::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: -10px;
    transform: translateX(-50%);
    width: 60px;
    height: 6px;
    background: var(--tosa-blue);
    border-radius: 999px;
    filter: blur(6px);
    opacity: 0.5;
    pointer-events: none;
}
.be-step__icon {
    width: 56px;
    height: 56px;
    object-fit: contain;
    display: block;
}
.be-step__title {
    color: var(--tosa-blue);
    font-size: 1.05rem;
    margin: 0 0 6px;
}
.be-step__text {
    color: #4a4a5e;
    line-height: 1.55;
    font-size: 0.92rem;
}
.be-step__link {
    color: var(--tosa-orange);
    text-decoration: underline;
    text-underline-offset: 2px;
    font-weight: 500;
}
.be-step__link:hover {
    color: #c8390a;
}

/* ─── Purchase wizard (4-step browser mockup) ────────────────────── */
.be-purchase {
    background-color: #f7fbfd;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

/* Step indicator — solid rectangles, one per step. Inactive steps stay
   light blue with grey text; the active step and previously-completed steps
   get a solid Tosa blue background with white text. */
.be-purchase__steps {
    list-style: none;
    padding: 0;
    margin: 0 auto 40px;
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 12px;
    max-width: 1100px;
}
.be-purchase__step {
    flex: 1;
    text-align: center;
    color: #9aa0b4;
    font-size: 1.05rem;
    font-weight: 700;
    cursor: pointer;
    padding: 22px 16px;
    background: #eaf3fb;
    box-shadow: 0 4px 14px rgba(20, 30, 60, 0.04);
    transition: background-color .2s, color .2s;
}
.be-purchase__step.is-active,
.be-purchase__step.is-done {
    background: var(--tosa-blue);
    color: #fff;
}
/* Skipped (e.g. step 2 when the chosen subject has no language/version
   choice to make) — keep the dot visible but visibly muted so the flow
   doesn't shift and the user understands this step was bypassed. */
.be-purchase__step.is-skipped {
    background: #d8dde8;
    color: #8b93a8;
    cursor: not-allowed;
    opacity: 0.85;
}
.be-purchase__step.is-skipped.is-done,
.be-purchase__step.is-skipped.is-active {
    /* If skipped, never show the active/done blue treatment. */
    background: #d8dde8;
    color: #8b93a8;
}
.be-purchase__step-num { display: block; }

/* Browser mockup wrapper — the browser chrome is stretched as a background,
   and .be-purchase__inner sits inside, padded down past the URL bar so the
   content lives within the chrome's empty area. The inner radius matches the
   chrome's rounded corners so the white frame doesn't peek out past them. */
.be-purchase__frame {
    position: relative;
    max-width: 1100px;
    margin: 0 auto;
    background-color: #fff;
    background-repeat: no-repeat;
    background-position: center top;
    background-size: 100% 100%;
    border-radius: 0 0 13px 13px;
    overflow: hidden;
    box-shadow: 0 10px 40px rgba(20, 30, 60, 0.10);
}
.be-purchase__inner {
    /* The browser chrome PNG (1440×961) reserves ~75px at the top for the
       URL bar — push our content past it. Bottom padding gives the chrome
       a thin frame around the content too. */
    padding: 92px clamp(28px, 3vw, 56px) 56px;
}
.be-purchase__pane { display: none; min-height: 520px; }
.be-purchase__pane.is-active { display: block; }
/* Step 3 has fewer items than the others — center its content vertically so
   the pane never looks cramped against the wider step 1 / 2 / 4 layouts. */
.be-purchase__pane[data-purchase-pane="3"].is-active {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Tabs (step 1) — reuse the chrome from .cert-offerings */
.be-purchase__tabs {
    justify-content: center;
    gap: 0;
    border-bottom: 1px solid #ececf3;
    margin-bottom: 28px;
}
.be-purchase__tabs .nav-link {
    border: 0;
    background: transparent;
    padding: 12px 24px;
    color: #777;
    font-weight: 600;
    border-bottom: 3px solid transparent;
    border-radius: 0;
}
.be-purchase__tabs .nav-link.active {
    background: #fff;
    color: var(--tosa-blue);
    border-bottom-color: var(--tosa-blue);
}
.be-purchase__tab-logo {
    height: 48px;
    width: auto;
    display: block;
}
.be-purchase__heading {
    color: #1a1a2e;
    font-size: 1.5rem;
    margin: 0 0 4px;
}
.be-purchase__pane-intro {
    color: #2a2a3a;
    font-size: 1rem;
    line-height: 1.55;
    text-align: center;
    max-width: 760px;
    margin: 0 auto 28px;
}
.be-purchase__subtitle {
    font-size: 0.95rem;
    margin: 0;
}

/* Subject buttons */
.be-purchase__subject {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    aspect-ratio: 1 / 1;
    width: 100%;
    padding: 16px 10px;
    background: transparent;
    border: 1px solid #E6F3F9;
    color: #1a1a1a;
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    transition: background-color .2s, border-color .2s, box-shadow .2s, transform .2s, color .2s;
}
.be-purchase__subject:hover {
    background: #fff;
    border-color: var(--tosa-orange);
    box-shadow: 0 6px 20px rgba(241, 73, 16, 0.10);
    transform: translateY(-2px);
    color: var(--tosa-blue);
}
.be-purchase__subject img {
    max-width: 100%;
    max-height: 64px;
    object-fit: contain;
}
.be-purchase__subject span { line-height: 1.2; text-align: center; }

/* Step 2 — language + version */
.be-purchase__group-title {
    color: var(--tosa-blue);
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 16px;
}
.be-purchase__radio-list {
    list-style: none;
    padding: 0;
    margin: 0 0 8px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.be-purchase__radio-list label {
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    color: #1a1a2e;
    font-size: 1rem;
}
.be-purchase__radio-list input[type="radio"] {
    width: 18px;
    height: 18px;
    accent-color: var(--tosa-orange);
}
.be-purchase__photo {
    display: block;
    width: 100%;
    height: auto;
    clip-path: polygon(0 0, calc(100% - 28px) 0, 100% 28px, 100% 100%, 0 100%);
}

/* Step 1 — subject details (confirmation card after picking a subject).
   Rectangular layout, mirrors the legacy bookanexam page treatment. */
.be-purchase__details {
    padding: 4px 8px;
}
.be-purchase__details[hidden] { display: none; }
.be-purchase__details-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 28px;
}
.be-purchase__details-back {
    background: transparent;
    border: 0;
    color: var(--tosa-orange);
    font-size: 1.1rem;
    line-height: 1;
    padding: 6px 8px;
    cursor: pointer;
    border-radius: 0;
}
.be-purchase__details-back:hover {
    color: #d83a04;
}
.be-purchase__details-eyebrow {
    color: #1a1a2e;
    font-size: 1rem;
    font-weight: 500;
}
.be-purchase__details-eyebrow strong {
    font-weight: 700;
}
.be-purchase__details-icon {
    border: 1px solid #e5e7eb;
    background: #fff;
    border-radius: 0;
    padding: 56px 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
}
.be-purchase__details-icon img {
    max-width: 220px;
    max-height: 220px;
    width: 100%;
    height: auto;
    object-fit: contain;
}
.be-purchase__details-desc {
    color: #1f2937;
    line-height: 1.6;
    font-size: 0.95rem;
    margin-bottom: 18px;
}
.be-purchase__details-h {
    color: var(--tosa-blue);
    font-size: 1rem;
    font-weight: 700;
    margin: 18px 0 8px;
}
.be-purchase__details-list {
    list-style: none;
    padding: 0;
    margin: 0 0 4px;
    color: #374151;
    font-size: 0.9rem;
    line-height: 1.7;
}
.be-purchase__details-list li {
    padding-left: 16px;
    position: relative;
}
.be-purchase__details-list li::before {
    content: '›';
    color: #6b7280;
    position: absolute;
    left: 0;
    font-weight: 700;
}
.be-purchase__details-learnmore {
    margin: 18px 0 0;
    color: #1f2937;
    font-size: 0.9rem;
}
.be-purchase__details-learnmore a {
    color: var(--tosa-orange);
    font-weight: 700;
    text-decoration: none;
}
.be-purchase__details-learnmore a:hover {
    text-decoration: underline;
}

/* Step 3 — proctoring */
.be-purchase__proctor {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 36px;
    padding: 80px 32px;
    min-height: 360px;
    height: 100%;
    border: 1px solid #d9dae6;
    cursor: pointer;
    text-align: center;
    transition: border-color .2s, background-color .2s;
}
.be-purchase__proctor:hover {
    border-color: var(--tosa-blue);
    background: #f7fbfd;
}
/* Selected state — match the orange ✓ in the corner with an orange
   card border so the choice reads at a glance. `:has(input:checked)`
   targets the label whose nested radio is checked. */
.be-purchase__proctor:has(input:checked) {
    border-color: var(--tosa-orange);
    background: #fff7f3;
}
.be-purchase__proctor input[type="checkbox"],
.be-purchase__proctor input[type="radio"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.be-purchase__proctor-check {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 22px;
    height: 22px;
    border: 1.5px solid #d9dae6;
    background: #fff;
    transition: background-color .15s, border-color .15s;
}
.be-purchase__proctor input:checked ~ .be-purchase__proctor-check {
    background: var(--tosa-orange);
    border-color: var(--tosa-orange);
}
.be-purchase__proctor input:checked ~ .be-purchase__proctor-check::after {
    content: '✓';
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
}
.be-purchase__proctor-icon {
    width: 110px;
    height: 110px;
    object-fit: contain;
}
.be-purchase__proctor-label {
    color: #1a1a2e;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.4;
    max-width: 280px;
}
.be-purchase__proctor-text {
    color: #4a4a5e;
    font-size: 0.9rem;
    line-height: 1.55;
    max-width: 300px;
    margin-top: -20px;
}
.be-purchase__proctor-text a {
    color: var(--tosa-orange);
}
.be-purchase__proctor-error {
    color: var(--tosa-orange);
    font-size: 0.9rem;
    font-weight: 600;
    text-align: center;
    margin: 16px 0 0;
}

/* Next link */
.be-purchase__next {
    display: inline-block;
    color: var(--tosa-orange);
    font-weight: 700;
    text-decoration: none;
    font-size: 1rem;
    padding: 6px 4px;
}
.be-purchase__next:hover { color: #c8390a; }

/* Step 4 — packs */
.be-purchase__legal {
    color: #2a2a3a;
    font-size: 0.92rem;
    line-height: 1.55;
}
.be-purchase__packs {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0;
    border: 1px solid #ececf3;
}
@media (max-width: 991.98px) { .be-purchase__packs { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575.98px) { .be-purchase__packs { grid-template-columns: 1fr; } }
.be-purchase__pack {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-right: 1px solid #ececf3;
}
.be-purchase__pack:last-child { border-right: 0; }

.be-purchase__pack-head {
    padding: 22px 20px;
    background: #f5f7ff;
    border-bottom: 1px solid #ececf3;
    min-height: 92px;
    display: flex;
    align-items: center;
}
.be-purchase__pack.is-active .be-purchase__pack-head,
.be-purchase__pack:hover .be-purchase__pack-head {
    background: var(--tosa-orange);
}
.be-purchase__pack-name {
    color: #1a1a2e;
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.25;
}
.be-purchase__pack.is-active .be-purchase__pack-name,
.be-purchase__pack:hover .be-purchase__pack-name { color: #fff; }

.be-purchase__pack-body {
    flex: 1 1 auto;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.be-purchase__pack-desc {
    color: #2a2a3a;
    font-size: 0.92rem;
    line-height: 1.5;
    margin: 0;
}
/* Reset the browser's default ul indent inside the pack description so the
   bullets align with the rest of the text. The list comes straight from
   the API (spe_det.tosa_pri_det.des HTML), so we style it inline here. */
.be-purchase__pack-desc ul {
    list-style: disc;
    margin: 8px 0 0;
    padding-left: 1.1rem;
}
.be-purchase__pack-desc li {
    margin-bottom: 2px;
}
.be-purchase__pack-features {
    list-style: disc inside;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1 1 auto;
}
.be-purchase__pack-features li {
    color: #2a2a3a;
    font-size: 0.9rem;
    line-height: 1.4;
}
.be-purchase__pack-features li::marker { color: var(--tosa-blue); }

.be-purchase__pack-price {
    color: var(--tosa-blue);
    font-size: 1.5rem;
    font-weight: 700;
    margin-top: auto;
}

.be-purchase__pack-checkout {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 14px 18px;
    background: #f5f7ff;
    border: 0;
    border-top: 1px solid #ececf3;
    color: #2a2a3a;
    font-weight: 700;
    cursor: pointer;
    transition: background-color .2s, color .2s;
}
.be-purchase__pack.is-active .be-purchase__pack-checkout,
.be-purchase__pack:hover .be-purchase__pack-checkout {
    background: var(--tosa-orange);
    color: #fff;
    clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 16px, 100% 100%, 0 100%);
}
.be-purchase__pack-radio {
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 1.5px solid #d9dae6;
    background: #fff;
    flex-shrink: 0;
    margin-right: 8px;
    position: relative;
}
.be-purchase__pack.is-active .be-purchase__pack-radio,
.be-purchase__pack:hover .be-purchase__pack-radio {
    background: var(--tosa-yellow);
    border-color: var(--tosa-yellow);
}
.be-purchase__pack.is-active .be-purchase__pack-radio::after,
.be-purchase__pack:hover .be-purchase__pack-radio::after {
    content: '✓';
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #1a1a2e;
    font-size: 12px;
    font-weight: 700;
}
.be-purchase__pack-arrow { margin-left: auto; }

/* ── Contact Us page ─────────────────────────────────── */
.cu-banner {
    position: relative;
    width: 100%;
    min-height: 800px;
    overflow: hidden;
    background: #eaf3fb;
    display: flex;
    flex-direction: column;
}
@media (min-width: 1200px) {
    .cu-banner { min-height: 880px; }
}
.cu-banner__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center;
}
.cu-banner__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.96) 0%, rgba(255, 255, 255, 0.88) 30%, rgba(255, 255, 255, 0.45) 55%, rgba(255, 255, 255, 0) 70%);
}
.cu-banner__inner {
    position: relative;
    z-index: 2;
    flex: 1;
    display: flex;
    align-items: center;
    padding-top: 64px;
    padding-bottom: 64px;
}
.cu-banner__copy { max-width: 520px; }
.cu-banner__title {
    color: #1a1a2e;
    font-size: clamp(2.5rem, 4.5vw, 3.5rem);
}
.cu-banner__text {
    color: #2a2a3a;
    line-height: 1.65;
    font-size: 1.125rem;
}
@media (max-width: 767.98px) {
    .cu-banner__overlay {
        background: linear-gradient(180deg, rgba(255, 255, 255, 0.92) 0%, rgba(255, 255, 255, 0.85) 100%);
    }
}

/* Form section */
.cu-form-section { background: #fff; }
.cu-form-card {
    position: relative;
    background: var(--tosa-blue);
    color: #fff;
    padding: 56px clamp(24px, 4vw, 64px);
    max-width: 1100px;
    margin: 0 auto;
    /* Same chamfered top-right corner used on hero blocks. */
    clip-path: polygon(0 0, calc(100% - 36px) 0, 100% 36px, 100% 100%, 0 100%);
}
.cu-form-card__title {
    color: #fff;
    font-size: clamp(1.5rem, 2.6vw, 2rem);
    margin: 0 0 1.5rem;
}

.cu-form { width: 100%; }
.cu-form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-bottom: 16px;
}
.cu-form__row--full {
    grid-template-columns: 1fr;
}
.cu-form__group { width: 100%; }
.cu-form__label {
    display: block;
    color: #fff;
    font-size: 0.9375rem;
    font-weight: 500;
    margin-bottom: 8px;
    line-height: 1.3;
}
.cu-form__required {
    color: #ff5a5a;
    margin-left: 2px;
    font-weight: 700;
}
.cu-form__input {
    width: 100%;
    padding: 14px 16px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.45);
    border-radius: 4px;
    color: #fff;
    font-size: 1rem;
    line-height: 1.4;
}
.cu-form__input::placeholder {
    color: rgba(255, 255, 255, 0.7);
}
.cu-form__input:focus {
    outline: 0;
    border-color: #fff;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.18);
}
.cu-form__textarea {
    resize: vertical;
    min-height: 120px;
}
.cu-form__consent {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 16px 0 8px;
    color: #fff;
    font-size: 1rem;
    line-height: 1.5;
}
.cu-form__consent input[type="checkbox"] {
    flex-shrink: 0;
    margin-top: 4px;
    width: 18px;
    height: 18px;
    accent-color: var(--tosa-orange);
}
.cu-form__privacy {
    margin: 0 0 24px 30px;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.8125rem;
    line-height: 1.5;
}
.cu-form__privacy-link {
    color: rgba(255, 255, 255, 0.95);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.cu-form__privacy-link:hover {
    color: #fff;
}
.cu-form__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}
/* reCAPTCHA widget container — the iframe inserted by Google renders at
   ~304×78 with its own chrome, so we just give it a transparent slot. */
.cu-form__captcha {
    display: inline-block;
    min-height: 78px;
}
.cu-form__captcha .g-recaptcha {
    display: inline-block;
}

/* Inline error returned by the AJAX submit. */
.cu-form__error {
    margin: 0 0 12px;
    padding: 10px 14px;
    background: rgba(255, 73, 16, 0.18);
    border-left: 3px solid var(--tosa-orange);
    color: #fff;
    font-size: 0.92rem;
    line-height: 1.45;
}

/* Success confirmation shown after a valid client-side submit. */
.cu-form__success {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 20px 24px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.4);
    color: #fff;
    line-height: 1.5;
    font-size: 1rem;
}
.cu-form__success i {
    color: var(--tosa-yellow);
    font-size: 1.5rem;
    line-height: 1;
    flex-shrink: 0;
    margin-top: 2px;
}
.cu-form__submit { flex-shrink: 0; }

@media (max-width: 575.98px) {
    .cu-form__row { grid-template-columns: 1fr; }
}

/* Office locations — reuses .wwa-offices__* classes from who-we-are */
.cu-offices {
    background-color: #e6f4f8;
    background-image: url("/build/images/How%20to%20Apply-bg.496bac33.jpg");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    padding: 40px 0;
}

/* Compact newsletter on contact-us page — trim shared 320px top padding. */
.cu-offices + .newsletter {
    padding-top: 80px !important;
    padding-bottom: 60px !important;
}

/* Shared office-locations card/pin/city styles used on both who-we-are and
   contact-us pages. Page-specific backgrounds live in their own stylesheets. */
.wwa-offices__row {
    align-items: stretch;
}
.wwa-offices__col + .wwa-offices__col {
    border-left: 1px solid rgba(26, 26, 46, 0.18);
}
.wwa-offices__card {
    background: transparent;
    border: 0;
    padding: 16px 28px;
    text-align: center;
    height: 100%;
    box-shadow: none;
    transition: transform .2s ease;
}
.wwa-offices__card:hover {
    transform: translateY(-2px);
}
.wwa-offices__pin {
    width: 56px;
    height: 56px;
    object-fit: contain;
    display: inline-block;
    margin-bottom: 1.5rem;
}
.wwa-offices__city {
    color: var(--tosa-blue);
    font-size: 1.25rem;
    margin-bottom: 1rem;
}
.wwa-offices__addr {
    color: #1a1a2e;
    font-size: 1rem;
    line-height: 1.65;
}
@media (max-width: 767.98px) {
    .wwa-offices__col + .wwa-offices__col {
        border-left: 0;
        border-top: 1px solid rgba(26, 26, 46, 0.18);
    }
    .wwa-offices__card {
        padding: 28px 24px;
    }
}

/* ── State Approvals page ────────────────────────────── */

/* Banner */
.sa-banner {
    position: relative;
    width: 100%;
    min-height: 580px;
    overflow: hidden;
    background: #eaf3fb;
    display: flex;
    flex-direction: column;
}
@media (min-width: 1200px) {
    .sa-banner { min-height: 640px; }
}
.sa-banner__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 70%;
    opacity: 0.85;
}
.sa-banner__inner {
    position: relative;
    z-index: 2;
    flex: 1;
    display: flex;
    align-items: center;
}
.sa-banner__title {
    color: #1a1a2e;
    font-size: clamp(2.25rem, 4.5vw, 3.5rem);
}

/* Section: Recognized Nationally (full-bleed image left) */
.sa-recognized {
    background: #fff;
    padding: 0;
}
.sa-recognized > .container-xl.py-5 {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}
.sa-recognized > .container-xl.py-5 > .row {
    --bs-gutter-x: 0;
    --bs-gutter-y: 0;
    margin: 0;
}
.sa-recognized > .container-xl.py-5 > .row > [class*="col-"] {
    padding-left: 0;
    padding-right: 0;
}
.sa-recognized__img {
    display: block;
    width: 80%;
    height: auto;
    max-width: none;
    clip-path: none;
}
.sa-recognized__text {
    color: #2a2a3a;
    line-height: 1.65;
    font-size: 1rem;
}
@media (min-width: 992px) {
    .sa-recognized > .container-xl.py-5 > .row > .col-lg-6:last-child {
        padding-left: 80px;
        padding-right: 120px;
    }
}
@media (min-width: 1400px) {
    .sa-recognized > .container-xl.py-5 > .row > .col-lg-6:last-child {
        padding-left: 120px;
        padding-right: 200px;
    }
}
@media (max-width: 991.98px) {
    .sa-recognized > .container-xl.py-5 > .row > .col-lg-6:last-child {
        padding: 40px 24px;
    }
}

/* Section: Approved Across the United States (dark map background) */
.sa-map {
    position: relative;
    color: #fff;
    background-color: #1f2a8d;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    overflow: hidden;
    padding: 80px 0;
}
.sa-map > .container-xl.py-5 {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
}
.sa-map__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(31, 42, 141, 0.92) 0%, rgba(31, 42, 141, 0.55) 60%, rgba(31, 42, 141, 0.85) 100%);
}
.sa-map__inner {
    position: relative;
    z-index: 2;
}
.sa-map__header {
    max-width: 1200px;
}
.sa-map__intro {
    color: rgba(255, 255, 255, 0.92);
    line-height: 1.6;
    max-width: 760px;
    font-size: 1.125rem;
}
.sa-map__states {
    list-style: none;
    padding: 0;
    margin: 32px 0 0;
    max-width: 640px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 56px;
}
.sa-map__state {
    position: relative;
    padding-left: 28px;
    color: #fff;
    font-size: 1.25rem;
    line-height: 1.5;
    font-weight: 600;
}
.sa-map__state::before {
    content: '';
    position: absolute;
    left: 0;
    top: 12px;
    width: 10px;
    height: 10px;
    background: var(--tosa-yellow);
    border-radius: 50%;
}
.sa-map__state-link {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-thickness: 1.5px;
}
.sa-map__state-link:hover {
    color: var(--tosa-yellow);
}
/* Yellow section-dots variant (override base section-dots span color) */
.section-dots--yellow span {
    background: var(--tosa-yellow);
}
@media (max-width: 767.98px) {
    .sa-map__states { grid-template-columns: 1fr; }
}

/* Combined section: Expanding Access + Bring Tosa to Your State */
.sa-combo {
    background-color: #f0f9fc;
    background-image: url("/build/images/Expanding%20Access-bg.bbb5784c.jpg");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    padding: 80px 0;
}
.sa-combo__row {
    padding: 32px 0;
}
.sa-combo__row + .sa-combo__row {
    margin-top: 32px !important;
}
.sa-combo__card {
    background: #fff;
    padding: 48px 56px;
    box-shadow: 0 12px 30px rgba(20, 30, 60, 0.08);
}
.sa-expanding__img,
.sa-bring__img {
    display: block;
    width: 67%;
    height: auto;
    clip-path: none;
}
.sa-expanding__text,
.sa-bring__text {
    color: #2a2a3a;
    line-height: 1.65;
    font-size: 1rem;
}
@media (max-width: 991.98px) {
    .sa-combo__card {
        padding: 32px 28px;
    }
}

/* Compact newsletter on state-approvals page — trim the shared section's
   deep 320px top padding sized for an overlapping testimonial. */
.sa-combo + .newsletter {
    padding-top: 80px !important;
    padding-bottom: 60px !important;
}
.sa-bring__list {
    list-style: none;
    padding: 0;
    margin: 0 0 1rem;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.sa-bring__list li {
    position: relative;
    padding-left: 22px;
    color: #2a2a3a;
    font-size: 0.98rem;
    line-height: 1.5;
}
.sa-bring__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 8px;
    width: 8px;
    height: 8px;
    background: var(--tosa-orange);
    border-radius: 50%;
}

/* ── State detail page (e.g. /state/texas) ───────────── */

/* Banner */
.st-banner {
    position: relative;
    width: 100%;
    min-height: 460px;
    overflow: hidden;
    background: #dcebf7;
    display: flex;
    flex-direction: column;
}
@media (min-width: 1200px) {
    .st-banner { min-height: 520px; }
}
.st-banner__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center;
}
.st-banner__inner {
    position: relative;
    z-index: 2;
    flex: 1;
    display: flex;
    align-items: center;
    padding-top: 40px;
    padding-bottom: 40px;
}
.st-banner__title {
    color: #1a1a2e;
    font-size: clamp(2.25rem, 4.5vw, 3.5rem);
    text-wrap: balance;
}
/* Keep long titles clear of the agency-logo zone on the right (the logo's
   horizontal position follows the banner artwork, so the safe width grows
   with the viewport). */
@media (min-width: 992px) {
    .st-banner__content { max-width: 50%; }
}
@media (min-width: 1200px) {
    .st-banner__content { max-width: 55%; }
}
@media (min-width: 1400px) {
    .st-banner__content { max-width: 60%; }
}
.st-banner__bullets {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.st-banner__bullets li {
    position: relative;
    padding-left: 22px;
    color: #1a1a2e;
    font-size: 1.05rem;
    font-weight: 500;
}
.st-banner__bullets li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 9px;
    width: 8px;
    height: 8px;
    background: var(--tosa-orange);
    border-radius: 50%;
}
.st-banner__agency {
    position: absolute;
    top: 50%;
    left: calc(100% - 0.2162 * max(100%, 1686px));
    transform: translate(-50%, -50%);
    z-index: 3;
    width: clamp(220px, 26vw, 340px);
    height: clamp(140px, 15vw, 250px);
    object-fit: contain;
}

/* Intro + download */
.st-intro {
    padding: 2.5rem 0;
    background: #fff url(/build/images/Vector.f7946dca.png) no-repeat left 60px;
    background-size: 50% auto;
}
.st-intro__text {
    color: #2a2a3a;
    line-height: 1.7;
    font-size: 1.0625rem;
    max-width: 980px;
}

/* The Official Approved List (dark teal) */
.st-official {
    background-color: var(--tosa-teal);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: #fff;
}
.st-official__sub {
    color: #fff;
    font-size: 1.25rem;
    font-weight: 600;
}
.st-official__text {
    color: rgba(255, 255, 255, 0.9);
    line-height: 1.65;
    font-size: 1rem;
}
.st-official__img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 0;
}
@media (min-width: 1400px) {
    .st-official__img {
        width: 83%;
        margin-left: auto;
    }
}
.st-quote {
    background: rgba(255, 255, 255, 0.08);
    border-left: 4px solid var(--tosa-yellow);
    padding: 24px 28px;
    margin: 0;
}
.st-quote p {
    color: rgba(255, 255, 255, 0.95);
    font-size: 0.95rem;
    line-height: 1.6;
    font-style: italic;
}
.st-quote cite {
    color: var(--tosa-yellow);
    font-size: 0.9rem;
    font-weight: 600;
    font-style: normal;
}

/* Eligible Schools and Grades */
.st-eligible { background: #fff; }
.st-eligible__img {
    display: block;
    width: 80%;
    height: auto;
    border-radius: 0;
}
.st-eligible__text,
.st-text {
    color: #2a2a3a;
    line-height: 1.65;
    font-size: 1rem;
}
.st-h3 {
    color: #1a1a2e;
    font-size: clamp(1.4rem, 2.4vw, 1.85rem);
    font-weight: 700;
}
.st-img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 0;
}
/* Portrait shots (e.g. Reporting Process) would tower over the text column
   at full column width — cap them and center in the column instead. */
.st-img--capped {
    width: auto;
    max-width: 100%;
    max-height: 450px;
    margin-inline: auto;
}
/* Fill the column and match the sibling column's height. */
.st-img--cover {
    height: 100%;
    object-fit: cover;
}

/* Shared tables */
.st-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.92rem;
    background: #fff;
}
.st-table thead th {
    background: var(--tosa-blue);
    color: #fff;
    font-weight: 600;
    padding: 12px 16px;
    text-align: left;
    vertical-align: middle;
}
.st-table tbody td {
    padding: 12px 16px;
    border-bottom: 1px solid #e6e9f2;
    color: #2a2a3a;
    line-height: 1.5;
    vertical-align: top;
}
.st-table tbody tr:nth-child(even) td {
    background: var(--tosa-blue-light);
}
.st-table--two td:first-child {
    font-weight: 600;
    color: #1a1a2e;
    white-space: nowrap;
}
.st-eligible .st-table,
.st-eligible .st-table th,
.st-eligible .st-table td {
    border: 1px solid #d7dcea;
}
.st-note {
    background: #fdeee6;
    border-radius: 0;
    padding: 14px 18px;
    color: #5a4a3a;
    font-size: 0.9rem;
    line-height: 1.55;
}
.st-warning {
    background: #fdeee6;
    border-radius: 6px;
    padding: 14px 18px;
    color: #8a4b1a;
    font-size: 0.9rem;
    line-height: 1.55;
}
.st-link {
    color: var(--tosa-orange);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Tier Structure (blue) */
.st-tier {
    background-color: var(--tosa-blue);
    background-size: auto 145%;
    background-position: center top;
    background-repeat: no-repeat;
    color: #fff;
    padding: 3.5rem 0;
}
.st-tier .section-dots--yellow span {
    background: var(--tosa-orange) !important;
}
.st-tier__intro {
    color: rgba(255, 255, 255, 0.9);
    font-size: 1.05rem;
}
.st-tier__card {
    position: relative;
    background: #fff;
    padding: 28px 26px;
    height: 100%;
    box-shadow: 0 12px 30px rgba(20, 30, 60, 0.12);
}
.st-tier__card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 26px;
    width: 56px;
    height: 4px;
    background: var(--tosa-orange);
}
.st-tier__title {
    color: var(--tosa-orange);
    font-size: 1.35rem;
    font-weight: 700;
    margin-bottom: 12px;
}
.st-tier__card p {
    color: #2a2a3a;
    font-size: 0.95rem;
    line-height: 1.6;
    margin: 0;
}
.st-tier__footnote {
    color: rgba(255, 255, 255, 0.92);
    font-size: 0.95rem;
    line-height: 1.6;
    max-width: 980px;
    margin-left: auto;
    margin-right: auto;
}
.st-tier__table-wrap {
    max-width: 980px;
    margin: 0 auto;
    border-radius: 0;
    overflow: hidden;
    box-shadow: 0 12px 30px rgba(20, 30, 60, 0.18);
}
.st-table--inverse thead th {
    background: #1a1a2e;
}
.st-table--inverse td:first-child {
    font-weight: 600;
    color: var(--tosa-orange);
    white-space: nowrap;
}

/* Approved Tosa Certifications */
.st-certs { background: #fff; }
.st-certs__intro {
    color: #2a2a3a;
    line-height: 1.65;
    font-size: 1rem;
    max-width: 980px;
    margin-left: auto;
    margin-right: auto;
}
.st-certs__group td {
    background: #eef1f8 !important;
    font-weight: 700;
    color: #1a1a2e;
}
.st-certs__group i {
    color: var(--tosa-orange);
    margin-right: 8px;
}
.st-certs__group-icon {
    width: 20px;
    height: 20px;
    margin-right: 8px;
    vertical-align: middle;
    object-fit: contain;
}
.st-certs__table .st-certs__name {
    color: var(--tosa-orange);
    font-weight: 600;
}
.st-certs__link {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: transparent;
    transition: text-decoration-color 0.15s ease;
}
.st-certs__link:hover {
    text-decoration-color: currentColor;
}

.st-certs__table th,
.st-certs__table td {
    min-width: 100px;
}

/* Accountability (light blue) */
.st-accountability { background: var(--tosa-light-blue); }

/* Funding */
.st-funding { background: #fff; }
.st-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.st-list li {
    position: relative;
    padding-left: 22px;
    color: #2a2a3a;
    font-size: 0.98rem;
    line-height: 1.5;
}
.st-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 8px;
    width: 8px;
    height: 8px;
    background: var(--tosa-orange);
    border-radius: 50%;
}

/* CTA (yellow) — mirrors the homepage .get-started section */
.st-cta {
    background: transparent;
    padding: 0;
    position: relative;
    margin-bottom: -220px;
    z-index: 2;
}
.st-cta__card {
    background: var(--tosa-yellow);
    border-radius: 0;
    overflow: hidden;
    position: relative;
    /* Clip-path cut on top-right to match get-started style */
    clip-path: polygon(0 0, calc(100% - 60px) 0, 100% 60px, 100% 100%, 0 100%);
}
.st-cta__image-wrapper {
    position: relative;
    height: 100%;
    min-height: 420px;
    overflow: hidden;
}
.st-cta__img {
    display: block;
    width: 100%;
    height: 100%;
    max-height: 440px;
    object-fit: cover;
}
.st-cta__title {
    font-size: clamp(1.5rem, 2.8vw, 2.25rem);
    color: #1a1a2e;
    line-height: 1.2;
}
.st-cta__text {
    color: #1a1a2e;
    opacity: 0.85;
    font-size: 1.05rem;
}
@media (max-width: 991.98px) {
    .st-banner__agency {
        position: static;
        transform: none;
        display: block;
        width: clamp(200px, 60vw, 320px);
        height: clamp(110px, 32vw, 180px);
        margin: 24px auto 0;
    }
}

/* ── Partnerships page ───────────────────────────────── */

/* ── Careers page ────────────────────────────────────── */

/* Banner */
.careers-banner {
    position: relative;
    width: 100%;
    min-height: 580px;
    overflow: hidden;
    background: #eef3fa;
    display: flex;
    flex-direction: column;
}
@media (min-width: 1200px) {
    .careers-banner { min-height: 640px; }
}
.careers-banner__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: right center;
}
.careers-banner__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.92) 0%, rgba(255, 255, 255, 0.72) 30%, rgba(255, 255, 255, 0) 60%);
}
.careers-banner__inner {
    position: relative;
    z-index: 2;
    flex: 1;
    display: flex;
    align-items: center;
}
.careers-banner__title {
    color: #1a1a2e;
    font-size: clamp(2.5rem, 5vw, 4rem);
}

/* Section 1 — Why Work with Us (full-bleed image left, padded text right) */
.careers-why {
    background: #fff;
    padding: 0;
}
.careers-why > .container-xl.py-5 {
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}
.careers-why > .container-xl.py-5 > .row {
    --bs-gutter-x: 0;
    --bs-gutter-y: 0;
    margin: 0;
}
.careers-why > .container-xl.py-5 > .row > [class*="col-"] {
    padding-left: 0;
    padding-right: 0;
}
.careers-why__img {
    display: block;
    width: 100%;
    height: auto;
    max-width: none;
    clip-path: none;
}
.careers-why__text {
    color: #2a2a3a;
    line-height: 1.65;
    font-size: 1rem;
}
@media (min-width: 992px) {
    .careers-why > .container-xl.py-5 > .row > .col-lg-6:last-child {
        padding-left: 80px;
        padding-right: 120px;
    }
}
@media (min-width: 1400px) {
    .careers-why > .container-xl.py-5 > .row > .col-lg-6:last-child {
        padding-left: 120px;
        padding-right: 200px;
    }
}
@media (max-width: 991.98px) {
    .careers-why > .container-xl.py-5 > .row > .col-lg-6:last-child {
        padding: 40px 24px;
    }
}

/* Section 2 — Benefits & Perks */
.careers-benefits {
    background-color: #e8f5fa;
    background-image: url("/build/images/Benefits%20&%20Perks-bg.884f49bc.jpg");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    padding: 40px 0;
}
.careers-benefits > .container-xl.py-5 {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
}
.careers-benefits__intro {
    color: #1a1a2e;
    font-size: 1rem;
    font-weight: 500;
}
.careers-benefits__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px 28px;
}
.careers-benefits__list li {
    position: relative;
    padding-left: 22px;
    color: #1a1a2e;
    font-size: 1rem;
    line-height: 1.5;
}
.careers-benefits__list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 9px;
    width: 8px;
    height: 8px;
    background: var(--tosa-orange);
    border-radius: 50%;
}
.careers-benefits__img {
    display: block;
    width: 100%;
    height: auto;
    clip-path: none;
}
@media (max-width: 991.98px) {
    .careers-benefits__list { grid-template-columns: 1fr; }
}

/* Section 3 — How to Apply */
.careers-apply {
    background-color: #e6f4f8;
    background-image: url("/build/images/How%20to%20Apply-bg.496bac33.jpg");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    position: relative;
    overflow: hidden;
    padding: 60px 0;
}
.careers-apply > .container-xl.py-5 {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
}
.careers-apply__intro {
    color: #2a2a3a;
    line-height: 1.6;
    max-width: 760px;
    font-size: 1rem;
}
.careers-apply__row {
    box-shadow: 0 10px 30px rgba(30, 30, 60, 0.08);
}
.careers-apply__card {
    background: #fff;
    padding: 48px 40px 56px;
    min-height: 360px;
    height: 100%;
    position: relative;
    box-shadow: none;
    border-right: 1px solid #e0e3ed;
}
.careers-apply__row > [class*="col-"]:last-child .careers-apply__card {
    border-right: 0;
}
.careers-apply__step-pill {
    position: absolute;
    top: 24px;
    right: 24px;
    background: #b3e0d6;
    color: #005356;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    padding: 4px 10px;
}
.careers-apply__icon {
    width: 80px;
    height: 80px;
    object-fit: contain;
    display: block;
    margin-bottom: 16px;
}
.careers-apply__bar {
    display: block;
    width: 40px;
    height: 2px;
    background: var(--tosa-blue);
    border-radius: 2px;
    filter: blur(7px);
    margin-bottom: 24px;
}
.careers-apply__title {
    color: var(--tosa-blue);
    font-size: 1.25rem;
    margin: 0 0 12px;
}
.careers-apply__text {
    color: #4a4a5e;
    line-height: 1.6;
    font-size: 0.95rem;
}
@media (max-width: 767.98px) {
    .careers-apply__card {
        border-right: 0;
        border-bottom: 1px solid #e0e3ed;
        min-height: 0;
        padding: 36px 28px 40px;
    }
    .careers-apply__row > [class*="col-"]:last-child .careers-apply__card {
        border-bottom: 0;
    }
}

/* Section 4 — Explore Opportunities */
.careers-jobs {
    background-color: var(--tosa-blue);
    background-image: url("/build/images/Explore%20Opportunities-bg.4d2f8122.jpg");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    color: #fff;
}
.careers-jobs__intro {
    color: rgba(255, 255, 255, 0.92);
    line-height: 1.6;
    max-width: 760px;
    font-size: 1rem;
}
.careers-jobs__list {
    display: flex;
    flex-direction: column;
    gap: 20px;
    max-width: 1100px;
    margin: 0 auto;
}
.careers-jobs__card {
    background: #fff;
    padding: 24px 28px;
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}
.careers-jobs__icon {
    width: 96px;
    height: 96px;
    object-fit: contain;
    flex-shrink: 0;
}
.careers-jobs__body {
    flex: 1 1 320px;
    min-width: 0;
}
.careers-jobs__title {
    color: var(--tosa-blue);
    font-size: 1.2rem;
    margin: 0 0 8px;
}
.careers-jobs__desc {
    color: #2a2a3a;
    line-height: 1.55;
    font-size: 0.95rem;
}
.careers-jobs__apply {
    flex-shrink: 0;
}

.careers-jobs__more {
    margin-top: 56px;
}
.careers-jobs__more-title {
    color: #fff;
    font-size: clamp(1.5rem, 2.4vw, 2rem);
}
.careers-jobs__more-text {
    color: rgba(255, 255, 255, 0.92);
    line-height: 1.6;
    max-width: 880px;
    font-size: 1rem;
}
.careers-jobs__email {
    color: #fff;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.careers-jobs__email:hover {
    color: var(--tosa-yellow);
}

/* Compact newsletter on the careers page — the previous .careers-jobs section
   is already heavy, so trim the shared newsletter's deep top padding. */
.careers-jobs + .newsletter {
    padding-top: 80px !important;
    padding-bottom: 60px !important;
}

@media (max-width: 767.98px) {
    .careers-jobs__card { flex-direction: column; align-items: flex-start; }
    .careers-jobs__apply { align-self: stretch; }
}

/* ── Candidate / Admin Login pages ───────────────────── */
.login-header {
    background: #fff;
    border-bottom: 1px solid #ececf3;
    padding: 0;
}
.login-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.login-header__logo {
    display: inline-block;
    line-height: 0;
}
.login-header__logo img {
    display: block;
}
/* The header switch button reuses the .cta-btn--orange visual. */
.login-header__actions {
    display: flex;
    align-items: center;
    gap: 16px;
}

/* Language switcher: minimal globe + locale code, no border/background.
   Dropdown lists the available locales with a small uppercase code +
   the language name. */
.login-header__lang {
    position: relative;
}
.login-header__lang-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 8px;
    background: transparent;
    border: 0;
    color: #1a1a2e;
    font-size: 0.95rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: color .15s;
}
.login-header__lang-btn i {
    font-size: 1.15rem;
    line-height: 1;
    color: #6b6b78;
    transition: color .15s;
}
.login-header__lang-btn:hover,
.login-header__lang-btn:focus,
.login-header__lang-btn[aria-expanded="true"] {
    color: var(--tosa-orange);
}
.login-header__lang-btn:hover i,
.login-header__lang-btn:focus i,
.login-header__lang-btn[aria-expanded="true"] i {
    color: var(--tosa-orange);
}
.login-header__lang-code {
    font-variant: small-caps;
}

.login-header__lang-menu {
    margin-top: 8px;
    border-radius: 0;
    padding: 4px 0;
    min-width: 200px;
    border: 1px solid #ececf3;
    box-shadow: 0 12px 28px rgba(20, 30, 60, 0.10);
}
.login-header__lang-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    font-size: 0.92rem;
    color: #1a1a2e;
}
.login-header__lang-item:hover,
.login-header__lang-item:focus {
    background: #f7f8fe;
    color: #1a1a2e;
}
.login-header__lang-code-mini {
    display: inline-block;
    min-width: 28px;
    font-size: 0.78rem;
    font-weight: 700;
    color: #6b6b78;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.login-header__lang-item.is-active {
    background: #fff;
    color: var(--tosa-orange);
}
.login-header__lang-item.is-active .login-header__lang-code-mini {
    color: var(--tosa-orange);
}

.login-article {
    display: flex;
    flex-direction: row;
    min-height: calc(100vh - 80px);
    background: #fff;
}
.login-article__left {
    flex: 0 0 50%;
    max-width: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 24px;
    background-color: #E6F3F9;
}
.login-article__right {
    flex: 0 0 50%;
    max-width: 50%;
    background-color: var(--tosa-light-blue);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    min-height: 320px;
}

.login-form {
    width: 100%;
    max-width: 420px;
    display: flex;
    flex-direction: column;
}
.login-form__title {
    font-size: clamp(1.625rem, 2.4vw, 2.125rem);
    color: var(--tosa-orange);
    font-weight: 500;
    margin: 0 0 28px;
    line-height: 1.15;
    white-space: nowrap;
}
.login-form__group {
    margin-bottom: 16px;
}
.login-form__group--password {
    position: relative;
}
.login-form__input {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid #555559;
    border-radius: 6px;
    background: #fff;
    font-size: 1rem;
    line-height: 1.4;
}
.login-form__group--password .login-form__input {
    padding-right: 48px;
}
.login-form__input:focus {
    outline: 0;
    border-color: var(--tosa-blue);
    box-shadow: 0 0 0 .25rem rgba(13, 110, 253, 0.25);
}
.login-form__toggle {
    position: absolute;
    top: 50%;
    right: 12px;
    transform: translateY(-50%);
    background: transparent;
    border: 0;
    color: #555559;
    font-size: 1.2rem;
    line-height: 1;
    cursor: pointer;
    padding: 4px;
}
.login-form__toggle:hover { color: var(--tosa-orange); }

.login-form__remember {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    font-size: 0.9rem;
    color: #1a1a2e;
}

.login-form__lostpassword,
.login-form__helplogin {
    display: block;
    color: #1a1a2e;
    text-decoration: underline;
    font-size: 0.85rem;
    text-align: center;
    margin-bottom: 6px;
}
.login-form__lostpassword:hover,
.login-form__helplogin:hover {
    color: var(--tosa-orange);
}

.login-form__submit {
    align-self: center;
    margin-top: 20px;
}
.login-article--candidate .login-form__submit {
    background: #D63D0A;
}

.login-form__error {
    color: var(--tosa-orange);
    font-size: 0.9rem;
    min-height: 1.2em;
    margin: 16px 0 0;
}

.login-form__success {
    color: #1c7c3c;
    font-size: 0.9rem;
    min-height: 1.2em;
    margin: 8px 0 0;
}

#lost-password-modal .login-form__error,
#lost-password-modal .login-form__success {
    margin-top: 8px;
    text-align: center;
}

@media (max-width: 991.98px) {
    .login-article {
        flex-direction: column;
        min-height: auto;
    }
    .login-article__left,
    .login-article__right {
        flex: 0 0 100%;
        max-width: 100%;
    }
    .login-article__right {
        order: -1;
        height: 220px;
    }
    .login-article__left {
        padding: 40px 24px 60px;
    }
}

/* ── Who We Are page ─────────────────────────────────── */
.section-title--inverse {
    color: #fff;
}

/* =====================================================================
   Sample Tests modal — positioning tests catalog opened from the menubar
   ===================================================================== */
.sample-tests-modal .modal-content {
    border: 0;
    border-radius: 0;
    overflow: hidden;
    /* Override Bootstrap's modal radius custom properties so the corners
       stay rectangular, consistent with the rest of the new design. */
    --bs-modal-border-radius: 0;
    --bs-modal-inner-border-radius: 0;
}
.sample-tests-modal .modal-header {
    border-bottom: 1px solid #eee;
    padding: 1.25rem 1.5rem;
}
.sample-tests-modal .modal-body {
    padding: 1.5rem;
}
.sample-tests-modal h6 {
    color: #555;
    letter-spacing: 0.06em;
}
.sample-tests-modal__item {
    width: 100%;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 0;
    padding: 12px 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
    color: #1a1a1a;
}
.sample-tests-modal__item:hover,
.sample-tests-modal__item:focus-visible {
    background-color: #f7f7f7;
    border-color: var(--tosa-orange);
    transform: translateY(-1px);
    outline: none;
}
.sample-tests-modal__item.is-loading {
    opacity: 0.6;
    pointer-events: none;
}
.sample-tests-modal__icon {
    width: 70px;
    height: 70px;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px;
}
.sample-tests-modal__icon img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.sample-tests-modal__icon i {
    font-size: 1.75rem;
    color: var(--tosa-blue);
}
.sample-tests-modal__title {
    font-size: 0.85rem;
    line-height: 1.2;
    font-weight: 500;
    text-align: center;
}

/* ──────────────────────────────────────────────────────────────────────
   FAQs page (templates/pages/faqs.html.twig)
   Light hero with title + search bar, followed by white accordion cards
   grouped by category. The active item gets a blue top accent.
   Prefix `fp` = "FAQs Page" — keeps it isolated from the dark `.faq`
   block reused inside online-store etc.
   ──────────────────────────────────────────────────────────────────── */
.fp-hero {
    /* Light banner (same palette as .lp-banner) so the hero stands out
       from the white content and the search bar pops. */
    background: #eaf3fb;
    border-bottom: 1px solid #dbe5ee;
    padding: 40px 0 32px;
    margin-bottom: 32px;
}
.fp-hero__title {
    font-size: clamp(1.75rem, 1.2rem + 2.4vw, 2.75rem);
    color: #0f172a;
}
.fp-hero__search {
    display: flex;
    align-items: stretch;
    gap: 0;
    max-width: 560px;
    margin: 8px auto 0;
    background: #fff;
    padding: 6px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .08);
}
.fp-hero__search-wrapper {
    position: relative;
    flex: 1;
}
.fp-hero__search-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: #6b7280;
    font-size: 0.95rem;
    pointer-events: none;
}
.fp-hero__search-input {
    width: 100%;
    border: 0;
    background: transparent;
    padding: 10px 14px 10px 38px;
    color: #0f172a;
    font-size: 0.95rem;
}
.fp-hero__search-input:focus {
    outline: none;
    box-shadow: none;
}
.fp-hero__search-input::placeholder {
    color: #9aa1ad;
}
.fp-hero__search-btn {
    border: 0;
    background: var(--tosa-orange);
    color: #fff;
    font-weight: 600;
    font-size: 0.95rem;
    padding: 0 28px;
    cursor: pointer;
    transition: background-color 0.15s ease;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    /* Top-right chamfer — matches the cta-btn / pack-checkout pattern. */
    clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%);
}
.fp-hero__search-btn-icon {
    width: 16px;
    height: 16px;
    object-fit: contain;
    /* The asset is dark by default — invert it so it reads on the orange bg. */
    filter: brightness(0) invert(1);
}
.fp-hero__search-btn:hover {
    background: #d83a04;
}

/* Accordion list */
.fp-list {
    background: #fff;
}
.fp-list__empty {
    padding: 48px 16px;
    font-size: 1rem;
}
.fp-cat {
    max-width: 880px;
    margin: 0 auto;
    padding-top: 32px;
}
.fp-cat__title {
    color: #0f172a;
    font-size: 1.25rem;
    margin-bottom: 16px;
    padding-left: 4px;
}

/* Each item: white card, soft border, hover lift, blue top accent when open */
.fp-item {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 0;
    margin-bottom: 12px;
    overflow: hidden;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    /* Reset Bootstrap's accordion radius variables so first/last items
       don't pick up rounded corners from the default theme. */
    --bs-accordion-border-radius: 0;
    --bs-accordion-inner-border-radius: 0;
}
.fp-item:hover {
    border-color: #cbd5e1;
}
.fp-item:has(.fp-item__btn:not(.collapsed)) {
    border-color: var(--tosa-blue);
    box-shadow: 0 4px 18px rgba(69, 69, 219, 0.08);
}
/* Bootstrap removes top border between stacked items — we want every card
   independently bordered, so re-establish it. */
.fp-item:not(:first-of-type) {
    border-top: 1px solid #e5e7eb;
}
.fp-item:has(.fp-item__btn:not(.collapsed)):not(:first-of-type) {
    border-top: 1px solid var(--tosa-blue);
}

.fp-item__btn {
    background: #fff;
    color: #0f172a;
    font-weight: 600;
    font-size: 1rem;
    padding: 18px 56px 18px 22px;
    box-shadow: none;
    border-radius: 0;
    text-align: left;
    position: relative;
}
.fp-item__btn:not(.collapsed) {
    background: #fff;
    color: var(--tosa-blue);
    box-shadow: none;
}
.fp-item__btn:focus {
    box-shadow: none;
    border-color: transparent;
}
/* Replace Bootstrap's chevron with a + / − character in tosa orange. */
.fp-item__btn::after {
    background-image: none;
    content: "+";
    color: var(--tosa-orange);
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1;
    width: auto;
    height: auto;
    transform: none;
    transition: none;
    position: absolute;
    right: 22px;
    top: 50%;
    margin-top: -0.55rem;
}
.fp-item__btn:not(.collapsed)::after {
    content: "−"; /* U+2212 minus sign */
    background-image: none;
    transform: none;
}

.fp-item__a {
    color: #4b5563;
    padding: 0 22px 20px;
    line-height: 1.6;
    font-size: 0.95rem;
}
.fp-item__a a {
    color: var(--tosa-blue);
    text-decoration: underline;
}

@media (max-width: 575px) {
    .fp-hero__search {
        flex-direction: column;
        gap: 8px;
        background: transparent;
        padding: 0;
    }
    .fp-hero__search-wrapper {
        background: #fff;
        box-shadow: 0 8px 24px rgba(15, 23, 42, .08);
    }
    .fp-hero__search-btn {
        padding: 12px;
    }
}

/* FAQ — topic grid (the landing "sommaire") */
.fp-toc {
    max-width: 960px;
    margin: 0 auto;
    padding-top: 24px;
}
.fp-toc__intro {
    color: #6b7280;
    font-size: 1rem;
    margin-bottom: 28px;
}
.fp-toc__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
}
.fp-toc__card {
    display: flex;
    align-items: center;
    gap: 16px;
    text-align: left;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 0;
    padding: 20px 22px;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.fp-toc__card:hover {
    border-color: var(--tosa-blue);
    box-shadow: 0 6px 20px rgba(69, 69, 219, 0.1);
}
.fp-toc__num {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--tosa-orange);
    line-height: 1;
    flex-shrink: 0;
}
.fp-toc__body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
    min-width: 0;
}
.fp-toc__card-title {
    color: #0f172a;
    font-weight: 600;
    font-size: 1rem;
    line-height: 1.3;
}
.fp-toc__count {
    color: #9aa1ad;
    font-size: 0.82rem;
}
.fp-toc__arrow {
    color: #cbd5e1;
    flex-shrink: 0;
    transition: color 0.15s ease, transform 0.15s ease;
}
.fp-toc__card:hover .fp-toc__arrow {
    color: var(--tosa-orange);
    transform: translateX(3px);
}

/* FAQ — section toolbar (back link + section selector) */
.fp-toolbar {
    max-width: 880px;
    margin: 0 auto 8px;
    padding-top: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}
.fp-toolbar__back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: none;
    border: 0;
    padding: 8px 4px;
    color: var(--tosa-blue);
    font-weight: 600;
    font-size: 0.95rem;
    cursor: pointer;
}
.fp-toolbar__back:hover {
    color: var(--tosa-orange);
}
.fp-toolbar__selector {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
.fp-toolbar__label {
    color: #6b7280;
    font-size: 0.9rem;
    margin: 0;
}
.fp-toolbar__select {
    border: 1px solid #d1d5db;
    border-radius: 0;
    background: #fff;
    padding: 10px 14px;
    font-size: 0.95rem;
    color: #0f172a;
    cursor: pointer;
    min-width: 240px;
}
.fp-toolbar__select:focus {
    outline: none;
    border-color: var(--tosa-orange);
    box-shadow: 0 0 0 0.2rem rgba(241, 73, 16, 0.15);
}

/* FAQ — related links inside an answer */
.fp-item__links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid #eef0f4;
}
/* Scoped under .fp-item__a to beat the generic `.fp-item__a a` blue rule. */
.fp-item__a .fp-item__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--tosa-orange);
    font-weight: 600;
    font-size: 0.9rem;
    text-decoration: none;
}
.fp-item__a .fp-item__link:hover {
    color: #d63d09;
    text-decoration: underline;
}
.fp-item__link .bi {
    font-size: 0.78rem;
}

/* [hidden] must win over Bootstrap's accordion/flex display values. */
.fp-toc[hidden],
.fp-toolbar[hidden],
.fp-cat[hidden],
.fp-item[hidden] {
    display: none !important;
}

@media (max-width: 575px) {
    .fp-toolbar,
    .fp-toolbar__selector {
        flex-direction: column;
        align-items: stretch;
    }
    .fp-toolbar__select {
        min-width: 0;
        width: 100%;
    }
}

/* ──────────────────────────────────────────────────────────────────────
   Score Checker modal (templates/modals/check_diploma.html.twig)
   Strict rectangular look — no border-radius anywhere — to match the
   FAQs page treatment.
   ──────────────────────────────────────────────────────────────────── */
.check-score-modal__content {
    border: 0;
    border-radius: 0;
    background: #fff;
    --bs-modal-border-radius: 0;
    --bs-modal-inner-border-radius: 0;
}
.check-score-modal__header {
    border-bottom: 1px solid #e5e7eb;
    border-radius: 0;
    padding: 20px 24px;
}
.check-score-modal__title {
    font-weight: 700;
    font-size: 1.25rem;
    color: #0f172a;
}
.check-score-modal__close {
    border-radius: 0;
}
.check-score-modal__body {
    padding: 24px;
}
.check-score-modal__intro {
    color: #4b5563;
    font-size: 0.95rem;
    margin: 0 0 20px;
}
.check-score-modal__form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.check-score-modal__field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.check-score-modal__label {
    font-size: 0.875rem;
    font-weight: 600;
    color: #0f172a;
}
.check-score-modal__input {
    border: 1px solid #d1d5db;
    background: #fff;
    color: #0f172a;
    padding: 10px 12px;
    font-size: 0.95rem;
    border-radius: 0;
    transition: border-color 0.15s ease;
}
.check-score-modal__input:focus {
    outline: none;
    border-color: var(--tosa-blue);
    box-shadow: none;
}
.check-score-modal__alert {
    margin-top: 18px;
    padding: 12px 14px;
    font-size: 0.9rem;
    border: 1px solid transparent;
    border-radius: 0;
}
.check-score-modal__alert--success {
    background: #ecfdf5;
    border-color: #34d399;
    color: #065f46;
    text-align: center;
}
.check-score-modal__alert--error {
    background: #fef2f2;
    border-color: #fca5a5;
    color: #991b1b;
}
.check-score-modal__alert a {
    color: inherit;
    text-decoration: underline;
}
.check-score-modal__badge-wrap {
    text-align: center;
    margin-top: 18px;
}
.check-score-modal__badge {
    max-width: 100%;
    width: auto;
    height: auto;
    max-height: 320px;
    display: inline-block;
}
.check-score-modal__footer {
    border-top: 1px solid #e5e7eb;
    border-radius: 0;
    padding: 16px 24px;
    gap: 12px;
}
.check-score-modal__btn {
    border: 0;
    padding: 10px 22px;
    font-weight: 600;
    font-size: 0.9rem;
    cursor: pointer;
    border-radius: 0;
    transition: background-color 0.15s ease;
    display: inline-flex;
    align-items: center;
}
.check-score-modal__btn--ghost {
    background: transparent;
    color: #4b5563;
    border: 1px solid #d1d5db;
}
.check-score-modal__btn--ghost:hover {
    background: #f3f4f6;
}
.check-score-modal__btn--orange {
    background: var(--tosa-orange);
    color: #fff;
    /* Top-right chamfer to match the FAQs Search button + the other CTAs. */
    clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%);
}
.check-score-modal__btn--orange:hover {
    background: #d83a04;
}
.check-score-modal__btn:disabled {
    opacity: 0.7;
    cursor: not-allowed;
}

@media (max-width: 575px) {
    .check-score-modal__form {
        grid-template-columns: 1fr;
    }
}

/* ──────────────────────────────────────────────────────────────────────
   Legal pages — Privacy Policy + Terms of Service
   (templates/pages/privacy_policy.html.twig + terms_of_service.html.twig)
   Banner top, single-column long-form content. Strict rectangular look —
   no border-radius — to match the FAQs / Score Checker treatment.
   Prefix `lp` = Legal Page.
   ──────────────────────────────────────────────────────────────────── */
.lp-banner {
    position: relative;
    background: #eaf3fb;
    border-bottom: 1px solid #dbe5ee;
    padding: 56px 0;
}
.lp-banner__inner {
    position: relative;
    z-index: 1;
}
.lp-banner__title {
    color: #1a1a2e;
    font-size: clamp(2rem, 1.4rem + 2.4vw, 3rem);
    margin: 0;
}
.lp-banner__subtitle {
    color: #5b6478;
    font-size: 0.95rem;
    margin: 12px 0 0;
}

.lp-content {
    background: #fff;
}
.lp-article {
    max-width: 880px;
    margin: 0 auto;
    color: #1f2937;
    line-height: 1.7;
    font-size: 1rem;
}
.lp-article p {
    margin: 0 0 16px;
}
.lp-article a {
    color: var(--tosa-orange);
    text-decoration: underline;
}
.lp-article a:hover {
    color: #d63d09;
}
.lp-article__lede {
    font-size: 1.05rem;
    color: #374151;
    margin-bottom: 28px;
}
.lp-article__h2 {
    color: var(--tosa-blue);
    font-size: 1.5rem;
    font-weight: 700;
    margin: 40px 0 16px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--tosa-blue);
    border-radius: 0;
    scroll-margin-top: 100px;
}
.lp-article__h3 {
    color: #0f172a;
    font-size: 1.2rem;
    font-weight: 700;
    margin: 28px 0 12px;
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
}
.lp-article__h4 {
    color: var(--tosa-orange);
    font-size: 1rem;
    font-weight: 700;
    margin: 22px 0 10px;
    text-transform: none;
    letter-spacing: 0;
}
.lp-article__list {
    margin: 0 0 18px;
    padding-left: 22px;
}
.lp-article__list li {
    margin-bottom: 8px;
}
.lp-article__list li::marker {
    color: var(--tosa-orange);
}
.lp-article__contact {
    margin-top: 40px;
    padding: 18px 22px;
    background: #f4f5f9;
    border-left: 4px solid var(--tosa-orange);
    border-radius: 0;
    color: #374151;
}
/* Inline note / caveat callout (e.g. "Mac users…", "Adobe web app…"). */
.lp-article__note {
    margin: 8px 0 24px;
    padding: 14px 18px;
    background: #eaf3fb;
    border-left: 4px solid var(--tosa-blue);
    color: #374151;
    font-style: italic;
}

/* Tables (data category breakdown in Privacy Policy). */
.lp-article__table-wrap {
    overflow-x: auto;
    margin: 8px 0 24px;
}
.lp-article__table {
    width: 100%;
    border-collapse: collapse;
    border-radius: 0;
    background: #fff;
}
.lp-article__table th,
.lp-article__table td {
    border: 1px solid #d1d5db;
    padding: 12px 14px;
    text-align: left;
    vertical-align: top;
    font-size: 0.95rem;
}
.lp-article__table thead th {
    background: var(--tosa-blue);
    color: #fff;
    font-weight: 700;
}
.lp-article__table tbody tr:nth-child(even) {
    background: #f8fafc;
}

.lp-article code {
    color: inherit;
    background: #f1f5f9;
    padding: 0.1em 0.4em;
    border-radius: 4px;
    font-size: 0.875em;
}

/* ──────────────────────────────────────────────────────────────────────
   API error banner — used by online-store + certification when the Isograd
   API is down. The "Email Support" CTA opens a pre-filled mailto so the
   support team gets the failing act_id, params and exception in one click.
   Rectangular, no border-radius.
   ──────────────────────────────────────────────────────────────────── */
.api-error-banner {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    background: #fff7ed;
    border: 1px solid var(--tosa-orange);
    border-left-width: 6px;
    border-radius: 0;
    padding: 18px 22px;
    margin: 0 auto 24px;
    max-width: 980px;
    color: #1f2937;
}
.api-error-banner__icon {
    color: var(--tosa-orange);
    font-size: 1.5rem;
    line-height: 1;
    padding-top: 2px;
    flex-shrink: 0;
}
.api-error-banner__body {
    flex: 1 1 auto;
    min-width: 0;
}
.api-error-banner__title {
    color: #1a1a2e;
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 4px;
}
.api-error-banner__text {
    color: #4b5563;
    font-size: 0.95rem;
    line-height: 1.5;
}
.api-error-banner__details {
    color: #6b7280;
    font-size: 0.85rem;
}
.api-error-banner__details summary {
    cursor: pointer;
    color: var(--tosa-blue);
    font-weight: 500;
}
.api-error-banner__details summary:hover {
    text-decoration: underline;
}
.api-error-banner__params {
    list-style: none;
    padding: 10px 12px;
    margin: 0;
    background: #fff;
    border: 1px solid #fed7aa;
    border-radius: 0;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 0.8rem;
    word-break: break-all;
}
.api-error-banner__params li {
    margin-bottom: 4px;
}
.api-error-banner__params li:last-child {
    margin-bottom: 0;
}
.api-error-banner__params code {
    color: #0f172a;
    background: #f3f4f6;
    padding: 1px 4px;
}
.api-error-banner__cta {
    flex-shrink: 0;
}
.api-error-banner__btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--tosa-orange);
    color: #fff;
    border: 0;
    padding: 10px 18px;
    font-weight: 600;
    font-size: 0.9rem;
    text-decoration: none;
    border-radius: 0;
    transition: background-color 0.15s ease;
    /* Top-right chamfer matching the other CTAs. */
    clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%);
}
.api-error-banner__btn:hover {
    background: #d83a04;
    color: #fff;
}

@media (max-width: 575px) {
    .api-error-banner {
        flex-direction: column;
        align-items: stretch;
    }
    .api-error-banner__cta {
        align-self: flex-start;
    }
}

/* ──────────────────────────────────────────────────────────────────────
   Checkout signup modal (templates/modals/checkout_signup.html.twig)
   Two columns: Sign up (left) + Sign in (right). Rectangular layout
   to match the FAQs / Score Checker / API banner treatment.
   ──────────────────────────────────────────────────────────────────── */
.checkout-modal__content {
    border: 0;
    border-radius: 0;
    background: #fff;
    --bs-modal-border-radius: 0;
    --bs-modal-inner-border-radius: 0;
}
.checkout-modal__header {
    border-bottom: 1px solid #e5e7eb;
    padding: 20px 24px;
    border-radius: 0;
}
.checkout-modal__title {
    font-weight: 700;
    font-size: 1.25rem;
    color: #0f172a;
}
.checkout-modal__close {
    border-radius: 0;
}
.checkout-modal__body {
    padding: 28px 32px 32px;
}
.checkout-modal__intro {
    color: #4b5563;
    font-size: 0.95rem;
    text-align: center;
    margin: 0 auto 24px;
    max-width: 640px;
}
.checkout-modal__cols {
    border: 1px solid #e5e7eb;
    border-radius: 0;
}
.checkout-modal__col {
    padding: 28px;
}
.checkout-modal__col + .checkout-modal__col--right {
    border-left: 1px solid #e5e7eb;
}
.checkout-modal__col-title {
    color: #0f172a;
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 6px;
}
.checkout-modal__col-intro {
    color: #6b7280;
    font-size: 0.9rem;
    margin: 0 0 18px;
}
.checkout-modal__form {
    display: flex;
    flex-direction: column;
}
.checkout-modal__label {
    font-size: 0.8rem;
    font-weight: 600;
    color: #374151;
    margin-bottom: 4px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.checkout-modal__input {
    border: 1px solid #d1d5db;
    background: #fff;
    color: #0f172a;
    padding: 10px 12px;
    font-size: 0.95rem;
    border-radius: 0;
    transition: border-color 0.15s ease;
    width: 100%;
}
.checkout-modal__input:focus {
    outline: none;
    border-color: var(--tosa-blue);
    box-shadow: none;
}
.checkout-modal__link {
    color: var(--tosa-blue);
    text-decoration: none;
    align-self: flex-start;
}
.checkout-modal__link:hover {
    text-decoration: underline;
}
.checkout-modal__link--right {
    align-self: flex-end;
}
.checkout-modal__submit-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px 22px;
    border-radius: 0;
    border: 0;
    cursor: pointer;
    font-weight: 600;
    font-size: 0.95rem;
    transition: background-color 0.15s ease;
}
.checkout-modal__submit-btn--orange {
    background: var(--tosa-orange);
    color: #fff;
    /* Top-right chamfer matching the rest of the CTAs. */
    clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%);
}
.checkout-modal__submit-btn--orange:hover {
    background: #d83a04;
}
.checkout-modal__submit-btn--ghost {
    background: transparent;
    color: var(--tosa-blue);
    border: 1px solid var(--tosa-blue);
}
.checkout-modal__submit-btn--ghost:hover {
    background: #f0f3ff;
}
.checkout-modal__candidate-link {
    margin-top: 16px;
    font-size: 0.85rem;
    color: #6b7280;
}
.checkout-modal__candidate-link a {
    color: var(--tosa-blue);
    text-decoration: underline;
}

/* Inline status banner (success / error / info) shown under the two
   columns when the user submits the sign-up or sign-in form. */
.checkout-modal__alert {
    margin-top: 18px;
    padding: 12px 16px;
    font-size: 0.9rem;
    line-height: 1.5;
    border: 1px solid transparent;
    border-radius: 0;
    border-left-width: 4px;
}
.checkout-modal__alert--error {
    background: #fef2f2;
    border-color: #fca5a5;
    color: #991b1b;
}
.checkout-modal__alert--info {
    background: #eff6ff;
    border-color: #93c5fd;
    color: #1e3a8a;
}
.checkout-modal__alert--success {
    background: #ecfdf5;
    border-color: #34d399;
    color: #065f46;
}
.checkout-modal__alert a {
    color: inherit;
    text-decoration: underline;
}

@media (max-width: 767px) {
    .checkout-modal__col + .checkout-modal__col--right {
        border-left: 0;
        border-top: 1px solid #e5e7eb;
    }
    .checkout-modal__body {
        padding: 20px;
    }
}

/* ──────────────────────────────────────────────────────────────────────
   Bundle pages (Google Workspace / Microsoft Office / Adobe Graphic /
   Adobe Visual). One template, 4 themes — banner color is set inline
   from the controller config so we don't need 4 nearly-identical
   stylesheets. Per-theme accents (cert card band) live below.
   ──────────────────────────────────────────────────────────────────── */
.bundle__banner {
    padding: 56px clamp(16px, 4vw, 64px);
}
.bundle__title {
    color: #0f172a;
    font-size: clamp(1.75rem, 1.2rem + 2.4vw, 2.75rem);
    margin: 0;
}
.bundle__banner-logo {
    max-width: 280px;
    width: 100%;
    height: auto;
    display: inline-block;
}

/* 2-col layout: sticky sidebar + scrollable main */
.bundle-page {
    background-image: url(/build/images/bg-01.f480dd6c.jpg);
    background-repeat: no-repeat;
    background-position: top center;
    background-size: cover;
    background-attachment: fixed;
}
/* Full-width container scoped to bundle pages only — leaves the global
   .container-xl untouched (header, footer, other pages keep 1140px). */
.bundle-page .container-xl {
    max-width: 100%;
    padding-left: clamp(16px, 4vw, 64px);
    padding-right: clamp(16px, 4vw, 64px);
}
.bundle-page__main {
    min-width: 0;
    padding-bottom: 32px;
}

.bundle-side {
    position: sticky;
    top: 88px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding-bottom: 32px;
}

.bundle-side__card {
    background: #fff;
    border-radius: 0;
    box-shadow: 0 4px 18px rgba(30, 30, 60, 0.06);
    padding: 22px 24px;
}

.bundle-side__card-title {
    color: var(--tosa-blue);
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0 0 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid #e3e4ef;
}

.bundle-side__link-list,
.bundle-side__bullet-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.bundle-side__link-list li,
.bundle-side__bullet-list li {
    position: relative;
    padding: 6px 0 6px 20px;
    font-size: 0.95rem;
    line-height: 1.45;
}
.bundle-side__link-list li::before,
.bundle-side__bullet-list li::before {
    content: "›";
    position: absolute;
    left: 0;
    top: 5px;
    color: var(--tosa-blue);
    font-weight: 700;
    font-size: 1.1rem;
}
.bundle-side__link-list a {
    color: var(--tosa-orange);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.bundle-side__link-list a:hover { color: #d63d09; }

.bundle-side__sub-list {
    list-style: none;
    padding: 0;
    margin: 4px 0 0;
}
.bundle-side__sub-list li {
    position: relative;
    padding: 2px 0 2px 14px;
    font-size: 0.9rem;
    color: #4b5563;
}
.bundle-side__sub-list li::before {
    content: "•";
    position: absolute;
    left: 2px;
    top: 1px;
    color: var(--tosa-orange);
    font-size: 0.85rem;
}

.bundle-side__lang-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.bundle-side__lang-pill {
    border: 1px solid #d9dae6;
    border-radius: 6px;
    padding: 6px 14px;
    font-size: 0.9rem;
    background: #fff;
}

/* .cta-btn is nowrap by default — wrap long labels inside the narrow sidebar column. */
.bundle-side__cta {
    align-self: flex-start;
    max-width: 100%;
    white-space: normal;
    text-align: left;
}


@media (max-width: 991.98px) {
    .bundle-side {
        position: static;
        margin-bottom: 32px;
    }
    .bundle-page__main {
        max-height: none;
        overflow: visible;
        padding-right: 0;
    }
}

/* Validate Mastery */
.bundle-mastery { background: #fff; }
.bundle-mastery__title {
    color: #1a1a1a;
    font-size: clamp(2rem, 3.5vw, 2.75rem);
    line-height: 1.15;
}
.bundle-mastery__intro {
    color: #4b5563;
    line-height: 1.6;
    max-width: 100%;
}
.bundle-product {
    background: #fff;
    border: none;
    border-radius: 0;
    box-shadow: 0 4px 18px rgba(30, 30, 60, 0.08);
    padding: 32px 24px;
    text-align: center;
    height: 100%;
}
.bundle-product__icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.bundle-product__icon img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.bundle-product__name {
    color: #0f172a;
    font-size: 1.1rem;
    margin: 0 0 12px;
}
.bundle-product__link {
    color: var(--tosa-orange);
    font-weight: 600;
    text-decoration: none;
    font-size: 0.9rem;
}
.bundle-product__link:hover { text-decoration: underline; }

/* Credential Requirements */
.bundle-reqs { background: #f8fafc; }
.bundle-reqs__title {
    color: #1a1a1a;
    font-size: clamp(2rem, 3.5vw, 2.75rem);
    line-height: 1.15;
}
.bundle-reqs__intro {
    color: #4b5563;
    line-height: 1.6;
    max-width: 820px;
}
.bundle-reqs__tier-title {
    color: #0f172a;
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 12px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--tosa-orange);
    border-radius: 0;
}
.bundle-reqs__list {
    list-style: none;
    padding: 0;
    margin: 0;
    color: #374151;
    font-size: 0.95rem;
    line-height: 1.7;
}
.bundle-reqs__list li {
    padding-left: 16px;
    position: relative;
}
.bundle-reqs__list li::before {
    content: '›';
    color: var(--tosa-orange);
    position: absolute;
    left: 0;
    font-weight: 700;
}

/* Level summary cards (Experienced + Professional with animated icons) */
.bundle-levels {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.bundle-levels__card {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 18px;
    align-items: center;
    background: #fff;
    box-shadow: 0 4px 18px rgba(30, 30, 60, 0.06);
    padding: 20px 24px;
}
.bundle-levels__icon {
    width: 64px;
    height: 64px;
    object-fit: contain;
}
.bundle-levels__title {
    color: var(--tosa-blue);
    font-size: 1.25rem;
    margin: 0 0 6px;
}
.bundle-levels__text {
    color: #4b5563;
    font-size: 0.95rem;
    line-height: 1.5;
}

/* Cert cards (Experienced + Professional) */
.bundle-cert { background: #fff; }
.bundle-cert--experienced { background: #f8fafc; }
.bundle-cert__heading {
    color: var(--tosa-blue);
    font-size: 1.4rem;
}
.bundle-cert__intro {
    color: #4b5563;
    line-height: 1.6;
    max-width: 820px;
}
.bundle-cert__card {
    max-width: 540px;
    margin: 24px auto 0;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 0;
}
.bundle-cert__sample {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 24px auto 0;
    box-shadow: 0 6px 24px rgba(30, 30, 60, 0.08);
}
.bundle-cert__card-band {
    background: var(--tosa-blue);
    color: #fff;
    padding: 14px 24px;
    font-weight: 700;
    text-align: center;
    font-size: 0.95rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.bundle-cert__card-band--pro {
    background: var(--tosa-orange);
}
.bundle-cert__card-body {
    padding: 36px 24px;
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.bundle-cert__card-name {
    color: #0f172a;
    font-size: 1.4rem;
}
.bundle-cert__card-tier {
    color: #6b7280;
    font-size: 0.95rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* Skills Badges with Credly */
.bundle-badges { background: #fff; }
.bundle-badges__title {
    color: var(--tosa-blue);
    font-size: 1.5rem;
}
.bundle-badges__intro {
    color: #4b5563;
    line-height: 1.6;
    max-width: 820px;
}
.bundle-badge {
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    padding: 24px 22px;
    height: 100%;
    display: flex;
    align-items: center;
    gap: 20px;
}
.bundle-badge__link {
    display: block;
    height: 100%;
    text-decoration: none;
    color: inherit;
}
.bundle-badge__link:hover .bundle-badge__label {
    text-decoration: underline;
}
.bundle-badge__img {
    flex-shrink: 0;
    width: 96px;
    height: 96px;
    object-fit: contain;
}
.bundle-badge__label {
    margin: 0;
    color: var(--tosa-orange);
    font-size: 1.05rem;
    line-height: 1.3;
}

/* Stackable Credentials */
.bundle-stack__title {
    color: #1a1a1a;
    font-size: clamp(2rem, 3.5vw, 2.75rem);
    line-height: 1.15;
}
.bundle-stack__intro {
    color: #4b5563;
    line-height: 1.6;
    max-width: 820px;
}
.bundle-stack__img {
    display: block;
    width: 100%;
    max-width: 940px;
    height: auto;
    margin: 0 auto;
}

/* Aligned Occupations */
.bundle-jobs__title {
    color: #1a1a1a;
    font-size: clamp(2rem, 3.5vw, 2.75rem);
    line-height: 1.15;
}
.bundle-jobs__list {
    list-style: none;
    padding: 0;
    margin: 0;
    columns: 2;
    column-gap: 48px;
}
.bundle-jobs__list li {
    position: relative;
    padding: 8px 0 8px 24px;
    font-size: 0.95rem;
    color: #1f2937;
    break-inside: avoid;
}
.bundle-jobs__list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 14px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--tosa-orange);
}
.bundle-jobs__footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 48px;
    align-items: center;
    margin-top: 32px;
}
.bundle-jobs__footer .cta-btn { margin: 0; }

.bundle-jobs__ce-link {
    justify-self: start;
    color: var(--tosa-orange);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.bundle-jobs__ce-link:hover { color: #d63d09; }
.bundle-jobs__credential {
    max-width: 220px;
    width: auto;
    height: auto;
    object-fit: contain;
    justify-self: start;
}
@media (max-width: 575.98px) {
    .bundle-jobs__footer { grid-template-columns: 1fr; row-gap: 16px; }
    .bundle-jobs__credential { justify-self: center; }
}
@media (max-width: 575.98px) {
    .bundle-jobs__list { columns: 1; }
}

/* Ready to Start Certifying — reuses sections/cert_ready.html.twig */

/* Compact newsletter on bundle pages — overrides the global py-5 padding
   and the inner container's py-5 + mb-5 spacing without touching the
   shared sections/newsletter.html.twig template. */
.bundle-newsletter-wrap .newsletter {
    padding-top: 2rem;
    padding-bottom: 2rem;
}
.bundle-newsletter-wrap .newsletter > .container-xl {
    padding-top: 0;
    padding-bottom: 0;
}
.bundle-newsletter-wrap .newsletter .text-center.mb-5 {
    margin-bottom: 1.5rem !important;
}

:root {
    --fs-card-title: 1.5rem;
    --fs-card-text: 1.0625rem;
    --fs-card-label: 0.95rem;
}

.serve-card__title,
.platform-feature__title,
.why-card__title,
.cert-unique__title,
.cert-ready__title,
.expertise-card__title,
.deliver-card__title,
.he-features__title {
    font-size: var(--fs-card-title);
    line-height: 1.25;
}

.platform-feature__text,
.why-card__text,
.cert-unique__desc,
.cert-ready__text,
.he-features__text {
    font-size: var(--fs-card-text);
}

.certify-card__label,
.cert-offerings__app-name {
    font-size: var(--fs-card-label);
}

/* ── Application-requirements modal (shared: ILL course selector + Online Store e-learning packs) ── */
.cw-modal__content {
    border: 0;
    border-radius: 12px;
    overflow: hidden;
}
.cw-modal__header {
    background: var(--tosa-teal);
    color: #fff;
    align-items: flex-start;
    border-bottom: 0;
    padding: 20px 24px;
}
.cw-modal__eyebrow {
    font-size: 0.78rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 2px;
}
.cw-modal__title {
    color: #fff;
    font-weight: 700;
    font-size: 1.3rem;
    margin: 0;
}
.cw-modal__close { margin: 0; }

.cw-modal__body { padding: 24px; }
.cw-modal__lead {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 22px;
}
.cw-modal__lead-icon {
    width: 40px;
    height: 40px;
    object-fit: contain;
    flex: 0 0 auto;
}
.cw-modal__intro {
    color: #2d2d3a;
    line-height: 1.5;
}
.cw-modal__app { font-weight: 700; }

.cw-modal__subhead {
    color: var(--tosa-teal);
    font-weight: 700;
    font-size: 0.95rem;
    margin: 20px 0 10px;
}
.cw-modal__reqs {
    list-style: disc;
    background: #f1f3f4;
    border-radius: 8px;
    margin: 0;
    padding: 14px 20px 14px 38px;
    color: #2d2d3a;
}
.cw-modal__reqs li { margin-bottom: 4px; line-height: 1.45; }
.cw-modal__reqs li:last-child { margin-bottom: 0; }

.cw-modal__steps {
    list-style: none;
    counter-reset: cw-step;
    padding: 0;
    margin: 0;
}
.cw-modal__steps li {
    counter-increment: cw-step;
    position: relative;
    padding-left: 40px;
    margin-bottom: 12px;
    min-height: 26px;
    line-height: 1.45;
    color: #2d2d3a;
}
.cw-modal__steps li:last-child { margin-bottom: 0; }
.cw-modal__steps li::before {
    content: counter(cw-step);
    position: absolute;
    left: 0;
    top: 0;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--tosa-teal);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: 700;
}
.cw-modal__note {
    background: #e8f4f4;
    border: 1px solid #bfe0e0;
    border-radius: 8px;
    padding: 12px 16px;
    font-size: 0.85rem;
    color: #2a4a4a;
    line-height: 1.45;
    margin-top: 16px;
}
.cw-modal__help {
    font-size: 0.85rem;
    color: #6a6a78;
    margin: 20px 0 0;
}
.cw-modal__help a { color: var(--tosa-teal); }

.cw-modal__footer {
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    background: #f7f8f9;
    border-top: 1px solid #e3e6e8;
    padding: 18px 24px;
}
.cw-modal__confirm {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.85rem;
    color: #2d2d3a;
    line-height: 1.4;
    margin: 0;
    cursor: pointer;
}
.cw-modal__confirm input { margin-top: 2px; flex: 0 0 auto; }
.cw-modal__actions {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
}
.cw-modal__btn {
    border: 0;
    border-radius: 4px;
    padding: 10px 22px;
    font-weight: 600;
    font-size: 0.92rem;
    text-decoration: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: opacity 0.18s ease, background 0.18s ease;
}
.cw-modal__btn--ghost { background: #0c2a2b; color: #fff; }
.cw-modal__btn--ghost:hover { background: #082020; color: #fff; }
.cw-modal__btn--orange { background: var(--tosa-orange); color: #fff; }
.cw-modal__btn--orange:hover { background: #d63f0c; color: #fff; }
.cw-modal__btn.is-disabled {
    opacity: 0.45;
    pointer-events: none;
}

@media (min-width: 576px) {
    .cw-modal__footer { flex-direction: row; align-items: center; justify-content: space-between; }
    .cw-modal__confirm { max-width: 60%; }
}

/*!****************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/components/search.css ***!
  \****************************************************************************************************************************/
.menubar__search {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}

@media (min-width: 992px) {
    .menubar__search {
        width: 230px;
    }
}

.menubar__search-field {
    position: relative;
    width: 100%;
    padding: 2px;
    background: transparent;
    clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%);
    transition: background-color 0.2s ease;
}

.menubar__search-field:focus-within {
    background: var(--tosa-orange);
}

.menubar__search-icon {
    position: absolute;
    left: 0.85rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--tosa-orange);
    font-size: 0.95rem;
    pointer-events: none;
    z-index: 2;
}

.menubar__search-input {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    margin: 0;
    padding: 10px 18px 10px 2rem;
    border: none;
    background: #f3f4f6;
    color: #1a1a1a;
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.2;
    clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 0 100%);
    transition: background-color 0.2s ease;
}

.menubar__search-input::placeholder {
    color: #8a9097;
    font-weight: 500;
}

.menubar__search-input:focus {
    outline: none;
    background: #fff;
}

.menubar__search-input::-webkit-search-decoration,
.menubar__search-input::-webkit-search-cancel-button {
    -webkit-appearance: none;
}

.menubar__search-results {
    position: absolute;
    top: calc(100% + 0.5rem);
    left: 0;
    right: 0;
    z-index: 1050;
    max-height: 70vh;
    overflow-y: auto;
    background: #fff;
    border: none;
    border-radius: 0;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    padding: 0;
}

@media (min-width: 992px) {
    .menubar__search-results {
        left: auto;
        right: 0;
        width: 320px;
    }
}

.menubar__search-item {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.85rem 1.1rem;
    color: #1a1a1a;
    background: #fff;
    text-decoration: none;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    cursor: pointer;
    transition: color 0.15s ease, background-color 0.15s ease;
}

.menubar__search-item:last-child {
    border-bottom: none;
}

.menubar__search-item:hover,
.menubar__search-item.is-active {
    background: #fff6f1;
    color: var(--tosa-orange);
}

.menubar__search-thumb {
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    object-fit: contain;
    border-radius: 0.35rem;
}

.menubar__search-thumb--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff6f1;
    color: var(--tosa-orange);
    font-size: 0.9rem;
}

.menubar__search-body {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.menubar__search-title {
    font-size: 0.9rem;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.menubar__search-title mark {
    padding: 0;
    background: rgba(241, 73, 16, 0.18);
    color: inherit;
    border-radius: 2px;
}

.menubar__search-type {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: #8a9097;
}

.menubar__search-item:hover .menubar__search-type,
.menubar__search-item.is-active .menubar__search-type {
    color: var(--tosa-orange);
}

.menubar__search-empty {
    padding: 1rem 1.1rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: #6b7177;
    text-align: center;
}

/*!***********************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./node_modules/swiper/swiper.css ***!
  \***********************************************************************************************************************/
/**
 * Swiper 12.1.3
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2026 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: March 24, 2026
 */

:root {
  --swiper-theme-color: #007aff;
  /*
  --swiper-preloader-color: var(--swiper-theme-color);
  --swiper-wrapper-transition-timing-function: initial;
  */
}
:host {
  position: relative;
  display: block;
  margin-left: auto;
  margin-right: auto;
  z-index: 1;
}
.swiper {
  margin-left: auto;
  margin-right: auto;
  position: relative;
  overflow: hidden;
  list-style: none;
  padding: 0;
  /* Fix of Webkit flickering */
  z-index: 1;
  display: block;
}
.swiper-vertical > .swiper-wrapper {
  flex-direction: column;
}
.swiper-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 1;
  display: flex;
  transition-property: transform;
  transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);
  box-sizing: content-box;
}
.swiper-android .swiper-slide,
.swiper-ios .swiper-slide,
.swiper-wrapper {
  transform: translate3d(0px, 0, 0);
}
.swiper-horizontal {
  touch-action: pan-y;
}
.swiper-vertical {
  touch-action: pan-x;
}
.swiper-slide {
  flex-shrink: 0;
  width: 100%;
  height: 100%;
  position: relative;
  transition-property: transform;
  display: block;
}
.swiper-slide-invisible-blank {
  visibility: hidden;
}
/* Auto Height */
.swiper-autoheight,
.swiper-autoheight .swiper-slide {
  height: auto;
}
.swiper-autoheight .swiper-wrapper {
  align-items: flex-start;
  transition-property: transform, height;
}
.swiper-backface-hidden .swiper-slide {
  transform: translateZ(0);
  backface-visibility: hidden;
}
/* 3D Effects */
.swiper-3d.swiper-css-mode .swiper-wrapper {
  perspective: 1200px;
}
.swiper-3d .swiper-wrapper {
  transform-style: preserve-3d;
}
.swiper-3d {
  perspective: 1200px;
  .swiper-slide,
  .swiper-cube-shadow {
    transform-style: preserve-3d;
  }
}

/* CSS Mode */
.swiper-css-mode {
  > .swiper-wrapper {
    overflow: auto;
    scrollbar-width: none; /* For Firefox */
    -ms-overflow-style: none; /* For Internet Explorer and Edge */
    &::-webkit-scrollbar {
      display: none;
    }
  }
  > .swiper-wrapper > .swiper-slide {
    scroll-snap-align: start start;
  }
  &.swiper-horizontal {
    > .swiper-wrapper {
      scroll-snap-type: x mandatory;
    }
    > .swiper-wrapper > .swiper-slide:first-child {
      margin-inline-start: var(--swiper-slides-offset-before);
      scroll-margin-inline-start: var(--swiper-slides-offset-before);
    }
    > .swiper-wrapper > .swiper-slide:last-child {
      margin-inline-end: var(--swiper-slides-offset-after);
    }
  }
  &.swiper-vertical {
    > .swiper-wrapper {
      scroll-snap-type: y mandatory;
    }
    > .swiper-wrapper > .swiper-slide:first-child {
      margin-block-start: var(--swiper-slides-offset-before);
      scroll-margin-block-start: var(--swiper-slides-offset-before);
    }
    > .swiper-wrapper > .swiper-slide:last-child {
      margin-block-end: var(--swiper-slides-offset-after);
    }
  }
  &.swiper-free-mode {
    > .swiper-wrapper {
      scroll-snap-type: none;
    }
    > .swiper-wrapper > .swiper-slide {
      scroll-snap-align: none;
    }
  }
  &.swiper-centered {
    > .swiper-wrapper::before {
      content: '';
      flex-shrink: 0;
      order: 9999;
    }
    > .swiper-wrapper > .swiper-slide {
      scroll-snap-align: center center;
      scroll-snap-stop: always;
    }
  }
  &.swiper-centered.swiper-horizontal {
    > .swiper-wrapper > .swiper-slide:first-child {
      margin-inline-start: var(--swiper-centered-offset-before);
    }
    > .swiper-wrapper::before {
      height: 100%;
      min-height: 1px;
      width: var(--swiper-centered-offset-after);
    }
  }
  &.swiper-centered.swiper-vertical {
    > .swiper-wrapper > .swiper-slide:first-child {
      margin-block-start: var(--swiper-centered-offset-before);
    }
    > .swiper-wrapper::before {
      width: 100%;
      min-width: 1px;
      height: var(--swiper-centered-offset-after);
    }
  }
}

/* Slide styles start */
/* 3D Shadows */
.swiper-3d {
  .swiper-slide-shadow,
  .swiper-slide-shadow-left,
  .swiper-slide-shadow-right,
  .swiper-slide-shadow-top,
  .swiper-slide-shadow-bottom,
  .swiper-slide-shadow,
  .swiper-slide-shadow-left,
  .swiper-slide-shadow-right,
  .swiper-slide-shadow-top,
  .swiper-slide-shadow-bottom {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 10;
  }
  .swiper-slide-shadow {
    background: rgba(0, 0, 0, 0.15);
  }
  .swiper-slide-shadow-left {
    background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  }
  .swiper-slide-shadow-right {
    background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  }
  .swiper-slide-shadow-top {
    background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  }
  .swiper-slide-shadow-bottom {
    background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
  }
}
.swiper-lazy-preloader {
  width: 42px;
  height: 42px;
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -21px;
  margin-top: -21px;
  z-index: 10;
  transform-origin: 50%;
  box-sizing: border-box;
  border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
  border-radius: 50%;
  border-top-color: transparent;
}
.swiper:not(.swiper-watch-progress),
.swiper-watch-progress .swiper-slide-visible {
  .swiper-lazy-preloader {
    animation: swiper-preloader-spin 1s infinite linear;
  }
}
.swiper-lazy-preloader-white {
  --swiper-preloader-color: #fff;
}
.swiper-lazy-preloader-black {
  --swiper-preloader-color: #000;
}
@keyframes swiper-preloader-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
/* Slide styles end */


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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cGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvYXBwLmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL2NvbXBvbmVudHMvc2VhcmNoLmNzcyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvc3dpcGVyL3N3aXBlci5jc3MiXSwic291cmNlc0NvbnRlbnQiOlsiOnJvb3Qge1xuICAgIC0tdG9zYS1vcmFuZ2U6ICNmMTQ5MTA7XG4gICAgLS10b3NhLWJsdWU6ICM0NTQ1REI7XG4gICAgLS10b3NhLWJsdWUtbGlnaHQ6ICNFNkYzRjk7XG4gICAgLS10b3NhLXRlYWw6ICMwZDZiNmU7XG4gICAgLS10b3NhLXllbGxvdzogI0ZGRTM1MDtcbiAgICAtLXRvc2EtbGlnaHQtYmx1ZTogI0U2RjNGOTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5jb250YWluZXIteGwge1xuICAgICAgICBtYXgtd2lkdGg6IDE2MDBweDtcbiAgICB9XG59XG5cbi5jb250YWluZXIteGwge1xuICAgIHBhZGRpbmctbGVmdDogY2xhbXAoMXJlbSwgMi41dncsIDJyZW0pICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogY2xhbXAoMXJlbSwgMi41dncsIDJyZW0pICFpbXBvcnRhbnQ7XG59XG5cbmJvZHksXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhLFxub3B0Z3JvdXAge1xuICAgIGZvbnQtZmFtaWx5OiAnRXBpbG9ndWUnLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7XG59XG5cbjpyb290IHtcbiAgICAtLWJzLWJvZHktY29sb3I6ICMxRDFEMUI7XG4gICAgLS1icy1ib2R5LWNvbG9yLXJnYjogMjksIDI5LCAyNztcbn1cbmJvZHkge1xuICAgIGNvbG9yOiAjMUQxRDFCO1xufVxuLyogRm9yY2UgRXBpbG9ndWUgZXZlcnl3aGVyZSDigJQgb3ZlcnJpZGVzIEJvb3RzdHJhcCBkZWZhdWx0cyBhbmQgYW55IGlubGluZVxuICAgZm9udC1mYW1pbHkgc2V0IGJ5IGV4dGVybmFsIGNvbnRlbnQgKGUuZy4gRHJvcEluQmxvZyBwb3N0IEhUTUwpLiAqL1xuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbn1cbi5kaWItcG9zdCxcbi5kaWItcG9zdC1jb250ZW50LFxuLmRpYi1wb3N0LWNvbnRlbnQgKiB7XG4gICAgZm9udC1mYW1pbHk6ICdFcGlsb2d1ZScsIHNhbnMtc2VyaWYgIWltcG9ydGFudDtcbn1cblxuLyog4pSA4pSAIFJldXNhYmxlIENvbXBvbmVudHMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG5cbi8qIFNlY3Rpb24gZG90cyAtIHRocmVlIHNtYWxsIG9yYW5nZSBjaXJjbGVzIHVzZWQgYXMgZGVjb3JhdG9ycyBiZWZvcmUgc2VjdGlvbiB0aXRsZXMgKi9cbi5zZWN0aW9uLWRvdHMgc3Bhbixcbi5oZXJvX19kb3RzIHNwYW4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogOHB4O1xuICAgIGhlaWdodDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG59XG5cbi5zZWN0aW9uLWRvdHMtLWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uc2VjdGlvbi10aXRsZSB7XG4gICAgZm9udC1zaXplOiBjbGFtcCgxLjc1cmVtLCAzLjV2dywgMi43NXJlbSk7XG4gICAgY29sb3I6ICMxYTFhMmU7XG59XG5cbi8qIENUQSBCdXR0b25zIC0gb3JhbmdlIGJ1dHRvbnMgd2l0aCBjbGlwLXBhdGggY3V0IG9uIHRvcC1yaWdodCBjb3JuZXIgKi9cbi5jdGEtYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZzogMTZweCAzMnB4O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgY2FsYygxMDAlIC0gMTZweCkgMCwgMTAwJSAxNnB4LCAxMDAlIDEwMCUsIDAgMTAwJSk7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzO1xufVxuXG4uY3RhLWJ0bi0tb3JhbmdlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi5jdGEtYnRuLS1vcmFuZ2U6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkNjNkMDk7XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi5jdGEtYnRuX19pY29uIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbn1cblxuLyog4pSA4pSAIE1lbnViYXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4vKiBLZWVwIGFsbCBleGlzdGluZyBtZW51YmFyIHN0eWxlcyAqL1xuLm5hdmJhciB7IG1pbi1oZWlnaHQ6IDcycHg7IHBhZGRpbmctdG9wOiAwOyBwYWRkaW5nLWJvdHRvbTogMDsgfVxuLm5hdmJhciAubmF2LWxpbmsgeyBjb2xvcjogIzFhMWExYSAhaW1wb3J0YW50OyB9XG4ubWVudWJhcl9fY3RhLWJ0biB7IGRpc3BsYXk6IGlubGluZS1mbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiA4cHg7IHBhZGRpbmc6IDEwcHggMjBweDsgZm9udC1zaXplOiAwLjg3NXJlbTsgZm9udC13ZWlnaHQ6IDYwMDsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgY3Vyc29yOiBwb2ludGVyOyBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCBjYWxjKDEwMCUgLSAxNHB4KSAwLCAxMDAlIDE0cHgsIDEwMCUgMTAwJSwgMCAxMDAlKTsgfVxuLm1lbnViYXJfX2N0YS1idG4tLWRhcmsgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMWExYTFhOyBjb2xvcjogI2ZmZjsgfVxuLm1lbnViYXJfX2N0YS1idG4tLWRhcms6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOyBjb2xvcjogI2ZmZjsgfVxuLm1lbnViYXJfX2N0YS1idG4tLW9yYW5nZSB7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTsgY29sb3I6ICNmZmY7IH1cbi5tZW51YmFyX19jdGEtYnRuLS1vcmFuZ2U6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZDYzZDA5OyBjb2xvcjogI2ZmZjsgfVxuLm1lbnViYXJfX2NoZXZyb24geyB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlOyAtd2Via2l0LXRleHQtc3Ryb2tlOiAwLjhweCBjdXJyZW50Q29sb3I7IH1cbi5kcm9wZG93bi5zaG93IC5tZW51YmFyX19jaGV2cm9uLCAubmF2LWl0ZW0uc2hvdyAubWVudWJhcl9fY2hldnJvbiB7IHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cblxuLyogTmF2YmFyIG5hdiBsaW5rcyBzcGFjaW5nICovXG4ubmF2YmFyIC5uYXZiYXItbmF2IC5uYXYtbGluayxcbi5uYXZiYXIgLm5hdmJhci1uYXYgLm1lbnViYXJfX2xpbmsge1xuICAgIHBhZGRpbmc6IDEuNXJlbSAxcmVtO1xuICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMxYTFhMWEgIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuLm5hdmJhciAubmF2YmFyLW5hdiAubWVudWJhcl9fbGluazpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKSAhaW1wb3J0YW50O1xufVxuLm5hdmJhciAubmF2YmFyLW5hdiAubWVudWJhcl9faXRlbTpub3QoLmRyb3Bkb3duKSAubWVudWJhcl9fbGluayB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubmF2YmFyIC5jb250YWluZXIteGwge1xuICAgIG1heC13aWR0aDogOTklO1xuICAgIG1pbi1oZWlnaHQ6IDcycHg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG5cbi5uYXZiYXIgI21lbnViYXJOYXYge1xuICAgIG1pbi1oZWlnaHQ6IDcycHg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG5cbi5uYXZiYXIgLm5hdmJhci1uYXYge1xuICAgIG1pbi1oZWlnaHQ6IDcycHg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbn1cblxuLm5hdmJhciAubmF2YmFyLWJyYW5kIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4vKiBBY3RpdmUgLyBvcGVuIHN0YXRlOiBvcmFuZ2UgdW5kZXJsaW5lICsgMyBvcmFuZ2UgZG90cyBjZW50ZXJlZCBiZWxvdyB0aGUgbGluayAqL1xuLm1lbnViYXJfX2l0ZW0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5tZW51YmFyX19pdGVtOjphZnRlciB7XG4gICAgLyogb3JhbmdlIHVuZGVybGluZSBhbGlnbmVkIHdpdGggYm90dG9tIG9mIG5hdmJhciAqL1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAtMXB4O1xuICAgIGhlaWdodDogM3B4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5tZW51YmFyX19pdGVtIC5tZW51YmFyX19saW5rOjpiZWZvcmUge1xuICAgIC8qIDMgb3JhbmdlIGRvdHMgY2VudGVyZWQgYmVsb3cgdGhlIGxpbmsgKi9cbiAgICBjb250ZW50OiBcIuKAoiDigKIg4oCiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBib3R0b206IDAuNXJlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBmb250LXNpemU6IDAuNjVyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IDNweDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5uYXZiYXIgdWwubWVudWJhcl9fZHJvcGRvd246OmJlZm9yZXtcbiAgICBjb250ZW50OiBcIlwiO1xufVxuLm1lbnViYXJfX2l0ZW0uc2hvdzpub3QoLm1lbnViYXJfX2l0ZW0tLWFjY291bnQpOjphZnRlcixcbi5tZW51YmFyX19pdGVtOmhvdmVyOm5vdCgubWVudWJhcl9faXRlbS0tYWNjb3VudCk6OmFmdGVyLFxuLm1lbnViYXJfX2l0ZW06bm90KC5tZW51YmFyX19pdGVtLS1hY2NvdW50KTpoYXMoLm1lbnViYXJfX2xpbmtbYXJpYS1leHBhbmRlZD1cInRydWVcIl0pOjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XG59XG4ubWVudWJhcl9faXRlbS5zaG93Om5vdCgubWVudWJhcl9faXRlbS0tYWNjb3VudCkgLm1lbnViYXJfX2xpbms6OmJlZm9yZSxcbi5tZW51YmFyX19pdGVtOmhvdmVyOm5vdCgubWVudWJhcl9faXRlbS0tYWNjb3VudCkgLm1lbnViYXJfX2xpbms6OmJlZm9yZSxcbi5tZW51YmFyX19pdGVtOm5vdCgubWVudWJhcl9faXRlbS0tYWNjb3VudCkgLm1lbnViYXJfX2xpbmtbYXJpYS1leHBhbmRlZD1cInRydWVcIl06OmJlZm9yZSB7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLyogRHJvcGRvd24gbWVudXMg4oCUIGNhcmRzIHN0YWNrZWQgd2l0aCBubyBnYXAsIG5vIHJvdW5kZWQgY29ybmVycyAqL1xuLm5hdmJhciAubWVudWJhcl9fZHJvcGRvd24ge1xuICAgIG1hcmdpbi10b3A6IDEuMnJlbTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1pbi13aWR0aDogMjgwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbn1cbi8qIFVwd2FyZC1wb2ludGluZyBhcnJvdyBvbiB0b3Agb2YgdGhlIGZpcnN0IHN1Ym1lbnUgaXRlbSAqL1xuLm5hdmJhciAubWVudWJhcl9fZHJvcGRvd246OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtOHB4O1xuICAgIGxlZnQ6IDI0cHg7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1sZWZ0OiA5cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiA5cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogOXB4IHNvbGlkICNmZmY7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIC0ycHggMnB4IHJnYmEoMCwgMCwgMCwgMC4wNikpO1xuICAgIHotaW5kZXg6IDE7XG59XG4vKiBGb3IgdGhlIEFjY291bnQgZHJvcGRvd24gKG1lbnUtZW5kKSwgcGxhY2UgdGhlIGFycm93IG9uIHRoZSByaWdodCBzaWRlICovXG4ubmF2YmFyIC5kcm9wZG93bi1tZW51LWVuZC5tZW51YmFyX19kcm9wZG93bjo6YmVmb3JlIHtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIHJpZ2h0OiAyNHB4O1xufVxuLm5hdmJhciAubWVudWJhcl9fZHJvcGRvd24gPiBsaSB7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG59XG4ubmF2YmFyIC5tZW51YmFyX19kcm9wZG93biAubWVudWJhcl9fZHJvcGRvd24taXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDFyZW07XG4gICAgcGFkZGluZzogMXJlbSAxLjI1cmVtO1xuICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMxYTFhMWE7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTtcbn1cbi5uYXZiYXIgLm1lbnViYXJfX2Ryb3Bkb3duID4gbGk6bGFzdC1jaGlsZCAubWVudWJhcl9fZHJvcGRvd24taXRlbSB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi5uYXZiYXIgLm1lbnViYXJfX2Ryb3Bkb3duIC5tZW51YmFyX19kcm9wZG93bi1pdGVtIGkuYmktY2hldnJvbi1yaWdodCB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgLXdlYmtpdC10ZXh0LXN0cm9rZTogMC41cHggY3VycmVudENvbG9yO1xufVxuLm5hdmJhciAubWVudWJhcl9fZHJvcGRvd24gLm1lbnViYXJfX2Ryb3Bkb3duLWl0ZW06aG92ZXIsXG4ubmF2YmFyIC5tZW51YmFyX19kcm9wZG93biAubWVudWJhcl9fZHJvcGRvd24taXRlbTpmb2N1cyB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmNmYxO1xufVxuXG4vKiBOZXN0ZWQgc3VibWVudSAodXNlZCBvbiBTb2x1dGlvbnMgPiBDZXJ0aWZpY2F0aW9ucykgKi9cbi5uYXZiYXIgLm1lbnViYXJfX2hhcy1zdWJtZW51IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubmF2YmFyIC5tZW51YmFyX19zdWJtZW51IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCAwIDRweDtcbiAgICBtaW4td2lkdGg6IDI2MHB4O1xufVxuLm5hdmJhciAubWVudWJhcl9fc3VibWVudTo6YmVmb3JlIHtcbiAgICAvKiBNb3ZlIHRoZSBhcnJvdyB0byB0aGUgbGVmdCBzaWRlIHNvIGl0IHBvaW50cyBiYWNrIGF0IHRoZSBwYXJlbnQgaXRlbSAqL1xuICAgIHRvcDogMTZweDtcbiAgICBsZWZ0OiAtOHB4O1xuICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgIGJvcmRlci1yaWdodDogOXB4IHNvbGlkICNmZmY7XG4gICAgYm9yZGVyLXRvcDogOXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IDlweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KC0ycHggMCAycHggcmdiYSgwLCAwLCAwLCAwLjA2KSk7XG59XG5cbi8qIE9wZW4gZHJvcGRvd24gb24gaG92ZXIgZm9yIGRlc2t0b3AgKi9cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAgIC5uYXZiYXIgLm5hdi1pdGVtLmRyb3Bkb3duOmhvdmVyID4gLmRyb3Bkb3duLW1lbnUsXG4gICAgLm5hdmJhciAuZHJvcGRvd246aG92ZXIgPiAuZHJvcGRvd24tbWVudSxcbiAgICAubmF2YmFyIC5tZW51YmFyX19pdGVtLS1hY2NvdW50OmhvdmVyID4gLmRyb3Bkb3duLW1lbnUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gICAgLm5hdmJhciAubWVudWJhcl9faGFzLXN1Ym1lbnU6aG92ZXIgPiAubWVudWJhcl9fc3VibWVudSxcbiAgICAubmF2YmFyIC5tZW51YmFyX19oYXMtc3VibWVudTpmb2N1cy13aXRoaW4gPiAubWVudWJhcl9fc3VibWVudSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qIEludmlzaWJsZSBob3ZlciBicmlkZ2Ug4oCUIGZpbGxzIHRoZSAxLjJyZW0gKDJyZW0gZm9yIHRoZSBBY2NvdW50XG4gICAgICAgbWVudSkgZ2FwIGJldHdlZW4gdGhlIG5hdi1saW5rIGFuZCB0aGUgZHJvcGRvd24gc28gdGhlIGN1cnNvclxuICAgICAgIGNhbiB0cmF2ZWwgYmV0d2VlbiB0aGVtIHdpdGhvdXQgbG9zaW5nIDpob3Zlci4gUHVyZSBob3ZlciB0YXJnZXQsXG4gICAgICAgbm8gdmlzaWJsZSBjaGFuZ2UuICovXG4gICAgLm5hdmJhciAubWVudWJhcl9fZHJvcGRvd246OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC0xLjJyZW07XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBoZWlnaHQ6IDEuMnJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIH1cbiAgICAubmF2YmFyIC5tZW51YmFyX19pdGVtLS1hY2NvdW50ID4gLmRyb3Bkb3duLW1lbnUtZW5kOjphZnRlciB7XG4gICAgICAgIHRvcDogLTJyZW07XG4gICAgICAgIGhlaWdodDogMnJlbTtcbiAgICB9XG59XG5cbi5uYXZiYXIgLm1lbnViYXJfX2l0ZW0tLWFjY291bnQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5uYXZiYXIgLm1lbnViYXJfX2l0ZW0tLWFjY291bnQgPiAuZHJvcGRvd24tbWVudS1lbmQge1xuICAgIHJpZ2h0OiAwO1xuICAgIGxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcbn1cblxuLyog4pSA4pSAIEhlcm8g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4vKiBGdWxsIHdpZHRoIGhlcm8gd2l0aCBiYWNrZ3JvdW5kIGltYWdlIGNvdmVyaW5nIHRoZSBlbnRpcmUgc2VjdGlvbi4gVGV4dCBvdmVybGF5cyBvbiB0aGUgbGVmdC4gKi9cbi5oZXJvIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLWhlaWdodDogODV2aDtcbn1cblxuLmhlcm9fX2JnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogMTtcbn1cblxuLmhlcm9fX2JnLWltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4uaGVyb19fYmc6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDI1NSwyNTUsMjU1LDAuOTIpIDAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuNykgNDAlLCByZ2JhKDI1NSwyNTUsMjU1LDApIDY1JSk7XG59XG5cbi5oZXJvX190aXRsZSB7XG4gICAgZm9udC1zaXplOiBjbGFtcCgyLjI1cmVtLCA0LjV2dywgMy41cmVtKTtcbiAgICBjb2xvcjogIzFhMWEyZTtcbn1cblxuLmhlcm9fX3N1YnRpdGxlIHtcbiAgICBjb2xvcjogIzU1NTtcbiAgICBtYXgtd2lkdGg6IDUwMHB4O1xufVxuXG4ubWluLXZoLTc1IHtcbiAgICBtaW4taGVpZ2h0OiA3NXZoO1xufVxuXG4vKiDilIDilIAgQmV5b25kIERpcGxvbWEg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uYmV5b25kLWRpcGxvbWEge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogODBweCAwO1xufVxuXG4vKiBWZWN0b3IucG5nIGRlY29yYXRpdmUgc2hhcGUgb24gdGhlIGxlZnQgKi9cbi5iZXlvbmQtZGlwbG9tYTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA0MHB4O1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDQ5JTtcbiAgICBoZWlnaHQ6IDExMCU7XG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvaG9tZS92ZWN0b3ItYmV5b25kLnBuZycpIG5vLXJlcGVhdCBsZWZ0IHRvcDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDA7XG4gICAgb3BhY2l0eTogMC41O1xufVxuXG4uYmV5b25kLWRpcGxvbWEgLmNvbnRhaW5lci14bCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG59XG5cblxuXG4vKiBHcmV5IGRvdHMgYWJvdmUgdGhlIGJleW9uZC1kaXBsb21hIGltYWdlICovXG4uYmV5b25kLWRpcGxvbWFfX2dyZXktZG90cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cblxuLmJleW9uZC1kaXBsb21hX19ncmV5LWRvdHMgc3BhbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogI2MwYzBjMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi5iZXlvbmQtZGlwbG9tYV9faW1hZ2Utd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLmJleW9uZC1kaXBsb21hX19pbWFnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDQ4MHB4O1xuICAgIGhlaWdodDogNTgwcHg7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgb2JqZWN0LXBvc2l0aW9uOiA2MCUgMTUlO1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIDgyJSAwLCAxMDAlIDE0JSwgMTAwJSAxMDAlLCAwIDEwMCUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi8qIFN0YXQgY2FyZCBvdmVybGFwcGluZyB0aGUgaW1hZ2UgYXQgYm90dG9tLXJpZ2h0ICovXG4uYmV5b25kLWRpcGxvbWFfX3N0YXQtY2FyZCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogNDBweDtcbiAgICByaWdodDogLTYwcHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHBhZGRpbmc6IDIycHggMjRweDtcbiAgICBib3gtc2hhZG93OiAwIDhweCA0MHB4IHJnYmEoMCwwLDAsMC4wOCk7XG4gICAgbWF4LXdpZHRoOiAyMTBweDtcbiAgICB6LWluZGV4OiAzO1xufVxuXG4vKiBCbHVlIGNpcmNsZSBicmllZmNhc2UgaWNvbiBmbG9hdGluZyBhdCB0b3AtcmlnaHQgb2Ygc3RhdCBjYXJkICovXG4uYmV5b25kLWRpcGxvbWFfX3N0YXQtaWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTIwcHg7XG4gICAgcmlnaHQ6IC0yMHB4O1xuICAgIHdpZHRoOiA1MnB4O1xuICAgIGhlaWdodDogNTJweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgei1pbmRleDogNDtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoNjksNjksMjE5LDAuMyk7XG59XG5cbi5iZXlvbmQtZGlwbG9tYV9fc3RhdC1udW1iZXIge1xuICAgIGZvbnQtc2l6ZTogMi42cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS10b3NhLWJsdWUpO1xufVxuXG4uYmV5b25kLWRpcGxvbWFfX3N0YXQtdGV4dCB7XG4gICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICBjb2xvcjogIzY2NjtcbiAgICBtYXJnaW46IDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuLyogU29mdHdhcmUgaWNvbnMgcm93IGJlbG93IHRoZSBpbWFnZSAqL1xuLmJleW9uZC1kaXBsb21hX19zb2Z0d2FyZS1pY29ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogNDBweDtcbn1cblxuLmJleW9uZC1kaXBsb21hX19zdy1pY29uIHtcbiAgICB3aWR0aDogNjRweDtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uYmV5b25kLWRpcGxvbWFfX3N3LWljb24gaW1nIHtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuLyogUmlnaHQgY29sdW1uIHRleHQgc3R5bGluZyAqL1xuLmJleW9uZC1kaXBsb21hIC5zZWN0aW9uLXRpdGxlIHtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDR2dywgM3JlbSk7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTU7XG59XG5cbi8qIEhpZ2hsaWdodGVkIHRleHQgaW5zaWRlIGJleW9uZC1kaXBsb21hIHBhcmFncmFwaCAqL1xuLnRleHQtaGlnaGxpZ2h0IHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAzcHg7XG59XG5cbi8qIOKUgOKUgCBDZXJ0aWZ5IFNraWxscyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5jZXJ0aWZ5LXNraWxscyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjdmNztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9ob21lL3ZlY3Rvci1jZXJ0aWZ5c2xpZGVyLnBuZycpLCBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjZjBmN2Y3IDAlLCAjZmZmIDEwMCUpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyLCBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogYXV0bywgY292ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogU3dpcGVyIGNvbnRhaW5lciAtIGZhZGUgYXV4IGJvcmRzIGdhdWNoZSBldCBkcm9pdCAqL1xuLnN3aXBlci5jZXJ0aWZ5LXN3aXBlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXRvcDogMzBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbiAgICAtd2Via2l0LW1hc2staW1hZ2U6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgdG8gcmlnaHQsXG4gICAgICAgIHRyYW5zcGFyZW50IDAlLFxuICAgICAgICBibGFjayAxMiUsXG4gICAgICAgIGJsYWNrIDg4JSxcbiAgICAgICAgdHJhbnNwYXJlbnQgMTAwJVxuICAgICk7XG4gICAgbWFzay1pbWFnZTogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICB0byByaWdodCxcbiAgICAgICAgdHJhbnNwYXJlbnQgMCUsXG4gICAgICAgIGJsYWNrIDEyJSxcbiAgICAgICAgYmxhY2sgODglLFxuICAgICAgICB0cmFuc3BhcmVudCAxMDAlXG4gICAgKTtcbn1cblxuLmNlcnRpZnktc3dpcGVyIC5zd2lwZXItd3JhcHBlciB7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhciAhaW1wb3J0YW50O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xufVxuXG4vKiBPdmVycmlkZSBTd2lwZXIgZGVmYXVsdCB3aWR0aDogMTAwJSBvbiBzbGlkZXMgLSBmaXhlZCB3aWR0aCAqL1xuLmNlcnRpZnktc3dpcGVyIC5zd2lwZXItc2xpZGUge1xuICAgIHdpZHRoOiAyNjBweCAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogMjYwcHggIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDI2MHB4ICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG5cbi5jZXJ0aWZ5LWNhcmQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZzogMzJweCAyMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMjYwcHg7XG4gICAgbWluLXdpZHRoOiAyNjBweDtcbiAgICBtYXgtd2lkdGg6IDI2MHB4O1xuICAgIGhlaWdodDogMjgwcHg7XG4gICAgbWluLWhlaWdodDogMjgwcHg7XG4gICAgbWF4LWhlaWdodDogMjgwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGJveC1zaGFkb3c6IDBweCAzcHggMjBweCAjZGVkZWRlO1xufVxuXG4uY2VydGlmeS1jYXJkX19pY29uIHtcbiAgICB3aWR0aDogMTAwcHg7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDEwMHB4O1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiAyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5jZXJ0aWZ5LWNhcmRfX2ljb24gaW1nIHtcbiAgICB3aWR0aDogMTAwcHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDEwMHB4ICFpbXBvcnRhbnQ7XG4gICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICBtaW4taGVpZ2h0OiAxMDBweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIG9iamVjdC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vKiBCdW5kbGUgY2FyZHMg4oCUIHRoZSBidW5kbGUgYmFubmVyIGlzIHdpZGUsIHNvIG92ZXJyaWRlIHRoZSBzcXVhcmUgaWNvbiBzbG90ICovXG4uY2VydGlmeS1jYXJkLS1idW5kbGUge1xuICAgIGNvbG9yOiBpbmhlcml0O1xufVxuLmNlcnRpZnktY2FyZF9faWNvbi0tYnVuZGxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEyMHB4O1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEuMmVtO1xufVxuLmNlcnRpZnktY2FyZF9faWNvbi0tYnVuZGxlIGltZyB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4uY2VydGlmeS1jYXJkX19sYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBtYXJnaW46IDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICBtaW4taGVpZ2h0OiAyLjZlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qIOKUgOKUgCBDZXJ0aWZpY2F0aW9uIE9mZmVyaW5ncyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5jZXJ0LW9mZmVyaW5ncyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6IDYwMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMzODQ2ZDg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvY2VydGlmaWNhdGlvbi9Hcm91cCAxMDgucG5nJyk7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuLmNlcnQtb2ZmZXJpbmdzX19oZWFkaW5nIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgYmFja2dyb3VuZDogI0ZGRTM1MDtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgcGFkZGluZzogMTRweCA0OHB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgbWFyZ2luLWJvdHRvbTogMS4yNXJlbTtcbiAgICBmb250LXNpemU6IGNsYW1wKDFyZW0sIDIuNHZ3LCAxLjlyZW0pO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG4uY2VydC1vZmZlcmluZ3NfX2xlYWQge1xuICAgIG1heC13aWR0aDogNzIwcHg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cbi5jZXJ0LW9mZmVyaW5nc19fdGFicy1sYWJlbCB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4uY2VydC1vZmZlcmluZ3NfX2JnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgei1pbmRleDogMDtcbn1cblxuLmNlcnQtb2ZmZXJpbmdzX19iZy1pbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBvYmplY3QtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjtcbn1cblxuLmNlcnQtb2ZmZXJpbmdzX19hcnJvdyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIG9iamVjdC1wb3NpdGlvbjogbGVmdCBjZW50ZXI7XG4gICAgei1pbmRleDogMTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmNlcnQtb2ZmZXJpbmdzX19jYXJkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgcGFkZGluZzogNDhweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbn1cblxuLmNlcnQtb2ZmZXJpbmdzX19sb2dvLWl0ZW0ge1xuICAgIHBhZGRpbmc6IDhweCAwO1xufVxuXG4uY2VydC1vZmZlcmluZ3NfX2xvZ28tbGluZSB7XG4gICAgaGVpZ2h0OiAzcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuXG4vKiDilIDilIAgTGVhcm5pbmcgUGxhdGZvcm0g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4ubGVhcm5pbmctcGxhdGZvcm0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaG9tZS9ncmFkaWVudC1iZy5wbmcnKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cblxuLnBsYXRmb3JtLWZlYXR1cmVfX2ljb24ge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHdpZHRoOiA1NnB4O1xuICAgIGhlaWdodDogNTZweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vKiBTdWJ0bGUgc2hhZG93IGVsbGlwc2UgYmVsb3cgdGhlIGljb24gKi9cbi5wbGF0Zm9ybS1mZWF0dXJlX19pY29uOjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogLTRweDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIHdpZHRoOiA0NHB4O1xuICAgIGhlaWdodDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDY5LCA2OSwgMjE5LCAwLjA4KTtcbiAgICBmaWx0ZXI6IGJsdXIoM3B4KTtcbn1cblxuLnBsYXRmb3JtLWZlYXR1cmVfX2ljb24gaW1nLFxuLnBsYXRmb3JtLWZlYXR1cmVfX2ljb24gdmlkZW8ge1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xufVxuXG4vKiBXaHktY2hvb3NlICYgV2hvLXdlLXNlcnZlIGljb24gc2l6ZSBjb25zdHJhaW50cyAqL1xuLndoeS1jYXJkX19pY29uIHtcbiAgICB3aWR0aDogNjRweDtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbn1cbi53aHktY2FyZF9faWNvbiBpbWcsXG4ud2h5LWNhcmRfX2ljb24gdmlkZW8ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuLyog4pSA4pSAIFdobyBXZSBTZXJ2ZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi53aG8td2Utc2VydmUge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZzogNDBweCAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ud2hvLXdlLXNlcnZlIC5jb250YWluZXIteGwge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EtYmx1ZSkgdXJsKCcuLi9pbWFnZXMvaG9tZS92ZWN0b3Itd2hvd2VzZXJ2ZS5wbmcnKSBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3VudGFpbjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiA2NHB4IDU2cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiA4MCU7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgOTQlIDAsIDEwMCUgMTQlLCAxMDAlIDEwMCUsIDAgMTAwJSk7XG59XG5cbi53aG8td2Utc2VydmUgLmNvbC1sZy03e1xuICAgIHBhZGRpbmctdG9wOiA0ZW07XG59XG5cbi53aG8td2Utc2VydmUgLmNvbC1sZy01e1xuICAgcGFkZGluZzogMCUgMyU7XG59XG5cbi53aG8td2Utc2VydmUgLnNlY3Rpb24tZG90cy0tb3JhbmdlIHNwYW57XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS15ZWxsb3cpICFpbXBvcnRhbnQ7XG59XG4ud2hvLXdlLXNlcnZlIC5zZWN0aW9uLXRpdGxlIHtcbiAgICBjb2xvcjogI2ZmZjtcbn1cblxuLndoby13ZS1zZXJ2ZSBwIHtcbiAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjg1KTtcbn1cblxuLnNlY3Rpb24tZG90cy0tb3JhbmdlIHNwYW4ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2Etb3JhbmdlKSAhaW1wb3J0YW50O1xufVxuXG4uc2VjdGlvbi1kb3RzLS15ZWxsb3cgc3BhbiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS15ZWxsb3cpICFpbXBvcnRhbnQ7XG59XG5cbi5zZXJ2ZS1jYXJkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDQxcHggMjBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi5zZXJ2ZS1jYXJkX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIG1hcmdpbjogMDtcbn1cblxuLnNlcnZlLWNhcmRfX2ljb24ge1xuICAgIHdpZHRoOiAxMDBweDtcbiAgICBoZWlnaHQ6IDEwMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDY2cHg7XG59XG4uc2VydmUtY2FyZF9faWNvbiBpbWcsXG4uc2VydmUtY2FyZF9faWNvbiB2aWRlbyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi5wbGF0Zm9ybS1mZWF0dXJlX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSkgIWltcG9ydGFudDtcbn1cblxuLnBsYXRmb3JtLWZlYXR1cmVfX3RleHQge1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xufVxuXG4vKiDilIDilIAgV2h5IENob29zZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi53aHktY2hvb3NlIHtcbiAgICBiYWNrZ3JvdW5kOiAjRTZGM0Y5IHVybCgnLi4vaW1hZ2VzL2hvbWUvdmVjdG9yLXdoeWNob29zZS5wbmcnKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDgwcHggMDtcbn1cblxuLndoeS1jaG9vc2UgLmNvbnRhaW5lci14bCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG59XG5cbi53aHktY2hvb3NlIC5zZWN0aW9uLXRpdGxlIHtcbiAgICBjb2xvcjogIzFhMWEyZTtcbn1cblxuLndoeS1jaG9vc2UgLnJvdyB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblxuLndoeS1jaG9vc2UgLndoeS1jYXJkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgcGFkZGluZzogNDBweCAyOHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNFNkYzRjk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1pbi1oZWlnaHQ6IDQzMHB4O1xufVxuXG4ud2h5LWNhcmRfX2ljb24ge1xuICAgIHdpZHRoOiA2NHB4O1xuICAgIGhlaWdodDogNjRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuXG4ud2h5LWNhcmRfX2ljb24gaW1nLFxuLndoeS1jYXJkX19pY29uIHZpZGVvIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuLyogU21hbGwgYmx1ZSB1bmRlcmxpbmUgYmV0d2VlbiBpY29uIGFuZCB0aXRsZSAtIGJsdXJyZWQgKi9cbi53aHktY2FyZF9fbGluZSB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBmaWx0ZXI6IGJsdXIoN3B4KTtcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcbn1cblxuLndoeS1jYXJkX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIG1hcmdpbi10b3A6IDYycHg7XG59XG5cbi53aHktY2FyZF9fdGV4dCB7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgY29sb3I6ICM1NTU7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTU7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4vKiBDVEEgY2FyZDogb3JhbmdlIGJhY2tncm91bmQgKi9cbi53aHktY2FyZC0tY3RhIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLW9yYW5nZSkgdXJsKCcuLi9pbWFnZXMvaG9tZS93aHljaG9vc2VsaW5rLnBuZycpIG5vLXJlcGVhdCBib3R0b20gbGVmdCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtc2l6ZTogYXV0byA2NSUgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiA0MHB4IDI4cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycztcbn1cblxuLndoeS1jYXJkLS1jdGE6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkNjNkMDkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZjtcbn1cblxuLndoeS1jYXJkX19jdGEtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS4zNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBtYXJnaW46IDA7XG59XG5cblxuLndoeS1jYXJkX19jdGEtYXJyb3cge1xuICAgIHdpZHRoOiA1NnB4O1xuICAgIGhlaWdodDogNTZweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLXllbGxvdyk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBtYXJnaW4tdG9wOiAzMnB4O1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xufVxuXG4vKiDilIDilIAgVGVzdGltb25pYWxzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLnRlc3RpbW9uaWFscyB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjMDU2NzZBIDAlLCAjMDU2NzZBIDUwJSwgIzAwNTM1NiA1MCUsICMwMDUzNTYgMTAwJSk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZy1ib3R0b206IDI4MHB4ICFpbXBvcnRhbnQ7XG59XG5cbi50ZXN0aW1vbmlhbHM6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogMS41cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgICB6LWluZGV4OiAyO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4udGVzdGltb25pYWxzX19sZWZ0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICBwYWRkaW5nLWxlZnQ6IDgwcHg7XG4gICAgcGFkZGluZy10b3A6IDQwcHg7XG4gICAgcGFkZGluZy1ib3R0b206IDQwcHg7XG59XG5cbi50ZXN0aW1vbmlhbHM6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiA1MCU7XG4gICAgaGVpZ2h0OiAxMjklO1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL2hvbWUvdmVjdG9yLXRlc3RpbW9uaWFsLWxlZnQucG5nJykgbm8tcmVwZWF0IGJvdHRvbSBsZWZ0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgei1pbmRleDogMDtcbn1cblxuLnRlc3RpbW9uaWFsc19fcmlnaHQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xufVxuXG4udGVzdGltb25pYWxzID4gLmNvbnRhaW5lci14bDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IC0yODBweDtcbiAgICByaWdodDogLTIyMHB4O1xuICAgIHdpZHRoOiA2MDBweDtcbiAgICBoZWlnaHQ6IDUwMHB4O1xuICAgIGJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL2hvbWUvdmVjdG9yLXRlc3RpbW9uaWFsLXJpZ2h0LnBuZycpIG5vLXJlcGVhdCBib3R0b20gcmlnaHQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDA7XG59XG5cbi50ZXN0aW1vbmlhbHMgPiAuY29udGFpbmVyLXhsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi50ZXN0aW1vbmlhbC1jYXJkLmlzLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi8qIFNwZWVjaC1idWJibGUgYmFja2dyb3VuZCBpbWFnZS4gVGhlIGltYWdlJ3MgdGFpbCBpcyB+MzQlIG9mIGl0cyBoZWlnaHQsIHNvXG4gICB0aGUgYm90dG9tIGluc2V0IGlzIGEgUEVSQ0VOVEFHRSBvZiB0aGUgY2FyZCBoZWlnaHQgKG5vdCBhIGZpeGVkIHB4KTogdGhlXG4gICBpbWFnZSdzIGJvZHkgdGhlbiBhbHdheXMgY292ZXJzIHRoZSBxdW90ZSArIGF1dGhvciBubyBtYXR0ZXIgaG93IGxvbmcgdGhlXG4gICBxdW90ZSBpcywgYW5kIHRoZSB0YWlsIGV4dGVuZHMgcHJvcG9ydGlvbmFsbHkgYmVsb3cuICovXG4udGVzdGltb25pYWwtY2FyZC5pcy1hY3RpdmU6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTQwcHg7XG4gICAgbGVmdDogLTQwcHg7XG4gICAgcmlnaHQ6IC00MHB4O1xuICAgIGJvdHRvbTogLTU1JTtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy9ob21lL3ZlY3Rvci10ZXN0aW1vbmlhbC1kaWFsb2cud2VicCcpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4udGVzdGltb25pYWxzX19hdmF0YXIge1xuICAgIHdpZHRoOiA4MHB4O1xuICAgIGhlaWdodDogODBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiA1cHggc29saWQgdmFyKC0tdG9zYS10ZWFsKTtcbiAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnRlc3RpbW9uaWFsc19fYXZhdGFyOm50aC1jaGlsZCgxKSB7IHotaW5kZXg6IDE7IH1cbi50ZXN0aW1vbmlhbHNfX2F2YXRhcjpudGgtY2hpbGQoMikgeyB6LWluZGV4OiAyOyB9XG4udGVzdGltb25pYWxzX19hdmF0YXI6bnRoLWNoaWxkKDMpIHsgei1pbmRleDogMzsgfVxuXG4udGVzdGltb25pYWxzX19hdmF0YXI6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4udGVzdGltb25pYWxzX19hdmF0YXIgaW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZmlsdGVyOiBncmF5c2NhbGUoMTAwJSk7XG4gICAgdHJhbnNpdGlvbjogZmlsdGVyIDAuM3M7XG59XG5cbi50ZXN0aW1vbmlhbHNfX2F2YXRhci5pcy1hY3RpdmUgaW1nIHtcbiAgICBmaWx0ZXI6IGdyYXlzY2FsZSgwJSk7XG59XG5cblxuLnRlc3RpbW9uaWFsc19fbmF2LWJ0biB7XG4gICAgd2lkdGg6IDUycHg7XG4gICAgaGVpZ2h0OiA1MnB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzO1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIGNhbGMoMTAwJSAtIDE0cHgpIDAsIDEwMCUgMTRweCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xufVxuXG4udGVzdGltb25pYWxzX19uYXYtYnRuLS1wcmV2IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDE0cHggMCwgMTAwJSAwLCAxMDAlIDEwMCUsIDAgMTAwJSwgMCAxNHB4KTtcbn1cblxuLnRlc3RpbW9uaWFsc19fbmF2LWJ0bi0tcHJldjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbn1cblxuLnRlc3RpbW9uaWFsc19fbmF2LWJ0bi0tbmV4dCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG4udGVzdGltb25pYWxzX19uYXYtYnRuLS1uZXh0OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZDYzZDA5O1xufVxuXG4vKiBTbGlkZXIgd3JhcHBlciAqL1xuLnRlc3RpbW9uaWFsc19fc2xpZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWF4LXdpZHRoOiA4MCU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi8qIEFsbCBzbGlkZXMgaGlkZGVuIGJ5IGRlZmF1bHQgKi9cbi50ZXN0aW1vbmlhbHNfX3NsaWRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBBY3RpdmUgc2xpZGU6IGJsb2NrICsgZmFkZS1pbiBhbmltYXRpb24gKi9cbi50ZXN0aW1vbmlhbHNfX3NsaWRlLmlzLWFjdGl2ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYW5pbWF0aW9uOiB0ZXN0aW1vbmlhbC1mYWRlaW4gMC40cyBlYXNlIGZvcndhcmRzO1xufVxuXG5Aa2V5ZnJhbWVzIHRlc3RpbW9uaWFsLWZhZGVpbiB7XG4gICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxNHB4KTsgfVxuICAgIHRvICAgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cbn1cblxuLnRlc3RpbW9uaWFsLWNhcmQge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHBhZGRpbmc6IDU2cHggNjRweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjtcbiAgICBtaW4taGVpZ2h0OiA0NjBweDtcbn1cblxuLnRlc3RpbW9uaWFsc19fc2xpZGUuaXMtYWN0aXZlLnRlc3RpbW9uaWFsLWNhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IG5vcm1hbDtcbn1cblxuLnRlc3RpbW9uaWFsLWNhcmRfX3F1b3RlIHAge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMS4zNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xufVxuXG4udGVzdGltb25pYWwtY2FyZF9fYXV0aG9yLWxpbmUge1xuICAgIHdpZHRoOiA0cHg7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EteWVsbG93KTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG59XG5cbi50ZXN0aW1vbmlhbC1jYXJkX19hdXRob3ItaW1nIHtcbiAgICB3aWR0aDogNjBweDtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIGJvcmRlcjogNHB4IHNvbGlkIHZhcigtLXRvc2EtdGVhbCk7XG59XG5cbi50ZXN0aW1vbmlhbC1jYXJkX19hdXRob3ItbmFtZSB7XG4gICAgY29sb3I6IHZhcigtLXRvc2EteWVsbG93KTtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbn1cblxuLnRlc3RpbW9uaWFsLWNhcmRfX2F1dGhvci1yb2xlIHtcbiAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjcpO1xufVxuXG4vKiDilIDilIAgR2V0IFN0YXJ0ZWQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uZ2V0LXN0YXJ0ZWQge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IC0yMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAtMjIwcHg7XG4gICAgei1pbmRleDogMjtcbn1cblxuLmdldC1zdGFydGVkX19jYXJkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLXllbGxvdyk7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtd2lkdGg6IDExNDBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICAvKiBDbGlwLXBhdGggY3V0IG9uIHRvcC1yaWdodCB0byBtYXRjaCBkZXNpZ24gc3R5bGUgKi9cbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCBjYWxjKDEwMCUgLSA2MHB4KSAwLCAxMDAlIDYwcHgsIDEwMCUgMTAwJSwgMCAxMDAlKTtcbn1cblxuLmdldC1zdGFydGVkX19jYXJkID4gLmNvbnRhaW5lci14bCB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgbWF4LXdpZHRoOiBub25lO1xufVxuXG4uZ2V0LXN0YXJ0ZWRfX2ltYWdlLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNDIwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmdldC1zdGFydGVkX19pbWFnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4vKiBCbG9nIHBhZ2UgdmFyaWFudDogaW1hZ2Ugc3RyZXRjaGVzIHRvIHRoZSBib3R0b20gb2YgdGhlIGNhcmQuICovXG4uZ2V0LXN0YXJ0ZWQtLWJsb2cgLmdldC1zdGFydGVkX19pbWFnZS13cmFwcGVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMDtcbn1cbi5nZXQtc3RhcnRlZC0tYmxvZyAuZ2V0LXN0YXJ0ZWRfX2ltYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBvYmplY3QtcG9zaXRpb246IGNlbnRlciBib3R0b207XG59XG5cbi5nZXQtc3RhcnRlZF9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS41cmVtLCAyLjh2dywgMi4yNXJlbSk7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cblxuLmdldC1zdGFydGVkX190ZXh0IHtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBvcGFjaXR5OiAwLjg1O1xuICAgIGZvbnQtc2l6ZTogMS4wNXJlbTtcbn1cblxuLyog4pSA4pSAIE5ld3NsZXR0ZXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4ubmV3c2xldHRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VhZjNmYjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b207XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmctdG9wOiAzMjBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiA4MHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5uZXdzbGV0dGVyX19pbnB1dC13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5uZXdzbGV0dGVyX19pbnB1dC1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMTZweDtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG59XG5cbi5uZXdzbGV0dGVyX19pbnB1dCB7XG4gICAgcGFkZGluZzogMTZweCAxNnB4IDE2cHggNDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgaGVpZ2h0OiA1NnB4O1xufVxuXG4ubmV3c2xldHRlcl9fc2VsZWN0IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBoZWlnaHQ6IDU2cHg7XG59XG5cbi5uZXdzbGV0dGVyX19pbnB1dDpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMC4ycmVtIHJnYmEoMjQxLCA3MywgMTYsIDAuMTUpO1xufVxuXG4ubmV3c2xldHRlcl9fbXVsdGlzZWxlY3Qge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5uZXdzbGV0dGVyX19tdWx0aXNlbGVjdC10cmlnZ2VyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogOHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNTZweDtcbiAgICBwYWRkaW5nOiAxNnB4IDE2cHggMTZweCA0OHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBjb2xvcjogIzZjNzU3ZDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5uZXdzbGV0dGVyX19tdWx0aXNlbGVjdC10cmlnZ2VyW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwLjJyZW0gcmdiYSgyNDEsIDczLCAxNiwgMC4xNSk7XG59XG4ubmV3c2xldHRlcl9fbXVsdGlzZWxlY3QtbGFiZWwge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5uZXdzbGV0dGVyX19tdWx0aXNlbGVjdC1sYWJlbC5oYXMtc2VsZWN0aW9uIHtcbiAgICBjb2xvcjogIzIxMjUyOTtcbn1cbi5uZXdzbGV0dGVyX19tdWx0aXNlbGVjdC1jYXJldCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7XG59XG4ubmV3c2xldHRlcl9fbXVsdGlzZWxlY3QtdHJpZ2dlclthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSAubmV3c2xldHRlcl9fbXVsdGlzZWxlY3QtY2FyZXQge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG59XG4ubmV3c2xldHRlcl9fbXVsdGlzZWxlY3QtcGFuZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB6LWluZGV4OiAyMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDI4cHggcmdiYSgyMCwgMzAsIDYwLCAwLjE1KTtcbiAgICBwYWRkaW5nOiA4cHggMDtcbn1cbi5uZXdzbGV0dGVyX19tdWx0aXNlbGVjdC1vcHRpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgY29sb3I6ICMyMTI1Mjk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuLm5ld3NsZXR0ZXJfX211bHRpc2VsZWN0LW9wdGlvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjdmYztcbn1cbi5uZXdzbGV0dGVyX19tdWx0aXNlbGVjdC1vcHRpb24gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgYWNjZW50LWNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuLm5ld3NsZXR0ZXJfX2Vycm9yIHtcbiAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0MSwgNzMsIDE2LCAwLjEpO1xuICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGNvbG9yOiAjOGE0YjFhO1xuICAgIGZvbnQtc2l6ZTogMC45MnJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbn1cbi5uZXdzbGV0dGVyX19zdWNjZXNzIHtcbiAgICBwYWRkaW5nOiAxNHB4IDE4cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjAsIDMwLCA2MCwgMC4xMik7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qIOKUgOKUgCBGb290ZXIg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uZm9vdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjMWExYTJlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4uZm9vdGVyOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDIxcHg7XG4gICAgbGVmdDogMDtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvdmVjdG9yLWZvb3Rlci5wbmcnKSBuby1yZXBlYXQgbGVmdCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDA7XG59XG5cbi5mb290ZXIgPiAuY29udGFpbmVyLXhsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbn1cblxuXG4uZm9vdGVyX19saW5rcyBhOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgIWltcG9ydGFudDtcbn1cblxuLmZvb3Rlcl9fc29jaWFsLWJ0biB7XG4gICAgd2lkdGg6IDQ0cHg7XG4gICAgaGVpZ2h0OiA0NHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgY2FsYygxMDAlIC0gMTJweCkgMCwgMTAwJSAxMnB4LCAxMDAlIDEwMCUsIDAgMTAwJSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjA4KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycztcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLmZvb3Rlcl9fc29jaWFsLWJ0bjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjE4KTtcbiAgICBjb2xvcjogI2ZmZjtcbn1cblxuLmZvb3Rlcl9faGVhZGluZy1kb3RzIHNwYW4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogNnB4O1xuICAgIGhlaWdodDogNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG59XG5cbi8qIOKUgOKUgCBSZXNwb25zaXZlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gICAgLmhlcm8ge1xuICAgICAgICBtaW4taGVpZ2h0OiA2MHZoO1xuICAgIH1cblxuICAgIC5oZXJvX19iZzo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwyNTUsMjU1LDAuOTUpIDAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuODUpIDYwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjUpIDEwMCUpO1xuICAgIH1cblxuICAgIC5jZXJ0LW9mZmVyaW5nc19fc2hhcGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5jZXJ0LW9mZmVyaW5nc19fY2FyZCB7XG4gICAgICAgIHBhZGRpbmc6IDMycHg7XG4gICAgfVxuXG4gICAgLmdldC1zdGFydGVkX19pbWFnZS13cmFwcGVyIHtcbiAgICAgICAgbWluLWhlaWdodDogMjUwcHg7XG4gICAgfVxufVxuXG4vKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgIENFUlRJRklDQVRJT05TIFBBR0VcbiAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuXG4vKiBDZXJ0IEhlcm8gKi9cbi5jZXJ0LWhlcm8ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiA5NnB4IDAgMTYwcHg7XG59XG4uY2VydC1oZXJvX19iZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIHotaW5kZXg6IDE7XG59XG4uY2VydC1oZXJvX19iZy1pbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBvYmplY3QtcG9zaXRpb246IGNlbnRlciA4OSU7XG59XG4uY2VydC1oZXJvX19iZzo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC45MikgMCUsIHJnYmEoMjU1LDI1NSwyNTUsMC43KSA0MCUsIHJnYmEoMjU1LDI1NSwyNTUsMCkgNjUlKTtcbn1cbi5jZXJ0LWhlcm9fX3JvdyB7XG4gICAgbWluLWhlaWdodDogNjB2aDtcbn1cbi5jZXJ0LWhlcm9fX3RpdGxlIHtcbiAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDR2dywgMy4yNXJlbSk7XG4gICAgY29sb3I6ICMxYTFhMmU7XG59XG4uY2VydC1oZXJvX19zdWJ0aXRsZSB7XG4gICAgY29sb3I6ICMyMjI7XG4gICAgbWF4LXdpZHRoOiA1NDBweDtcbn1cblxuLyogQ2VydCBVbmlxdWUgU2VjdGlvbiAqL1xuLmNlcnQtdW5pcXVlIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbi5jZXJ0LXVuaXF1ZV9fY2FyZCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgY2FsYygxMDAlIC0gODBweCkgMCwgMTAwJSA4MHB4LCAxMDAlIDEwMCUsIDAgMTAwJSk7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4uY2VydC11bmlxdWVfX2NhcmQtaW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCBjYWxjKDEwMCUgLSA3OHB4KSAwLCAxMDAlIDc4cHgsIDEwMCUgMTAwJSwgMCAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kOiAjRURFRUZCO1xuICAgIHBhZGRpbmc6IDcycHggNjRweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmNlcnQtdW5pcXVlX192ZWN0b3Ige1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMzQwcHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi10b3A6IDMycHg7XG4gICAgb3BhY2l0eTogMC44NTtcbn1cbi5jZXJ0LXVuaXF1ZV9faXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZzogMjBweCAwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDY5LCA2OSwgMjE5LCAwLjIpO1xufVxuLmNlcnQtdW5pcXVlX19pdGVtcyAuY2VydC11bmlxdWVfX2l0ZW06Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgcGFkZGluZy10b3A6IDA7XG59XG4uY2VydC11bmlxdWVfX2ljb24ge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cbi5jZXJ0LXVuaXF1ZV9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xufVxuLmNlcnQtdW5pcXVlX19kZXNjIHtcbiAgICBjb2xvcjogIzMzMztcbiAgICBsaW5lLWhlaWdodDogMS41NTtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG59XG5cbi8qIDUgU3RlcHMgcGlsbCB0aXRsZSAqL1xuLmNlcnQtdW5pcXVlX19zdGVwcyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmNlcnQtc3RlcHNfX3RpdGxlLXBpbGwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgcGFkZGluZzogMTBweCAzNnB4O1xuICAgIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKSAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgbWFyZ2luOiAzMnB4IDAgNDBweDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xufVxuLmNlcnQtdW5pcXVlX19pdGVtcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMzJweDtcbn1cbi5jZXJ0LXVuaXF1ZV9faXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDIwcHg7XG59XG4uY2VydC11bmlxdWVfX2ljb24ge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHdpZHRoOiA2NHB4O1xuICAgIGhlaWdodDogNjRweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG59XG4uY2VydC11bmlxdWVfX2JvZHkge1xuICAgIGZsZXg6IDE7XG59XG4uY2VydC11bmlxdWVfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLmNlcnQtdW5pcXVlX19kZXNjIHtcbiAgICBjb2xvcjogIzMzMztcbiAgICBsaW5lLWhlaWdodDogMS42O1xufVxuXG4vKiBDZXJ0IFN0ZXAgKGltYWdlLWJhc2VkKSAqL1xuLmNlcnQtc3RlcF9faW1nIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiBhdXRvO1xufVxuLmNlcnQtc3RlcF9fZGVzYyB7XG4gICAgbWFyZ2luOiAxLjI1cmVtIDAgMDtcbiAgICBjb2xvcjogIzRhNGE1NTtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41NTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMCAuMjVyZW07XG59XG5cbi8qIENlcnQgT2ZmZXJpbmdzIFNlY3Rpb24gKi9cbi5jZXJ0LW9mZmVyaW5nc19fdGFicyB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4MHB4O1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuLmNlcnQtb2ZmZXJpbmdzX190YWJzIC5uYXYtaXRlbSB7XG4gICAgZmxleDogMTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uY2VydC1vZmZlcmluZ3NfX3RhYnMgLm5hdi1saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBnYXA6IDhweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNik7XG4gICAgY29sb3I6ICM3Nzc7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBwYWRkaW5nOiAxNnB4IDI4cHg7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjJzLCBib3JkZXItY29sb3IgMC4ycywgYm94LXNoYWRvdyAwLjJzO1xufVxuLmNlcnQtb2ZmZXJpbmdzX190YWJzIC5uYXYtbGluay5hY3RpdmUge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMCwgMCwgMCwgMC4xMCk7XG59XG4uY2VydC1vZmZlcmluZ3NfX3RhYi1sb2dvIHtcbiAgICBoZWlnaHQ6IDU1cHg7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG4uY2VydC1vZmZlcmluZ3NfX3RhYi10YWdsaW5lIHtcbiAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjNTU1O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xufVxuLmNlcnQtb2ZmZXJpbmdzX190YWItY2hldnJvbiB7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGNvbG9yOiAjOWFhMGI1O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xufVxuLmNlcnQtb2ZmZXJpbmdzX190YWJzIC5uYXYtbGluay5hY3RpdmUgLmNlcnQtb2ZmZXJpbmdzX190YWItY2hldnJvbiB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmNlcnQtb2ZmZXJpbmdzX190YWJzIC5uYXYtbGluay5hY3RpdmU6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgYm90dG9tOiAtMjhweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgYm9yZGVyLWxlZnQ6IDEzcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiAxM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3A6IDE1cHggc29saWQgI2ZmZjtcbn1cbi5jZXJ0LW9mZmVyaW5nc19fbW9ja3VwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODgpO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGJveC1zaGFkb3c6IDAgMjBweCA2MHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiAzMnB4O1xufVxuLmNlcnQtb2ZmZXJpbmdzX19tb2NrdXAtaGVhZGVyIHtcbiAgICBwYWRkaW5nOiA4cHggOHB4IDIwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbi5jZXJ0LW9mZmVyaW5nc19fbW9ja3VwLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgY29sb3I6ICMxYTFhMmU7XG59XG4uY2VydC1vZmZlcmluZ3NfX21vY2t1cC1jb250ZW50IHtcbiAgICBwYWRkaW5nOiAyNHB4IDMycHggMzJweDtcbn1cbi5jZXJ0LW9mZmVyaW5nc19fYXBwLWljb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgIHBhZGRpbmc6IDE2cHggMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjRDlEOUQ5MzM7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI0Q5RDlEOTtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogIzFhMWExYTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycywgYm94LXNoYWRvdyAwLjJzLCBib3JkZXItY29sb3IgMC4ycywgYmFja2dyb3VuZC1jb2xvciAwLjJzO1xufVxuLmNlcnQtb2ZmZXJpbmdzX19hcHAtaWNvbjpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggcmdiYSg2OSwgNjksIDIxOSwgMC4wOCk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xufVxuLmNlcnQtb2ZmZXJpbmdzX19hcHAtaWNvbiBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiA3NHB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG4uY2VydC1vZmZlcmluZ3NfX2FwcC1pY29uLS1idW5kbGUge1xuICAgIHBhZGRpbmc6IDhweDtcbn1cbi5jZXJ0LW9mZmVyaW5nc19fYXBwLWljb24tLWJ1bmRsZSBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuLmNlcnQtb2ZmZXJpbmdzX19hcHAtbmFtZSB7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI1O1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cblxuLyogQ2VydCBTdGVwcyAqL1xuLmNlcnQtc3RlcHMge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmNWY1ZmYgMCUsICNlOGYwZmYgMTAwJSk7XG59XG4uY2VydC1zdGVwc19fdGl0bGUtcGlsbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgICBwYWRkaW5nOiAxMnB4IDQ4cHg7XG4gICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgbWFyZ2luLWJvdHRvbTogNDhweDtcbn1cbi5jZXJ0LXN0ZXAge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jZXJ0LXN0ZXBfX2NoYXJ0IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cbi5jZXJ0LXN0ZXBfX2xldmVsIHtcbiAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YwZjBmMDtcbn1cbi5jZXJ0LXN0ZXBfX2xldmVsLS1hY3RpdmUge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5jZXJ0LXN0ZXBfX251bWJlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMzJweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG59XG4uY2VydC1zdGVwX19uYW1lIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbn1cbi5jZXJ0LXN0ZXBfX3N1YiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJhY2tncm91bmQ6ICMzMzM7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAwLjdyZW07XG4gICAgcGFkZGluZzogMnB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuLmNlcnQtc3RlcF9fc2NvcmUge1xuICAgIHBhZGRpbmc6IDRweCA4cHg7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjBmMGYwO1xufVxuLmNlcnQtc3RlcF9fc2NvcmUtLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS15ZWxsb3cpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi8qIENlcnQgQ2F0YWxvZyAvIE9mZmVyaW5ncyBUYWJzICovXG4uY2VydC1jYXRhbG9nIHtcbiAgICBiYWNrZ3JvdW5kOiAjZThmNGY4O1xufVxuLmNlcnQtY2F0YWxvZ19fdGFicyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbi5jZXJ0LWNhdGFsb2dfX3RhYiB7XG4gICAgZmxleDogMTtcbiAgICBwYWRkaW5nOiAxNnB4IDI0cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICM5OTk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzO1xuICAgIG9wYWNpdHk6IDAuNTtcbn1cbi5jZXJ0LWNhdGFsb2dfX3RhYi0tYWN0aXZlLFxuLmNlcnQtY2F0YWxvZ19fdGFiOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYm94LXNoYWRvdzogMCAtMnB4IDhweCByZ2JhKDAsMCwwLDAuMDUpO1xufVxuLmNlcnQtY2F0YWxvZ19fdGFiIGltZyB7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG4uY2VydC1jYXRhbG9nX19icm93c2VyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMCAxMnB4IDEycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3gtc2hhZG93OiAwIDhweCAzMnB4IHJnYmEoMCwwLDAsMC4wOCk7XG59XG4uY2VydC1jYXRhbG9nX19icm93c2VyLWJhciB7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbiAgICBwYWRkaW5nOiAxMnB4IDIwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcbn1cbi5jZXJ0LWNhdGFsb2dfX2Jyb3dzZXItZG90IHtcbiAgICB3aWR0aDogMTJweDtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICNkZGQ7XG59XG4uY2VydC1jYXRhbG9nX19icm93c2VyLXVybCB7XG4gICAgZmxleDogMTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBwYWRkaW5nOiA2cHggMTZweDtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICBjb2xvcjogIzY2Njtcbn1cbi5jZXJ0LWNhdGFsb2dfX2FwcC1pY29uIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjlmOWY5O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzLCBib3gtc2hhZG93IDAuMnM7XG59XG4uY2VydC1jYXRhbG9nX19hcHAtaWNvbjpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLDAsMCwwLjA4KTtcbn1cbi5jZXJ0LWNhdGFsb2dfX2FwcC1pY29uIGltZyB7XG4gICAgd2lkdGg6IDU2cHg7XG4gICAgaGVpZ2h0OiA1NnB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLmNlcnQtY2F0YWxvZ19fYXBwLWljb24gcCB7XG4gICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBtYXJnaW46IDA7XG59XG5cbi8qIENlcnQgQnVuZGxlcyAqL1xuLmNlcnQtYnVuZGxlcyB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5jZXJ0LWJ1bmRsZXNfX2lubmVyIHtcbiAgICBwYWRkaW5nOiAyNHB4IDQ4cHg7XG59XG4uY2VydC1idW5kbGVzX19pbnRybyB7XG4gICAgbWF4LXdpZHRoOiA4NjBweDtcbiAgICBjb2xvcjogIzMzMztcbiAgICBsaW5lLWhlaWdodDogMS42O1xufVxuLmNlcnQtYnVuZGxlc19fZ3JhcGhpYyB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBwYWRkaW5nOiA0OHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbn1cbi5jZXJ0LWJ1bmRsZXNfX2dyYXBoaWMgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG59XG4uY2VydC1idW5kbGVzX19jcmVkbHkge1xuICAgIG1heC13aWR0aDogNzgwcHg7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cbi5jZXJ0LWJ1bmRsZXNfX2NyZWRseSBhIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xufVxuLmNlcnQtYnVuZGxlc19fbWF0cml4LWltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbn1cblxuLyogQ2VydCBFbnRyaWVzIChpbmRpdmlkdWFsIGNlcnRpZmljYXRpb25zKSAqL1xuLmNlcnQtZW50cmllcyB7XG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvYnVuZGxlcy9iZy0wMS5qcGcnKSBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xufVxuLmNlcnQtZW50cmllcyAuY29udGFpbmVyLXhsIHtcbiAgICBtYXgtd2lkdGg6IDE0NDBweDtcbn1cbi5jZXJ0LWVudHJ5IHtcbiAgICBtYXJnaW4tYm90dG9tOiA0OHB4O1xuICAgIGJveC1zaGFkb3c6IDAgNDNweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG4uY2VydC1lbnRyeTpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLmNlcnQtZW50cnlfX2lubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGdhcDogODBweDtcbn1cbi5jZXJ0LWVudHJ5LS1yZXZlcnNlIC5jZXJ0LWVudHJ5X19pbm5lciB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xufVxuXG4vKiBDZXJ0IFJlYWR5IChhdWRpZW5jZXMpICovXG4uY2VydC1yZWFkeV9fZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZTU7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5jZXJ0LXJlYWR5X19jYXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogMzJweCAyNHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjZGNlNTtcbn1cbi5jZXJ0LXJlYWR5X19jYXJkOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1yaWdodDogbm9uZTtcbn1cbi5jZXJ0LXJlYWR5X19jYXJkLS1oaWdobGlnaHQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EteWVsbG93KTtcbn1cbi5jZXJ0LXJlYWR5X19pY29uIHtcbiAgICB3aWR0aDogNjRweDtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuLmNlcnQtcmVhZHlfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG59XG4uY2VydC1yZWFkeV9fdGV4dCB7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgZm9udC1zaXplOiAwLjkyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGZsZXg6IDE7XG59XG4uY2VydC1yZWFkeV9fbGluayB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIG1hcmdpbi10b3A6IDI0cHg7XG59XG4uY2VydC1yZWFkeV9fY2FyZC0taGlnaGxpZ2h0IC5jZXJ0LXJlYWR5X19saW5rIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbn1cbi5jZXJ0LXJlYWR5X19hcnJvdyB7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi8qIENlcnQgVGVzdGltb25pYWwgKi9cbi5jZXJ0LXRlc3RpbW9uaWFsIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogIzAwNTM1NjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmctdG9wOiAxMjBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjgwcHg7XG59XG4uY2VydC10ZXN0aW1vbmlhbF9fdmVjdG9yIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uY2VydC10ZXN0aW1vbmlhbF9fdmVjdG9yLS1sZWZ0IHsgbGVmdDogMDsgfVxuLmNlcnQtdGVzdGltb25pYWxfX3ZlY3Rvci0tcmlnaHQgeyByaWdodDogMDsgfVxuLmNlcnQtdGVzdGltb25pYWxfX3F1b3RlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWF4LXdpZHRoOiAxMDQwcHg7XG4gICAgbWFyZ2luOiA4MHB4IGF1dG87XG4gICAgcGFkZGluZzogNzJweCA4MHB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMS4zMTI1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY1O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSk7XG4gICAgYm9yZGVyLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwyNTUsMjU1LDAuOTUpIDAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuNSkgNjAlLCByZ2JhKDI1NSwyNTUsMjU1LDApIDEwMCUpIDE7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG4uY2VydC10ZXN0aW1vbmlhbF9fcXVvdGUtLXdpdGgtcGhvdG8ge1xuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xufVxuLmNlcnQtdGVzdGltb25pYWxfX3Bob3RvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogODBweDtcbiAgICBoZWlnaHQ6IDgwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG8gMjRweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgYm9yZGVyOiAzcHggc29saWQgIzA1Njc2YTtcbiAgICBiYWNrZ3JvdW5kOiAjMDU2NzZhO1xufVxuLmNlcnQtdGVzdGltb25pYWxfX3RleHQge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi5jZXJ0LXRlc3RpbW9uaWFsX19mb290ZXIge1xuICAgIG1hcmdpbi10b3A6IDhweDtcbn1cbi5jZXJ0LXRlc3RpbW9uaWFsX19hdXRob3Ige1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLXllbGxvdyk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuLmNlcnQtdGVzdGltb25pYWxfX3JvbGUge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAgIC5jZXJ0LXJlYWR5X19ncmlkIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICB9XG4gICAgLmNlcnQtcmVhZHlfX2NhcmQ6bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICB9XG4gICAgLmNlcnQtcmVhZHlfX2NhcmQ6bnRoLWNoaWxkKC1uKzIpIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZTU7XG4gICAgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gICAgLmNlcnQtcmVhZHlfX2dyaWQge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB9XG4gICAgLmNlcnQtcmVhZHlfX2NhcmQge1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2U1O1xuICAgIH1cbiAgICAuY2VydC1yZWFkeV9fY2FyZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG59XG4uY2VydC1lbnRyeV9fYmFkZ2UtY29sIHtcbiAgICBmbGV4OiAwIDAgNTAwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDQ4cHg7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgY2FsYygxMDAlIC0gNTZweCkgMCwgMTAwJSA1NnB4LCAxMDAlIDEwMCUsIDAgMTAwJSk7XG59XG4uY2VydC1lbnRyeS0tcmV2ZXJzZSAuY2VydC1lbnRyeV9fYmFkZ2UtY29sIHtcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oNTZweCAwLCAxMDAlIDAsIDEwMCUgMTAwJSwgMCAxMDAlLCAwIDU2cHgpO1xufVxuLmNlcnQtZW50cnlfX2JhZGdlLWxpbmsge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogMDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjE1cyBlYXNlLCBvcGFjaXR5IC4xNXMgZWFzZTtcbn1cbi5jZXJ0LWVudHJ5X19iYWRnZS1saW5rOmhvdmVyLFxuLmNlcnQtZW50cnlfX2JhZGdlLWxpbms6Zm9jdXMtdmlzaWJsZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICAgIG9wYWNpdHk6IDAuOTI7XG59XG4uY2VydC1lbnRyeV9fYmFkZ2UtbGluayAuY2VydC1lbnRyeV9fYmFkZ2Uge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuLmNlcnQtZW50cnlfX2JhZGdlIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgd2lkdGg6IDQwMHB4O1xuICAgIGhlaWdodDogYXV0bztcbn1cbi5jZXJ0LWVudHJ5X19ib2R5IHtcbiAgICBmbGV4OiAxO1xuICAgIG1heC13aWR0aDogNjIwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmctcmlnaHQ6IDU2cHg7XG59XG4uY2VydC1lbnRyeS0tcmV2ZXJzZSAuY2VydC1lbnRyeV9fYm9keSB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDU2cHg7XG59XG4uY2VydC1lbnRyeV9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGNvbG9yOiAjMWExYTJlO1xufVxuLmNlcnQtZW50cnlfX2Rlc2NyaXB0aW9uIHtcbiAgICBjb2xvcjogIzMzMztcbiAgICBsaW5lLWhlaWdodDogMS41NTtcbn1cbi5jZXJ0LWVudHJ5X19sZXZlbHMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG59XG4uY2VydC1lbnRyeV9fbGV2ZWxzIGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbi5jZXJ0LWVudHJ5X19sZXZlbHMgbGk6OmJlZm9yZSB7XG4gICAgY29udGVudDogJ+KAuic7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAtMnB4O1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAgIC5jZXJ0LWVudHJ5IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgICB9XG4gICAgLmNlcnQtZW50cnlfX2lubmVyLFxuICAgIC5jZXJ0LWVudHJ5LS1yZXZlcnNlIC5jZXJ0LWVudHJ5X19pbm5lciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMjRweDtcbiAgICB9XG4gICAgLmNlcnQtZW50cnlfX2JhZGdlLWNvbCB7XG4gICAgICAgIGZsZXg6IGluaXRpYWw7XG4gICAgICAgIHBhZGRpbmc6IDMycHg7XG4gICAgfVxuICAgIC5jZXJ0LWVudHJ5X19ib2R5IHtcbiAgICAgICAgZmxleDogaW5pdGlhbDtcbiAgICB9XG59XG5cbi8qIENlcnQgQmFkZ2VzICovXG4uY2VydC1iYWRnZXMge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG59XG4uY2VydC1iYWRnZXNfX2ltZyB7XG4gICAgbWF4LXdpZHRoOiAyODBweDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICBTSEFSRUQgUEFHRSBIRVJPIChhbGwgaW5uZXIgcGFnZXMpXG4gICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbi5wYWdlLWhlcm8ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtaW4taGVpZ2h0OiA1MHZoO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnBhZ2UtaGVyby0tbGlnaHQge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmMGY3ZjcgMCUsICNlOGYwZmYgNTAlLCAjZjVmNWZmIDEwMCUpO1xufVxuLnBhZ2UtaGVyby0tdGVhbCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS10ZWFsKTtcbiAgICBjb2xvcjogI2ZmZjtcbn1cbi5wYWdlLWhlcm8tLWJsdWUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgY29sb3I6ICNmZmY7XG59XG4ucGFnZS1oZXJvX190aXRsZSB7XG4gICAgZm9udC1zaXplOiBjbGFtcCgycmVtLCA0dncsIDNyZW0pO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4ucGFnZS1oZXJvX19zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjE1cmVtO1xuICAgIG1heC13aWR0aDogNjAwcHg7XG59XG5cbi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgRVhQRVJUSVNFIFBBR0VcbiAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuLmV4cGVydGlzZS1mZWF0dXJlcyB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2Y4ZjVmZiAwJSwgI2ZmZiAxMDAlKTtcbn1cbi5leHBlcnRpc2UtY2FyZCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiAzMnB4IDI0cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycywgYm94LXNoYWRvdyAwLjJzO1xufVxuLmV4cGVydGlzZS1jYXJkOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTRweCk7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDAsMCwwLDAuMDgpO1xufVxuLmV4cGVydGlzZS1jYXJkX19pY29uIHtcbiAgICB3aWR0aDogNjRweDtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgbWFyZ2luOiAwIGF1dG8gMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZThmMGZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xufVxuLmV4cGVydGlzZS1jYXJkX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuLmV4cGVydGlzZS1zdGF0cyB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1ibHVlKTtcbn1cbi5leHBlcnRpc2Utc3RhdCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDI0cHg7XG59XG4uZXhwZXJ0aXNlLXN0YXRfX251bWJlciB7XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS15ZWxsb3cpO1xufVxuLmV4cGVydGlzZS1zdGF0X19sYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgb3BhY2l0eTogMC44NTtcbn1cbi5leHBlcnRpc2UtdGFibGUge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG4uZXhwZXJ0aXNlLXRhYmxlIHRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cbi5leHBlcnRpc2UtdGFibGUgdGgge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuLmV4cGVydGlzZS10YWJsZSB0ZCB7XG4gICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xufVxuXG4vKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgIERFTElWRVIgVE9TQSBQQUdFXG4gICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbi5kZWxpdmVyLWJlbmVmaXRzIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjBmN2Y3IDAlLCAjZmZmIDEwMCUpO1xufVxuLmRlbGl2ZXItY2FyZCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiAzMnB4IDI0cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycztcbn1cbi5kZWxpdmVyLWNhcmQ6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMCwwLDAsMC4wOCk7XG59XG4uZGVsaXZlci1jYXJkX19pY29uIHtcbiAgICB3aWR0aDogNjRweDtcbiAgICBoZWlnaHQ6IDY0cHg7XG4gICAgbWFyZ2luOiAwIGF1dG8gMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmM2UwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG59XG4uZGVsaXZlci1jYXJkX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuLmRlbGl2ZXItc3RlcHMge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG4uZGVsaXZlci1zdGVwX19udW1iZXIge1xuICAgIHdpZHRoOiA2NHB4O1xuICAgIGhlaWdodDogNjRweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW46IDAgYXV0byAxNnB4O1xufVxuLmRlbGl2ZXItdGllcnMge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmNWY1ZmYgMCUsICNmZmYgMTAwJSk7XG59XG4uZGVsaXZlci10aWVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNlZWU7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nOiA0MHB4IDI0cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycztcbn1cbi5kZWxpdmVyLXRpZXI6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbn1cbi5kZWxpdmVyLXRpZXItLWdvbGQge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdG9zYS15ZWxsb3cpO1xufVxuLmRlbGl2ZXItdGllci0tcGxhdGludW0ge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjhmNWZmLCAjZmZmKTtcbn1cbi5kZWxpdmVyLXRpZXJfX2JhZGdlIHtcbiAgICB3aWR0aDogODBweDtcbiAgICBoZWlnaHQ6IDgwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG8gMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbn1cbi5kZWxpdmVyLXRpZXJfX2JhZGdlLS1zaWx2ZXIgeyBiYWNrZ3JvdW5kOiAjZTBlMGUwOyBjb2xvcjogIzY2NjsgfVxuLmRlbGl2ZXItdGllcl9fYmFkZ2UtLWdvbGQgeyBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLXllbGxvdyk7IGNvbG9yOiAjMzMzOyB9XG4uZGVsaXZlci10aWVyX19iYWRnZS0tcGxhdGludW0geyBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLWJsdWUpOyBjb2xvcjogI2ZmZjsgfVxuXG4vKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgIFRBS0UgRVhBTSBQQUdFXG4gICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cbi5leGFtLXBhdGhzIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjBmN2Y3IDAlLCAjZmZmIDEwMCUpO1xufVxuLmV4YW0tcGF0aC1jYXJkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNlZWU7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nOiA0OHB4IDMycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycywgYm9yZGVyLWNvbG9yIDAuMnM7XG59XG4uZXhhbS1wYXRoLWNhcmQ6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG59XG4uZXhhbS1wYXRoLWNhcmRfX2ljb24ge1xuICAgIHdpZHRoOiA4MHB4O1xuICAgIGhlaWdodDogODBweDtcbiAgICBtYXJnaW46IDAgYXV0byAyNHB4O1xuICAgIGJhY2tncm91bmQ6ICNlOGYwZmY7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG59XG4uZXhhbS1leHBlY3Qge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG4uZXhhbS1leHBlY3RfX2l0ZW0ge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nOiAzMnB4IDI0cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbn1cbi5leGFtLWV4cGVjdF9faWNvbiB7XG4gICAgd2lkdGg6IDU2cHg7XG4gICAgaGVpZ2h0OiA1NnB4O1xuICAgIG1hcmdpbjogMCBhdXRvIDE2cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG59XG5cbi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgUkVNT1RFIEVYQU0gUEFHRVxuICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG4ucmVtb3RlLXJlcXVpcmVtZW50cyB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2YwZjdmNyAwJSwgI2ZmZiAxMDAlKTtcbn1cbi5yZW1vdGUtcmVxLWNhcmQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmc6IDMycHggMjRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuLnJlbW90ZS1yZXEtY2FyZF9faWNvbiB7XG4gICAgd2lkdGg6IDY0cHg7XG4gICAgaGVpZ2h0OiA2NHB4O1xuICAgIG1hcmdpbjogMCBhdXRvIDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2U4ZjBmZjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbn1cbi5yZW1vdGUtcHJvY2VzcyB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5yZW1vdGUtc3RlcCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5yZW1vdGUtc3RlcF9fbnVtYmVyIHtcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtYXJnaW46IDAgYXV0byAxNnB4O1xufVxuLnJlbW90ZS1mYXEge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmOGY1ZmYgMCUsICNmZmYgMTAwJSk7XG59XG4ucmVtb3RlLWZhcSAuYWNjb3JkaW9uLWJ1dHRvbjpub3QoLmNvbGxhcHNlZCkge1xuICAgIGJhY2tncm91bmQ6ICNmMGYwZmY7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG59XG5cbi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgRklORCBDRU5URVIgUEFHRVxuICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG4uY2VudGVyLXNlYXJjaCB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2YwZjdmNyAwJSwgI2ZmZiAxMDAlKTtcbn1cbi5jZW50ZXItc2VhcmNoX19mb3JtIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgcGFkZGluZzogMzJweDtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwwLDAsMC4wNik7XG59XG4uY2VudGVyLW1hcCB7XG4gICAgYmFja2dyb3VuZDogI2U4ZjRmODtcbiAgICBtaW4taGVpZ2h0OiA0MDBweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogIzY2NjtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG59XG4uY2VudGVyLWNhcmQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgcGFkZGluZzogMjRweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG4uY2VudGVyLWNhcmRfX25hbWUge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG59XG5cbi8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgQ0hFQ0sgU0NPUkUgUEFHRVxuICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG4uc2NvcmUtbG9va3VwIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjBmN2Y3IDAlLCAjZmZmIDEwMCUpO1xufVxuLnNjb3JlLWxvb2t1cF9fZm9ybSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmc6IDQwcHg7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsMCwwLDAuMDYpO1xuICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG4uc2NvcmUtc2NhbGUge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG4uc2NvcmUtbGV2ZWwge1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiAyNHB4IDIwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbn1cbi5zY29yZS1sZXZlbC0tYmVnaW5uZXIgeyBiYWNrZ3JvdW5kOiAjZjBmMGYwOyB9XG4uc2NvcmUtbGV2ZWwtLWJhc2ljIHsgYmFja2dyb3VuZDogI2UzZjJmZDsgfVxuLnNjb3JlLWxldmVsLS1wcm9kdWN0aXZlIHsgYmFja2dyb3VuZDogI2U4ZjVlOTsgfVxuLnNjb3JlLWxldmVsLS1hZHZhbmNlZCB7IGJhY2tncm91bmQ6ICNmZmYzZTA7IH1cbi5zY29yZS1sZXZlbC0tZXhwZXJ0IHsgYmFja2dyb3VuZDogI2ZjZTRlYzsgfVxuLnNjb3JlLWxldmVsX19yYW5nZSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzFhMWEyZTtcbn1cbi5zY29yZS1sZXZlbF9fbmFtZSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbn1cblxuLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICBSRVNQT05TSVZFIE9WRVJSSURFU1xuICAg4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQICovXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgICAuaGVybyB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDYwdmg7XG4gICAgfVxuICAgIC5oZXJvX19iZzo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwyNTUsMjU1LDAuOTUpIDAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuODUpIDYwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjUpIDEwMCUpO1xuICAgIH1cbiAgICAuY2VydC1oZXJvIHtcbiAgICAgICAgbWluLWhlaWdodDogNjB2aDtcbiAgICB9XG4gICAgLmNlcnQtaGVyb19fYmc6OmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsMjU1LDI1NSwwLjk1KSAwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjg1KSA2MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC41KSAxMDAlKTtcbiAgICB9XG4gICAgLmNlcnQtdW5pcXVlX19jYXJkIHtcbiAgICAgICAgcGFkZGluZzogMzJweDtcbiAgICAgICAgY2xpcC1wYXRoOiBub25lO1xuICAgIH1cbiAgICAuY2VydC1vZmZlcmluZ3NfX3NoYXBlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLndoeS1jYXJkIHtcbiAgICAgICAgcGFkZGluZzogMjRweCAxNnB4O1xuICAgIH1cbiAgICAudGVzdGltb25pYWwtY2FyZCB7XG4gICAgICAgIHBhZGRpbmc6IDMycHggMjRweDtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG4gICAgLmNlcnQtc3RlcHNfX3RpdGxlLXBpbGwge1xuICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMzJweDtcbiAgICB9XG4gICAgLmNlcnQtY2F0YWxvZ19fdGFicyB7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICB9XG4gICAgLmNlcnQtY2F0YWxvZ19fdGFiIHtcbiAgICAgICAgZmxleDogMSAxIDUwJTtcbiAgICB9XG5cbiAgICAvKiBOYXZiYXIgbW9iaWxlOiByZWxlYXNlIG1pbi1oZWlnaHQgc28gY29sbGFwc2VkIG1lbnUgY2FuIGV4cGFuZCAqL1xuICAgIC5uYXZiYXIgLmNvbnRhaW5lci14bCxcbiAgICAubmF2YmFyICNtZW51YmFyTmF2LFxuICAgIC5uYXZiYXIgLm5hdmJhci1uYXYge1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgIH1cbiAgICAubmF2YmFyICNtZW51YmFyTmF2IHtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgIH1cbiAgICAubmF2YmFyIC5uYXZiYXItbmF2IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIC5uYXZiYXIgLm5hdmJhci1uYXYgLm5hdi1saW5rLFxuICAgIC5uYXZiYXIgLm5hdmJhci1uYXYgLm1lbnViYXJfX2xpbmsge1xuICAgICAgICBwYWRkaW5nOiAwLjc1cmVtIDA7XG4gICAgfVxuICAgIC5tZW51YmFyX19pdGVtOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIC5uYXZiYXIgLm1lbnViYXJfX2Ryb3Bkb3duIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuICAgIC5uYXZiYXIgLm1lbnViYXJfX2Ryb3Bkb3duOjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAubmF2YmFyIC5tZW51YmFyX19pdGVtLS1hY2NvdW50ID4gLmRyb3Bkb3duLW1lbnUtZW5kIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgIH1cblxuICAgIC8qIFRlc3RpbW9uaWFsczogc3RhY2sgY29sdW1ucywgZHJvcCBiYWNrZ3JvdW5kIHNwbGl0ICYgZGVjb3JhdGl2ZSB2ZWN0b3JzICovXG4gICAgLnRlc3RpbW9uaWFscyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICMwNTY3NkE7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxODBweCAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAudGVzdGltb25pYWxzOjpiZWZvcmUsXG4gICAgLnRlc3RpbW9uaWFsczo6YWZ0ZXIsXG4gICAgLnRlc3RpbW9uaWFscyA+IC5jb250YWluZXIteGw6OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgLnRlc3RpbW9uaWFsc19fbGVmdCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG4gICAgLnRlc3RpbW9uaWFsc19fc2xpZGVyIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gICAgLnRlc3RpbW9uaWFsLWNhcmQuaXMtYWN0aXZlOjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC8qIEdldCBTdGFydGVkOiByZWR1Y2Ugb3ZlcmxhcCAqL1xuICAgIC5nZXQtc3RhcnRlZCxcbiAgICAuaGUtY3RhIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTEyMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMTIwcHg7XG4gICAgfVxuICAgIC5zdC1jdGEge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMTIwcHg7XG4gICAgfVxuICAgIC5nZXQtc3RhcnRlZF9fY2FyZCxcbiAgICAuaGUtY3RhX19jYXJkLFxuICAgIC5zdC1jdGFfX2NhcmQge1xuICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCBjYWxjKDEwMCUgLSAzMHB4KSAwLCAxMDAlIDMwcHgsIDEwMCUgMTAwJSwgMCAxMDAlKTtcbiAgICB9XG4gICAgLmdldC1zdGFydGVkX19pbWFnZS13cmFwcGVyLFxuICAgIC5zdC1jdGFfX2ltYWdlLXdyYXBwZXIge1xuICAgICAgICBtaW4taGVpZ2h0OiAyODBweDtcbiAgICB9XG5cbiAgICAvKiBOZXdzbGV0dGVyOiByZWR1Y2UgdG9wIHBhZGRpbmcgKi9cbiAgICAubmV3c2xldHRlciB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyMDBweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8qIEZvb3Rlcjogc2hyaW5rIGRlY29yYXRpdmUgdmVjdG9yICovXG4gICAgLmZvb3Rlcjo6YmVmb3JlIHtcbiAgICAgICAgd2lkdGg6IDE4MHB4O1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxufVxuXG4vKiBNb2JpbGUgKDw3NjhweCkgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAgIC50ZXN0aW1vbmlhbHMge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTQwcHggIWltcG9ydGFudDtcbiAgICB9XG4gICAgLnRlc3RpbW9uaWFsc19fbGVmdCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICB9XG4gICAgLnRlc3RpbW9uaWFsLWNhcmQge1xuICAgICAgICBwYWRkaW5nOiAyNHB4IDIwcHg7XG4gICAgfVxuICAgIC50ZXN0aW1vbmlhbC1jYXJkX19xdW90ZSBwIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgIH1cblxuICAgIC5nZXQtc3RhcnRlZCxcbiAgICAuaGUtY3RhIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTgwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC04MHB4O1xuICAgIH1cbiAgICAuc3QtY3RhIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTgwcHg7XG4gICAgfVxuICAgIC5nZXQtc3RhcnRlZF9faW1hZ2Utd3JhcHBlcixcbiAgICAuc3QtY3RhX19pbWFnZS13cmFwcGVyIHtcbiAgICAgICAgbWluLWhlaWdodDogMjIwcHg7XG4gICAgfVxuXG4gICAgLm5ld3NsZXR0ZXIge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTQwcHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuZm9vdGVyOjpiZWZvcmUge1xuICAgICAgICB3aWR0aDogMTIwcHg7XG4gICAgICAgIG9wYWNpdHk6IDAuMztcbiAgICB9XG59XG5cbi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgU3ViamVjdCBEZXRhaWxzIHBhZ2VcbiAgIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLnN1YmplY3QtZGV0YWlscyB7IGJhY2tncm91bmQ6ICNmZmY7IH1cblxuLyogUmVkdWNlIHRoZSBuZXdzbGV0dGVyIHRvcCBwYWRkaW5nIG9uIHRoZSBzdWJqZWN0IGRldGFpbHMgcGFnZSBvbmx5LiAqL1xuLnN1YmplY3QtZGV0YWlscyB+IC5uZXdzbGV0dGVyIHtcbiAgICBwYWRkaW5nLXRvcDogMjBweCAhaW1wb3J0YW50O1xufVxuXG4uc3ViamVjdC1kZXRhaWxzX19zaWRlYmFyIHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHRvcDogODhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAyMHB4O1xufVxuXG4uc3ViamVjdC1kZXRhaWxzX19zY2hlZHVsZS1jdGEgeyBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OyB9XG5cbi5zdWJqZWN0LWRldGFpbHNfX2NhcmQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxOHB4IHJnYmEoMzAsIDMwLCA2MCwgMC4wNik7XG4gICAgcGFkZGluZzogMjJweCAyNHB4O1xufVxuXG4uc3ViamVjdC1kZXRhaWxzX19jYXJkLXRpdGxlIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTNlNGVmO1xufVxuXG4uc3ViamVjdC1kZXRhaWxzX19idWxsZXQtbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX2J1bGxldC1saXN0IGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogNnB4IDAgNnB4IDIwcHg7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xufVxuLnN1YmplY3QtZGV0YWlsc19fYnVsbGV0LWxpc3QgbGk6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCLigLpcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDVweDtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuXG4uc3ViamVjdC1kZXRhaWxzX19sYW5nLXBpbGxzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX2xhbmctcGlsbCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q5ZGFlNjtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgcGFkZGluZzogNnB4IDE0cHg7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblxuLnN1YmplY3QtZGV0YWlsc19fcmVzb3VyY2UtbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX3Jlc291cmNlLWxpc3QgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiA2cHggMCA2cHggMjBweDtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG59XG4uc3ViamVjdC1kZXRhaWxzX19yZXNvdXJjZS1saXN0IGxpOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi4oC6XCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiA1cHg7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xufVxuLnN1YmplY3QtZGV0YWlsc19fcmVzb3VyY2UtbGluayB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDNweDtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX3Jlc291cmNlLWxpbms6aG92ZXIge1xuICAgIGNvbG9yOiAjZDYzZDA5O1xufVxuXG4uc3ViamVjdC1kZXRhaWxzX19tYWluIHtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5zdWJqZWN0LWRldGFpbHMgPiAuY29udGFpbmVyLXhsLnB0LTUge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG59XG4uc3ViamVjdC1kZXRhaWxzID4gLmNvbnRhaW5lci14bC5wYi01IHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1sZWZ0OiBjbGFtcCgxNnB4LCA0dncsIDY0cHgpO1xuICAgIHBhZGRpbmctcmlnaHQ6IGNsYW1wKDE2cHgsIDR2dywgNjRweCk7XG59XG4uc3ViamVjdC1kZXRhaWxzX19oZXJvIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLWxpZ2h0LWJsdWUpIHVybCgnLi4vaW1hZ2VzL3N0YXRlcy9CYW5uZXIuanBnJykgY2VudGVyL2NvdmVyIG5vLXJlcGVhdDtcbiAgICBwYWRkaW5nOiA0OHB4IDI0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNDhweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAvKiBDb250YWluIHRoZSA6OmJlZm9yZSBibGVuZCBzbyBpdCBvbmx5IHJlY29sb3JzIHRoZSBiYW5uZXIgYXJ0d29yay4gKi9cbiAgICBpc29sYXRpb246IGlzb2xhdGU7XG59XG4vKiBSZWNvbG9ycyB0aGUgc2hhcmVkIGJhbm5lciB3aXRoIHRoZSBzdWJqZWN0J3MgZ2FtbWUgY29sb3IgKHNldCBpbmxpbmUgYXNcbiAgIC0tZ2FtbWUtY29sb3IsIHNhbWUgcGFsZXR0ZSBhcyB0aGUgY2VydGlmaWNhdGlvbnMtcGFnZSB0YWJzKS4gKi9cbi5zdWJqZWN0LWRldGFpbHNfX2hlcm86OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWdhbW1lLWNvbG9yLCB0cmFuc3BhcmVudCk7XG4gICAgbWl4LWJsZW5kLW1vZGU6IGNvbG9yO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnN1YmplY3QtZGV0YWlsc19faGVyby10aXRsZSB7XG4gICAgZm9udC1zaXplOiBjbGFtcCgycmVtLCA0dncsIDNyZW0pO1xuICAgIGNvbG9yOiAjMWExYTFhO1xuICAgIG1hcmdpbjogMDtcbn1cbi8qIExvbmcgcHJvZHVjdCBuYW1lcyBtdXN0IHN0aWxsIGZpdCB0aGUgcGFpbnRlZCBiYW5uZXIgYm94LiAqL1xuLnN1YmplY3QtZGV0YWlsc19faGVyby10aXRsZS0tbG9uZyB7XG4gICAgZm9udC1zaXplOiBjbGFtcCgxLjVyZW0sIDIuOHZ3LCAyLjJyZW0pO1xuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG59XG4uc3ViamVjdC1kZXRhaWxzX19oZXJvLXRpbGUge1xuICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xufVxuLnN1YmplY3QtZGV0YWlsc19faGVyby1pY29uIHtcbiAgICB3aWR0aDogMTYwcHg7XG4gICAgaGVpZ2h0OiAxNjBweDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4uc3ViamVjdC1kZXRhaWxzX19oZXJvLWljb24gaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4vKiBEZXNrdG9wOiBsb2NrIHRoZSBoZXJvIHRvIHRoZSBiYW5uZXIncyBhc3BlY3QgcmF0aW8gc28gYGNvdmVyYCBmaWxscyBpdFxuICAgZXhhY3RseSAobm8gZGlzdG9ydGlvbiwgbm8gbGV0dGVyYm94KS4gVGhlIHNxdWFyZSBpbiB0aGUgYmFubmVyIHRoZW4gc2l0c1xuICAgYXQgYSBmaXhlZCBmcmFjdGlvbiwgc28gdGhlIGxvZ28gY2FuIGJlIGNlbnRlcmVkIG9uIGl0IGF0IGFueSB3aWR0aC4gKi9cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAgIC5zdWJqZWN0LWRldGFpbHNfX2hlcm8ge1xuICAgICAgICBhc3BlY3QtcmF0aW86IDE5MjAgLyA1OTI7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgIC5zdWJqZWN0LWRldGFpbHNfX2hlcm8tdGl0bGUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDMuNSU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIG1heC13aWR0aDogNDYlO1xuICAgIH1cbiAgICAuc3ViamVjdC1kZXRhaWxzX19oZXJvLXRpbGUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDc4JTtcbiAgICAgICAgdG9wOiA1MiU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxufVxuXG4uc3ViamVjdC1kZXRhaWxzX19zZWN0aW9uIHsgbWFyZ2luLWJvdHRvbTogNTZweDsgfVxuXG4uc3ViamVjdC1kZXRhaWxzX19zZWN0aW9uLXRpdGxlIHtcbiAgICBmb250LXNpemU6IGNsYW1wKDEuNnJlbSwgMi42dncsIDIuMnJlbSk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzFhMWExYTtcbiAgICBtYXJnaW46IDAgMCAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG5cbi5zdWJqZWN0LWRldGFpbHNfX3N1Yi10aXRsZSB7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAyOHB4IDAgMTJweDtcbn1cblxuLnN1YmplY3QtZGV0YWlsc19faW5saW5lLWxpbmsge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAzcHg7XG59XG4uc3ViamVjdC1kZXRhaWxzX19pbmxpbmUtbGluazpob3ZlciB7XG4gICAgY29sb3I6ICNkNjNkMDk7XG59XG5cbi5zdWJqZWN0LWRldGFpbHNfX3NhbXBsZS13cmFwLFxuLnN1YmplY3QtZGV0YWlsc19fY2hhcnQtd3JhcCB7XG4gICAgbWFyZ2luOiAyNHB4IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE4cHggcmdiYSgzMCwgMzAsIDYwLCAwLjA2KTtcbiAgICBwYWRkaW5nOiAxNnB4O1xufVxuLnN1YmplY3QtZGV0YWlsc19fc2FtcGxlLWltZyxcbi5zdWJqZWN0LWRldGFpbHNfX2NoYXJ0IHsgd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsgfVxuXG4uc3ViamVjdC1kZXRhaWxzX19kb21haW5zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xufVxuLnN1YmplY3QtZGV0YWlsc19fZG9tYWluLWNhcmQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA5NnB4IDFmcjtcbiAgICBnYXA6IDE4cHg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE4cHggcmdiYSgzMCwgMzAsIDYwLCAwLjA2KTtcbiAgICBwYWRkaW5nOiAyMHB4IDI0cHg7XG59XG4uc3ViamVjdC1kZXRhaWxzX19kb21haW4taWNvbiB7XG4gICAgd2lkdGg6IDY0cHg7XG4gICAgaGVpZ2h0OiA2NHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX2RvbWFpbi1pY29uIGltZyB7IG1heC13aWR0aDogMTAwJTsgbWF4LWhlaWdodDogMTAwJTsgfVxuLnN1YmplY3QtZGV0YWlsc19fZG9tYWluLXRpdGxlIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBmb250LXNpemU6IDEuMTVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW46IDAgMCA4cHg7XG59XG5cbi5zdWJqZWN0LWRldGFpbHNfX3RhYmxlLXdyYXAge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2M5Y2JlMDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xufVxuLnN1YmplY3QtZGV0YWlsc19fc2NvcmUtdGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgbWluLXdpZHRoOiA1MjBweDtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX3Njb3JlLXRhYmxlIHRoLFxuLnN1YmplY3QtZGV0YWlsc19fc2NvcmUtdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDE4cHggMjRweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjYzljYmUwO1xuICAgIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICNjOWNiZTA7XG59XG4uc3ViamVjdC1kZXRhaWxzX19zY29yZS10YWJsZSB0aDpsYXN0LWNoaWxkLFxuLnN1YmplY3QtZGV0YWlsc19fc2NvcmUtdGFibGUgdGQ6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiBub25lO1xufVxuLnN1YmplY3QtZGV0YWlsc19fc2NvcmUtdGFibGUgdGJvZHkgdHI6bGFzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX3Njb3JlLXRhYmxlIHRoZWFkIHRoIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG4uc3ViamVjdC1kZXRhaWxzX19zY29yZS10YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB0ZCB7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjdmZDtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX3Njb3JlLXRhYmxlIC5zdWJqZWN0LWRldGFpbHNfX2NyZWRseS1saW5rLFxuYS5zdWJqZWN0LWRldGFpbHNfX2NyZWRseS1saW5rIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX3Njb3JlLXRhYmxlIC5zdWJqZWN0LWRldGFpbHNfX2NyZWRseS1saW5rOmhvdmVyLFxuYS5zdWJqZWN0LWRldGFpbHNfX2NyZWRseS1saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogI2Q2M2QwOSAhaW1wb3J0YW50O1xufVxuXG4uc3ViamVjdC1kZXRhaWxzX19wcmVwLWxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE4cHg7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xufVxuLnN1YmplY3QtZGV0YWlsc19fcHJlcC1pdGVtIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNzJweCAxZnI7XG4gICAgZ2FwOiAyMHB4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxOHB4IHJnYmEoMzAsIDMwLCA2MCwgMC4wNik7XG4gICAgcGFkZGluZzogMjJweCAyNnB4O1xufVxuLnN1YmplY3QtZGV0YWlsc19fcHJlcC1pY29uIHtcbiAgICB3aWR0aDogNTZweDtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZWVmMGZiO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG4uc3ViamVjdC1kZXRhaWxzX19wcmVwLWljb24gdmlkZW8ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnN1YmplY3QtZGV0YWlsc19fcHJlcC1ib2R5IHsgbWluLXdpZHRoOiAwOyB9XG4uc3ViamVjdC1kZXRhaWxzX19wcmVwLXRpdGxlIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbjogMCAwIDhweDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xufVxuLnN1YmplY3QtZGV0YWlsc19fcHJlcC1kZXNjIHtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNTU7XG59XG4uc3ViamVjdC1kZXRhaWxzX19wcmVwLWRlc2MgcCB7IG1hcmdpbi1ib3R0b206IDAuNmVtOyB9XG4uc3ViamVjdC1kZXRhaWxzX19wcmVwLWRlc2MgcDpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4uc3ViamVjdC1kZXRhaWxzX19mbG93IHsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4uc3ViamVjdC1kZXRhaWxzX19mbG93IGltZyB7IG1heC13aWR0aDogMTAwJTsgaGVpZ2h0OiBhdXRvOyB9XG5cbi5zdWJqZWN0LWRldGFpbHNfX2J1bmRsZS1jYXJkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBwYWRkaW5nOiAzMnB4IDM2cHg7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBtYXgtd2lkdGg6IDUyMHB4O1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIGNhbGMoMTAwJSAtIDQwcHgpIDAsIDEwMCUgNDBweCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xufVxuLyogSW5uZXIgZmlsbCBpbnNldCBieSB0aGUgYm9yZGVyIHdpZHRoIOKAlCB0aGUgYmx1ZSBjYXJkIGJhY2tncm91bmQgc2hvd2luZ1xuICAgdGhyb3VnaCB0aGUgMnB4IGdhcCBpcyB0aGUgYm9yZGVyLCBhbmQgaXQgZm9sbG93cyB0aGUgZGlhZ29uYWwgY3V0IHRvby4gKi9cbi5zdWJqZWN0LWRldGFpbHNfX2J1bmRsZS1jYXJkOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAycHg7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjZmZjtcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCBjYWxjKDEwMCUgLSAzOHB4KSAwLCAxMDAlIDM4cHgsIDEwMCUgMTAwJSwgMCAxMDAlKTtcbiAgICB6LWluZGV4OiAwO1xufVxuLnN1YmplY3QtZGV0YWlsc19fYnVuZGxlLWNhcmQgPiAqIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX2J1bmRsZS1iYWRnZSB7XG4gICAgbWF4LXdpZHRoOiAxNjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuLnN1YmplY3QtZGV0YWlsc19fYnVuZGxlLWJhZGdlIGltZyB7IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IGF1dG87IH1cbi5zdWJqZWN0LWRldGFpbHNfX2J1bmRsZS10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjM1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgICBjb2xvcjogIzFhMWExYTtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX2J1bmRsZS1kZXNjIHsgbWFyZ2luLWJvdHRvbTogMjBweDsgfVxuXG4uc3ViamVjdC1kZXRhaWxzX19idW5kbGUtdGllcnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2Q0ZDZmMDtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX2J1bmRsZS10aWVyIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNzJweCAxZnI7XG4gICAgZ2FwOiAxNnB4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuLnN1YmplY3QtZGV0YWlsc19fYnVuZGxlLXRpZXItaWNvbiB7XG4gICAgd2lkdGg6IDU2cHg7XG4gICAgaGVpZ2h0OiA1NnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbn1cbi5zdWJqZWN0LWRldGFpbHNfX2J1bmRsZS10aWVyLWljb24gaW1nIHsgbWF4LXdpZHRoOiAxMDAlOyBtYXgtaGVpZ2h0OiAxMDAlOyB9XG4uc3ViamVjdC1kZXRhaWxzX19idW5kbGUtdGllci10aXRsZSB7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgZm9udC1zaXplOiAxLjA1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAwIDAgNHB4O1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgICAuc3ViamVjdC1kZXRhaWxzX19zaWRlYmFyIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgICB9XG4gICAgLnN1YmplY3QtZGV0YWlsc19faGVybyB7IHBhZGRpbmc6IDMycHggMjRweDsgfVxuICAgIC5zdWJqZWN0LWRldGFpbHNfX2hlcm8tdGlsZSB7IG1hcmdpbi10b3A6IDI0cHg7IH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gICAgLnN1YmplY3QtZGV0YWlsc19faGVybyB7IHBhZGRpbmc6IDI0cHggMThweDsgfVxuICAgIC5zdWJqZWN0LWRldGFpbHNfX2NhcmQgeyBwYWRkaW5nOiAxOHB4IDIwcHg7IH1cbiAgICAuc3ViamVjdC1kZXRhaWxzX19kb21haW4tY2FyZCB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgICAgICBwYWRkaW5nOiAxOHB4O1xuICAgIH1cbiAgICAuc3ViamVjdC1kZXRhaWxzX19kb21haW4taWNvbiB7XG4gICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgfVxuICAgIC5zdWJqZWN0LWRldGFpbHNfX2J1bmRsZS1jYXJkIHsgcGFkZGluZzogMjJweCAyMHB4OyB9XG4gICAgLnN1YmplY3QtZGV0YWlsc19fcHJlcC1pdGVtIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1NnB4IDFmcjtcbiAgICAgICAgZ2FwOiAxNHB4O1xuICAgICAgICBwYWRkaW5nOiAxOHB4IDIwcHg7XG4gICAgfVxuICAgIC5zdWJqZWN0LWRldGFpbHNfX3ByZXAtaWNvbiB7XG4gICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgfVxufVxuXG5cbi8qIOKUgOKUgCBIaWdoZXIgRWR1Y2F0aW9uIHBhZ2Ug4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG5cbi8qIEJhbm5lciAqL1xuLmhlLWJhbm5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNTkycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuLmhlLWJhbm5lcl9fYmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgb2JqZWN0LXBvc2l0aW9uOiByaWdodCBjZW50ZXI7XG59XG4uaGUtYmFubmVyX19iZy0tazEyIHtcbiAgICBvYmplY3QtcG9zaXRpb246IHJpZ2h0IDI3JTtcbn1cblxuLmhlLWJhbm5lcjo6YWZ0ZXIge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMC45MikgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41MykgNDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDY1JSk7XG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGluc2V0OiAwO1xufVxuXG4uaGUtYmFubmVyX19pbm5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgei1pbmRleDogMjtcbn1cbi5oZS1iYW5uZXJfX3RpdGxlIHtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBmb250LXNpemU6IGNsYW1wKDIuMjVyZW0sIDQuNXZ3LCAzLjVyZW0pO1xuICAgIG1heC13aWR0aDogNTQwcHg7XG59XG5cbi8qIFMxIERyaXZlIFN0dWRlbnQgU3VjY2VzcyAqL1xuLmhlLXMxIHtcbiAgICBwYWRkaW5nOiA4MHB4IDA7XG59XG4uaGUtczFfX21lZGlhIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uaGUtczFfX21lZGlhID4gaW1nIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHotaW5kZXg6IDE7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuLmhlLXMxX19tZWRpYTo6YmVmb3JlLFxuLmhlLXMxX19tZWRpYTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCAjYzRjNGM0IDJweCwgdHJhbnNwYXJlbnQgMi41cHgpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTRweCAxNHB4O1xuICAgIHotaW5kZXg6IDI7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uaGUtczFfX21lZGlhOjpiZWZvcmUge1xuICAgIHRvcDogLTI4cHg7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogNzBweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG59XG4uaGUtczFfX21lZGlhOjphZnRlciB7XG4gICAgYm90dG9tOiAtMzJweDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogNzBweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG59XG4uaGUtczFfX3Bob3RvIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHotaW5kZXg6IDE7XG59XG4uaGUtczFfX3ZlY3RvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTkxcHg7XG4gICAgbGVmdDogLTIzN3B4O1xuICAgIHdpZHRoOiAxMjQlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB6LWluZGV4OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmhlLXMxX190ZXh0IHtcbiAgICBjb2xvcjogIzMzMztcbiAgICBsaW5lLWhlaWdodDogMS42O1xufVxuXG4vKiBTMWIgU29sdmluZyBLZXkgQ2hhbGxlbmdlcyBpbiBLLTEyIEVkdWNhdGlvbiAqL1xuLmhlLXMxYiB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDgwcHggMCAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGNUZBRkM7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvd2hvd2VzZXJ2ZS9rMTIvc2hhcGUteWVsbG93LmpwZycpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmhlLXMxYiA+IC5jb250YWluZXIteGwgeyBwYWRkaW5nLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG4uaGUtczFiX19pbnRybyB7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBtYXgtd2lkdGg6IDg4MHB4O1xufVxuLmhlLXMxYl9fbWVkaWEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbi5oZS1zMWJfX2JveSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogNTIwcHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKiBTMiBXaHkgSEUgSW5zdGl0dXRpb25zIENob29zZSBUb3NhICovXG4uaGUtczIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNFNkYzRjQgMCUsICNGMkY4RjggMTAwJSk7XG4gICAgcGFkZGluZzogODBweCAwO1xufVxuLmhlLXMyX19tZWRpYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EtdGVhbCk7XG4gICAgcGFkZGluZzogMzBweCAzMHB4IDA7XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgY2FsYygxMDAlIC0gNTBweCkgMCwgMTAwJSA1MHB4LCAxMDAlIDEwMCUsIDAgMTAwJSk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5oZS1zMl9fdmVjdG9yIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIG9wYWNpdHk6IDAuNDU7XG4gICAgei1pbmRleDogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMCkgaW52ZXJ0KDEpOyAvKiB3aGl0ZSB0aW50IG92ZXIgdGVhbCBiZyAqL1xuICAgIG1peC1ibGVuZC1tb2RlOiBzb2Z0LWxpZ2h0O1xufVxuLmhlLXMyX19wb3J0cmFpdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB6LWluZGV4OiAxO1xufVxuXG4vKiBIZSBGZWF0dXJlcyAoaW1hZ2UgKyBjaGVja2xpc3QpIOKAlCB1c2VkIGluIFMyICovXG4uaGUtZmVhdHVyZXNfX2xpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG59XG4uaGUtZmVhdHVyZXNfX2l0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAyMHB4O1xuICAgIHBhZGRpbmc6IDE4cHggMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSg2OSwgNjksIDIxOSwgMC4xOCk7XG59XG4uaGUtZmVhdHVyZXNfX2xpc3QgLmhlLWZlYXR1cmVzX19pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICAgIHBhZGRpbmctdG9wOiAwO1xufVxuLmhlLWZlYXR1cmVzX19pY29uLXdyYXAge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDhweDtcbn1cbi5oZS1mZWF0dXJlc19faWNvbiB7XG4gICAgd2lkdGg6IDU2cHg7XG4gICAgaGVpZ2h0OiA1NnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5oZS1mZWF0dXJlc19fYmFyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBmaWx0ZXI6IGJsdXIoN3B4KTtcbn1cbi5oZS1mZWF0dXJlc19fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS4wNjI1cmVtO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbn1cbi5oZS1mZWF0dXJlc19fdGV4dCB7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTU7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xufVxuXG4vKiBTMyBLZXkgVG9zYSBEaWZmZXJlbnRpYXRvcnMgKi9cbi5oZS1zMyB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI0U2RjNGOCAwJSwgI0YyRjhGQiAxMDAlKTtcbiAgICBwYWRkaW5nOiA4MHB4IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4uaGUtczM6OmJlZm9yZSxcbi5oZS1zMzo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNTIsIDIyMSwgMjI5LCAwLjM1KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5oZS1zMzo6YmVmb3JlIHtcbiAgICB3aWR0aDogMjgwcHg7XG4gICAgaGVpZ2h0OiAyODBweDtcbiAgICBsZWZ0OiAtMTAwcHg7XG4gICAgdG9wOiAzMCU7XG59XG4uaGUtczM6OmFmdGVyIHtcbiAgICB3aWR0aDogMzIwcHg7XG4gICAgaGVpZ2h0OiAzMjBweDtcbiAgICByaWdodDogLTEyMHB4O1xuICAgIGJvdHRvbTogMTAlO1xufVxuLmhlLXMzX19jYXJkcyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDE7XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgICAuaGUtczNfX2NhcmRzIHtcbiAgICAgICAgLS1icy1ndXR0ZXIteDogMDtcbiAgICAgICAgLS1icy1ndXR0ZXIteTogMDtcbiAgICB9XG59XG4uaGUtczNfX2NhcmQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIHBhZGRpbmc6IDQwcHggMjhweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm94LXNoYWRvdzogMCAycHggMTZweCByZ2JhKDAsMCwwLDAuMDYpO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gICAgLmhlLXMzX19jYXJkIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgcGFkZGluZzogNDhweCA0MHB4O1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDU2LCA3MCwgMjE2LCAwLjIpO1xuICAgIH1cbiAgICAuaGUtczNfX2NhcmRzID4gKjpsYXN0LWNoaWxkIC5oZS1zM19fY2FyZCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICB9XG59XG4uaGUtczNfX2ljb24ge1xuICAgIHdpZHRoOiA2NHB4O1xuICAgIGhlaWdodDogNjRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG59XG4uaGUtczNfX2JhciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgZmlsdGVyOiBibHVyKDdweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMjhweDtcbn1cbi5oZS1zM19fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS4zNzVyZW07XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xufVxuLmhlLXMzX190ZXh0IHtcbiAgICBjb2xvcjogIzU1NTtcbiAgICBmb250LXNpemU6IDAuOTM3NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xufVxuXG4vKiBTNCBUdXJua2V5IENyZWRlbnRpYWxpbmcgU29sdXRpb24gKi9cbi5oZS1zNCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBwYWRkaW5nOiA4MHB4IDA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG4uaGUtczRfX3RpdGxlIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IGNsYW1wKDEuNzVyZW0sIDMuMnZ3LCAyLjVyZW0pO1xufVxuLmhlLXM0X190ZXh0IHtcbiAgICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjk1KTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xufVxuLmhlLXM0X19icm93c2VyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3gtc2hhZG93OiAwIDE2cHggNjBweCByZ2JhKDAsMCwwLDAuMik7XG59XG4uaGUtczRfX2Jyb3dzZXItYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmMGYwZjU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMGUwZTU7XG59XG4uaGUtczRfX2Jyb3dzZXItYmFyIHNwYW4ge1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogI2NjYztcbn1cbi5oZS1zNF9fYnJvd3Nlci1iYXIgc3BhbjpudGgtY2hpbGQoMSkgeyBiYWNrZ3JvdW5kOiAjZmY1ZjU2OyB9XG4uaGUtczRfX2Jyb3dzZXItYmFyIHNwYW46bnRoLWNoaWxkKDIpIHsgYmFja2dyb3VuZDogI2ZmYmQyZTsgfVxuLmhlLXM0X19icm93c2VyLWJhciBzcGFuOm50aC1jaGlsZCgzKSB7IGJhY2tncm91bmQ6ICMyN2M5M2Y7IH1cbi5oZS1zNF9fdXJsIHtcbiAgICBmbGV4OiAxO1xuICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBjb2xvcjogIzY2Njtcbn1cbi5oZS1zNF9fdmlkZW8ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMzYwcHg7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS15ZWxsb3cpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKiBTNSBXaHkgU3R1ZGVudHMvSW5zdHJ1Y3RvcnMgTG92ZSBUb3NhICovXG4uaGUtczUge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZmYgMCUsICNGMkY4RkIgMTAwJSk7XG4gICAgcGFkZGluZzogNjBweCAwO1xufVxuLmhlLXM1X19jYXJkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IDAgMTJweCA1MHB4IHJnYmEoMCwwLDAsMC4xMCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXgtaGVpZ2h0OiA3NzBweDtcbn1cbi5oZS1zNV9fbWVkaWEge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAyODBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA4MHB4O1xufVxuLmhlLXM1IC5mbGV4LXJvdy1yZXZlcnNlIC5oZS1zNV9fbWVkaWEge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDgwcHg7XG59XG4uaGUtczVfX21lZGlhIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuLmhlLXM1X19ib2R5IHtcbiAgICBwYWRkaW5nOiA0MHB4IDQ4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmhlLXM1X19ib2R5IC5jdGEtYnRuIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5cbi8qIOKUgOKUgCBCZWNvbWUgYSBUb3NhLUFwcHJvdmVkIFRlc3RpbmcgQ2VudGVyIChyZXVzYWJsZSBDVEEgYmFubmVyKSDilIDilIAgKi9cbi5jZXJ0LXRlc3RpbmctY2VudGVyIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EteWVsbG93KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmNlcnQtdGVzdGluZy1jZW50ZXIgPiAuY29udGFpbmVyLXhsIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG59XG4uY2VydC10ZXN0aW5nLWNlbnRlcl9fcm93IHtcbiAgICBtaW4taGVpZ2h0OiA2MjBweDtcbn1cbi5jZXJ0LXRlc3RpbmctY2VudGVyX19yb3cgPiBbY2xhc3MqPVwiY29sLVwiXSB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cbi5jZXJ0LXRlc3RpbmctY2VudGVyX19tZWRpYSB7XG4gICAgZmxleDogMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiA2MjBweDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltYWdlcy93aG93ZXNlcnZlL2FkdWx0LXdvcmtmb3JjZS9pbWFnZS13aXRoLWJnLmpwZycpIG5vLXJlcGVhdCBjZW50ZXIgYm90dG9tO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG59XG4uY2VydC10ZXN0aW5nLWNlbnRlcl9fYm9keSB7XG4gICAgcGFkZGluZzogNjBweCA5NnB4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG4uY2VydC10ZXN0aW5nLWNlbnRlcl9fYm9keSAuY3RhLWJ0biB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cbi5jZXJ0LXRlc3RpbmctY2VudGVyX190ZXh0IHtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGZvbnQtc2l6ZTogMS4wNjI1cmVtO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5jZXJ0LXRlc3RpbmctY2VudGVyX19yb3csXG4gICAgLmNlcnQtdGVzdGluZy1jZW50ZXJfX21lZGlhIHtcbiAgICAgICAgbWluLWhlaWdodDogNzIwcHg7XG4gICAgfVxuICAgIC5jZXJ0LXRlc3RpbmctY2VudGVyX19ib2R5IHtcbiAgICAgICAgcGFkZGluZzogMTAwcHggMzIwcHggMTAwcHggOTZweDtcbiAgICB9XG59XG4uaGUtczVfX3N1YnRpdGxlIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBmb250LXNpemU6IDEuMDYyNXJlbTtcbn1cbi5oZS1zNV9fdGV4dCB7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuLyogRkFRIG9uIGRhcmsgYmx1ZSAqL1xuLmZhcSB7XG4gICAgcGFkZGluZzogMDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLWJsdWUpO1xufVxuLmZhcV9fY2FyZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHBhZGRpbmc6IDgwcHggNDhweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5mYXFfX2FjY29yZGlvbiB7XG4gICAgbWF4LXdpZHRoOiA4ODBweDtcbiAgICBtYXJnaW46IDI0cHggYXV0byAwO1xufVxuLmZhcV9faXRlbSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIC8qIE92ZXJyaWRlIEJvb3RzdHJhcCdzIGFjY29yZGlvbiByYWRpdXMgdmFyaWFibGVzIOKAlCB0aGUgZGVmYXVsdFxuICAgICAgIDpmaXJzdC1vZi10eXBlIC8gOmxhc3Qtb2YtdHlwZSBydWxlcyByb3VuZCB0aGUgZmlyc3QgYW5kIGxhc3RcbiAgICAgICBidXR0b24gYnkgcmVhZGluZyB0aGVzZSBjdXN0b20gcHJvcGVydGllcy4gKi9cbiAgICAtLWJzLWFjY29yZGlvbi1ib3JkZXItcmFkaXVzOiAwO1xuICAgIC0tYnMtYWNjb3JkaW9uLWlubmVyLWJvcmRlci1yYWRpdXM6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cbi8qIEJvb3RzdHJhcCByZW1vdmVzIHRoZSB0b3AgYm9yZGVyIGZyb20gbm9uLWZpcnN0IGl0ZW1zIHRvIGF2b2lkIGRvdWJsZVxuICAgYm9yZGVycyB3aGVuIGl0ZW1zIHN0YWNrIOKAlCByZXN0b3JlIGl0IGJlY2F1c2Ugd2Ugd2FudCBlYWNoIGl0ZW1cbiAgIHZpc2libHkgZnJhbWVkLiAqL1xuLmZhcV9faXRlbTpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgI2ZmZjtcbn1cbi5mYXFfX2J1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgICBwYWRkaW5nOiAxOHB4IDI0cHg7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmZhcV9fYnV0dG9uOm5vdCguY29sbGFwc2VkKSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cbi5mYXFfX2J1dHRvbjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmZhcV9fYnV0dG9uOjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICBjb250ZW50OiBcIitcIjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzO1xufVxuLmZhcV9fYnV0dG9uOm5vdCguY29sbGFwc2VkKTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwi4oiSXCI7IC8qIFUrMjIxMiBtaW51cyBzaWduIOKAlCByZXBsYWNlcyB0aGUgKyB3aGVuIHRoZSBwYW5lbCBpcyBvcGVuICovXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLyoga2lsbCBCb290c3RyYXAncyBkZWZhdWx0IGNoZXZyb24gaWNvbiAqL1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbn1cbi5mYXFfX2JvZHkge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuODUpO1xuICAgIHBhZGRpbmc6IDAgMjRweCAxOHB4O1xufVxuLmZhcV9fYm9keSBwIHsgbWFyZ2luLWJvdHRvbTogMTJweDsgfVxuLmZhcV9fYm9keSBwOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG4uZmFxX19ib2R5IHVsIHsgbWFyZ2luOiA0cHggMCAxMnB4OyBwYWRkaW5nLWxlZnQ6IDIwcHg7IH1cbi5mYXFfX2JvZHkgbGkgeyBtYXJnaW4tYm90dG9tOiA2cHg7IH1cbi5mYXFfX2JvZHkgc3Ryb25nIHsgY29sb3I6ICNmZmY7IH1cbi5mYXFfX2JvZHkgYSB7IGNvbG9yOiAjZmZmOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuLmZhcV9fbGlua3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBwYWRkaW5nLXRvcDogMTRweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbn1cbi8qIFdoaXRlIG9uIHRoZSBkYXJrLWJsdWUgRkFRIGNhcmQgKHNjb3BlZCB0byBiZWF0IHRoZSBnZW5lcmljIGxpbmsgcnVsZSkuICovXG4uZmFxX19ib2R5IC5mYXFfX2xpbmsge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uZmFxX19ib2R5IC5mYXFfX2xpbms6aG92ZXIge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmZhcV9fYm9keSAuZmFxX19saW5rIC5iaSB7IGZvbnQtc2l6ZTogMC43OHJlbTsgfVxuXG4vKiBDVEEgUmVhZHkgdG8gRW1wb3dlciAqL1xuLmhlLWN0YSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLXRvcDogLTMyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IC0zMjBweDtcbiAgICB6LWluZGV4OiAyO1xufVxuLmhlLWN0YV9fY2FyZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS15ZWxsb3cpO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWF4LXdpZHRoOiAxMTQwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgY2FsYygxMDAlIC0gNjBweCkgMCwgMTAwJSA2MHB4LCAxMDAlIDEwMCUsIDAgMTAwJSk7XG59XG4uaGUtY3RhX19pbWcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogNDgwcHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuLmhlLWN0YV9fYm9keSB7XG4gICAgcGFkZGluZzogMjRweCA0OHB4IDI0cHggMDtcbn1cbi5oZS1jdGFfX3RleHQge1xuICAgIGNvbG9yOiAjMzMzO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgZm9udC1zaXplOiAxcmVtO1xufVxuXG4vKiDilIDilIAgNDA0IC8gRXJyb3IgcGFnZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5lcnJvci1wYWdlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjdmOGZlO1xuICAgIHBhZGRpbmc6IDk2cHggMCAxMjBweDtcbiAgICBtaW4taGVpZ2h0OiA3MHZoO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5lcnJvci1wYWdlX19jb2RlIHtcbiAgICBmb250LXNpemU6IGNsYW1wKDZyZW0sIDE2dncsIDEycmVtKTtcbiAgICBmb250LXdlaWdodDogOTAwO1xuICAgIGxpbmUtaGVpZ2h0OiAwLjk7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC0wLjA0ZW07XG4gICAgbWFyZ2luOiAwIDAgMXJlbTtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHZhcigtLXRvc2Etb3JhbmdlKSAwJSwgI2ZmYjM4YSAxMDAlKTtcbiAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmVycm9yLXBhZ2VfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IGNsYW1wKDEuNzVyZW0sIDMuNXZ3LCAyLjVyZW0pO1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG59XG4uZXJyb3ItcGFnZV9fdGV4dCB7XG4gICAgY29sb3I6ICM0YTRhNTU7XG4gICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBtYXgtd2lkdGg6IDU4MHB4O1xufVxuLmVycm9yLXBhZ2VfX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxLjVyZW07XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmVycm9yLXBhZ2VfX2xpbmsge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuLmVycm9yLXBhZ2VfX2xpbms6aG92ZXIge1xuICAgIGNvbG9yOiAjMmQyZGI4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4vKiDilIDilIAgQmxvZyBwYWdlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmJsb2ctaGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjdmOGZlO1xufVxuLmJsb2ctaGVhZGVyX190aXRsZSB7XG4gICAgZm9udC1zaXplOiBjbGFtcCgyLjI1cmVtLCA0dncsIDNyZW0pO1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xufVxuLmJsb2ctaGVhZGVyX190ZXh0IHtcbiAgICBjb2xvcjogIzRhNGE1NTtcbiAgICBmb250LXNpemU6IDEuMDYyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIG1heC13aWR0aDogNzIwcHg7XG59XG5cbi8qIOKUgOKUgCBTZXJ2ZXItcmVuZGVyZWQgZ3JpZCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5ibG9nLWdyaWQtc2VjdGlvbiB7XG4gICAgYmFja2dyb3VuZDogI2Y3ZjhmZSB1cmwoJy4uL2ltYWdlcy90b3NhZGlmZmVyZW5jZS9zY29yaW5nLWJnLmpwZycpIGJvdHRvbS9jb3ZlciBuby1yZXBlYXQ7XG59XG4uYmxvZy1ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgZ2FwOiAycmVtIDJyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAgIC5ibG9nLWdyaWQgeyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpOyB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc1Ljk4cHgpIHtcbiAgICAuYmxvZy1ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH1cbn1cblxuLmJsb2ctY2FyZCB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLmJsb2ctY2FyZF9fbWVkaWEge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogI2YxZjNmODtcbiAgICAvKiBUb3AtcmlnaHQgY29ybmVyIGNsaXBwZWQgZGlhZ29uYWxseSAobm8gcm91bmRlZCByYWRpdXMpLiAqL1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIGNhbGMoMTAwJSAtIDMycHgpIDAsIDEwMCUgMzJweCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xufVxuLmJsb2ctY2FyZF9faW1nIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cbi5ibG9nLWNhcmRfX2JvZHkge1xuICAgIHBhZGRpbmc6IDEuMjVyZW0gMS4yNXJlbSAxLjVyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogLjc1cmVtO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xufVxuLmJsb2ctY2FyZF9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS4xNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4zNTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBmbGV4OiAxIDEgYXV0bztcbn1cbi5ibG9nLWNhcmRfX3RpdGxlIGEge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5ibG9nLWNhcmRfX3RpdGxlIGE6aG92ZXIge1xuICAgIGNvbG9yOiAjRjE0OTEwO1xufVxuLmJsb2ctY2FyZF9fbW9yZSB7XG4gICAgY29sb3I6ICNGMTQ5MTA7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgZm9udC1zaXplOiAuOTVyZW07XG4gICAgbWFyZ2luLXRvcDogLjI1cmVtO1xufVxuLmJsb2ctY2FyZF9fbW9yZTpob3ZlciB7XG4gICAgY29sb3I6ICNjODM5MGE7XG59XG5cbi8qIOKUgOKUgCBDYXJkIG1ldGEgKGF1dGhvciDigKIgcmVhZCB0aW1lKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5kaWItbWV0YS10ZXh0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogLjM1cmVtIC41cmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogIzZiNzI4MDtcbiAgICBmb250LXNpemU6IC44NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xufVxuLmRpYi1tZXRhLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uZGliLW1ldGEtaXRlbSArIC5kaWItbWV0YS1pdGVtOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi4oCiXCI7XG4gICAgbWFyZ2luLXJpZ2h0OiAuNXJlbTtcbiAgICBjb2xvcjogI2I4YmNjNztcbn1cbi5kaWItbWV0YS1hdXRob3Ige1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMxYTFhMmU7XG59XG4uZGliLW1ldGEtcmVhZHRpbWUge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyog4pSA4pSAIFBhZ2luYXRpb24g4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uYmxvZy1wYWdpbmF0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAxcmVtO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW46IDIuNXJlbSAwIDFyZW07XG59XG4uYmxvZy1wYWdpbmF0aW9uX19wYWdlcyB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogLjVyZW07XG59XG4uYmxvZy1wYWdpbmF0aW9uX19idG4sXG4uYmxvZy1wYWdpbmF0aW9uX19wYWdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1pbi13aWR0aDogMi43NXJlbTtcbiAgICBoZWlnaHQ6IDIuNzVyZW07XG4gICAgcGFkZGluZzogMCAuOXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4ycywgY29sb3IgLjJzLCBib3JkZXItY29sb3IgLjJzO1xufVxuLmJsb2ctcGFnaW5hdGlvbl9fYnRuLS1uYXYge1xuICAgIGJhY2tncm91bmQ6ICNGMTQ5MTA7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogMCAxLjZyZW07XG4gICAgZ2FwOiAuNXJlbTtcbiAgICBtaW4td2lkdGg6IDlyZW07XG59XG4uYmxvZy1wYWdpbmF0aW9uX19idG4tLXByZXYge1xuICAgIC8qIHRvcC1sZWZ0IGNvcm5lciBjdXQgZGlhZ29uYWxseSAoYm90dG9tIGVkZ2VzIHN0YXkgc3F1YXJlKSAqL1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigxNHB4IDAsIDEwMCUgMCwgMTAwJSAxMDAlLCAwIDEwMCUsIDAgMTRweCk7XG59XG4uYmxvZy1wYWdpbmF0aW9uX19idG4tLW5leHQge1xuICAgIC8qIHRvcC1yaWdodCBjb3JuZXIgY3V0IGRpYWdvbmFsbHkgKGJvdHRvbSBlZGdlcyBzdGF5IHNxdWFyZSkgKi9cbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCBjYWxjKDEwMCUgLSAxNHB4KSAwLCAxMDAlIDE0cHgsIDEwMCUgMTAwJSwgMCAxMDAlKTtcbn1cbi5ibG9nLXBhZ2luYXRpb25fX2J0bi0tbmF2OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjYzgzOTBhO1xuICAgIGNvbG9yOiAjZmZmO1xufVxuLmJsb2ctcGFnaW5hdGlvbl9fYnRuLmlzLWRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjFmMWYxO1xuICAgIGNvbG9yOiAjYWFhO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmJsb2ctcGFnaW5hdGlvbl9fcGFnZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSg2OSwgNjksIDIxOSwgMC4xKTsgLyogdmFyKC0tdG9zYS1ibHVlKSBAIDEwJSAqL1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uYmxvZy1wYWdpbmF0aW9uX19wYWdlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDY5LCA2OSwgMjE5LCAwLjE4KTtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLmJsb2ctcGFnaW5hdGlvbl9fcGFnZS5pcy1hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLyogU2luZ2xlLXBvc3QgZW1iZWQgd3JhcHBlciAoa2VwdCBmb3IgP3A9PHNsdWc+KSAqL1xuLmJsb2ctZmVlZCB7XG4gICAgYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvdG9zYWRpZmZlcmVuY2Uvc2NvcmluZy1iZy5qcGcnKSBjZW50ZXIvY292ZXIgbm8tcmVwZWF0O1xuICAgIG1pbi1oZWlnaHQ6IDQ4MHB4O1xufVxuLmJsb2ctZmVlZF9fY29udGFpbmVyIHtcbiAgICBtYXgtd2lkdGg6IDExMDBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbn1cbi5ibG9nLWZlZWRfX2xvYWRpbmcge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xufVxuXG4vKiDilIDilIAgU2luZ2xlIHBvc3QgKHNlcnZlci1yZW5kZXJlZCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uZGliLXBvc3Qge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDQ4cHggY2xhbXAoMS4yNXJlbSwgNHZ3LCAzLjVyZW0pO1xuICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG59XG4uZGliLXBvc3QtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS43NXJlbSwgMy41dncsIDIuNXJlbSk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIG1hcmdpbjogMCAwIDFyZW07XG59XG4uZGliLXBvc3QgLmRpYi1tZXRhLXRleHQge1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbn1cbi5kaWItcG9zdC1mZWF0dXJlZC1pbWFnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMCAwIDJyZW07XG59XG4uZGliLWF1ZGlvIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHBhZGRpbmc6IC44NXJlbSAxLjI1cmVtO1xuICAgIG1hcmdpbjogMCAwIDJyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMXJlbTtcbiAgICBib3gtc2hhZG93OiAwIDZweCAyMHB4IHJnYmEoMjAsIDMwLCA2MCwgMC4wOCk7XG59XG4uZGliLWF1ZGlvIGF1ZGlvIHtcbiAgICBkaXNwbGF5OiBub25lOyAvKiBoaWRkZW4g4oCUIHJlcGxhY2VkIGJ5IHRoZSBjdXN0b20gY29udHJvbHMgYmVsb3cgKi9cbn1cbi5kaWItYXVkaW9fX2J0biB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmRpYi1hdWRpb19fYnRuOmhvdmVyIHtcbiAgICBjb2xvcjogIzAwMDtcbn1cbi5kaWItYXVkaW9fX3BsYXkge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgZm9udC1zaXplOiAxLjg1cmVtO1xufVxuLmRpYi1hdWRpb19fcGxheTpob3ZlciB7XG4gICAgY29sb3I6ICNjODM5MGE7XG59XG4uZGliLWF1ZGlvX190aW1lIHtcbiAgICBmb250LXZhcmlhbnQtbnVtZXJpYzogdGFidWxhci1udW1zO1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtc2l6ZTogLjlyZW07XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuLmRpYi1hdWRpb19fcHJvZ3Jlc3Mge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIGhlaWdodDogNnB4O1xuICAgIGJhY2tncm91bmQ6ICNEQkVERjU7IC8qIGxpZ2h0IGN5YW4gdHJhY2sgKi9cbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgbWluLXdpZHRoOiA4MHB4O1xufVxuLmRpYi1hdWRpb19fcHJvZ3Jlc3MtZmlsbCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS10ZWFsKTsgLyogZGFya2VyIHRlYWwgcHJvZ3Jlc3MgKi9cbiAgICB3aWR0aDogMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIHRyYW5zaXRpb246IHdpZHRoIC4xcyBsaW5lYXI7XG59XG4uZGliLWF1ZGlvX19wcm9ncmVzczpmb2N1cyB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHJnYmEoMTMsIDEwNywgMTEwLCAwLjQpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG4uZGliLXBvc3QtY29udGVudCB7XG4gICAgY29sb3I6ICMyYTJhM2E7XG4gICAgbGluZS1oZWlnaHQ6IDEuNztcbiAgICBmb250LXNpemU6IDEuMDYyNXJlbTtcbn1cbi8qIEFsbCBsaW5rcyBpbnNpZGUgdGhlIGFydGljbGUgdXNlIHRoZSBUb3NhIG9yYW5nZS4gKi9cbi5kaWItcG9zdCBhLFxuLmRpYi1wb3N0IGE6dmlzaXRlZCxcbi5kaWItcG9zdCBhIHNwYW4ge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSkgIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDNweDtcbn1cbi5kaWItcG9zdCBhOmhvdmVyLFxuLmRpYi1wb3N0IGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjYzgzOTBhICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uZGliLXBvc3QtY29udGVudCBwIHsgbWFyZ2luOiAwIDAgMS4xcmVtOyB9XG4uZGliLXBvc3QtY29udGVudCBpbWcgeyBtYXgtd2lkdGg6IDEwMCU7IGhlaWdodDogYXV0bzsgfVxuLmRpYi1wb3N0LWNvbnRlbnQgaDIgeyBmb250LXNpemU6IDEuNXJlbTsgbWFyZ2luOiAycmVtIDAgMXJlbTsgfVxuLmRpYi1wb3N0LWNvbnRlbnQgaDMgeyBmb250LXNpemU6IDEuMnJlbTsgbWFyZ2luOiAxLjZyZW0gMCAuOHJlbTsgfVxuLmRpYi1yZWxhdGVkIHtcbiAgICBtYXJnaW46IDRyZW0gMCAwO1xuICAgIHBhZGRpbmctdG9wOiAyLjVyZW07XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjAsIDMwLCA2MCwgMC4xMik7XG59XG4uZGliLXJlbGF0ZWRfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IGNsYW1wKDEuNzVyZW0sIDN2dywgMi4yNXJlbSk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLmRpYi1yZWxhdGVkX19ncmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG4gICAgZ2FwOiAycmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gICAgLmRpYi1yZWxhdGVkX19ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsgfVxufVxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gICAgLmRpYi1yZWxhdGVkX19ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH1cbn1cbi8qIFJlbGF0ZWQtcG9zdCBjYXJkIHRpdGxlcyBzdGF5IGJsYWNrICsgbm8gdW5kZXJsaW5lLFxuICAgb3ZlcnJpZGluZyB0aGUgb3JhbmdlL3VuZGVybGluZSBydWxlIGFwcGxpZWQgdG8gYWxsIGFuY2hvcnMgaW5zaWRlIC5kaWItcG9zdC4gKi9cbi5kaWItcmVsYXRlZCAuYmxvZy1jYXJkX190aXRsZSBhLFxuLmRpYi1yZWxhdGVkIC5ibG9nLWNhcmRfX3RpdGxlIGE6dmlzaXRlZCB7XG4gICAgY29sb3I6ICMxYTFhMmUgIWltcG9ydGFudDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcbn1cbi5kaWItcmVsYXRlZCAuYmxvZy1jYXJkX190aXRsZSBhOmhvdmVyIHtcbiAgICBjb2xvcjogI0YxNDkxMCAhaW1wb3J0YW50O1xufVxuLmRpYi1yZWxhdGVkIC5ibG9nLWNhcmRfX21vcmUsXG4uZGliLXJlbGF0ZWQgLmJsb2ctY2FyZF9fbW9yZSBzcGFuLFxuLmRpYi1yZWxhdGVkIC5ibG9nLWNhcmRfX3RpdGxlIGEgc3BhbiB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5kaWItcG9zdC1iYWNrIHtcbiAgICBtYXJnaW4tdG9wOiAyLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5kaWItcG9zdC1iYWNrIGEge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5kaWItcG9zdC1iYWNrIGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4vKiBPbmxpbmUtc3RvcmUgdmFyaWFudCBvZiB0aGUgbmV3c2xldHRlciDigJQgZXh0cmEtdGFsbCBzZWN0aW9uIHdpdGggdGhlIHRlYW1cbiAgIHBob3RvIGFib3ZlIHRoZSBmb3JtLiAqL1xuLm5ld3NsZXR0ZXItLW9ubGluZS1zdG9yZSB7XG4gICAgcGFkZGluZy10b3A6IDgwcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogOTZweCAhaW1wb3J0YW50O1xufVxuLm5ld3NsZXR0ZXItLW9ubGluZS1zdG9yZV9fcGhvdG8td3JhcCB7XG4gICAgbWF4LXdpZHRoOiAxMTAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG4ubmV3c2xldHRlci0tb25saW5lLXN0b3JlX19waG90byB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIGNhbGMoMTAwJSAtIDgwcHgpIDAsIDEwMCUgODBweCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xufVxuXG4vKiDilIDilIAgQm9vayBFeGFtIHBhZ2Ug4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG5cbi8qIEhlcm8g4oCUIGZ1bGwtc2VjdGlvbiBjb3ZlciBpbWFnZSB3aXRoIG92ZXJsYXkgY29weSBvbiB0aGUgbGVmdC5cbiAgIFRoZSBhc3BlY3QtcmF0aW8gaXMgbG9ja2VkIHRvIHRoZSBzb3VyY2UgaW1hZ2UgKOKJiDE2MDDDlzg3Mykgc28gdGhlIGVudGlyZVxuICAgcGhvdG8gaXMgYWx3YXlzIHZpc2libGUsIGVkZ2UtdG8tZWRnZS4gQ2FwcGVkIHRvIHN0YXkgYmVsb3cgdmlld3BvcnRcbiAgIGhlaWdodCBzbyB0aGUgd2hvbGUgaGVybyAoYW5kIGEgaGludCBvZiB0aGUgc2VjdGlvbiBiZWxvdykgZml0cyBvbiBzY3JlZW4uICovXG4uYmUtaGVybyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGFzcGVjdC1yYXRpbzogMTYwMCAvIDg3MztcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTAwcHgpO1xuICAgIG1pbi1oZWlnaHQ6IDM2MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogI2VhZjNmYjtcbn1cbi5iZS1oZXJvX19iZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBvYmplY3QtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG59XG4uYmUtaGVyb19fb3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgyKSAzNSUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSkgNjAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDc1JSk7XG59XG4uYmUtaGVyb19faW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZy10b3A6IDY0cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDY0cHg7XG59XG4uYmUtaGVyb19fY29weSB7IG1heC13aWR0aDogNjIwcHg7IH1cbi5iZS1oZXJvX190aXRsZSB7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgZm9udC1zaXplOiBjbGFtcCgycmVtLCAzLjZ2dywgMi43NXJlbSk7XG59XG4uYmUtaGVyb19fdGV4dCB7XG4gICAgY29sb3I6ICMyYTJhM2E7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjU7XG4gICAgZm9udC1zaXplOiAxcmVtO1xufVxuLmJlLWhlcm9fX2xpbmsge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uYmUtaGVyb19fbGluazpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAgIC5iZS1oZXJvX19vdmVybGF5IHtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkyKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjg1KSAxMDAlKTtcbiAgICB9XG59XG5cbi8qIFN0ZXBzICovXG4uYmUtc3RlcHMge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG4uYmUtc3RlcHNfX2NhcmQge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIG1heC13aWR0aDogMTEwMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDQ4cHggY2xhbXAoMjBweCwgM3Z3LCA1NnB4KTtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuLmJlLXN0ZXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAyMHB4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmc6IDI4cHggMjZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxNTZweDtcbn1cbi5iZS1zdGVwX19pY29uLXdyYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB3aWR0aDogNTZweDtcbiAgICBoZWlnaHQ6IDU2cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLyogU29mdCBibHVlIGJsdXJyZWQgbGluZSB1bmRlciB0aGUgaWNvbi4gKi9cbi5iZS1zdGVwX19pY29uLXdyYXA6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIGJvdHRvbTogLTEwcHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIHdpZHRoOiA2MHB4O1xuICAgIGhlaWdodDogNnB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgZmlsdGVyOiBibHVyKDZweCk7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLmJlLXN0ZXBfX2ljb24ge1xuICAgIHdpZHRoOiA1NnB4O1xuICAgIGhlaWdodDogNTZweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuLmJlLXN0ZXBfX3RpdGxlIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBmb250LXNpemU6IDEuMDVyZW07XG4gICAgbWFyZ2luOiAwIDAgNnB4O1xufVxuLmJlLXN0ZXBfX3RleHQge1xuICAgIGNvbG9yOiAjNGE0YTVlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU1O1xuICAgIGZvbnQtc2l6ZTogMC45MnJlbTtcbn1cbi5iZS1zdGVwX19saW5rIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4uYmUtc3RlcF9fbGluazpob3ZlciB7XG4gICAgY29sb3I6ICNjODM5MGE7XG59XG5cbi8qIOKUgOKUgOKUgCBQdXJjaGFzZSB3aXphcmQgKDQtc3RlcCBicm93c2VyIG1vY2t1cCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uYmUtcHVyY2hhc2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2ZiZmQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cblxuLyogU3RlcCBpbmRpY2F0b3Ig4oCUIHNvbGlkIHJlY3RhbmdsZXMsIG9uZSBwZXIgc3RlcC4gSW5hY3RpdmUgc3RlcHMgc3RheVxuICAgbGlnaHQgYmx1ZSB3aXRoIGdyZXkgdGV4dDsgdGhlIGFjdGl2ZSBzdGVwIGFuZCBwcmV2aW91c2x5LWNvbXBsZXRlZCBzdGVwc1xuICAgZ2V0IGEgc29saWQgVG9zYSBibHVlIGJhY2tncm91bmQgd2l0aCB3aGl0ZSB0ZXh0LiAqL1xuLmJlLXB1cmNoYXNlX19zdGVwcyB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMCBhdXRvIDQwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgbWF4LXdpZHRoOiAxMTAwcHg7XG59XG4uYmUtcHVyY2hhc2VfX3N0ZXAge1xuICAgIGZsZXg6IDE7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjOWFhMGI0O1xuICAgIGZvbnQtc2l6ZTogMS4wNXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwYWRkaW5nOiAyMnB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2VhZjNmYjtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNHB4IHJnYmEoMjAsIDMwLCA2MCwgMC4wNCk7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnMsIGNvbG9yIC4ycztcbn1cbi5iZS1wdXJjaGFzZV9fc3RlcC5pcy1hY3RpdmUsXG4uYmUtcHVyY2hhc2VfX3N0ZXAuaXMtZG9uZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBjb2xvcjogI2ZmZjtcbn1cbi8qIFNraXBwZWQgKGUuZy4gc3RlcCAyIHdoZW4gdGhlIGNob3NlbiBzdWJqZWN0IGhhcyBubyBsYW5ndWFnZS92ZXJzaW9uXG4gICBjaG9pY2UgdG8gbWFrZSkg4oCUIGtlZXAgdGhlIGRvdCB2aXNpYmxlIGJ1dCB2aXNpYmx5IG11dGVkIHNvIHRoZSBmbG93XG4gICBkb2Vzbid0IHNoaWZ0IGFuZCB0aGUgdXNlciB1bmRlcnN0YW5kcyB0aGlzIHN0ZXAgd2FzIGJ5cGFzc2VkLiAqL1xuLmJlLXB1cmNoYXNlX19zdGVwLmlzLXNraXBwZWQge1xuICAgIGJhY2tncm91bmQ6ICNkOGRkZTg7XG4gICAgY29sb3I6ICM4YjkzYTg7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjg1O1xufVxuLmJlLXB1cmNoYXNlX19zdGVwLmlzLXNraXBwZWQuaXMtZG9uZSxcbi5iZS1wdXJjaGFzZV9fc3RlcC5pcy1za2lwcGVkLmlzLWFjdGl2ZSB7XG4gICAgLyogSWYgc2tpcHBlZCwgbmV2ZXIgc2hvdyB0aGUgYWN0aXZlL2RvbmUgYmx1ZSB0cmVhdG1lbnQuICovXG4gICAgYmFja2dyb3VuZDogI2Q4ZGRlODtcbiAgICBjb2xvcjogIzhiOTNhODtcbn1cbi5iZS1wdXJjaGFzZV9fc3RlcC1udW0geyBkaXNwbGF5OiBibG9jazsgfVxuXG4vKiBCcm93c2VyIG1vY2t1cCB3cmFwcGVyIOKAlCB0aGUgYnJvd3NlciBjaHJvbWUgaXMgc3RyZXRjaGVkIGFzIGEgYmFja2dyb3VuZCxcbiAgIGFuZCAuYmUtcHVyY2hhc2VfX2lubmVyIHNpdHMgaW5zaWRlLCBwYWRkZWQgZG93biBwYXN0IHRoZSBVUkwgYmFyIHNvIHRoZVxuICAgY29udGVudCBsaXZlcyB3aXRoaW4gdGhlIGNocm9tZSdzIGVtcHR5IGFyZWEuIFRoZSBpbm5lciByYWRpdXMgbWF0Y2hlcyB0aGVcbiAgIGNocm9tZSdzIHJvdW5kZWQgY29ybmVycyBzbyB0aGUgd2hpdGUgZnJhbWUgZG9lc24ndCBwZWVrIG91dCBwYXN0IHRoZW0uICovXG4uYmUtcHVyY2hhc2VfX2ZyYW1lIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWF4LXdpZHRoOiAxMTAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciB0b3A7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogMCAwIDEzcHggMTNweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCA0MHB4IHJnYmEoMjAsIDMwLCA2MCwgMC4xMCk7XG59XG4uYmUtcHVyY2hhc2VfX2lubmVyIHtcbiAgICAvKiBUaGUgYnJvd3NlciBjaHJvbWUgUE5HICgxNDQww5c5NjEpIHJlc2VydmVzIH43NXB4IGF0IHRoZSB0b3AgZm9yIHRoZVxuICAgICAgIFVSTCBiYXIg4oCUIHB1c2ggb3VyIGNvbnRlbnQgcGFzdCBpdC4gQm90dG9tIHBhZGRpbmcgZ2l2ZXMgdGhlIGNocm9tZVxuICAgICAgIGEgdGhpbiBmcmFtZSBhcm91bmQgdGhlIGNvbnRlbnQgdG9vLiAqL1xuICAgIHBhZGRpbmc6IDkycHggY2xhbXAoMjhweCwgM3Z3LCA1NnB4KSA1NnB4O1xufVxuLmJlLXB1cmNoYXNlX19wYW5lIHsgZGlzcGxheTogbm9uZTsgbWluLWhlaWdodDogNTIwcHg7IH1cbi5iZS1wdXJjaGFzZV9fcGFuZS5pcy1hY3RpdmUgeyBkaXNwbGF5OiBibG9jazsgfVxuLyogU3RlcCAzIGhhcyBmZXdlciBpdGVtcyB0aGFuIHRoZSBvdGhlcnMg4oCUIGNlbnRlciBpdHMgY29udGVudCB2ZXJ0aWNhbGx5IHNvXG4gICB0aGUgcGFuZSBuZXZlciBsb29rcyBjcmFtcGVkIGFnYWluc3QgdGhlIHdpZGVyIHN0ZXAgMSAvIDIgLyA0IGxheW91dHMuICovXG4uYmUtcHVyY2hhc2VfX3BhbmVbZGF0YS1wdXJjaGFzZS1wYW5lPVwiM1wiXS5pcy1hY3RpdmUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLyogVGFicyAoc3RlcCAxKSDigJQgcmV1c2UgdGhlIGNocm9tZSBmcm9tIC5jZXJ0LW9mZmVyaW5ncyAqL1xuLmJlLXB1cmNoYXNlX190YWJzIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlY2VjZjM7XG4gICAgbWFyZ2luLWJvdHRvbTogMjhweDtcbn1cbi5iZS1wdXJjaGFzZV9fdGFicyAubmF2LWxpbmsge1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBwYWRkaW5nOiAxMnB4IDI0cHg7XG4gICAgY29sb3I6ICM3Nzc7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5iZS1wdXJjaGFzZV9fdGFicyAubmF2LWxpbmsuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG59XG4uYmUtcHVyY2hhc2VfX3RhYi1sb2dvIHtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG4uYmUtcHVyY2hhc2VfX2hlYWRpbmcge1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIG1hcmdpbjogMCAwIDRweDtcbn1cbi5iZS1wdXJjaGFzZV9fcGFuZS1pbnRybyB7XG4gICAgY29sb3I6ICMyYTJhM2E7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU1O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXgtd2lkdGg6IDc2MHB4O1xuICAgIG1hcmdpbjogMCBhdXRvIDI4cHg7XG59XG4uYmUtcHVyY2hhc2VfX3N1YnRpdGxlIHtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgbWFyZ2luOiAwO1xufVxuXG4vKiBTdWJqZWN0IGJ1dHRvbnMgKi9cbi5iZS1wdXJjaGFzZV9fc3ViamVjdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTZweCAxMHB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNFNkYzRjk7XG4gICAgY29sb3I6ICMxYTFhMWE7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjJzLCBib3JkZXItY29sb3IgLjJzLCBib3gtc2hhZG93IC4ycywgdHJhbnNmb3JtIC4ycywgY29sb3IgLjJzO1xufVxuLmJlLXB1cmNoYXNlX19zdWJqZWN0OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDIwcHggcmdiYSgyNDEsIDczLCAxNiwgMC4xMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xufVxuLmJlLXB1cmNoYXNlX19zdWJqZWN0IGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDY0cHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cbi5iZS1wdXJjaGFzZV9fc3ViamVjdCBzcGFuIHsgbGluZS1oZWlnaHQ6IDEuMjsgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi8qIFN0ZXAgMiDigJQgbGFuZ3VhZ2UgKyB2ZXJzaW9uICovXG4uYmUtcHVyY2hhc2VfX2dyb3VwLXRpdGxlIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBmb250LXNpemU6IDEuMDVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW46IDAgMCAxNnB4O1xufVxuLmJlLXB1cmNoYXNlX19yYWRpby1saXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwIDAgOHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG59XG4uYmUtcHVyY2hhc2VfX3JhZGlvLWxpc3QgbGFiZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi5iZS1wdXJjaGFzZV9fcmFkaW8tbGlzdCBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBhY2NlbnQtY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbn1cbi5iZS1wdXJjaGFzZV9fcGhvdG8ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCBjYWxjKDEwMCUgLSAyOHB4KSAwLCAxMDAlIDI4cHgsIDEwMCUgMTAwJSwgMCAxMDAlKTtcbn1cblxuLyogU3RlcCAxIOKAlCBzdWJqZWN0IGRldGFpbHMgKGNvbmZpcm1hdGlvbiBjYXJkIGFmdGVyIHBpY2tpbmcgYSBzdWJqZWN0KS5cbiAgIFJlY3Rhbmd1bGFyIGxheW91dCwgbWlycm9ycyB0aGUgbGVnYWN5IGJvb2thbmV4YW0gcGFnZSB0cmVhdG1lbnQuICovXG4uYmUtcHVyY2hhc2VfX2RldGFpbHMge1xuICAgIHBhZGRpbmc6IDRweCA4cHg7XG59XG4uYmUtcHVyY2hhc2VfX2RldGFpbHNbaGlkZGVuXSB7IGRpc3BsYXk6IG5vbmU7IH1cbi5iZS1wdXJjaGFzZV9fZGV0YWlscy1oZWFkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG59XG4uYmUtcHVyY2hhc2VfX2RldGFpbHMtYmFjayB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgcGFkZGluZzogNnB4IDhweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5iZS1wdXJjaGFzZV9fZGV0YWlscy1iYWNrOmhvdmVyIHtcbiAgICBjb2xvcjogI2Q4M2EwNDtcbn1cbi5iZS1wdXJjaGFzZV9fZGV0YWlscy1leWVicm93IHtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5iZS1wdXJjaGFzZV9fZGV0YWlscy1leWVicm93IHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbn1cbi5iZS1wdXJjaGFzZV9fZGV0YWlscy1pY29uIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBwYWRkaW5nOiA1NnB4IDMycHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG59XG4uYmUtcHVyY2hhc2VfX2RldGFpbHMtaWNvbiBpbWcge1xuICAgIG1heC13aWR0aDogMjIwcHg7XG4gICAgbWF4LWhlaWdodDogMjIwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG4uYmUtcHVyY2hhc2VfX2RldGFpbHMtZGVzYyB7XG4gICAgY29sb3I6ICMxZjI5Mzc7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcbn1cbi5iZS1wdXJjaGFzZV9fZGV0YWlscy1oIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW46IDE4cHggMCA4cHg7XG59XG4uYmUtcHVyY2hhc2VfX2RldGFpbHMtbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMCAwIDRweDtcbiAgICBjb2xvcjogIzM3NDE1MTtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS43O1xufVxuLmJlLXB1cmNoYXNlX19kZXRhaWxzLWxpc3QgbGkge1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYmUtcHVyY2hhc2VfX2RldGFpbHMtbGlzdCBsaTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAn4oC6JztcbiAgICBjb2xvcjogIzZiNzI4MDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICBmb250LXdlaWdodDogNzAwO1xufVxuLmJlLXB1cmNoYXNlX19kZXRhaWxzLWxlYXJubW9yZSB7XG4gICAgbWFyZ2luOiAxOHB4IDAgMDtcbiAgICBjb2xvcjogIzFmMjkzNztcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi5iZS1wdXJjaGFzZV9fZGV0YWlscy1sZWFybm1vcmUgYSB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5iZS1wdXJjaGFzZV9fZGV0YWlscy1sZWFybm1vcmUgYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi8qIFN0ZXAgMyDigJQgcHJvY3RvcmluZyAqL1xuLmJlLXB1cmNoYXNlX19wcm9jdG9yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiAzNnB4O1xuICAgIHBhZGRpbmc6IDgwcHggMzJweDtcbiAgICBtaW4taGVpZ2h0OiAzNjBweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q5ZGFlNjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAuMnMsIGJhY2tncm91bmQtY29sb3IgLjJzO1xufVxuLmJlLXB1cmNoYXNlX19wcm9jdG9yOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgYmFja2dyb3VuZDogI2Y3ZmJmZDtcbn1cbi8qIFNlbGVjdGVkIHN0YXRlIOKAlCBtYXRjaCB0aGUgb3JhbmdlIOKckyBpbiB0aGUgY29ybmVyIHdpdGggYW4gb3JhbmdlXG4gICBjYXJkIGJvcmRlciBzbyB0aGUgY2hvaWNlIHJlYWRzIGF0IGEgZ2xhbmNlLiBgOmhhcyhpbnB1dDpjaGVja2VkKWBcbiAgIHRhcmdldHMgdGhlIGxhYmVsIHdob3NlIG5lc3RlZCByYWRpbyBpcyBjaGVja2VkLiAqL1xuLmJlLXB1cmNoYXNlX19wcm9jdG9yOmhhcyhpbnB1dDpjaGVja2VkKSB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgYmFja2dyb3VuZDogI2ZmZjdmMztcbn1cbi5iZS1wdXJjaGFzZV9fcHJvY3RvciBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG4uYmUtcHVyY2hhc2VfX3Byb2N0b3IgaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5iZS1wdXJjaGFzZV9fcHJvY3Rvci1jaGVjayB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMThweDtcbiAgICByaWdodDogMThweDtcbiAgICB3aWR0aDogMjJweDtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgYm9yZGVyOiAxLjVweCBzb2xpZCAjZDlkYWU2O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMTVzLCBib3JkZXItY29sb3IgLjE1cztcbn1cbi5iZS1wdXJjaGFzZV9fcHJvY3RvciBpbnB1dDpjaGVja2VkIH4gLmJlLXB1cmNoYXNlX19wcm9jdG9yLWNoZWNrIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG59XG4uYmUtcHVyY2hhc2VfX3Byb2N0b3IgaW5wdXQ6Y2hlY2tlZCB+IC5iZS1wdXJjaGFzZV9fcHJvY3Rvci1jaGVjazo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICfinJMnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4uYmUtcHVyY2hhc2VfX3Byb2N0b3ItaWNvbiB7XG4gICAgd2lkdGg6IDExMHB4O1xuICAgIGhlaWdodDogMTEwcHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cbi5iZS1wdXJjaGFzZV9fcHJvY3Rvci1sYWJlbCB7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgZm9udC1zaXplOiAxLjA1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBtYXgtd2lkdGg6IDI4MHB4O1xufVxuLmJlLXB1cmNoYXNlX19wcm9jdG9yLXRleHQge1xuICAgIGNvbG9yOiAjNGE0YTVlO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU1O1xuICAgIG1heC13aWR0aDogMzAwcHg7XG4gICAgbWFyZ2luLXRvcDogLTIwcHg7XG59XG4uYmUtcHVyY2hhc2VfX3Byb2N0b3ItdGV4dCBhIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xufVxuLmJlLXB1cmNoYXNlX19wcm9jdG9yLWVycm9yIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbjogMTZweCAwIDA7XG59XG5cbi8qIE5leHQgbGluayAqL1xuLmJlLXB1cmNoYXNlX19uZXh0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgcGFkZGluZzogNnB4IDRweDtcbn1cbi5iZS1wdXJjaGFzZV9fbmV4dDpob3ZlciB7IGNvbG9yOiAjYzgzOTBhOyB9XG5cbi8qIFN0ZXAgNCDigJQgcGFja3MgKi9cbi5iZS1wdXJjaGFzZV9fbGVnYWwge1xuICAgIGNvbG9yOiAjMmEyYTNhO1xuICAgIGZvbnQtc2l6ZTogMC45MnJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41NTtcbn1cbi5iZS1wdXJjaGFzZV9fcGFja3Mge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNSwgMWZyKTtcbiAgICBnYXA6IDA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VjZWNmMztcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkgeyAuYmUtcHVyY2hhc2VfX3BhY2tzIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsgfSB9XG5AbWVkaWEgKG1heC13aWR0aDogNTc1Ljk4cHgpIHsgLmJlLXB1cmNoYXNlX19wYWNrcyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9IH1cbi5iZS1wdXJjaGFzZV9fcGFjayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2VjZWNmMztcbn1cbi5iZS1wdXJjaGFzZV9fcGFjazpsYXN0LWNoaWxkIHsgYm9yZGVyLXJpZ2h0OiAwOyB9XG5cbi5iZS1wdXJjaGFzZV9fcGFjay1oZWFkIHtcbiAgICBwYWRkaW5nOiAyMnB4IDIwcHg7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjdmZjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VjZWNmMztcbiAgICBtaW4taGVpZ2h0OiA5MnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5iZS1wdXJjaGFzZV9fcGFjay5pcy1hY3RpdmUgLmJlLXB1cmNoYXNlX19wYWNrLWhlYWQsXG4uYmUtcHVyY2hhc2VfX3BhY2s6aG92ZXIgLmJlLXB1cmNoYXNlX19wYWNrLWhlYWQge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2Etb3JhbmdlKTtcbn1cbi5iZS1wdXJjaGFzZV9fcGFjay1uYW1lIHtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBmb250LXNpemU6IDEuMDVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW46IDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjU7XG59XG4uYmUtcHVyY2hhc2VfX3BhY2suaXMtYWN0aXZlIC5iZS1wdXJjaGFzZV9fcGFjay1uYW1lLFxuLmJlLXB1cmNoYXNlX19wYWNrOmhvdmVyIC5iZS1wdXJjaGFzZV9fcGFjay1uYW1lIHsgY29sb3I6ICNmZmY7IH1cblxuLmJlLXB1cmNoYXNlX19wYWNrLWJvZHkge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTZweDtcbn1cbi5iZS1wdXJjaGFzZV9fcGFjay1kZXNjIHtcbiAgICBjb2xvcjogIzJhMmEzYTtcbiAgICBmb250LXNpemU6IDAuOTJyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBtYXJnaW46IDA7XG59XG4vKiBSZXNldCB0aGUgYnJvd3NlcidzIGRlZmF1bHQgdWwgaW5kZW50IGluc2lkZSB0aGUgcGFjayBkZXNjcmlwdGlvbiBzbyB0aGVcbiAgIGJ1bGxldHMgYWxpZ24gd2l0aCB0aGUgcmVzdCBvZiB0aGUgdGV4dC4gVGhlIGxpc3QgY29tZXMgc3RyYWlnaHQgZnJvbVxuICAgdGhlIEFQSSAoc3BlX2RldC50b3NhX3ByaV9kZXQuZGVzIEhUTUwpLCBzbyB3ZSBzdHlsZSBpdCBpbmxpbmUgaGVyZS4gKi9cbi5iZS1wdXJjaGFzZV9fcGFjay1kZXNjIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBkaXNjO1xuICAgIG1hcmdpbjogOHB4IDAgMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuMXJlbTtcbn1cbi5iZS1wdXJjaGFzZV9fcGFjay1kZXNjIGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG4uYmUtcHVyY2hhc2VfX3BhY2stZmVhdHVyZXMge1xuICAgIGxpc3Qtc3R5bGU6IGRpc2MgaW5zaWRlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbiAgICBmbGV4OiAxIDEgYXV0bztcbn1cbi5iZS1wdXJjaGFzZV9fcGFjay1mZWF0dXJlcyBsaSB7XG4gICAgY29sb3I6ICMyYTJhM2E7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cbi5iZS1wdXJjaGFzZV9fcGFjay1mZWF0dXJlcyBsaTo6bWFya2VyIHsgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7IH1cblxuLmJlLXB1cmNoYXNlX19wYWNrLXByaWNlIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG59XG5cbi5iZS1wdXJjaGFzZV9fcGFjay1jaGVja291dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxNHB4IDE4cHg7XG4gICAgYmFja2dyb3VuZDogI2Y1ZjdmZjtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlY2VjZjM7XG4gICAgY29sb3I6ICMyYTJhM2E7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnMsIGNvbG9yIC4ycztcbn1cbi5iZS1wdXJjaGFzZV9fcGFjay5pcy1hY3RpdmUgLmJlLXB1cmNoYXNlX19wYWNrLWNoZWNrb3V0LFxuLmJlLXB1cmNoYXNlX19wYWNrOmhvdmVyIC5iZS1wdXJjaGFzZV9fcGFjay1jaGVja291dCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIGNhbGMoMTAwJSAtIDE2cHgpIDAsIDEwMCUgMTZweCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xufVxuLmJlLXB1cmNoYXNlX19wYWNrLXJhZGlvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIGJvcmRlcjogMS41cHggc29saWQgI2Q5ZGFlNjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5iZS1wdXJjaGFzZV9fcGFjay5pcy1hY3RpdmUgLmJlLXB1cmNoYXNlX19wYWNrLXJhZGlvLFxuLmJlLXB1cmNoYXNlX19wYWNrOmhvdmVyIC5iZS1wdXJjaGFzZV9fcGFjay1yYWRpbyB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS15ZWxsb3cpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdG9zYS15ZWxsb3cpO1xufVxuLmJlLXB1cmNoYXNlX19wYWNrLmlzLWFjdGl2ZSAuYmUtcHVyY2hhc2VfX3BhY2stcmFkaW86OmFmdGVyLFxuLmJlLXB1cmNoYXNlX19wYWNrOmhvdmVyIC5iZS1wdXJjaGFzZV9fcGFjay1yYWRpbzo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICfinJMnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4uYmUtcHVyY2hhc2VfX3BhY2stYXJyb3cgeyBtYXJnaW4tbGVmdDogYXV0bzsgfVxuXG4vKiDilIDilIAgQ29udGFjdCBVcyBwYWdlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmN1LWJhbm5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDgwMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogI2VhZjNmYjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgLmN1LWJhbm5lciB7IG1pbi1oZWlnaHQ6IDg4MHB4OyB9XG59XG4uY3UtYmFubmVyX19iZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBvYmplY3QtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjtcbn1cbi5jdS1iYW5uZXJfX292ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NikgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44OCkgMzAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDUpIDU1JSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSA3MCUpO1xufVxuLmN1LWJhbm5lcl9faW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGZsZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmctdG9wOiA2NHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA2NHB4O1xufVxuLmN1LWJhbm5lcl9fY29weSB7IG1heC13aWR0aDogNTIwcHg7IH1cbi5jdS1iYW5uZXJfX3RpdGxlIHtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBmb250LXNpemU6IGNsYW1wKDIuNXJlbSwgNC41dncsIDMuNXJlbSk7XG59XG4uY3UtYmFubmVyX190ZXh0IHtcbiAgICBjb2xvcjogIzJhMmEzYTtcbiAgICBsaW5lLWhlaWdodDogMS42NTtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gICAgLmN1LWJhbm5lcl9fb3ZlcmxheSB7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45MikgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44NSkgMTAwJSk7XG4gICAgfVxufVxuXG4vKiBGb3JtIHNlY3Rpb24gKi9cbi5jdS1mb3JtLXNlY3Rpb24geyBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4uY3UtZm9ybS1jYXJkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiA1NnB4IGNsYW1wKDI0cHgsIDR2dywgNjRweCk7XG4gICAgbWF4LXdpZHRoOiAxMTAwcHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgLyogU2FtZSBjaGFtZmVyZWQgdG9wLXJpZ2h0IGNvcm5lciB1c2VkIG9uIGhlcm8gYmxvY2tzLiAqL1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIGNhbGMoMTAwJSAtIDM2cHgpIDAsIDEwMCUgMzZweCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xufVxuLmN1LWZvcm0tY2FyZF9fdGl0bGUge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS41cmVtLCAyLjZ2dywgMnJlbSk7XG4gICAgbWFyZ2luOiAwIDAgMS41cmVtO1xufVxuXG4uY3UtZm9ybSB7IHdpZHRoOiAxMDAlOyB9XG4uY3UtZm9ybV9fcm93IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICBnYXA6IDE2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cbi5jdS1mb3JtX19yb3ctLWZ1bGwge1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xufVxuLmN1LWZvcm1fX2dyb3VwIHsgd2lkdGg6IDEwMCU7IH1cbi5jdS1mb3JtX19sYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbn1cbi5jdS1mb3JtX19yZXF1aXJlZCB7XG4gICAgY29sb3I6ICNmZjVhNWE7XG4gICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xufVxuLmN1LWZvcm1fX2lucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNDUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cbi5jdS1mb3JtX19pbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XG59XG4uY3UtZm9ybV9faW5wdXQ6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xOCk7XG59XG4uY3UtZm9ybV9fdGV4dGFyZWEge1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG4gICAgbWluLWhlaWdodDogMTIwcHg7XG59XG4uY3UtZm9ybV9fY29uc2VudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luOiAxNnB4IDAgOHB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuLmN1LWZvcm1fX2NvbnNlbnQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIGFjY2VudC1jb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xufVxuLmN1LWZvcm1fX3ByaXZhY3kge1xuICAgIG1hcmdpbjogMCAwIDI0cHggMzBweDtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc4KTtcbiAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuLmN1LWZvcm1fX3ByaXZhY3ktbGluayB7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAycHg7XG59XG4uY3UtZm9ybV9fcHJpdmFjeS1saW5rOmhvdmVyIHtcbiAgICBjb2xvcjogI2ZmZjtcbn1cbi5jdS1mb3JtX19mb290ZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxNnB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cbi8qIHJlQ0FQVENIQSB3aWRnZXQgY29udGFpbmVyIOKAlCB0aGUgaWZyYW1lIGluc2VydGVkIGJ5IEdvb2dsZSByZW5kZXJzIGF0XG4gICB+MzA0w5c3OCB3aXRoIGl0cyBvd24gY2hyb21lLCBzbyB3ZSBqdXN0IGdpdmUgaXQgYSB0cmFuc3BhcmVudCBzbG90LiAqL1xuLmN1LWZvcm1fX2NhcHRjaGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtaW4taGVpZ2h0OiA3OHB4O1xufVxuLmN1LWZvcm1fX2NhcHRjaGEgLmctcmVjYXB0Y2hhIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qIElubGluZSBlcnJvciByZXR1cm5lZCBieSB0aGUgQUpBWCBzdWJtaXQuICovXG4uY3UtZm9ybV9fZXJyb3Ige1xuICAgIG1hcmdpbjogMCAwIDEycHg7XG4gICAgcGFkZGluZzogMTBweCAxNHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCA3MywgMTYsIDAuMTgpO1xuICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMC45MnJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbn1cblxuLyogU3VjY2VzcyBjb25maXJtYXRpb24gc2hvd24gYWZ0ZXIgYSB2YWxpZCBjbGllbnQtc2lkZSBzdWJtaXQuICovXG4uY3UtZm9ybV9fc3VjY2VzcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDE0cHg7XG4gICAgcGFkZGluZzogMjBweCAyNHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgZm9udC1zaXplOiAxcmVtO1xufVxuLmN1LWZvcm1fX3N1Y2Nlc3MgaSB7XG4gICAgY29sb3I6IHZhcigtLXRvc2EteWVsbG93KTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tdG9wOiAycHg7XG59XG4uY3UtZm9ybV9fc3VibWl0IHsgZmxleC1zaHJpbms6IDA7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NS45OHB4KSB7XG4gICAgLmN1LWZvcm1fX3JvdyB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyB9XG59XG5cbi8qIE9mZmljZSBsb2NhdGlvbnMg4oCUIHJldXNlcyAud3dhLW9mZmljZXNfXyogY2xhc3NlcyBmcm9tIHdoby13ZS1hcmUgKi9cbi5jdS1vZmZpY2VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZmNGY4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2NhcmVlcnMvSG93IHRvIEFwcGx5LWJnLmpwZycpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHBhZGRpbmc6IDQwcHggMDtcbn1cblxuLyogQ29tcGFjdCBuZXdzbGV0dGVyIG9uIGNvbnRhY3QtdXMgcGFnZSDigJQgdHJpbSBzaGFyZWQgMzIwcHggdG9wIHBhZGRpbmcuICovXG4uY3Utb2ZmaWNlcyArIC5uZXdzbGV0dGVyIHtcbiAgICBwYWRkaW5nLXRvcDogODBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7XG59XG5cbi8qIFNoYXJlZCBvZmZpY2UtbG9jYXRpb25zIGNhcmQvcGluL2NpdHkgc3R5bGVzIHVzZWQgb24gYm90aCB3aG8td2UtYXJlIGFuZFxuICAgY29udGFjdC11cyBwYWdlcy4gUGFnZS1zcGVjaWZpYyBiYWNrZ3JvdW5kcyBsaXZlIGluIHRoZWlyIG93biBzdHlsZXNoZWV0cy4gKi9cbi53d2Etb2ZmaWNlc19fcm93IHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbn1cbi53d2Etb2ZmaWNlc19fY29sICsgLnd3YS1vZmZpY2VzX19jb2wge1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgyNiwgMjYsIDQ2LCAwLjE4KTtcbn1cbi53d2Etb2ZmaWNlc19fY2FyZCB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDE2cHggMjhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4ycyBlYXNlO1xufVxuLnd3YS1vZmZpY2VzX19jYXJkOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG59XG4ud3dhLW9mZmljZXNfX3BpbiB7XG4gICAgd2lkdGg6IDU2cHg7XG4gICAgaGVpZ2h0OiA1NnB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbn1cbi53d2Etb2ZmaWNlc19fY2l0eSB7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG4ud3dhLW9mZmljZXNfX2FkZHIge1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS42NTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAgIC53d2Etb2ZmaWNlc19fY29sICsgLnd3YS1vZmZpY2VzX19jb2wge1xuICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjYsIDI2LCA0NiwgMC4xOCk7XG4gICAgfVxuICAgIC53d2Etb2ZmaWNlc19fY2FyZCB7XG4gICAgICAgIHBhZGRpbmc6IDI4cHggMjRweDtcbiAgICB9XG59XG5cbi8qIOKUgOKUgCBTdGF0ZSBBcHByb3ZhbHMgcGFnZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cblxuLyogQmFubmVyICovXG4uc2EtYmFubmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNTgwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiAjZWFmM2ZiO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuc2EtYmFubmVyIHsgbWluLWhlaWdodDogNjQwcHg7IH1cbn1cbi5zYS1iYW5uZXJfX2JnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIG9iamVjdC1wb3NpdGlvbjogY2VudGVyIDcwJTtcbiAgICBvcGFjaXR5OiAwLjg1O1xufVxuLnNhLWJhbm5lcl9faW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGZsZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnNhLWJhbm5lcl9fdGl0bGUge1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMi4yNXJlbSwgNC41dncsIDMuNXJlbSk7XG59XG5cbi8qIFNlY3Rpb246IFJlY29nbml6ZWQgTmF0aW9uYWxseSAoZnVsbC1ibGVlZCBpbWFnZSBsZWZ0KSAqL1xuLnNhLXJlY29nbml6ZWQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZzogMDtcbn1cbi5zYS1yZWNvZ25pemVkID4gLmNvbnRhaW5lci14bC5weS01IHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG59XG4uc2EtcmVjb2duaXplZCA+IC5jb250YWluZXIteGwucHktNSA+IC5yb3cge1xuICAgIC0tYnMtZ3V0dGVyLXg6IDA7XG4gICAgLS1icy1ndXR0ZXIteTogMDtcbiAgICBtYXJnaW46IDA7XG59XG4uc2EtcmVjb2duaXplZCA+IC5jb250YWluZXIteGwucHktNSA+IC5yb3cgPiBbY2xhc3MqPVwiY29sLVwiXSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG59XG4uc2EtcmVjb2duaXplZF9faW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogODAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgY2xpcC1wYXRoOiBub25lO1xufVxuLnNhLXJlY29nbml6ZWRfX3RleHQge1xuICAgIGNvbG9yOiAjMmEyYTNhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY1O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAgIC5zYS1yZWNvZ25pemVkID4gLmNvbnRhaW5lci14bC5weS01ID4gLnJvdyA+IC5jb2wtbGctNjpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA4MHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMjBweDtcbiAgICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTQwMHB4KSB7XG4gICAgLnNhLXJlY29nbml6ZWQgPiAuY29udGFpbmVyLXhsLnB5LTUgPiAucm93ID4gLmNvbC1sZy02Omxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEyMHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMDBweDtcbiAgICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgICAuc2EtcmVjb2duaXplZCA+IC5jb250YWluZXIteGwucHktNSA+IC5yb3cgPiAuY29sLWxnLTY6bGFzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmc6IDQwcHggMjRweDtcbiAgICB9XG59XG5cbi8qIFNlY3Rpb246IEFwcHJvdmVkIEFjcm9zcyB0aGUgVW5pdGVkIFN0YXRlcyAoZGFyayBtYXAgYmFja2dyb3VuZCkgKi9cbi5zYS1tYXAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMWYyYThkO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiA4MHB4IDA7XG59XG4uc2EtbWFwID4gLmNvbnRhaW5lci14bC5weS01IHtcbiAgICBwYWRkaW5nLXRvcDogNjBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7XG59XG4uc2EtbWFwX19vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgzMSwgNDIsIDE0MSwgMC45MikgMCUsIHJnYmEoMzEsIDQyLCAxNDEsIDAuNTUpIDYwJSwgcmdiYSgzMSwgNDIsIDE0MSwgMC44NSkgMTAwJSk7XG59XG4uc2EtbWFwX19pbm5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG59XG4uc2EtbWFwX19oZWFkZXIge1xuICAgIG1heC13aWR0aDogMTIwMHB4O1xufVxuLnNhLW1hcF9faW50cm8ge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTIpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbWF4LXdpZHRoOiA3NjBweDtcbiAgICBmb250LXNpemU6IDEuMTI1cmVtO1xufVxuLnNhLW1hcF9fc3RhdGVzIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAzMnB4IDAgMDtcbiAgICBtYXgtd2lkdGg6IDY0MHB4O1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICBnYXA6IDIwcHggNTZweDtcbn1cbi5zYS1tYXBfX3N0YXRlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1sZWZ0OiAyOHB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG4uc2EtbWFwX19zdGF0ZTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDEycHg7XG4gICAgd2lkdGg6IDEwcHg7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EteWVsbG93KTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG4uc2EtbWFwX19zdGF0ZS1saW5rIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDRweDtcbiAgICB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiAxLjVweDtcbn1cbi5zYS1tYXBfX3N0YXRlLWxpbms6aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLXllbGxvdyk7XG59XG4vKiBZZWxsb3cgc2VjdGlvbi1kb3RzIHZhcmlhbnQgKG92ZXJyaWRlIGJhc2Ugc2VjdGlvbi1kb3RzIHNwYW4gY29sb3IpICovXG4uc2VjdGlvbi1kb3RzLS15ZWxsb3cgc3BhbiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS15ZWxsb3cpO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDc2Ny45OHB4KSB7XG4gICAgLnNhLW1hcF9fc3RhdGVzIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH1cbn1cblxuLyogQ29tYmluZWQgc2VjdGlvbjogRXhwYW5kaW5nIEFjY2VzcyArIEJyaW5nIFRvc2EgdG8gWW91ciBTdGF0ZSAqL1xuLnNhLWNvbWJvIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmOWZjO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL3N0YXRlLWFwcHJvdmFscy9FeHBhbmRpbmcgQWNjZXNzLWJnLmpwZycpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHBhZGRpbmc6IDgwcHggMDtcbn1cbi5zYS1jb21ib19fcm93IHtcbiAgICBwYWRkaW5nOiAzMnB4IDA7XG59XG4uc2EtY29tYm9fX3JvdyArIC5zYS1jb21ib19fcm93IHtcbiAgICBtYXJnaW4tdG9wOiAzMnB4ICFpbXBvcnRhbnQ7XG59XG4uc2EtY29tYm9fX2NhcmQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZzogNDhweCA1NnB4O1xuICAgIGJveC1zaGFkb3c6IDAgMTJweCAzMHB4IHJnYmEoMjAsIDMwLCA2MCwgMC4wOCk7XG59XG4uc2EtZXhwYW5kaW5nX19pbWcsXG4uc2EtYnJpbmdfX2ltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDY3JTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgY2xpcC1wYXRoOiBub25lO1xufVxuLnNhLWV4cGFuZGluZ19fdGV4dCxcbi5zYS1icmluZ19fdGV4dCB7XG4gICAgY29sb3I6ICMyYTJhM2E7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjU7XG4gICAgZm9udC1zaXplOiAxcmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gICAgLnNhLWNvbWJvX19jYXJkIHtcbiAgICAgICAgcGFkZGluZzogMzJweCAyOHB4O1xuICAgIH1cbn1cblxuLyogQ29tcGFjdCBuZXdzbGV0dGVyIG9uIHN0YXRlLWFwcHJvdmFscyBwYWdlIOKAlCB0cmltIHRoZSBzaGFyZWQgc2VjdGlvbidzXG4gICBkZWVwIDMyMHB4IHRvcCBwYWRkaW5nIHNpemVkIGZvciBhbiBvdmVybGFwcGluZyB0ZXN0aW1vbmlhbC4gKi9cbi5zYS1jb21ibyArIC5uZXdzbGV0dGVyIHtcbiAgICBwYWRkaW5nLXRvcDogODBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7XG59XG4uc2EtYnJpbmdfX2xpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDAgMCAxcmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG59XG4uc2EtYnJpbmdfX2xpc3QgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDIycHg7XG4gICAgY29sb3I6ICMyYTJhM2E7XG4gICAgZm9udC1zaXplOiAwLjk4cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG4uc2EtYnJpbmdfX2xpc3QgbGk6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiA4cHg7XG4gICAgd2lkdGg6IDhweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4vKiDilIDilIAgU3RhdGUgZGV0YWlsIHBhZ2UgKGUuZy4gL3N0YXRlL3RleGFzKSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cblxuLyogQmFubmVyICovXG4uc3QtYmFubmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNDYwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiAjZGNlYmY3O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuc3QtYmFubmVyIHsgbWluLWhlaWdodDogNTIwcHg7IH1cbn1cbi5zdC1iYW5uZXJfX2JnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIG9iamVjdC1wb3NpdGlvbjogcmlnaHQgY2VudGVyO1xufVxuLnN0LWJhbm5lcl9faW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGZsZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmctdG9wOiA0MHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xufVxuLnN0LWJhbm5lcl9fdGl0bGUge1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMi4yNXJlbSwgNC41dncsIDMuNXJlbSk7XG4gICAgdGV4dC13cmFwOiBiYWxhbmNlO1xufVxuLyogS2VlcCBsb25nIHRpdGxlcyBjbGVhciBvZiB0aGUgYWdlbmN5LWxvZ28gem9uZSBvbiB0aGUgcmlnaHQgKHRoZSBsb2dvJ3NcbiAgIGhvcml6b250YWwgcG9zaXRpb24gZm9sbG93cyB0aGUgYmFubmVyIGFydHdvcmssIHNvIHRoZSBzYWZlIHdpZHRoIGdyb3dzXG4gICB3aXRoIHRoZSB2aWV3cG9ydCkuICovXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgICAuc3QtYmFubmVyX19jb250ZW50IHsgbWF4LXdpZHRoOiA1MCU7IH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcbiAgICAuc3QtYmFubmVyX19jb250ZW50IHsgbWF4LXdpZHRoOiA1NSU7IH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxNDAwcHgpIHtcbiAgICAuc3QtYmFubmVyX19jb250ZW50IHsgbWF4LXdpZHRoOiA2MCU7IH1cbn1cbi5zdC1iYW5uZXJfX2J1bGxldHMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbn1cbi5zdC1iYW5uZXJfX2J1bGxldHMgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDIycHg7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgZm9udC1zaXplOiAxLjA1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG4uc3QtYmFubmVyX19idWxsZXRzIGxpOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogOXB4O1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbi5zdC1iYW5uZXJfX2FnZW5jeSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IGNhbGMoMTAwJSAtIDAuMjE2MiAqIG1heCgxMDAlLCAxNjg2cHgpKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICB6LWluZGV4OiAzO1xuICAgIHdpZHRoOiBjbGFtcCgyMjBweCwgMjZ2dywgMzQwcHgpO1xuICAgIGhlaWdodDogY2xhbXAoMTQwcHgsIDE1dncsIDI1MHB4KTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4vKiBJbnRybyArIGRvd25sb2FkICovXG4uc3QtaW50cm8ge1xuICAgIHBhZGRpbmc6IDIuNXJlbSAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmYgdXJsKCcuLi9pbWFnZXMvc3RhdGVzL1ZlY3Rvci5wbmcnKSBuby1yZXBlYXQgbGVmdCA2MHB4O1xuICAgIGJhY2tncm91bmQtc2l6ZTogNTAlIGF1dG87XG59XG4uc3QtaW50cm9fX3RleHQge1xuICAgIGNvbG9yOiAjMmEyYTNhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjc7XG4gICAgZm9udC1zaXplOiAxLjA2MjVyZW07XG4gICAgbWF4LXdpZHRoOiA5ODBweDtcbn1cblxuLyogVGhlIE9mZmljaWFsIEFwcHJvdmVkIExpc3QgKGRhcmsgdGVhbCkgKi9cbi5zdC1vZmZpY2lhbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdG9zYS10ZWFsKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGNvbG9yOiAjZmZmO1xufVxuLnN0LW9mZmljaWFsX19zdWIge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuLnN0LW9mZmljaWFsX190ZXh0IHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY1O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi5zdC1vZmZpY2lhbF9faW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxNDAwcHgpIHtcbiAgICAuc3Qtb2ZmaWNpYWxfX2ltZyB7XG4gICAgICAgIHdpZHRoOiA4MyU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIH1cbn1cbi5zdC1xdW90ZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICBib3JkZXItbGVmdDogNHB4IHNvbGlkIHZhcigtLXRvc2EteWVsbG93KTtcbiAgICBwYWRkaW5nOiAyNHB4IDI4cHg7XG4gICAgbWFyZ2luOiAwO1xufVxuLnN0LXF1b3RlIHAge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTUpO1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi5zdC1xdW90ZSBjaXRlIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS15ZWxsb3cpO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4vKiBFbGlnaWJsZSBTY2hvb2xzIGFuZCBHcmFkZXMgKi9cbi5zdC1lbGlnaWJsZSB7IGJhY2tncm91bmQ6ICNmZmY7IH1cbi5zdC1lbGlnaWJsZV9faW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogODAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiAwO1xufVxuLnN0LWVsaWdpYmxlX190ZXh0LFxuLnN0LXRleHQge1xuICAgIGNvbG9yOiAjMmEyYTNhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY1O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi5zdC1oMyB7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgZm9udC1zaXplOiBjbGFtcCgxLjRyZW0sIDIuNHZ3LCAxLjg1cmVtKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xufVxuLnN0LWltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG59XG4vKiBQb3J0cmFpdCBzaG90cyAoZS5nLiBSZXBvcnRpbmcgUHJvY2Vzcykgd291bGQgdG93ZXIgb3ZlciB0aGUgdGV4dCBjb2x1bW5cbiAgIGF0IGZ1bGwgY29sdW1uIHdpZHRoIOKAlCBjYXAgdGhlbSBhbmQgY2VudGVyIGluIHRoZSBjb2x1bW4gaW5zdGVhZC4gKi9cbi5zdC1pbWctLWNhcHBlZCB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDQ1MHB4O1xuICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG59XG4vKiBGaWxsIHRoZSBjb2x1bW4gYW5kIG1hdGNoIHRoZSBzaWJsaW5nIGNvbHVtbidzIGhlaWdodC4gKi9cbi5zdC1pbWctLWNvdmVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG59XG5cbi8qIFNoYXJlZCB0YWJsZXMgKi9cbi5zdC10YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBmb250LXNpemU6IDAuOTJyZW07XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5zdC10YWJsZSB0aGVhZCB0aCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uc3QtdGFibGUgdGJvZHkgdGQge1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U2ZTlmMjtcbiAgICBjb2xvcjogIzJhMmEzYTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG59XG4uc3QtdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHRkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLWJsdWUtbGlnaHQpO1xufVxuLnN0LXRhYmxlLS10d28gdGQ6Zmlyc3QtY2hpbGQge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbi5zdC1lbGlnaWJsZSAuc3QtdGFibGUsXG4uc3QtZWxpZ2libGUgLnN0LXRhYmxlIHRoLFxuLnN0LWVsaWdpYmxlIC5zdC10YWJsZSB0ZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2Q3ZGNlYTtcbn1cbi5zdC1ub3RlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmRlZWU2O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgcGFkZGluZzogMTRweCAxOHB4O1xuICAgIGNvbG9yOiAjNWE0YTNhO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU1O1xufVxuLnN0LXdhcm5pbmcge1xuICAgIGJhY2tncm91bmQ6ICNmZGVlZTY7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIHBhZGRpbmc6IDE0cHggMThweDtcbiAgICBjb2xvcjogIzhhNGIxYTtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41NTtcbn1cbi5zdC1saW5rIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAzcHg7XG59XG5cbi8qIFRpZXIgU3RydWN0dXJlIChibHVlKSAqL1xuLnN0LXRpZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgYmFja2dyb3VuZC1zaXplOiBhdXRvIDE0NSU7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIHRvcDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDMuNXJlbSAwO1xufVxuLnN0LXRpZXIgLnNlY3Rpb24tZG90cy0teWVsbG93IHNwYW4ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2Etb3JhbmdlKSAhaW1wb3J0YW50O1xufVxuLnN0LXRpZXJfX2ludHJvIHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuICAgIGZvbnQtc2l6ZTogMS4wNXJlbTtcbn1cbi5zdC10aWVyX19jYXJkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBwYWRkaW5nOiAyOHB4IDI2cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJveC1zaGFkb3c6IDAgMTJweCAzMHB4IHJnYmEoMjAsIDMwLCA2MCwgMC4xMik7XG59XG4uc3QtdGllcl9fY2FyZDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMjZweDtcbiAgICB3aWR0aDogNTZweDtcbiAgICBoZWlnaHQ6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLW9yYW5nZSk7XG59XG4uc3QtdGllcl9fdGl0bGUge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgZm9udC1zaXplOiAxLjM1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbn1cbi5zdC10aWVyX19jYXJkIHAge1xuICAgIGNvbG9yOiAjMmEyYTNhO1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIG1hcmdpbjogMDtcbn1cbi5zdC10aWVyX19mb290bm90ZSB7XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45Mik7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbWF4LXdpZHRoOiA5ODBweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG4uc3QtdGllcl9fdGFibGUtd3JhcCB7XG4gICAgbWF4LXdpZHRoOiA5ODBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm94LXNoYWRvdzogMCAxMnB4IDMwcHggcmdiYSgyMCwgMzAsIDYwLCAwLjE4KTtcbn1cbi5zdC10YWJsZS0taW52ZXJzZSB0aGVhZCB0aCB7XG4gICAgYmFja2dyb3VuZDogIzFhMWEyZTtcbn1cbi5zdC10YWJsZS0taW52ZXJzZSB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qIEFwcHJvdmVkIFRvc2EgQ2VydGlmaWNhdGlvbnMgKi9cbi5zdC1jZXJ0cyB7IGJhY2tncm91bmQ6ICNmZmY7IH1cbi5zdC1jZXJ0c19faW50cm8ge1xuICAgIGNvbG9yOiAjMmEyYTNhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY1O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBtYXgtd2lkdGg6IDk4MHB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbi5zdC1jZXJ0c19fZ3JvdXAgdGQge1xuICAgIGJhY2tncm91bmQ6ICNlZWYxZjggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMWExYTJlO1xufVxuLnN0LWNlcnRzX19ncm91cCBpIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xufVxuLnN0LWNlcnRzX19ncm91cC1pY29uIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuLnN0LWNlcnRzX190YWJsZSAuc3QtY2VydHNfX25hbWUge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi5zdC1jZXJ0c19fbGluayB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiB0ZXh0LWRlY29yYXRpb24tY29sb3IgMC4xNXMgZWFzZTtcbn1cbi5zdC1jZXJ0c19fbGluazpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBjdXJyZW50Q29sb3I7XG59XG5cbi5zdC1jZXJ0c19fdGFibGUgdGgsXG4uc3QtY2VydHNfX3RhYmxlIHRkIHtcbiAgICBtaW4td2lkdGg6IDEwMHB4O1xufVxuXG4vKiBBY2NvdW50YWJpbGl0eSAobGlnaHQgYmx1ZSkgKi9cbi5zdC1hY2NvdW50YWJpbGl0eSB7IGJhY2tncm91bmQ6IHZhcigtLXRvc2EtbGlnaHQtYmx1ZSk7IH1cblxuLyogRnVuZGluZyAqL1xuLnN0LWZ1bmRpbmcgeyBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4uc3QtbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xufVxuLnN0LWxpc3QgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDIycHg7XG4gICAgY29sb3I6ICMyYTJhM2E7XG4gICAgZm9udC1zaXplOiAwLjk4cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG4uc3QtbGlzdCBsaTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDhweDtcbiAgICB3aWR0aDogOHB4O1xuICAgIGhlaWdodDogOHB4O1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5cbi8qIENUQSAoeWVsbG93KSDigJQgbWlycm9ycyB0aGUgaG9tZXBhZ2UgLmdldC1zdGFydGVkIHNlY3Rpb24gKi9cbi5zdC1jdGEge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1ib3R0b206IC0yMjBweDtcbiAgICB6LWluZGV4OiAyO1xufVxuLnN0LWN0YV9fY2FyZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS15ZWxsb3cpO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgLyogQ2xpcC1wYXRoIGN1dCBvbiB0b3AtcmlnaHQgdG8gbWF0Y2ggZ2V0LXN0YXJ0ZWQgc3R5bGUgKi9cbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCBjYWxjKDEwMCUgLSA2MHB4KSAwLCAxMDAlIDYwcHgsIDEwMCUgMTAwJSwgMCAxMDAlKTtcbn1cbi5zdC1jdGFfX2ltYWdlLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNDIwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5zdC1jdGFfX2ltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDQ0MHB4O1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuLnN0LWN0YV9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS41cmVtLCAyLjh2dywgMi4yNXJlbSk7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbn1cbi5zdC1jdGFfX3RleHQge1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIG9wYWNpdHk6IDAuODU7XG4gICAgZm9udC1zaXplOiAxLjA1cmVtO1xufVxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gICAgLnN0LWJhbm5lcl9fYWdlbmN5IHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IGNsYW1wKDIwMHB4LCA2MHZ3LCAzMjBweCk7XG4gICAgICAgIGhlaWdodDogY2xhbXAoMTEwcHgsIDMydncsIDE4MHB4KTtcbiAgICAgICAgbWFyZ2luOiAyNHB4IGF1dG8gMDtcbiAgICB9XG59XG5cbi8qIOKUgOKUgCBQYXJ0bmVyc2hpcHMgcGFnZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cblxuLyog4pSA4pSAIENhcmVlcnMgcGFnZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cblxuLyogQmFubmVyICovXG4uY2FyZWVycy1iYW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiA1ODBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICNlZWYzZmE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xuICAgIC5jYXJlZXJzLWJhbm5lciB7IG1pbi1oZWlnaHQ6IDY0MHB4OyB9XG59XG4uY2FyZWVycy1iYW5uZXJfX2JnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIG9iamVjdC1wb3NpdGlvbjogcmlnaHQgY2VudGVyO1xufVxuLmNhcmVlcnMtYmFubmVyX19vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTIpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzIpIDMwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSA2MCUpO1xufVxuLmNhcmVlcnMtYmFubmVyX19pbm5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uY2FyZWVycy1iYW5uZXJfX3RpdGxlIHtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBmb250LXNpemU6IGNsYW1wKDIuNXJlbSwgNXZ3LCA0cmVtKTtcbn1cblxuLyogU2VjdGlvbiAxIOKAlCBXaHkgV29yayB3aXRoIFVzIChmdWxsLWJsZWVkIGltYWdlIGxlZnQsIHBhZGRlZCB0ZXh0IHJpZ2h0KSAqL1xuLmNhcmVlcnMtd2h5IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDA7XG59XG4uY2FyZWVycy13aHkgPiAuY29udGFpbmVyLXhsLnB5LTUge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbn1cbi5jYXJlZXJzLXdoeSA+IC5jb250YWluZXIteGwucHktNSA+IC5yb3cge1xuICAgIC0tYnMtZ3V0dGVyLXg6IDA7XG4gICAgLS1icy1ndXR0ZXIteTogMDtcbiAgICBtYXJnaW46IDA7XG59XG4uY2FyZWVycy13aHkgPiAuY29udGFpbmVyLXhsLnB5LTUgPiAucm93ID4gW2NsYXNzKj1cImNvbC1cIl0ge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuLmNhcmVlcnMtd2h5X19pbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgY2xpcC1wYXRoOiBub25lO1xufVxuLmNhcmVlcnMtd2h5X190ZXh0IHtcbiAgICBjb2xvcjogIzJhMmEzYTtcbiAgICBsaW5lLWhlaWdodDogMS42NTtcbiAgICBmb250LXNpemU6IDFyZW07XG59XG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcbiAgICAuY2FyZWVycy13aHkgPiAuY29udGFpbmVyLXhsLnB5LTUgPiAucm93ID4gLmNvbC1sZy02Omxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDgwcHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEyMHB4O1xuICAgIH1cbn1cbkBtZWRpYSAobWluLXdpZHRoOiAxNDAwcHgpIHtcbiAgICAuY2FyZWVycy13aHkgPiAuY29udGFpbmVyLXhsLnB5LTUgPiAucm93ID4gLmNvbC1sZy02Omxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEyMHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMDBweDtcbiAgICB9XG59XG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcbiAgICAuY2FyZWVycy13aHkgPiAuY29udGFpbmVyLXhsLnB5LTUgPiAucm93ID4gLmNvbC1sZy02Omxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nOiA0MHB4IDI0cHg7XG4gICAgfVxufVxuXG4vKiBTZWN0aW9uIDIg4oCUIEJlbmVmaXRzICYgUGVya3MgKi9cbi5jYXJlZXJzLWJlbmVmaXRzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZThmNWZhO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2NhcmVlcnMvQmVuZWZpdHMgJiBQZXJrcy1iZy5qcGcnKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBwYWRkaW5nOiA0MHB4IDA7XG59XG4uY2FyZWVycy1iZW5lZml0cyA+IC5jb250YWluZXIteGwucHktNSB7XG4gICAgcGFkZGluZy10b3A6IDYwcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNjBweCAhaW1wb3J0YW50O1xufVxuLmNhcmVlcnMtYmVuZWZpdHNfX2ludHJvIHtcbiAgICBjb2xvcjogIzFhMWEyZTtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5jYXJlZXJzLWJlbmVmaXRzX19saXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcbiAgICBnYXA6IDEycHggMjhweDtcbn1cbi5jYXJlZXJzLWJlbmVmaXRzX19saXN0IGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1sZWZ0OiAyMnB4O1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuLmNhcmVlcnMtYmVuZWZpdHNfX2xpc3QgbGk6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiA5cHg7XG4gICAgd2lkdGg6IDhweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuLmNhcmVlcnMtYmVuZWZpdHNfX2ltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIGNsaXAtcGF0aDogbm9uZTtcbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAgIC5jYXJlZXJzLWJlbmVmaXRzX19saXN0IHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7IH1cbn1cblxuLyogU2VjdGlvbiAzIOKAlCBIb3cgdG8gQXBwbHkgKi9cbi5jYXJlZXJzLWFwcGx5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZmNGY4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2NhcmVlcnMvSG93IHRvIEFwcGx5LWJnLmpwZycpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDYwcHggMDtcbn1cbi5jYXJlZXJzLWFwcGx5ID4gLmNvbnRhaW5lci14bC5weS01IHtcbiAgICBwYWRkaW5nLXRvcDogNDBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiA0MHB4ICFpbXBvcnRhbnQ7XG59XG4uY2FyZWVycy1hcHBseV9faW50cm8ge1xuICAgIGNvbG9yOiAjMmEyYTNhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbWF4LXdpZHRoOiA3NjBweDtcbiAgICBmb250LXNpemU6IDFyZW07XG59XG4uY2FyZWVycy1hcHBseV9fcm93IHtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDMwLCAzMCwgNjAsIDAuMDgpO1xufVxuLmNhcmVlcnMtYXBwbHlfX2NhcmQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZzogNDhweCA0MHB4IDU2cHg7XG4gICAgbWluLWhlaWdodDogMzYwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlMGUzZWQ7XG59XG4uY2FyZWVycy1hcHBseV9fcm93ID4gW2NsYXNzKj1cImNvbC1cIl06bGFzdC1jaGlsZCAuY2FyZWVycy1hcHBseV9fY2FyZCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xufVxuLmNhcmVlcnMtYXBwbHlfX3N0ZXAtcGlsbCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMjRweDtcbiAgICByaWdodDogMjRweDtcbiAgICBiYWNrZ3JvdW5kOiAjYjNlMGQ2O1xuICAgIGNvbG9yOiAjMDA1MzU2O1xuICAgIGZvbnQtc2l6ZTogMC43cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICBwYWRkaW5nOiA0cHggMTBweDtcbn1cbi5jYXJlZXJzLWFwcGx5X19pY29uIHtcbiAgICB3aWR0aDogODBweDtcbiAgICBoZWlnaHQ6IDgwcHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuLmNhcmVlcnMtYXBwbHlfX2JhciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgZmlsdGVyOiBibHVyKDdweCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbn1cbi5jYXJlZXJzLWFwcGx5X190aXRsZSB7XG4gICAgY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgIG1hcmdpbjogMCAwIDEycHg7XG59XG4uY2FyZWVycy1hcHBseV9fdGV4dCB7XG4gICAgY29sb3I6ICM0YTRhNWU7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY3Ljk4cHgpIHtcbiAgICAuY2FyZWVycy1hcHBseV9fY2FyZCB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMGUzZWQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDM2cHggMjhweCA0MHB4O1xuICAgIH1cbiAgICAuY2FyZWVycy1hcHBseV9fcm93ID4gW2NsYXNzKj1cImNvbC1cIl06bGFzdC1jaGlsZCAuY2FyZWVycy1hcHBseV9fY2FyZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgfVxufVxuXG4vKiBTZWN0aW9uIDQg4oCUIEV4cGxvcmUgT3Bwb3J0dW5pdGllcyAqL1xuLmNhcmVlcnMtam9icyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9jYXJlZXJzL0V4cGxvcmUgT3Bwb3J0dW5pdGllcy1iZy5qcGcnKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBjb2xvcjogI2ZmZjtcbn1cbi5jYXJlZXJzLWpvYnNfX2ludHJvIHtcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkyKTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIG1heC13aWR0aDogNzYwcHg7XG4gICAgZm9udC1zaXplOiAxcmVtO1xufVxuLmNhcmVlcnMtam9ic19fbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMjBweDtcbiAgICBtYXgtd2lkdGg6IDExMDBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbn1cbi5jYXJlZXJzLWpvYnNfX2NhcmQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZzogMjRweCAyOHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDI0cHg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuLmNhcmVlcnMtam9ic19faWNvbiB7XG4gICAgd2lkdGg6IDk2cHg7XG4gICAgaGVpZ2h0OiA5NnB4O1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG4uY2FyZWVycy1qb2JzX19ib2R5IHtcbiAgICBmbGV4OiAxIDEgMzIwcHg7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuLmNhcmVlcnMtam9ic19fdGl0bGUge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIG1hcmdpbjogMCAwIDhweDtcbn1cbi5jYXJlZXJzLWpvYnNfX2Rlc2Mge1xuICAgIGNvbG9yOiAjMmEyYTNhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU1O1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbn1cbi5jYXJlZXJzLWpvYnNfX2FwcGx5IHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLmNhcmVlcnMtam9ic19fbW9yZSB7XG4gICAgbWFyZ2luLXRvcDogNTZweDtcbn1cbi5jYXJlZXJzLWpvYnNfX21vcmUtdGl0bGUge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS41cmVtLCAyLjR2dywgMnJlbSk7XG59XG4uY2FyZWVycy1qb2JzX19tb3JlLXRleHQge1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOTIpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbWF4LXdpZHRoOiA4ODBweDtcbiAgICBmb250LXNpemU6IDFyZW07XG59XG4uY2FyZWVycy1qb2JzX19lbWFpbCB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDNweDtcbn1cbi5jYXJlZXJzLWpvYnNfX2VtYWlsOmhvdmVyIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS15ZWxsb3cpO1xufVxuXG4vKiBDb21wYWN0IG5ld3NsZXR0ZXIgb24gdGhlIGNhcmVlcnMgcGFnZSDigJQgdGhlIHByZXZpb3VzIC5jYXJlZXJzLWpvYnMgc2VjdGlvblxuICAgaXMgYWxyZWFkeSBoZWF2eSwgc28gdHJpbSB0aGUgc2hhcmVkIG5ld3NsZXR0ZXIncyBkZWVwIHRvcCBwYWRkaW5nLiAqL1xuLmNhcmVlcnMtam9icyArIC5uZXdzbGV0dGVyIHtcbiAgICBwYWRkaW5nLXRvcDogODBweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiA2MHB4ICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xuICAgIC5jYXJlZXJzLWpvYnNfX2NhcmQgeyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuICAgIC5jYXJlZXJzLWpvYnNfX2FwcGx5IHsgYWxpZ24tc2VsZjogc3RyZXRjaDsgfVxufVxuXG4vKiDilIDilIAgQ2FuZGlkYXRlIC8gQWRtaW4gTG9naW4gcGFnZXMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4ubG9naW4taGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWNlY2YzO1xuICAgIHBhZGRpbmc6IDA7XG59XG4ubG9naW4taGVhZGVyX19pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE2cHg7XG59XG4ubG9naW4taGVhZGVyX19sb2dvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG59XG4ubG9naW4taGVhZGVyX19sb2dvIGltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG4vKiBUaGUgaGVhZGVyIHN3aXRjaCBidXR0b24gcmV1c2VzIHRoZSAuY3RhLWJ0bi0tb3JhbmdlIHZpc3VhbC4gKi9cbi5sb2dpbi1oZWFkZXJfX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE2cHg7XG59XG5cbi8qIExhbmd1YWdlIHN3aXRjaGVyOiBtaW5pbWFsIGdsb2JlICsgbG9jYWxlIGNvZGUsIG5vIGJvcmRlci9iYWNrZ3JvdW5kLlxuICAgRHJvcGRvd24gbGlzdHMgdGhlIGF2YWlsYWJsZSBsb2NhbGVzIHdpdGggYSBzbWFsbCB1cHBlcmNhc2UgY29kZSArXG4gICB0aGUgbGFuZ3VhZ2UgbmFtZS4gKi9cbi5sb2dpbi1oZWFkZXJfX2xhbmcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5sb2dpbi1oZWFkZXJfX2xhbmctYnRuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDZweCA4cHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIC4xNXM7XG59XG4ubG9naW4taGVhZGVyX19sYW5nLWJ0biBpIHtcbiAgICBmb250LXNpemU6IDEuMTVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgY29sb3I6ICM2YjZiNzg7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgLjE1cztcbn1cbi5sb2dpbi1oZWFkZXJfX2xhbmctYnRuOmhvdmVyLFxuLmxvZ2luLWhlYWRlcl9fbGFuZy1idG46Zm9jdXMsXG4ubG9naW4taGVhZGVyX19sYW5nLWJ0blthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbn1cbi5sb2dpbi1oZWFkZXJfX2xhbmctYnRuOmhvdmVyIGksXG4ubG9naW4taGVhZGVyX19sYW5nLWJ0bjpmb2N1cyBpLFxuLmxvZ2luLWhlYWRlcl9fbGFuZy1idG5bYXJpYS1leHBhbmRlZD1cInRydWVcIl0gaSB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbn1cbi5sb2dpbi1oZWFkZXJfX2xhbmctY29kZSB7XG4gICAgZm9udC12YXJpYW50OiBzbWFsbC1jYXBzO1xufVxuXG4ubG9naW4taGVhZGVyX19sYW5nLW1lbnUge1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHBhZGRpbmc6IDRweCAwO1xuICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VjZWNmMztcbiAgICBib3gtc2hhZG93OiAwIDEycHggMjhweCByZ2JhKDIwLCAzMCwgNjAsIDAuMTApO1xufVxuLmxvZ2luLWhlYWRlcl9fbGFuZy1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMTZweDtcbiAgICBmb250LXNpemU6IDAuOTJyZW07XG4gICAgY29sb3I6ICMxYTFhMmU7XG59XG4ubG9naW4taGVhZGVyX19sYW5nLWl0ZW06aG92ZXIsXG4ubG9naW4taGVhZGVyX19sYW5nLWl0ZW06Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICNmN2Y4ZmU7XG4gICAgY29sb3I6ICMxYTFhMmU7XG59XG4ubG9naW4taGVhZGVyX19sYW5nLWNvZGUtbWluaSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1pbi13aWR0aDogMjhweDtcbiAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzZiNmI3ODtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG4ubG9naW4taGVhZGVyX19sYW5nLWl0ZW0uaXMtYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG59XG4ubG9naW4taGVhZGVyX19sYW5nLWl0ZW0uaXMtYWN0aXZlIC5sb2dpbi1oZWFkZXJfX2xhbmctY29kZS1taW5pIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xufVxuXG4ubG9naW4tYXJ0aWNsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIG1pbi1oZWlnaHQ6IGNhbGMoMTAwdmggLSA4MHB4KTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuLmxvZ2luLWFydGljbGVfX2xlZnQge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDQwcHggMjRweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRTZGM0Y5O1xufVxuLmxvZ2luLWFydGljbGVfX3JpZ2h0IHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRvc2EtbGlnaHQtYmx1ZSk7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBtaW4taGVpZ2h0OiAzMjBweDtcbn1cblxuLmxvZ2luLWZvcm0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogNDIwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuLmxvZ2luLWZvcm1fX3RpdGxlIHtcbiAgICBmb250LXNpemU6IGNsYW1wKDEuNjI1cmVtLCAyLjR2dywgMi4xMjVyZW0pO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBtYXJnaW46IDAgMCAyOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ubG9naW4tZm9ybV9fZ3JvdXAge1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG59XG4ubG9naW4tZm9ybV9fZ3JvdXAtLXBhc3N3b3JkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ubG9naW4tZm9ybV9faW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNTU1NTU5O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xufVxuLmxvZ2luLWZvcm1fX2dyb3VwLS1wYXNzd29yZCAubG9naW4tZm9ybV9faW5wdXQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDQ4cHg7XG59XG4ubG9naW4tZm9ybV9faW5wdXQ6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIC4yNXJlbSByZ2JhKDEzLCAxMTAsIDI1MywgMC4yNSk7XG59XG4ubG9naW4tZm9ybV9fdG9nZ2xlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDEycHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICBjb2xvcjogIzU1NTU1OTtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcGFkZGluZzogNHB4O1xufVxuLmxvZ2luLWZvcm1fX3RvZ2dsZTpob3ZlciB7IGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7IH1cblxuLmxvZ2luLWZvcm1fX3JlbWVtYmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBjb2xvcjogIzFhMWEyZTtcbn1cblxuLmxvZ2luLWZvcm1fX2xvc3RwYXNzd29yZCxcbi5sb2dpbi1mb3JtX19oZWxwbG9naW4ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xufVxuLmxvZ2luLWZvcm1fX2xvc3RwYXNzd29yZDpob3Zlcixcbi5sb2dpbi1mb3JtX19oZWxwbG9naW46aG92ZXIge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG59XG5cbi5sb2dpbi1mb3JtX19zdWJtaXQge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xufVxuLmxvZ2luLWFydGljbGUtLWNhbmRpZGF0ZSAubG9naW4tZm9ybV9fc3VibWl0IHtcbiAgICBiYWNrZ3JvdW5kOiAjRDYzRDBBO1xufVxuXG4ubG9naW4tZm9ybV9fZXJyb3Ige1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgbWluLWhlaWdodDogMS4yZW07XG4gICAgbWFyZ2luOiAxNnB4IDAgMDtcbn1cblxuLmxvZ2luLWZvcm1fX3N1Y2Nlc3Mge1xuICAgIGNvbG9yOiAjMWM3YzNjO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIG1pbi1oZWlnaHQ6IDEuMmVtO1xuICAgIG1hcmdpbjogOHB4IDAgMDtcbn1cblxuI2xvc3QtcGFzc3dvcmQtbW9kYWwgLmxvZ2luLWZvcm1fX2Vycm9yLFxuI2xvc3QtcGFzc3dvcmQtbW9kYWwgLmxvZ2luLWZvcm1fX3N1Y2Nlc3Mge1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xuICAgIC5sb2dpbi1hcnRpY2xlIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWluLWhlaWdodDogYXV0bztcbiAgICB9XG4gICAgLmxvZ2luLWFydGljbGVfX2xlZnQsXG4gICAgLmxvZ2luLWFydGljbGVfX3JpZ2h0IHtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLmxvZ2luLWFydGljbGVfX3JpZ2h0IHtcbiAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICBoZWlnaHQ6IDIyMHB4O1xuICAgIH1cbiAgICAubG9naW4tYXJ0aWNsZV9fbGVmdCB7XG4gICAgICAgIHBhZGRpbmc6IDQwcHggMjRweCA2MHB4O1xuICAgIH1cbn1cblxuLyog4pSA4pSAIFdobyBXZSBBcmUgcGFnZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5zZWN0aW9uLXRpdGxlLS1pbnZlcnNlIHtcbiAgICBjb2xvcjogI2ZmZjtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBTYW1wbGUgVGVzdHMgbW9kYWwg4oCUIHBvc2l0aW9uaW5nIHRlc3RzIGNhdGFsb2cgb3BlbmVkIGZyb20gdGhlIG1lbnViYXJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLnNhbXBsZS10ZXN0cy1tb2RhbCAubW9kYWwtY29udGVudCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAvKiBPdmVycmlkZSBCb290c3RyYXAncyBtb2RhbCByYWRpdXMgY3VzdG9tIHByb3BlcnRpZXMgc28gdGhlIGNvcm5lcnNcbiAgICAgICBzdGF5IHJlY3Rhbmd1bGFyLCBjb25zaXN0ZW50IHdpdGggdGhlIHJlc3Qgb2YgdGhlIG5ldyBkZXNpZ24uICovXG4gICAgLS1icy1tb2RhbC1ib3JkZXItcmFkaXVzOiAwO1xuICAgIC0tYnMtbW9kYWwtaW5uZXItYm9yZGVyLXJhZGl1czogMDtcbn1cbi5zYW1wbGUtdGVzdHMtbW9kYWwgLm1vZGFsLWhlYWRlciB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG4gICAgcGFkZGluZzogMS4yNXJlbSAxLjVyZW07XG59XG4uc2FtcGxlLXRlc3RzLW1vZGFsIC5tb2RhbC1ib2R5IHtcbiAgICBwYWRkaW5nOiAxLjVyZW07XG59XG4uc2FtcGxlLXRlc3RzLW1vZGFsIGg2IHtcbiAgICBjb2xvcjogIzU1NTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xufVxuLnNhbXBsZS10ZXN0cy1tb2RhbF9faXRlbSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBwYWRkaW5nOiAxMnB4IDhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlLCBib3JkZXItY29sb3IgMC4xNXMgZWFzZSwgdHJhbnNmb3JtIDAuMTVzIGVhc2U7XG4gICAgY29sb3I6ICMxYTFhMWE7XG59XG4uc2FtcGxlLXRlc3RzLW1vZGFsX19pdGVtOmhvdmVyLFxuLnNhbXBsZS10ZXN0cy1tb2RhbF9faXRlbTpmb2N1cy12aXNpYmxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmN2Y3O1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuLnNhbXBsZS10ZXN0cy1tb2RhbF9faXRlbS5pcy1sb2FkaW5nIHtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uc2FtcGxlLXRlc3RzLW1vZGFsX19pY29uIHtcbiAgICB3aWR0aDogNzBweDtcbiAgICBoZWlnaHQ6IDcwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDEycHg7XG59XG4uc2FtcGxlLXRlc3RzLW1vZGFsX19pY29uIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cbi5zYW1wbGUtdGVzdHMtbW9kYWxfX2ljb24gaSB7XG4gICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xufVxuLnNhbXBsZS10ZXN0cy1tb2RhbF9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vKiDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgIEZBUXMgcGFnZSAodGVtcGxhdGVzL3BhZ2VzL2ZhcXMuaHRtbC50d2lnKVxuICAgTGlnaHQgaGVybyB3aXRoIHRpdGxlICsgc2VhcmNoIGJhciwgZm9sbG93ZWQgYnkgd2hpdGUgYWNjb3JkaW9uIGNhcmRzXG4gICBncm91cGVkIGJ5IGNhdGVnb3J5LiBUaGUgYWN0aXZlIGl0ZW0gZ2V0cyBhIGJsdWUgdG9wIGFjY2VudC5cbiAgIFByZWZpeCBgZnBgID0gXCJGQVFzIFBhZ2VcIiDigJQga2VlcHMgaXQgaXNvbGF0ZWQgZnJvbSB0aGUgZGFyayBgLmZhcWBcbiAgIGJsb2NrIHJldXNlZCBpbnNpZGUgb25saW5lLXN0b3JlIGV0Yy5cbiAgIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmZwLWhlcm8ge1xuICAgIC8qIExpZ2h0IGJhbm5lciAoc2FtZSBwYWxldHRlIGFzIC5scC1iYW5uZXIpIHNvIHRoZSBoZXJvIHN0YW5kcyBvdXRcbiAgICAgICBmcm9tIHRoZSB3aGl0ZSBjb250ZW50IGFuZCB0aGUgc2VhcmNoIGJhciBwb3BzLiAqL1xuICAgIGJhY2tncm91bmQ6ICNlYWYzZmI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkYmU1ZWU7XG4gICAgcGFkZGluZzogNDBweCAwIDMycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzJweDtcbn1cbi5mcC1oZXJvX190aXRsZSB7XG4gICAgZm9udC1zaXplOiBjbGFtcCgxLjc1cmVtLCAxLjJyZW0gKyAyLjR2dywgMi43NXJlbSk7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG4uZnAtaGVyb19fc2VhcmNoIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGdhcDogMDtcbiAgICBtYXgtd2lkdGg6IDU2MHB4O1xuICAgIG1hcmdpbjogOHB4IGF1dG8gMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDZweDtcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMTUsIDIzLCA0MiwgLjA4KTtcbn1cbi5mcC1oZXJvX19zZWFyY2gtd3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXg6IDE7XG59XG4uZnAtaGVyb19fc2VhcmNoLWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAxNHB4O1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBjb2xvcjogIzZiNzI4MDtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uZnAtaGVyb19fc2VhcmNoLWlucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgcGFkZGluZzogMTBweCAxNHB4IDEwcHggMzhweDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG59XG4uZnAtaGVyb19fc2VhcmNoLWlucHV0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uZnAtaGVyb19fc2VhcmNoLWlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICM5YWExYWQ7XG59XG4uZnAtaGVyb19fc2VhcmNoLWJ0biB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBwYWRkaW5nOiAwIDI4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICAvKiBUb3AtcmlnaHQgY2hhbWZlciDigJQgbWF0Y2hlcyB0aGUgY3RhLWJ0biAvIHBhY2stY2hlY2tvdXQgcGF0dGVybi4gKi9cbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCBjYWxjKDEwMCUgLSAxNHB4KSAwLCAxMDAlIDE0cHgsIDEwMCUgMTAwJSwgMCAxMDAlKTtcbn1cbi5mcC1oZXJvX19zZWFyY2gtYnRuLWljb24ge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIC8qIFRoZSBhc3NldCBpcyBkYXJrIGJ5IGRlZmF1bHQg4oCUIGludmVydCBpdCBzbyBpdCByZWFkcyBvbiB0aGUgb3JhbmdlIGJnLiAqL1xuICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwKSBpbnZlcnQoMSk7XG59XG4uZnAtaGVyb19fc2VhcmNoLWJ0bjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Q4M2EwNDtcbn1cblxuLyogQWNjb3JkaW9uIGxpc3QgKi9cbi5mcC1saXN0IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuLmZwLWxpc3RfX2VtcHR5IHtcbiAgICBwYWRkaW5nOiA0OHB4IDE2cHg7XG4gICAgZm9udC1zaXplOiAxcmVtO1xufVxuLmZwLWNhdCB7XG4gICAgbWF4LXdpZHRoOiA4ODBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nLXRvcDogMzJweDtcbn1cbi5mcC1jYXRfX3RpdGxlIHtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDRweDtcbn1cblxuLyogRWFjaCBpdGVtOiB3aGl0ZSBjYXJkLCBzb2Z0IGJvcmRlciwgaG92ZXIgbGlmdCwgYmx1ZSB0b3AgYWNjZW50IHdoZW4gb3BlbiAqL1xuLmZwLWl0ZW0ge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTdlYjtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMgZWFzZSwgYm94LXNoYWRvdyAwLjE1cyBlYXNlO1xuICAgIC8qIFJlc2V0IEJvb3RzdHJhcCdzIGFjY29yZGlvbiByYWRpdXMgdmFyaWFibGVzIHNvIGZpcnN0L2xhc3QgaXRlbXNcbiAgICAgICBkb24ndCBwaWNrIHVwIHJvdW5kZWQgY29ybmVycyBmcm9tIHRoZSBkZWZhdWx0IHRoZW1lLiAqL1xuICAgIC0tYnMtYWNjb3JkaW9uLWJvcmRlci1yYWRpdXM6IDA7XG4gICAgLS1icy1hY2NvcmRpb24taW5uZXItYm9yZGVyLXJhZGl1czogMDtcbn1cbi5mcC1pdGVtOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6ICNjYmQ1ZTE7XG59XG4uZnAtaXRlbTpoYXMoLmZwLWl0ZW1fX2J0bjpub3QoLmNvbGxhcHNlZCkpIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLXRvc2EtYmx1ZSk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMThweCByZ2JhKDY5LCA2OSwgMjE5LCAwLjA4KTtcbn1cbi8qIEJvb3RzdHJhcCByZW1vdmVzIHRvcCBib3JkZXIgYmV0d2VlbiBzdGFja2VkIGl0ZW1zIOKAlCB3ZSB3YW50IGV2ZXJ5IGNhcmRcbiAgIGluZGVwZW5kZW50bHkgYm9yZGVyZWQsIHNvIHJlLWVzdGFibGlzaCBpdC4gKi9cbi5mcC1pdGVtOm5vdCg6Zmlyc3Qtb2YtdHlwZSkge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTVlN2ViO1xufVxuLmZwLWl0ZW06aGFzKC5mcC1pdGVtX19idG46bm90KC5jb2xsYXBzZWQpKTpub3QoOmZpcnN0LW9mLXR5cGUpIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tdG9zYS1ibHVlKTtcbn1cblxuLmZwLWl0ZW1fX2J0biB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBwYWRkaW5nOiAxOHB4IDU2cHggMThweCAyMnB4O1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5mcC1pdGVtX19idG46bm90KC5jb2xsYXBzZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG4uZnAtaXRlbV9fYnRuOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4vKiBSZXBsYWNlIEJvb3RzdHJhcCdzIGNoZXZyb24gd2l0aCBhICsgLyDiiJIgY2hhcmFjdGVyIGluIHRvc2Egb3JhbmdlLiAqL1xuLmZwLWl0ZW1fX2J0bjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgY29udGVudDogXCIrXCI7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDIycHg7XG4gICAgdG9wOiA1MCU7XG4gICAgbWFyZ2luLXRvcDogLTAuNTVyZW07XG59XG4uZnAtaXRlbV9fYnRuOm5vdCguY29sbGFwc2VkKTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwi4oiSXCI7IC8qIFUrMjIxMiBtaW51cyBzaWduICovXG4gICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG59XG5cbi5mcC1pdGVtX19hIHtcbiAgICBjb2xvcjogIzRiNTU2MztcbiAgICBwYWRkaW5nOiAwIDIycHggMjBweDtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbn1cbi5mcC1pdGVtX19hIGEge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcbiAgICAuZnAtaGVyb19fc2VhcmNoIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgICAuZnAtaGVyb19fc2VhcmNoLXdyYXBwZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMTUsIDIzLCA0MiwgLjA4KTtcbiAgICB9XG4gICAgLmZwLWhlcm9fX3NlYXJjaC1idG4ge1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgIH1cbn1cblxuLyogRkFRIOKAlCB0b3BpYyBncmlkICh0aGUgbGFuZGluZyBcInNvbW1haXJlXCIpICovXG4uZnAtdG9jIHtcbiAgICBtYXgtd2lkdGg6IDk2MHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmctdG9wOiAyNHB4O1xufVxuLmZwLXRvY19faW50cm8ge1xuICAgIGNvbG9yOiAjNmI3MjgwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xufVxuLmZwLXRvY19fZ3JpZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgyODBweCwgMWZyKSk7XG4gICAgZ2FwOiAxNnB4O1xufVxuLmZwLXRvY19fY2FyZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTZweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTdlYjtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHBhZGRpbmc6IDIwcHggMjJweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2UsIGJveC1zaGFkb3cgMC4xNXMgZWFzZTtcbn1cbi5mcC10b2NfX2NhcmQ6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBib3gtc2hhZG93OiAwIDZweCAyMHB4IHJnYmEoNjksIDY5LCAyMTksIDAuMSk7XG59XG4uZnAtdG9jX19udW0ge1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBmbGV4LXNocmluazogMDtcbn1cbi5mcC10b2NfX2JvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDRweDtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi13aWR0aDogMDtcbn1cbi5mcC10b2NfX2NhcmQtdGl0bGUge1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjM7XG59XG4uZnAtdG9jX19jb3VudCB7XG4gICAgY29sb3I6ICM5YWExYWQ7XG4gICAgZm9udC1zaXplOiAwLjgycmVtO1xufVxuLmZwLXRvY19fYXJyb3cge1xuICAgIGNvbG9yOiAjY2JkNWUxO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGVhc2UsIHRyYW5zZm9ybSAwLjE1cyBlYXNlO1xufVxuLmZwLXRvY19fY2FyZDpob3ZlciAuZnAtdG9jX19hcnJvdyB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoM3B4KTtcbn1cblxuLyogRkFRIOKAlCBzZWN0aW9uIHRvb2xiYXIgKGJhY2sgbGluayArIHNlY3Rpb24gc2VsZWN0b3IpICovXG4uZnAtdG9vbGJhciB7XG4gICAgbWF4LXdpZHRoOiA4ODBweDtcbiAgICBtYXJnaW46IDAgYXV0byA4cHg7XG4gICAgcGFkZGluZy10b3A6IDI0cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDE2cHg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuLmZwLXRvb2xiYXJfX2JhY2sge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogOHB4IDRweDtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uZnAtdG9vbGJhcl9fYmFjazpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbn1cbi5mcC10b29sYmFyX19zZWxlY3RvciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG59XG4uZnAtdG9vbGJhcl9fbGFiZWwge1xuICAgIGNvbG9yOiAjNmI3MjgwO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIG1hcmdpbjogMDtcbn1cbi5mcC10b29sYmFyX19zZWxlY3Qge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMWQ1ZGI7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDEwcHggMTRweDtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG1pbi13aWR0aDogMjQwcHg7XG59XG4uZnAtdG9vbGJhcl9fc2VsZWN0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAuMnJlbSByZ2JhKDI0MSwgNzMsIDE2LCAwLjE1KTtcbn1cblxuLyogRkFRIOKAlCByZWxhdGVkIGxpbmtzIGluc2lkZSBhbiBhbnN3ZXIgKi9cbi5mcC1pdGVtX19saW5rcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHggMjBweDtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIHBhZGRpbmctdG9wOiAxNHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWVmMGY0O1xufVxuLyogU2NvcGVkIHVuZGVyIC5mcC1pdGVtX19hIHRvIGJlYXQgdGhlIGdlbmVyaWMgYC5mcC1pdGVtX19hIGFgIGJsdWUgcnVsZS4gKi9cbi5mcC1pdGVtX19hIC5mcC1pdGVtX19saW5rIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uZnAtaXRlbV9fYSAuZnAtaXRlbV9fbGluazpob3ZlciB7XG4gICAgY29sb3I6ICNkNjNkMDk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uZnAtaXRlbV9fbGluayAuYmkge1xuICAgIGZvbnQtc2l6ZTogMC43OHJlbTtcbn1cblxuLyogW2hpZGRlbl0gbXVzdCB3aW4gb3ZlciBCb290c3RyYXAncyBhY2NvcmRpb24vZmxleCBkaXNwbGF5IHZhbHVlcy4gKi9cbi5mcC10b2NbaGlkZGVuXSxcbi5mcC10b29sYmFyW2hpZGRlbl0sXG4uZnAtY2F0W2hpZGRlbl0sXG4uZnAtaXRlbVtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkge1xuICAgIC5mcC10b29sYmFyLFxuICAgIC5mcC10b29sYmFyX19zZWxlY3RvciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cbiAgICAuZnAtdG9vbGJhcl9fc2VsZWN0IHtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgU2NvcmUgQ2hlY2tlciBtb2RhbCAodGVtcGxhdGVzL21vZGFscy9jaGVja19kaXBsb21hLmh0bWwudHdpZylcbiAgIFN0cmljdCByZWN0YW5ndWxhciBsb29rIOKAlCBubyBib3JkZXItcmFkaXVzIGFueXdoZXJlIOKAlCB0byBtYXRjaCB0aGVcbiAgIEZBUXMgcGFnZSB0cmVhdG1lbnQuXG4gICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5jaGVjay1zY29yZS1tb2RhbF9fY29udGVudCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAtLWJzLW1vZGFsLWJvcmRlci1yYWRpdXM6IDA7XG4gICAgLS1icy1tb2RhbC1pbm5lci1ib3JkZXItcmFkaXVzOiAwO1xufVxuLmNoZWNrLXNjb3JlLW1vZGFsX19oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTVlN2ViO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgcGFkZGluZzogMjBweCAyNHB4O1xufVxuLmNoZWNrLXNjb3JlLW1vZGFsX190aXRsZSB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG4uY2hlY2stc2NvcmUtbW9kYWxfX2Nsb3NlIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmNoZWNrLXNjb3JlLW1vZGFsX19ib2R5IHtcbiAgICBwYWRkaW5nOiAyNHB4O1xufVxuLmNoZWNrLXNjb3JlLW1vZGFsX19pbnRybyB7XG4gICAgY29sb3I6ICM0YjU1NjM7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIG1hcmdpbjogMCAwIDIwcHg7XG59XG4uY2hlY2stc2NvcmUtbW9kYWxfX2Zvcm0ge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xuICAgIGdhcDogMTZweDtcbn1cbi5jaGVjay1zY29yZS1tb2RhbF9fZmllbGQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbn1cbi5jaGVjay1zY29yZS1tb2RhbF9fbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cbi5jaGVjay1zY29yZS1tb2RhbF9faW5wdXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMWQ1ZGI7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7XG59XG4uY2hlY2stc2NvcmUtbW9kYWxfX2lucHV0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuLmNoZWNrLXNjb3JlLW1vZGFsX19hbGVydCB7XG4gICAgbWFyZ2luLXRvcDogMThweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5jaGVjay1zY29yZS1tb2RhbF9fYWxlcnQtLXN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6ICNlY2ZkZjU7XG4gICAgYm9yZGVyLWNvbG9yOiAjMzRkMzk5O1xuICAgIGNvbG9yOiAjMDY1ZjQ2O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5jaGVjay1zY29yZS1tb2RhbF9fYWxlcnQtLWVycm9yIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmVmMmYyO1xuICAgIGJvcmRlci1jb2xvcjogI2ZjYTVhNTtcbiAgICBjb2xvcjogIzk5MWIxYjtcbn1cbi5jaGVjay1zY29yZS1tb2RhbF9fYWxlcnQgYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uY2hlY2stc2NvcmUtbW9kYWxfX2JhZGdlLXdyYXAge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tdG9wOiAxOHB4O1xufVxuLmNoZWNrLXNjb3JlLW1vZGFsX19iYWRnZSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtaGVpZ2h0OiAzMjBweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4uY2hlY2stc2NvcmUtbW9kYWxfX2Zvb3RlciB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlNWU3ZWI7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBwYWRkaW5nOiAxNnB4IDI0cHg7XG4gICAgZ2FwOiAxMnB4O1xufVxuLmNoZWNrLXNjb3JlLW1vZGFsX19idG4ge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDIycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbi5jaGVjay1zY29yZS1tb2RhbF9fYnRuLS1naG9zdCB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICM0YjU1NjM7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2QxZDVkYjtcbn1cbi5jaGVjay1zY29yZS1tb2RhbF9fYnRuLS1naG9zdDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2YzZjRmNjtcbn1cbi5jaGVjay1zY29yZS1tb2RhbF9fYnRuLS1vcmFuZ2Uge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICAvKiBUb3AtcmlnaHQgY2hhbWZlciB0byBtYXRjaCB0aGUgRkFRcyBTZWFyY2ggYnV0dG9uICsgdGhlIG90aGVyIENUQXMuICovXG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgY2FsYygxMDAlIC0gMTRweCkgMCwgMTAwJSAxNHB4LCAxMDAlIDEwMCUsIDAgMTAwJSk7XG59XG4uY2hlY2stc2NvcmUtbW9kYWxfX2J0bi0tb3JhbmdlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZDgzYTA0O1xufVxuLmNoZWNrLXNjb3JlLW1vZGFsX19idG46ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNztcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcbiAgICAuY2hlY2stc2NvcmUtbW9kYWxfX2Zvcm0ge1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcbiAgICB9XG59XG5cbi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgTGVnYWwgcGFnZXMg4oCUIFByaXZhY3kgUG9saWN5ICsgVGVybXMgb2YgU2VydmljZVxuICAgKHRlbXBsYXRlcy9wYWdlcy9wcml2YWN5X3BvbGljeS5odG1sLnR3aWcgKyB0ZXJtc19vZl9zZXJ2aWNlLmh0bWwudHdpZylcbiAgIEJhbm5lciB0b3AsIHNpbmdsZS1jb2x1bW4gbG9uZy1mb3JtIGNvbnRlbnQuIFN0cmljdCByZWN0YW5ndWxhciBsb29rIOKAlFxuICAgbm8gYm9yZGVyLXJhZGl1cyDigJQgdG8gbWF0Y2ggdGhlIEZBUXMgLyBTY29yZSBDaGVja2VyIHRyZWF0bWVudC5cbiAgIFByZWZpeCBgbHBgID0gTGVnYWwgUGFnZS5cbiAgIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgCAqL1xuLmxwLWJhbm5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQ6ICNlYWYzZmI7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkYmU1ZWU7XG4gICAgcGFkZGluZzogNTZweCAwO1xufVxuLmxwLWJhbm5lcl9faW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxO1xufVxuLmxwLWJhbm5lcl9fdGl0bGUge1xuICAgIGNvbG9yOiAjMWExYTJlO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMnJlbSwgMS40cmVtICsgMi40dncsIDNyZW0pO1xuICAgIG1hcmdpbjogMDtcbn1cbi5scC1iYW5uZXJfX3N1YnRpdGxlIHtcbiAgICBjb2xvcjogIzViNjQ3ODtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgbWFyZ2luOiAxMnB4IDAgMDtcbn1cblxuLmxwLWNvbnRlbnQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG4ubHAtYXJ0aWNsZSB7XG4gICAgbWF4LXdpZHRoOiA4ODBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBjb2xvcjogIzFmMjkzNztcbiAgICBsaW5lLWhlaWdodDogMS43O1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbn1cbi5scC1hcnRpY2xlIHAge1xuICAgIG1hcmdpbjogMCAwIDE2cHg7XG59XG4ubHAtYXJ0aWNsZSBhIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuLmxwLWFydGljbGUgYTpob3ZlciB7XG4gICAgY29sb3I6ICNkNjNkMDk7XG59XG4ubHAtYXJ0aWNsZV9fbGVkZSB7XG4gICAgZm9udC1zaXplOiAxLjA1cmVtO1xuICAgIGNvbG9yOiAjMzc0MTUxO1xuICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG59XG4ubHAtYXJ0aWNsZV9faDIge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiA0MHB4IDAgMTZweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgc2Nyb2xsLW1hcmdpbi10b3A6IDEwMHB4O1xufVxuLmxwLWFydGljbGVfX2gzIHtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbjogMjhweCAwIDEycHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogMnB4O1xuICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogNHB4O1xufVxuLmxwLWFydGljbGVfX2g0IHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbjogMjJweCAwIDEwcHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG59XG4ubHAtYXJ0aWNsZV9fbGlzdCB7XG4gICAgbWFyZ2luOiAwIDAgMThweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDIycHg7XG59XG4ubHAtYXJ0aWNsZV9fbGlzdCBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuLmxwLWFydGljbGVfX2xpc3QgbGk6Om1hcmtlciB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbn1cbi5scC1hcnRpY2xlX19jb250YWN0IHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgIHBhZGRpbmc6IDE4cHggMjJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjRmNWY5O1xuICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgY29sb3I6ICMzNzQxNTE7XG59XG4vKiBJbmxpbmUgbm90ZSAvIGNhdmVhdCBjYWxsb3V0IChlLmcuIFwiTWFjIHVzZXJz4oCmXCIsIFwiQWRvYmUgd2ViIGFwcOKAplwiKS4gKi9cbi5scC1hcnRpY2xlX19ub3RlIHtcbiAgICBtYXJnaW46IDhweCAwIDI0cHg7XG4gICAgcGFkZGluZzogMTRweCAxOHB4O1xuICAgIGJhY2tncm91bmQ6ICNlYWYzZmI7XG4gICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGNvbG9yOiAjMzc0MTUxO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyogVGFibGVzIChkYXRhIGNhdGVnb3J5IGJyZWFrZG93biBpbiBQcml2YWN5IFBvbGljeSkuICovXG4ubHAtYXJ0aWNsZV9fdGFibGUtd3JhcCB7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBtYXJnaW46IDhweCAwIDI0cHg7XG59XG4ubHAtYXJ0aWNsZV9fdGFibGUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuLmxwLWFydGljbGVfX3RhYmxlIHRoLFxuLmxwLWFydGljbGVfX3RhYmxlIHRkIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDFkNWRiO1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xufVxuLmxwLWFydGljbGVfX3RhYmxlIHRoZWFkIHRoIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4ubHAtYXJ0aWNsZV9fdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xufVxuXG4ubHAtYXJ0aWNsZSBjb2RlIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBiYWNrZ3JvdW5kOiAjZjFmNWY5O1xuICAgIHBhZGRpbmc6IDAuMWVtIDAuNGVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBmb250LXNpemU6IDAuODc1ZW07XG59XG5cbi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgQVBJIGVycm9yIGJhbm5lciDigJQgdXNlZCBieSBvbmxpbmUtc3RvcmUgKyBjZXJ0aWZpY2F0aW9uIHdoZW4gdGhlIElzb2dyYWRcbiAgIEFQSSBpcyBkb3duLiBUaGUgXCJFbWFpbCBTdXBwb3J0XCIgQ1RBIG9wZW5zIGEgcHJlLWZpbGxlZCBtYWlsdG8gc28gdGhlXG4gICBzdXBwb3J0IHRlYW0gZ2V0cyB0aGUgZmFpbGluZyBhY3RfaWQsIHBhcmFtcyBhbmQgZXhjZXB0aW9uIGluIG9uZSBjbGljay5cbiAgIFJlY3Rhbmd1bGFyLCBubyBib3JkZXItcmFkaXVzLlxuICAg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAICovXG4uYXBpLWVycm9yLWJhbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjdlZDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgYm9yZGVyLWxlZnQtd2lkdGg6IDZweDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHBhZGRpbmc6IDE4cHggMjJweDtcbiAgICBtYXJnaW46IDAgYXV0byAyNHB4O1xuICAgIG1heC13aWR0aDogOTgwcHg7XG4gICAgY29sb3I6ICMxZjI5Mzc7XG59XG4uYXBpLWVycm9yLWJhbm5lcl9faWNvbiB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBwYWRkaW5nLXRvcDogMnB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuLmFwaS1lcnJvci1iYW5uZXJfX2JvZHkge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1pbi13aWR0aDogMDtcbn1cbi5hcGktZXJyb3ItYmFubmVyX190aXRsZSB7XG4gICAgY29sb3I6ICMxYTFhMmU7XG4gICAgZm9udC1zaXplOiAxLjA1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAwIDAgNHB4O1xufVxuLmFwaS1lcnJvci1iYW5uZXJfX3RleHQge1xuICAgIGNvbG9yOiAjNGI1NTYzO1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuLmFwaS1lcnJvci1iYW5uZXJfX2RldGFpbHMge1xuICAgIGNvbG9yOiAjNmI3MjgwO1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cbi5hcGktZXJyb3ItYmFubmVyX19kZXRhaWxzIHN1bW1hcnkge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuLmFwaS1lcnJvci1iYW5uZXJfX2RldGFpbHMgc3VtbWFyeTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uYXBpLWVycm9yLWJhbm5lcl9fcGFyYW1zIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBtYXJnaW46IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmVkN2FhO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIE1lbmxvLCBtb25vc3BhY2U7XG4gICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xufVxuLmFwaS1lcnJvci1iYW5uZXJfX3BhcmFtcyBsaSB7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xufVxuLmFwaS1lcnJvci1iYW5uZXJfX3BhcmFtcyBsaTpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuLmFwaS1lcnJvci1iYW5uZXJfX3BhcmFtcyBjb2RlIHtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBiYWNrZ3JvdW5kOiAjZjNmNGY2O1xuICAgIHBhZGRpbmc6IDFweCA0cHg7XG59XG4uYXBpLWVycm9yLWJhbm5lcl9fY3RhIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cbi5hcGktZXJyb3ItYmFubmVyX19idG4ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAxMHB4IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7XG4gICAgLyogVG9wLXJpZ2h0IGNoYW1mZXIgbWF0Y2hpbmcgdGhlIG90aGVyIENUQXMuICovXG4gICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgMCwgY2FsYygxMDAlIC0gMTRweCkgMCwgMTAwJSAxNHB4LCAxMDAlIDEwMCUsIDAgMTAwJSk7XG59XG4uYXBpLWVycm9yLWJhbm5lcl9fYnRuOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZDgzYTA0O1xuICAgIGNvbG9yOiAjZmZmO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNTc1cHgpIHtcbiAgICAuYXBpLWVycm9yLWJhbm5lciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIH1cbiAgICAuYXBpLWVycm9yLWJhbm5lcl9fY3RhIHtcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICB9XG59XG5cbi8qIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuICAgQ2hlY2tvdXQgc2lnbnVwIG1vZGFsICh0ZW1wbGF0ZXMvbW9kYWxzL2NoZWNrb3V0X3NpZ251cC5odG1sLnR3aWcpXG4gICBUd28gY29sdW1uczogU2lnbiB1cCAobGVmdCkgKyBTaWduIGluIChyaWdodCkuIFJlY3Rhbmd1bGFyIGxheW91dFxuICAgdG8gbWF0Y2ggdGhlIEZBUXMgLyBTY29yZSBDaGVja2VyIC8gQVBJIGJhbm5lciB0cmVhdG1lbnQuXG4gICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5jaGVja291dC1tb2RhbF9fY29udGVudCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAtLWJzLW1vZGFsLWJvcmRlci1yYWRpdXM6IDA7XG4gICAgLS1icy1tb2RhbC1pbm5lci1ib3JkZXItcmFkaXVzOiAwO1xufVxuLmNoZWNrb3V0LW1vZGFsX19oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTVlN2ViO1xuICAgIHBhZGRpbmc6IDIwcHggMjRweDtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmNoZWNrb3V0LW1vZGFsX190aXRsZSB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG4uY2hlY2tvdXQtbW9kYWxfX2Nsb3NlIHtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xufVxuLmNoZWNrb3V0LW1vZGFsX19ib2R5IHtcbiAgICBwYWRkaW5nOiAyOHB4IDMycHggMzJweDtcbn1cbi5jaGVja291dC1tb2RhbF9faW50cm8ge1xuICAgIGNvbG9yOiAjNGI1NTYzO1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwIGF1dG8gMjRweDtcbiAgICBtYXgtd2lkdGg6IDY0MHB4O1xufVxuLmNoZWNrb3V0LW1vZGFsX19jb2xzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uY2hlY2tvdXQtbW9kYWxfX2NvbCB7XG4gICAgcGFkZGluZzogMjhweDtcbn1cbi5jaGVja291dC1tb2RhbF9fY29sICsgLmNoZWNrb3V0LW1vZGFsX19jb2wtLXJpZ2h0IHtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlNWU3ZWI7XG59XG4uY2hlY2tvdXQtbW9kYWxfX2NvbC10aXRsZSB7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgZm9udC1zaXplOiAxLjE1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAwIDAgNnB4O1xufVxuLmNoZWNrb3V0LW1vZGFsX19jb2wtaW50cm8ge1xuICAgIGNvbG9yOiAjNmI3MjgwO1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIG1hcmdpbjogMCAwIDE4cHg7XG59XG4uY2hlY2tvdXQtbW9kYWxfX2Zvcm0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5jaGVja291dC1tb2RhbF9fbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMzNzQxNTE7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbn1cbi5jaGVja291dC1tb2RhbF9faW5wdXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMWQ1ZGI7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMTVzIGVhc2U7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4uY2hlY2tvdXQtbW9kYWxfX2lucHV0OmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuLmNoZWNrb3V0LW1vZGFsX19saW5rIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cbi5jaGVja291dC1tb2RhbF9fbGluazpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uY2hlY2tvdXQtbW9kYWxfX2xpbmstLXJpZ2h0IHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcbn1cbi5jaGVja291dC1tb2RhbF9fc3VibWl0LWJ0biB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgcGFkZGluZzogMTJweCAyMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm9yZGVyOiAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7XG59XG4uY2hlY2tvdXQtbW9kYWxfX3N1Ym1pdC1idG4tLW9yYW5nZSB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIC8qIFRvcC1yaWdodCBjaGFtZmVyIG1hdGNoaW5nIHRoZSByZXN0IG9mIHRoZSBDVEFzLiAqL1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIGNhbGMoMTAwJSAtIDE0cHgpIDAsIDEwMCUgMTRweCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xufVxuLmNoZWNrb3V0LW1vZGFsX19zdWJtaXQtYnRuLS1vcmFuZ2U6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNkODNhMDQ7XG59XG4uY2hlY2tvdXQtbW9kYWxfX3N1Ym1pdC1idG4tLWdob3N0IHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS10b3NhLWJsdWUpO1xufVxuLmNoZWNrb3V0LW1vZGFsX19zdWJtaXQtYnRuLS1naG9zdDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2YwZjNmZjtcbn1cbi5jaGVja291dC1tb2RhbF9fY2FuZGlkYXRlLWxpbmsge1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgIGNvbG9yOiAjNmI3MjgwO1xufVxuLmNoZWNrb3V0LW1vZGFsX19jYW5kaWRhdGUtbGluayBhIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLyogSW5saW5lIHN0YXR1cyBiYW5uZXIgKHN1Y2Nlc3MgLyBlcnJvciAvIGluZm8pIHNob3duIHVuZGVyIHRoZSB0d29cbiAgIGNvbHVtbnMgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBzaWduLXVwIG9yIHNpZ24taW4gZm9ybS4gKi9cbi5jaGVja291dC1tb2RhbF9fYWxlcnQge1xuICAgIG1hcmdpbi10b3A6IDE4cHg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3JkZXItbGVmdC13aWR0aDogNHB4O1xufVxuLmNoZWNrb3V0LW1vZGFsX19hbGVydC0tZXJyb3Ige1xuICAgIGJhY2tncm91bmQ6ICNmZWYyZjI7XG4gICAgYm9yZGVyLWNvbG9yOiAjZmNhNWE1O1xuICAgIGNvbG9yOiAjOTkxYjFiO1xufVxuLmNoZWNrb3V0LW1vZGFsX19hbGVydC0taW5mbyB7XG4gICAgYmFja2dyb3VuZDogI2VmZjZmZjtcbiAgICBib3JkZXItY29sb3I6ICM5M2M1ZmQ7XG4gICAgY29sb3I6ICMxZTNhOGE7XG59XG4uY2hlY2tvdXQtbW9kYWxfX2FsZXJ0LS1zdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWNmZGY1O1xuICAgIGJvcmRlci1jb2xvcjogIzM0ZDM5OTtcbiAgICBjb2xvcjogIzA2NWY0Njtcbn1cbi5jaGVja291dC1tb2RhbF9fYWxlcnQgYSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAgIC5jaGVja291dC1tb2RhbF9fY29sICsgLmNoZWNrb3V0LW1vZGFsX19jb2wtLXJpZ2h0IHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTVlN2ViO1xuICAgIH1cbiAgICAuY2hlY2tvdXQtbW9kYWxfX2JvZHkge1xuICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgIH1cbn1cblxuLyog4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gICBCdW5kbGUgcGFnZXMgKEdvb2dsZSBXb3Jrc3BhY2UgLyBNaWNyb3NvZnQgT2ZmaWNlIC8gQWRvYmUgR3JhcGhpYyAvXG4gICBBZG9iZSBWaXN1YWwpLiBPbmUgdGVtcGxhdGUsIDQgdGhlbWVzIOKAlCBiYW5uZXIgY29sb3IgaXMgc2V0IGlubGluZVxuICAgZnJvbSB0aGUgY29udHJvbGxlciBjb25maWcgc28gd2UgZG9uJ3QgbmVlZCA0IG5lYXJseS1pZGVudGljYWxcbiAgIHN0eWxlc2hlZXRzLiBQZXItdGhlbWUgYWNjZW50cyAoY2VydCBjYXJkIGJhbmQpIGxpdmUgYmVsb3cuXG4gICDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAgKi9cbi5idW5kbGVfX2Jhbm5lciB7XG4gICAgcGFkZGluZzogNTZweCBjbGFtcCgxNnB4LCA0dncsIDY0cHgpO1xufVxuLmJ1bmRsZV9fdGl0bGUge1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtc2l6ZTogY2xhbXAoMS43NXJlbSwgMS4ycmVtICsgMi40dncsIDIuNzVyZW0pO1xuICAgIG1hcmdpbjogMDtcbn1cbi5idW5kbGVfX2Jhbm5lci1sb2dvIHtcbiAgICBtYXgtd2lkdGg6IDI4MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qIDItY29sIGxheW91dDogc3RpY2t5IHNpZGViYXIgKyBzY3JvbGxhYmxlIG1haW4gKi9cbi5idW5kbGUtcGFnZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvYnVuZGxlcy9iZy0wMS5qcGcnKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHRvcCBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6IGZpeGVkO1xufVxuLyogRnVsbC13aWR0aCBjb250YWluZXIgc2NvcGVkIHRvIGJ1bmRsZSBwYWdlcyBvbmx5IOKAlCBsZWF2ZXMgdGhlIGdsb2JhbFxuICAgLmNvbnRhaW5lci14bCB1bnRvdWNoZWQgKGhlYWRlciwgZm9vdGVyLCBvdGhlciBwYWdlcyBrZWVwIDExNDBweCkuICovXG4uYnVuZGxlLXBhZ2UgLmNvbnRhaW5lci14bCB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctbGVmdDogY2xhbXAoMTZweCwgNHZ3LCA2NHB4KTtcbiAgICBwYWRkaW5nLXJpZ2h0OiBjbGFtcCgxNnB4LCA0dncsIDY0cHgpO1xufVxuLmJ1bmRsZS1wYWdlX19tYWluIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDMycHg7XG59XG5cbi5idW5kbGUtc2lkZSB7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICB0b3A6IDg4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMjBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMzJweDtcbn1cblxuLmJ1bmRsZS1zaWRlX19jYXJkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMThweCByZ2JhKDMwLCAzMCwgNjAsIDAuMDYpO1xuICAgIHBhZGRpbmc6IDIycHggMjRweDtcbn1cblxuLmJ1bmRsZS1zaWRlX19jYXJkLXRpdGxlIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW46IDAgMCAxMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTNlNGVmO1xufVxuXG4uYnVuZGxlLXNpZGVfX2xpbmstbGlzdCxcbi5idW5kbGUtc2lkZV9fYnVsbGV0LWxpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG59XG4uYnVuZGxlLXNpZGVfX2xpbmstbGlzdCBsaSxcbi5idW5kbGUtc2lkZV9fYnVsbGV0LWxpc3QgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiA2cHggMCA2cHggMjBweDtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNDU7XG59XG4uYnVuZGxlLXNpZGVfX2xpbmstbGlzdCBsaTo6YmVmb3JlLFxuLmJ1bmRsZS1zaWRlX19idWxsZXQtbGlzdCBsaTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIuKAulwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogNXB4O1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG59XG4uYnVuZGxlLXNpZGVfX2xpbmstbGlzdCBhIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogM3B4O1xufVxuLmJ1bmRsZS1zaWRlX19saW5rLWxpc3QgYTpob3ZlciB7IGNvbG9yOiAjZDYzZDA5OyB9XG5cbi5idW5kbGUtc2lkZV9fc3ViLWxpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDRweCAwIDA7XG59XG4uYnVuZGxlLXNpZGVfX3N1Yi1saXN0IGxpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMnB4IDAgMnB4IDE0cHg7XG4gICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgY29sb3I6ICM0YjU1NjM7XG59XG4uYnVuZGxlLXNpZGVfX3N1Yi1saXN0IGxpOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwi4oCiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDJweDtcbiAgICB0b3A6IDFweDtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbn1cblxuLmJ1bmRsZS1zaWRlX19sYW5nLXBpbGxzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbn1cbi5idW5kbGUtc2lkZV9fbGFuZy1waWxsIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDlkYWU2O1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBwYWRkaW5nOiA2cHggMTRweDtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuXG4vKiAuY3RhLWJ0biBpcyBub3dyYXAgYnkgZGVmYXVsdCDigJQgd3JhcCBsb25nIGxhYmVscyBpbnNpZGUgdGhlIG5hcnJvdyBzaWRlYmFyIGNvbHVtbi4gKi9cbi5idW5kbGUtc2lkZV9fY3RhIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XG4gICAgLmJ1bmRsZS1zaWRlIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgICB9XG4gICAgLmJ1bmRsZS1wYWdlX19tYWluIHtcbiAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxufVxuXG4vKiBWYWxpZGF0ZSBNYXN0ZXJ5ICovXG4uYnVuZGxlLW1hc3RlcnkgeyBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4uYnVuZGxlLW1hc3RlcnlfX3RpdGxlIHtcbiAgICBjb2xvcjogIzFhMWExYTtcbiAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDMuNXZ3LCAyLjc1cmVtKTtcbiAgICBsaW5lLWhlaWdodDogMS4xNTtcbn1cbi5idW5kbGUtbWFzdGVyeV9faW50cm8ge1xuICAgIGNvbG9yOiAjNGI1NTYzO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuLmJ1bmRsZS1wcm9kdWN0IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE4cHggcmdiYSgzMCwgMzAsIDYwLCAwLjA4KTtcbiAgICBwYWRkaW5nOiAzMnB4IDI0cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbn1cbi5idW5kbGUtcHJvZHVjdF9faWNvbiB7XG4gICAgd2lkdGg6IDY0cHg7XG4gICAgaGVpZ2h0OiA2NHB4O1xuICAgIG1hcmdpbjogMCBhdXRvIDE2cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuLmJ1bmRsZS1wcm9kdWN0X19pY29uIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cbi5idW5kbGUtcHJvZHVjdF9fbmFtZSB7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbn1cbi5idW5kbGUtcHJvZHVjdF9fbGluayB7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbn1cbi5idW5kbGUtcHJvZHVjdF9fbGluazpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi8qIENyZWRlbnRpYWwgUmVxdWlyZW1lbnRzICovXG4uYnVuZGxlLXJlcXMgeyBiYWNrZ3JvdW5kOiAjZjhmYWZjOyB9XG4uYnVuZGxlLXJlcXNfX3RpdGxlIHtcbiAgICBjb2xvcjogIzFhMWExYTtcbiAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDMuNXZ3LCAyLjc1cmVtKTtcbiAgICBsaW5lLWhlaWdodDogMS4xNTtcbn1cbi5idW5kbGUtcmVxc19faW50cm8ge1xuICAgIGNvbG9yOiAjNGI1NTYzO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbWF4LXdpZHRoOiA4MjBweDtcbn1cbi5idW5kbGUtcmVxc19fdGllci10aXRsZSB7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgZm9udC1zaXplOiAxLjE1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB2YXIoLS10b3NhLW9yYW5nZSk7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbn1cbi5idW5kbGUtcmVxc19fbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogIzM3NDE1MTtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNztcbn1cbi5idW5kbGUtcmVxc19fbGlzdCBsaSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxNnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5idW5kbGUtcmVxc19fbGlzdCBsaTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAn4oC6JztcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG5cbi8qIExldmVsIHN1bW1hcnkgY2FyZHMgKEV4cGVyaWVuY2VkICsgUHJvZmVzc2lvbmFsIHdpdGggYW5pbWF0ZWQgaWNvbnMpICovXG4uYnVuZGxlLWxldmVscyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTZweDtcbn1cbi5idW5kbGUtbGV2ZWxzX19jYXJkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogODBweCAxZnI7XG4gICAgZ2FwOiAxOHB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxOHB4IHJnYmEoMzAsIDMwLCA2MCwgMC4wNik7XG4gICAgcGFkZGluZzogMjBweCAyNHB4O1xufVxuLmJ1bmRsZS1sZXZlbHNfX2ljb24ge1xuICAgIHdpZHRoOiA2NHB4O1xuICAgIGhlaWdodDogNjRweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuLmJ1bmRsZS1sZXZlbHNfX3RpdGxlIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgbWFyZ2luOiAwIDAgNnB4O1xufVxuLmJ1bmRsZS1sZXZlbHNfX3RleHQge1xuICAgIGNvbG9yOiAjNGI1NTYzO1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4vKiBDZXJ0IGNhcmRzIChFeHBlcmllbmNlZCArIFByb2Zlc3Npb25hbCkgKi9cbi5idW5kbGUtY2VydCB7IGJhY2tncm91bmQ6ICNmZmY7IH1cbi5idW5kbGUtY2VydC0tZXhwZXJpZW5jZWQgeyBiYWNrZ3JvdW5kOiAjZjhmYWZjOyB9XG4uYnVuZGxlLWNlcnRfX2hlYWRpbmcge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuLmJ1bmRsZS1jZXJ0X19pbnRybyB7XG4gICAgY29sb3I6ICM0YjU1NjM7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBtYXgtd2lkdGg6IDgyMHB4O1xufVxuLmJ1bmRsZS1jZXJ0X19jYXJkIHtcbiAgICBtYXgtd2lkdGg6IDU0MHB4O1xuICAgIG1hcmdpbjogMjRweCBhdXRvIDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG59XG4uYnVuZGxlLWNlcnRfX3NhbXBsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW46IDI0cHggYXV0byAwO1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDI0cHggcmdiYSgzMCwgMzAsIDYwLCAwLjA4KTtcbn1cbi5idW5kbGUtY2VydF9fY2FyZC1iYW5kIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLWJsdWUpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDE0cHggMjRweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuLmJ1bmRsZS1jZXJ0X19jYXJkLWJhbmQtLXBybyB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1vcmFuZ2UpO1xufVxuLmJ1bmRsZS1jZXJ0X19jYXJkLWJvZHkge1xuICAgIHBhZGRpbmc6IDM2cHggMjRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xufVxuLmJ1bmRsZS1jZXJ0X19jYXJkLW5hbWUge1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuLmJ1bmRsZS1jZXJ0X19jYXJkLXRpZXIge1xuICAgIGNvbG9yOiAjNmI3MjgwO1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA2ZW07XG59XG5cbi8qIFNraWxscyBCYWRnZXMgd2l0aCBDcmVkbHkgKi9cbi5idW5kbGUtYmFkZ2VzIHsgYmFja2dyb3VuZDogI2ZmZjsgfVxuLmJ1bmRsZS1iYWRnZXNfX3RpdGxlIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1ibHVlKTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbn1cbi5idW5kbGUtYmFkZ2VzX19pbnRybyB7XG4gICAgY29sb3I6ICM0YjU1NjM7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBtYXgtd2lkdGg6IDgyMHB4O1xufVxuLmJ1bmRsZS1iYWRnZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBwYWRkaW5nOiAyNHB4IDIycHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDIwcHg7XG59XG4uYnVuZGxlLWJhZGdlX19saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiBpbmhlcml0O1xufVxuLmJ1bmRsZS1iYWRnZV9fbGluazpob3ZlciAuYnVuZGxlLWJhZGdlX19sYWJlbCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uYnVuZGxlLWJhZGdlX19pbWcge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHdpZHRoOiA5NnB4O1xuICAgIGhlaWdodDogOTZweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuLmJ1bmRsZS1iYWRnZV9fbGFiZWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtc2l6ZTogMS4wNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG4vKiBTdGFja2FibGUgQ3JlZGVudGlhbHMgKi9cbi5idW5kbGUtc3RhY2tfX3RpdGxlIHtcbiAgICBjb2xvcjogIzFhMWExYTtcbiAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDMuNXZ3LCAyLjc1cmVtKTtcbiAgICBsaW5lLWhlaWdodDogMS4xNTtcbn1cbi5idW5kbGUtc3RhY2tfX2ludHJvIHtcbiAgICBjb2xvcjogIzRiNTU2MztcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIG1heC13aWR0aDogODIwcHg7XG59XG4uYnVuZGxlLXN0YWNrX19pbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogOTQwcHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMCBhdXRvO1xufVxuXG4vKiBBbGlnbmVkIE9jY3VwYXRpb25zICovXG4uYnVuZGxlLWpvYnNfX3RpdGxlIHtcbiAgICBjb2xvcjogIzFhMWExYTtcbiAgICBmb250LXNpemU6IGNsYW1wKDJyZW0sIDMuNXZ3LCAyLjc1cmVtKTtcbiAgICBsaW5lLWhlaWdodDogMS4xNTtcbn1cbi5idW5kbGUtam9ic19fbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2x1bW5zOiAyO1xuICAgIGNvbHVtbi1nYXA6IDQ4cHg7XG59XG4uYnVuZGxlLWpvYnNfX2xpc3QgbGkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiA4cHggMCA4cHggMjRweDtcbiAgICBmb250LXNpemU6IDAuOTVyZW07XG4gICAgY29sb3I6ICMxZjI5Mzc7XG4gICAgYnJlYWstaW5zaWRlOiBhdm9pZDtcbn1cbi5idW5kbGUtam9ic19fbGlzdCBsaTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMTRweDtcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2Etb3JhbmdlKTtcbn1cbi5idW5kbGUtam9ic19fZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICBjb2x1bW4tZ2FwOiA0OHB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogMzJweDtcbn1cbi5idW5kbGUtam9ic19fZm9vdGVyIC5jdGEtYnRuIHsgbWFyZ2luOiAwOyB9XG5cbi5idW5kbGUtam9ic19fY2UtbGluayB7XG4gICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAzcHg7XG59XG4uYnVuZGxlLWpvYnNfX2NlLWxpbms6aG92ZXIgeyBjb2xvcjogI2Q2M2QwOTsgfVxuLmJ1bmRsZS1qb2JzX19jcmVkZW50aWFsIHtcbiAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNTc1Ljk4cHgpIHtcbiAgICAuYnVuZGxlLWpvYnNfX2Zvb3RlciB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOyByb3ctZ2FwOiAxNnB4OyB9XG4gICAgLmJ1bmRsZS1qb2JzX19jcmVkZW50aWFsIHsganVzdGlmeS1zZWxmOiBjZW50ZXI7IH1cbn1cbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkge1xuICAgIC5idW5kbGUtam9ic19fbGlzdCB7IGNvbHVtbnM6IDE7IH1cbn1cblxuLyogUmVhZHkgdG8gU3RhcnQgQ2VydGlmeWluZyDigJQgcmV1c2VzIHNlY3Rpb25zL2NlcnRfcmVhZHkuaHRtbC50d2lnICovXG5cbi8qIENvbXBhY3QgbmV3c2xldHRlciBvbiBidW5kbGUgcGFnZXMg4oCUIG92ZXJyaWRlcyB0aGUgZ2xvYmFsIHB5LTUgcGFkZGluZ1xuICAgYW5kIHRoZSBpbm5lciBjb250YWluZXIncyBweS01ICsgbWItNSBzcGFjaW5nIHdpdGhvdXQgdG91Y2hpbmcgdGhlXG4gICBzaGFyZWQgc2VjdGlvbnMvbmV3c2xldHRlci5odG1sLnR3aWcgdGVtcGxhdGUuICovXG4uYnVuZGxlLW5ld3NsZXR0ZXItd3JhcCAubmV3c2xldHRlciB7XG4gICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07XG59XG4uYnVuZGxlLW5ld3NsZXR0ZXItd3JhcCAubmV3c2xldHRlciA+IC5jb250YWluZXIteGwge1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xufVxuLmJ1bmRsZS1uZXdzbGV0dGVyLXdyYXAgLm5ld3NsZXR0ZXIgLnRleHQtY2VudGVyLm1iLTUge1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xufVxuXG46cm9vdCB7XG4gICAgLS1mcy1jYXJkLXRpdGxlOiAxLjVyZW07XG4gICAgLS1mcy1jYXJkLXRleHQ6IDEuMDYyNXJlbTtcbiAgICAtLWZzLWNhcmQtbGFiZWw6IDAuOTVyZW07XG59XG5cbi5zZXJ2ZS1jYXJkX190aXRsZSxcbi5wbGF0Zm9ybS1mZWF0dXJlX190aXRsZSxcbi53aHktY2FyZF9fdGl0bGUsXG4uY2VydC11bmlxdWVfX3RpdGxlLFxuLmNlcnQtcmVhZHlfX3RpdGxlLFxuLmV4cGVydGlzZS1jYXJkX190aXRsZSxcbi5kZWxpdmVyLWNhcmRfX3RpdGxlLFxuLmhlLWZlYXR1cmVzX190aXRsZSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mcy1jYXJkLXRpdGxlKTtcbiAgICBsaW5lLWhlaWdodDogMS4yNTtcbn1cblxuLnBsYXRmb3JtLWZlYXR1cmVfX3RleHQsXG4ud2h5LWNhcmRfX3RleHQsXG4uY2VydC11bmlxdWVfX2Rlc2MsXG4uY2VydC1yZWFkeV9fdGV4dCxcbi5oZS1mZWF0dXJlc19fdGV4dCB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mcy1jYXJkLXRleHQpO1xufVxuXG4uY2VydGlmeS1jYXJkX19sYWJlbCxcbi5jZXJ0LW9mZmVyaW5nc19fYXBwLW5hbWUge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZnMtY2FyZC1sYWJlbCk7XG59XG5cbi8qIOKUgOKUgCBBcHBsaWNhdGlvbi1yZXF1aXJlbWVudHMgbW9kYWwgKHNoYXJlZDogSUxMIGNvdXJzZSBzZWxlY3RvciArIE9ubGluZSBTdG9yZSBlLWxlYXJuaW5nIHBhY2tzKSDilIDilIAgKi9cbi5jdy1tb2RhbF9fY29udGVudCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5jdy1tb2RhbF9faGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS10b3NhLXRlYWwpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgcGFkZGluZzogMjBweCAyNHB4O1xufVxuLmN3LW1vZGFsX19leWVicm93IHtcbiAgICBmb250LXNpemU6IDAuNzhyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuLmN3LW1vZGFsX190aXRsZSB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICBtYXJnaW46IDA7XG59XG4uY3ctbW9kYWxfX2Nsb3NlIHsgbWFyZ2luOiAwOyB9XG5cbi5jdy1tb2RhbF9fYm9keSB7IHBhZGRpbmc6IDI0cHg7IH1cbi5jdy1tb2RhbF9fbGVhZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDE0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjJweDtcbn1cbi5jdy1tb2RhbF9fbGVhZC1pY29uIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBmbGV4OiAwIDAgYXV0bztcbn1cbi5jdy1tb2RhbF9faW50cm8ge1xuICAgIGNvbG9yOiAjMmQyZDNhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG4uY3ctbW9kYWxfX2FwcCB7IGZvbnQtd2VpZ2h0OiA3MDA7IH1cblxuLmN3LW1vZGFsX19zdWJoZWFkIHtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS10ZWFsKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBtYXJnaW46IDIwcHggMCAxMHB4O1xufVxuLmN3LW1vZGFsX19yZXFzIHtcbiAgICBsaXN0LXN0eWxlOiBkaXNjO1xuICAgIGJhY2tncm91bmQ6ICNmMWYzZjQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAxNHB4IDIwcHggMTRweCAzOHB4O1xuICAgIGNvbG9yOiAjMmQyZDNhO1xufVxuLmN3LW1vZGFsX19yZXFzIGxpIHsgbWFyZ2luLWJvdHRvbTogNHB4OyBsaW5lLWhlaWdodDogMS40NTsgfVxuLmN3LW1vZGFsX19yZXFzIGxpOmxhc3QtY2hpbGQgeyBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5jdy1tb2RhbF9fc3RlcHMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgY291bnRlci1yZXNldDogY3ctc3RlcDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbn1cbi5jdy1tb2RhbF9fc3RlcHMgbGkge1xuICAgIGNvdW50ZXItaW5jcmVtZW50OiBjdy1zdGVwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICBtaW4taGVpZ2h0OiAyNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICAgIGNvbG9yOiAjMmQyZDNhO1xufVxuLmN3LW1vZGFsX19zdGVwcyBsaTpsYXN0LWNoaWxkIHsgbWFyZ2luLWJvdHRvbTogMDsgfVxuLmN3LW1vZGFsX19zdGVwcyBsaTo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBjb3VudGVyKGN3LXN0ZXApO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMjZweDtcbiAgICBoZWlnaHQ6IDI2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXRvc2EtdGVhbCk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG59XG4uY3ctbW9kYWxfX25vdGUge1xuICAgIGJhY2tncm91bmQ6ICNlOGY0ZjQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2JmZTBlMDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICBjb2xvcjogIzJhNGE0YTtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xufVxuLmN3LW1vZGFsX19oZWxwIHtcbiAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgY29sb3I6ICM2YTZhNzg7XG4gICAgbWFyZ2luOiAyMHB4IDAgMDtcbn1cbi5jdy1tb2RhbF9faGVscCBhIHsgY29sb3I6IHZhcigtLXRvc2EtdGVhbCk7IH1cblxuLmN3LW1vZGFsX19mb290ZXIge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZ2FwOiAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmN2Y4Zjk7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlM2U2ZTg7XG4gICAgcGFkZGluZzogMThweCAyNHB4O1xufVxuLmN3LW1vZGFsX19jb25maXJtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogMTBweDtcbiAgICBmb250LXNpemU6IDAuODVyZW07XG4gICAgY29sb3I6ICMyZDJkM2E7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICBtYXJnaW46IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuLmN3LW1vZGFsX19jb25maXJtIGlucHV0IHsgbWFyZ2luLXRvcDogMnB4OyBmbGV4OiAwIDAgYXV0bzsgfVxuLmN3LW1vZGFsX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZ2FwOiAxMnB4O1xufVxuLmN3LW1vZGFsX19idG4ge1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgcGFkZGluZzogMTBweCAyMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAwLjkycmVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMThzIGVhc2UsIGJhY2tncm91bmQgMC4xOHMgZWFzZTtcbn1cbi5jdy1tb2RhbF9fYnRuLS1naG9zdCB7IGJhY2tncm91bmQ6ICMwYzJhMmI7IGNvbG9yOiAjZmZmOyB9XG4uY3ctbW9kYWxfX2J0bi0tZ2hvc3Q6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjMDgyMDIwOyBjb2xvcjogI2ZmZjsgfVxuLmN3LW1vZGFsX19idG4tLW9yYW5nZSB7IGJhY2tncm91bmQ6IHZhcigtLXRvc2Etb3JhbmdlKTsgY29sb3I6ICNmZmY7IH1cbi5jdy1tb2RhbF9fYnRuLS1vcmFuZ2U6aG92ZXIgeyBiYWNrZ3JvdW5kOiAjZDYzZjBjOyBjb2xvcjogI2ZmZjsgfVxuLmN3LW1vZGFsX19idG4uaXMtZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNDU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xuICAgIC5jdy1tb2RhbF9fZm9vdGVyIHsgZmxleC1kaXJlY3Rpb246IHJvdzsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gICAgLmN3LW1vZGFsX19jb25maXJtIHsgbWF4LXdpZHRoOiA2MCU7IH1cbn1cbiIsIi5tZW51YmFyX19zZWFyY2gge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAgIC5tZW51YmFyX19zZWFyY2gge1xuICAgICAgICB3aWR0aDogMjMwcHg7XG4gICAgfVxufVxuXG4ubWVudWJhcl9fc2VhcmNoLWZpZWxkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMnB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIGNhbGMoMTAwJSAtIDE0cHgpIDAsIDEwMCUgMTRweCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xufVxuXG4ubWVudWJhcl9fc2VhcmNoLWZpZWxkOmZvY3VzLXdpdGhpbiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tdG9zYS1vcmFuZ2UpO1xufVxuXG4ubWVudWJhcl9fc2VhcmNoLWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwLjg1cmVtO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiAyO1xufVxuXG4ubWVudWJhcl9fc2VhcmNoLWlucHV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMTBweCAxOHB4IDEwcHggMnJlbTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogI2YzZjRmNjtcbiAgICBjb2xvcjogIzFhMWExYTtcbiAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCBjYWxjKDEwMCUgLSAxMnB4KSAwLCAxMDAlIDEycHgsIDEwMCUgMTAwJSwgMCAxMDAlKTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZTtcbn1cblxuLm1lbnViYXJfX3NlYXJjaC1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjOGE5MDk3O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tZW51YmFyX19zZWFyY2gtaW5wdXQ6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblxuLm1lbnViYXJfX3NlYXJjaC1pbnB1dDo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbixcbi5tZW51YmFyX19zZWFyY2gtaW5wdXQ6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLm1lbnViYXJfX3NlYXJjaC1yZXN1bHRzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDEwMCUgKyAwLjVyZW0pO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgei1pbmRleDogMTA1MDtcbiAgICBtYXgtaGVpZ2h0OiA3MHZoO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG4gICAgcGFkZGluZzogMDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDk5MnB4KSB7XG4gICAgLm1lbnViYXJfX3NlYXJjaC1yZXN1bHRzIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiAzMjBweDtcbiAgICB9XG59XG5cbi5tZW51YmFyX19zZWFyY2gtaXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMC44NXJlbTtcbiAgICBwYWRkaW5nOiAwLjg1cmVtIDEuMXJlbTtcbiAgICBjb2xvcjogIzFhMWExYTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA2KTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlO1xufVxuXG4ubWVudWJhcl9fc2VhcmNoLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLm1lbnViYXJfX3NlYXJjaC1pdGVtOmhvdmVyLFxuLm1lbnViYXJfX3NlYXJjaC1pdGVtLmlzLWFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjZmMTtcbiAgICBjb2xvcjogdmFyKC0tdG9zYS1vcmFuZ2UpO1xufVxuXG4ubWVudWJhcl9fc2VhcmNoLXRodW1iIHtcbiAgICBmbGV4OiAwIDAgMzBweDtcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICBib3JkZXItcmFkaXVzOiAwLjM1cmVtO1xufVxuXG4ubWVudWJhcl9fc2VhcmNoLXRodW1iLS1wbGFjZWhvbGRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6ICNmZmY2ZjE7XG4gICAgY29sb3I6IHZhcigtLXRvc2Etb3JhbmdlKTtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbn1cblxuLm1lbnViYXJfX3NlYXJjaC1ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAzcHg7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4ubWVudWJhcl9fc2VhcmNoLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLm1lbnViYXJfX3NlYXJjaC10aXRsZSBtYXJrIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjQxLCA3MywgMTYsIDAuMTgpO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cblxuLm1lbnViYXJfX3NlYXJjaC10eXBlIHtcbiAgICBmb250LXNpemU6IDAuN3JlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNHB4O1xuICAgIGNvbG9yOiAjOGE5MDk3O1xufVxuXG4ubWVudWJhcl9fc2VhcmNoLWl0ZW06aG92ZXIgLm1lbnViYXJfX3NlYXJjaC10eXBlLFxuLm1lbnViYXJfX3NlYXJjaC1pdGVtLmlzLWFjdGl2ZSAubWVudWJhcl9fc2VhcmNoLXR5cGUge1xuICAgIGNvbG9yOiB2YXIoLS10b3NhLW9yYW5nZSk7XG59XG5cbi5tZW51YmFyX19zZWFyY2gtZW1wdHkge1xuICAgIHBhZGRpbmc6IDFyZW0gMS4xcmVtO1xuICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogIzZiNzE3NztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4iLCIvKipcbiAqIFN3aXBlciAxMi4xLjNcbiAqIE1vc3QgbW9kZXJuIG1vYmlsZSB0b3VjaCBzbGlkZXIgYW5kIGZyYW1ld29yayB3aXRoIGhhcmR3YXJlIGFjY2VsZXJhdGVkIHRyYW5zaXRpb25zXG4gKiBodHRwczovL3N3aXBlcmpzLmNvbVxuICpcbiAqIENvcHlyaWdodCAyMDE0LTIwMjYgVmxhZGltaXIgS2hhcmxhbXBpZGlcbiAqXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2VcbiAqXG4gKiBSZWxlYXNlZCBvbjogTWFyY2ggMjQsIDIwMjZcbiAqL1xuXG46cm9vdCB7XG4gIC0tc3dpcGVyLXRoZW1lLWNvbG9yOiAjMDA3YWZmO1xuICAvKlxuICAtLXN3aXBlci1wcmVsb2FkZXItY29sb3I6IHZhcigtLXN3aXBlci10aGVtZS1jb2xvcik7XG4gIC0tc3dpcGVyLXdyYXBwZXItdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGluaXRpYWw7XG4gICovXG59XG46aG9zdCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIHotaW5kZXg6IDE7XG59XG4uc3dpcGVyIHtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICAvKiBGaXggb2YgV2Via2l0IGZsaWNrZXJpbmcgKi9cbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4uc3dpcGVyLXZlcnRpY2FsID4gLnN3aXBlci13cmFwcGVyIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbi5zd2lwZXItd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogdmFyKC0tc3dpcGVyLXdyYXBwZXItdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sIGluaXRpYWwpO1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cbi5zd2lwZXItYW5kcm9pZCAuc3dpcGVyLXNsaWRlLFxuLnN3aXBlci1pb3MgLnN3aXBlci1zbGlkZSxcbi5zd2lwZXItd3JhcHBlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMHB4LCAwLCAwKTtcbn1cbi5zd2lwZXItaG9yaXpvbnRhbCB7XG4gIHRvdWNoLWFjdGlvbjogcGFuLXk7XG59XG4uc3dpcGVyLXZlcnRpY2FsIHtcbiAgdG91Y2gtYWN0aW9uOiBwYW4teDtcbn1cbi5zd2lwZXItc2xpZGUge1xuICBmbGV4LXNocmluazogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnN3aXBlci1zbGlkZS1pbnZpc2libGUtYmxhbmsge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG4vKiBBdXRvIEhlaWdodCAqL1xuLnN3aXBlci1hdXRvaGVpZ2h0LFxuLnN3aXBlci1hdXRvaGVpZ2h0IC5zd2lwZXItc2xpZGUge1xuICBoZWlnaHQ6IGF1dG87XG59XG4uc3dpcGVyLWF1dG9oZWlnaHQgLnN3aXBlci13cmFwcGVyIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgaGVpZ2h0O1xufVxuLnN3aXBlci1iYWNrZmFjZS1oaWRkZW4gLnN3aXBlci1zbGlkZSB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLyogM0QgRWZmZWN0cyAqL1xuLnN3aXBlci0zZC5zd2lwZXItY3NzLW1vZGUgLnN3aXBlci13cmFwcGVyIHtcbiAgcGVyc3BlY3RpdmU6IDEyMDBweDtcbn1cbi5zd2lwZXItM2QgLnN3aXBlci13cmFwcGVyIHtcbiAgdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbn1cbi5zd2lwZXItM2Qge1xuICBwZXJzcGVjdGl2ZTogMTIwMHB4O1xuICAuc3dpcGVyLXNsaWRlLFxuICAuc3dpcGVyLWN1YmUtc2hhZG93IHtcbiAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICB9XG59XG5cbi8qIENTUyBNb2RlICovXG4uc3dpcGVyLWNzcy1tb2RlIHtcbiAgPiAuc3dpcGVyLXdyYXBwZXIge1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTsgLyogRm9yIEZpcmVmb3ggKi9cbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7IC8qIEZvciBJbnRlcm5ldCBFeHBsb3JlciBhbmQgRWRnZSAqL1xuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG4gID4gLnN3aXBlci13cmFwcGVyID4gLnN3aXBlci1zbGlkZSB7XG4gICAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IHN0YXJ0O1xuICB9XG4gICYuc3dpcGVyLWhvcml6b250YWwge1xuICAgID4gLnN3aXBlci13cmFwcGVyIHtcbiAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IHggbWFuZGF0b3J5O1xuICAgIH1cbiAgICA+IC5zd2lwZXItd3JhcHBlciA+IC5zd2lwZXItc2xpZGU6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tc3dpcGVyLXNsaWRlcy1vZmZzZXQtYmVmb3JlKTtcbiAgICAgIHNjcm9sbC1tYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1zd2lwZXItc2xpZGVzLW9mZnNldC1iZWZvcmUpO1xuICAgIH1cbiAgICA+IC5zd2lwZXItd3JhcHBlciA+IC5zd2lwZXItc2xpZGU6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tc3dpcGVyLXNsaWRlcy1vZmZzZXQtYWZ0ZXIpO1xuICAgIH1cbiAgfVxuICAmLnN3aXBlci12ZXJ0aWNhbCB7XG4gICAgPiAuc3dpcGVyLXdyYXBwZXIge1xuICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogeSBtYW5kYXRvcnk7XG4gICAgfVxuICAgID4gLnN3aXBlci13cmFwcGVyID4gLnN3aXBlci1zbGlkZTpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IHZhcigtLXN3aXBlci1zbGlkZXMtb2Zmc2V0LWJlZm9yZSk7XG4gICAgICBzY3JvbGwtbWFyZ2luLWJsb2NrLXN0YXJ0OiB2YXIoLS1zd2lwZXItc2xpZGVzLW9mZnNldC1iZWZvcmUpO1xuICAgIH1cbiAgICA+IC5zd2lwZXItd3JhcHBlciA+IC5zd2lwZXItc2xpZGU6bGFzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYmxvY2stZW5kOiB2YXIoLS1zd2lwZXItc2xpZGVzLW9mZnNldC1hZnRlcik7XG4gICAgfVxuICB9XG4gICYuc3dpcGVyLWZyZWUtbW9kZSB7XG4gICAgPiAuc3dpcGVyLXdyYXBwZXIge1xuICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogbm9uZTtcbiAgICB9XG4gICAgPiAuc3dpcGVyLXdyYXBwZXIgPiAuc3dpcGVyLXNsaWRlIHtcbiAgICAgIHNjcm9sbC1zbmFwLWFsaWduOiBub25lO1xuICAgIH1cbiAgfVxuICAmLnN3aXBlci1jZW50ZXJlZCB7XG4gICAgPiAuc3dpcGVyLXdyYXBwZXI6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgb3JkZXI6IDk5OTk7XG4gICAgfVxuICAgID4gLnN3aXBlci13cmFwcGVyID4gLnN3aXBlci1zbGlkZSB7XG4gICAgICBzY3JvbGwtc25hcC1hbGlnbjogY2VudGVyIGNlbnRlcjtcbiAgICAgIHNjcm9sbC1zbmFwLXN0b3A6IGFsd2F5cztcbiAgICB9XG4gIH1cbiAgJi5zd2lwZXItY2VudGVyZWQuc3dpcGVyLWhvcml6b250YWwge1xuICAgID4gLnN3aXBlci13cmFwcGVyID4gLnN3aXBlci1zbGlkZTpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1zd2lwZXItY2VudGVyZWQtb2Zmc2V0LWJlZm9yZSk7XG4gICAgfVxuICAgID4gLnN3aXBlci13cmFwcGVyOjpiZWZvcmUge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbWluLWhlaWdodDogMXB4O1xuICAgICAgd2lkdGg6IHZhcigtLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYWZ0ZXIpO1xuICAgIH1cbiAgfVxuICAmLnN3aXBlci1jZW50ZXJlZC5zd2lwZXItdmVydGljYWwge1xuICAgID4gLnN3aXBlci13cmFwcGVyID4gLnN3aXBlci1zbGlkZTpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tYmxvY2stc3RhcnQ6IHZhcigtLXN3aXBlci1jZW50ZXJlZC1vZmZzZXQtYmVmb3JlKTtcbiAgICB9XG4gICAgPiAuc3dpcGVyLXdyYXBwZXI6OmJlZm9yZSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIG1pbi13aWR0aDogMXB4O1xuICAgICAgaGVpZ2h0OiB2YXIoLS1zd2lwZXItY2VudGVyZWQtb2Zmc2V0LWFmdGVyKTtcbiAgICB9XG4gIH1cbn1cblxuLyogU2xpZGUgc3R5bGVzIHN0YXJ0ICovXG4vKiAzRCBTaGFkb3dzICovXG4uc3dpcGVyLTNkIHtcbiAgLnN3aXBlci1zbGlkZS1zaGFkb3csXG4gIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQsXG4gIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0LFxuICAuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3AsXG4gIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSxcbiAgLnN3aXBlci1zbGlkZS1zaGFkb3csXG4gIC5zd2lwZXItc2xpZGUtc2hhZG93LWxlZnQsXG4gIC5zd2lwZXItc2xpZGUtc2hhZG93LXJpZ2h0LFxuICAuc3dpcGVyLXNsaWRlLXNoYWRvdy10b3AsXG4gIC5zd2lwZXItc2xpZGUtc2hhZG93LWJvdHRvbSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiAxMDtcbiAgfVxuICAuc3dpcGVyLXNsaWRlLXNoYWRvdyB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgfVxuICAuc3dpcGVyLXNsaWRlLXNoYWRvdy1sZWZ0IHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgfVxuICAuc3dpcGVyLXNsaWRlLXNoYWRvdy1yaWdodCB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMCkpO1xuICB9XG4gIC5zd2lwZXItc2xpZGUtc2hhZG93LXRvcCB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgcmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDApKTtcbiAgfVxuICAuc3dpcGVyLXNsaWRlLXNoYWRvdy1ib3R0b20ge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwKSk7XG4gIH1cbn1cbi5zd2lwZXItbGF6eS1wcmVsb2FkZXIge1xuICB3aWR0aDogNDJweDtcbiAgaGVpZ2h0OiA0MnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtMjFweDtcbiAgbWFyZ2luLXRvcDogLTIxcHg7XG4gIHotaW5kZXg6IDEwO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlcjogNHB4IHNvbGlkIHZhcigtLXN3aXBlci1wcmVsb2FkZXItY29sb3IsIHZhcigtLXN3aXBlci10aGVtZS1jb2xvcikpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJvcmRlci10b3AtY29sb3I6IHRyYW5zcGFyZW50O1xufVxuLnN3aXBlcjpub3QoLnN3aXBlci13YXRjaC1wcm9ncmVzcyksXG4uc3dpcGVyLXdhdGNoLXByb2dyZXNzIC5zd2lwZXItc2xpZGUtdmlzaWJsZSB7XG4gIC5zd2lwZXItbGF6eS1wcmVsb2FkZXIge1xuICAgIGFuaW1hdGlvbjogc3dpcGVyLXByZWxvYWRlci1zcGluIDFzIGluZmluaXRlIGxpbmVhcjtcbiAgfVxufVxuLnN3aXBlci1sYXp5LXByZWxvYWRlci13aGl0ZSB7XG4gIC0tc3dpcGVyLXByZWxvYWRlci1jb2xvcjogI2ZmZjtcbn1cbi5zd2lwZXItbGF6eS1wcmVsb2FkZXItYmxhY2sge1xuICAtLXN3aXBlci1wcmVsb2FkZXItY29sb3I6ICMwMDA7XG59XG5Aa2V5ZnJhbWVzIHN3aXBlci1wcmVsb2FkZXItc3BpbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG4vKiBTbGlkZSBzdHlsZXMgZW5kICovXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/