/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/.pnpm/css-loader@7.1.5_webpack@5.112.2/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[5].use[1]!../../node_modules/.pnpm/postcss-loader@8.2.1_@typescript+typescript6@6.0.2_postcss@8.5.32_webpack@5.112.2/node_modules/postcss-loader/dist/cjs.js??postcss-pcss!./res/themes/light-custom/css/light-custom.pcss ***!
  \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@layer compound-tokens, compound-web, shared-components, app-web;
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/*
 * SCSS variables defining a range of font sizes.
 *
 * These are defined in `rem` so that they scale with the `font-size` of the root element (which is adjustable via the
 * "Font size" setting). They exist to make the job of converting designs (which tend to be based in pixels) into CSS
 * easier.
 */

/*
 * These variables are now *deprecated* and should not be used in new code; instead Compound typographic tokens
 * should be used. Direct equivalents for these old font size tokens are listed below; where no equivalent exists,
 * that suggests that the design is using a non-standard font size and should be updated.
 *
 * In fact, modern Figma designs should actually use a named Typography style such as "Web/font/heading/sm/semibold",
 * translates directly to `font: var(--cpd-font-heading-sm-semibold)`.
 */ /* Compound equivalent: --cpd-font-size-body-xs */ /* Compound equivalent: --cpd-font-size-body-sm */ /* Compound equivalent: --cpd-font-size-body-md */ /* Compound equivalent: --cpd-font-size-body-lg */ /* Compound equivalent: --cpd-font-size-heading-sm */ /* Compound equivalent: --cpd-font-size-heading-md */ /* Compound equivalent: --cpd-font-size-heading-lg */ /* Compound equivalent: --cpd-font-size-heading-xl */
}
@layer app-web{

/*
 * Nunito.
 * Includes extended Latin and Vietnamese character sets
 * Current URLs are taken from
 * https://github.com/alexeiva/NunitoFont/releases/tag/v3.500
 * ...in order to include cyrillic.
 *
 * Previously, they were
 * https://fonts.googleapis.com/css?family=Nunito:400,400i,600,600i,700,700i&subset=latin-ext,vietnamese
 *
 * We explicitly do not include Nunito's italic variants, as they are not italic enough
 * and it's better to rely on the browser's built-in obliquing behaviour.
 */

/* Grab the other fonts from the current theme, so we can override to Inter */
/* in custom fonts if needed. */
}
@layer app-web{

/* the 'src' links are relative to the bundle.css, which is in a subdirectory.
 */

/* Twemoji COLR */
@font-face {
    font-family: Twemoji;
    font-weight: 400;
    src: url(../../fonts/Twemoji_Mozilla/TwemojiMozilla-colr.666a113.woff2) format("woff2");
}
/* For at least Chrome on Windows 10, we have to explictly add extra weights for the emoji to appear in bold messages, etc. */
@font-face {
    font-family: Twemoji;
    font-weight: 600;
    src: url(../../fonts/Twemoji_Mozilla/TwemojiMozilla-colr.666a113.woff2) format("woff2");
}

@font-face {
    font-family: Twemoji;
    font-weight: 700;
    src: url(../../fonts/Twemoji_Mozilla/TwemojiMozilla-colr.666a113.woff2) format("woff2");
}
}
@layer app-web{
/* Nunito as the default, for old time's sake on legacy themes. */
/* the 'src' links are relative to the bundle.css, which is in a subdirectory.
 */
@font-face {
    font-family: Nunito;
    font-style: normal;
    font-weight: 400;
    src: url(../../fonts/Nunito/Nunito-Regular.d3e2991.ttf) format("truetype");
}

@font-face {
    font-family: Nunito;
    font-style: normal;
    font-weight: 600;
    src: url(../../fonts/Nunito/Nunito-SemiBold.58f5995.ttf) format("truetype");
}

@font-face {
    font-family: Nunito;
    font-style: normal;
    font-weight: 700;
    src: url(../../fonts/Nunito/Nunito-Bold.b3a1698.ttf) format("truetype");
}
}
@layer app-web{

:root {
    /* This is set to Twemoji when the user opts into the bundled emoji font */
    --emoji-font-family: "";
}

/* Nunito lacks combining diacritics, so these will fall through
   to the next font.  Helevetica's diacritics sometimes do not combine
   nicely (on OSX, at least) and result in a huge horizontal mess.
   Arial empirically gets it right, hence prioritising Arial here. */
/* Noto Color Emoji contains digits, in fixed-width, therefore causing
   digits in flowed text to stand out.
   TODO: Consider putting all emoji fonts to the end rather than the front. */

/* unified palette */
/* try to use these colors when possible */

/* typical text (dark-on-white in light skin) */ /* Commonly used in headings and relevant alt text */

/* used for dialog box text */

/* used for focusing form controls */

/* button UI (white-on-green in light skin) */

/* informational plinth */

/* left-panel style muted accent color */

/* used by RoomDropTarget */

/* used by Autocomplete */

/* selected for hoverover & selected event tiles */

/* used for the hairline dividers in RoomView */

/* used for the border of input text fields */

/* apart from login forms, which have stronger border */

/* used for UserSettings EditableText */
/* scrollbars */
/* context menus */

/* ******************** */

/* Legacy theme backports */

/* Legacy theme backports */

/* ******************** */ /* XXX: Color from dark theme */

/* All of these are from dark theme */

/**
 * Creating a `semantic` color scale. This will not be needed with the new
 * visual language, but necessary during the transition period
 * This abstract the `green` away from where accent shades are used
 * Take: `background: rgba($accent, 0.1);`
 * would be transformed to: `background: $accent-300;`
 *
 * To use under very rare circumstances, always prefer the semantics defined
 * in https://compound.element.io/?path=/docs/tokens-semantic-colors--docs
 */

/* ******************** */

/* ******************** */

/* $event-highlight-bg-color shares this value, */
/* so to not make their order dependent on who depends on who, have a shared value */
/* defined before both */

/* event timestamp */

/* e2e */

/*** ImageView ***/

/* Tabbed views */

/* Buttons */ /* TODO: Verify color */

/* Toggle switch */

/* See non-legacy _light for variable information */

/* Bubble tiles */

/* pinned events indicator */

/* Location sharing */
/* ******************** */
/* ******************** */

body {
    color-scheme: light;
}

/* diff highlight colors */
.hljs-addition {
    background: #dfd;
}

.hljs-deletion {
    background: #fdd;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* stylelint-disable csstools/value-no-unknown-custom-properties */

/* Colors from Figma Compound https://www.figma.com/file/X4XTH9iS2KGJ2wFKDqkyed/Compound?node-id=559%3A741 */

/* --timeline-background-color */ /* still needs alpha at .5 */ /* still needs alpha at .59 */

/* --roomlist-highlights-color */

/* --sidebar-color */

/* --roomlist-background-color */
/* these were #f2f5f8 instead of #f3f8fd, but close enough */

/* --timeline-text-color */
/* was #212121 */
/* was #45474a */
/* was #4e5054 */
/* was #232f32 */

/* --roomlist-separator-color */ /* originally #e5e5e5, but close enough */

/* --timeline-text-secondary-color */
/* was #747474 */

/* was #888888 */

/* --primary-color */

/* --warning-color */ /* still needs alpha at 0.5 */

/* --timeline-highlights-color */

/* redirect some variables away from their hardcoded values in the light theme */

/* --eventbubble colors */

/**
 * Variation of the accent color.
 * Generate this colour scale using LeonardoColor
 * TODO: Add link
 */
}
@layer app-web{
/* autogenerated by rethemendex.sh */
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/**
 * React Transition Group animations are prefixed with 'mx_rtg--' so that we
 * know they should not be used anywhere outside of React Transition Groups.
*/

.mx_rtg--fade-enter {
    opacity: 0;
}
.mx_rtg--fade-enter-active {
    opacity: 1;
    -webkit-transition: opacity 300ms ease;
    transition: opacity 300ms ease;
}
.mx_rtg--fade-exit {
    opacity: 1;
}
.mx_rtg--fade-exit-active {
    opacity: 0;
    -webkit-transition: opacity 300ms ease;
    transition: opacity 300ms ease;
}

:root {
    --hover-transition: 0.08s cubic-bezier(0.46, 0.03, 0.52, 0.96); /* quadratic */
}

@-webkit-keyframes mx--anim-pulse {
    0% {
        opacity: 1;
    }
    50% {
        opacity: 0.7;
    }
    100% {
        opacity: 1;
    }
}

@keyframes mx--anim-pulse {
    0% {
        opacity: 1;
    }
    50% {
        opacity: 0.7;
    }
    100% {
        opacity: 1;
    }
}

@-webkit-keyframes mx_Dialog_lightbox_background_keyframes {
    from {
        opacity: 0;
    }
    to {
        opacity: 0.95;
    }
}

@keyframes mx_Dialog_lightbox_background_keyframes {
    from {
        opacity: 0;
    }
    to {
        opacity: 0.95;
    }
}

@-webkit-keyframes mx_ImageView_panel_keyframes {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes mx_ImageView_panel_keyframes {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@media (prefers-reduced-motion) {
    @-webkit-keyframes mx--anim-pulse {
        /* Override all keyframes in reduced-motion */
    }
    @keyframes mx--anim-pulse {
        /* Override all keyframes in reduced-motion */
    }

    @-webkit-keyframes mx_Dialog_lightbox_background_keyframes {
        /* Override all keyframes in reduced-motion */
    }

    @keyframes mx_Dialog_lightbox_background_keyframes {
        /* Override all keyframes in reduced-motion */
    }

    @-webkit-keyframes mx_ImageView_panel_keyframes {
        /* Override all keyframes in reduced-motion */
    }

    @keyframes mx_ImageView_panel_keyframes {
        /* Override all keyframes in reduced-motion */
    }

    .mx_rtg--fade-enter-active {
        -webkit-transition: none;
        transition: none;
    }
    .mx_rtg--fade-exit-active {
        -webkit-transition: none;
        transition: none;
    }
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019-2023 The Matrix.org Foundation C.I.C
Copyright 2017-2019 New Vector Ltd
Copyright 2017 Vector Creations Ltd
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
}
@layer app-web{
:root {
    --container-border-width: 8px;
    --container-gap-width: 8px; /* only even numbers should be used because otherwise we get 0.5px margin values. */
    --transition-short: 0.1s;
    --transition-standard: 0.3s;
    --buttons-dialog-gap-row: var(--cpd-space-2x);
    --buttons-dialog-gap-column: var(--cpd-space-2x);
    --MBody-border-radius: 8px;
    --EventTileBubble_margin-block: 10px;
    --MessageTimestamp-width: 46px; /* 8 + 30 (avatar) + 8 */
    --MediaPreview-width: 478px; /* keep in sync with PREVIEW_WIDTH_PX in src/utils/UrlPreviewFetcher.ts */

    /* Expected z-indexes for dialogs:
        4000 - Default wrapper index
        4009 - Static dialog background
        4010 - Static dialog itself
        4011 - Standard dialog background
        4012 - Standard dialog itself

       These are set up such that the static dialog always appears
       underneath the standard dialogs.
     */
    --dialog-zIndex-wrapper-default: 4000;
    --dialog-zIndex-static-background: 4009;
    --dialog-zIndex-static: calc(var(--dialog-zIndex-static-background) + 1); /* 4010 */
    --dialog-zIndex-standard-background: calc(var(--dialog-zIndex-static) + 1); /* 4011 */
    --dialog-zIndex-standard: calc(var(--dialog-zIndex-standard-background) + 1); /* 4012 */
}

#matrixchat {
    /* This is required to ensure Compound tooltips correctly draw where they should with z-index: auto */
    contain: strict;
}
#mx_ContextualMenu_Container,
#mx_PersistedElement_container,
#mx_Dialog_Container,
#mx_Dialog_StaticContainer {
    /* This is required to ensure Compound tooltips correctly draw where they should with z-index: auto */
    isolation: isolate;
}

/**
 * Disable pointer events inside the persistentElement container when the room-list is being resized.
 * This is necessary to avoid the pointer events from being hijacked by the content rendered inside
 * that div.
 */
:root:has(.mx_Separator[data-separator="active"]) #mx_PersistedElement_container {
    pointer-events: none;
}

/**
 * We need to increase the specificity of the selector to override the
 * custom property set by the design tokens package
 */
[class^="cpd-theme"][class^="cpd-theme"] {
    /**
     * The design tokens package currently does not expose the fallback fonts
     * We want to keep on re-using `$font-family` to not break custom themes
     * and because we can to use `Twemoji` to display emoji rather than using
     * system ones
     */
    --cpd-font-family-sans: var(--font-family, "Nunito", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Arial", "Helvetica", sans-serif,
    "Noto Color Emoji");
}

@media (prefers-reduced-motion) {
    :root {
        --transition-short: 0;
        --transition-standard: 0;
    }
}

html {
    /* hack to stop overscroll bounce on OSX and iOS.
       N.B. Breaks things when we have legitimate horizontal overscroll */
    height: 100%;
    overflow: hidden;
    /* Stop similar overscroll bounce in Firefox Nightly for macOS */
    -ms-scroll-chaining: none;
        overscroll-behavior: none;
}

body {
    /* !important because compound overrides these font settings for body */
    font: var(--cpd-font-body-md-regular) !important;
    letter-spacing: var(--cpd-font-letter-spacing-body-md) !important;
    /**
     * We want to apply Inter Dynamic metrics (https://rsms.me/inter/dynmetrics/)
     * We need to tweak the `letter-spacing` property and doing so, disables by
     * default the optional ligatures
     * `font-feature-settings` allows us to override this behaviour and have the
     * correct ligatures and the proper dynamic metric spacing.
     */
    -webkit-font-feature-settings:
        "kern" 1,
        "liga" 1,
        "calt" 1 !important;
            font-feature-settings:
        "kern" 1,
        "liga" 1,
        "calt" 1 !important;

    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    color: var(--timeline-text-color);
    border: 0px;
    margin: 0px;

    /* needed to match the designs correctly on macOS */
    /* see https://github.com/vector-im/element-web/issues/11425 */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

pre,
code {
    font-family: "Fira Code", "", "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji";
    font-family: var(--font-family-monospace, "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji");
    font-size: 100% !important;
}

.error,
.warning,
.text-error,
.text-warning {
    color: #ff5b55;
    color: var(--alert, #ff5b55);
}

.text-success {
    color: #0dbd8b;
    color: var(--accent-color, #0dbd8b);
}

.text-muted {
    color: #61708b;
}

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

.text-secondary {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

.mx_Verified {
    color: #0dbd8b;
}

.mx_Untrusted {
    color: #ff5b55;
}

b {
    /* On Firefox, the default weight for `<b>` is `bolder` which results in no bold */
    /* effect since we only have specific weights of our fonts available. */
    font-weight: bold;
}

/* Keep the legacy link colour without overriding Compound anchors or shared timestamp styling. */
a:where(:not([data-kind]):not(.mx_MessageTimestamp)):hover,
a:where(:not([data-kind]):not(.mx_MessageTimestamp)):link,
a:where(:not([data-kind]):not(.mx_MessageTimestamp)):visited {
    color: var(--primary-color);
}

:not(.mx_no_textinput):not(.mx_textinput):not(.mx_Field) > input[type="text"],
:not(.mx_no_textinput):not(.mx_textinput):not(.mx_Field) > input[type="search"] {
    padding: 9px;
    font: var(--cpd-font-body-md-semibold);
    font-weight: var(--cpd-font-weight-semibold);
    min-width: 0;
}

input[type="text"].mx_textinput_icon,
input[type="search"].mx_textinput_icon {
    padding-left: 36px;
    background-repeat: no-repeat;
    background-position: 10px center;
}

/* FIXME THEME - Tint by CSS rather than referencing a duplicate asset */
input[type="text"].mx_textinput_icon.mx_textinput_search,
input[type="search"].mx_textinput_icon.mx_textinput_search {
    background-image: url(../../icons/search.7258145.svg);
}

/* dont search UI as not all browsers support it, */
/* we implement it ourselves where needed instead */
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
    display: none;
}

/* Override Firefox's UA style so we get a consistent look across browsers */
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
    opacity: 1;
    opacity: initial;
}
input::-moz-placeholder, textarea::-moz-placeholder {
    opacity: 1;
    opacity: initial;
}
input:-ms-input-placeholder, textarea:-ms-input-placeholder {
    opacity: 1;
    opacity: initial;
}
input::-ms-input-placeholder, textarea::-ms-input-placeholder {
    opacity: 1;
    opacity: initial;
}
input::placeholder,
textarea::placeholder {
    opacity: 1;
    opacity: initial;
}

input[type="text"],
textarea {
    background-color: transparent;
    color: var(--timeline-text-color);
}

/* Required by Firefox */
textarea {
    color: var(--timeline-text-color);
}

input[type="text"]:focus,
textarea:focus {
    outline: none;
    -webkit-box-shadow: none;
            box-shadow: none;
}

/* This is used to hide the standard outline added by browsers for */
/* accessible (focusable) components. Not intended for buttons, but */
/* should be used on things like focusable containers where the outline */
/* is usually not helping anyone. */
*:focus:not(:focus-visible) {
    outline: none;
}

summary {
    cursor: pointer;
}

/* .mx_textinput is a container for a text input */
/* + some other controls like buttons, ... */
/* it has the appearance of a text box so the controls */
/* appear to be part of the input */
    .mx_Dialog .mx_textinput > input[type="text"],
    .mx_Dialog .mx_textinput > input[type="search"],
    .mx_MatrixChat_wrapper .mx_textinput > input[type="text"],
    .mx_MatrixChat_wrapper .mx_textinput > input[type="search"] {
        border: none;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        color: var(--timeline-text-color);
    }

    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"],
    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"],
    .mx_Dialog .mx_textinput,
    .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"],
    .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"],
    .mx_MatrixChat_wrapper .mx_textinput {
        display: block;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        background-color: transparent;
        color: #9fa9ba;
        border-radius: 4px;
        border: 1px solid var(--secondary-hairline-color);
        /* these things should probably not be defined globally */
        margin: 9px;
    }

    .mx_Dialog .mx_textinput, .mx_MatrixChat_wrapper .mx_textinput {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::-webkit-input-placeholder, .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::-webkit-input-placeholder, .mx_Dialog .mx_textinput input::-webkit-input-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::-webkit-input-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::-webkit-input-placeholder, .mx_MatrixChat_wrapper .mx_textinput input::-webkit-input-placeholder {
        color: var(--cpd-color-text-secondary);
    }

    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::-moz-placeholder, .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::-moz-placeholder, .mx_Dialog .mx_textinput input::-moz-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::-moz-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::-moz-placeholder, .mx_MatrixChat_wrapper .mx_textinput input::-moz-placeholder {
        color: var(--cpd-color-text-secondary);
    }

    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]:-ms-input-placeholder, .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]:-ms-input-placeholder, .mx_Dialog .mx_textinput input:-ms-input-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]:-ms-input-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]:-ms-input-placeholder, .mx_MatrixChat_wrapper .mx_textinput input:-ms-input-placeholder {
        color: var(--cpd-color-text-secondary);
    }

    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::-ms-input-placeholder, .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::-ms-input-placeholder, .mx_Dialog .mx_textinput input::-ms-input-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::-ms-input-placeholder, .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::-ms-input-placeholder, .mx_MatrixChat_wrapper .mx_textinput input::-ms-input-placeholder {
        color: var(--cpd-color-text-secondary);
    }

    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::placeholder,
    .mx_Dialog :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::placeholder,
    .mx_Dialog .mx_textinput input::placeholder,
    .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="text"]::placeholder,
    .mx_MatrixChat_wrapper :not(.mx_textinput):not(.mx_Field):not(.mx_no_textinput) > input[type="search"]::placeholder,
    .mx_MatrixChat_wrapper .mx_textinput input::placeholder {
        color: var(--cpd-color-text-secondary);
    }

/* Prevent ugly dotted highlight around selected elements in Firefox */
::-moz-focus-inner {
    border: 0;
}

/* These are magic constants which are excluded from tinting, to let themes */
/* (which only have CSS) tell the app what their non-tinted */
/* colourscheme is by inspecting the stylesheet DOM. */
/* They are not used for layout!! */
#mx_theme_accentColor {
    color: #0dbd8b;
    color: var(--accent-color, #0dbd8b);
}

#mx_theme_secondaryAccentColor {
    color: var(--roomlist-background-color);
}

.mx_Dialog_wrapper {
    position: fixed;
    z-index: 4000;
    z-index: var(--dialog-zIndex-wrapper-default);
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

.mx_Dialog_border {
    z-index: calc(calc(calc(4009 + 1) + 1) + 1);
    z-index: var(--dialog-zIndex-standard);
    position: relative;
    width: 100%;
    max-width: -webkit-fit-content;
    max-width: -moz-fit-content;
    max-width: fit-content;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    max-height: calc(100% - var(--cpd-space-6x));
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

    .mx_Dialog_lightbox .mx_Dialog_border {
        /* The lightbox isn't so much of a dialog as a fullscreen overlay. We
        don't want the glass border. */
        display: contents;
    }

.mx_Dialog {
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    color: var(--timeline-text-secondary-color);
    font-size: 0.9375rem;
    position: relative;
    padding: var(--cpd-space-8x) var(--cpd-space-10x);
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    overflow-y: auto;
}

    .mx_Dialog_staticWrapper .mx_Dialog {
        z-index: calc(4009 + 1);
        z-index: var(--dialog-zIndex-static);
        contain: content;
    }

    .mx_Dialog_lightbox .mx_Dialog {
        border-radius: 0px;
        background-color: transparent;
        width: 100%;
        height: 100%;
        max-width: 100%;
        max-height: 100%;
        pointer-events: none;
        padding: 0;
    }

    /* Styles copied/inspired by GroupLayout, ReplyTile, and EventTile variants. */
    .mx_Dialog .markdown-body {
        font: var(--cpd-font-body-md-regular) !important;
        letter-spacing: var(--cpd-font-letter-spacing-body-md);
        font-family: inherit !important;
        white-space: normal !important;
        line-height: inherit !important;
        background-color: inherit;
        color: inherit;

        /* Make h1 and h2 the same size as h3. */
    } /* inherit the colour from the dark or light theme by default (but not for code blocks) */

        .mx_Dialog .markdown-body pre,
        .mx_Dialog .markdown-body code {
            font-family: "Fira Code", "", "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji" !important;
            font-family: var(--font-family-monospace, "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji") !important;
            background-color: #f3f8fd;
        }

        /* this selector wrongly applies to code blocks too but we will unset it in the next one */
        .mx_Dialog .markdown-body code {
            white-space: pre-wrap; /* don't collapse spaces in inline code blocks */
        }

        .mx_Dialog .markdown-body pre {
            /* have to use overlay rather than auto otherwise Linux and Windows */
            /* Chrome gets very confused about vertical spacing: */
            /* https://github.com/vector-im/vector-web/issues/754 */
            overflow-x: overlay;
            overflow-y: visible;
        }

            .mx_Dialog .markdown-body pre::-webkit-scrollbar-corner {
                background: transparent;
            }

            .mx_Dialog .markdown-body pre code {
                white-space: pre; /* we want code blocks to be scrollable and not wrap */
            }

                .mx_Dialog .markdown-body pre code > * {
                    display: inline;
                }

        .mx_Dialog .markdown-body h1,
        .mx_Dialog .markdown-body h2,
        .mx_Dialog .markdown-body h3,
        .mx_Dialog .markdown-body h4,
        .mx_Dialog .markdown-body h5,
        .mx_Dialog .markdown-body h6 {
            font-family: inherit !important;
            color: inherit;
        }
        .mx_Dialog .markdown-body h1,
        .mx_Dialog .markdown-body h2 {
            font-size: 1.5em;
            border-bottom: none !important; /* override GFM */
        }

        .mx_Dialog .markdown-body a {
            color: var(--primary-color);
        }

        .mx_Dialog .markdown-body blockquote {
            border-left: 2px solid var(--cpd-color-border-interactive-primary);
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            border-radius: 2px;
            padding: 0 10px;
        }

.mx_Dialog_fixedWidth {
    width: 60vw;
    max-width: 704px;
}

.mx_Dialog_background {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--sidebar-color-50pct);
    z-index: calc(calc(4009 + 1) + 1);
    z-index: var(--dialog-zIndex-standard-background);
}

    .mx_Dialog_background.mx_Dialog_staticBackground {
        z-index: 4009;
        z-index: var(--dialog-zIndex-static-background);
    }

    .mx_Dialog_wrapperWithStaticUnder .mx_Dialog_background {
        /* Roughly half of what it would normally be - we don't want to black out */
        /* the app, just make it clear that the dialogs are stacked. */
        opacity: 0.4;
    }

    .mx_Dialog_lightbox .mx_Dialog_background {
        opacity: 0.95;
        background-color: #000;
        -webkit-animation-name: mx_Dialog_lightbox_background_keyframes;
                animation-name: mx_Dialog_lightbox_background_keyframes;
        -webkit-animation-duration: 300ms;
                animation-duration: 300ms;
    }

.mx_Dialog_titleImage {
    vertical-align: sub;
    width: 25px;
    height: 25px;
    margin-left: -2px;
    margin-right: 4px;
    margin-bottom: 2px;
}

.mx_Dialog_title {
    color: var(--timeline-text-color);
    display: inline-block;
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    letter-spacing: var(--cpd-font-letter-spacing-heading-lg);
}

    .mx_Dialog_title.danger {
        color: #ff5b55;
        color: var(--alert, #ff5b55);
    }

.mx_Dialog_header {
    position: relative;
    padding: 0;
    -webkit-padding-end: 20px;
            padding-inline-end: 20px; /* Reserve room for the close button */
    margin-bottom: var(--cpd-space-2x);
}

    .mx_Dialog_header.mx_Dialog_headerWithButton > .mx_Dialog_title {
        text-align: center;
    }

.mx_Dialog_cancelButton {
    width: 20px;
    height: 20px;
    padding: var(--cpd-space-1x);
    border-radius: 14px;
    background-color: var(--cpd-color-bg-subtle-secondary);
}
    .mx_Dialog_cancelButton:hover {
        background-color: var(--cpd-color-bg-subtle-primary);
    }
    .mx_Dialog_cancelButton svg {
        width: inherit;
        height: inherit;
        vertical-align: top;
        color: var(--cpd-color-icon-secondary);
    }
    .mx_Dialog_cancelButton{
    position: absolute;
    top: var(--cpd-space-4x);
    right: var(--cpd-space-4x);
}

.mx_Dialog_content {
    margin: 24px 0 68px;
    font: var(--cpd-font-body-md-regular);
    color: var(--timeline-text-color);
    word-wrap: break-word;
}

.mx_Dialog_buttons {
    margin-top: var(--cpd-space-5x);
    -webkit-margin-start: auto;
            margin-inline-start: auto;
    text-align: right;
}

    .mx_Dialog_buttons .mx_Dialog_buttons_additive {
        /* The consumer is responsible for positioning their elements. */
        float: left;
    }

    .mx_Dialog_buttons .mx_Dialog_buttons_row {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        text-align: left;
        text-align: initial;
        -webkit-margin-start: auto;
                margin-inline-start: auto;

        /* default gap among elements */
        -webkit-column-gap: var(--buttons-dialog-gap-column);
           -moz-column-gap: var(--buttons-dialog-gap-column);
                column-gap: var(--buttons-dialog-gap-column);
        row-gap: var(--buttons-dialog-gap-row);
    }

        .mx_Dialog_buttons .mx_Dialog_buttons_row button {
            margin: 0 !important; /* override the margin settings */
        }

/* XXX: Our button styles are a mess; this is opt-in styling for legacy raw <button>s and
 * <input type="submit">s in dialogs. Search `mx_LegacyDialogButton` in the JSX for the elements
 * still relying on it.
 * Keep the `.mx_Dialog`/`.mx_Dialog_buttons` ancestor + `button`/`input[type="submit"]` type
 * selector alongside the marker class: they preserve the specificity of the old selectors, which
 * some per-dialog CSS overrides (e.g. width tweaks) rely on losing to.
 */
.mx_Dialog button.mx_LegacyDialogButton,
.mx_Dialog input.mx_LegacyDialogButton[type="submit"] {
    /* align images in buttons (eg spinners) */
    vertical-align: middle;
    border: 0px;
    border-radius: 24px;
    font: var(--cpd-font-body-md-regular);
    color: white;
    background-color: var(--cpd-color-bg-action-primary-rest);
    width: auto;
    padding: 7px;
    padding-left: 1.5em;
    padding-right: 1.5em;
    cursor: pointer;
    display: inline-block;

    /* flip colours for the secondary ones */
}
    .mx_Dialog button.mx_LegacyDialogButton:not(:focus-visible), .mx_Dialog input.mx_LegacyDialogButton[type="submit"]:not(:focus-visible) {
        outline: none;
    }
    .mx_Dialog button.mx_LegacyDialogButton,
.mx_Dialog input.mx_LegacyDialogButton[type="submit"]{
    margin-left: 0px;
    margin-right: var(--buttons-dialog-gap-column);
    margin-bottom: 5px;
    font-weight: var(--cpd-font-weight-semibold);
    border: 1px solid var(--cpd-color-border-interactive-secondary);
    color: var(--cpd-color-text-primary);
    background-color: transparent;
    font-family: inherit;
}

.mx_Dialog button.mx_LegacyDialogButton:last-child {
    margin-right: 0px;
}

.mx_Dialog button.mx_LegacyDialogButton:focus,
.mx_Dialog input.mx_LegacyDialogButton[type="submit"]:focus {
    -webkit-filter: brightness(105%);
            filter: brightness(105%);
}

/* Default (non-cancel) buttons inside a DialogButtons footer get filled in as the primary action,
 * even without the mx_Dialog_primary class - .danger/.warning override the colours below via a
 * same-specificity, later-in-source rule; disabled overrides everyone the same way.
 */
.mx_Dialog button.mx_LegacyDialogButton.mx_Dialog_primary,
.mx_Dialog input.mx_LegacyDialogButton[type="submit"].mx_Dialog_primary,
.mx_Dialog_buttons button.mx_LegacyDialogButton:not(.cancel) {
    color: var(--cpd-color-text-on-solid-primary);
    background-color: var(--cpd-color-bg-action-primary-rest);
    border-color: var(--cpd-color-bg-action-primary-rest);
    min-width: 156px;
}

.mx_Dialog button.mx_LegacyDialogButton.danger,
.mx_Dialog input.mx_LegacyDialogButton[type="submit"].danger {
    background-color: var(--cpd-color-bg-critical-primary);
    border: solid 1px var(--cpd-color-bg-critical-primary);
    color: var(--cpd-color-text-on-solid-primary);
}

.mx_Dialog button.mx_LegacyDialogButton.warning,
.mx_Dialog input.mx_LegacyDialogButton[type="submit"].warning {
    border: solid 1px var(--cpd-color-border-critical-subtle);
    color: var(--cpd-color-text-critical-primary);
}

.mx_Dialog_buttons button.mx_LegacyDialogButton.cancel {
    color: var(--cpd-color-text-primary);
    background-color: var(--cpd-color-bg-action-secondary-rest);
    border-color: var(--cpd-color-border-interactive-secondary);
    min-width: 156px;
}

.mx_Dialog button.mx_LegacyDialogButton:disabled,
.mx_Dialog input.mx_LegacyDialogButton[type="submit"]:disabled {
    background-color: var(--timeline-text-secondary-color);
    border: solid 1px var(--timeline-text-secondary-color);
    opacity: 0.7;
}

/* Spinner Dialog overide */
    /* This is not a real dialog, so we shouldn't show a glass border */
    .mx_Dialog_wrapper.mx_Dialog_spinner .mx_Dialog_border {
        display: contents;
    }

    .mx_Dialog_wrapper.mx_Dialog_spinner .mx_Dialog {
        inline-size: auto;
        block-size: auto;
        border-radius: 8px;
        padding: 8px;
        -webkit-box-shadow: none;
                box-shadow: none;

        /* Don't show scroll-bars on spinner dialogs */
        overflow-x: hidden;
        overflow-y: hidden;
    }

/* TODO: Review mx_GeneralButton usage to see if it can use a different class */
/* These classes were brought in from the old UserSettings and are included here to avoid */
/* breaking the app. */
/* Ref: https://github.com/vector-im/element-web/issues/8420 */
.mx_GeneralButton {
    /* align images in buttons (eg spinners) */
    vertical-align: middle;
    border: 0px;
    border-radius: 24px;
    font: var(--cpd-font-body-md-regular);
    color: white;
    background-color: var(--cpd-color-bg-action-primary-rest);
    width: auto;
    padding: 7px;
    padding-left: 1.5em;
    padding-right: 1.5em;
    cursor: pointer;
    display: inline-block;
}
    .mx_GeneralButton:not(:focus-visible) {
        outline: none;
    }
    .mx_GeneralButton{
    display: inline;
    margin: auto;
}

.mx_TextInputDialog_label {
    text-align: left;
    padding-bottom: 12px;
}

.mx_TextInputDialog_input {
    font-size: 0.9375rem;
    border-radius: 3px;
    border: 1px solid #e7e7e7;
    padding: 9px;
    color: var(--timeline-text-color);
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
}

.mx_button_row {
    margin-top: 69px;
}

/* username colors */
/* used by SenderProfile & RoomPreviewBar */
.mx_Username_color1 {
    color: var(--cpd-color-text-decorative-1);
}

.mx_Username_color2 {
    color: var(--cpd-color-text-decorative-2);
}

.mx_Username_color3 {
    color: var(--cpd-color-text-decorative-3);
}

.mx_Username_color4 {
    color: var(--cpd-color-text-decorative-4);
}

.mx_Username_color5 {
    color: var(--cpd-color-text-decorative-5);
}

.mx_Username_color6 {
    color: var(--cpd-color-text-decorative-6);
}

.mx_AppWarning,
.mx_AppPermission {
    text-align: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    height: 100%;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_lineClamp {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    -webkit-line-clamp: var(--mx-line-clamp, 1);
    overflow: hidden;
}

/* Layout compatibility hook for timestamp placement in existing app/web timeline surfaces. */
.mx_MessageTimestamp {
    display: block;
}

.mx_MessageTimestamp_lateIcon {
    position: absolute;
    inset-block-start: var(--cpd-space-1x);
    inset-inline-end: 100%;
    color: var(--cpd-color-text-secondary);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_BeaconListItem {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    padding: var(--cpd-space-3x) 0;

    border-bottom: 1px solid #f4f6fa;

    border-bottom: 1px solid var(--system, #f4f6fa);

    cursor: pointer;
}

.mx_BeaconListItem_avatarIcon {
    -webkit-box-flex: 0;
        -ms-flex: 0 0;
            flex: 0 0;
    height: 32px;
    width: 32px;
}

.mx_BeaconListItem_avatar {
    -webkit-box-flex: 0;
        -ms-flex: 0 0;
            flex: 0 0;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;

    margin-right: var(--cpd-space-2x);
    border: 2px solid #5c56f5;
    border-radius: 50%;
}

.mx_BeaconListItem_info {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    width: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
}

.mx_BeaconListItem_status {
    /* override beacon status padding */
    padding: 0 !important;
    margin-bottom: var(--cpd-space-2x);
}

    .mx_BeaconListItem_status .mx_BeaconStatus_label {
        font-weight: var(--cpd-font-weight-semibold);
    }

.mx_BeaconListItem_lastUpdated {
    color: #2e2f32;
    color: var(--tertiary-content, #2e2f32);
    font-size: 0.625rem;
}

.mx_BeaconListItem_interactions {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_BeaconStatus {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;

    -webkit-box-sizing: border-box;

            box-sizing: border-box;
    padding: var(--cpd-space-2x);

    color: var(--color);
    font-size: 0.75rem;
}

.mx_BeaconStatus_Loading,
.mx_BeaconStatus_Stopped {
    --color: var(--tertiary-content, #2e2f32);
}

.mx_BeaconStatus_Active,
.mx_BeaconStatus_Error {
    --color: var(--timeline-text-color);
}

.mx_BeaconStatus_icon {
    height: 32px;
    width: 32px;

    -webkit-box-flex: 0;

        -ms-flex: 0 0 32px;

            flex: 0 0 32px;
    margin-right: var(--cpd-space-2x);
}

.mx_BeaconStatus_description {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    line-height: 0.875rem;

    padding-right: var(--cpd-space-2x);

    white-space: nowrap;
    overflow: hidden;
}

    .mx_BeaconStatus_description .mx_BeaconStatus_description_status {
        text-overflow: ellipsis;
        overflow: hidden;
    }

.mx_BeaconStatus_expiryTime {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

.mx_BeaconStatus_label {
    margin-bottom: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_BeaconStatusTooltip {
    position: absolute;
    top: 42px;
    max-width: 150px;
    height: 38px;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
    padding-top: var(--cpd-space-2x);
}

.mx_BeaconStatusTooltip_inner {
    position: relative;
    height: 100%;
    border-radius: 4px;
    background: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    -webkit-box-shadow: 4px 4px 12px 0 rgb(118, 131, 156, 0.6);
            box-shadow: 4px 4px 12px 0 rgb(118, 131, 156, 0.6);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_BeaconViewDialog_wrapper .mx_Dialog {
    padding: 0px;

    /* Unset contain and position to allow the close button
    to appear outside the dialog */
    contain: unset;
    position: static;
    position: initial;
}

.mx_BeaconViewDialog {
    /* subtract 0.5px to prevent single-pixel margin due to rounding */
    width: calc(80vw - 0.5px);
    height: calc(80vh - 0.5px);
    overflow: hidden;

    /* sidebar is absolutely positioned inside */
    position: relative;
}

    .mx_BeaconViewDialog .mx_Dialog_header {
        margin: 0px;
        padding: 0px;
        position: static;
        position: initial;
    }

        .mx_BeaconViewDialog .mx_Dialog_header .mx_Dialog_title {
            display: none;
        }

        .mx_BeaconViewDialog .mx_Dialog_header .mx_Dialog_cancelButton {
            z-index: 4010;
            position: fixed;
            right: 5vw;
            top: 5vh;
            width: 20px;
            height: 20px;
            background-color: #ffffff;
        }

.mx_BeaconViewDialog_map {
    width: 80vw;
    height: 80vh;
    border-radius: 8px;
}

.mx_BeaconViewDialog_mapFallbackMessage {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    margin-bottom: var(--cpd-space-4x);
}

.mx_BeaconViewDialog_viewListButton {
    position: absolute;
    top: var(--cpd-space-6x);
    left: var(--cpd-space-6x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DialogOwnBeaconStatus {
    position: absolute;
    bottom: var(--cpd-space-8x);
    width: 300px;
    margin-left: -150px;
    left: 50%;

    -webkit-box-sizing: border-box;

            box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: stretch;
        -ms-flex-pack: stretch;
            justify-content: stretch;

    background: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-radius: 8px;
    -webkit-box-shadow: 4px 4px 12px 0 rgb(118, 131, 156, 0.6);
            box-shadow: 4px 4px 12px 0 rgb(118, 131, 156, 0.6);

    padding: 0 var(--cpd-space-3x);
}

.mx_DialogOwnBeaconStatus_avatarIcon {
    -webkit-box-flex: 0;
        -ms-flex: 0 0;
            flex: 0 0;
    height: 32px;
    width: 32px;
    margin: var(--cpd-space-2x) 0 var(--cpd-space-2x) 0;
}

.mx_DialogOwnBeaconStatus_avatar {
    -webkit-box-flex: 0;
        -ms-flex: 0 0;
            flex: 0 0;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;

    border: 2px solid #5c56f5;
    border-radius: 50%;
    margin: var(--cpd-space-2x) 0 var(--cpd-space-2x) 0;
}

.mx_DialogOwnBeaconStatus_status {
    -webkit-box-flex: 1;
        -ms-flex: 1 1;
            flex: 1 1;
    padding-right: 0;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DialogSidebar {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 265px;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;

    -webkit-box-sizing: border-box;

            box-sizing: border-box;
    padding: var(--cpd-space-4x);

    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    -webkit-box-shadow: 0px 4px 4px rgb(118, 131, 156, 0.6);
            box-shadow: 0px 4px 4px rgb(118, 131, 156, 0.6);
}

    .mx_DialogSidebar .mx_DialogSidebar_header {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;

        -webkit-box-flex: 0;

            -ms-flex: 0 0;

                flex: 0 0;
        margin-bottom: var(--cpd-space-4x);

        color: var(--timeline-text-color);
    }

        .mx_DialogSidebar .mx_DialogSidebar_header .mx_DialogSidebar_closeButtonIcon {
            color: #2e2f32;
            color: var(--tertiary-content, #2e2f32);
        }

    .mx_DialogSidebar .mx_DialogSidebar_list {
        list-style: none;
        padding: 0;
        margin: 0;
        -webkit-box-flex: 1;
            -ms-flex: 1 1 0px;
                flex: 1 1 0;
        width: 100%;
        overflow: auto;
    }

.mx_DialogSidebar_noResults {
    font: var(--cpd-font-body-md-regular);
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LeftPanelLiveShareWarning {
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;

    padding: var(--cpd-space-1x);
    text-align: center;

    background-color: #0dbd8b;

    background-color: var(--accent-color, #0dbd8b);
    color: #fff;
    font-size: 0.625rem;

    /* panel backdrops overlay the whole sidepanel */
    /* go above to get hover for title */
    z-index: 1;
}

.mx_LeftPanelLiveShareWarning__error {
    background-color: #ff5b55;
    background-color: var(--alert, #ff5b55);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LiveTimeRemaining {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    font-size: 0.75rem;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_OwnBeaconStatus_button {
    margin-left: var(--cpd-space-2x);
}

.mx_OwnBeaconStatus_destructiveButton {
    /* override button link_inline styles */
    color: #ff5b55 !important;
    color: var(--alert, #ff5b55) !important;
    font-weight: var(--cpd-font-weight-semibold) !important;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ShareLatestLocation_icon {
    height: 13px;
    width: 13px;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

/* double class to be more specific than the general mx_CopyableText CSS rule */
    /* override copyable text style to make compact */
    .mx_CopyableText.mx_ShareLatestLocation_copy .mx_CopyableText_copyButton {
        height: 13px;
        margin-left: var(--cpd-space-2x) !important;
        position: relative;
        top: -1px;
        width: 13px;
    }

        .mx_CopyableText.mx_ShareLatestLocation_copy .mx_CopyableText_copyButton::before {
            background-color: #2e2f32;
            background-color: var(--secondary-content, #2e2f32);
            height: 13px;
            width: 13px;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_StyledLiveBeaconIcon {
    -webkit-box-flex: 0;
        -ms-flex-positive: 0;
            flex-grow: 0;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    border-width: 2px;
    border-style: solid;
    border-radius: 50%;

    background-color: #5c56f5;
    border-color: #5c56f5;
    padding: 2px;
    /* colors icon */
    color: white;
}

.mx_StyledLiveBeaconIcon.mx_StyledLiveBeaconIcon_error {
    background-color: #ff5b55;
    background-color: var(--alert, #ff5b55);
    border-color: #ff5b55;
    border-color: var(--alert, #ff5b55);
}

.mx_StyledLiveBeaconIcon.mx_StyledLiveBeaconIcon_idle {
    background-color: #6f7882;
    background-color: var(--quaternary-content, #6f7882);
    border-color: #6f7882;
    border-color: var(--quaternary-content, #6f7882);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_KebabContextMenu_icon {
    width: 24px;
    height: 24px;
    color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PollDetailHeader {
    /* override accessiblebutton style */
    font-size: 0.9375rem !important;
}

.mx_PollDetailHeader_icon {
    height: 16px;
    width: 16px;
    margin-right: var(--cpd-space-2x);
    vertical-align: middle;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PollListItem {
    width: 100%;
}

.mx_PollListItem_content {
    width: 100%;
    display: grid;
    -webkit-box-pack: left;
        -ms-flex-pack: left;
            justify-content: left;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    grid-gap: var(--cpd-space-2x);
    gap: var(--cpd-space-2x);
    grid-template-columns: auto auto auto;
    grid-template-rows: auto;
    cursor: pointer;

    color: var(--timeline-text-color);
}

.mx_PollListItem_icon {
    height: 14px;
    width: 14px;
    color: #6f7882;
    color: var(--quaternary-content, #6f7882);
    padding-left: var(--cpd-space-2x);
}

.mx_PollListItem_question {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PollListItemEnded {
    width: 100%;
}

.mx_PollListItemEnded_content {
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    color: var(--timeline-text-color);
    cursor: pointer;
}

.mx_PollListItemEnded_title {
    display: grid;
    -webkit-box-pack: left;
        -ms-flex-pack: left;
            justify-content: left;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    grid-gap: var(--cpd-space-2x);
    gap: var(--cpd-space-2x);
    grid-template-columns: -webkit-min-content 1fr -webkit-min-content;
    grid-template-columns: min-content 1fr min-content;
    grid-template-rows: auto;
}

.mx_PollListItemEnded_icon {
    height: 14px;
    width: 14px;
    color: #6f7882;
    color: var(--quaternary-content, #6f7882);
    padding-left: var(--cpd-space-2x);
}

.mx_PollListItemEnded_date {
    font-size: 0.75rem;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

.mx_PollListItemEnded_question {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mx_PollListItemEnded_answers {
    display: grid;
    grid-gap: var(--cpd-space-2x);
    gap: var(--cpd-space-2x);
    margin-top: var(--cpd-space-3x);
}

.mx_PollListItemEnded_voteCount {
    /* 6px to match PollOption padding */
    margin: var(--cpd-space-2x) 0 0 6px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019-2023 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AppPermission {
    font-size: 0.75rem;
    width: 100%; /* make mx_AppPermission fill width of mx_AppTileBody so that scroll bar appears on the edge */
    overflow-y: scroll;
}
    .mx_AppPermission .mx_AppPermission_bolder,
    .mx_AppPermission .mx_AppPermission_content_bolder {
        font-weight: var(--cpd-font-weight-semibold);
    }
    .mx_AppPermission .mx_AppPermission_content {
        margin-block: auto; /* place at the center */
    }

        .mx_AppPermission .mx_AppPermission_content > div {
            margin-block: 12px;
        }

        .mx_AppPermission .mx_AppPermission_content .mx_TextWithTooltip_target--helpIcon {
            display: inline-block;
            height: 0.875rem; /* align with characters on the same line */
            vertical-align: middle;
        }

            .mx_AppPermission .mx_AppPermission_content .mx_TextWithTooltip_target--helpIcon .mx_Icon {
                color: #0dbd8b;
                color: var(--accent-color, #0dbd8b);
            }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 Suguru Hirahara

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AppWarning {
    font-size: 1rem;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

    .mx_AppWarning h4 {
        margin: 0;
        padding: 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_FilterDropdown .mx_Dropdown_menu {
        margin-top: var(--cpd-space-1x);
        left: auto;
        left: initial;
        right: calc(-1 * var(--cpd-space-3x));
        width: 232px;
        padding: var(--cpd-space-3x);

        border: 1px solid #6f7882;

        border: 1px solid var(--quinary-content, #6f7882);
        border-radius: 8px;
        -webkit-box-shadow: 0px 1px 3px rgb(23, 25, 28, 0.05);
                box-shadow: 0px 1px 3px rgb(23, 25, 28, 0.05);

        background-color: #f4f6fa;

        background-color: var(--system, #f4f6fa);
    }

        .mx_FilterDropdown .mx_Dropdown_menu .mx_Dropdown_option_highlight {
            background-color: transparent;
        }

    .mx_FilterDropdown .mx_Dropdown_input {
        height: 24px;
        background-color: transparent;
        border-color: transparent;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        border-radius: 4px;
    }

        .mx_FilterDropdown .mx_Dropdown_input:focus,
        .mx_FilterDropdown .mx_Dropdown_input:hover {
            background-color: #6f7882;
            background-color: var(--quinary-content, #6f7882);
            border-color: #6f7882;
            border-color: var(--quinary-content, #6f7882);
        }

    .mx_FilterDropdown .mx_Dropdown_arrow {
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

.mx_FilterDropdown_option {
    position: relative;
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: var(--cpd-space-2x) 0 var(--cpd-space-2x) var(--cpd-space-5x);

    font-size: 0.75rem;
    line-height: 0.9375rem;
    color: var(--timeline-text-color);
}

.mx_FilterDropdown_optionSelectedIcon {
    height: 14px;
    width: 14px;
    position: absolute;
    top: var(--cpd-space-2x);
    left: 0;
}

.mx_FilterDropdown_optionLabel {
    font-weight: var(--cpd-font-weight-semibold);
    display: block;
}

.mx_FilterDropdown_optionDescription {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    margin-top: var(--cpd-space-1x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_FilterTabGroup {
    /* Reset the browser default <fieldset> styling */
    display: inline-block;
    margin-inline: unset;
    padding-block: unset;
    padding-inline: unset;
    min-inline-size: unset;
    border: none;

    color: var(--timeline-text-color);
}
    .mx_FilterTabGroup label {
        margin-right: var(--cpd-space-3x);
        cursor: pointer;
    }
        .mx_FilterTabGroup label span {
            display: inline-block;
            line-height: 1.5rem;
        }
    .mx_FilterTabGroup input[type="radio"] {
        -webkit-appearance: none;
           -moz-appearance: none;
                appearance: none;
        margin: 0;
        padding: 0;
    }
            .mx_FilterTabGroup input[type="radio"]:focus + span, .mx_FilterTabGroup input[type="radio"]:hover + span {
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
            }

        .mx_FilterTabGroup input[type="radio"]:checked + span {
            color: #0dbd8b;
            color: var(--accent-color, #0dbd8b);
            font-weight: var(--cpd-font-weight-semibold);
            /* underline */
            -webkit-box-shadow: 0 1.5px 0 0 currentColor;
                    box-shadow: 0 1.5px 0 0 currentColor;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LearnMore_button {
    margin-left: var(--cpd-space-1x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EnableLiveShare {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;

    padding: var(--cpd-space-8x) var(--cpd-space-4x);
    text-align: center;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

.mx_EnableLiveShare_heading {
    padding-top: var(--cpd-space-6x);
}

.mx_EnableLiveShare_icon {
    height: 58px;
    width: 58px;
}

.mx_EnableLiveShare_description {
    padding: 0 var(--cpd-space-6x);
    margin-bottom: var(--cpd-space-8x);
    line-height: 1.25rem;
}

.mx_EnableLiveShare_button {
    margin-top: var(--cpd-space-8x);
    height: 48px;
    width: 100%;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LiveDurationDropdown {
    margin-bottom: var(--cpd-space-4x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LocationShareMenu {
    width: 375px;
    height: 460px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MapError {
    padding: 100px var(--cpd-space-8x) 0;
    text-align: center;

    --mx-map-error-icon-color: var(--secondary-content, #2e2f32);
    --mx-map-error-icon-size: 58px;
}

.mx_MapError.mx_MapError_isMinimised {
    height: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;

    padding: var(--cpd-space-6x);
    background-color: var(--panels, var(--cpd-color-gray-600));
    font-size: 0.75rem;
    line-height: 1rem;

    --mx-map-error-icon-color: var(--alert, #ff5b55);
    --mx-map-error-icon-size: 26px;
}

    .mx_MapError.mx_MapError_isMinimised .mx_MapError_message {
        margin: 0;
        max-width: 275px;
    }

    .mx_MapError.mx_MapError_isMinimised .mx_MapError_heading {
        padding-top: var(--cpd-space-2x);
        /* override h3 heading size */
        font-size: inherit !important;
        font-weight: normal !important;
    }

.mx_MapError_message {
    margin: var(--cpd-space-4x) 0 var(--cpd-space-8x);
}

.mx_MapError_heading {
    padding-top: var(--cpd-space-6x);
}

.mx_MapError_icon {
    height: var(--mx-map-error-icon-size);
    width: var(--mx-map-error-icon-size);
    color: var(--mx-map-error-icon-color);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MapFallback {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: relative;
    z-index: 0;

    background-color: #f4f6fa;

    background-color: var(--system, #f4f6fa);
}

.mx_MapFallback_bg {
    position: absolute;
    top: 0;
    left: 0;
    min-height: 100%;
    min-width: 100%;
    color: #6f7882;
    color: var(--quinary-content, #6f7882);
    z-index: -1;

    pointer-events: none;
}

.mx_MapFallback_icon {
    width: 65px;
    margin-bottom: var(--cpd-space-4x);
    color: #6f7882;
    color: var(--quaternary-content, #6f7882);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Marker_defaultColor {
    color: #0dbd8b;
    color: var(--accent-color, #0dbd8b);
}

.mx_Marker_border {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    -webkit-filter: drop-shadow(0px 3px 5px rgb(0, 0, 0, 0.2));
            filter: drop-shadow(0px 3px 5px rgb(0, 0, 0, 0.2));
    background-color: currentColor;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

    /* caret down */
    .mx_Marker_border::before {
        content: "";
        border-left: 5px solid transparent;
        border-right: 5px solid transparent;
        border-top: 5px solid currentColor;
        position: absolute;
        bottom: -4px;
    }

.mx_Marker_icon {
    color: white;
    height: 20px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ShareDialogButtons {
    position: absolute;
    width: 100%;
    height: 0;
    top: 0;
}

button.mx_ShareDialogButtons_button {
    height: 24px;
    width: 24px;
    border-radius: 50%;
    background-color: #6f7882;
    background-color: var(--quinary-content, #6f7882);
    opacity: 0.8;
    text-align: center;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    position: absolute;
    top: var(--cpd-space-4x);
}

    button.mx_ShareDialogButtons_button:hover,
    button.mx_ShareDialogButtons_button:focus {
        opacity: 1;
    }

    button.mx_ShareDialogButtons_button.left {
        left: var(--cpd-space-4x);
    }

    button.mx_ShareDialogButtons_button.right {
        right: var(--cpd-space-4x);
    }

.mx_ShareDialogButtons_button-icon {
    width: 20px;
    height: 20px;
    margin: 2px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ShareType {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;

    padding: 60px var(--cpd-space-3x) var(--cpd-space-8x);

    color: var(--timeline-text-color);
}

    .mx_ShareType .mx_ShareType_wrapper_options {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        row-gap: var(--cpd-space-3x);
        width: 100%;
        margin-top: var(--cpd-space-3x);
    }

        .mx_ShareType .mx_ShareType_wrapper_options .mx_ShareType_option {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: start;
                -ms-flex-pack: start;
                    justify-content: flex-start;
            padding: var(--cpd-space-2x) var(--cpd-space-5x);
            background: none;

            border: 1px solid #6f7882;

            border: 1px solid var(--quinary-content, #6f7882);
            border-radius: 8px;

            font-size: 0.9375rem;
            font-family: inherit;
            line-height: inherit;
            color: var(--timeline-text-color);
        }

            .mx_ShareType .mx_ShareType_wrapper_options .mx_ShareType_option:hover,
            .mx_ShareType .mx_ShareType_wrapper_options .mx_ShareType_option:focus {
                border-color: #0dbd8b;
                border-color: var(--accent-color, #0dbd8b);
            }

.mx_ShareType_badge {
    height: 60px;
    width: 60px;
    margin-bottom: var(--cpd-space-5x);
    background-color: #0dbd8b;
    background-color: var(--accent-color, #0dbd8b);
    border-radius: 50%;
    border: 14px solid #0dbd8b;
    border: 14px solid var(--accent-color, #0dbd8b);
    /* colors icon */
    color: white;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

.mx_ShareType_heading {
    padding-bottom: var(--cpd-space-8x);
    text-align: center;
}

.mx_ShareType_option-icon {
    height: 40px;
    width: 40px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    margin-right: var(--cpd-space-3x);
    -webkit-box-flex: 0;
        -ms-flex: 0 0 40px;
            flex: 0 0 40px;
    border-width: 2px;
    border-style: solid;
    border-radius: 50%;

    /* Live is styled by StyledLiveBeaconIcon */
}

    .mx_ShareType_option-icon.Own {
        border-color: #0dbd8b;
        border-color: var(--accent-color, #0dbd8b);
    }

    .mx_ShareType_option-icon.Pin {
        border-color: #0dbd8b;
        border-color: var(--accent-color, #0dbd8b);
        background-color: #0dbd8b;
        background-color: var(--accent-color, #0dbd8b);
        padding: 7px;
        /* colors icon */
        color: white;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ZoomButtons {
    position: absolute;
    bottom: var(--cpd-space-8x);
    right: var(--cpd-space-6x);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    row-gap: var(--cpd-space-2x);
}

    .mx_ZoomButtons .mx_ZoomButtons_button {

        border-radius: 4px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        height: 24px;
        width: 24px;
        background: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        -webkit-box-shadow: 0px 4px 12px rgb(0, 0, 0, 0.25);
                box-shadow: 0px 4px 12px rgb(0, 0, 0, 0.25);
    }

        .mx_ZoomButtons .mx_ZoomButtons_button .mx_ZoomButtons_icon {

            height: 12px;
            width: 12px;
            color: var(--timeline-text-color);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MBeaconBody {
    position: relative;
    height: 220px;
    max-width: 325px;
    width: 100%;

    border-radius: 8px;

    border-radius: var(--MBody-border-radius);
    overflow: hidden;
}

.mx_MBeaconBody.mx_MBeaconBody_withoutMap {
    height: auto;
}

    .mx_MBeaconBody.mx_MBeaconBody_withoutMap .mx_MBeaconBody_chin {
        position: relative;
        background-color: transparent;
    }

.mx_MBeaconBody_withoutMapContent {
    background-color: var(--panels, var(--cpd-color-gray-600));
    border-radius: 4px;
}

.mx_MBeaconBody_withoutMapInfoLastUpdated {
    /* 48px lines up with icon in BeaconStatus */
    margin-top: calc(-1 * var(--cpd-space-2x));
    padding: 0 var(--cpd-space-2x) var(--cpd-space-2x) 48px;

    color: #2e2f32;

    color: var(--tertiary-content, #2e2f32);
    font-size: 0.625rem;
}

.mx_MBeaconBody_map {
    height: 100%;
    width: 100%;
    z-index: 0; /* keeps the entire map under the message action bars */

    cursor: pointer;
}

.mx_MBeaconBody_mapFallback,
.mx_MBeaconBody_mapError {
    /* pushes spinner/icon up */
    /* to appear more centered with the footer */
    padding-bottom: 50px !important;
}

.mx_MBeaconBody_mapErrorInteractive {
    cursor: pointer;
}

.mx_MBeaconBody_mapFallback {
    cursor: default;
}

.mx_MBeaconBody_chin {
    position: absolute;
    bottom: 0;
    width: 100%;
    background-color: var(--cpd-color-bg-canvas-default);
    opacity: 0.85;
}

.mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_MBeaconBody {
    max-width: 100%;
    width: 450px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MediaProcessingError_Icon {
    margin-right: var(--cpd-space-1x);
    vertical-align: text-top;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PollOption {
    border: 1px solid #6f7882;
    border: 1px solid var(--quinary-content, #6f7882);
    border-radius: 8px;
    padding: 6px 12px;
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
}

    .mx_PollOption .mx_StyledRadioButton_content,
    .mx_PollOption .mx_PollOption_endedOption {
        padding-top: 2px;
        margin-right: 0px;
    }

    .mx_PollOption .mx_StyledRadioButton_spacer {
        display: none;
    }

.mx_PollOption,
/* label has cursor: default in user-agent stylesheet */
/* override */
.mx_PollOption_live-option {
    cursor: pointer;
}

.mx_PollOption_content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
}

.mx_PollOption_optionVoteCount {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    font-size: 0.75rem;
    white-space: nowrap;
}

.mx_PollOption_winnerIcon {
    height: 12px;
    width: 12px;
    color: var(--cpd-color-icon-accent-tertiary);
    margin-right: var(--cpd-space-1x);
    vertical-align: middle;
}
        .mx_PollOption_checked .mx_PollOption_popularityBackground .mx_PollOption_popularityAmount {
            background-color: var(--cpd-color-icon-primary);
        }

    /* override checked radio button styling to show checkmark instead */
        .mx_PollOption_checked .mx_StyledRadioButton_checked input[type="radio"]:checked + div {
            border-color: var(--cpd-color-icon-primary);
            background-color: var(--cpd-color-icon-primary);
        }

            .mx_PollOption_checked .mx_StyledRadioButton_checked input[type="radio"]:checked + div div {
                background: none;
            }

                .mx_PollOption_checked .mx_StyledRadioButton_checked input[type="radio"]:checked + div div svg {
                    color: var(--cpd-color-icon-on-solid-primary);
                    width: 12px;
                    height: 12px;
                    margin: -2px;
                    display: block;
                }
        .mx_PollOption_ended.mx_PollOption_checked .mx_PollOption_popularityBackground .mx_PollOption_popularityAmount {
            background-color: var(--cpd-color-icon-accent-tertiary);
        }

    /* override checked radio button styling to show checkmark instead */
        .mx_PollOption_ended.mx_PollOption_checked .mx_StyledRadioButton_checked input[type="radio"]:checked + div {
            border-color: var(--cpd-color-icon-accent-tertiary);
            background-color: var(--cpd-color-icon-accent-tertiary);
        }

/* options not actionable in these states */
.mx_PollOption_checked,
.mx_PollOption_ended {
    pointer-events: none;
}

.mx_PollOption_popularityBackground {
    width: 100%;
    height: 8px;
    margin-right: 12px;
    border-radius: 8px;
    background-color: #f4f6fa;
    background-color: var(--system, #f4f6fa);
    margin-top: var(--cpd-space-2x);
}

    .mx_PollOption_popularityBackground .mx_PollOption_popularityAmount {
        width: 0%;
        height: 8px;
        border-radius: 8px;
        background-color: var(--cpd-color-icon-primary);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2024 The Matrix.org Foundation C.I.C.
Copyright 2019 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/*
 * These used to live in General User Settings. These components are horribly duplicative
 * but share the same styles. For now I'm putting them here so I can renamed the general
 * tab sensibly and before I can refactor these components.
 */

.mx_AddRemoveThreepids_existing {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_AddRemoveThreepids_existing_address,
.mx_AddRemoveThreepids_existing_promptText {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    margin-right: 10px;
}

.mx_AddRemoveThreepids_existing_button {
    margin-left: 5px;
}

.mx_EmailAddressesPhoneNumbers_verify {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.mx_EmailAddressesPhoneNumbers_existing_button {
    -webkit-box-pack: right;
        -ms-flex-pack: right;
            justify-content: right;
}

.mx_EmailAddressesPhoneNumbers_verify_instructions {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CurrentDeviceSection_deviceDetails {
    /* align with text of session tile */
    margin-left: 56px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeviceDetailHeading {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_DeviceDetailHeading_renameCta {
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

.mx_DeviceDetailHeading_renameForm {
    display: grid;
    grid-gap: var(--cpd-space-4x);
    gap: var(--cpd-space-4x);
    -webkit-box-pack: left;
        -ms-flex-pack: left;
            justify-content: left;
    grid-template-columns: 100%;
}

.mx_DeviceDetailHeading_renameFormButtons {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: var(--cpd-space-2x);
}

    .mx_DeviceDetailHeading_renameFormButtons .mx_Spinner {
        width: auto;
        -webkit-box-flex: 0;
            -ms-flex-positive: 0;
                flex-grow: 0;
    }

.mx_DeviceDetailHeading_renameFormInput {
    /* override field styles */
    margin: 0 0 var(--cpd-space-1x) 0 !important;
}

.mx_DeviceDetailHeading_renameFormHeading {
    margin: 0;
}

.mx_DeviceDetailHeading_renameFormError {
    color: #ff5b55;
    color: var(--alert, #ff5b55);
    padding-right: var(--cpd-space-1x);
    display: block;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeviceDetails {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;

    margin-top: var(--cpd-space-4x);
    padding: var(--cpd-space-6x);
    border-radius: 8px;
    border: 1px solid #6f7882;
    border: 1px solid var(--quinary-content, #6f7882);
}

.mx_DeviceDetails_section {
    padding-bottom: var(--cpd-space-5x);
    margin-bottom: var(--cpd-space-5x);
    border-bottom: 1px solid #6f7882;
    border-bottom: 1px solid var(--quinary-content, #6f7882);

    display: grid;
    grid-gap: var(--cpd-space-6x);
    gap: var(--cpd-space-6x);
    -webkit-box-pack: left;
        -ms-flex-pack: left;
            justify-content: left;
    grid-template-columns: 100%;
}

    .mx_DeviceDetails_section:last-child {
        padding-bottom: 0;
        border-bottom: 0;
        margin-bottom: 0;
    }

.mx_DeviceDetails_sectionHeading {
    margin: 0;
}

    .mx_DeviceDetails_sectionHeading .mx_DeviceDetails_sectionSubheading {
        display: block;
        font-size: 0.75rem;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        line-height: 0.875rem;
        margin-top: var(--cpd-space-1x);
    }

.mx_DeviceDetails_metadataTable {
    font: var(--cpd-font-body-sm-regular);
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);

    width: 100%;

    border-spacing: 0;
}

    .mx_DeviceDetails_metadataTable th {
        text-transform: uppercase;
        font-weight: normal;
        text-align: left;
    }

    .mx_DeviceDetails_metadataTable td {
        padding-top: var(--cpd-space-2x);
    }

    .mx_DeviceDetails_metadataTable .mxDeviceDetails_metadataLabel {
        width: 160px;
    }

    .mx_DeviceDetails_metadataTable .mxDeviceDetails_metadataValue {
        color: var(--timeline-text-color);
    }

.mx_DeviceDetails_signOutButtonContent {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: var(--cpd-space-1x);
}

.mx_DeviceDetails_pushNotifications {
    display: block;
}
    .mx_DeviceDetails_pushNotifications .mx_ToggleSwitch {
        float: right;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeviceExpandDetailsButton {
    height: 32px;
    width: 32px;
    background: transparent;

    border-radius: 4px;
    color: var(--icon-button-color, var(--cpd-color-icon-tertiary));

    --icon-transform: rotate(-90deg);
}

    .mx_DeviceExpandDetailsButton:hover {
        background: #6f7882;
        background: var(--quinary-content, #6f7882);
    }

.mx_DeviceExpandDetailsButton.mx_DeviceExpandDetailsButton_expanded {
    --icon-transform: rotate(0deg);

    background: #f4f6fa;

    background: var(--system, #f4f6fa);
}

    .mx_DeviceExpandDetailsButton.mx_DeviceExpandDetailsButton_expanded:hover {
        background: #6f7882;
        background: var(--quinary-content, #6f7882);
    }

.mx_DeviceExpandDetailsButton_icon {
    height: 24px;
    width: 24px;

    -webkit-transition: all 0.3s;

    transition: all 0.3s;
    -webkit-transform: var(--icon-transform);
            transform: var(--icon-transform);
    -webkit-transform-origin: center;
            transform-origin: center;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeviceSecurityCard {
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;

    padding: var(--cpd-space-4x);

    border: 1px solid #6f7882;

    border: 1px solid var(--quinary-content, #6f7882);
    border-radius: 8px;
}

.mx_DeviceSecurityCard_icon {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 40px;
            flex: 0 0 40px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin-right: var(--cpd-space-4x);
    border-radius: 8px;

    height: 40px;
    width: 40px;

    color: var(--icon-color);
    background-color: var(--background-color);
}

    .mx_DeviceSecurityCard_icon.Verified {
        --icon-color: #0dbd8b;
        --background-color: var(--cpd-color-green-300);
    }

    .mx_DeviceSecurityCard_icon.Unverified {
        --icon-color: #ff5b55;
        --background-color: var(--cpd-color-red-300);
    }

    .mx_DeviceSecurityCard_icon.Inactive {
        --icon-color: var(--secondary-content, #2e2f32);
        --background-color: var(--panels, var(--cpd-color-gray-600));
    }

.mx_DeviceSecurityCard_content {
    -webkit-box-flex: 1;
        -ms-flex: 1 1;
            flex: 1 1;
}
.mx_DeviceSecurityCard_heading {
    margin: 0 0 var(--cpd-space-1x) 0;
}
.mx_DeviceSecurityCard_description {
    margin: 0;
    font: var(--cpd-font-body-sm-regular);
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

.mx_DeviceSecurityCard_actions {
    margin-top: var(--cpd-space-4x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeviceTile {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    width: 100%;
}

.mx_DeviceTile_interactive {
    cursor: pointer;
}

.mx_DeviceTile_info {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
}

.mx_DeviceTile_metadata {
    margin-top: var(--cpd-space-1x);
    font: var(--cpd-font-body-sm-regular);
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

.mx_DeviceTile_inactiveIcon {
    height: 14px;
    margin-right: var(--cpd-space-2x);
    vertical-align: middle;
}

.mx_DeviceTile_actions {
    display: grid;
    grid-gap: var(--cpd-space-2x);
    gap: var(--cpd-space-2x);
    grid-auto-flow: column;
    margin-left: var(--cpd-space-2x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeviceTypeIcon {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    position: relative;
    margin-right: var(--cpd-space-2x);
    /* creates space for verification icon to overlap */
    padding: 0 var(--cpd-space-2x) var(--cpd-space-2x) 0;
}

.mx_DeviceTypeIcon_deviceIconWrapper {
    --background-color: var(--panels, var(--cpd-color-gray-600));
    --icon-color: var(--secondary-content, #2e2f32);

    height: 40px;
    width: 40px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;

    border: var(--cpd-space-2x) solid var(--background-color);
    border-radius: 50%;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    color: var(--icon-color);
    background-color: var(--background-color);
}

.mx_DeviceTypeIcon_selected .mx_DeviceTypeIcon_deviceIconWrapper {
    --background-color: var(--timeline-text-color);
    --icon-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
}

.mx_DeviceTypeIcon_deviceIcon {
    height: 24px;
    width: 24px;
}

.mx_DeviceTypeIcon_verificationIcon {
    position: absolute;
    bottom: 0;
    right: 0;
    height: 24px;
    width: 24px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: var(--cpd-space-1x);

    border: 1px solid #6f7882;

    border: 1px solid var(--quinary-content, #6f7882);
    border-radius: 50%;
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));

    color: var(--v-icon-color);
}

    .mx_DeviceTypeIcon_verificationIcon.verified {
        --v-icon-color: #0dbd8b;
    }

    .mx_DeviceTypeIcon_verificationIcon.unverified {
        --v-icon-color: #ff5b55;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_FilteredDeviceList .mx_Dropdown {
        -webkit-box-flex: 1;
            -ms-flex: 1 0 80px;
                flex: 1 0 80px;
    }

.mx_FilteredDeviceList_list {
    list-style-type: none;
    display: grid;
    grid-gap: var(--cpd-space-4x);
    gap: var(--cpd-space-4x);
    margin: 0;
    padding: 0 var(--cpd-space-4x);
}

.mx_FilteredDeviceList_listItem {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

.mx_FilteredDeviceList_securityCard {
    margin-bottom: var(--cpd-space-8x);
}

.mx_FilteredDeviceList_noResults {
    width: 100%;
    text-align: center;
    margin-bottom: var(--cpd-space-8x);
}

.mx_FilteredDeviceList_headerButton {
    -ms-flex-negative: 0;
        flex-shrink: 0;
    /* override inline button styling */
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: var(--cpd-space-2x);
}

.mx_FilteredDeviceList_deviceDetails {
    /* align with text of session tile */
    margin-left: 88px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_FilteredDeviceListHeader {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    gap: var(--cpd-space-4x);

    width: 100%;
    height: 48px;
    padding: 0 var(--cpd-space-4x);
    margin-bottom: var(--cpd-space-8x);

    background-color: var(--panels, var(--cpd-color-gray-600));
    border-radius: 8px;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

    /* Higher specificity selector to override the flex-start value */
    .mx_FilteredDeviceListHeader .mx_AccessibleButton.mx_AccessibleButton_hasKind {
        -ms-flex-item-align: center;
            align-self: center;
    }

.mx_FilteredDeviceListHeader_label {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 100%;
            flex: 1 1 100%;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SecurityRecommendations_spacing {
    height: var(--cpd-space-4x);
}
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SelectableDeviceTile {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    width: 100%;
}

.mx_SelectableDeviceTile_checkbox {
    -webkit-box-flex: 1;
        -ms-flex: 1 0;
            flex: 1 0;
}

    .mx_SelectableDeviceTile_checkbox > div {
        margin-top: auto;
        margin-bottom: auto;
        margin-right: var(--cpd-space-1x);
    }
}
@layer app-web{

/*
 * Copyright 2025 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_KeyStoragePanel_toggleRow {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsSubsection {
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

    .mx_SettingsSubsection.mx_SettingsSubsection_newUi {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-6x);
    }

    .mx_SettingsSubsection *[role="separator"] {
        /**
         * The gap between subsections is 32px and inside the subsection is 24px.
         * The separator separates the subsections, so it should have the same gap as the subsections.
         * We add 12px and the separator spacing (8px) to the top margin to make the separator visually centered between the subsections.
         * !important because it's overriding compound margin.
         */
        margin-top: var(--cpd-space-5x) !important;
    }

.mx_SettingsSubsection_description {
    margin-top: var(--cpd-space-2x);
}

.mx_SettingsSubsection_text {
    width: 100%;
    -webkit-box-sizing: inherit;
            box-sizing: inherit;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

.mx_SettingsSubsection_content {
    width: 100%;
    display: grid;
    grid-gap: var(--cpd-space-4x);
    gap: var(--cpd-space-4x);
    /* setting minwidth 0 makes columns definitely sized fixing horizontal overflow */
    grid-template-columns: minmax(0, 1fr);
    justify-items: flex-start;
    margin-top: var(--cpd-space-6x);
}

    .mx_SettingsSubsection_content summary {
        color: #0dbd8b;
        color: var(--accent-color, #0dbd8b);
    }
        .mx_SettingsSubsection_content details[open] summary {
            margin-bottom: var(--cpd-space-2x);
        }

    .mx_SettingsSubsection_content.mx_SettingsSubsection_contentStretch {
        justify-items: stretch;
    }

    .mx_SettingsSubsection_content.mx_SettingsSubsection_noHeading {
        margin-top: 0;
    }
    .mx_SettingsSubsection_content.mx_SettingsSubsection_content_newUi {
        gap: var(--cpd-space-6x);
        margin-top: 0;
    }

    .mx_SettingsSubsection_content .mx_SettingsSubsection_dropdown {
        min-width: 360px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsSubsectionHeading {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;

    gap: var(--cpd-space-2x);
}

.mx_SettingsSubsectionHeading_heading {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 100%;
            flex: 1 1 100%;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_QuickThemeSwitcher {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

    .mx_QuickThemeSwitcher .mx_Dropdown {
        min-width: 100px;
        margin-left: auto;
        height: -webkit-min-content;
        height: -moz-min-content;
        height: min-content;
    }

    .mx_QuickThemeSwitcher .mx_Dropdown_menu {
        /* Quick settings lives at the bottom of the window, so a menu dropping downwards would run
           off the bottom of the viewport. Open it upwards, where there is room for every theme. */
        top: auto;
        bottom: 100%;
    }

.mx_QuickThemeSwitcher_heading {
    font-weight: var(--cpd-font-weight-semibold);
    font-size: 0.75rem;
    line-height: 0.9375rem;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    text-transform: uppercase;
    display: inline-block;
    margin: 0;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Caption {
    font: var(--cpd-font-body-sm-regular);
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

    .mx_Caption.mx_Caption_error {
        color: #ff5b55;
        color: var(--alert, #ff5b55);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/*
 * Compound icon

 * {@link https://www.figma.com/file/X4XTH9iS2KGJ2wFKDqkyed}
 */

.mx_Icon {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

.mx_Icon_accent {
    color: #0dbd8b;
    color: var(--accent-color, #0dbd8b);
}

.mx_Icon_bg-accent-light {
    background-color: var(--accent-color-300);
}

.mx_Icon_alert {
    color: #ff5b55;
    color: var(--alert, #ff5b55);
}

.mx_Icon_circle-40 {
    border-radius: 20px;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 40px;
            flex: 0 0 40px;
    height: 40px;
    padding: 0 12px;
    width: 40px;
}

.mx_Icon_8 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 8px;
            flex: 0 0 8px;
    height: 8px;
    width: 8px;
}

.mx_Icon_10 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 10px;
            flex: 0 0 10px;
    height: 10px;
    width: 10px;
}

.mx_Icon_12 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 12px;
            flex: 0 0 12px;
    height: 12px;
    width: 12px;
}

.mx_Icon_16 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 16px;
            flex: 0 0 16px;
    height: 16px;
    width: 16px;
}

.mx_Icon_24 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 24px;
            flex: 0 0 24px;
    height: 24px;
    width: 24px;
}

.mx_Icon_32 {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 32px;
            flex: 0 0 32px;
    height: 32px;
    width: 32px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SuccessDialog {
    text-align: center;
}

    .mx_SuccessDialog .mx_Icon {
        margin-bottom: var(--cpd-space-4x);
    }

    .mx_SuccessDialog .mx_Dialog_header {
        margin: 0 0 var(--cpd-space-4x);
        padding: 0;
    }

    .mx_SuccessDialog .mx_Dialog_title {
        margin: 0;
    }

    .mx_SuccessDialog .mx_Dialog_content {
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        margin: 0 0 var(--cpd-space-10x);
    }
        .mx_SuccessDialog .mx_Dialog_buttons .mx_Dialog_buttons_row {
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
        }

            .mx_SuccessDialog .mx_Dialog_buttons .mx_Dialog_buttons_row button.mx_Dialog_primary {
                height: 48px;
                min-width: 328px;
            }
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* make any scrollbar grey and thin */
html {
    scrollbar-color: rgb(0, 0, 0, 0.2) transparent;
}
/* scrollbar-width is not inherited (but -color is, why?!), */
/* so declare it on every element */
* {
    scrollbar-width: thin;
}

::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

::-webkit-scrollbar-thumb {
    border-radius: 3px;
    background-color: rgb(0, 0, 0, 0.2);
}

/* make auto-hide scrollbars not transparent again on hover */
.mx_AutoHideScrollbar:hover {
    scrollbar-color: rgb(0, 0, 0, 0.2) transparent;
}

    .mx_AutoHideScrollbar:hover::-webkit-scrollbar-thumb {
        background-color: rgb(0, 0, 0, 0.2);
    }

/* make scrollbars transparent for autohide scrollbars */
.mx_AutoHideScrollbar {
    overflow-x: hidden;
    overflow-y: auto;
    overflow-y: overlay; /* where supported */
    -ms-overflow-style: -ms-autohiding-scrollbar;
}

    .mx_AutoHideScrollbar::-webkit-scrollbar {
        background-color: transparent;
    }

    .mx_AutoHideScrollbar::-webkit-scrollbar-thumb {
        background-color: transparent;
    }

    .mx_AutoHideScrollbar{

    scrollbar-color: transparent transparent;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AutocompleteInput {
    position: relative;
}

.mx_AutocompleteInput_search_icon {
    margin-left: var(--cpd-space-2x);
    fill: #2e2f32;
    fill: var(--secondary-content, #2e2f32);
}

.mx_AutocompleteInput_editor {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    overflow-x: hidden;
    overflow-y: auto;
    border: 1px solid #e7e7e7;
    border-radius: 4px;
    -webkit-transition: border-color 0.25s;
    transition: border-color 0.25s;
}

    .mx_AutocompleteInput_editor > input {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        min-width: 40%;
        resize: none;
        /* `!important` is required to bypass global input styles. */
        margin: 0 !important;
        padding: var(--cpd-space-2x) 9px;
        border: none !important;
        color: var(--timeline-text-color) !important;
        font-weight: normal !important;
    }

        .mx_AutocompleteInput_editor > input::-webkit-input-placeholder {
            color: var(--timeline-text-color) !important;
            font-weight: normal !important;
        }

        .mx_AutocompleteInput_editor > input::-moz-placeholder {
            color: var(--timeline-text-color) !important;
            font-weight: normal !important;
        }

        .mx_AutocompleteInput_editor > input:-ms-input-placeholder {
            color: var(--timeline-text-color) !important;
            font-weight: normal !important;
        }

        .mx_AutocompleteInput_editor > input::-ms-input-placeholder {
            color: var(--timeline-text-color) !important;
            font-weight: normal !important;
        }

        .mx_AutocompleteInput_editor > input::placeholder {
            color: var(--timeline-text-color) !important;
            font-weight: normal !important;
        }

.mx_AutocompleteInput_editor--focused {
    border-color: #0086e6;
    border-color: var(--links, #0086e6);
}

.mx_AutocompleteInput_editor--has-suggestions {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.mx_AutocompleteInput_editor_selection {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-left: var(--cpd-space-2x);
}

.mx_AutocompleteInput_editor_selection_pill {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    border-radius: 12px;
    padding-left: var(--cpd-space-2x);
    padding-right: var(--cpd-space-2x);
    background-color: var(--cpd-color-text-decorative-1);
    color: #ffffff;
    font-size: 0.75rem;
}

.mx_AutocompleteInput_editor_selection_remove_button svg {
    vertical-align: middle;
}

.mx_AutocompleteInput_matches {
    position: absolute;
    left: 0;
    right: 0;
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border: 1px solid #0086e6;
    border: 1px solid var(--links, #0086e6);
    border-top-color: #e7e7e7;
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
    z-index: 1000;
}

.mx_AutocompleteInput_suggestion {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    padding: var(--cpd-space-2x);
    cursor: pointer;
}

    .mx_AutocompleteInput_suggestion > * {
        -webkit-user-select: none;
           -moz-user-select: none;
            -ms-user-select: none;
                user-select: none;
    }

    .mx_AutocompleteInput_suggestion:hover {
        background-color: #6f7882;
        background-color: var(--quinary-content, #6f7882);
        border-bottom-left-radius: 4px;
        border-bottom-right-radius: 4px;
    }

.mx_AutocompleteInput_suggestion--selected {
    background-color: #6f7882;
    background-color: var(--quinary-content, #6f7882);
}

    .mx_AutocompleteInput_suggestion--selected:last-child {
        border-bottom-left-radius: 4px;
        border-bottom-right-radius: 4px;
    }

.mx_AutocompleteInput_suggestion_title {
    margin-right: var(--cpd-space-2x);
}

.mx_AutocompleteInput_suggestion_description {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    font-size: 0.75rem;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ContextualMenu_wrapper {
    position: fixed;
    z-index: 5000;
}

.mx_ContextualMenu_background {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 1;
}

.mx_ContextualMenu {
    border-radius: 12px;
    -webkit-box-shadow: 0px 4px 24px rgb(0, 0, 0, 0.1);
            box-shadow: 0px 4px 24px rgb(0, 0, 0, 0.1);
    background-color: var(--cpd-color-bg-canvas-default);
    border: var(--cpd-border-width-1) solid var(--cpd-color-border-interactive-secondary);
    color: var(--timeline-text-color);
    position: absolute;
    z-index: 5001;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
}

.mx_ContextualMenu_right {
    right: 16px;
}

.mx_ContextualMenu.mx_ContextualMenu_withChevron_right {
    right: 8px;
}

.mx_ContextualMenu_chevron_right {
    position: absolute;
    right: -8px;
    top: 0px;
    width: 0;
    height: 0;
    border-top: 8px solid transparent;
    border-left: 8px solid var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-bottom: 8px solid transparent;
}

.mx_ContextualMenu_left {
    left: 0;
}

.mx_ContextualMenu.mx_ContextualMenu_withChevron_left {
    left: 8px;
}

.mx_ContextualMenu_chevron_left {
    position: absolute;
    left: -8px;
    top: 0px;
    width: 0;
    height: 0;
    border-top: 8px solid transparent;
    border-right: 8px solid var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-bottom: 8px solid transparent;
}

.mx_ContextualMenu_top {
    top: 0;
}

.mx_ContextualMenu.mx_ContextualMenu_withChevron_top {
    top: 8px;
}

.mx_ContextualMenu_chevron_top {
    position: absolute;
    left: 0px;
    top: -8px;
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-bottom: 8px solid var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-right: 8px solid transparent;
}

.mx_ContextualMenu_bottom {
    bottom: 0;
}

.mx_ContextualMenu.mx_ContextualMenu_withChevron_bottom {
    bottom: 8px;
}

.mx_ContextualMenu_chevron_bottom {
    position: absolute;
    left: 0px;
    bottom: -8px;
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-top: 8px solid var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-right: 8px solid transparent;
}

.mx_ContextualMenu_rightAligned {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
}

.mx_ContextualMenu_bottomAligned {
    -webkit-transform: translateY(-100%);
            transform: translateY(-100%);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ErrorMessage {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: #ff5b55;
    color: var(--alert, #ff5b55);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    font-size: 0.75rem;
    gap: var(--cpd-space-2x);
    line-height: 1.2em;
    min-height: 2.4em;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

@-webkit-keyframes mx_FileDropTarget_animation {
    from {
        opacity: 0;
    }
    to {
        opacity: 0.95;
    }
}

@keyframes mx_FileDropTarget_animation {
    from {
        opacity: 0;
    }
    to {
        opacity: 0.95;
    }
}

.mx_FileDropTarget {
    min-width: 0;
    width: 100%;
    height: 100%;

    font-size: 1.125rem;
    text-align: center;

    pointer-events: none;

    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    opacity: 0.95;

    position: absolute;
    z-index: 3000;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;

    -webkit-animation: mx_FileDropTarget_animation;

            animation: mx_FileDropTarget_animation;
    -webkit-animation-duration: 0.5s;
            animation-duration: 0.5s;
}

@-webkit-keyframes mx_FileDropTarget_image_animation {
    from {
        -webkit-transform: scaleX(0);
                transform: scaleX(0);
    }
    to {
        -webkit-transform: scaleX(1);
                transform: scaleX(1);
    }
}

@keyframes mx_FileDropTarget_image_animation {
    from {
        -webkit-transform: scaleX(0);
                transform: scaleX(0);
    }
    to {
        -webkit-transform: scaleX(1);
                transform: scaleX(1);
    }
}

.mx_FileDropTarget_image {
    width: 32px;
    -webkit-animation: mx_FileDropTarget_image_animation;
            animation: mx_FileDropTarget_image_animation;
    -webkit-animation-duration: 0.5s;
            animation-duration: 0.5s;
    margin-bottom: 16px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_FilePanel {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    overflow-y: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

    .mx_FilePanel .mx_RoomView_messageListWrapper {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

    .mx_FilePanel .mx_RoomView_MessageList {
        width: 100%;
        gap: var(--cpd-space-6x);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_GenericDropdownMenu_button {
    padding: 3px 4px 3px 8px;
    border-radius: 4px;
    line-height: 1.5;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    font-size: 0.75rem;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

    .mx_GenericDropdownMenu_button svg {
        width: 18px;
        height: 18px;
        float: right;
    }

.mx_GenericDropdownMenu_button:hover,
.mx_GenericDropdownMenu_button[aria-expanded="true"] {
    background: #6f7882;
    background: var(--quinary-content, #6f7882);
}
    .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_ContextualMenu {
        position: static;
        position: initial;

        font-size: 0.75rem;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        padding-top: 10px;
        padding-bottom: 10px;

        border: 1px solid #6f7882;

        border: 1px solid var(--quinary-content, #6f7882);
        -webkit-box-shadow: 0 1px 3px rgb(23, 25, 28, 0.05);
                box-shadow: 0 1px 3px rgb(23, 25, 28, 0.05);
    }

    .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_ContextualMenu_chevron_top {
        left: auto;
        right: 22px;
        border-bottom-color: #6f7882;
        border-bottom-color: var(--quinary-content, #6f7882);
    }

        .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_ContextualMenu_chevron_top::after {
            content: "";
            border: inherit;
            border-bottom-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
            position: absolute;
            top: 1px;
            left: -8px;
        }

    .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_GenericDropdownMenu_divider {
        display: block;
        height: 0;
        margin-left: 4px;
        margin-right: 19px;
        border-top: 1px solid #6f7882;
        border-top: 1px solid var(--quinary-content, #6f7882);
    }

    .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_GenericDropdownMenu_Option {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        padding: 10px 20px 10px 30px;
        position: relative;
    }

        .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_GenericDropdownMenu_Option > .mx_GenericDropdownMenu_Option--label {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;

            margin: 0;
        }

            .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_GenericDropdownMenu_Option > .mx_GenericDropdownMenu_Option--label span:first-child {
                color: var(--timeline-text-color);
                font-weight: var(--cpd-font-weight-semibold);
            }

        .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_GenericDropdownMenu_Option.mx_GenericDropdownMenu_Option--header > .mx_GenericDropdownMenu_Option--label span:first-child {
            font-size: 0.9375rem;
        }
            .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_GenericDropdownMenu_Option.mx_GenericDropdownMenu_Option--item:hover {
                background-color: #f5f8fa;
                background-color: var(--menu-selected-color, #f5f8fa);
            }

            .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_GenericDropdownMenu_Option.mx_GenericDropdownMenu_Option--item .mx_GenericDropdownMenu_Option--checkIcon {
                width: 16px;
                height: 16px;
                margin-left: -22px;
                margin-right: 6px;
                color: var(--timeline-text-color);
                display: inline-block;
                vertical-align: middle;
            }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.
Copyright 2017 Vector Creations Ltd
Copyright 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_HomePage {
    display: grid;
    place-items: center;
    width: min(100% - 50px, 960px);
    height: 100%;
    margin: 0 auto;
    container-type: inline-size;
    container-name: homepage;
}

.mx_HomePage_default {
    text-align: center;
}

    .mx_HomePage_default img {
        height: 48px;
    }

    .mx_HomePage_default h1 {
        margin-bottom: 4px;
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 2rem;
        line-height: 1.375;
    }

    .mx_HomePage_default h2 {
        margin-top: 4px;
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 1.125rem;
        line-height: 1.5625rem;
        color: #61708b;
    }

    .mx_HomePage_default .mx_MiniAvatarUploader {
        margin: 0 auto;
    }

    .mx_HomePage_default .mx_HomePage_default_buttons {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-gap: 5px 40px;
        gap: 5px 40px;
        width: 100%;
        margin-top: 80px;
        margin-bottom: 20px;
    }

        .mx_HomePage_default .mx_HomePage_default_buttons .mx_AccessibleButton {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            gap: 13px;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            width: 160px;
            min-height: 132px;
            padding: 8px 15px;
            border-radius: 8px;
            font-weight: var(--cpd-font-weight-semibold);
            font-size: 0.9375rem;
            line-height: 1.25rem;
            color: #fff; /* on all themes */
            background-color: #0dbd8b;
            background-color: var(--accent-color, #0dbd8b);
        }

            .mx_HomePage_default .mx_HomePage_default_buttons .mx_AccessibleButton svg {
                display: block;
                width: 100%;
                height: 40px;
                -o-object-fit: contain;
                   object-fit: contain;
                color: #fff; /* on all themes */
            }

        @container homepage (max-width: 559px) {

    .mx_HomePage_default .mx_HomePage_default_buttons {
            grid-template-columns: 1fr
    }

            .mx_HomePage_default .mx_HomePage_default_buttons .mx_AccessibleButton {
                -webkit-box-orient: horizontal;
                -webkit-box-direction: normal;
                    -ms-flex-direction: row;
                        flex-direction: row;
                width: 100%;
                min-height: 0;
            }

                .mx_HomePage_default .mx_HomePage_default_buttons .mx_AccessibleButton svg {
                    width: 24px;
                }
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LargeLoader {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    height: 100%;
}

    .mx_LargeLoader .mx_Spinner {
        -webkit-box-flex: initial;
            -ms-flex: initial;
                flex: initial;
        height: auto;
        margin-bottom: 32px;
        margin-top: 33vh;
    }

    .mx_LargeLoader .mx_LargeLoader_text {
        font-size: 24px;
        font-weight: var(--cpd-font-weight-semibold);
        padding: 0 16px;
        position: relative;
        text-align: center;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_MatrixChat--with-avatar .mx_LeftPanel,
    .mx_MatrixChat--with-avatar .mx_LeftPanel .mx_LeftPanel_roomListContainer {
        background-color: transparent;
    }

.mx_LeftPanel_outerWrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-width: 50%;
    position: relative;
}

.mx_LeftPanel_wrapper,
.mx_LeftPanel {
    --collapsedWidth: 68px;
}
    .mx_LeftPanel_panel .mx_LeftPanel_outerWrapper {
        height: 100%;
        max-width: none;
    }

    .mx_LeftPanel_panel .mx_LeftPanel_wrapper--user {
        width: 100%;
    }

.mx_LeftPanel_wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    height: 100%; /* ensure space panel is still scrollable with an outer wrapper */
}

    .mx_LeftPanel_wrapper .mx_LeftPanel_wrapper--user {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        overflow: hidden;
        position: relative;
        /* For enhanced visibility under contrast control */
        outline: 1px solid transparent;
    }

        .mx_LeftPanel_wrapper .mx_LeftPanel_wrapper--user[data-collapsed] {
            max-width: var(--collapsedWidth);
        }

.mx_LeftPanel {
    background-color: var(--cpd-color-bg-canvas-default);
    /* The room list is not designed to be collapsed to just icons. */
    /* 224 + 68(spaces bar) was deemed by design to be a good minimum for the left panel. */
    --collapsedWidth: 224px;

    /* Create a row-based flexbox for the space panel and the room list */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    contain: content;
    position: relative;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    overflow: hidden;
}

    .mx_LeftPanel .mx_LeftPanel_roomListContainer {
        -webkit-box-flex: 1;
            -ms-flex: 1 0 0px;
                flex: 1 0 0;
        min-width: 0;
        /* Create another flexbox (this time a column) for the room list components */
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

    /* These styles override the defaults for the minimized (66px) layout */
    .mx_LeftPanel.mx_LeftPanel_minimized {
        -webkit-box-flex: 0;
            -ms-flex-positive: 0;
                flex-grow: 0;
        min-width: 0;
        min-width: initial;
        width: auto !important;
        width: initial !important;
    }

        .mx_LeftPanel.mx_LeftPanel_minimized .mx_LeftPanel_roomListContainer {
            width: var(--collapsedWidth);
        }

#left-panel .mx_LeftPanel_wrapper--user {
    /*
     * Disable background when using the new room list.
     * This background sometimes shows when the panel is resized and it looks like a thicker border.
     */
    background: none;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MainSplit {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    min-width: 0;
    min-height: 0;
    height: 100%;
}
    .mx_MainSplit > .mx_RightPanel_ResizeWrapper:hover .mx_ResizeHandle--horizontal::before {
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-150%, -50%);
                transform: translate(-150%, -50%);

        height: 64px; /* to match width of the ones on roomlist */
        width: 4px;
        border-radius: 4px;

        content: "";

        background-color: var(--timeline-text-color);
        opacity: 0.8;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MatrixChat_splash {
    position: relative;
    height: 100%;
}

.mx_MatrixChat_wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;

    width: 100%;
    height: 100%;
}

.mx_MatrixChat {
    position: relative;
    width: 100%;
    height: 100%;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;

    -webkit-box-flex: 1;

        -ms-flex: 1;

            flex: 1;
    min-height: 0;
}

/* not the left panel, and not the resize handle, so the roomview and friends */
.mx_MatrixChat > :not(.mx_LeftPanel):not(.mx_SpacePanel):not(.mx_ResizeHandle):not(.mx_LeftPanel_outerWrapper) {
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));

    -webkit-box-flex: 1;

        -ms-flex: 1 1 0px;

            flex: 1 1 0;
    min-width: 0;

    /* To fix https://github.com/vector-im/element-web/issues/3298 where Safari
       needed height 100% all the way down to the HomePage. Height does not
       have to be auto, empirically.
    */
    height: 100%;
}

.mx_MatrixChat > .mx_ResizeHandle--horizontal:hover {
    position: relative;
}

    .mx_MatrixChat > .mx_ResizeHandle--horizontal:hover::before {
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%);

        height: 64px; /* to match width of the ones on roomlist */
        width: 4px;
        border-radius: 4px;

        content: " ";

        background-color: var(--timeline-text-color);
        opacity: 0.8;
    }
}
@layer app-web{

/*
Copyright 2026 Element Creations Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/*
 * The new timeline's reply-preview rules — the loading skeleton and the row
 * heights that keep it height-neutral — live alongside the reply components in
 * _ReplyChain.pcss / _ReplyTile.pcss.
 */
.mx_NewTimelinePanel {
    /* Fill the room view body, like the old message panel does. */
    height: 100%;
}

    /* Kept mounted but invisible, e.g. while search results are shown, so the
       timeline keeps its scroll position and loaded window. */
    .mx_NewTimelinePanel.mx_NewTimelinePanel_hidden {
        display: none;
    }

    /* The virtualized timeline renders its rows as an <ol role="list"> of <li>
       tiles (mx_TimelineView_list / mx_TimelineView_tile in TimelineView; the <ol>
       and <li> reset their own list markers inline). Inset the tile content to
       match the legacy mx_RoomView_MessageList padding so messages don't sit flush
       against the panel edges.

       The inset goes on the tiles rather than the <ol>: the rows are absolutely
       positioned, so their containing block is the <ol>'s padding box and padding
       there would not inset them. box-sizing + padding-inline on each row does,
       and — being horizontal only — leaves the virtualizer's measured row heights
       and vertical offsets untouched. */
    .mx_NewTimelinePanel .mx_TimelineView_tile {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        padding-inline: 18px;
        padding-inline: var(--RoomView_MessageList-padding);
    }

    /* The row holding the spinner shown while more history is fetched. Its height is
       fixed so the row always measures the same. */
    .mx_NewTimelinePanel .mx_NewTimelinePanel_loading {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        height: 32px;
        overflow: hidden;
    }

    /* An image that fails to load replaces its reserved media box with a short
       error message, which would otherwise pull every row below it upwards. Hold
       the row at the height of the box being replaced — ImageBodyView passes it
       as --mx-image-reserved-height, and only for images whose event declared
       dimensions; anything else reserved no box, so it gets no minimum.

       The error state sets `display: block`, so laying the message out needs flex
       re-asserting here; the root's `flex-direction: column` then means the cross
       axis is horizontal, and centring in the box is align-items (horizontally)
       plus justify-content (vertically). */
    .mx_NewTimelinePanel span.mx_ImageBody {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        min-height: 0;
        min-height: var(--mx-image-reserved-height, 0);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_NonUrgentToastContainer {
    position: absolute;
    bottom: 30px;
    left: 28px;
    z-index: 101; /* same level as other toasts */
}

    .mx_NonUrgentToastContainer .mx_NonUrgentToastContainer_toast {
        padding: 10px 12px;
        border-radius: 8px;
        width: 320px;
        font-size: 0.8125rem;
        margin-top: 8px;

        /* We don't use variables on the colours because we want it to be the same */
        /* in all themes. */
        background-color: #17191c;
        color: #fff;
    }
}
@layer app-web{

/*
Copyright 2026 Element Creations Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PictureInPictureDragger {
    cursor: -webkit-grab;
    cursor: grab;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    left: 0;
    position: fixed;
    top: 0;
    /*
     * Rendered in #mx_PersistedElement_container: display above docked widgets (z-index 9),
     * but below the persisted widget shown in the PiP itself (z-index 101), which is
     * positioned over a placeholder inside this element.
     */
    z-index: 100;
}

.mx_PictureInPictureDragger:active {
    cursor: -webkit-grabbing;
    cursor: grabbing;
}
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_QuickSettingsButton {
    /* !important override compound */
    border-radius: 8px !important;
    margin: 12px auto 12px;
}

    .mx_QuickSettingsButton svg {
        fill: #2e2f32;
        fill: var(--secondary-content, #2e2f32);
    }

    .mx_QuickSettingsButton:not(.expanded):hover {
        /**
         * override compound default background color when hovered
         * should disappear when the space panel will be migrated to compound
         */
        background-color: #6f7882 !important;
        background-color: var(--quaternary-content, #6f7882) !important;
        color: var(--timeline-text-color);
    }

        .mx_QuickSettingsButton:not(.expanded):hover svg {
            fill: var(--timeline-text-color);
        }

    .mx_QuickSettingsButton.expanded {
        /**
         * override compound default background color when hovered
         * should disappear when the space panel will be migrated to compound
         */
        background-color: transparent !important;

        /* align with settings icon */
        margin-left: 21px;
        margin-right: 8px;
        width: 100%;
    }

        /**
         * modify internal css of the compound component
         * dirty but we need to add the label into the indicator icon button
         **/
        .mx_QuickSettingsButton.expanded > div {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

        .mx_QuickSettingsButton.expanded svg {
            /* align with settings label */
            margin-right: 14px;
            /* required to set the icon width when into a flex container */
            width: 24px;
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }

        .mx_QuickSettingsButton.expanded .mx_QuickSettingsButton_label {
            /* !important override compound  */
            color: #2e2f32 !important;
            color: var(--secondary-content, #2e2f32) !important;
        }

.mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu {
    padding: 16px;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    min-width: 200px;
    contain: unset; /* let the dropdown paint beyond the context menu */
}

    .mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu > div > h2 {
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.9375rem;
        line-height: 1.5rem;
        color: var(--cpd-color-text-secondary);
        margin: 0 0 16px;
    }

    .mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu .mx_AccessibleButton_hasKind {
        display: block;
        margin-top: 4px;
    }

    .mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu > div > h4 {
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.75rem;
        line-height: 0.9375rem;
        text-transform: uppercase;
        color: var(--cpd-color-text-secondary);
        margin: 20px 0 12px;
        position: relative;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

    .mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu .mx_QuickSettingsButton_moreOptionsButton {
        margin-left: var(--cpd-space-7x);
        font-size: 0.9375rem;
        line-height: 1.5rem;
        color: var(--cpd-color-text-primary);
        position: relative;
        margin-bottom: 16px;
    }

    .mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu .mx_QuickSettingsButton_option {
        margin-bottom: var(--cpd-space-3x);
    }
        .mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu .mx_QuickSettingsButton_option label {
            /* Correctly line up icons and text. */
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
        }

    .mx_QuickSettingsButton_ContextMenuWrapper .mx_ContextualMenu .mx_QuickThemeSwitcher {
        margin-top: var(--cpd-space-2x);
    }

.mx_QuickSettingsButton_icon {
    margin-right: var(--cpd-space-1x);
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    width: 18px;
    height: 18px;
    margin-top: auto;
    margin-bottom: auto;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RightPanel {
    overflow-x: hidden;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    border-left: 1px solid var(--cpd-color-gray-400);
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    height: 100%;
    contain: strict;
    background-color: var(--cpd-color-bg-canvas-default);
}

    .mx_RightPanel .mx_RoomView_MessageList {
        padding: 14px 18px; /* top and bottom is 4px smaller to balance with the padding set above */
    }

.mx_RightPanel .mx_MemberList,
.mx_RightPanel .mx_MemberInfo {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
}

.mx_RightPanel .mx_RoomView_messagePanelSpinner {
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
    margin: auto;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

:root {
    --RoomView_MessageList-padding: 18px;
}
    .mx_LeftPanel_panel .mx_RoomView_wrapper {
        height: 100%;
    }

.mx_RoomView_wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    position: relative;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    /* Contain the amount of layers rendered by constraining what actually needs re-layering via css */
    contain: strict;
}

.mx_RoomView {
    word-wrap: break-word;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    position: relative;
}

    .mx_RoomView .mx_MainSplit {
        -webkit-box-flex: 1;
            -ms-flex: 1 1 0px;
                flex: 1 1 0;
    }

    .mx_RoomView .mx_MessageComposer {
        width: 100%;
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        margin-right: 2px;
        padding-bottom: 1em;
    }

.mx_RoomView_auxPanel_hiddenHighlights {
    border-bottom: 1px solid var(--roomlist-separator-color);
    padding: 10px 26px;
    color: #ff5b55;
    color: var(--alert, #ff5b55);
    cursor: pointer;
}

.mx_RoomView_messagePanel {
    width: 100%;
    overflow-y: auto;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    overflow-anchor: none;
}

.mx_RoomView_messagePanelSearchSpinner {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    background-image: url(../../img/typing-indicator-2x.e13c259.gif);
    background-position: center 367px;
    background-size: 25px;
    background-repeat: no-repeat;
    position: relative;
}

    .mx_RoomView_messagePanelSearchSpinner svg {
        color: var(--timeline-text-secondary-color);
        width: 50px;
        height: 50px;
        position: absolute;
        top: 286px;
        left: calc(50% - 25px);
    }

.mx_RoomView_body {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 0;
    container-type: size;
    container-name: roomview;
}

    .mx_RoomView_body .mx_RoomView_messagePanel,
    .mx_RoomView_body .mx_RoomView_messagePanelSpinner,
    .mx_RoomView_body .mx_RoomView_messagePanelSearchSpinner {
        -webkit-box-ordinal-group: 3;
            -ms-flex-order: 2;
                order: 2;
    }

    /* Fill the space the messages will occupy, so this spinner is centred like the
       timeline's own. Otherwise it sits near the top and then appears to jump down
       when the timeline takes over. */
    .mx_RoomView_body .mx_RoomView_messagePanelSpinner {
        -webkit-box-flex: 1;
            -ms-flex: 1 1 0px;
                flex: 1 1 0;
    }

    .mx_RoomView_body .mx_RoomView_timeline {
        /* offset parent for mx_RoomView_topUnreadMessagesBar  */
        position: relative;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

/* Restore the gap between the timeline and the right panel only when the panel is open.
   Without this, the scrollbar on mx_RoomView_messagePanel would sit 4 px away from the
   viewport edge in Firefox (which does not support overflow:overlay). */
.mx_MainSplit:has(.mx_RightPanel_ResizeWrapper) .mx_RoomView_timeline {
    margin-right: calc(8px / 2);
    margin-right: calc(var(--container-gap-width) / 2);
}

.mx_RoomView_statusArea {
    width: 100%;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;

    max-height: 0px;
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    z-index: 1000;
    overflow: hidden;

    -webkit-transition: all 0.2s ease-out;

    transition: all 0.2s ease-out;
}

.mx_RoomView_statusArea_expanded {
    max-height: 100px;
}

.mx_RoomView_statusAreaBox {
    margin: auto;
    min-height: 50px;
}

.mx_RoomView_statusAreaBox_line {
    margin-left: 65px;
    border-top: 1px solid var(--roomlist-separator-color);
    height: 1px;
}

.mx_RoomView_messageListWrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    position: relative;
}
    .mx_RoomView_searchResultsPanel .mx_RoomView_messageListWrapper {
        -webkit-box-pack: start;
            -ms-flex-pack: start;
                justify-content: flex-start;
    }

        .mx_RoomView_searchResultsPanel .mx_RoomView_messageListWrapper > .mx_RoomView_MessageList > li > ol {
            list-style-type: none;
        }

    .mx_RoomView_searchResultsPanel a {
        text-decoration: none;
        color: inherit;
    }

.mx_RoomView_empty {
    font-size: 0.8125rem;
    padding: 0 24px;
    margin-right: 30px;
    text-align: center;
    margin-bottom: 80px; /* visually center the content (intentional offset) */
}

.mx_RoomView_MessageList {
    list-style-type: none;
    padding: 18px;
    padding: var(--RoomView_MessageList-padding); /* mx_ProfileResizer depends on this value */
    margin: 0;
    /* needed as min-height is set to clientHeight in ScrollPanel
    to prevent shrinking when WhoIsTypingTile is hidden */
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

    .mx_RoomView_MessageList li {
        clear: both;
    }

    .mx_ScrollPanel .mx_RoomView_MessageList {
        position: relative;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;

        content-visibility: auto;
        contain-intrinsic-size: 50px;
    }

    .mx_RoomView--local .mx_ScrollPanel .mx_RoomView_MessageList {
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }
    .mx_RoomView_inCall .mx_RoomView_statusAreaBox_line {
        margin-top: 2px;
        border: none;
        height: 0px;
    }

    .mx_RoomView_inCall .mx_MessageComposer_wrapper {
        border-top: 2px hidden;
        padding-top: 1px;
    }
    .mx_MatrixChat_useCompactLayout .mx_RoomView_MessageList {
        margin-bottom: 4px;
    }

        .mx_MatrixChat_useCompactLayout .mx_RoomView_MessageList h2 {
            margin-top: 6px;
        }

    .mx_MatrixChat_useCompactLayout .mx_RoomView_statusAreaBox {
        min-height: 42px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SearchBox {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    min-width: 0;
    min-height: 36px; /* to avoid jumping when the X to clear shows/hides */
}

    .mx_SearchBox.mx_SearchBox_blurred:not(:hover) {
        background-color: transparent;
    }

    .mx_SearchBox .mx_SearchBox_closeButton {
        cursor: pointer;
        height: 16px;
        width: 16px;
        padding: 9px;
    }

        .mx_SearchBox .mx_SearchBox_closeButton svg {
            height: inherit;
            width: inherit;
            color: var(--cpd-color-icon-secondary);
        }
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_SpaceRoomView_landing .mx_AccessibleButton_kind_link {
        font-size: inherit;
    }

    .mx_SpaceRoomView_landing .mx_SearchBox {
        margin: 24px 0 16px;
    }

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

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_noResults > div {
            font-size: 0.9375rem;
            line-height: 1.5rem;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }

    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_listHeader {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-flow: wrap;
            flex-flow: wrap;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: 12px;
        font-size: 0.9375rem;
        line-height: 1.5rem;
        color: var(--timeline-text-color);
        margin-bottom: 12px;
    }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_listHeader .mx_SpaceHierarchy_listHeader_header {
            grid-column-start: 1;
            font-weight: var(--cpd-font-weight-semibold);
            margin: 0;
        }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_listHeader .mx_SpaceHierarchy_listHeader_buttons {
            grid-column-start: 2;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -ms-flex-flow: wrap;
                flex-flow: wrap;
            gap: 12px;
            min-height: 32px;
        }

            .mx_SpaceRoomView_landing .mx_SpaceHierarchy_listHeader .mx_SpaceHierarchy_listHeader_buttons .mx_AccessibleButton {
                padding: 4px 12px;
                font-weight: normal;
            }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_listHeader .mx_AccessibleButton_kind_danger_outline,
        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_listHeader .mx_AccessibleButton_kind_primary_outline {
            padding: 3px 12px; /* to account for the 1px border */
        }

    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_error {
        position: relative;
        font-weight: var(--cpd-font-weight-semibold);
        color: #ff5b55;
        color: var(--alert, #ff5b55);
        font-size: 0.9375rem;
        line-height: 1.125rem;
        margin: 20px auto 12px;
        padding-left: 24px;
        width: -webkit-max-content;
        width: -moz-max-content;
        width: max-content;
    }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_error::before {
            content: "";
            position: absolute;
            height: 16px;
            width: 16px;
            left: 0;
            background-image: url(../../icons/error-solid.7cb2e4d.svg);
            background-size: cover;
            background-repeat: no-repeat;
        }
        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_roomCount > h3 {
            display: inline;
            font-weight: var(--cpd-font-weight-semibold);
            font-size: 1.125rem;
            line-height: 1.375rem;
            color: var(--timeline-text-color);
        }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_roomCount > span {
            margin-left: 8px;
            font-size: 0.9375rem;
            line-height: 1.5rem;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }

    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_subspace_toggle {
        position: absolute;
        left: -1px;
        top: 10px;
        height: 16px;
        width: 16px;
        border-radius: 4px;
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_subspace_toggle svg {
            width: inherit;
            height: inherit;
            color: #2e2f32;
            color: var(--tertiary-content, #2e2f32);
            -webkit-transform: rotate(270deg);
                    transform: rotate(270deg);
        }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_subspace_toggle.mx_SpaceHierarchy_subspace_toggle_shown svg {
            -webkit-transform: rotate(0deg);
                    transform: rotate(0deg);
        }

    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_subspace_children {
        position: relative;
        padding-left: 12px;
    }

    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list {
        list-style: none;
        padding: 0;
        margin: 0;
    }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper {
            list-style: none;
        }

            .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile {
                position: relative;
                padding: 8px 16px;
                border-radius: 8px;
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;

                display: -webkit-box;

                display: -ms-flexbox;

                display: flex;
                -ms-flex-wrap: wrap;
                    flex-wrap: wrap;
                gap: 6px 12px;
            }

                .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item {
                    font-weight: var(--cpd-font-weight-semibold);
                    font-size: 0.9375rem;
                    line-height: 1.125rem;
                    display: grid;
                    grid-template-columns: 20px auto;
                    grid-gap: 6px 8px;
                    gap: 6px 8px;
                    -webkit-box-align: center;
                        -ms-flex-align: center;
                            align-items: center;
                    -webkit-box-flex: 1;
                        -ms-flex: 1;
                            flex: 1; /* wrap action buttons */
                }

                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_avatar {
                        grid-row: 1;
                        grid-column: 1;
                    }

                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_name {
                        grid-row: 1;
                        grid-column: 2;
                    }

                        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_name .mx_InfoTooltip,
                        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_name .mx_SpaceHierarchy_roomTile_joined {
                            margin-left: 12px;
                            color: #2e2f32;
                            color: var(--tertiary-content, #2e2f32);
                            font-size: 0.75rem;
                            line-height: 0.9375rem;
                        }

                        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_name .mx_InfoTooltip {
                            display: inline-block;
                        }

                        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_name .mx_SpaceHierarchy_roomTile_joined {
                            display: -webkit-inline-box;
                            display: -ms-inline-flexbox;
                            display: inline-flex;
                            -webkit-box-align: center;
                                -ms-flex-align: center;
                                    align-items: center;
                            vertical-align: middle;
                        }

                            .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_name .mx_SpaceHierarchy_roomTile_joined svg {
                                width: 20px;
                                height: 20px;
                                color: #0dbd8b;
                                color: var(--accent-color, #0dbd8b);
                            }

                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_roomTile_item .mx_SpaceHierarchy_roomTile_info {
                        grid-row: 2;
                        grid-column: 2;
                        font: var(--cpd-font-body-md-regular);
                        font-weight: normal;
                        font-weight: initial;
                        line-height: 1.125rem;
                        color: #2e2f32;
                        color: var(--secondary-content, #2e2f32);
                        display: -webkit-box;
                        -webkit-box-orient: vertical;
                        -webkit-line-clamp: 2;
                        overflow: hidden;
                    }

                .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_actions {
                    display: -webkit-box;
                    display: -ms-flexbox;
                    display: flex;
                    -webkit-box-align: center;
                        -ms-flex-align: center;
                            align-items: center;
                    -webkit-column-gap: 12px;
                       -moz-column-gap: 12px;
                            column-gap: 12px;
                    margin-left: auto;
                }

                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_actions .mx_AccessibleButton {
                        line-height: 1.5rem;
                        padding: 4px 16px;
                        display: inline-block;
                        visibility: hidden;
                    }

                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_actions .mx_AccessibleButton_kind_danger_outline,
                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile .mx_SpaceHierarchy_actions .mx_AccessibleButton_kind_primary_outline {
                        padding: 3px 16px; /* to account for the 1px border */
                    }

                .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile:hover,
                .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile:focus-within {
                    background-color: var(--sidebar-color);
                }

                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile:hover .mx_AccessibleButton, .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile:focus-within .mx_AccessibleButton {
                        visibility: visible;
                    }
                    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_list li.mx_SpaceHierarchy_roomTileWrapper .mx_SpaceHierarchy_roomTile.mx_SpaceHierarchy_joining .mx_AccessibleButton {
                        visibility: visible;
                        padding: 4px 18px;
                    }
        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_roomTile::before, .mx_SpaceRoomView_landing .mx_SpaceHierarchy_subspace_children::before {
            content: "";
            position: absolute;
            background-color: var(--sidebar-color);
            width: 1px;
            height: 100%;
            left: 6px;
            top: 0;
        }
        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_actions .mx_SpaceHierarchy_actionsText {
            font-weight: normal;
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }

    .mx_SpaceRoomView_landing > hr {
        border: none;
        height: 1px;
        background-color: rgb(141, 151, 165, 0.2);
        margin: 20px 0;
    }

    .mx_SpaceRoomView_landing .mx_SpaceHierarchy_createRoom {
        display: block;
        margin: 16px auto 0;
        width: -webkit-max-content;
        width: -moz-max-content;
        width: max-content;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SpacePanel {
    --activeBackground-color: var(--roomlist-highlights-color);
    --activeBorder-color: var(--timeline-text-color);
    --activeBorder-transparent-gap: 1px;
    --gutterSize: 14px;
    --height-nested: 24px;
    --height-topLevel: 32px;

    background-color: var(--cpd-color-bg-canvas-default);
    border-right: 1px solid var(--cpd-color-bg-subtle-primary);
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    padding: 0;
    margin: 0;
    position: relative;
    /* Fix for the blurred avatar-background */
    z-index: 1;

    /* For enhanced visibility under contrast control */
    outline: 1px solid transparent;

    /* Create another flexbox so the Panel fills the container */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

    .mx_SpacePanel.collapsed {
        width: 68px;
    }

    .mx_SpacePanel .mx_SpacePanel_toggleCollapse {
        position: absolute;
        width: 18px;
        height: 18px;
        border-radius: 50%;
        background-color: #2e2f32;
        background-color: var(--tertiary-content, #2e2f32);
        top: 19px; /* v-align with avatar */
        right: -8px;
    }

        .mx_SpacePanel .mx_SpacePanel_toggleCollapse svg {
            height: inherit;
            width: inherit;
            display: inline-block;
            color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
            /* Slight alignment tweak to center the asset */
            margin-left: 1px;
        }

        .mx_SpacePanel .mx_SpacePanel_toggleCollapse:not(.expanded) {
            opacity: 0;
        }

        .mx_SpacePanel .mx_SpacePanel_toggleCollapse.expanded svg {
            -webkit-transform: rotate(180deg);
                    transform: rotate(180deg);
            /* Slight alignment tweak to center the asset */
            margin-left: -1px;
        }

    .mx_SpacePanel:hover .mx_SpacePanel_toggleCollapse,
    .mx_SpacePanel .mx_SpacePanel_toggleCollapse:focus-visible {
        opacity: 1;
        /* For enhanced visibility under contrast control */
        outline: 1px solid transparent;
    }

    .mx_SpacePanel ul {
        margin: 0;
        list-style: none;
        padding: 0;
    }

    .mx_SpacePanel .mx_SpaceButton_toggleCollapse {
        cursor: pointer;
    }
        .mx_SpacePanel .mx_SpaceItem_dragging .mx_SpaceButton_toggleCollapse {
            visibility: hidden;
        }

    .mx_SpacePanel .mx_SpaceItem {
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex;
        -ms-flex-flow: wrap;
            flex-flow: wrap;
    }

        .mx_SpacePanel .mx_SpaceItem.mx_SpaceItem_narrow {
            -ms-flex-item-align: baseline;
                align-self: baseline;
        }
        .mx_SpacePanel .mx_SpaceItem.collapsed > .mx_SpaceButton > .mx_SpaceButton_toggleCollapse {
            padding: 0 10px;
            margin: 0 -10px;
        }

        .mx_SpacePanel .mx_SpaceItem.collapsed > .mx_SpaceTreeLevel {
            display: none;
        }

    .mx_SpacePanel .mx_SpaceItem_new {
        position: relative;
    }

    .mx_SpacePanel .mx_SpaceItem:not(.hasSubSpaces) > .mx_SpaceButton {
        margin-left: var(--gutterSize);
        min-width: 40px;
    }

    .mx_SpacePanel .mx_SpaceButton {
        border-radius: 8px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        padding: 4px 4px 4px 0;
        width: 100%;
        /* Override the unlayered cursor: grab; rule from react-beautiful-dnd */
        cursor: pointer !important;
    }
            .mx_SpacePanel .mx_SpaceButton.mx_SpaceButton_active:not(.mx_SpaceButton_narrow) .mx_SpaceButton_selectionWrapper {
                background-color: var(--activeBackground-color);
            }

            .mx_SpacePanel .mx_SpaceButton.mx_SpaceButton_active.mx_SpaceButton_narrow .mx_SpaceButton_selectionWrapper {
                padding: var(--activeBorder-transparent-gap);
                border: 3px var(--activeBorder-color) solid;
            }

        .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_selectionWrapper {
            position: relative;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            border-radius: 12px;
            padding: 4px;
            width: calc(100% - 32px);
            min-width: 0;
        }

        .mx_SpacePanel .mx_SpaceButton.mx_SpaceButton_narrow .mx_SpaceButton_selectionWrapper {
            -webkit-box-flex: initial;
                -ms-flex: initial;
                    flex: initial;
            width: 32px;
        }

        .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_name {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            margin-left: 8px;
            white-space: nowrap;
            display: block;
            text-overflow: ellipsis;
            overflow: hidden;
            font: var(--cpd-font-body-md-regular);
        }

        .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_toggleCollapse {
            height: 20px;
            width: var(--gutterSize);
            -ms-flex-negative: 0;
                flex-shrink: 0;
            padding: 10px 0;
        }

            .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_toggleCollapse svg {
                width: 20px;
                height: inherit;
                display: inline-block;
                color: #2e2f32;
                color: var(--tertiary-content, #2e2f32);
                /* Re-align with parent */
                margin-left: -3px;
            }

        .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_icon {
            /* Calculate height excluding padding to allow svg to inherit */
            width: calc(var(--height-topLevel) - 14px);
            height: calc(var(--height-topLevel) - 14px);
            -ms-flex-negative: 0;
                flex-shrink: 0;
            border-radius: 8px;
            padding: 7px;
            background-color: var(--roomlist-highlights-color);
        }

            .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_icon svg {
                width: inherit;
                height: inherit;
                display: block;
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
            }

        .mx_SpacePanel .mx_SpaceButton.mx_SpaceButton_new .mx_SpaceButton_icon {
            background-color: transparent;
            background-color: initial;
        }

            .mx_SpacePanel .mx_SpaceButton.mx_SpaceButton_new .mx_SpaceButton_icon svg {
                color: var(--timeline-text-color);
                -webkit-transition: all 0.2s ease-in-out;
                transition: all 0.2s ease-in-out; /* TODO transition */
            }

        .mx_SpacePanel .mx_SpaceButton.mx_SpaceButton_newCancel .mx_SpaceButton_icon svg {
            -webkit-transform: rotate(45deg);
                    transform: rotate(45deg);
        }

        .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_menuButton {
            width: 16px;
            height: 16px;
            padding: var(--cpd-space-0-5x);
            -ms-flex-negative: 0;
                flex-shrink: 0;
            margin-top: auto;
            margin-bottom: auto;
            display: none;
            position: absolute;
            right: 4px;
        }

            .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_menuButton svg {
                width: inherit;
                height: inherit;
                display: block;
                color: var(--timeline-text-color);
            }

    .mx_SpacePanel .mx_SpaceTreeLevel {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        max-width: 250px;
        min-width: 0;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
    }

        .mx_SpacePanel .mx_SpaceTreeLevel .mx_SpaceTreeLevel {
            /* Indent subspaces */
            padding-left: 16px;
        }

    .mx_SpacePanel .mx_SpaceButton_avatarWrapper {
        position: relative;
        line-height: 0;
    }

    .mx_SpacePanel .mx_SpacePanel_badgeContainer {
        /* Create a flexbox to make aligning dot badges easier */
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        position: absolute;
        right: -3px;
        top: -3px;
    }

        .mx_SpacePanel .mx_SpacePanel_badgeContainer .mx_SpacePanel_notificationBadge {
            margin: 0 2px; /* centering */
            background-clip: padding-box;
        }

        .mx_SpacePanel .mx_SpacePanel_badgeContainer [data-badge-type="dot"] {
            /* make the smaller dot occupy the same width for centering */
            margin: 0 -1px 0 0;
            border: 3px solid var(--sidebar-color);
        }

        .mx_SpacePanel .mx_SpacePanel_badgeContainer [data-badge-type="badge_2char"],
        .mx_SpacePanel .mx_SpacePanel_badgeContainer [data-badge-type="badge_3char"] {
            margin: -5px -5px 0 0;
            border: 2px solid var(--sidebar-color);
        }
        .mx_SpacePanel .mx_SpaceButton:hover:not(.mx_SpaceButton_narrow):not(.mx_SpaceButton_invite) .mx_SpaceButton_menuButton, .mx_SpacePanel .mx_SpaceButton:focus-within:not(.mx_SpaceButton_narrow):not(.mx_SpaceButton_invite) .mx_SpaceButton_menuButton, .mx_SpacePanel .mx_SpaceButton_hasMenuOpen:not(.mx_SpaceButton_narrow):not(.mx_SpaceButton_invite) .mx_SpaceButton_menuButton {
            display: block;
        }
            .mx_SpacePanel .mx_SpaceItem:not(.mx_SpaceItem_new) .mx_SpaceButton:hover:not(.mx_SpaceButton_narrow):not(.mx_SpaceButton_invite) .mx_SpaceButton_name, .mx_SpacePanel .mx_SpaceItem:not(.mx_SpaceItem_new) .mx_SpaceButton:focus-within:not(.mx_SpaceButton_narrow):not(.mx_SpaceButton_invite) .mx_SpaceButton_name, .mx_SpacePanel .mx_SpaceItem:not(.mx_SpaceItem_new) .mx_SpaceButton_hasMenuOpen:not(.mx_SpaceButton_narrow):not(.mx_SpaceButton_invite) .mx_SpaceButton_name {
                max-width: calc(100% - 56px);
            }

    /* root space buttons are bigger and not indented */
    .mx_SpacePanel > .mx_AutoHideScrollbar {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        padding: 0 0 16px 0;
        scrollbar-gutter: stable;
    }

        .mx_SpacePanel > .mx_AutoHideScrollbar.mx_IndicatorScrollbar_topOverflow {
            -webkit-mask-image: linear-gradient(to bottom, transparent, black 16px);
                    mask-image: linear-gradient(to bottom, transparent, black 16px);
        }

        .mx_SpacePanel > .mx_AutoHideScrollbar.mx_IndicatorScrollbar_bottomOverflow {
            -webkit-mask-image: linear-gradient(
                to top,
                transparent,
                rgb(255, 255, 255, 30%) 4px,
                rgb(255, 255, 255, 55%) 8px,
                rgb(255, 255, 255, 75%) 12px,
                black 16px
            );
                    mask-image: linear-gradient(
                to top,
                transparent,
                rgb(255, 255, 255, 30%) 4px,
                rgb(255, 255, 255, 55%) 8px,
                rgb(255, 255, 255, 75%) 12px,
                black 16px
            );
        }

        .mx_SpacePanel > .mx_AutoHideScrollbar.mx_IndicatorScrollbar_topOverflow.mx_IndicatorScrollbar_bottomOverflow {
            /* This stacks two gradients on top of one another, which lets us
               have a fixed pixel offset from both top and bottom for the colour stops.
               Note the top fade is much smaller because the spaces start close to the top,
               so otherwise a large gradient suddenly appears when you scroll down.
             */
            -webkit-mask-image:
                linear-gradient(to bottom, transparent, black 16px),
                linear-gradient(
                    to top,
                    transparent,
                    rgb(255, 255, 255, 30%) 4px,
                    rgb(255, 255, 255, 55%) 8px,
                    rgb(255, 255, 255, 75%) 12px,
                    black 16px
                );
                    mask-image:
                linear-gradient(to bottom, transparent, black 16px),
                linear-gradient(
                    to top,
                    transparent,
                    rgb(255, 255, 255, 30%) 4px,
                    rgb(255, 255, 255, 55%) 8px,
                    rgb(255, 255, 255, 75%) 12px,
                    black 16px
                );
            -webkit-mask-position:
                0% 0%,
                0% 100%;
                    mask-position:
                0% 0%,
                0% 100%;
            -webkit-mask-size:
                calc(100% - 10px) 50%,
                calc(100% - 10px) 50%;
                    mask-size:
                calc(100% - 10px) 50%,
                calc(100% - 10px) 50%;
            -webkit-mask-repeat: no-repeat;
                    mask-repeat: no-repeat;
        }

.mx_SpacePanel_contextMenu {
    max-width: 360px;
}

    .mx_SpacePanel_contextMenu .mx_SpacePanel_contextMenu_header {
        margin: 12px 16px 12px;
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.9375rem;
        line-height: 1.125rem;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .mx_SpacePanel_contextMenu .mx_SpacePanel_contextMenu_separatorLabel {
        color: #2e2f32;
        color: var(--tertiary-content, #2e2f32);
        font-size: 0.625rem;
        line-height: 0.75rem;
        font-weight: var(--cpd-font-weight-semibold);
    }

.mx_SpacePanel_sharePublicSpace {
    margin: 0;
}
    .mx_SpacePanel_Tooltip_KeyboardShortcut kbd {
        font-family: inherit;
        text-transform: capitalize;
    }
}
@layer app-web{

/*
Copyright 2025 Element Creations Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SpacePillButton {
    position: relative;
    padding: 16px 32px 16px 72px;
    width: 432px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    border-radius: 8px;
    border: 1px solid #e7e7e7;
    font-size: 1.0625rem;
    font-weight: var(--cpd-font-weight-semibold);
    margin: 20px 0;
}

    .mx_SpacePillButton > div {
        margin-top: 4px;
        font-weight: normal;
        font-size: 0.9375rem;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

    .mx_SpacePillButton svg {
        position: absolute;
        content: "";
        width: 28px;
        height: 28px;
        top: 50%;
        -webkit-transform: translateY(-50%);
                transform: translateY(-50%);
        left: 22px;
        color: #2e2f32;
        color: var(--tertiary-content, #2e2f32);
    }

    .mx_SpacePillButton:hover {
        border-color: var(--cpd-color-bg-action-primary-rest);
    }

        .mx_SpacePillButton:hover svg {
            color: var(--cpd-color-icon-primary);
        }

        .mx_SpacePillButton:hover > span {
            color: var(--timeline-text-color);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SpaceRoomView {
    --innerWidth: 428px;

    overflow-y: auto;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}

    .mx_SpaceRoomView .mx_MainSplit > div:first-child {
        padding: 80px 60px;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        max-height: 100%;
        overflow-y: auto;
    }

        .mx_SpaceRoomView .mx_MainSplit > div:first-child h1 {
            margin: 0;
            font-size: 1.5rem;
            font-weight: var(--cpd-font-weight-semibold);
            color: var(--timeline-text-color);
            width: -webkit-max-content;
            width: -moz-max-content;
            width: max-content;
        }

        .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_SpaceRoomView_description {
            font-size: 0.9375rem;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            margin-top: 12px;
            margin-bottom: 24px;
            max-width: var(--innerWidth);
        }

        .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_AddExistingToSpace {
            max-width: var(--innerWidth);
        }

            .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_AddExistingToSpace .mx_AddExistingToSpace_content {
                height: calc(100vh - 360px);
                max-height: 400px;
            }

        .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_SpaceRoomView_buttons {
            display: block;
            margin-top: 44px;
            width: var(--innerWidth);
            text-align: right; /* button alignment right */
        }

            .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_SpaceRoomView_buttons .mx_AccessibleButton_hasKind {
                padding: 8px 22px;
                margin-left: 16px;
            }

            .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_SpaceRoomView_buttons input.mx_AccessibleButton {
                border: none; /* override default styles */
            }

        .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_Field {
            max-width: var(--innerWidth);
        }

            .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_Field + .mx_Field {
                margin-top: 28px;
            }

        .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_SpaceRoomView_errorText {
            font-weight: var(--cpd-font-weight-semibold);
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #ff5b55;
            color: var(--alert, #ff5b55);
            margin-bottom: 28px;
        }

        .mx_SpaceRoomView .mx_MainSplit > div:first-child .mx_AccessibleButton_disabled {
            cursor: not-allowed;
        }

    .mx_SpaceRoomView .mx_SpaceRoomView_landing {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        min-width: 0;
    }

        .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_header {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                    justify-content: space-between;
        }

            .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_header .mx_BaseAvatar {
                width: 80px;
            }

        .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_name {
            margin: 24px 0 16px;
            font-size: 0.9375rem;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }

            .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_name > span {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-orient: vertical;
                -webkit-box-direction: normal;
                    -ms-flex-flow: column;
                        flex-flow: column;
                gap: 12px 0;
            }

                .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_name > span h1 {
                    display: inline-block;
                    overflow: hidden;
                    text-overflow: ellipsis;
                    white-space: nowrap;
                    width: 100%;
                }
                .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_name .mx_SpaceRoomView_landing_inviter .mx_BaseAvatar {
                    margin-right: 4px;
                    vertical-align: middle;
                }

        .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                    justify-content: space-between;
            gap: 12px;
            -ms-flex-wrap: wrap;
                flex-wrap: wrap;
            line-height: 1.5rem;
        }

            .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -ms-flex-wrap: wrap;
                    flex-wrap: wrap;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                gap: 12px 12px;
            }

                .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_FacePile {
                    display: inline-block;
                    cursor: pointer;
                    /* For enhanced visibility under contrast control */
                    outline: 1px solid transparent;
                }

                .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_inviteButton,
                .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_settingsButton {
                    position: relative;
                }

                    .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_inviteButton svg, .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_settingsButton svg {
                        position: absolute;
                    }

                .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_inviteButton {
                    padding: 4px 18px 4px 40px;
                    height: -webkit-min-content;
                    height: -moz-min-content;
                    height: min-content;
                }

                    .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_inviteButton svg {
                        left: 8px;
                        height: 16px;
                        width: 16px;
                        color: var(--cpd-color-icon-on-solid-primary);
                    }

                .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_settingsButton {
                    width: 24px;
                    height: 24px;
                }

                    .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_infoBar .mx_SpaceRoomView_landing_infoBar_interactive .mx_SpaceRoomView_landing_settingsButton svg {
                        left: 0;
                        top: 0;
                        height: 24px;
                        width: 24px;
                        color: #2e2f32;
                        color: var(--tertiary-content, #2e2f32);
                    }

        .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SpaceRoomView_landing_topic {
            font-size: 0.9375rem;
            margin-top: 12px;
            margin-bottom: 16px;
            white-space: pre-wrap;
            word-wrap: break-word;
        }

        .mx_SpaceRoomView .mx_SpaceRoomView_landing .mx_SearchBox {
            margin: 0 0 20px;
            -webkit-box-flex: 0;
                -ms-flex: 0;
                    flex: 0;
        }
        .mx_SpaceRoomView .mx_SpaceRoomView_inviteTeammates .mx_SpaceRoomView_inviteTeammates_buttons {
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            margin-top: 28px;
        }

            .mx_SpaceRoomView .mx_SpaceRoomView_inviteTeammates .mx_SpaceRoomView_inviteTeammates_buttons .mx_AccessibleButton {
                position: relative;
                display: inline-block;
                padding-left: 32px;
                line-height: 24px; /* to center icons */
                color: var(--cpd-color-text-primary);
                font-weight: var(--cpd-font-weight-semibold);
                text-decoration: underline;
            }

                .mx_SpaceRoomView .mx_SpaceRoomView_inviteTeammates .mx_SpaceRoomView_inviteTeammates_buttons .mx_AccessibleButton svg {
                    position: absolute;
                    height: 24px;
                    width: 24px;
                    top: 0;
                    left: 0;
                    color: var(--cpd-color-icon-primary);
                }

                .mx_SpaceRoomView .mx_SpaceRoomView_inviteTeammates .mx_SpaceRoomView_inviteTeammates_buttons .mx_AccessibleButton + .mx_AccessibleButton {
                    margin-left: 32px;
                }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SplashPage {
    position: relative;
    height: 100%;
}

    .mx_SplashPage::before {
        content: "";
        display: block;
        position: absolute;
        z-index: -1;
        opacity: 0.6;
        background-image:
            radial-gradient(
                53.85% 66.75% at 87.55% 0%,
                hsl(250deg, 76%, 71%, 0.261) 0%,
                hsl(250deg, 100%, 88%, 0) 100%
            ),
            radial-gradient(41.93% 41.93% at 0% 0%, hsl(222deg, 29%, 20%, 0.28) 0%, hsl(250deg, 100%, 88%, 0) 100%),
            radial-gradient(100% 100% at 0% 0%, hsl(250deg, 100%, 88%, 0.174) 0%, hsl(0deg, 100%, 86%, 0) 100%),
            radial-gradient(106.35% 96.26% at 100% 0%, hsl(250deg, 100%, 88%, 0.4) 0%, hsl(167deg, 76%, 82%, 0) 100%);
        /* blur to reduce color banding issues due to alpha-blending multiple gradients */
        -webkit-filter: blur(8px);
                filter: blur(8px);
        inset: -9px;
        -webkit-mask:
            /* mask to dither resulting combined gradient */
            url(../../img/noise.8322d5a.png),
            /* gradient to apply different amounts of dithering to different parts of the gradient */
            linear-gradient(
                to bottom,
                /* 10% dithering at the top */ rgb(0, 0, 0, 0.9) 20%,
                /* 80% dithering at the bottom */ rgb(0, 0, 0, 0.2) 100%
            );
        -webkit-mask:
            /* mask to dither resulting combined gradient */
            url(../../img/noise.8322d5a.png),
            /* gradient to apply different amounts of dithering to different parts of the gradient */
            linear-gradient(
                to bottom,
                /* 10% dithering at the top */ rgb(0, 0, 0, 0.9) 20%,
                /* 80% dithering at the bottom */ rgb(0, 0, 0, 0.2) 100%
            );
                mask:
            /* mask to dither resulting combined gradient */
            url(../../img/noise.8322d5a.png),
            /* gradient to apply different amounts of dithering to different parts of the gradient */
            linear-gradient(
                to bottom,
                /* 10% dithering at the top */ rgb(0, 0, 0, 0.9) 20%,
                /* 80% dithering at the bottom */ rgb(0, 0, 0, 0.2) 100%
            );
                mask:
            /* mask to dither resulting combined gradient */
            url(../../img/noise.8322d5a.png),
            /* gradient to apply different amounts of dithering to different parts of the gradient */
            linear-gradient(
                to bottom,
                /* 10% dithering at the top */ rgb(0, 0, 0, 0.9) 20%,
                /* 80% dithering at the bottom */ rgb(0, 0, 0, 0.2) 100%
            );
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.
Copyright 2019 New Vector Ltd
Copyright 2017 Travis Ralston

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_TabbedView {
    margin: 0;
    padding: 0 0 0 var(--cpd-space-8x);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    inset: 0;
    margin-top: 8px;
}

.mx_TabbedView_tabsOnLeft {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    position: absolute;
}

    .mx_TabbedView_tabsOnLeft .mx_TabbedView_tabLabels {
        width: 220px;
        max-width: 220px;
        position: fixed;
        margin: 0; /* Remove the default value */
        padding: 0; /* Remove the default value */
    }

    .mx_TabbedView_tabsOnLeft .mx_TabbedView_tabPanel {
        margin-left: 280px; /* 220px sidebar + 60px padding */
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

    .mx_TabbedView_tabsOnLeft .mx_TabbedView_tabLabel:hover,
    .mx_TabbedView_tabsOnLeft .mx_TabbedView_tabLabel_active {
        color: #ffffff;
    }

    .mx_TabbedView_tabsOnLeft .mx_TabbedView_tabLabel_active {
        background-color: var(--cpd-color-bg-subtle-secondary);
        /* For enhanced visibility under contrast control */
        outline: 1px solid transparent;
    }

.mx_TabbedView_tabsOnTop {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

    .mx_TabbedView_tabsOnTop .mx_TabbedView_tabLabels {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-bottom: 8px;
    }

    .mx_TabbedView_tabsOnTop .mx_TabbedView_tabLabel {
        padding-left: 0px;
        padding-right: 52px;
    }

        .mx_TabbedView_tabsOnTop .mx_TabbedView_tabLabel .mx_TabbedView_tabLabel_text {
            font-size: 15px;
            color: #2e2f32;
            color: var(--tertiary-content, #2e2f32);
        }

    .mx_TabbedView_tabsOnTop .mx_TabbedView_tabPanel {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
    }

    .mx_TabbedView_tabsOnTop .mx_TabbedView_tabLabel_active {
        color: #0dbd8b;
        color: var(--accent-color, #0dbd8b);
    }
        .mx_TabbedView_tabsOnTop .mx_TabbedView_tabLabel_active .mx_TabbedView_tabLabel_text {
            color: #0dbd8b;
            color: var(--accent-color, #0dbd8b);
        }

.mx_TabbedView_tabLabels {
    color: #45474a;
}

.mx_TabbedView_tabLabel {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    vertical-align: text-top;
    cursor: pointer;
    padding-block: var(--cpd-space-2x);
    padding-inline: var(--cpd-space-3x) var(--cpd-space-4x);
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    min-block-size: 40px;
    min-inline-size: 40px;
    border-radius: 24px;
    font: var(--cpd-font-body-md-medium);
    position: relative;
    -webkit-transition:
        color 0.1s,
        background-color 0.1s;
    transition:
        color 0.1s,
        background-color 0.1s;
}

    .mx_TabbedView_tabLabel svg {
        width: 20px;
        height: 20px;
        margin-right: var(--cpd-space-3x);
    }

.mx_TabbedView_tabLabel_text {
    vertical-align: middle;
}

.mx_TabbedView_tabPanel {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    min-height: 0; /* firefox */
}

.mx_TabbedView_tabPanelContent {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    overflow: auto;
    min-height: 0; /* firefox */
}

/* Hide the labels on tabs, showing only the icons, on narrow viewports. */
@media (max-width: 1024px) {
        .mx_TabbedView_tabsOnLeft.mx_TabbedView_responsive .mx_TabbedView_tabLabel_text {
            display: none;
        }
        .mx_TabbedView_tabsOnLeft.mx_TabbedView_responsive .mx_TabbedView_tabPanel {
            margin-left: 72px; /* 40px sidebar + 32px padding */
        }
        .mx_TabbedView_tabsOnLeft.mx_TabbedView_responsive .mx_TabbedView_tabLabels {
            width: auto;
        }
        .mx_TabbedView_tabsOnLeft.mx_TabbedView_responsive .mx_TabbedView_tabLabel {
            padding-inline: 0 0;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
        }
            .mx_TabbedView_tabsOnLeft.mx_TabbedView_responsive .mx_TabbedView_tabLabel svg {
                margin-right: 0;
            }
}
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 * Copyright 2024 The Matrix.org Foundation C.I.C.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_ThreadsActivityCentre_container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.mx_ThreadsActivityCentreButton {
    /* !important override compound */
    border-radius: 8px !important;
    margin: 18px auto auto auto;
}

    .mx_ThreadsActivityCentreButton.expanded {
        /**
         * override compound default background color when hovered
         * should disappear when the space panel will be migrated to compound
         */
        background-color: transparent !important;

        /* align with settings icon */
        margin-left: 21px;
        margin-right: 8px;
        width: 100%;
    }

        /**
         * modify internal css of the compound component
         * dirty but we need to add the `Threads` label into the indicator icon button
         **/
        .mx_ThreadsActivityCentreButton.expanded > div {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

            .mx_ThreadsActivityCentreButton.expanded > div::before {
                inline-size: 8px;
                block-size: 8px;
                left: 17px;
            }

        .mx_ThreadsActivityCentreButton.expanded .mx_ThreadsActivityCentreButton_Icon {
            /* align with settings label */
            margin-right: 14px;
            /* required to set the icon width when into a flex container */
            width: 24px;
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }

        .mx_ThreadsActivityCentreButton.expanded .mx_ThreadsActivityCentreButton_Text {
            /* !important override compound  */
            color: #2e2f32 !important;
            color: var(--secondary-content, #2e2f32) !important;
        }
        .mx_ThreadsActivityCentreButton:not(.expanded):hover,
        .mx_ThreadsActivityCentreButton:not(.expanded):hover .mx_ThreadsActivityCentreButton_Icon {
            /* !important override compound */
            background-color: #6f7882 !important;
            background-color: var(--quaternary-content, #6f7882) !important;
            fill: var(--timeline-text-color);
        }

    .mx_ThreadsActivityCentreButton .mx_ThreadsActivityCentreButton_Icon {
        fill: #2e2f32;
        fill: var(--secondary-content, #2e2f32);
    }

/* Compound styles its Menu/NavBar/MenuItem internals with single-class selectors. The
   `[role="menu"]` qualifier gives our rules a higher specificity so they win without
   `!important`. */
.mx_ThreadsActivityCentre_menu[role="menu"] {
    /* Override compound's default 340px cap */
    max-inline-size: 444px;
    inline-size: 444px;
}
    /*
     * Awful, brittle hack to remove padding from the menu which is now added on the content child
     * This probably ought to be a parameter to the compound component if we sometimes don't want padding.
     */
    .mx_ThreadsActivityCentre_menu[role="menu"] > [role="none"] {
        padding-block: 0;

        --cpd-menu-padding-block-end: 0;
    }

    .mx_ThreadsActivityCentre_menu[role="menu"] .mx_ThreadsActivityCentre_tabs {
        /* Override NavBar's default block margin to match the Figma design */
        margin: 0;
        padding: var(--cpd-space-2x) var(--cpd-space-4x) 0;
    }

    .mx_ThreadsActivityCentre_menu[role="menu"] .mx_ThreadsActivityCentre_rows {
        overflow-y: auto;
        /* Fixed panel height from the design (~6 rows), so the menu doesn't resize as the
           list changes. Row heights vary with the preview, and 432px isn't on the spacing
           scale, so this stays in px. */
        height: 432px;
        min-height: 432px;
    }

        .mx_ThreadsActivityCentre_menu[role="menu"] .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreThreadRow {
            /* Floor for rows without a message preview, which would otherwise be ~48px */
            min-height: var(--cpd-space-14x);

            /* Override compound's display: grid with a simple left-to-right flex row:
               [avatar] [gap] [text content] [indicator] */
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            gap: var(--cpd-space-3x);
            padding: var(--cpd-space-3x) var(--cpd-space-4x);
        }

            /* Compound's .icon class adds margin-inline-end; zero it since gap handles spacing */
            .mx_ThreadsActivityCentre_menu[role="menu"] .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreThreadRow > .mx_DecoratedRoomAvatar {
                -webkit-margin-end: 0;
                        margin-inline-end: 0;
                -ms-flex-negative: 0;
                    flex-shrink: 0;
            }

            /* Notification decoration (mention icon / counter / activity dot) at the trailing edge */
            .mx_ThreadsActivityCentre_menu[role="menu"] .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreThreadRow > .mx_ThreadsActivityCentreThreadRow_decoration {
                -ms-flex-negative: 0;
                    flex-shrink: 0;
                -ms-flex-item-align: center;
                    align-self: center;
            }

            .mx_ThreadsActivityCentre_menu[role="menu"] .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreThreadRow .mx_ThreadsActivityCentreThreadRow_content {
                -webkit-box-flex: 1;
                    -ms-flex: 1;
                        flex: 1;
                min-width: 0;
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-orient: vertical;
                -webkit-box-direction: normal;
                    -ms-flex-direction: column;
                        flex-direction: column;
                gap: var(--cpd-space-0-5x);
                text-align: start;
            }

            .mx_ThreadsActivityCentre_menu[role="menu"] .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreThreadRow .mx_ThreadsActivityCentreThreadRow_header {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                gap: var(--cpd-space-2x);
            }

            /* Font/letter-spacing come from the Compound Text components; only layout + colour here. */
            .mx_ThreadsActivityCentre_menu[role="menu"] .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreThreadRow .mx_ThreadsActivityCentreThreadRow_roomName {
                -webkit-box-flex: 1;
                    -ms-flex: 1;
                        flex: 1;
                min-width: 0;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
            }

            .mx_ThreadsActivityCentre_menu[role="menu"] .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreThreadRow .mx_ThreadsActivityCentreThreadRow_preview {
                display: -webkit-box;
                -webkit-line-clamp: 2;
                -webkit-box-orient: vertical;
                overflow: hidden;
                color: var(--cpd-color-text-secondary);
            }

            .mx_ThreadsActivityCentre_menu[role="menu"] .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreThreadRow .mx_ThreadsActivityCentreThreadRow_sender {
                color: var(--cpd-color-text-primary);
            }

.mx_ThreadsActivityCentre_emptyCaption {
    /* Typography comes from the Compound Text component. */
    padding: var(--cpd-space-3x) var(--cpd-space-4x);
    color: var(--cpd-color-text-secondary);
}
}
@layer app-web{

/*
Copyright 2026 Element Creations Ltd.
Copyright 2024 New Vector Ltd.
Copyright 2019-2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ToastContainer {
    position: absolute;
    top: 12px;
    left: 62px;
    z-index: 101;
    display: grid;
    grid-template-rows: 1fr 28px 8px;
}

    .mx_ToastContainer.mx_ToastContainer_stacked::before {
        content: "";
        margin: 0 var(--cpd-space-1-5x);
        grid-row: 2 / -1;
        grid-column: 1;
        background-color: #f4f6fa;
        background-color: var(--system, #f4f6fa);
        -webkit-box-shadow: 0px 4px 20px rgb(0, 0, 0, 0.5);
                box-shadow: 0px 4px 20px rgb(0, 0, 0, 0.5);
        border-radius: var(--cpd-space-6x);
    }

    .mx_ToastContainer .mx_Toast_toast {
        grid-row: 1 / 3;
        grid-column: 1;
        background-color: var(--cpd-color-bg-canvas-default);
        color: var(--timeline-text-color);
        -webkit-box-shadow: 0px 4px 24px rgb(0, 0, 0, 0.1);
                box-shadow: 0px 4px 24px rgb(0, 0, 0, 0.1);
        border: var(--cpd-border-width-1) solid var(--cpd-color-border-interactive-secondary);
        border-radius: var(--cpd-space-3x);
        overflow: hidden;
        display: grid;
        grid-template-columns: 20px 1fr auto;
        grid-column-gap: var(--cpd-space-2x);
        -webkit-column-gap: var(--cpd-space-2x);
           -moz-column-gap: var(--cpd-space-2x);
                column-gap: var(--cpd-space-2x);
        grid-row-gap: 4px;
        row-gap: 4px;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        padding: calc(var(--cpd-space-5x) - var(--cpd-border-width-1));
    }
            .mx_ToastContainer .mx_Toast_toast.mx_Toast_hasIcon svg {
                width: 20px;
                height: 20px;
                grid-column: 1;
            }

            .mx_ToastContainer .mx_Toast_toast.mx_Toast_hasIcon .mx_Toast_title {
                grid-column: 2;
            }

            .mx_ToastContainer .mx_Toast_toast.mx_Toast_hasIcon .mx_Toast_closebutton {
                grid-column: 3;
            }
        .mx_ToastContainer .mx_Toast_toast:not(.mx_Toast_hasIcon) .mx_Toast_title {
            grid-column: 1 / -1;
        }

        .mx_ToastContainer .mx_Toast_toast .mx_Toast_title {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-column-gap: var(--cpd-space-2x);
               -moz-column-gap: var(--cpd-space-2x);
                    column-gap: var(--cpd-space-2x);
            width: 100%;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
        }

            .mx_ToastContainer .mx_Toast_toast .mx_Toast_title h2 {
                margin: 0;
                font: var(--cpd-font-body-lg-semibold);
                display: inline;
                width: auto;
            }

        .mx_ToastContainer .mx_Toast_toast .mx_Toast_body {
            grid-column: 1 / -1;
            grid-row: 2;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 , 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_UploadBar {
    /* line up with the shield area in the composer */
    padding: 5px 21px 0;
    position: relative;

    display: grid;
    grid-template:
        "icon     filename cancel" auto
        "progress progress progress" auto
        / -webkit-min-content auto -webkit-min-content;
    grid-template:
        "icon     filename cancel" auto
        "progress progress progress" auto
        / min-content auto min-content;
    grid-gap: var(--cpd-space-1-5x);
    gap: var(--cpd-space-1-5x);
}

    .mx_UploadBar > svg {
        grid-area: icon;
        height: 18px;
        width: 18px;
        color: #61708b;
        align-self: center;
    }

    .mx_UploadBar .mx_UploadBar_filename {
        grid-area: filename;
        color: #61708b;
        position: relative;
        font-size: 0.9375rem;
        vertical-align: middle;
    }

    .mx_UploadBar .mx_UploadBar_cancel {
        grid-area: cancel;
        height: 16px;
        width: 16px;
        color: #61708b;
        align-self: center;
    }

    .mx_UploadBar .mx_ProgressBar {
        grid-area: progress;
        width: 100%;
    }
    .mx_ThreadView .mx_UploadBar {
        padding-left: 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ViewSource pre {
        font-size: 0.75rem;
        padding: 0.5em 1em;
        word-wrap: break-word;
        white-space: pre-wrap;
        overflow-wrap: anywhere;
    }

    .mx_ViewSource .mx_ViewSource_header {
        border-bottom: 1px solid #6f7882;
        border-bottom: 1px solid var(--quinary-content, #6f7882);
        padding-bottom: var(--cpd-space-3x);
        margin-bottom: var(--cpd-space-3x);
        font-family: monospace;
    }

        .mx_ViewSource .mx_ViewSource_header .mx_CopyableText {
            word-break: break-all;
        }

    .mx_ViewSource .mx_ViewSource_heading {
        font-size: 1.0625rem;
        font-weight: 400;
        color: var(--timeline-text-color);
        margin-top: var(--cpd-space-3x);
    }

    .mx_ViewSource .mx_ViewSource_details {
        margin-top: var(--cpd-space-3x);
    }

    .mx_ViewSource .mx_CopyableText_border {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        width: 100%;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CompleteSecurity_header {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_E2EIcon.mx_CompleteSecurity_headerIcon {
    width: 24px;
    height: 24px;
    margin-right: 4px;
    display: inline-block;
}

.mx_E2EIcon.mx_CompleteSecurity_heroIcon {
    width: 128px;
    height: 128px;
    margin: 0 auto;
}

.mx_CompleteSecurity_skip {
    width: 20px;
    height: 20px;
    padding: var(--cpd-space-1x);
    border-radius: 14px;
    background-color: var(--cpd-color-bg-subtle-secondary);
}
    .mx_CompleteSecurity_skip:hover {
        background-color: var(--cpd-color-bg-subtle-primary);
    }
    .mx_CompleteSecurity_skip svg {
        width: inherit;
        height: inherit;
        vertical-align: top;
        color: var(--cpd-color-icon-secondary);
    }
    .mx_CompleteSecurity_skip{
    position: absolute;
    right: 24px;
}

.mx_CompleteSecurity_body {
    font-size: 0.9375rem;
}

.mx_CompleteSecurity_waiting {
    color: #2e2f32;
    color: var(--tertiary-content, #2e2f32);
}

.mx_CompleteSecurity_actionRow {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    margin-top: 1.75rem;
}

    .mx_CompleteSecurity_actionRow .mx_AccessibleButton {
        -webkit-margin-start: 18px;
                margin-inline-start: 18px;
    }

        .mx_CompleteSecurity_actionRow .mx_AccessibleButton.warning {
            color: #ff5b55;
            color: var(--alert, #ff5b55);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019-2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ConfirmSessionLockTheftView {
    width: 100%;
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

.mx_ConfirmSessionLockTheftView_body {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-width: 400px;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Login_submit {
    width: 100%;
    margin-top: 24px;
    margin-bottom: 24px;
}

.mx_Login_loader {
    display: inline;
    position: relative;
    top: 2px;
    left: 8px;
}

.mx_Login_loader .mx_Spinner {
    display: inline;
}

.mx_Login_loader .mx_Spinner img {
    width: 16px;
    height: 16px;
}

.mx_Login_error {
    color: #ff5b55;
    color: var(--alert, #ff5b55);
    font-weight: bold;
    text-align: center;
    margin-top: 12px;
    margin-bottom: 12px;
}

.mx_Login_error.mx_Login_serverError {
    text-align: left;
    font-weight: normal;
}

.mx_Login_error.mx_Login_serverError.mx_Login_serverErrorNonFatal {
    color: #ff8d13; /* Only used here */
}

.mx_Login_type_container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: var(--timeline-text-color);
}

    .mx_Login_type_container .mx_Field {
        margin: 0;
    }

.mx_Login_type_label {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}

.mx_Login_underlinedServerName {
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    border-bottom: 1px dashed #0dbd8b;
    border-bottom: 1px dashed var(--accent-color, #0dbd8b);
}

div.mx_AccessibleButton_kind_link.mx_Login_forgot {
    display: block;
    margin-top: 24px;
}

    div.mx_AccessibleButton_kind_link.mx_Login_forgot.mx_AccessibleButton_disabled {
        cursor: not-allowed;
    }

.mx_Login_spinner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-line-pack: center;
        align-content: center;
    padding: 14px;
}

.mx_Login_fullWidthButton {
    width: 100%;
    margin-bottom: 16px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015-2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LoginSplashView_splashButtons {
    text-align: center;
    width: 100%;
    position: absolute;
    bottom: 30px;
}

.mx_LoginSplashView_syncError {
    color: #ffffff;
    background-color: #df2a8b; /* Only used here */
    border-radius: 5px;
    display: table;
    padding: 30px;
    position: absolute;
    top: 100px;
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MobileRegister_body {
    padding: 32px;
    height: 100vh;
    overflow-y: auto;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Register_mainContent {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    min-height: 270px;
}

    .mx_Register_mainContent p {
        font: var(--cpd-font-body-md-regular);
        color: var(--timeline-text-color);
    }

        .mx_Register_mainContent p.secondary {
            color: var(--timeline-text-secondary-color);
        }

    .mx_Register_mainContent > img:first-child {
        margin-bottom: 16px;
        width: -webkit-max-content;
        width: -moz-max-content;
        width: max-content;
    }

    .mx_Register_mainContent .mx_Login_submit {
        margin-bottom: 0;
    }

/* Medium rather than the bold every other auth error uses: this one sits directly above the button it
   is disabling, and does not need to shout over it. Scoped so the login errors keep their weight. */
.mx_Login_error.mx_Registration_rateLimitError {
    font-weight: var(--cpd-font-weight-medium);
}

.mx_Register_footerActions {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    padding-top: 16px;
    margin-top: 16px;
    border-top: 1px solid rgb(141, 151, 165, 0.2);
}

    .mx_Register_footerActions > * {
        -ms-flex-preferred-size: content;
            flex-basis: content;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_SessionLockStolenView h1 {
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 2rem;
        text-align: center;
    }

    .mx_SessionLockStolenView h2 {
        margin: 0;
        font-weight: 500;
        font-size: 1.5rem;
        text-align: center;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SetupEncryptionBody {
    width: 600px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021, 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* Dev note: there's no actual component called <PlaybackContainer />. These classes */
/* are shared amongst multiple voice message components. */

/* Container for live recording and playback controls */
.mx_VoiceMessagePrimaryContainer {
    /* Match mx_MediaBody spacing, offsetting the waveform's 1px internal right padding. */
    padding: 6px 11px 6px 12px;

    /* Cheat at alignment a bit */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;

    contain: content;
}

    .mx_VoiceMessagePrimaryContainer .mx_Waveform,
    .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle {
        min-width: 0; /* Prevent a blowout */
    }

    /* Waveforms are present in live recording only */
    .mx_VoiceMessagePrimaryContainer .mx_Waveform {
        /* default, overridden in JS */
        --barHeight: 1;
    }
        .mx_VoiceMessagePrimaryContainer .mx_Waveform .mx_Waveform_bar {
            background-color: #6f7882;
            background-color: var(--quaternary-content, #6f7882);
            height: 100%;
            -webkit-transform: scaleY(max(0.05, var(--barHeight)));
                    transform: scaleY(max(0.05, var(--barHeight)));
        }

            .mx_VoiceMessagePrimaryContainer .mx_Waveform .mx_Waveform_bar.mx_Waveform_bar_100pct {
                /* Small animation to remove the mechanical feel of progress */
                -webkit-transition: background-color 250ms ease;
                transition: background-color 250ms ease;
                background-color: #2e2f32;
                background-color: var(--secondary-content, #2e2f32);
            }

    .mx_VoiceMessagePrimaryContainer .mx_Clock {
        width: 2.625rem; /* we're not using a monospace font, so fake it */
        min-width: 2.625rem; /* force sensible layouts in awkward flexboxes (file panel, for example) */
        padding-right: 6px; /* with the fixed width this ends up as a visual 8px most of the time, as intended. */
        padding-left: 8px; /* isolate from recording circle / play control */
    }

    .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle {
        margin-left: 8px;
        margin-right: 6px;
        position: relative;
        display: inline-block;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        height: 30px;
    } /* same height as mx_Waveform, needed for automatic vertical centering */

        .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle .mx_Waveform {
            left: 0;
            top: 0;
        }

        .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle .mx_SeekBar {
            position: absolute;
            left: 0;
            height: 30px;
            top: -2px; /* visually vertically centered */

            /* Hide the hairline progress bar since we're at 100% height. Need to have distinct rules */
            /* because CSS is weird. */
            background: none;

            /* Make the thumb easier to see. Like the SeekBar original styles, these need to be */
            /* distinct. We make it transparent so it doesn't show up on the UI, but also larger */
        }
            .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle .mx_SeekBar::before {
                background: none;
            }
            .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle .mx_SeekBar::-moz-range-progress {
                background: none;
            }
            /* move and drag the thumb regardless of hitting the thumb, however. */
            .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle .mx_SeekBar::-webkit-slider-thumb {
                width: 10px;
                height: 10px;
                background-color: transparent;
            }
            /* so it's easier to grab by mouse users in some browsers. Most browsers let the user */
            .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle .mx_SeekBar::-moz-range-thumb {
                width: 10px;
                height: 10px;
                background-color: transparent;
            }

        /* For timeline-rendered playback, the clock is on the other side of the waveform. */
        .mx_VoiceMessagePrimaryContainer .mx_RecordingPlayback_timelineLayoutMiddle + .mx_Clock {
            text-align: right;

            /* Take the padding off the clock because it's accounted for by the `timelineLayoutMiddle` */
            padding: 0;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* CSS inspiration from: */
/* * https://www.w3schools.com/howto/howto_js_rangeslider.asp */
/* * https://stackoverflow.com/a/28283806 */
/* * https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/ */

.mx_SeekBar {
    /* default, overridden in JS */
    --fillTo: 1;

    /* Dev note: we deliberately do not have the -ms-track (and friends) selectors because we don't */
    /* need to support IE. */

    -webkit-appearance: none;

       -moz-appearance: none;

            appearance: none; /* default style override */

    width: 100%;
    height: 1px;
    background: #6f7882;
    background: var(--quaternary-content, #6f7882);
    outline: none; /* remove blue selection border */
    position: relative; /* for before+after pseudo elements later on */

    cursor: pointer;

    /* This is for webkit support, but we can't limit the functionality of it to just webkit */
    /* browsers. Firefox responds to webkit-prefixed values now, which means we can't use media */

    /* Increase clickable area for the slider (approximately same size as browser default) */
    /* We do it this way to keep the same padding and margins of the element, avoiding margin math. */
}

    .mx_SeekBar::-webkit-slider-thumb {
        -webkit-appearance: none;
                appearance: none; /* default style override */

        /* Dev note: This needs to be duplicated with the -moz-range-thumb selector */
        /* because otherwise Edge (webkit) will fail to see the styles and just refuse */
        /* to apply them. */
        width: 8px;
        height: 8px;
        border-radius: 8px;
        background-color: #2e2f32;
        background-color: var(--tertiary-content, #2e2f32);
        cursor: pointer;
    }

    .mx_SeekBar::-moz-range-thumb {
        width: 8px;
        height: 8px;
        border-radius: 8px;
        background-color: #2e2f32;
        background-color: var(--tertiary-content, #2e2f32);
        cursor: pointer;

        /* Firefox adds a border on the thumb */
        border: none;
    }
    /* in firefox, so it's just wasted CPU/GPU time. */
    .mx_SeekBar::before {
        /* ::before to ensure it ends up under the thumb */
        content: "";
        background-color: #2e2f32;
        background-color: var(--tertiary-content, #2e2f32);

        /* Absolute positioning to ensure it overlaps with the existing bar */
        position: absolute;
        top: 0;
        left: 0;

        /* Sizing to match the bar */
        width: 100%;
        height: 1px;

        /* And finally dynamic width without overly hurting the rendering engine. */
        -webkit-transform-origin: 0 100%;
                transform-origin: 0 100%;
        -webkit-transform: scaleX(var(--fillTo));
                transform: scaleX(var(--fillTo));
    }

    /* This is firefox's built-in support for the above, with 100% less hacks. */
    .mx_SeekBar::-moz-range-progress {
        background-color: #2e2f32;
        background-color: var(--tertiary-content, #2e2f32);
        height: 1px;
    }
    /* or support queries to selectively apply the rule. An upside is that this CSS doesn't work */

    .mx_SeekBar:disabled {
        opacity: 0.5;
    }
    /* Source: https://front-back.com/expand-clickable-areas-for-a-better-touch-experience/ */
    .mx_SeekBar::after {
        content: "";
        position: absolute;
        top: -6px;
        bottom: -6px;
        left: 0;
        right: 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Waveform {
    position: relative;
    height: 30px; /* tallest bar can only be 30px */
    top: 1px; /* because of our border trick (see below), we're off by 1px of aligntment */

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center; /* so the bars grow from the middle */

    overflow: hidden; /* this is cheaper than a `max-height: calc(100% - 4px)` in the bar's CSS. */

    /* A bar is meant to be a 2x2 circle when at zero height, and otherwise a 2px wide line */
}
    /* with rounded caps. */
    .mx_Waveform .mx_Waveform_bar {
        width: 0; /* 0px width means we'll end up using the border as our width */
        border: 1px solid transparent; /* transparent means we'll use the background colour */
        border-radius: 2px; /* rounded end caps, based on the border */
        min-height: 0; /* like the width, we'll rely on the border to give us height */
        max-height: 100%; /* this makes the `height: 42%` work on the element */
        margin-left: 1px; /* we want 2px between each bar, so 1px on either side for balance */
        margin-right: 1px;

        /* background color is handled by the parent components */
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2019 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AuthBody {
    width: 500px;
    font-size: 0.75rem;
    color: var(--timeline-text-secondary-color);
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-radius: 0 var(--cpd-space-6x) var(--cpd-space-6x) 0;
    padding: 25px 60px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

    .mx_AuthBody strong {
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_AuthBody.mx_AuthBody_flex {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

    .mx_AuthBody h1 {
        font-size: 1.5rem;
        font-weight: var(--cpd-font-weight-semibold);
        margin-top: var(--cpd-space-2x);
        color: var(--timeline-text-color);
    }

    .mx_AuthBody h2 {
        font: var(--cpd-font-body-md-semibold);
        color: var(--timeline-text-secondary-color);
    }

    .mx_AuthBody h2.mx_AuthBody_centered {
        text-align: center;
    }

    .mx_AuthBody a:link,
    .mx_AuthBody a:hover,
    .mx_AuthBody a:visited {
        color: #0dbd8b;
        color: var(--accent-color, #0dbd8b);
        text-decoration: none;
    }

    .mx_AuthBody fieldset {
        /* Reset the browser default <fieldset> styling */
        display: block;
        margin-inline: unset;
        padding-block: unset;
        padding-inline: unset;
        min-inline-size: unset;
        border: none;
    }

    .mx_AuthBody .mx_AuthBody_icon {
        width: 44px;
        height: 44px;
    }

    .mx_AuthBody .mx_AuthBody_lockIcon {
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        height: 32px;
        width: 32px;
    }

    .mx_AuthBody .mx_AuthBody_text {
        margin-bottom: var(--cpd-space-12x);
        margin-top: 0;
    }

    .mx_AuthBody input[type="text"],
    .mx_AuthBody input[type="password"] {
        color: var(--timeline-text-color);
    }

    .mx_AuthBody input[type="password"] {
        background-color: transparent;
    }
        .mx_AuthBody input[type="password"]:focus {
            outline: none;
            -webkit-box-shadow: none;
                    box-shadow: none;
        }

    .mx_AuthBody .mx_Field label {
        color: var(--timeline-text-secondary-color);
    }

    .mx_AuthBody .mx_Field input,
    .mx_AuthBody .mx_Field select {
        color: var(--timeline-text-color);
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    }

    .mx_AuthBody .mx_Field input:not(:-moz-placeholder) + label, .mx_AuthBody .mx_Field textarea:not(:-moz-placeholder) + label {
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    }

    .mx_AuthBody .mx_Field input:not(:-ms-input-placeholder) + label, .mx_AuthBody .mx_Field textarea:not(:-ms-input-placeholder) + label {
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    }

    .mx_AuthBody .mx_Field_labelAlwaysTopLeft label,
    .mx_AuthBody .mx_Field select + label,
    .mx_AuthBody .mx_Field input:focus + label,
    .mx_AuthBody .mx_Field input:not(:placeholder-shown) + label,
    .mx_AuthBody .mx_Field textarea:focus + label,
    .mx_AuthBody .mx_Field textarea:not(:placeholder-shown) + label {
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    }

    .mx_AuthBody input.error {
        color: #ff5b55;
        color: var(--alert, #ff5b55);
    }

    .mx_AuthBody .mx_Login_submit {
        height: 32px;
        margin-top: var(--cpd-space-4x);
    }

    .mx_AuthBody .mx_ErrorMessage {
        margin-bottom: 12px;
        margin-top: 2px;
    }

    .mx_AuthBody .mx_Field input {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
    }

    .mx_AuthBody .mx_Field_select::before {
        background-color: var(--timeline-text-color);
    }

    .mx_AuthBody .mx_Dropdown {
        color: var(--timeline-text-color);
    }

    .mx_AuthBody .mx_Dropdown_arrow {
        color: var(--timeline-text-color);
    }

    .mx_AuthBody .mx_Dropdown_menu {
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    }

        .mx_AuthBody .mx_Dropdown_menu .mx_Dropdown_option_highlight {
            background-color: #dddddd;
        }

/* specialisation for password reset views */
.mx_AuthBody.mx_AuthBody_forgot-password {
    font: var(--cpd-font-body-md-regular);
    color: var(--timeline-text-color);
    padding: 50px 32px;
    min-height: 600px;
}

    .mx_AuthBody.mx_AuthBody_forgot-password h1 {
        margin: var(--cpd-space-6x) 0;
    }

    .mx_AuthBody.mx_AuthBody_forgot-password .mx_AuthBody_button-container {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

    .mx_AuthBody.mx_AuthBody_forgot-password .mx_Login_submit {
        margin: 0 0 var(--cpd-space-4x);
    }

    .mx_AuthBody.mx_AuthBody_forgot-password .mx_AuthBody_text {
        margin-bottom: var(--cpd-space-8x);
    }

        .mx_AuthBody.mx_AuthBody_forgot-password .mx_AuthBody_text p {
            margin: 0 0 var(--cpd-space-2x);
        }

    .mx_AuthBody.mx_AuthBody_forgot-password .mx_AuthBody_sign-in-instead-button {
        font-weight: var(--cpd-font-weight-semibold);
        padding: var(--cpd-space-1x);
    }

    .mx_AuthBody.mx_AuthBody_forgot-password .mx_AuthBody_fieldRow {
        margin-bottom: var(--cpd-space-6x);
    }

    .mx_AuthBody.mx_AuthBody_forgot-password .mx_AccessibleButton.mx_AccessibleButton_hasKind {
        background: none;
    }

        .mx_AuthBody.mx_AuthBody_forgot-password .mx_AccessibleButton.mx_AccessibleButton_hasKind:disabled {
            cursor: default;
            opacity: 0.4;
        }

.mx_AuthBody_did-not-receive {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-2x);
}

.mx_AuthBody_resend-button {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    border-radius: 8px;
    color: #0dbd8b;
    color: var(--accent-color, #0dbd8b);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-1x);
    padding: var(--cpd-space-1x);
}

    .mx_AuthBody_resend-button:hover {
        background-color: #f4f6fa;
        background-color: var(--system, #f4f6fa);
    }

.mx_AuthBody_emailPromptIcon {
    width: 57px;
}

.mx_AuthBody_emailPromptIcon--shifted {
    margin-bottom: -17px; /* Prevent layout jump by relative positioning. */
    position: relative;
    top: -17px; /* This icon is higher than the other icons. Shift up to prevent icon jumping. */
    width: 57px;
}

.mx_AuthBody_fieldRow {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 10px;
}

.mx_AuthBody_fieldRow > .mx_Field {
    margin: 0 5px;
}

.mx_AuthBody_fieldRow > .mx_Field:first-child {
    margin-left: 0;
}

.mx_AuthBody_fieldRow > .mx_Field:last-child {
    margin-right: 0;
}

.mx_AuthBody_paddedFooter {
    height: 80px; /* height of the submit button + register link */
    padding-top: 28px;
    text-align: center;
}

    .mx_AuthBody_paddedFooter .mx_AuthBody_paddedFooter_title {
        margin-top: var(--cpd-space-4x);
        font-size: 0.9375rem;
        line-height: 1.5rem;
    }

        .mx_AuthBody_paddedFooter .mx_AuthBody_paddedFooter_title .mx_InlineSpinner svg {
            vertical-align: sub;
            margin-right: 5px;
        }

    .mx_AuthBody_paddedFooter .mx_AuthBody_paddedFooter_subtitle {
        margin-top: var(--cpd-space-2x);
        font-size: 0.625rem;
        line-height: 0.875rem;
    }

.mx_AuthBody_changeFlow {
    display: block;
    text-align: center;
}

    .mx_AuthBody_changeFlow > a {
        font-weight: var(--cpd-font-weight-semibold);
    }

.mx_SSOButtons + .mx_AuthBody_changeFlow {
    margin-top: var(--cpd-space-6x);
}

.mx_AuthBody_spinner {
    margin: 1em 0;
}

@media only screen and (max-width: 480px) {
    .mx_AuthBody {
        border-radius: 4px;
        width: auto;
        max-width: 500px;
        padding: 10px;
    }
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AuthFooter {
    text-align: center;
    width: 100%;
    font: var(--cpd-font-body-md-regular);
    opacity: 0.72;
    padding: 20px 0;
    background: -webkit-gradient(linear, left top, left bottom, from(rgb(0, 0, 0, 0)), to(rgb(0, 0, 0, 0.8)));
    background: linear-gradient(rgb(0, 0, 0, 0), rgb(0, 0, 0, 0.8));
}

.mx_AuthFooter a:link,
.mx_AuthFooter a:hover,
.mx_AuthFooter a:visited {
    color: #ffffff;
    margin: 0 22px;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AuthHeader {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    width: 206px;
    padding: 25px 25px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

@media only screen and (max-width: 480px) {
    .mx_AuthHeader {
        display: none;
    }
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AuthHeaderLogo {
    margin-top: 15px;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    padding: 0 25px;
}

.mx_AuthHeaderLogo img {
    width: 100%;
}

@media only screen and (max-width: 480px) {
    .mx_AuthHeaderLogo {
        display: none;
    }
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AuthPage {
    width: 100%;
    min-height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    background-color: #2e3649;
    height: 100vh;
    overflow: auto;
}

.mx_AuthPage_modal {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin: 100px auto auto;
    border-radius: var(--cpd-space-6x);
    background-color: var(--timeline-background-color-50pct);
}

    @media only screen and (max-height: 768px) {

.mx_AuthPage_modal {
        margin-top: 50px
}
    }

    @media only screen and (max-width: 480px) {

.mx_AuthPage_modal {
        margin-top: 0
}
    }

    .mx_AuthPage_modal.mx_AuthPage_modal_withBlur {
        /* Apply a blurred shadow around the modal */
        -webkit-box-shadow: 0 2px 4px 0 rgb(0, 0, 0, 0.33);
                box-shadow: 0 2px 4px 0 rgb(0, 0, 0, 0.33);
    }

        .mx_AuthPage_modal.mx_AuthPage_modal_withBlur .mx_AuthPage_modalContent {
            /* Make the modal's background semitransparent */
            background-color: rgb(255, 255, 255, 0.59);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2019 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CompleteSecurityBody {
    color: var(--timeline-text-color);
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-radius: 24px;
    padding: 20px 20px 60px 20px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

    .mx_CompleteSecurityBody h2 {
        font-size: 1.5rem;
        font-weight: var(--cpd-font-weight-semibold);
        margin-top: 0;
    }

    .mx_CompleteSecurityBody h3 {
        font: var(--cpd-font-body-md-semibold);
    }

    .mx_CompleteSecurityBody a:link,
    .mx_CompleteSecurityBody a:hover,
    .mx_CompleteSecurityBody a:visited {
        color: #0dbd8b;
        color: var(--accent-color, #0dbd8b);
        text-decoration: none;
    }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CountryDropdown .mx_Dropdown_input .mx_Dropdown_option {
    padding: 0 3px;
}

.mx_CountryDropdown .mx_Dropdown_arrow {
    padding-right: 3px;
}

.mx_CountryDropdown_shortOption {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    height: 100%;
}

.mx_CountryDropdown_option {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}
}
@layer app-web{

/*
Copyright 2026 Element Creations Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DefaultWelcome {
    text-align: center;
}

    .mx_DefaultWelcome .mx_DefaultWelcome_logo img {
        height: 48px;
        aspect-ratio: auto;
        display: block;
        margin: 0 auto;
    }

    .mx_DefaultWelcome h1 {
        margin: var(--cpd-space-4x) 0 var(--cpd-space-2x);
    }

    .mx_DefaultWelcome p {
        color: var(--cpd-color-text-secondary);
        margin-top: var(--cpd-space-2x);
    }

    .mx_DefaultWelcome .mx_DefaultWelcome_buttons {
        margin: var(--cpd-space-6x) 0 var(--cpd-space-1x);
        padding-bottom: var(--cpd-space-4x);
        border-bottom: 1px solid var(--cpd-color-separator-primary);
    }

        .mx_DefaultWelcome .mx_DefaultWelcome_buttons a {
            width: 380px;
            margin-bottom: var(--cpd-space-4x);
        }
    .mx_WelcomePage_registrationDisabled .mx_DefaultWelcome_buttons_register {
        display: none;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.
Copyright 2017 Vector Creations Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_InteractiveAuthEntryComponents .mx_InteractiveAuthEntryComponents_termsSubmit {
        margin-top: 20px;
        margin-bottom: 5px;
        width: 100%;
        -webkit-box-sizing: border-box;
                box-sizing: border-box; /* prevent overflowing */
    }

.mx_InteractiveAuthEntryComponents_msisdnWrapper {
    text-align: center;
}

.mx_InteractiveAuthEntryComponents_msisdnEntry {
    font-size: 200%;
    font-weight: bold;
    border: 1px solid #c7c7c7;
    border: 1px solid var(--strong-input-border-color, #c7c7c7);
    border-radius: 3px;
    width: 6em;
}

.mx_InteractiveAuthEntryComponents_msisdnEntry:focus {
    border: 1px solid #0dbd8b;
    border: 1px solid var(--accent-color, #0dbd8b);
}

.mx_InteractiveAuthEntryComponents_msisdnSubmit {
    margin-top: 4px;
    margin-bottom: 5px;
}

/* XXX: This should be a common button class */
.mx_InteractiveAuthEntryComponents_msisdnSubmit:disabled {
    background-color: var(--timeline-text-secondary-color);
    cursor: default;
}

.mx_InteractiveAuthEntryComponents_termsPolicy {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_InteractiveAuthEntryComponents_passwordSection {
    width: 300px;
}

.mx_InteractiveAuthEntryComponents_sso_buttons {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    margin-top: 20px;
}

    .mx_InteractiveAuthEntryComponents_sso_buttons .mx_AccessibleButton {
        margin-left: 5px;
    }
    /* "Resend" button/link */
    .mx_InteractiveAuthEntryComponents_emailWrapper .mx_AccessibleButton_kind_link_inline {
        /* We need this to be an inline-block so positioning works correctly */
        display: inline-block !important;
    }

        /* Spinner as end adornment of the "resend" button/link */
        .mx_InteractiveAuthEntryComponents_emailWrapper .mx_AccessibleButton_kind_link_inline .mx_Spinner {
            /* Spinners are usually block elements, but we need it as inline element */
            display: -webkit-inline-box !important;
            display: -ms-inline-flexbox !important;
            display: inline-flex !important;
            /* Spinners by default fill all available width, but we don't want that */
            width: auto !important;
            /* We need to center the spinner relative to the button/link */
            vertical-align: middle !important;
        }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AuthBody_language {
    width: 100%;
}

.mx_AuthBody_language .mx_Dropdown_input {
    border: none;
    font: var(--cpd-font-body-md-semibold);
    color: var(--timeline-text-color);
    width: auto;
}

.mx_AuthBody_language .mx_Dropdown_arrow {
    color: var(--timeline-text-color);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LoginWithQRSection p {
    margin-top: 0;
    margin-bottom: var(--cpd-space-4x);
}
    .mx_LoginWithQRSection .mx_AccessibleButton_kind_primary + p {
        color: var(--cpd-color-text-secondary);
        margin-top: var(--cpd-space-2x);
    }

.mx_LoginWithQRSection .mx_AccessibleButton svg {
    margin-right: var(--cpd-space-3x);
}

.mx_LoginWithQR_dialog .mx_Dialog {
    padding: var(--cpd-space-12x) var(--cpd-space-12x) var(--cpd-space-10x);
}

    .mx_LoginWithQR_dialog .mx_Dialog .mx_LoginWithQR {
        width: 500px;
    }

.mx_LoginWithQR {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    min-height: 500px;
    font: var(--cpd-font-body-md-regular);
}

    .mx_LoginWithQR h1 {
        font-size: 1.5rem;
        margin-bottom: 0;
    }

    .mx_LoginWithQR h2 {
        margin-top: var(--cpd-space-6x);
    }

    .mx_LoginWithQR .mx_LoginWithQR_qrWrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        padding: var(--cpd-space-7x) 0;
    }

        .mx_LoginWithQR .mx_LoginWithQR_qrWrapper .mx_Spinner {
            /* Match the size of the QR code to prevent jumps */
            height: 200px;
            width: 200px;
        }

    .mx_LoginWithQR .mx_LoginWithQR_confirmationDigits {
        text-align: center;
        margin: var(--cpd-space-12x) auto;
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 1.5rem;
        color: var(--timeline-text-color);
    }

    .mx_LoginWithQR .mx_LoginWithQR_confirmationAlert {
        border: 1px solid #6f7882;
        border: 1px solid var(--quaternary-content, #6f7882);
        border-radius: var(--cpd-space-2x);
        padding: var(--cpd-space-2x);
        line-height: 1.5em;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

        .mx_LoginWithQR .mx_LoginWithQR_confirmationAlert svg {
            height: 30px;
        }

    .mx_LoginWithQR .mx_LoginWithQR_separator {
        margin: 1em 0;
    }

    .mx_LoginWithQR ol {
        -webkit-padding-start: 0;
                padding-inline-start: 0;
        list-style: none;
    } /* list markers do not support the outlined number styling we need */

        .mx_LoginWithQR ol li {
            position: relative;
            padding-left: var(--cpd-space-7x);
            color: 1px solid var(--cpd-color-text-secondary);
            margin-bottom: var(--cpd-space-4x);
            line-height: 20px;
            text-align: left;
            text-align: initial;
        }

        /* Circled number list item marker */
        .mx_LoginWithQR ol li::before {
            content: counter(list-item);
            position: absolute;
            left: 0;
            display: inline-block;
            width: 20px;
            height: 20px;
            line-height: 20px;
            border-radius: 50%;
            border: 1px solid var(--cpd-color-text-secondary);
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            text-align: center;
        }

    .mx_LoginWithQR label[for="mx_LoginWithQR_checkCode"] {
        margin-top: var(--cpd-space-6x);
        color: var(--cpd-color-text-primary);
        margin-bottom: var(--cpd-space-1x);
    }

    .mx_LoginWithQR .mx_LoginWithQR_checkCode_input {
        margin-bottom: var(--cpd-space-1x);
        text-align: left;
        text-align: initial;
    }

        .mx_LoginWithQR .mx_LoginWithQR_checkCode_input input {
            /* Workaround for one of the input rules in _common.pcss being not specific enough */
            padding: 0;
            -webkit-padding-start: calc(40px / 2 - (1ch / 2));
                    padding-inline-start: calc(40px / 2 - (1ch / 2));
        }

    .mx_LoginWithQR .mx_LoginWithQR_heading {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        gap: var(--cpd-space-3x);
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

    .mx_LoginWithQR .mx_LoginWithQR_BackButton {
        height: var(--cpd-space-7x);
        border-radius: var(--cpd-space-7x);
        padding: var(--cpd-space-1x);
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        background-color: var(--cpd-color-bg-subtle-secondary);
    }
        .mx_LoginWithQR .mx_LoginWithQR_BackButton svg {
            height: 100%;
        }

    .mx_LoginWithQR .mx_LoginWithQR_breadcrumbs {
        font-size: 0.8125rem;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

    .mx_LoginWithQR .mx_LoginWithQR_main {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        color: var(--timeline-text-color);
        text-align: center;
    }

        .mx_LoginWithQR .mx_LoginWithQR_main p {
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            margin-bottom: var(--cpd-space-8x);
        }

    .mx_LoginWithQR .mx_LoginWithQR_buttons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: var(--cpd-space-4x);
        margin-top: var(--cpd-space-6x);
    }

        .mx_LoginWithQR .mx_LoginWithQR_buttons .mx_AccessibleButton {
            width: 300px;
            height: 48px;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
        }

    .mx_LoginWithQR .mx_QRCode {
        border-radius: var(--cpd-space-2x);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

    .mx_LoginWithQR .mx_LoginWithQR_spinner {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        height: 100%;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

progress.mx_PassphraseField_progress {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    width: 100%;
    border: 0;
    height: 4px;
    position: absolute;
    top: -10px;
    left: 0;

    border-radius: "2px";
}

    progress.mx_PassphraseField_progress::-moz-progress-bar {
        border-radius: "2px";
    }

    progress.mx_PassphraseField_progress::-webkit-progress-bar,
    progress.mx_PassphraseField_progress::-webkit-progress-value {
        border-radius: "2px";
    }

    progress.mx_PassphraseField_progress{
    color: #ff5b55;
    color: var(--alert, #ff5b55);
}
    progress.mx_PassphraseField_progress::-moz-progress-bar {
        background-color: #ff5b55;
        background-color: var(--alert, #ff5b55);
    }
    progress.mx_PassphraseField_progress::-webkit-progress-value {
        background-color: #ff5b55;
        background-color: var(--alert, #ff5b55);
    }
    progress.mx_PassphraseField_progress[value="2"],
    progress.mx_PassphraseField_progress[value="3"] {
        color: var(--cpd-color-text-decorative-5);
    }
        progress.mx_PassphraseField_progress[value="2"]::-moz-progress-bar, progress.mx_PassphraseField_progress[value="3"]::-moz-progress-bar {
        background-color: var(--cpd-color-text-decorative-5);
    }
        progress.mx_PassphraseField_progress[value="2"]::-webkit-progress-value, progress.mx_PassphraseField_progress[value="3"]::-webkit-progress-value {
        background-color: var(--cpd-color-text-decorative-5);
    }
    progress.mx_PassphraseField_progress[value="4"] {
        color: #0dbd8b;
        color: var(--accent-color, #0dbd8b);
    }
        progress.mx_PassphraseField_progress[value="4"]::-moz-progress-bar {
        background-color: #0dbd8b;
        background-color: var(--accent-color, #0dbd8b);
    }
        progress.mx_PassphraseField_progress[value="4"]::-webkit-progress-value {
        background-color: #0dbd8b;
        background-color: var(--accent-color, #0dbd8b);
    }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Welcome {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    background-color: var(--cpd-color-bg-canvas-default);
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: var(--cpd-space-11x) var(--cpd-space-12x) var(--cpd-space-4x);
}
        .mx_Welcome.mx_WelcomePage_registrationDisabled .mx_ButtonCreateAccount {
            display: none;
        }

.mx_Welcome .mx_AuthBody_language {
    width: 160px;
    margin: var(--cpd-space-1x) 0;
}

/* Invert image colours in dark mode. */
.cpd-theme-dark .mx_WelcomePage_logo {
    -webkit-filter: invert(1);
            filter: invert(1);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

button.mx_BaseAvatar {
    /* <button> is a form element and by default it uses the user agent (browser) styling.
       We want it to inherit the font-family and line-height from its parent.
     */
    font-family: inherit;
    line-height: inherit;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DecoratedRoomAvatar,
.mx_ExtraTile {
    position: relative;
    contain: content;
    line-height: 0;
}

    .mx_DecoratedRoomAvatar.mx_DecoratedRoomAvatar_cutout .mx_BaseAvatar, .mx_ExtraTile.mx_DecoratedRoomAvatar_cutout .mx_BaseAvatar {
        -webkit-mask-image: url(../../img/element-icons/roomlist/decorated-avatar-mask.376375b.svg);
                mask-image: url(../../img/element-icons/roomlist/decorated-avatar-mask.376375b.svg);
        -webkit-mask-position: center;
                mask-position: center;
        -webkit-mask-size: contain;
                mask-size: contain;
        -webkit-mask-repeat: no-repeat;
                mask-repeat: no-repeat;
    }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon, .mx_ExtraTile .mx_DecoratedRoomAvatar_icon {
        position: absolute;
        /* the following percentage based sizings are to match the scalable svg mask for the cutout */
        bottom: 6.25%; /* 2px for a 32x32 avatar */
        right: 6.25%;
        width: 25%; /* 8px for a 32x32 avatar */
        height: 25%;
        border-radius: 50%;
    }

        .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon::before,
        .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon svg,
        .mx_ExtraTile .mx_DecoratedRoomAvatar_icon::before,
        .mx_ExtraTile .mx_DecoratedRoomAvatar_icon svg {
            width: 100%;
            height: 100%;
            right: 0;
            position: absolute;
            border-radius: 8px;
        }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon_globe svg, .mx_ExtraTile .mx_DecoratedRoomAvatar_icon_globe svg {
        /* Oversize the icon to account for the dead space around the icon within the canvas */
        width: 120%;
        height: 120%;
        margin: -10%;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon_offline::before, .mx_ExtraTile .mx_DecoratedRoomAvatar_icon_offline::before {
        content: "";
        background-color: #e3e8f0;
    }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon_online::before, .mx_ExtraTile .mx_DecoratedRoomAvatar_icon_online::before {
        content: "";
        background-color: #0dbd8b;
        background-color: var(--accent-color, #0dbd8b);
    }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon_away::before, .mx_ExtraTile .mx_DecoratedRoomAvatar_icon_away::before {
        content: "";
        background-color: #d9b072;
    }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_icon_busy::before, .mx_ExtraTile .mx_DecoratedRoomAvatar_icon_busy::before {
        content: "";
        background-color: #ff5b55;
    }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_notificationBadge, .mx_ExtraTile .mx_DecoratedRoomAvatar_notificationBadge {
        position: absolute;
        top: 0;
        right: 0;
        height: 18px;
        width: 18px;
    }
}
@layer app-web{

/*
 * Copyright 2025 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_RoomAvatarView {
    --room-avatar-size: 32px;

    position: relative;

    /* Keep the container to the same size than the avatar */
    inline-size: 32px;
    inline-size: var(--room-avatar-size);
    block-size: 32px;
    block-size: var(--room-avatar-size);
}

    .mx_RoomAvatarView .mx_RoomAvatarView_RoomAvatar {
        -webkit-mask-position: center;
                mask-position: center;
        -webkit-mask-size: contain;
                mask-size: contain;
        -webkit-mask-repeat: no-repeat;
                mask-repeat: no-repeat;
        pointer-events: none;
    }

    .mx_RoomAvatarView .mx_RoomAvatarView_RoomAvatar_icon {
        -webkit-mask-image: url(../../img/element-icons/roomlist/room-avatar-view-icon-mask.dfdc337.svg);
                mask-image: url(../../img/element-icons/roomlist/room-avatar-view-icon-mask.dfdc337.svg);
    }

    .mx_RoomAvatarView .mx_RoomAvatarView_RoomAvatar_presence {
        -webkit-mask-image: url(../../img/element-icons/roomlist/room-avatar-view-presence-mask.e2f8b62.svg);
                mask-image: url(../../img/element-icons/roomlist/room-avatar-view-presence-mask.e2f8b62.svg);
    }

    .mx_RoomAvatarView .mx_RoomAvatarView_icon {
        position: absolute;

        /* Place half the icon inside the avatar */
        /* Avatar size - (icon size (16px) / 2) */
        left: calc((var(--room-avatar-size) - 8px));
        bottom: var(--cpd-space-0-5x);
    }

    .mx_RoomAvatarView .mx_RoomAvatarView_PresenceDecoration {
        position: absolute;

        /* Place half the icon inside the avatar */
        /* Avatar size - (icon size (8px) / 2) */
        left: calc((var(--room-avatar-size) - 4px));
        bottom: var(--cpd-space-0-5x);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_WidgetAvatar {
    /* !important override compound avatar */
    border-radius: 4px !important;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_WithPresenceIndicator {
    position: relative;
    contain: content;
    line-height: 0;
}

    .mx_WithPresenceIndicator .mx_WithPresenceIndicator_icon {
        position: absolute;
        right: 0px;
        bottom: 2px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_BetaCard {
    padding: var(--cpd-space-6x);
    background-color: var(--panels, var(--cpd-color-gray-600));
    border-radius: 8px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

    .mx_BetaCard .mx_BetaCard_columns {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-flow: wrap;
            flex-flow: wrap;
        gap: var(--cpd-space-5x);
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

        .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
        }

            .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_title {
                font-weight: var(--cpd-font-weight-semibold);
                font-size: 1.125rem;
                line-height: 1.375rem;
                color: var(--timeline-text-color);
                margin: var(--cpd-space-1x) 0 14px;

                display: -webkit-box;

                display: -ms-flexbox;

                display: flex;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                -webkit-column-gap: var(--cpd-space-3x);
                   -moz-column-gap: var(--cpd-space-3x);
                        column-gap: var(--cpd-space-3x);
            }

            .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_caption {
                font-size: 0.9375rem;
                line-height: 1.25rem;
            }

            .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_buttons {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -ms-flex-wrap: wrap-reverse;
                    flex-wrap: wrap-reverse;
                gap: var(--cpd-space-3x);
                margin: var(--cpd-space-5x) auto 0;
            }

                .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_buttons .mx_AccessibleButton {
                    padding: 7px 40px;
                    width: auto;
                    -webkit-box-flex: 1;
                        -ms-flex: 1;
                            flex: 1;
                    white-space: nowrap; /* text might overflow */
                }

                    .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_buttons .mx_AccessibleButton:nth-child(1) {
                        -webkit-box-ordinal-group: 3;
                            -ms-flex-order: 2;
                                order: 2; /* Place feedback button top and right */
                    }

            .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_refreshWarning {
                margin-top: var(--cpd-space-2x);
                font-size: 0.625rem;
                text-align: center;
            }

            .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_faq {
                margin-top: var(--cpd-space-5x);
                font: var(--cpd-font-body-xs-regular);
            }

                .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_faq > h4 {
                    margin: var(--cpd-space-3x) 0 0;
                }

                .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_description .mx_BetaCard_faq > p {
                    margin: 0;
                }

        .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_image_wrapper {
            margin: auto 0;
        }

            .mx_BetaCard .mx_BetaCard_columns .mx_BetaCard_columns_image_wrapper .mx_BetaCard_columns_image {
                width: 100%;
                max-width: 300px;
                -o-object-fit: contain;
                   object-fit: contain;
                height: 100%;
                border-radius: 4px;
            }
        .mx_BetaCard .mx_BetaCard_relatedSettings .mx_SettingsFlag {
            margin: var(--cpd-space-4x) 0 0;
            font-size: 0.9375rem;
            line-height: 1.5rem;
            color: var(--timeline-text-color);
        }

            .mx_BetaCard .mx_BetaCard_relatedSettings .mx_SettingsFlag .mx_SettingsFlag_microcopy {
                margin-top: var(--cpd-space-1x);
                font: var(--cpd-font-body-sm-regular);
            }

.mx_BetaCard_betaPill {
    background-color: var(--primary-color);
    padding: var(--cpd-space-1x) 10px;
    border-radius: 8px;
    text-transform: uppercase;
    font-size: 0.75rem;
    font-weight: var(--cpd-font-weight-semibold);
    line-height: 15px;
    color: #ffffff;
    display: inline-block;
    vertical-align: text-bottom;
    word-break: keep-all; /* avoid multiple lines on CJK language */
}

    .mx_BetaCard_betaPill.mx_AccessibleButton {
        cursor: pointer;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeviceContextMenu {
    max-width: 252px;
}

    .mx_DeviceContextMenu .mx_IconizedContextMenu_label {
        padding-left: 0 !important;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020-2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* A context menu that largely fits the | [icon]    [label] | format. */
.mx_IconizedContextMenu {
    min-width: 146px;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    /* override default ul styles */
    margin: 0;
    padding: 0;
}
        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList > * {
            padding-left: 20px;
            padding-right: 20px;
        }

        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_optionList_label {
            font-size: 0.9375rem;
            font-weight: var(--cpd-font-weight-semibold);
        }

        /* the notFirst class is for cases where the optionList might be under a header of sorts. */
        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList:nth-child(n + 2),
        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_optionList_notFirst {
            border-top: var(--cpd-border-width-1) solid var(--cpd-color-gray-400);
        }

        /* round the top corners of the top button for the hover effect to be bounded */
        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList:first-child .mx_IconizedContextMenu_item:first-child {
            border-radius: 8px 8px 0 0; /* radius matches .mx_ContextualMenu */
        }

        /* round the bottom corners of the bottom button for the hover effect to be bounded */
        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList:last-child .mx_IconizedContextMenu_item:last-child {
            border-radius: 0 0 8px 8px; /* radius matches .mx_ContextualMenu */
        }

        /* round all corners of the only button for the hover effect to be bounded */
        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList:first-child:last-child .mx_IconizedContextMenu_item:first-child:last-child {
            border-radius: 8px; /* radius matches .mx_ContextualMenu */
        }

        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item {
            /* pad the inside of the button so that the hover background is padded too */
            padding-top: 12px;
            padding-bottom: 12px;
            text-decoration: none;
            color: var(--timeline-text-color);
            font: var(--cpd-font-body-md-regular);

            /* Create a flexbox to more easily define the list items */
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

            .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item:hover,
            .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item:focus-visible {
                background-color: var(--cpd-color-bg-action-secondary-hovered);
            }

            .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item.mx_AccessibleButton_disabled {
                opacity: 0.5;
                cursor: not-allowed;
            }

            .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item span.mx_IconizedContextMenu_label {
                /* labels */
                width: 100%;
                -webkit-box-flex: 1;
                    -ms-flex: 1;
                        flex: 1;

                /* Ellipsize any text overflow */
                text-overflow: ellipsis;
                overflow: hidden;
                white-space: nowrap;
            }

            .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item svg {
                width: 16px;
                height: 16px;
                display: block;
                -ms-flex-negative: 0;
                    flex-shrink: 0;
            }

                .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item svg + .mx_IconizedContextMenu_label {
                    padding-left: 14px;
                }

            .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList .mx_IconizedContextMenu_item .mx_BetaCard_betaPill {
                margin-left: 16px;
            }
        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList_red .mx_IconizedContextMenu_item {
            color: #ff5b55 !important;
            color: var(--alert, #ff5b55) !important;
        }

        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList_red svg {
            color: var(--cpd-color-icon-critical-primary);
        }

    .mx_IconizedContextMenu .mx_IconizedContextMenu_option_red {
        color: #ff5b55 !important;
        color: var(--alert, #ff5b55) !important;
    }

        .mx_IconizedContextMenu .mx_IconizedContextMenu_option_red svg {
            color: #ff5b55;
            color: var(--alert, #ff5b55);
        }
        .mx_IconizedContextMenu .mx_IconizedContextMenu_active.mx_IconizedContextMenu_item,
        .mx_IconizedContextMenu .mx_IconizedContextMenu_active .mx_IconizedContextMenu_item {
            color: #0dbd8b !important;
            color: var(--accent-color, #0dbd8b) !important;
        }

            .mx_IconizedContextMenu .mx_IconizedContextMenu_active.mx_IconizedContextMenu_item svg, .mx_IconizedContextMenu .mx_IconizedContextMenu_active .mx_IconizedContextMenu_item svg {
                color: #0dbd8b;
                color: var(--accent-color, #0dbd8b);
            }
        .mx_IconizedContextMenu.mx_IconizedContextMenu_compact .mx_IconizedContextMenu_optionList > * {
            padding: 8px 16px 8px 12px;
        }

    .mx_IconizedContextMenu svg.mx_IconizedContextMenu_checked {
        margin-left: 16px;
        margin-right: -5px;
    }

    .mx_IconizedContextMenu .mx_IconizedContextMenu_sublabel {
        margin-left: 20px;
        color: #2e2f32;
        color: var(--tertiary-content, #2e2f32);
    }

.mx_IconizedContextMenu_item.mx_IconizedContextMenu_itemDestructive {
    color: #ff5b55 !important;
    color: var(--alert, #ff5b55) !important;
}
}
@layer app-web{

/*
Copyright 2020-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LegacyCallContextMenu_item {
    width: 205px;
    height: 40px;
    padding-left: 16px;
    line-height: 40px;
    vertical-align: center;
}
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_AddExistingToSpaceDialog_wrapper .mx_Dialog {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }
    .mx_AddExistingToSpace .mx_SearchBox {
        /* To match the space around the title */
        margin: 0 0 15px 0;
        -webkit-box-flex: 0;
            -ms-flex-positive: 0;
                flex-grow: 0;
    }

    .mx_AddExistingToSpace .mx_AddExistingToSpace_content {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
    }

    .mx_AddExistingToSpace .mx_AddExistingToSpace_noResults {
        display: block;
        margin-top: 24px;
    }

    .mx_AddExistingToSpace .mx_AddExistingToSpace_section {
        margin-right: 12px;
    }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_section ul {
            list-style: none;
            padding-left: 0;
        }

        /* provides space for scrollbar so that checkbox and scrollbar do not collide */
        .mx_AddExistingToSpace .mx_AddExistingToSpace_section:not(:first-child) {
            margin-top: 24px;
        }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_section > h3 {
            margin: 0;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            font-size: 0.75rem;
            font-weight: var(--cpd-font-weight-semibold);
            line-height: 0.9375rem;
        }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_section .mx_AccessibleButton_kind_link {
            font-size: 0.75rem;
            line-height: 0.9375rem;
            margin-top: 8px;
        }

    .mx_AddExistingToSpace .mx_AddExistingToSpace_footer {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-top: 20px;
    }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_footer > span {
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }

            .mx_AddExistingToSpace .mx_AddExistingToSpace_footer > span .mx_ProgressBar {
                height: 8px;
                width: 100%;

                border-radius: 8px;
            }

                .mx_AddExistingToSpace .mx_AddExistingToSpace_footer > span .mx_ProgressBar::-moz-progress-bar {
        border-radius: 8px;
    }

                .mx_AddExistingToSpace .mx_AddExistingToSpace_footer > span .mx_ProgressBar::-webkit-progress-bar,
    .mx_AddExistingToSpace .mx_AddExistingToSpace_footer > span .mx_ProgressBar::-webkit-progress-value {
        border-radius: 8px;
    }

            .mx_AddExistingToSpace .mx_AddExistingToSpace_footer > span .mx_AddExistingToSpaceDialog_progressText {
                margin-top: 8px;
                font-size: 0.9375rem;
                line-height: 1.5rem;
                color: var(--timeline-text-color);
            }

            .mx_AddExistingToSpace .mx_AddExistingToSpace_footer > span > * {
                vertical-align: middle;
            }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AddExistingToSpace_error {
            padding-left: 12px;
        }

            .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AddExistingToSpace_error > img {
                -ms-flex-item-align: center;
                    align-self: center;
            }

            .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AddExistingToSpace_error .mx_AddExistingToSpace_errorHeading {
                font-weight: var(--cpd-font-weight-semibold);
                font-size: 0.9375rem;
                line-height: 1.125rem;
                color: #ff5b55;
                color: var(--alert, #ff5b55);
            }

            .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AddExistingToSpace_error .mx_AddExistingToSpace_errorCaption {
                margin-top: 4px;
                font-size: 0.75rem;
                line-height: 0.9375rem;
                color: var(--timeline-text-color);
            }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AccessibleButton {
            display: inline-block;
            -ms-flex-item-align: center;
                align-self: center;
        }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AccessibleButton_kind_primary {
            padding: 8px 36px;
        }

        .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AddExistingToSpaceDialog_retryButton svg {
            color: var(--timeline-text-color);
            width: 18px;
            height: 18px;
            margin-right: var(--cpd-space-2x);
        }

.mx_AddExistingToSpaceDialog {
    width: 480px;
    color: var(--timeline-text-color);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    min-height: 0;
    height: 80vh;
}

    .mx_AddExistingToSpaceDialog .mx_AddExistingToSpace {
        display: contents;
    }

.mx_SubspaceSelector {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

    .mx_SubspaceSelector .mx_BaseAvatar {
        margin: auto 16px auto 5px;
    }
        .mx_SubspaceSelector > div > h1 {
            font-weight: var(--cpd-font-weight-semibold);
            font-size: 1.125rem;
            line-height: 1.375rem;
            margin: 0;
        }

    .mx_SubspaceSelector .mx_Dropdown_input {
        border: none;
    }

        .mx_SubspaceSelector .mx_Dropdown_input > .mx_Dropdown_option {
            padding-left: 0;
            -webkit-box-flex: initial;
                -ms-flex: initial;
                    flex: initial;
            height: auto;
            height: initial;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            font-size: 0.9375rem;
            line-height: 1.5rem;
        }

            .mx_SubspaceSelector .mx_Dropdown_input > .mx_Dropdown_option .mx_BaseAvatar {
                display: none;
            }

        .mx_SubspaceSelector .mx_Dropdown_input .mx_SubspaceSelector_dropdownOptionActive {
            color: #0dbd8b;
            color: var(--accent-color, #0dbd8b);
            padding-right: 24px;
            position: relative;
        }

            .mx_SubspaceSelector .mx_Dropdown_input .mx_SubspaceSelector_dropdownOptionActive svg {
                width: 20px;
                height: 20px;
                right: 0;
                position: absolute;
                color: #0dbd8b;
                color: var(--accent-color, #0dbd8b);
            }

    .mx_SubspaceSelector .mx_SubspaceSelector_onlySpace {
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        font-size: 0.9375rem;
        line-height: 1.5rem;
    }

.mx_AddExistingToSpace_entry {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-top: 12px;
}

    .mx_AddExistingToSpace_entry form {
        /* Align checkboxes. */
        margin-top: auto;
        margin-bottom: auto;
    }

    /* we can't target .mx_BaseAvatar here as it'll break the decorated avatar styling */
    .mx_AddExistingToSpace_entry .mx_DecoratedRoomAvatar {
        margin-right: 12px;
    }

    .mx_AddExistingToSpace_entry .mx_AddExistingToSpace_entry_name {
        font-size: 0.9375rem;
        line-height: 30px;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
        margin-right: 12px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AnalyticsLearnMoreDialog {
    max-width: 500px;
}
    .mx_AnalyticsLearnMoreDialog .mx_AnalyticsLearnMore_image_holder {
        background-image: url(../../img/element-shiny.f5a5e6e.svg);
        background-repeat: no-repeat;
        background-position: center top;
        height: 112px;
        padding: 20px 0px;
    }

    .mx_AnalyticsLearnMoreDialog .mx_Dialog_content {
        margin-bottom: 0px;
    }

    .mx_AnalyticsLearnMoreDialog .mx_AnalyticsLearnMore_copy {
        border-bottom: 1px solid #e7e7e7;
        padding-bottom: 20px;
        margin-bottom: 20px;
    }

    .mx_AnalyticsLearnMoreDialog a {
        color: #0dbd8b;
        color: var(--accent-color, #0dbd8b);
        text-decoration: none;
    }

    .mx_AnalyticsLearnMoreDialog .mx_AnalyticsLearnMore_bullets {
        padding-left: 0px;
    }

    .mx_AnalyticsLearnMoreDialog .mx_AnalyticsLearnMore_bullets li {
        list-style-type: none;
        padding: 2px 0 0 32px;
        margin-bottom: 20px;
        vertical-align: middle;
        position: relative;
    }

        .mx_AnalyticsLearnMoreDialog .mx_AnalyticsLearnMore_bullets li svg {
            position: absolute;
            width: 26px;
            height: 26px;
            left: 0;
            top: 0;
            color: #0dbd8b;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
        .mx_BugReportDialog .mx_BugReportDialog_download .mx_AccessibleButton_kind_link {
            margin-right: 18px; /* Space between "Downloading logs..." */
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2016 Aviral Dasgupta

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ChangelogDialog_content {
    max-height: 300px;
    overflow: auto;
}

.mx_ChangelogDialog_li {
    padding: 0.2em;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* -------------------------------------------------------------------------------- */
/* DEV NOTE: This stylesheet covers dialogs listed by the compound, including */
/* over multiple React components. The actual inner contents of the dialog should */
/* be in their respective stylesheets. */
/* -------------------------------------------------------------------------------- */

/* Override legacy/default styles for dialogs */
.mx_Dialog_wrapper.mx_CompoundDialog .mx_Dialog {
    padding: 0; /* we'll manage it ourselves */
    color: var(--timeline-text-color);
}
    .mx_CompoundDialog .mx_Dialog {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

    .mx_CompoundDialog .mx_CompoundDialog_header {
        padding: 32px 32px 16px 32px;
    }

        .mx_CompoundDialog .mx_CompoundDialog_header h1 {
            display: inline-block;
            font-weight: var(--cpd-font-weight-semibold);
            font-size: 1.5rem;
            margin: 0; /* managed by header class */
        }

    .mx_CompoundDialog .mx_CompoundDialog_cancelButton {
        width: 20px;
        height: 20px;
        padding: var(--cpd-space-1x);
        border-radius: 14px;
        background-color: var(--cpd-color-bg-subtle-secondary);
        /* Align with corner radius of dialog */
    }
        .mx_CompoundDialog .mx_CompoundDialog_cancelButton:hover {
        background-color: var(--cpd-color-bg-subtle-primary);
    }
        .mx_CompoundDialog .mx_CompoundDialog_cancelButton svg {
        width: inherit;
        height: inherit;
        vertical-align: top;
        color: var(--cpd-color-icon-secondary);
    }
        .mx_CompoundDialog .mx_CompoundDialog_cancelButton{
        position: absolute;
        top: var(--cpd-space-4x);
        right: var(--cpd-space-4x);
}

    .mx_CompoundDialog .mx_CompoundDialog_form {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        min-height: 0;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
    }

    .mx_CompoundDialog .mx_CompoundDialog_content {
        overflow: auto;
        padding: 8px 32px;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
    }

    .mx_CompoundDialog .mx_CompoundDialog_footer {
        padding: 20px 32px;

        display: -webkit-box;

        display: -ms-flexbox;

        display: flex;
        gap: var(--cpd-space-6x);
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
    }

        .mx_CompoundDialog .mx_CompoundDialog_footer .mx_AccessibleButton .mx_Spinner {
            margin-right: var(--cpd-space-2x);
        }

.mx_ScrollableBaseDialog {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;

    width: 544px; /* fixed */
    height: 516px; /* fixed */
    max-width: 100%;
    min-height: 0;
    max-height: 80%;
}

    .mx_ScrollableBaseDialog .mx_CompoundDialog_footer {
        -webkit-box-shadow: 0px -4px 4px rgb(0, 0, 0, 0.05);
                box-shadow: 0px -4px 4px rgb(0, 0, 0, 0.05); /* hardcoded colour for both themes */
        z-index: 1; /* needed to make footer & shadow appear above dialog content */
    }
}
@layer app-web{

/*
Copyright 2025 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ConfirmKeyStorageOffDialog .mx_Dialog_border {
        width: 600px;
    }

    .mx_ConfirmKeyStorageOffDialog .mx_EncryptionCard {
        text-align: center;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ConfirmSpaceUserActionDialog_wrapper .mx_Dialog {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        padding: 24px 32px;
    }

.mx_ConfirmSpaceUserActionDialog {
    width: 440px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    height: 520px;
}

    .mx_ConfirmSpaceUserActionDialog .mx_Dialog_content {
        margin: 12px 0;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        overflow-y: auto;
    }

    .mx_ConfirmSpaceUserActionDialog .mx_ConfirmUserActionDialog_reasonField {
        margin-bottom: 12px;
    }

    .mx_ConfirmSpaceUserActionDialog .mx_ConfirmSpaceUserActionDialog_warning {
        border-radius: 8px;
        padding: 12px 8px;
        background-color: var(--roomlist-background-color);

        font-size: 0.75rem;
        line-height: 0.9375rem;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

        .mx_ConfirmSpaceUserActionDialog .mx_ConfirmSpaceUserActionDialog_warning svg {
            height: 16px;
            width: 16px;
            vertical-align: -4px;
            margin-right: var(--cpd-space-1-5x);
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 Vector Creations Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ConfirmUserActionDialog .mx_Dialog_content .mx_ConfirmUserActionDialog_user {
    min-height: 48px;
    margin-bottom: 24px;
}

.mx_ConfirmUserActionDialog_avatar {
    float: left;
    margin-right: 20px;
}

.mx_ConfirmUserActionDialog_name {
    padding-top: 2px;
    font-size: 1.125rem;
}

.mx_ConfirmUserActionDialog_userId {
    font-size: 0.8125rem;
}

.mx_ConfirmUserActionDialog_reasonField {
    font: var(--cpd-font-body-md-regular);
    color: var(--timeline-text-color);
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 Michael Telatynski <7t3chguy@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CreateRoomDialog_details {
    margin-top: 15px;
}

    .mx_CreateRoomDialog_details .mx_CreateRoomDialog_details_summary {
        list-style: none;
        font-weight: var(--cpd-font-weight-semibold);
        cursor: pointer;
        color: var(--cpd-color-text-primary);
        text-decoration: underline;
        width: -webkit-fit-content;
        width: -moz-fit-content;
        width: fit-content;
    }

        /* list-style doesn't do it for webkit */
        .mx_CreateRoomDialog_details .mx_CreateRoomDialog_details_summary::-webkit-details-marker {
            display: none;
        }

        .mx_CreateRoomDialog_details .mx_CreateRoomDialog_details_summary:not(:focus-visible) {
            outline: none;
        }

    .mx_CreateRoomDialog_details > div {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: start;
            -ms-flex-align: start;
                align-items: flex-start;
        margin: 5px 0;
    }

        .mx_CreateRoomDialog_details > div input[type="checkbox"] {
            margin-right: 10px;
        }

.mx_CreateRoomDialog_label {
    text-align: left;
    padding-bottom: 12px;
}

.mx_CreateRoomDialog_input_container {
    padding-right: 20px;
}

.mx_CreateRoomDialog_input {
    font-size: 0.9375rem;
    border-radius: 3px;
    border: 1px solid #e7e7e7;
    padding: 9px;
    color: var(--timeline-text-color);
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    width: 100%;
}

.mx_CreateRoomDialog_aliasContainer {
    /* needed to make the alias field only grow as wide as needed as opposed to full width */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}
    .mx_CreateRoomDialog.mx_Dialog_fixedWidth {
        width: 450px;
    }

    .mx_CreateRoomDialog .mx_Dialog_content {
        margin-bottom: 40px;
    }

    .mx_CreateRoomDialog p,
    .mx_CreateRoomDialog .mx_Field_input label {
        color: #61708b;
    }

    .mx_CreateRoomDialog .mx_SettingsFlag {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

    .mx_CreateRoomDialog .mx_SettingsFlag_label {
        -webkit-box-flex: 1;
            -ms-flex: 1 1 0px;
                flex: 1 1 0;
        min-width: 0;
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_CreateRoomDialog .mx_ToggleSwitch {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        margin-left: 30px;
    }

    .mx_CreateRoomDialog .mx_Dialog_content > .mx_SettingsFlag {
        margin-top: 24px;
    }

    .mx_CreateRoomDialog .mx_Field {
        margin: 0;
    }

    .mx_CreateRoomDialog form {
        gap: var(--cpd-space-4x);
    }

    .mx_CreateRoomDialog p {
        margin: 0 85px 0 0;
        font-size: 0.75rem;
    }

.mx_CreateRoomDialog_labelledCheckbox {
    color: #61708b;
    margin-top: var(--cpd-space-6x);
}
}
@layer app-web{

/*
 * Copyright 2026 Element Creations Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_CreateSectionDialog {
    color: var(--cpd-color-text-primary);
}

    .mx_CreateSectionDialog .mx_CreateSectionDialog_title {
        text-overflow: ellipsis;
        overflow: hidden;
        white-space: nowrap;
    }

    .mx_CreateSectionDialog.mx_Dialog_fixedWidth {
        /* 576px coming from Figma and remove external padding */
        max-width: calc(576px - var(--cpd-space-20x));
    }

    .mx_CreateSectionDialog .mx_Dialog_header {
        margin-bottom: var(--cpd-space-6x);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_CreateSubspaceDialog_wrapper .mx_Dialog {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

.mx_CreateSubspaceDialog {
    width: 480px;
    color: var(--timeline-text-color);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    min-height: 0;
}

    .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_content {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
    }

        .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_content .mx_CreateSubspaceDialog_betaNotice {
            padding: 12px 16px;
            border-radius: 8px;
            background-color: var(--roomlist-background-color);
        }

            .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_content .mx_CreateSubspaceDialog_betaNotice .mx_BetaCard_betaPill {
                margin-right: 8px;
                vertical-align: middle;
            }

        .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_content .mx_JoinRuleDropdown + p {
            color: #61708b;
            font-size: 0.75rem;
        }

    .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_footer {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-top: 20px;
    }

        .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_footer .mx_CreateSubspaceDialog_footer_prompt {
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }

            .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_footer .mx_CreateSubspaceDialog_footer_prompt > * {
                vertical-align: middle;
            }

        .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_footer .mx_AccessibleButton {
            display: inline-block;
            -ms-flex-item-align: center;
                align-self: center;
        }

        .mx_CreateSubspaceDialog .mx_CreateSubspaceDialog_footer .mx_AccessibleButton_kind_primary {
            margin-left: 16px;
            padding: 8px 36px;
        }
}
@layer app-web{

/*
 * Copyright 2025 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */
    .mx_Crypto table {
        margin: var(--cpd-space-4x) 0;
        text-align: left;
        border-spacing: var(--cpd-space-2x) 0;
    }

        .mx_Crypto table thead {
            font: var(--cpd-font-heading-sm-semibold);
        }
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DeactivateAccountDialog .mx_Dialog_content {
    margin-bottom: 30px;
}

.mx_DeactivateAccountDialog .mx_DeactivateAccountDialog_input_section .mx_Field {
    width: 300px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 Michael Telatynski <7t3chguy@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_DevtoolsDialog_wrapper .mx_Dialog {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

    .mx_DevtoolsDialog_wrapper .mx_Dialog_fixedWidth {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        min-height: 0;
        max-height: 100%;
    }

        .mx_DevtoolsDialog_wrapper .mx_Dialog_fixedWidth .mx_Dialog_buttons button {
            margin-bottom: 0;
        }

    .mx_DevtoolsDialog_wrapper .mx_DevTools_toggleForm {
        gap: var(--cpd-space-2x);
    }

.mx_DevTools_toolHeading {
    color: var(--cpd-color-text-secondary);
    font: var(--cpd-font-heading-sm-semibold);
}

.mx_DevTools_content {
    overflow-y: auto;
    /* Give room for focus outlines */
    -webkit-padding-start: var(--cpd-space-0-5x);
            padding-inline-start: var(--cpd-space-0-5x);
    -webkit-padding-after: var(--cpd-space-0-5x);
            padding-block-end: var(--cpd-space-0-5x);
}

.mx_DevTools_RoomStateExplorer_query {
    margin-bottom: 10px;
}

.mx_DevTools_button {
    font-family: monospace !important;
    margin-bottom: 8px !important;
}

.mx_DevTools_RoomStateExplorer_button_hasSpaces {
    text-decoration: underline;
}

.mx_DevTools_button.mx_DevTools_RoomStateExplorer_button_emptyString {
    font-style: italic;
}

.mx_DevTools_label_left {
    float: left;
}

.mx_DevTools_label_right {
    float: right;
}

.mx_DevTools_label_bottom {
    clear: both;
    border-bottom: 1px solid #e5e5e5;
}

.mx_DevTools_inputRow {
    display: table-row;
}

.mx_DevTools_inputLabelCell {
    display: table-cell;
    font-weight: bold;
    padding-right: 24px;
}

.mx_DevTools_textarea {
    font-size: 0.75rem;
    max-width: 684px;
    min-height: 250px;
    padding: 10px;
}

.mx_DevTools_eventTypeStateKeyGroup {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
}

.mx_DevTools_content .mx_Field_input:first-of-type {
    margin-right: 42px;
}

.mx_DevTools_VerificationRequest {
    border: 1px solid #cccccc;
    border-radius: 3px;
    padding: 1px 5px;
    margin-bottom: 6px;
    font-family: "Fira Code", "", "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji";
    font-family: var(--font-family-monospace, "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji");
}

    .mx_DevTools_VerificationRequest dl {
        display: grid;
        grid-template-columns: -webkit-max-content auto;
        grid-template-columns: max-content auto;
        margin: 0;
    }

    .mx_DevTools_VerificationRequest dd {
        grid-column-start: 2;
    }

    .mx_DevTools_VerificationRequest dd:empty {
        color: #666666;
    }
        .mx_DevTools_VerificationRequest dd:empty::after {
            content: "(empty)";
        }

    .mx_DevTools_VerificationRequest dt {
        font-weight: bold;
        grid-column-start: 1;
    }

    .mx_DevTools_VerificationRequest dt::after {
        content: ":";
    }
    .mx_DevTools_SettingsExplorer table {
        width: 100%;
        table-layout: fixed;
        border-collapse: collapse;
    }

        .mx_DevTools_SettingsExplorer table th {
            /* Colour choice: first one autocomplete gave me. */
            border-bottom: 1px solid #0dbd8b;
            border-bottom: 1px solid var(--accent-color, #0dbd8b);
            text-align: left;
        }

        .mx_DevTools_SettingsExplorer table td,
        .mx_DevTools_SettingsExplorer table th {
            width: 360px; /* "feels right" number */

            text-overflow: ellipsis;
            overflow: hidden;
            white-space: nowrap;
        }

        .mx_DevTools_SettingsExplorer table td + td,
        .mx_DevTools_SettingsExplorer table th + th {
            width: auto;
        }

        .mx_DevTools_SettingsExplorer table tr:hover {
            /* Colour choice: first one autocomplete gave me. */
            background-color: #0dbd8b;
            background-color: var(--accent-color, #0dbd8b);
        }

    .mx_DevTools_SettingsExplorer .mx_DevTools_SettingsExplorer_mutable {
        background-color: #0dbd8b;
        background-color: var(--accent-color, #0dbd8b);
    }

    .mx_DevTools_SettingsExplorer .mx_DevTools_SettingsExplorer_immutable {
        background-color: #ff5b55;
        background-color: var(--alert, #ff5b55);
    }

    .mx_DevTools_SettingsExplorer .mx_DevTools_SettingsExplorer_edit {
        float: right;
        margin-right: 16px;
    }

    .mx_DevTools_SettingsExplorer .mx_DevTools_SettingsExplorer_warning {
        border: 2px solid #ff5b55;
        border: 2px solid var(--alert, #ff5b55);
        border-radius: 4px;
        padding: 4px;
        margin-bottom: 8px;
    }

.mx_DevTools_SettingsExplorer_setting {
    /* override default link button color */
    /* as it is the same as the background highlight */
    /* used on focus */
    color: #0086e6 !important;
    color: var(--links, #0086e6) !important;
}
    .mx_DevTools_sticky_explorer table {
        width: 100%;
        border-collapse: collapse;
        table-layout: fixed;
        margin-top: var(--cpd-space-3x);
    }

        .mx_DevTools_sticky_explorer table th {
            text-align: left;
            padding: var(--cpd-space-2x) var(--cpd-space-3x);
        }

        .mx_DevTools_sticky_explorer table th#user_header {
            width: 35%;
        }
        .mx_DevTools_sticky_explorer table th#sticky_key_header {
            width: 50%;
        }
        .mx_DevTools_sticky_explorer table th#expires_in_header {
            width: 15%;
        }

        .mx_DevTools_sticky_explorer table tr {
            cursor: pointer;
            border-bottom: var(--cpd-border-width-1) solid var(--cpd-color-border-interactive-primary);
            background: transparent;
        }

        .mx_DevTools_sticky_explorer table tr:hover {
            color: var(--cpd-color-text-secondary);
            background: var(--cpd-color-bg-action-secondary-hovered);
        }

        .mx_DevTools_sticky_explorer table tr:focus-visible {
            outline: var(--cpd-border-width-2) solid var(--cpd-color-border-focused);
        }

        .mx_DevTools_sticky_explorer table td {
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            padding: var(--cpd-space-2x) var(--cpd-space-3x);
        }

        .mx_DevTools_sticky_explorer table td.remaining_time_column {
            text-align: right;
        }
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ExportDialog .mx_ExportDialog_subheading {
        font-size: 1rem;
        display: block;
        font-family: "Nunito", "", "Apple Color Emoji", "Segoe UI Emoji", "Arial", "Helvetica", sans-serif,
    "Noto Color Emoji";
        font-family: var(--font-family, "Nunito", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Arial", "Helvetica", sans-serif,
    "Noto Color Emoji");
        font-weight: var(--cpd-font-weight-semibold);
        color: var(--timeline-text-color);
        margin-top: 18px;
        margin-bottom: 12px;
    }
        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_ExportDialog_options {
            pointer-events: none;
        }

        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_Field_select::before {
            display: none;
        }

        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_StyledRadioButton input[type="radio"]:checked + div > div {
            background: var(--timeline-text-secondary-color);
        }

        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_StyledRadioButton input[type="radio"]:checked + div {
            border-color: currentcolor;
            border-color: initial;
        }

        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_Field_valid.mx_Field label,
        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_Field_valid.mx_Field:focus-within label {
            color: inherit;
        }

        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_Field_valid.mx_Field,
        .mx_ExportDialog.mx_ExportDialog_Exporting .mx_Field_valid.mx_Field:focus-within {
            border-color: #e7e7e7;
        }
        .mx_ExportDialog .mx_ExportDialog_progress .mx_Dialog_buttons {
            margin-top: 0;
            margin-top: initial;
            margin-left: 18px;
        }

        .mx_ExportDialog .mx_ExportDialog_progress .mx_Spinner {
            width: auto;
            width: initial;
            height: auto;
            height: initial;
            -webkit-box-flex: initial;
                -ms-flex: initial;
                    flex: initial;
            margin-right: 10px;
        }

        .mx_ExportDialog .mx_ExportDialog_progress{

        display: -webkit-box;

        display: -ms-flexbox;

        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
}

    .mx_ExportDialog .mx_StyledRadioButton > .mx_StyledRadioButton_content {
        margin-top: 5px;
        margin-bottom: 5px;
    }

    .mx_ExportDialog .mx_Field {
        width: 256px;
    }

    .mx_ExportDialog .mx_Field_postfix {
        padding: 9px 10px;
    }

.mx_ExportDialog_attachments-checkbox {
    margin-top: var(--cpd-space-4x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_FeedbackDialog hr {
        margin: 24px 0;
        border-color: #e7e7e7;
    }

    .mx_FeedbackDialog .mx_Dialog_content {
        margin-bottom: 24px;
    }

        .mx_FeedbackDialog .mx_Dialog_content > h2 {
            margin-bottom: 32px;
        }

    .mx_FeedbackDialog .mx_FeedbackDialog_section {
        position: relative;
        padding: 12px 52px 12px 68px;
        border-radius: 8px;
        border: 1px solid #6f7882;
        border: 1px solid var(--quinary-content, #6f7882);
    }

        .mx_FeedbackDialog .mx_FeedbackDialog_section + .mx_FeedbackDialog_section {
            margin-top: 16px;
        }

        .mx_FeedbackDialog .mx_FeedbackDialog_section > h3 {
            margin-top: 0;
            margin-bottom: 8px;
            font-weight: var(--cpd-font-weight-semibold);
            font-size: 1.125rem;
            line-height: 1.375rem;
        }

        .mx_FeedbackDialog .mx_FeedbackDialog_section > p {
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            font-size: 0.9375rem;
            line-height: 1.5rem;
            margin: 8px 0 0;
        }

        .mx_FeedbackDialog .mx_FeedbackDialog_section .mx_FeedbackDialog_section_microcopy {
            font-size: 0.75rem;
            line-height: 0.9375rem;
        }

        .mx_FeedbackDialog .mx_FeedbackDialog_section a,
        .mx_FeedbackDialog .mx_FeedbackDialog_section .mx_AccessibleButton_kind_link {
            text-decoration: underline;
        }

        .mx_FeedbackDialog .mx_FeedbackDialog_section > svg {
            position: absolute;
            left: 16px;
            top: 12px;
            padding: var(--cpd-space-2x);
            width: 24px;
            height: 24px;
            background-color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
            color: #ffffff;
            border-radius: 8px;
        }
        .mx_FeedbackDialog .mx_FeedbackDialog_rateApp .mx_StyledRadioButton {
            display: -webkit-inline-box;
            display: -ms-inline-flexbox;
            display: inline-flex;
            font-size: 20px;
            -webkit-transition:
                font-size 1s,
                border 0.5s;
            transition:
                font-size 1s,
                border 0.5s;
            border-radius: 50%;
            border: 2px solid transparent;
            margin-top: 12px;
            margin-bottom: 24px;
            vertical-align: top;
            cursor: pointer;
        }

            .mx_FeedbackDialog .mx_FeedbackDialog_rateApp .mx_StyledRadioButton input[type="radio"] + div {
                display: none;
            }

            .mx_FeedbackDialog .mx_FeedbackDialog_rateApp .mx_StyledRadioButton .mx_StyledRadioButton_content {
                background: var(--icon-button-color, var(--cpd-color-icon-tertiary));
                width: 40px;
                height: 40px;
                text-align: center;
                line-height: 40px;
                border-radius: 20px;
                margin: 5px;
            }

            .mx_FeedbackDialog .mx_FeedbackDialog_rateApp .mx_StyledRadioButton .mx_StyledRadioButton_spacer {
                display: none;
            }

            .mx_FeedbackDialog .mx_FeedbackDialog_rateApp .mx_StyledRadioButton + .mx_StyledRadioButton {
                margin-left: 16px;
            }

        .mx_FeedbackDialog .mx_FeedbackDialog_rateApp .mx_StyledRadioButton_checked {
            font-size: 24px;
            border-color: var(--cpd-color-bg-action-primary-rest);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Robin Townsend <robin@robin.town>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ForwardDialog {
    width: 520px;
    color: var(--timeline-text-color);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    min-height: 0;
    height: 80vh;
}

    .mx_ForwardDialog > h3 {
        margin: 0 0 6px;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        font-size: 0.75rem;
        font-weight: var(--cpd-font-weight-semibold);
        line-height: 0.9375rem;
    }

    .mx_ForwardDialog > .mx_ForwardDialog_preview {
        max-height: 30%;
        -ms-flex-negative: 0;
            flex-shrink: 0;
        overflow-y: auto;

        /* When forwarding messages from encrypted rooms, EventTile will complain */
        /* that our preview is unencrypted, which doesn't actually matter */
        /* We also hide download links to not encourage users to try interacting */
        /* The file tile's inline download and open actions go for the same reason */
    }

        .mx_ForwardDialog > .mx_ForwardDialog_preview div {
            pointer-events: none;
        }
        .mx_ForwardDialog > .mx_ForwardDialog_preview .mx_ReadReceiptGroup,
        .mx_ForwardDialog > .mx_ForwardDialog_preview .mx_E2ePadlock,
        .mx_ForwardDialog > .mx_ForwardDialog_preview .mx_MFileBody [data-type="download"],
        .mx_ForwardDialog > .mx_ForwardDialog_preview .mx_MFileBody [data-type="actions"] {
            display: none;
        }

    .mx_ForwardDialog > hr {
        width: 100%;
        border: none;
        border-top: 1px solid #e7e7e7;
        margin: 12px 0;
    }

    .mx_ForwardDialog > .mx_ForwardList {
        display: contents;
    }

        .mx_ForwardDialog > .mx_ForwardList .mx_SearchBox {
            /* To match the space around the title */
            margin: 0 0 15px 0;
            -webkit-box-flex: 0;
                -ms-flex-positive: 0;
                    flex-grow: 0;
        }

            .mx_ForwardDialog > .mx_ForwardList .mx_SearchBox:not(:focus-within) + .mx_ForwardList_content {
                /* Inhibit the styling if focus is not within the input which handles keyboard accessibility */
                --mx_ForwardList_entry_selectedBgColor: transparent;
            }

        .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_content {
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
        }

        .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_noResults {
            display: block;
            margin-top: 24px;
        }
            .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results:not(:first-child) {
                margin-top: 24px;
            }

            .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_resultsList {
                padding-right: 8px;
            }

            .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-pack: justify;
                    -ms-flex-pack: justify;
                        justify-content: space-between;
                height: 32px;
                padding: 6px;
                border-radius: 8px;
            }

                .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry:hover,
                .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry.mx_ForwardList_entry_active {
                    background-color: var(--mx_ForwardList_entry_selectedBgColor, var(--sidebar-color));
                }

                .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_roomButton {
                    display: -webkit-box;
                    display: -ms-flexbox;
                    display: flex;
                    margin-right: 12px;
                    min-width: 0;
                }

                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_roomButton .mx_DecoratedRoomAvatar {
                        margin-right: 12px;
                    }

                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_roomButton .mx_ForwardList_entry_name,
                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_roomButton .mx_ForwardList_entry_detail {
                        line-height: 30px;
                        overflow: hidden;
                        white-space: nowrap;
                        text-overflow: ellipsis;
                    }

                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_roomButton .mx_ForwardList_entry_name {
                        font-size: 0.9375rem;
                    }

                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_roomButton .mx_ForwardList_entry_detail {
                        font-size: 0.75rem;
                        margin-left: 8px;
                        color: #2e2f32;
                        color: var(--tertiary-content, #2e2f32);
                    }

                .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_sendButton {
                    position: relative;
                    margin-left: 12px;
                }

                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_sendButton:not(.mx_ForwardList_canSend) .mx_ForwardList_sendLabel {
                        /* Hide the "Send" label while preserving button size */
                        visibility: hidden;
                    }

                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_sendButton > svg {
                        position: absolute;
                        width: 14px;
                        height: 14px;
                        color: #0dbd8b;
                        color: var(--accent-color, #0dbd8b);
                    }

                    .mx_ForwardDialog > .mx_ForwardList .mx_ForwardList_results .mx_ForwardList_entry .mx_ForwardList_sendButton .mx_ForwardDialog_notificationBadge {
                        /* Match the failed to send indicator's color with the disabled button */
                        background-color: #ffffff;
                    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_GenericFeatureFeedbackDialog .mx_GenericFeatureFeedbackDialog_subheading {
        color: var(--timeline-text-color);
        font: var(--cpd-font-body-md-regular);
        line-height: 1.25rem;
        margin-bottom: 24px;
    }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_IncomingSasDialog_opponentProfile_image {
    position: relative;
}

.mx_IncomingSasDialog_opponentProfile h2 {
    display: inline-block;
    margin-left: 10px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019, 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InviteDialog_flexWrapper .mx_Dialog {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

.mx_InviteDialog_transferWrapper .mx_Dialog {
    padding-bottom: var(--cpd-space-4x);
}

.mx_InviteDialog_addressBar {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    /* Right margin for the design. We could apply this to the whole dialog, but then the scrollbar */
    /* for the user section gets weird. */
    margin: var(--cpd-space-2x) 45px 0 0;
}

    .mx_InviteDialog_addressBar .mx_InviteDialog_editor {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        margin-left: var(--cpd-space-0-5x);
    }

    .mx_InviteDialog_addressBar .mx_InviteDialog_goButton {
        min-width: 86px;
        -webkit-margin-start: 10px;
                margin-inline-start: 10px;
        height: 41px;
        line-height: 1.5625rem;
    }

.mx_InviteDialog_section {
    padding-bottom: var(--cpd-space-1x);
}

    .mx_InviteDialog_section .mx_InviteDialog_section_showMore {
        margin: 7px 18px;
        display: block;
    }

.mx_InviteDialog_section_hidden_suggestions_disclaimer {
    padding: var(--cpd-space-2x) 0 var(--cpd-space-4x) 0;
    font: var(--cpd-font-body-md-regular);
}

    .mx_InviteDialog_section_hidden_suggestions_disclaimer > span {
        color: var(--timeline-text-color);
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_InviteDialog_section_hidden_suggestions_disclaimer > p {
        margin: 0;
    }

.mx_InviteDialog_footer {
    border-top: 1px solid #e7e7e7;
}

    .mx_InviteDialog_footer > h3 {
        margin: var(--cpd-space-3x) 0;
        font-size: 0.75rem;
        color: #61708b;
        font-weight: bold;
        text-transform: uppercase;
    }

    .mx_InviteDialog_footer .mx_CopyableText.mx_CopyableText_border {
        width: auto;
        width: initial; /* full width */
        margin-bottom: 0;
    }

        .mx_InviteDialog_footer .mx_CopyableText.mx_CopyableText_border > a {
            text-decoration: none;
            -ms-flex-negative: 1;
                flex-shrink: 1;
            overflow: hidden;
            text-overflow: ellipsis;
        }

.mx_InviteDialog_other {
    /* Prevent the dialog from jumping around randomly when elements change. */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    height: 600px;
    overflow: hidden;
}

    .mx_InviteDialog_other h2 {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        white-space: pre-wrap;
        overflow: hidden;
    }

    .mx_InviteDialog_other .mx_InviteDialog_addressBar {
        -webkit-margin-end: 0;
                margin-inline-end: 0;
    }

    .mx_InviteDialog_other .mx_InviteDialog_userSections {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        -webkit-padding-end: 0;
                padding-inline-end: 0;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        margin-top: var(--cpd-space-3x);
        gap: var(--cpd-space-3x);
    }

        .mx_InviteDialog_other .mx_InviteDialog_userSections .mx_InviteDialog_section {
            padding-bottom: 0;
        }

.mx_InviteDialog_content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    overflow: hidden;
}

    .mx_InviteDialog_content .mx_InviteProgressBody {
        margin-top: var(--cpd-space-12x);
    }

.mx_InviteDialog_transfer {
    width: auto;
}

    .mx_InviteDialog_transfer .mx_InviteDialog_content {
        width: 496px;
        height: 430px;
        overflow: visible;
    }

        .mx_InviteDialog_transfer .mx_InviteDialog_content .mx_TabbedView {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -ms-flex-negative: 1;
                flex-shrink: 1;
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
            min-height: 0;
        }

            .mx_InviteDialog_transfer .mx_InviteDialog_content .mx_TabbedView .mx_TabbedView_tabPanel {
                -webkit-box-orient: vertical;
                -webkit-box-direction: normal;
                    -ms-flex-direction: column;
                        flex-direction: column;
            }

                .mx_InviteDialog_transfer .mx_InviteDialog_content .mx_TabbedView .mx_TabbedView_tabPanel .mx_TabbedView_tabPanelContent {
                    display: -webkit-box;
                    display: -ms-flexbox;
                    display: flex;
                    -webkit-box-orient: vertical;
                    -webkit-box-direction: normal;
                        -ms-flex-direction: column;
                            flex-direction: column;
                }

    .mx_InviteDialog_transfer .mx_InviteDialog_addressBar {
        margin-top: var(--cpd-space-2x);
    }

    .mx_InviteDialog_transfer input[type="checkbox"] {
        -webkit-margin-end: var(--cpd-space-2x);
                margin-inline-end: var(--cpd-space-2x);
    }

.mx_InviteDialog_userSections {
    overflow-y: auto;
    padding: 0 45px var(--cpd-space-1x) 0;
}

.mx_InviteDialog_helpText {
    margin: 0;
}

.mx_InviteDialog_dialPad {
    width: 224px;
    margin-top: var(--cpd-space-4x);
    margin-inline: auto;
}

    .mx_InviteDialog_dialPad .mx_InviteDialog_dialPadField {
        border-top: 0;
        border-inline: 0;
        border-radius: 0;
        margin-top: 0;
        border-color: #6f7882;
        border-color: var(--quaternary-content, #6f7882);
    }

        .mx_InviteDialog_dialPad .mx_InviteDialog_dialPadField:focus-within {
            border-color: #0dbd8b;
            border-color: var(--accent-color, #0dbd8b);
        }

        .mx_InviteDialog_dialPad .mx_InviteDialog_dialPadField input {
            font-size: 18px;
            font-weight: var(--cpd-font-weight-semibold);
            padding-top: 0;
        }

        .mx_InviteDialog_dialPad .mx_InviteDialog_dialPadField .mx_Field_postfix {
            /* Remove border separator between postfix and field content */
            border-left: none;
        }

    .mx_InviteDialog_dialPad .mx_DialPad {
        row-gap: var(--cpd-space-4x);
        -webkit-column-gap: 48px;
           -moz-column-gap: 48px;
                column-gap: 48px;
        margin-inline: auto;
    }

.mx_InviteDialog_transferConsultConnect {
    padding-top: var(--cpd-space-4x);
    /* This wants a drop shadow the full width of the dialog, so use negative margin to make it full width,
     * then compensate with padding
     */
    padding-inline: var(--cpd-space-6x);
    margin-inline: calc(-1 * var(--cpd-space-6x));
    border-top: 1px solid #6f7882;
    border-top: 1px solid var(--quinary-content, #6f7882);

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_InviteDialog_transferConsultConnect_pushRight {
    -webkit-margin-start: auto;
            margin-inline-start: auto;
}

.mx_InviteDialog_tile {
    cursor: pointer;
    display: grid;
    grid-gap: var(--cpd-space-2x) var(--cpd-space-3x);
    gap: var(--cpd-space-2x) var(--cpd-space-3x);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

    .mx_InviteDialog_tile.mx_InviteDialog_tile--inviterError {
        grid-template-columns: -webkit-max-content auto;
        grid-template-columns: max-content auto; /* max-content = avatar width */
    }

    .mx_InviteDialog_tile * {
        vertical-align: middle;
    }

    .mx_InviteDialog_tile .mx_InviteDialog_tile_avatarStack {
        width: 36px;
        height: 36px;
        display: inline-block;
        position: relative;
        grid-row-start: 1;
        grid-column-start: 1;
    }

        .mx_InviteDialog_tile .mx_InviteDialog_tile_avatarStack > * {
            position: absolute;
            top: 0;
            left: 0;
        }

    .mx_InviteDialog_tile .mx_InviteDialog_tile_nameStack {
        grid-row-start: 1;
        grid-column-start: 2;

        display: -webkit-box;

        display: -ms-flexbox;

        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-flow: column;
                flex-flow: column;
        align-self: center;
        -webkit-box-align: baseline;
            -ms-flex-align: baseline;
                align-items: baseline;
        gap: 2px 0;
        overflow: hidden;
    }

        .mx_InviteDialog_tile .mx_InviteDialog_tile_nameStack .mx_InviteDialog_tile_nameStack_name,
        .mx_InviteDialog_tile .mx_InviteDialog_tile_nameStack .mx_InviteDialog_tile_nameStack_userId {
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            max-width: 100%;
        }

        .mx_InviteDialog_tile .mx_InviteDialog_tile_nameStack .mx_InviteDialog_tile_nameStack_name {
            font-size: 0.9375rem;
            font-weight: var(--cpd-font-weight-semibold);
            color: var(--timeline-text-color);
        }

        .mx_InviteDialog_tile .mx_InviteDialog_tile_nameStack .mx_InviteDialog_tile_nameStack_userId {
            font-size: 0.75rem;
            color: #61708b;
        }

.mx_InviteDialog_multiInviterErrorWrapper .mx_Dialog {
    width: 600px;
    max-width: 100%;
}

    .mx_InviteDialog_multiInviterErrorWrapper .mx_Dialog .mx_Dialog_fixedWidth {
        width: auto;
    }
    .mx_InviteDialog_multiInviterError > h4 {
        font: var(--cpd-font-body-md-regular);
        color: var(--cpd-color-text-secondary);
    }

    .mx_InviteDialog_multiInviterError .mx_InviteDialog_multiInviterError_group {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-2x);
        margin-bottom: var(--cpd-space-6x);
    }

        .mx_InviteDialog_multiInviterError .mx_InviteDialog_multiInviterError_group:last-child {
            margin-bottom: 0;
        }

    .mx_InviteDialog_multiInviterError .mx_InviteDialog_multiInviterError_reason {
        margin-bottom: var(--cpd-space-2x);

        font-size: var(--cpd-font-size-body-md);
        color: var(--cpd-color-text-critical-primary);
    }

.mx_InviteDialog_identityServer {
    margin-top: 1em;
}

.mx_InviteDialog_oneThreepid {
    font-size: 0.75rem;
    margin: var(--cpd-space-2x) 0;
}
}
@layer app-web{

/*
Copyright 2025 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InviteProgressBody {
    text-align: center;
    font: var(--cpd-font-body-lg-regular);
}

    .mx_InviteProgressBody h1 {
        color: var(--cpd-color-text-primary);
        font: var(--cpd-font-heading-sm-semibold);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_JoinRuleDropdown {
    margin-bottom: 8px;
    font: var(--cpd-font-body-md-regular);
    color: var(--timeline-text-color);
}

    .mx_JoinRuleDropdown .mx_Dropdown_option {
        font: var(--cpd-font-body-md-regular);
        line-height: 2rem;
        height: 32px;
        min-height: 32px;
    }

        .mx_JoinRuleDropdown .mx_Dropdown_option > div {
            padding-left: var(--cpd-space-1-5x);
        }

            .mx_JoinRuleDropdown .mx_Dropdown_option > div svg {
                width: 16px;
                height: 16px;
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
                vertical-align: -2px;
                margin-right: var(--cpd-space-1-5x);
            }

            .mx_JoinRuleDropdown .mx_Dropdown_option > div.mx_JoinRuleDropdown_knock::before {
                content: normal;
            }

    .mx_JoinRuleDropdown .mx_JoinRuleDropdown_icon {
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        position: absolute;
        left: 6px;
        top: 8px;
    }
}
@layer app-web{

/*
Copyright 2026 hayaksi1

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_LeaveRoomDialog .mx_Dialog_fixedWidth {
        width: 320px;
        max-width: 100%;
    }

    .mx_LeaveRoomDialog .mx_Dialog_content:not(:empty) {
        margin-bottom: var(--cpd-space-8x);
        color: var(--cpd-color-text-secondary);
    }

    .mx_LeaveRoomDialog .mx_Dialog_content:empty {
        margin: 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_LeaveSpaceDialog_wrapper .mx_Dialog {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        padding: 24px 32px;
    }

        .mx_LeaveSpaceDialog_wrapper .mx_Dialog .mx_LeaveSpaceDialog {
            width: 440px;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -ms-flex-wrap: nowrap;
                flex-wrap: nowrap;
            height: 520px;
        }

            .mx_LeaveSpaceDialog_wrapper .mx_Dialog .mx_LeaveSpaceDialog .mx_Dialog_content {
                -webkit-box-flex: 1;
                    -ms-flex-positive: 1;
                        flex-grow: 1;
                margin: 0;
                overflow-y: auto;
            }

                .mx_LeaveSpaceDialog_wrapper .mx_Dialog .mx_LeaveSpaceDialog .mx_Dialog_content .mx_LeaveSpaceDialog_section_warning {
                    border-radius: 8px;
                    margin: 12px 0 0;
                    padding: 12px 8px;
                    background-color: var(--roomlist-background-color);

                    font-size: 0.75rem;
                    line-height: 0.9375rem;
                    color: #2e2f32;
                    color: var(--secondary-content, #2e2f32);
                }

                    .mx_LeaveSpaceDialog_wrapper .mx_Dialog .mx_LeaveSpaceDialog .mx_Dialog_content .mx_LeaveSpaceDialog_section_warning svg {
                        height: 16px;
                        width: 16px;
                        color: #2e2f32;
                        color: var(--secondary-content, #2e2f32);
                        vertical-align: middle;
                        margin: 0 var(--cpd-space-1x);
                    }

                .mx_LeaveSpaceDialog_wrapper .mx_Dialog .mx_LeaveSpaceDialog .mx_Dialog_content > p {
                    color: var(--timeline-text-color);
                }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LocationViewDialog_wrapper .mx_Dialog {
    padding: 0px;
}

.mx_LocationViewDialog {
    /* subtract 0.5px to prevent single-pixel margin due to rounding */
    width: calc(80vw - 0.5px);
    height: calc(80vh - 0.5px);
    overflow: hidden;
}

    .mx_LocationViewDialog .mx_Dialog_header {
        margin: 0px;
        padding: 0px;
        position: static;
        position: initial;
    }

        .mx_LocationViewDialog .mx_Dialog_header .mx_Dialog_title {
            display: none;
        }

    .mx_LocationViewDialog .mx_Dialog_cancelButton {
        z-index: 4010;
        position: absolute;
        left: var(--cpd-space-4x);
        top: var(--cpd-space-4x);
    }

.mx_LocationViewDialog_map {
    width: 80vw;
    height: 80vh;
    border-radius: 8px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 Manan Sadana <manancodes.dev@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LogoutDialog {
    width: 26rem;
}
        /* The dialog-based recovery key flow preserves the card's gap, but emphasised content sets its own. */
        .mx_LogoutDialog .mx_EncryptionCard:has(> .mx_EncryptionCard_emphasisedContent) {
            gap: 0;
        }
        .mx_LogoutDialog .mx_EncryptionCard h2 {
            text-align: center;
            color: var(--cpd-color-text-primary);
        }
        .mx_LogoutDialog .mx_EncryptionCard .mx_EncryptionCard_emphasisedContent {
            text-align: center;
            margin-top: var(--cpd-space-2x);
            margin-bottom: var(--cpd-space-12x);
        }
            .mx_LogoutDialog .mx_EncryptionCard .mx_EncryptionCard_emphasisedContent p {
                margin: 0;
            }
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ManageRestrictedJoinRuleDialog_wrapper .mx_Dialog {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

.mx_ManageRestrictedJoinRuleDialog {
    width: 480px;
    color: var(--timeline-text-color);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    min-height: 0;
    height: 60vh;
}

    .mx_ManageRestrictedJoinRuleDialog .mx_SearchBox {
        /* To match the space around the title */
        margin: 0 0 15px 0;
        -webkit-box-flex: 0;
            -ms-flex-positive: 0;
                flex-grow: 0;
    }

    .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_content {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
    }

    .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_noResults {
        display: block;
        margin-top: 24px;
    }
        .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section:not(:first-child) {
            margin-top: 24px;
        }

        .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section > h3 {
            margin: 0;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            font-size: 0.75rem;
            font-weight: var(--cpd-font-weight-semibold);
            line-height: 0.9375rem;
        }

        .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section .mx_ManageRestrictedJoinRuleDialog_entry {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            margin-top: 12px;
        }

            .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section .mx_ManageRestrictedJoinRuleDialog_entry > div {
                -webkit-box-flex: 1;
                    -ms-flex-positive: 1;
                        flex-grow: 1;
            }

            .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section .mx_ManageRestrictedJoinRuleDialog_entry .mx_ManageRestrictedJoinRuleDialog_entry_name {
                margin: 0 8px;
                font-size: 0.9375rem;
                line-height: 30px;
                -webkit-box-flex: 1;
                    -ms-flex-positive: 1;
                        flex-grow: 1;
                overflow: hidden;
                white-space: nowrap;
                text-overflow: ellipsis;
            }

            .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section .mx_ManageRestrictedJoinRuleDialog_entry .mx_ManageRestrictedJoinRuleDialog_entry_description {
                margin-top: 8px;
                font-size: 0.75rem;
                line-height: 0.9375rem;
                color: #2e2f32;
                color: var(--tertiary-content, #2e2f32);
            }
        .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section_spaces .mx_BaseAvatar {
            margin-right: 12px;
        }

    .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section_info {
        position: relative;
        border-radius: 8px;
        margin: 12px 0;
        padding: 8px;
        background-color: var(--roomlist-background-color);

        font-size: 0.75rem;
        line-height: 0.9375rem;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

        .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section_info svg {
            height: 16px;
            width: 16px;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            vertical-align: middle;
            margin: 0 var(--cpd-space-1x);
        }

    .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_footer {
        margin-top: 20px;
    }

        .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_footer .mx_ManageRestrictedJoinRuleDialog_footer_buttons {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            width: -webkit-max-content;
            width: -moz-max-content;
            width: max-content;
            margin-left: auto;
        }

            .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_footer .mx_ManageRestrictedJoinRuleDialog_footer_buttons .mx_AccessibleButton {
                display: inline-block;
            }

                .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_footer .mx_ManageRestrictedJoinRuleDialog_footer_buttons .mx_AccessibleButton + .mx_AccessibleButton {
                    margin-left: 24px;
                }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MessageEditHistoryDialog {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-height: 60vh;
}

.mx_MessageEditHistoryDialog_scrollPanel {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
}

.mx_MessageEditHistoryDialog_error {
    color: #ff5b55;
    color: var(--alert, #ff5b55);
    text-align: center;
}

.mx_MessageEditHistoryDialog_edits {
    list-style-type: none;
    font: var(--cpd-font-body-md-regular);
    padding: 0;
    color: var(--timeline-text-color);
}

    .mx_MessageEditHistoryDialog_edits .mx_EditHistoryMessage_emoteSender {
        cursor: pointer;
    }

    .mx_MessageEditHistoryDialog_edits span.mx_EditHistoryMessage_deletion,
    .mx_MessageEditHistoryDialog_edits span.mx_EditHistoryMessage_insertion {
        padding: 0px 2px;
    }

    .mx_MessageEditHistoryDialog_edits .mx_EditHistoryMessage_deletion {
        color: rgb(255, 76, 85);
        background-color: rgb(255, 76, 85, 0.1);
        text-decoration: line-through;
    }

    .mx_MessageEditHistoryDialog_edits .mx_EditHistoryMessage_insertion {
        color: rgb(26, 169, 123);
        background-color: rgb(26, 169, 123, 0.1);
        text-decoration: underline;
    }

    /* Emulate mx_EventTile[data-layout="group"] */
    .mx_MessageEditHistoryDialog_edits .mx_EventTile {
        padding-top: 0;
    }

        .mx_MessageEditHistoryDialog_edits .mx_EventTile .mx_MessageTimestamp {
            position: absolute;
            left: 0;
            text-align: center;
        }

        .mx_MessageEditHistoryDialog_edits .mx_EventTile .mx_EventTile_line {
            padding-top: var(--EventTile_group_line-spacing-block-start);
            padding-bottom: var(--EventTile_group_line-spacing-block-end);
            padding-left: var(--EventTile_group_line-spacing-inline-start);
            line-height: var(--EventTile_group_line-line-height);
        }

            .mx_MessageEditHistoryDialog_edits .mx_EventTile .mx_EventTile_line .mx_EventTile_content {
                margin-right: 0px;
            }
        .mx_MessageEditHistoryDialog_edits .mx_EventTile::before {
            content: "";
            position: absolute;
            top: -1px;
            bottom: -1px;
            left: -10px;
            right: -10px;
            z-index: -1;
            border-radius: 4px;
        }
            .mx_MessageEditHistoryDialog_edits .mx_EventTile:hover::before {
                background: #fafbfd;
                background: var(--eventbubble-bg-hover, #fafbfd);
            }

    .mx_MessageEditHistoryDialog_edits .mx_HistoryActionBar {
        border-radius: 0 !important;
    }

    .mx_MessageEditHistoryDialog_edits .mx_HistoryActionBar [data-presentation="label"] {
        line-height: 24px !important;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ModalWidgetDialog .mx_ModalWidgetDialog_warning {
        margin-bottom: 24px;
    }

        .mx_ModalWidgetDialog .mx_ModalWidgetDialog_warning > img {
            vertical-align: middle;
            margin-right: 8px;
        }

    .mx_ModalWidgetDialog .mx_ModalWidgetDialog_buttons {
        float: right;
        margin-top: 24px;
    }

        .mx_ModalWidgetDialog .mx_ModalWidgetDialog_buttons .mx_AccessibleButton + .mx_AccessibleButton {
            margin-left: 8px;
        }

    .mx_ModalWidgetDialog iframe {
        width: 100%;
        height: 450px;
        border: 0;
        border-radius: 8px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_PollCreateDialog h2 {
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.9375rem;
        line-height: 1.5rem;
        margin-top: 0;
        margin-bottom: 8px;
    }

        .mx_PollCreateDialog h2:nth-child(n + 2) {
            margin-top: 20px;
        }

    .mx_PollCreateDialog p {
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

    .mx_PollCreateDialog .mx_PollCreateDialog_option {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        margin-top: 11px;
        margin-bottom: 16px; /* 11px from the top will collapse, so this creates a 16px gap between options */
    }

        .mx_PollCreateDialog .mx_PollCreateDialog_option .mx_Field {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            margin: 0;
        }

        .mx_PollCreateDialog .mx_PollCreateDialog_option .mx_PollCreateDialog_removeOption {
            margin-left: 12px;
            width: 16px;
            height: 16px;
            padding: var(--cpd-space-0-5x);
            border-radius: 50%;
            background-color: #6f7882;
            background-color: var(--quinary-content, #6f7882);
            cursor: pointer;
        }

            .mx_PollCreateDialog .mx_PollCreateDialog_option .mx_PollCreateDialog_removeOption svg {
                width: inherit;
                height: inherit;
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
            }

    .mx_PollCreateDialog .mx_PollCreateDialog_addOption {
        padding: 0;
        margin-bottom: 40px; /* arbitrary to create scrollable area under the poll */
    }

    .mx_PollCreateDialog .mx_AccessibleButton_disabled {
        opacity: 0.4;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RegistrationEmailPromptDialog {
    width: 417px;
}

    .mx_RegistrationEmailPromptDialog .mx_Dialog_content {
        margin-bottom: 24px;
        color: #2e2f32;
        color: var(--tertiary-content, #2e2f32);
    }

    .mx_RegistrationEmailPromptDialog .mx_Dialog_primary {
        width: 100%;
    }
}
@layer app-web{

/*
 * Copyright 2026 Element Creations Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_RemoveSectionDialog {
    color: var(--cpd-color-text-primary);
}
}
@layer app-web{

/*
Copyright 2025 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ReportRoomDialog textarea, .mx_DeclineAndBlockInviteDialog textarea {
        font: var(--cpd-font-body-md-regular);
        border: 1px solid var(--cpd-color-border-interactive-primary);
        background: var(--cpd-color-bg-canvas-default);
        border-radius: 0.5rem;
        padding: var(--cpd-space-3x) var(--cpd-space-4x);
    }

    /*
      Workaround to fix labels appearing with the wrong color.

      .mx_Dialog (in res/css/_common.pcss) redefines the body color
      as $light-fg-color rather than the standard primary color.

      This forces the colour to match the Compound style, but
      in the future the Dialogs should not force a color.
    */
    .mx_ReportRoomDialog form label, .mx_DeclineAndBlockInviteDialog form label {
        color: var(--cpd-color-text-primary);
    }
    .mx_DeclineAndBlockInviteDialog div[aria-disabled="true"] > label {
        color: var(--cpd-color-text-secondary);
    }

    .mx_DeclineAndBlockInviteDialog .mx_SettingsFlag_label {
        color: var(--cpd-color-text-primary);
        font-weight: var(--cpd-font-weight-semibold);
    }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomSettingsDialog .mx_Dialog_title {
    -ms-text-overflow: ellipsis;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    margin: 0 auto;
    padding-right: 80px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomSettingsDialog_BridgeList {
    padding: 0;
}

    .mx_RoomSettingsDialog_BridgeList li {
        list-style-type: none;
    }

        .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -ms-flex-wrap: wrap;
                flex-wrap: wrap;
            gap: var(--cpd-space-2x);
            padding: 5px;
            margin-bottom: var(--cpd-space-2x);

            /* border-style around each bridge list item */
            border-width: 1px 1px;
            border-color: var(--roomlist-separator-color);
            border-style: solid;
            border-radius: 5px;
        }
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_protocolIcon,
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_protocolIcon span,
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_noProtocolIcon {
                    -webkit-box-sizing: border-box;
                            box-sizing: border-box;
                    border-radius: 5px;
                    border: 1px solid var(--roomlist-separator-color);
                }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_noProtocolIcon,
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_protocolIcon img {
                    border-radius: 5px;
                }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_noProtocolIcon {
                    width: 48px;
                    height: 48px;
                    background: var(--roomlist-separator-color);
                }
                    .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_protocolIcon img {
                        border-width: 1px 1px;
                        border-color: var(--roomlist-separator-color);
                    }

                    .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_protocolIcon span {
                        /* Correct letter placement */
                        left: auto;
                    }

            .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data {
                display: inline-block;
                width: 85%;
            }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_details,
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_metadata,
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_metadata li,
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_protocolName {
                    margin-bottom: 0;
                }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_details,
                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_metadata {
                    margin-top: var(--cpd-space-1x);
                }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_metadata li {
                    margin-top: var(--cpd-space-2x);
                }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_column_data_protocolName {
                    margin-top: 0;
                    font-size: 16pt;
                    color: var(--timeline-text-color);
                }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_workspace_channel_details {
                    color: var(--timeline-text-color);
                    font-weight: var(--cpd-font-weight-semibold);
                }

                    .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_workspace_channel_details .mx_RoomSettingsDialog_channel {
                        -webkit-margin-start: 5px;
                                margin-inline-start: 5px;
                    }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_metadata {
                    color: #61708b;
                    margin-bottom: 0;
                    overflow-y: visible;
                    text-overflow: ellipsis;
                    white-space: normal;
                    padding: 0;
                }
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomUpgradeDialog {
    padding-right: 70px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019-2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomUpgradeWarningDialog {
    max-width: 38vw;
    width: 38vw;
}
        .mx_RoomUpgradeWarningDialog .mx_RoomUpgradeWarningDialog_progress .mx_ProgressBar {
            height: 8px;
            width: 100%;

            border-radius: 8px;
        }

            .mx_RoomUpgradeWarningDialog .mx_RoomUpgradeWarningDialog_progress .mx_ProgressBar::-moz-progress-bar {
        border-radius: 8px;
    }

            .mx_RoomUpgradeWarningDialog .mx_RoomUpgradeWarningDialog_progress .mx_ProgressBar::-webkit-progress-bar,
    .mx_RoomUpgradeWarningDialog .mx_RoomUpgradeWarningDialog_progress .mx_ProgressBar::-webkit-progress-value {
        border-radius: 8px;
    }

        .mx_RoomUpgradeWarningDialog .mx_RoomUpgradeWarningDialog_progress .mx_RoomUpgradeWarningDialog_progressText {
            margin-top: 8px;
            font-size: 0.9375rem;
            line-height: 1.5rem;
            color: var(--timeline-text-color);
        }

.mx_RoomUpgradeWarningDialog .mx_SettingsFlag {
    font-weight: 700;
}

    .mx_RoomUpgradeWarningDialog .mx_SettingsFlag .mx_ToggleSwitch {
        display: inline-block;
        vertical-align: middle;
        margin-left: 8px;
        float: right;
    }

    .mx_RoomUpgradeWarningDialog .mx_SettingsFlag .mx_SettingsFlag_label {
        display: inline-block;
        vertical-align: middle;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content {
        padding-right: 85px;
        color: var(--timeline-text-color);
    }

        .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content hr {
            border-color: var(--timeline-text-color);
            opacity: 0.1;
            border-bottom: none;
        }

        .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content ul {
            padding: 16px;
        }

            .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content ul li:nth-child(n + 2) {
                margin-top: 16px;
            }
            .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content .mx_ServerOfflineDialog_content_context .mx_ServerOfflineDialog_content_context_timestamp {
                display: inline-block;
                width: 115px;
                color: #61708b;
                line-height: 24px; /* same as avatar */
                vertical-align: top;
            }

            .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content .mx_ServerOfflineDialog_content_context .mx_ServerOfflineDialog_content_context_timeline {
                display: inline-block;
                width: calc(100% - 155px); /* 115px timestamp width + 40px right margin */
            }
                    .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content .mx_ServerOfflineDialog_content_context .mx_ServerOfflineDialog_content_context_timeline .mx_ServerOfflineDialog_content_context_timeline_header span {
                        margin-left: 8px;
                        vertical-align: middle;
                    }

                .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content .mx_ServerOfflineDialog_content_context .mx_ServerOfflineDialog_content_context_timeline .mx_ServerOfflineDialog_content_context_txn {
                    position: relative;
                    margin-top: 8px;
                }

                    .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content .mx_ServerOfflineDialog_content_context .mx_ServerOfflineDialog_content_context_timeline .mx_ServerOfflineDialog_content_context_txn .mx_ServerOfflineDialog_content_context_txn_desc {
                        width: calc(100% - 100px); /* 100px is an arbitrary margin for the button */
                    }

                    .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content .mx_ServerOfflineDialog_content_context .mx_ServerOfflineDialog_content_context_timeline .mx_ServerOfflineDialog_content_context_txn .mx_AccessibleButton {
                        float: right;
                    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ServerPickerDialog {
    width: 468px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

    .mx_ServerPickerDialog .mx_Dialog_content {
        margin-bottom: 0;
    }

        .mx_ServerPickerDialog .mx_Dialog_content > p {
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            font: var(--cpd-font-body-md-regular);

            margin: 16px 0;
        }

            .mx_ServerPickerDialog .mx_Dialog_content > p:first-of-type {
                margin-bottom: 40px;
            }

            .mx_ServerPickerDialog .mx_Dialog_content > p:last-of-type {
                margin: 0 24px 24px;
            }

        .mx_ServerPickerDialog .mx_Dialog_content > h2 {
            font-size: 0.9375rem;
            font-weight: var(--cpd-font-weight-semibold);
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            margin: 16px 0 16px 8px;
        }

        .mx_ServerPickerDialog .mx_Dialog_content > a {
            color: #0dbd8b;
            color: var(--accent-color, #0dbd8b);
            margin-left: 8px;
        }
        .mx_ServerPickerDialog .mx_ServerPickerDialog_otherHomeserverRadio input[type="radio"] + div {
            margin-top: auto;
            margin-bottom: auto;
        }

    .mx_ServerPickerDialog .mx_ServerPickerDialog_otherHomeserver {
        border-top: none;
        border-left: none;
        border-right: none;
        border-radius: 0;
        border-radius: initial;
    }

        .mx_ServerPickerDialog .mx_ServerPickerDialog_otherHomeserver > input {
            padding-left: 0;
        }

        .mx_ServerPickerDialog .mx_ServerPickerDialog_otherHomeserver > label {
            margin-left: 0;
        }

    .mx_ServerPickerDialog .mx_AccessibleButton_kind_primary {
        width: calc(100% - 26px);
        margin: 0 8px;
        padding: 15px 18px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 Vector Creations Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SetEmailDialog_email_input {
    border-radius: 3px;
    border: 1px solid #e7e7e7;
    padding: 9px;
    color: rgb(74, 74, 74, 0.9);
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    font-size: 0.9375rem;
    width: 100%;
    max-width: 280px;
    margin-bottom: 10px;
}

.mx_SetEmailDialog_email_input:focus {
    outline: none;
    -webkit-box-shadow: none;
            box-shadow: none;
    border: 1px solid #0dbd8b;
    border: 1px solid var(--accent-color, #0dbd8b);
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* Not actually a component but things shared by settings components */
.mx_UserSettingsDialog,
.mx_RoomSettingsDialog,
.mx_SpaceSettingsDialog,
.mx_SpacePreferencesDialog {
    width: 90vw;
    max-width: 980px;
    /* set the height too since tabbed view scrolls itself. */
    height: 80vh;
}

    .mx_UserSettingsDialog .mx_TabbedView, .mx_RoomSettingsDialog .mx_TabbedView, .mx_SpaceSettingsDialog .mx_TabbedView, .mx_SpacePreferencesDialog .mx_TabbedView {
        top: 90px;
    }

    .mx_UserSettingsDialog .mx_TabbedView .mx_SettingsTab, .mx_RoomSettingsDialog .mx_TabbedView .mx_SettingsTab, .mx_SpaceSettingsDialog .mx_TabbedView .mx_SettingsTab, .mx_SpacePreferencesDialog .mx_TabbedView .mx_SettingsTab {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        min-width: 580px;
        padding-right: 100px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;

        /* Put some padding on the bottom to avoid the settings tab from */
        /* colliding harshly with the dialog when scrolled down. */
        padding-bottom: 100px;
    }

    .mx_UserSettingsDialog .mx_SettingsDialog_tabLabelsAlert::after, .mx_RoomSettingsDialog .mx_SettingsDialog_tabLabelsAlert::after, .mx_SpaceSettingsDialog .mx_SettingsDialog_tabLabelsAlert::after, .mx_SpacePreferencesDialog .mx_SettingsDialog_tabLabelsAlert::after {
        display: inline-block;
        content: "";
        width: 8px;
        height: 8px;
        background-color: var(--cpd-color-icon-critical-primary);
        clip-path: circle(4px);
        position: absolute;
        right: var(--cpd-space-4x);
    }

/* On narrow viewports, the tab labels are hidden, so we need to shift the indicator so it isn't over the tab icon. */
@media (max-width: 1024px) {
        .mx_UserSettingsDialog .mx_SettingsDialog_tabLabelsAlert::after, .mx_RoomSettingsDialog .mx_SettingsDialog_tabLabelsAlert::after, .mx_SpaceSettingsDialog .mx_SettingsDialog_tabLabelsAlert::after, .mx_SpacePreferencesDialog .mx_SettingsDialog_tabLabelsAlert::after {
            right: var(--cpd-space-1x);
            top: var(--cpd-space-1x);
        }
}
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ShareDialog {
    /* Value from figma design */
    width: 416px;
}

    .mx_ShareDialog .mx_Dialog_header {
        text-align: center;
        margin-bottom: var(--cpd-space-6x);
        /* Override dialog header padding to able to center it */
        -webkit-padding-end: 0;
                padding-inline-end: 0;
    }

    .mx_ShareDialog .mx_ShareDialog_content {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-6x);
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_ShareDialog .mx_ShareDialog_content .mx_ShareDialog_top {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            gap: var(--cpd-space-4x);
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            width: 100%;
        }

            .mx_ShareDialog .mx_ShareDialog_content .mx_ShareDialog_top span {
                text-align: center;
                font: var(--cpd-font-body-sm-semibold);
                color: var(--cpd-color-text-secondary);
                text-overflow: ellipsis;
                white-space: nowrap;
                overflow: hidden;
                width: 100%;
            }

        .mx_ShareDialog .mx_ShareDialog_content label {
            display: -webkit-inline-box;
            display: -ms-inline-flexbox;
            display: inline-flex;
            gap: var(--cpd-space-3x);
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            font: var(--cpd-font-body-md-medium);
        }

        .mx_ShareDialog .mx_ShareDialog_content button {
            width: 100%;
        }

        .mx_ShareDialog .mx_ShareDialog_content .mx_ShareDialog_social {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            gap: var(--cpd-space-3x);
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
        }

            .mx_ShareDialog .mx_ShareDialog_content .mx_ShareDialog_social a {
                width: 48px;
                height: 48px;
                border-radius: 99px;
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;
                border: 1px solid var(--cpd-color-border-interactive-secondary);
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-pack: center;
                    -ms-flex-pack: center;
                        justify-content: center;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
            }

                .mx_ShareDialog .mx_ShareDialog_content .mx_ShareDialog_social a img {
                    width: 24px;
                    height: 24px;
                }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SlashCommandHelpDialog .mx_SlashCommandHelpDialog_headerRow h2 {
    margin-bottom: 2px;
}

.mx_SlashCommandHelpDialog .mx_Dialog_content {
    margin-top: 12px;
    margin-bottom: 34px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SpacePreferencesDialog {
    width: 700px;
    height: 400px;
}

    .mx_SpacePreferencesDialog > h4 {
        margin: -12px 0 0;
        font-weight: normal;
        font-size: 0.9375rem;
        line-height: 1.5rem;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

    .mx_SpacePreferencesDialog .mx_TabbedView {
        top: 80px;
    }

        .mx_SpacePreferencesDialog .mx_TabbedView .mx_SettingsTab {
            min-width: 0;
            min-width: initial;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SpaceSettingsDialog {
    color: var(--timeline-text-color);
}

    .mx_SpaceSettingsDialog .mx_SpaceSettings_errorText {
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.75rem;
        line-height: 0.9375rem;
        color: #ff5b55;
        color: var(--alert, #ff5b55);
        margin-bottom: 28px;
    }

    .mx_SpaceSettingsDialog .mx_ToggleSwitch {
        display: inline-block;
        vertical-align: middle;
        margin-left: 16px;
    }
        .mx_SpaceSettingsDialog .mx_SettingsTab_section .mx_SettingsTab_section_caption {
            margin-top: 12px;
            margin-bottom: 20px;
        }

        .mx_SpaceSettingsDialog .mx_SettingsTab_section .mx_StyledRadioButton {
            margin-top: 8px;
            margin-bottom: 4px;
        }

            .mx_SpaceSettingsDialog .mx_SettingsTab_section .mx_StyledRadioButton .mx_StyledRadioButton_content {
                font-weight: var(--cpd-font-weight-semibold);
                line-height: 1.125rem;
                color: var(--timeline-text-color);
            }

            .mx_SpaceSettingsDialog .mx_SettingsTab_section .mx_StyledRadioButton + span {
                font-size: 0.9375rem;
                line-height: 1.125rem;
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
                margin-left: 26px;
            }

    .mx_SpaceSettingsDialog .mx_SpaceSettingsDialog_buttons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-top: 64px;
    }

        .mx_SpaceSettingsDialog .mx_SpaceSettingsDialog_buttons .mx_AccessibleButton {
            display: inline-block;
        }

        .mx_SpaceSettingsDialog .mx_SpaceSettingsDialog_buttons .mx_AccessibleButton_kind_link {
            margin-left: auto;
        }
        .mx_SpaceSettingsDialog .mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_link {
            font: var(--cpd-font-body-md-semibold);
            margin: 7px 18px;
        }

            .mx_SpaceSettingsDialog .mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_link.mx_SettingsTab_showAdvanced {
                margin: 18px 0;
            }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_SpotlightDialog_wrapper .mx_Dialog_border {
        /* Disable the glass border as this dialog wasn't designed with it in mind */
        display: contents;
    }

    .mx_SpotlightDialog_wrapper .mx_Dialog {
        /* !important because it's overriding compound  */
        width: -webkit-fit-content !important;
        width: -moz-fit-content !important;
        width: fit-content !important;
        border-radius: 8px !important;
        height: 60% !important;
        overflow-y: visible;
        overflow-y: initial;
        position: relative;
        padding: 0;
        contain: unset; /* needed for #mx_SpotlightDialog_keyboardPrompt to not be culled */
    }

        .mx_SpotlightDialog_wrapper .mx_Dialog #mx_SpotlightDialog_keyboardPrompt {
            position: absolute;
            padding: var(--cpd-space-2x);
            border-radius: 8px;
            background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
            top: -60px; /* relative to the top of the modal */
            left: 50%;
            -webkit-transform: translateX(-50%);
                    transform: translateX(-50%);
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }

            .mx_SpotlightDialog_wrapper .mx_Dialog #mx_SpotlightDialog_keyboardPrompt kbd {
                display: inline-block;
                padding: 2px var(--cpd-space-1x);
                margin: 0 var(--cpd-space-1x);
                border-radius: 6px;
                background-color: #6f7882;
                background-color: var(--quinary-content, #6f7882);
                vertical-align: middle;
                color: #2e2f32;
                color: var(--tertiary-content, #2e2f32);
                /* To avoid any styling inherent with <kbd> elements */
                font-family: inherit;
                font-weight: inherit;
                font-size: inherit;
            }

.mx_SpotlightDialog {
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

    .mx_SpotlightDialog .mx_Dialog_header {
        display: none;
    }

    .mx_SpotlightDialog .mx_SpotlightDialog_searchBox {
        margin: 0;
        border: none;
        border-radius: 8px 8px 0 0;
        padding: var(--cpd-space-3x) var(--cpd-space-4x);
        border-bottom: 1px solid #f4f6fa;
        border-bottom: 1px solid var(--system, #f4f6fa);
    }

        .mx_SpotlightDialog .mx_SpotlightDialog_searchBox > .mx_SpotlightDialog_filter {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -ms-flex-line-pack: center;
                align-content: center;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            border-radius: 8px;
            margin-right: var(--cpd-space-2x);
            background-color: #6f7882;
            background-color: var(--quinary-content, #6f7882);
            vertical-align: middle;
            color: var(--timeline-text-color);
            position: relative;
            padding: var(--cpd-space-1x) var(--cpd-space-2x) var(--cpd-space-1x) 37px;
        }

            .mx_SpotlightDialog .mx_SpotlightDialog_searchBox > .mx_SpotlightDialog_filter > svg {
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
                width: 18px;
                height: 18px;
                position: absolute;
                left: var(--cpd-space-2x);
                top: 50%;
                -webkit-transform: translateY(-50%);
                        transform: translateY(-50%);
            }

            .mx_SpotlightDialog .mx_SpotlightDialog_searchBox > .mx_SpotlightDialog_filter .mx_SpotlightDialog_filter--close {
                display: inline-block;
                width: 14px;
                height: 14px;
                padding: 1px;
                background: #f4f6fa;
                background: var(--system, #f4f6fa);
                border-radius: 8px;
                margin-left: var(--cpd-space-2x);
                text-align: center;
                line-height: 16px;
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
            }

                .mx_SpotlightDialog .mx_SpotlightDialog_searchBox > .mx_SpotlightDialog_filter .mx_SpotlightDialog_filter--close svg {
                    color: #2e2f32;
                    color: var(--secondary-content, #2e2f32);
                    width: inherit;
                    height: inherit;
                }

        .mx_SpotlightDialog .mx_SpotlightDialog_searchBox > input {
            display: block;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            background-color: transparent;
            width: 100%;
            height: 32px;
            padding: 0;
            color: #2e2f32;
            color: var(--tertiary-content, #2e2f32);
            font-weight: normal;
            font-size: 0.9375rem;
            line-height: 1.5rem;
        }

        .mx_SpotlightDialog .mx_SpotlightDialog_searchBox > .mx_Spinner {
            -webkit-box-flex: 0;
                -ms-flex-positive: 0;
                    flex-grow: 0;
            width: auto;
            width: initial;
            height: auto;
            height: initial;
            margin-left: var(--cpd-space-4x);
        }

        .mx_SpotlightDialog .mx_SpotlightDialog_searchBox:not(:focus-within) + #mx_SpotlightDialog_content {
            /* Inhibit the styling if focus is not within the input which handles keyboard accessibility */
            --mx_SpotlightDialog_option_selectedBgColor: transparent;
        }

            /* Hide the enter prompt as in this state pressing enter would not actuate that option */
            .mx_SpotlightDialog .mx_SpotlightDialog_searchBox:not(:focus-within) + #mx_SpotlightDialog_content .mx_SpotlightDialog_enterPrompt {
                visibility: hidden;
            }

    .mx_SpotlightDialog #mx_SpotlightDialog_content {
        height: 100%;
        overflow-y: auto;
        padding: var(--cpd-space-4x);
    }

        .mx_SpotlightDialog #mx_SpotlightDialog_content ul {
            padding: 0;
            margin: 0;
        }
            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_section > h4,
            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_section > .mx_SpotlightDialog_sectionHeader > h4 {
                font-weight: var(--cpd-font-weight-semibold);
                font-size: 0.75rem;
                line-height: 0.9375rem;
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
                margin: 0;
            }

            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_section > h4 {
                margin-bottom: var(--cpd-space-2x);
            }

            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_section .mx_SpotlightDialog_sectionHeader {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-pack: justify;
                    -ms-flex-pack: justify;
                        justify-content: space-between;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                margin-bottom: var(--cpd-space-2x);
            }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_section .mx_SpotlightDialog_sectionHeader .mx_SpotlightDialog_options {
                    display: -webkit-box;
                    display: -ms-flexbox;
                    display: flex;
                    gap: var(--cpd-space-1x);
                }

            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_section + .mx_SpotlightDialog_section {
                margin-top: var(--cpd-space-6x);
            }

        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_option {
            border-radius: 8px;
            overflow: hidden;
            text-overflow: ellipsis;
        }

            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_option:hover,
            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_option[aria-selected="true"] {
                background-color: #6f7882;
                background-color: var(--mx_SpotlightDialog_option_selectedBgColor, var(--quinary-content, #6f7882));
            }
            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentlyViewed > div {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                white-space: nowrap;
                overflow-x: hidden;
                margin-right: 1px; /* occlude the 1px visible of the very next tile to prevent it looking broken */
            }

            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentlyViewed .mx_SpotlightDialog_option {
                padding: var(--cpd-space-1x);
                color: var(--timeline-text-color);
                font-size: 0.75rem;
                line-height: 0.9375rem;
                display: inline-block;
                width: 58px;
                height: 58px;
                min-width: 58px;
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;
                text-align: center;
            }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentlyViewed .mx_SpotlightDialog_option .mx_DecoratedRoomAvatar {
                    margin: 0 9px var(--cpd-space-1x); /* maintain centering */
                }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentlyViewed .mx_SpotlightDialog_option + .mx_SpotlightDialog_option {
                    margin-left: var(--cpd-space-4x);
                }
            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option {
                --mx_SpotlightDialog_option_selectedBgColor: var(--system, #f4f6fa);

                padding: 6px var(--cpd-space-1x);
                font-size: 0.9375rem;
                line-height: 1.5rem;
                color: var(--timeline-text-color);
                position: relative;
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                white-space: nowrap;
            }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--endAdornment, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--endAdornment, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--endAdornment, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--endAdornment {
                    display: -webkit-inline-box;
                    display: -ms-inline-flexbox;
                    display: inline-flex;
                    -webkit-box-orient: horizontal;
                    -webkit-box-direction: normal;
                        -ms-flex-direction: row;
                            flex-direction: row;
                    margin-left: auto;
                    -webkit-box-align: start;
                        -ms-flex-align: start;
                            align-items: flex-start;
                }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline {
                    -webkit-box-align: start;
                        -ms-flex-align: start;
                            align-items: flex-start;
                }

                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_AccessibleButton, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_AccessibleButton, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_AccessibleButton, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_AccessibleButton {
                        padding: var(--cpd-space-1x) var(--cpd-space-5x);
                        margin: 2px var(--cpd-space-1x);
                    }

                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_SpotlightDialog_enterPrompt, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_SpotlightDialog_enterPrompt, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_SpotlightDialog_enterPrompt, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option.mx_SpotlightDialog_result_multiline .mx_SpotlightDialog_enterPrompt {
                        margin-top: 9px;
                        margin-right: var(--cpd-space-2x);
                    }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_result_name, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_name, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_name, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_result_name {
                    min-width: 0;
                    overflow: hidden;
                    text-overflow: ellipsis;
                }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option > .mx_BaseAvatar,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option > .mx_BaseAvatar,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option > .mx_BaseAvatar,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option > .mx_BaseAvatar {
                    margin-right: var(--cpd-space-2x);
                    width: 24px;
                    height: 24px;
                    -ms-flex-negative: 0;
                        flex-shrink: 0;
                }

                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option > .mx_BaseAvatar .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option > .mx_BaseAvatar .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option > .mx_BaseAvatar .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option > .mx_SpotlightDialog_metaspaceResult .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option > .mx_DecoratedRoomAvatar .mx_BaseAvatar, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option > .mx_BaseAvatar .mx_BaseAvatar {
                        width: inherit;
                        height: inherit;
                    }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails {
                    display: -webkit-box;
                    display: -ms-flexbox;
                    display: flex;
                    -webkit-box-orient: vertical;
                    -webkit-box-direction: normal;
                        -ms-flex-direction: column;
                            flex-direction: column;
                    -webkit-box-flex: 1;
                        -ms-flex-positive: 1;
                            flex-grow: 1;
                    min-width: 0;
                }

                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader {
                        display: -webkit-box;
                        display: -ms-flexbox;
                        display: flex;
                        -webkit-box-orient: horizontal;
                        -webkit-box-direction: normal;
                            -ms-flex-direction: row;
                                flex-direction: row;
                        line-height: 1.5rem;
                        margin-right: var(--cpd-space-2x);
                    }

                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomName, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomName, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomName, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomName {
                            color: var(--timeline-text-color);
                            font-size: 0.9375rem;
                            overflow: hidden;
                            text-overflow: ellipsis;
                        }
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias {
                            /* $secondary-content, not $tertiary-content: at 12px this has to meet WCAG AA
                               (4.5:1) against the dialog background, and tertiary is 3.5:1 in the light
                               and dark themes. */
                            color: #2e2f32;
                            color: var(--secondary-content, #2e2f32);
                            font-size: 0.75rem;
                            margin-left: var(--cpd-space-2x);
                            overflow: hidden;
                            text-overflow: ellipsis;
                        }
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription {
                        color: #2e2f32;
                        color: var(--secondary-content, #2e2f32);
                        font-size: 0.75rem;
                        white-space: normal;
                        word-wrap: break-word;
                        line-height: 1.25rem;
                        display: -webkit-box;
                        -webkit-box-orient: vertical;
                        -webkit-line-clamp: 3;
                        overflow: hidden;
                    }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_notificationBadge, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_notificationBadge, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_notificationBadge, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_notificationBadge {
                    margin-left: var(--cpd-space-2x);
                }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu,
                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications {
                    width: 16px;
                    height: 16px;
                    padding: var(--cpd-space-0-5x);
                    -ms-flex-negative: 0;
                        flex-shrink: 0;
                    margin-top: auto;
                    margin-bottom: auto;
                    position: relative;
                    display: none;
                }

                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications svg {
                        width: inherit;
                        height: inherit;
                        display: block;
                        color: #2e2f32;
                        color: var(--tertiary-content, #2e2f32);
                    }

                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:focus-visible svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:focus-visible svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:focus-visible svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:focus-visible svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:focus-visible svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:focus-visible svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--menu:focus-visible svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:hover svg,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option .mx_SpotlightDialog_option--notifications:focus-visible svg {
                        color: #2e2f32;
                        color: var(--secondary-content, #2e2f32);
                    }
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--notifications,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--notifications,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--notifications,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--notifications,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--notifications,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--notifications,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_option--notifications,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--menu,
                    .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_option--notifications {
                        display: block;
                    }

                    /* $secondary-content is legible at rest but only 4.2:1 against the hover
                       background ($quinary-content), so step up to $primary-content to keep WCAG AA. */
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option:hover .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomHeader .mx_SpotlightDialog_result_publicRoomAlias,
                        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_result_publicRoomDetails .mx_SpotlightDialog_result_publicRoomDescription {
                            color: var(--timeline-text-color);
                        }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_results .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_enterPrompt, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_enterPrompt, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_enterPrompt, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_hiddenResults .mx_SpotlightDialog_option[aria-selected="true"] .mx_SpotlightDialog_enterPrompt {
                    display: inline-block;
                }

        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_inviteLink,
        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_createRoom {
            margin-top: var(--cpd-space-2x);
        }

            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_inviteLink .mx_AccessibleButton, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_createRoom .mx_AccessibleButton {
                position: relative;
                margin: 0;
                padding: 3px var(--cpd-space-2x) 3px var(--cpd-space-7x);
            }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_inviteLink .mx_AccessibleButton svg, .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_createRoom .mx_AccessibleButton svg {
                    display: block;
                    position: absolute;
                    left: var(--cpd-space-2x);
                    width: 16px;
                    height: 16px;
                    color: var(--cpd-color-icon-primary);
                }
            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option {
                padding-left: var(--cpd-space-8x);
                position: relative;
            }

                .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_option svg {
                    color: #2e2f32;
                    color: var(--secondary-content, #2e2f32);
                    width: 24px;
                    height: 24px;
                    position: absolute;
                    left: var(--cpd-space-1x);
                    top: 50%;
                    -webkit-transform: translateY(-50%);
                            transform: translateY(-50%);
                }

            .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_otherSearches .mx_SpotlightDialog_otherSearches_messageSearchText {
                font-size: 0.9375rem;
                line-height: 1.5rem;
            }

        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_result_details {
            margin-left: var(--cpd-space-2x);
            margin-right: var(--cpd-space-2x);
            /* See .mx_SpotlightDialog_result_publicRoomAlias: 12px text needs 4.5:1 at rest too. */
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            font-size: 0.75rem;
            line-height: 0.9375rem;
            min-width: 0;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_recentSearches > h4 > .mx_AccessibleButton_kind_link {
            float: right;
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }

        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_enterPrompt {
            padding: 2px var(--cpd-space-1x);
            /* To avoid any styling inherent with <kbd> elements */
            font-family: inherit;
            font-weight: inherit;
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #2e2f32;
            color: var(--tertiary-content, #2e2f32);
            border-radius: 6px;
            background-color: #6f7882;
            background-color: var(--quinary-content, #6f7882);
            margin-right: var(--cpd-space-1x);
            display: none;
        }

        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_metaspaceResult svg {
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            width: inherit;
            height: inherit;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/*
 * To avoid visual glitching of two modals stacking briefly, we customise the
 * terms dialog sizing when it will appear for the integration manager so that
 * it gets the same basic size as the IM's own modal.
 */
.mx_TermsDialog_forIntegrationManager .mx_Dialog_border {
    width: 60%;
    height: 70%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

.mx_TermsDialog_termsTableHeader {
    font-weight: bold;
    text-align: left;
}

.mx_TermsDialog_termsTable {
    font-size: 0.75rem;
    width: 100%;
}

.mx_TermsDialog_service,
.mx_TermsDialog_summary {
    padding-right: 10px;
}
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 * Copyright 2024 The Matrix.org Foundation C.I.C.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_UnpinAllDialog {
    /* 396 is coming from figma and we remove the left and right paddings of the dialog */
    width: calc(396px - (var(--cpd-space-10x) * 2));
    padding-bottom: var(--cpd-space-2x);
}

    .mx_UnpinAllDialog .mx_UnpinAllDialog_title {
        /* Override the default heading style */
        font: var(--cpd-font-heading-sm-semibold) !important;
        margin-bottom: var(--cpd-space-3x);
    }

    .mx_UnpinAllDialog .mx_UnpinAllDialog_buttons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-4x);
        margin: var(--cpd-space-8x) var(--cpd-space-2x) 0 var(--cpd-space-2x);
    }

        .mx_UnpinAllDialog .mx_UnpinAllDialog_buttons button {
            width: 100%;
        }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_UploadConfirmDialog_fileIcon {
    margin-right: 5px;
}

.mx_UploadConfirmDialog_previewOuter {
    text-align: center;
}

.mx_UploadConfirmDialog_previewInner {
    display: inline-block;
    text-align: left;
    width: 478px;
    width: var(--MediaPreview-width);
}

.mx_UploadConfirmDialog_imagePreview {
    max-height: 300px;
    max-width: 100%;
    border-radius: 4px;
    border: 1px solid var(--cpd-color-icon-tertiary);
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsDialog_toastContainer {
    position: absolute;
    bottom: var(--cpd-space-10x);
    width: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

.mx_UserSettingsDialog_title {
    /* Override default dialog font style */
    font: var(--cpd-font-heading-md-regular) !important;
}

    .mx_UserSettingsDialog_title .mx_UserSettingsDialog_title_strong {
        font: var(--cpd-font-heading-md-semibold);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_VerifyEMailDialog {
    height: auto;
    top: 300px;
}

    .mx_VerifyEMailDialog .mx_Dialog {
        color: var(--timeline-text-color);
        font: var(--cpd-font-body-md-regular);
        padding: var(--cpd-space-6x) var(--cpd-space-6x) var(--cpd-space-4x);
        text-align: center;
        /* !important override compound  */
        width: 485px !important;
    }

        .mx_VerifyEMailDialog .mx_Dialog h1 {
            font-size: 1.5rem;
            font-weight: var(--cpd-font-weight-semibold);
        }

        .mx_VerifyEMailDialog .mx_Dialog .mx_VerifyEMailDialog_text-light {
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            line-height: 20px;
        }

        .mx_VerifyEMailDialog .mx_Dialog .mx_AuthBody_did-not-receive {
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            margin-bottom: var(--cpd-space-2x);
        }

        .mx_VerifyEMailDialog .mx_Dialog .mx_Dialog_cancelButton {
            right: 10px;
        }
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_WidgetCapabilitiesPromptDialog .text-muted {
        font-size: 0.75rem;
    }

    .mx_WidgetCapabilitiesPromptDialog .mx_Dialog_content {
        margin-bottom: 16px;
    }

    .mx_WidgetCapabilitiesPromptDialog .mx_WidgetCapabilitiesPromptDialog_cap {
        margin-top: 20px;
        font-size: 0.9375rem;
        line-height: 0.9375rem;
    }

    .mx_WidgetCapabilitiesPromptDialog .mx_Dialog_buttons {
        margin-top: 40px; /* double normal */
    }

    .mx_WidgetCapabilitiesPromptDialog .mx_SettingsFlag {
        line-height: calc(0.875rem + 7px + 7px); /* 7px top & bottom padding */
        color: #61708b;
        font-size: 0.75rem;
    }

        .mx_WidgetCapabilitiesPromptDialog .mx_SettingsFlag .mx_ToggleSwitch {
            /* downsize the switch + ball */
            width: 2rem;
            height: 0.9375rem;
        }

            .mx_WidgetCapabilitiesPromptDialog .mx_SettingsFlag .mx_ToggleSwitch.mx_ToggleSwitch_on > .mx_ToggleSwitch_ball {
                left: calc(100% - 0.9375rem);
            }

            .mx_WidgetCapabilitiesPromptDialog .mx_SettingsFlag .mx_ToggleSwitch .mx_ToggleSwitch_ball {
                width: 0.9375rem;
                height: 0.9375rem;
                border-radius: 0.9375rem;
            }
}
@layer app-web{

/*
 Copyright 2026 Element Creations Ltd.

 SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 Please see LICENSE files in the repository root for full details.
*/

.mx_UnknownIdentityUsersWarningDialog {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    height: 600px; /* Consistency with InviteDialog */
}

.mx_UnknownIdentityUsersWarningDialog_headerContainer {
    /* Centre the PageHeader component horizontally */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;

    /* Styling for the regular text inside the header */
    font: var(--cpd-font-body-lg-regular);

    /* Space before the list */
    padding-bottom: var(--cpd-space-6x);
}

.mx_UnknownIdentityUsersWarningDialog_userList {
    width: 100%;
    overflow: auto;

    /* Fill available vertical space, but don't allow it to shrink to less than 60px (about the height of a single tile) */
    -webkit-box-flex: 1;
        -ms-flex: 1 0 60px;
            flex: 1 0 60px;

    /* Remove browser default ul padding/margin */
    padding: 0;
    margin: 0;
}

.mx_UnknownIdentityUsersWarningDialog_buttons {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-4x);
}

    .mx_UnknownIdentityUsersWarningDialog_buttons > button {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2018, 2019 , 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_AccessSecretStorageDialog.mx_EncryptionCard {
        /* override some styles that we don't need */
        border: 0px none;
        -webkit-box-shadow: none;
                box-shadow: none;
        padding: 0px;
    }
            .mx_AccessSecretStorageDialog .mx_AccessSecretStorageDialog_primaryContainer .mx_AccessSecretStorageDialog_recoveryKeyEntry input {
                /*
                * From figma: https://www.figma.com/design/ZodBLtGnKmRTGJo5SGLnH3/ER-137--Excluding-Insecure-Devices?node-id=102-43729&t=QmewENUd7f6Tmw9U-1
                */
                width: 448px;
                height: 70px;
                margin: 0px;
                border: 1px solid;
                background-color: transparent;
                color: var(--timeline-text-color);
                padding: 9px;
                font: var(--cpd-font-body-md-semibold);
                font-weight: var(--cpd-font-weight-semibold);
            }
                .mx_AccessSecretStorageDialog .mx_AccessSecretStorageDialog_primaryContainer .mx_AccessSecretStorageDialog_recoveryKeyEntry input:focus {
                    outline: none;
                    -webkit-box-shadow: none;
                            box-shadow: none;
                }
            .mx_AccessSecretStorageDialog .mx_AccessSecretStorageDialog_primaryContainer .mx_AccessSecretStorageDialog_recoveryKeyFeedback svg {
                display: inline-block;
                vertical-align: bottom;
                width: 20px;
                height: 20px;
                -webkit-mask-size: 20px;
                        mask-size: 20px;
                -webkit-margin-end: 5px;
                        margin-inline-end: 5px;
            }

            .mx_AccessSecretStorageDialog .mx_AccessSecretStorageDialog_primaryContainer .mx_AccessSecretStorageDialog_recoveryKeyFeedback.mx_AccessSecretStorageDialog_recoveryKeyFeedback--invalid {
                color: #ff5b55;
                color: var(--alert, #ff5b55);
            }

                .mx_AccessSecretStorageDialog .mx_AccessSecretStorageDialog_primaryContainer .mx_AccessSecretStorageDialog_recoveryKeyFeedback.mx_AccessSecretStorageDialog_recoveryKeyFeedback--invalid svg {
                    color: #ff5b55;
                    color: var(--alert, #ff5b55);
                }

    .mx_AccessSecretStorageDialog .mx_EncryptionCard_buttons {
        margin-top: var(--cpd-space-20x);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CreateCrossSigningDialog {
    /* Why you ask? Because CompleteSecurityBody is 600px so this is the width */
    /* we end up when in there, but when in our own dialog we set our own width */
    /* so need to fix it to something sensible as otherwise we'd end up either */
    /* really wide or really narrow depending on the phase. I bet you wish you */
    /* never asked. */
    width: 560px;
}

    .mx_CreateCrossSigningDialog details .mx_AccessibleButton {
        margin: 1em 0; /* emulate paragraph spacing because we can't put this button in a paragraph due to HTML rules */
    }

.mx_CreateCrossSigningDialog .mx_Dialog_title {
    /* TODO: Consider setting this for all dialog titles. */
    margin-bottom: 1em;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019, 2020 The Matrix.org Foundation C.I.C.
Copyright 2018 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CreateSecretStorageDialog {
    /* Why you ask? Because CompleteSecurityBody is 600px so this is the width */
    /* we end up when in there, but when in our own dialog we set our own width */
    /* so need to fix it to something sensible as otherwise we'd end up either */
    /* really wide or really narrow depending on the phase. I bet you wish you */
    /* never asked. */
    width: 560px;
}

    .mx_CreateSecretStorageDialog.mx_SuccessDialog {
        padding: 56px; /* 80px from design - 24px wrapper padding */
    }

        .mx_CreateSecretStorageDialog.mx_SuccessDialog .mx_Dialog_title {
            margin-bottom: var(--cpd-space-4x);
        }

    .mx_CreateSecretStorageDialog .mx_SettingsFlag {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

    .mx_CreateSecretStorageDialog .mx_SettingsFlag_label {
        -webkit-box-flex: 1;
            -ms-flex: 1 1 0px;
                flex: 1 1 0;
        min-width: 0;
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_CreateSecretStorageDialog .mx_ToggleSwitch {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        margin-left: 30px;
    }

    .mx_CreateSecretStorageDialog details .mx_AccessibleButton {
        margin: 1em 0; /* emulate paragraph spacing because we can't put this button in a paragraph due to HTML rules */
    }

.mx_CreateSecretStorageDialog .mx_Dialog_title {
    /* TODO: Consider setting this for all dialog titles. */
    margin-bottom: 1em;
}

.mx_CreateSecretStorageDialog_centeredTitle,
.mx_CreateSecretStorageDialog_centeredBody {
    text-align: center;
}

.mx_CreateSecretStorageDialog_primaryContainer {
    /* FIXME: plinth colour in new theme(s). background-color: $accent; */
    padding-top: 20px;
}

    .mx_CreateSecretStorageDialog_primaryContainer.mx_CreateSecretStorageDialog_recoveryKeyPrimarycontainer {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

.mx_CreateSecretStorageDialog_primaryContainer::after {
    content: "";
    clear: both;
    display: block;
}

.mx_CreateSecretStorageDialog_primaryContainer .mx_StyledRadioButton {
    margin-bottom: 16px;
    padding: 11px;
}

.mx_CreateSecretStorageDialog_optionTitle {
    color: var(--timeline-text-color);
    font-weight: var(--cpd-font-weight-semibold);
    font-size: 1.125rem;
    padding-bottom: 10px;
}

.mx_CreateSecretStorageDialog_passPhraseContainer {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
}

.mx_Field.mx_CreateSecretStorageDialog_passPhraseField {
    margin-top: 0px;
}

.mx_CreateSecretStorageDialog_passPhraseMatch {
    width: 200px;
    margin-left: 20px;
}

.mx_CreateSecretStorageDialog_recoveryKeyContainer {
    display: inline-block;
}

.mx_CreateSecretStorageDialog_recoveryKey {
    font-weight: bold;
    text-align: center;
    padding: 20px;
    color: var(--timeline-text-secondary-color);
    background-color: #f7f7f7;
    border-radius: 6px;
    word-spacing: 1em;
    margin-bottom: 20px;
}

    .mx_CreateSecretStorageDialog_recoveryKey code {
        display: inline-block;
        width: 30rem;
    }

.mx_CreateSecretStorageDialog_recoveryKeyButtons {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 16px;
}

.mx_CreateSecretStorageDialog_recoveryKeyButtons_copyBtn {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

.mx_CreateSecretStorageDialog_recoveryKeyButtons .mx_AccessibleButton {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    white-space: nowrap;
}

.mx_CreateSecretStorageDialog_continueSpinner {
    margin-top: 33px;
    text-align: right;
}

.mx_CreateSecretStorageDialog_continueSpinner img {
    width: 20px;
    height: 20px;
}
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_KeyBackupFailedDialog .mx_Dialog_title {
    margin-bottom: 32px;
}

.mx_KeyBackupFailedDialog_title {
    padding-bottom: 10px;
}

    .mx_KeyBackupFailedDialog_title svg {
        margin-right: var(--cpd-space-2x);
        vertical-align: -2px;
        color: var(--timeline-text-color);
    }

.mx_KeyBackupFailedDialog .mx_Dialog_buttons {
    margin-top: 36px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.
Copyright 2018 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RestoreKeyBackupDialog_keyStatus {
    height: 30px;
}

.mx_RestoreKeyBackupDialog_primaryContainer {
    /* FIXME: plinth colour in new theme(s). background-color: $accent; */
    padding: 20px;
}

.mx_RestoreKeyBackupDialog_passPhraseInput {
    background-color: transparent;
    color: var(--timeline-text-color);
    padding: 9px;
    font: var(--cpd-font-body-md-semibold);
    font-weight: var(--cpd-font-weight-semibold);
    min-width: 0;
}
    .mx_RestoreKeyBackupDialog_passPhraseInput:focus {
        outline: none;
        -webkit-box-shadow: none;
                box-shadow: none;
    }

.mx_RestoreKeyBackupDialog_passPhraseInput,
.mx_RestoreKeyBackupDialog_recoveryKeyInput {
    width: 300px;
    border: 1px solid #0dbd8b;
    border: 1px solid var(--accent-color, #0dbd8b);
    border-radius: 5px;
    padding: 10px;
}

.mx_RestoreKeyBackupDialog_content > div {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    min-height: 110px; /* Empirically measured */
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
        .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_Option.mx_GenericDropdownMenu_Option--header {
            padding-top: var(--cpd-space-3x);
            padding-bottom: var(--cpd-space-1x);
            min-width: 160px;
        }

        .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_Option.mx_GenericDropdownMenu_Option--item {
            padding-top: var(--cpd-space-1x);
            padding-bottom: var(--cpd-space-1x);
        }

            .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_Option.mx_GenericDropdownMenu_Option--item > .mx_GenericDropdownMenu_Option--label span:first-child {
                font-weight: normal;
            }

        .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_Option > .mx_GenericDropdownMenu_Option--label {
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
            -webkit-box-align: baseline;
                -ms-flex-align: baseline;
                    align-items: baseline;
            -ms-flex-line-pack: baseline;
                align-content: baseline;
            color: var(--timeline-text-color);
        }

            .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_Option > .mx_GenericDropdownMenu_Option--label span:not(:first-child) {
                margin-left: var(--cpd-space-1x);
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
            }

    .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_divider {
        margin-top: var(--cpd-space-1x);
        margin-bottom: var(--cpd-space-1x);
    }

        .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_divider + .mx_GenericDropdownMenu_Option .mx_GenericDropdownMenu_Option--label {
            font-size: 0.9375rem;
        }

.mx_NetworkDropdown_removeServer {
    position: relative;
    display: inline-block;
    width: 14px;
    height: 14px;
    padding: 1px;
    background: #6f7882;
    background: var(--quinary-content, #6f7882);
    border-radius: 8px;
    text-align: center;
    line-height: 16px;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    margin-left: auto;
}

    .mx_NetworkDropdown_removeServer svg {
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        height: inherit;
        width: inherit;
    }

.mx_NetworkDropdown_dialog .mx_Dialog {
    width: 45vw;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 Vector Creations Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AccessibleButton {
    cursor: pointer;
}

    .mx_AccessibleButton:where(button) {
        /* Clear default button styling */
        -webkit-appearance: none;
           -moz-appearance: none;
                appearance: none;
        background: none;
        border: none;
        padding: 0;
        margin: 0;
        font-size: inherit;
        font-family: inherit;
        line-height: inherit;
        -webkit-box-sizing: content-box;
                box-sizing: content-box;
    }

    .mx_AccessibleButton.mx_AccessibleButton_disabled {
        cursor: not-allowed;
    }

        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_icon_primary,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_icon_primary_outline,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_primary,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_primary_outline,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_primary_sm,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_link,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_link_accent,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_link_inline,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_danger_inline,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_content_inline,
        .mx_AccessibleButton.mx_AccessibleButton_disabled.mx_AccessibleButton_kind_link_sm {
            opacity: 0.4;
        }

    .mx_AccessibleButton.mx_AccessibleButton_hasKind {
        padding: 7px 18px;
        text-align: center;
        border-radius: 24px;
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        font: var(--cpd-font-body-md-semibold);
        border: none; /* override default <button /> styles */
        word-break: keep-all; /* prevent button text in Chinese/Japanese/Korean (CJK) from being collapsed */
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
    }

        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_primary_sm,
        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_danger_sm,
        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_link_sm {
            padding: 5px 12px;
        }

        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_primary_sm {
            color: var(--cpd-color-text-on-solid-primary);
            background-color: var(--cpd-color-bg-action-primary-rest);
            border: 1px solid var(--cpd-color-bg-action-primary-rest);
        }

        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_danger_sm {
            color: var(--cpd-color-text-on-solid-primary);
            background-color: var(--cpd-color-bg-critical-primary);
            border: 1px solid var(--cpd-color-bg-critical-primary);
        }

        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_link_sm {
            color: var(--cpd-color-text-primary);
            text-decoration: underline;
            font-weight: var(--cpd-font-weight-semibold);
        }

        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_icon,
        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_icon_primary,
        .mx_AccessibleButton.mx_AccessibleButton_hasKind.mx_AccessibleButton_kind_icon_primary_outline {
            padding: 0;
            height: 32px;
            width: 32px;
        }

    .mx_AccessibleButton.mx_AccessibleButton_kind_icon_primary,
    .mx_AccessibleButton.mx_AccessibleButton_kind_icon_primary_outline,
    .mx_AccessibleButton.mx_AccessibleButton_kind_primary,
    .mx_AccessibleButton.mx_AccessibleButton_kind_primary_outline,
    .mx_AccessibleButton.mx_AccessibleButton_kind_secondary {
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_icon_primary,
    .mx_AccessibleButton.mx_AccessibleButton_kind_primary {
        border: 1px solid var(--cpd-color-bg-action-primary-rest);
        color: var(--cpd-color-text-on-solid-primary);
        background-color: var(--cpd-color-bg-action-primary-rest);
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_icon_primary_outline,
    .mx_AccessibleButton.mx_AccessibleButton_kind_primary_outline {
        border: 1px solid var(--cpd-color-border-interactive-secondary);
        color: var(--cpd-color-text-primary);
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_secondary {
        color: var(--cpd-color-text-primary);
        text-decoration: underline;
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_danger {
        color: var(--cpd-color-text-on-solid-primary);
        background-color: var(--cpd-color-bg-critical-primary);
        border: 1px solid var(--cpd-color-bg-critical-primary);
    }

        .mx_AccessibleButton.mx_AccessibleButton_kind_danger.mx_AccessibleButton_disabled {
            color: var(--cpd-color-text-on-solid-primary);
            background-color: var(--cpd-color-bg-critical-primary);
        }

    .mx_AccessibleButton.mx_AccessibleButton_kind_danger_outline {
        color: var(--cpd-color-text-critical-primary);
        background-color: transparent;
        border: 1px solid var(--cpd-color-border-critical-subtle);
    }

        .mx_AccessibleButton.mx_AccessibleButton_kind_danger_outline.mx_AccessibleButton_disabled {
            color: var(--cpd-color-text-disabled);
            border-color: var(--cpd-color-border-disabled);
        }
        .mx_AccessibleButton.mx_AccessibleButton_kind_danger_sm.mx_AccessibleButton_disabled {
            color: var(--cpd-color-text-disabled);
            background-color: var(--cpd-color-bg-subtle-primary);
        }

    .mx_AccessibleButton.mx_AccessibleButton_kind_link,
    .mx_AccessibleButton.mx_AccessibleButton_kind_link_inline,
    .mx_AccessibleButton.mx_AccessibleButton_kind_danger_inline,
    .mx_AccessibleButton.mx_AccessibleButton_kind_content_inline {
        font-size: inherit;
        font-weight: var(--cpd-font-weight-semibold);
        line-height: inherit;
        padding: 0;
        text-decoration: underline;
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_link,
    .mx_AccessibleButton.mx_AccessibleButton_kind_link_inline {
        color: var(--cpd-color-text-primary);
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_danger_inline {
        color: var(--cpd-color-text-critical-primary);
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_content_inline {
        color: var(--timeline-text-color);
    }

    .mx_AccessibleButton.mx_AccessibleButton_kind_link_inline,
    .mx_AccessibleButton.mx_AccessibleButton_kind_danger_inline,
    .mx_AccessibleButton.mx_AccessibleButton_kind_content_inline {
        display: inline;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2019 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CopyableText {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    max-width: 100%;
}

    .mx_CopyableText.mx_CopyableText_border {
        overflow: auto;
        border-radius: 5px;
        border: solid 1px var(--timeline-text-secondary-color);
        margin-bottom: 10px;
        margin-top: 10px;
        padding: 10px;
    }

    .mx_CopyableText .mx_CopyableText_copyButton {
        -ms-flex-negative: 0;
            flex-shrink: 0;
        display: block;
        /* If the copy button is used within a scrollable div, make it stick to the right while scrolling */
        position: sticky;
        margin-left: var(--cpd-space-1x);
    }

        .mx_CopyableText .mx_CopyableText_copyButton svg {
            color: var(--timeline-text-color);
            display: block;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_desktopCapturerSourcePicker {
    overflow: hidden;
}

    .mx_desktopCapturerSourcePicker .mx_desktopCapturerSourcePicker_tab {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: start;
            -ms-flex-align: start;
                align-items: flex-start;
        height: 500px;
        overflow: overlay;
    }

        .mx_desktopCapturerSourcePicker .mx_desktopCapturerSourcePicker_tab .mx_desktopCapturerSourcePicker_source {
            width: 50%;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
        }

            .mx_desktopCapturerSourcePicker .mx_desktopCapturerSourcePicker_tab .mx_desktopCapturerSourcePicker_source .mx_desktopCapturerSourcePicker_source_thumbnail {
                margin: 4px;
                padding: 4px;
                border-width: 2px;
                border-radius: 8px;
                border-style: solid;
                border-color: transparent;
            }

                .mx_desktopCapturerSourcePicker .mx_desktopCapturerSourcePicker_tab .mx_desktopCapturerSourcePicker_source .mx_desktopCapturerSourcePicker_source_thumbnail.mx_desktopCapturerSourcePicker_source_thumbnail_selected,
                .mx_desktopCapturerSourcePicker .mx_desktopCapturerSourcePicker_tab .mx_desktopCapturerSourcePicker_source .mx_desktopCapturerSourcePicker_source_thumbnail:hover,
                .mx_desktopCapturerSourcePicker .mx_desktopCapturerSourcePicker_tab .mx_desktopCapturerSourcePicker_source .mx_desktopCapturerSourcePicker_source_thumbnail:focus {
                    border-color: #0dbd8b;
                    border-color: var(--accent-color, #0dbd8b);
                }

            .mx_desktopCapturerSourcePicker .mx_desktopCapturerSourcePicker_tab .mx_desktopCapturerSourcePicker_source .mx_desktopCapturerSourcePicker_source_name {
                margin: 0 4px;
                white-space: nowrap;
                text-overflow: ellipsis;
                overflow: hidden;
            }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DialPadBackspaceButton {
    height: 20px;
    width: 20px;
    padding: var(--cpd-space-1x);
}

    .mx_DialPadBackspaceButton svg {
        color: #8d97a5;
        width: inherit;
        height: inherit;
        display: inline-block;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Dropdown {
    position: relative;
    color: var(--timeline-text-color);
}

.mx_Dropdown_disabled {
    opacity: 0.3;
}

.mx_Dropdown_input {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: relative;
    border-radius: 8px;
    border: 1px solid var(--cpd-color-border-interactive-secondary);
    font: var(--cpd-font-body-sm-regular);
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
}

.mx_Dropdown_input.mx_AccessibleButton_disabled {
    cursor: not-allowed;
}

.mx_Dropdown_input:focus {
    border-color: var(--primary-color);
}

/* Disable dropdown highlight on focus */
.mx_Dropdown_input.mx_AccessibleButton:focus {
    -webkit-filter: none;
            filter: none;
}

svg.mx_Dropdown_arrow {
    width: 18px;
    height: 18px;
    margin-right: 3px;
    color: var(--timeline-text-color);
}

.mx_Dropdown_option {
    height: 35px;
    line-height: 2.1875rem;
    /* Overwrites the default padding for any li elements */
    padding: 0 8px;
}

.mx_Dropdown_input > .mx_Dropdown_option {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_Dropdown_option div {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mx_Dropdown_option img,
.mx_Dropdown_option .mx_Dropdown_option_emoji {
    margin: 5px;
    width: 16px;
    vertical-align: middle;
}

.mx_Dropdown_option_emoji {
    font-size: 1rem;
    line-height: 1rem;
}

input.mx_Dropdown_option,
input.mx_Dropdown_option:focus {
    font-weight: normal;
    border: 0;
    padding-top: 0;
    padding-bottom: 0;
    /* XXX: hack to prevent text box being too big and pushing */
    /* its parent out / overlapping the dropdown arrow. Only really */
    /* works in the Country dropdown. */
    width: 60%;
}

.mx_Dropdown_menu {
    position: absolute;
    left: -1px;
    right: -1px;
    top: 100%;
    z-index: 2;
    margin: 0;
    padding: 0px;
    border-radius: 4px;
    border: 1px solid var(--primary-color);
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    max-height: 200px;
    overflow-y: auto;
}

.mx_Dropdown_menu .mx_Dropdown_option {
    height: auto;
    min-height: 35px;
}

ul.mx_Dropdown_menu li.mx_Dropdown_option {
    list-style: none;
}

.mx_Dropdown_menu .mx_Dropdown_option_highlight {
    background-color: #dddddd;
    background-color: var(--focus-bg-color, #dddddd);
}

.mx_Dropdown_searchPrompt {
    font-weight: normal;
    margin-left: 5px;
    margin-bottom: 5px;
}
}
@layer app-web{

/*
Copyright 2017-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EditableItemList {
    margin-top: 12px;
    margin-bottom: 10px;
}

.mx_EditableItem {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 5px;
}

.mx_EditableItem_delete {
    width: 20px;
    height: 20px;
    padding: var(--cpd-space-1x);
    border-radius: 14px;
    background-color: var(--cpd-color-bg-subtle-secondary);
}
    .mx_EditableItem_delete:hover {
        background-color: var(--cpd-color-bg-subtle-primary);
    }
    .mx_EditableItem_delete svg {
        width: inherit;
        height: inherit;
        vertical-align: top;
        color: var(--cpd-color-icon-secondary);
    }
    .mx_EditableItem_delete{
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
    vertical-align: middle;
    width: 28px;
    height: 28px;
    -webkit-mask-size: 100%;
            mask-size: 100%;
}

.mx_EditableItem_email {
    vertical-align: middle;
}

.mx_EditableItem_promptText {
    margin-right: 10px;
    -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
            order: 2;
}

.mx_EditableItem_confirmBtn {
    margin-right: 5px;
}

.mx_EditableItem_item {
    -webkit-box-flex: 1;
        -ms-flex: auto 1 0px;
            flex: auto 1 0;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
    width: calc(100% - 28px); /* leave space for the remove button */
    overflow-x: hidden;
    text-overflow: ellipsis;
}

.mx_EditableItemList_label {
    margin-bottom: 5px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ErrorBoundary {
    width: 100%;
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

.mx_ErrorBoundary_body {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-width: 400px;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

    .mx_ErrorBoundary_body .mx_AccessibleButton {
        margin-top: 5px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ExternalLink {
    color: #0086e6;
    color: var(--links, #0086e6);
}

.mx_ExternalLink_icon {
    display: inline-block;
    width: 0.6875rem;
    height: 0.6875rem;
    margin-left: 0.3rem;
    vertical-align: middle;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_FacePile_more {
    /* Needed to calculate the offset on the face pile */
    --cpd-avatar-size: 28px;
    position: relative;
    border-radius: 100%;
    width: 28px;
    height: 28px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: var(--cpd-space-1x);
    background-color: var(--panels, var(--cpd-color-gray-600));
    color: #2e2f32;
    color: var(--tertiary-content, #2e2f32);
    display: inline-block;
    z-index: 1;
    /* For enhanced visibility under contrast control */
    outline: 1px solid transparent;
}

.mx_FacePile_summary {
    margin-left: 12px;
    font: var(--cpd-font-body-md-regular);
    line-height: 1.5rem;
    color: #2e2f32;
    color: var(--tertiary-content, #2e2f32);
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* TODO: Consider unifying with general input styles in _light.pcss */

.mx_Field {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 0;
    position: relative;
    margin: 1em 0;
    border-radius: 8px;
    -webkit-transition: border-color 0.25s;
    transition: border-color 0.25s;
    border: 1px solid var(--cpd-color-border-interactive-secondary);
}

.mx_Field_prefix {
    border-right: 1px solid var(--cpd-color-border-interactive-secondary);
}

.mx_Field_postfix {
    border-left: 1px solid var(--cpd-color-border-interactive-secondary);
}

.mx_Field input,
.mx_Field select,
.mx_Field textarea {
    font: var(--cpd-font-body-md-regular);
    border: none;
    /* Even without a border here, we still need this avoid overlapping the rounded */
    /* corners on the field above. */
    border-radius: 8px;
    padding: 8px 9px;
    color: var(--timeline-text-color);
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 0;
}

.mx_Field input[type="password"] {
    background-color: transparent;
    color: var(--timeline-text-color);
}
    .mx_Field input[type="password"]:focus {
        outline: none;
        -webkit-box-shadow: none;
                box-shadow: none;
    }

.mx_Field select {
    -moz-appearance: none;
    -webkit-appearance: none;
    text-overflow: ellipsis;
}

.mx_Field_select_chevron {
    position: absolute;
    top: 50%;
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
    right: 4px;
    width: 18px;
    height: 18px;
    color: var(--timeline-text-color);
    z-index: 1;
    pointer-events: none;
}

.mx_Field:focus-within {
    border-color: var(--primary-color);
}

.mx_Field input:focus,
.mx_Field select:focus,
.mx_Field textarea:focus {
    outline: 0;
}

.mx_Field input::-webkit-input-placeholder, .mx_Field textarea::-webkit-input-placeholder {
    -webkit-transition: color 0.25s ease-in 0s;
    transition: color 0.25s ease-in 0s;
    color: transparent;
}

.mx_Field input::-moz-placeholder, .mx_Field textarea::-moz-placeholder {
    -moz-transition: color 0.25s ease-in 0s;
    transition: color 0.25s ease-in 0s;
    color: transparent;
}

.mx_Field input:-ms-input-placeholder, .mx_Field textarea:-ms-input-placeholder {
    -ms-transition: color 0.25s ease-in 0s;
    transition: color 0.25s ease-in 0s;
    color: transparent;
}

.mx_Field input::-ms-input-placeholder, .mx_Field textarea::-ms-input-placeholder {
    -ms-transition: color 0.25s ease-in 0s;
    transition: color 0.25s ease-in 0s;
    color: transparent;
}

.mx_Field input::placeholder,
.mx_Field textarea::placeholder {
    -webkit-transition: color 0.25s ease-in 0s;
    transition: color 0.25s ease-in 0s;
    color: transparent;
}

.mx_Field input:placeholder-shown:focus::-webkit-input-placeholder, .mx_Field textarea:placeholder-shown:focus::-webkit-input-placeholder, .mx_Field.mx_Field_placeholderIsHint input::-webkit-input-placeholder {
    -webkit-transition: color 0.25s ease-in 0.1s;
    transition: color 0.25s ease-in 0.1s;
    color: var(--timeline-text-secondary-color);
}

.mx_Field input:placeholder-shown:focus::-moz-placeholder, .mx_Field textarea:placeholder-shown:focus::-moz-placeholder, .mx_Field.mx_Field_placeholderIsHint input::-moz-placeholder {
    -moz-transition: color 0.25s ease-in 0.1s;
    transition: color 0.25s ease-in 0.1s;
    color: var(--timeline-text-secondary-color);
}

.mx_Field input:placeholder-shown:focus:-ms-input-placeholder, .mx_Field textarea:placeholder-shown:focus:-ms-input-placeholder, .mx_Field.mx_Field_placeholderIsHint input:-ms-input-placeholder {
    -ms-transition: color 0.25s ease-in 0.1s;
    transition: color 0.25s ease-in 0.1s;
    color: var(--timeline-text-secondary-color);
}

.mx_Field input:placeholder-shown:focus::-ms-input-placeholder, .mx_Field textarea:placeholder-shown:focus::-ms-input-placeholder, .mx_Field.mx_Field_placeholderIsHint input::-ms-input-placeholder {
    -ms-transition: color 0.25s ease-in 0.1s;
    transition: color 0.25s ease-in 0.1s;
    color: var(--timeline-text-secondary-color);
}

.mx_Field input:-moz-placeholder:focus::placeholder, .mx_Field textarea:-moz-placeholder:focus::placeholder {
    -moz-transition: color 0.25s ease-in 0.1s;
    transition: color 0.25s ease-in 0.1s;
    color: var(--timeline-text-secondary-color);
}

.mx_Field input:-ms-input-placeholder:focus::placeholder, .mx_Field textarea:-ms-input-placeholder:focus::placeholder {
    -ms-transition: color 0.25s ease-in 0.1s;
    transition: color 0.25s ease-in 0.1s;
    color: var(--timeline-text-secondary-color);
}

.mx_Field input:placeholder-shown:focus::placeholder,
.mx_Field textarea:placeholder-shown:focus::placeholder,
.mx_Field.mx_Field_placeholderIsHint input::placeholder {
    -webkit-transition: color 0.25s ease-in 0.1s;
    transition: color 0.25s ease-in 0.1s;
    color: var(--timeline-text-secondary-color);
}

.mx_Field label {
    -webkit-transition:
        font-size 0.25s ease-out 0.1s,
        color 0.25s ease-out 0.1s,
        background-color 0.25s ease-out 0.1s,
        -webkit-transform 0.25s ease-out 0.1s;
    transition:
        font-size 0.25s ease-out 0.1s,
        color 0.25s ease-out 0.1s,
        background-color 0.25s ease-out 0.1s,
        -webkit-transform 0.25s ease-out 0.1s;
    transition:
        font-size 0.25s ease-out 0.1s,
        color 0.25s ease-out 0.1s,
        transform 0.25s ease-out 0.1s,
        background-color 0.25s ease-out 0.1s;
    transition:
        font-size 0.25s ease-out 0.1s,
        color 0.25s ease-out 0.1s,
        transform 0.25s ease-out 0.1s,
        background-color 0.25s ease-out 0.1s,
        -webkit-transform 0.25s ease-out 0.1s;
    background-color: transparent;
    font: var(--cpd-font-body-md-regular);
    color: var(--cpd-color-text-secondary);
    -webkit-transform: translateY(0);
            transform: translateY(0);
    position: absolute;
    left: 0px;
    margin: 7px 8px;
    padding: 2px;
    pointer-events: none; /* Allow clicks to fall through to the input */
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: calc(100% - 20px); /* 100% of parent minus margin and padding */
}

.mx_Field input:not(:-moz-placeholder) + label, .mx_Field textarea:not(:-moz-placeholder) + label {
    -moz-transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        transform 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s;
    transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        transform 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s;
    font-size: 0.625rem;
    transform: translateY(-13px);
    padding: 0 2px;
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    pointer-events: initial;
}

.mx_Field input:not(:-ms-input-placeholder) + label, .mx_Field textarea:not(:-ms-input-placeholder) + label {
    -ms-transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        transform 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s;
    transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        transform 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s;
    font-size: 0.625rem;
    transform: translateY(-13px);
    padding: 0 2px;
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    pointer-events: initial;
}

.mx_Field_labelAlwaysTopLeft label,
.mx_Field select + label /* Always show a select's label on top to not collide with the value */,
.mx_Field input:focus + label,
.mx_Field input:not(:placeholder-shown) + label,
.mx_Field textarea:focus + label,
.mx_Field textarea:not(:placeholder-shown) + label {
    -webkit-transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s,
        -webkit-transform 0.25s ease-out 0s;
    transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s,
        -webkit-transform 0.25s ease-out 0s;
    transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        transform 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s;
    transition:
        font-size 0.25s ease-out 0s,
        color 0.25s ease-out 0s,
        transform 0.25s ease-out 0s,
        background-color 0.25s ease-out 0s,
        -webkit-transform 0.25s ease-out 0s;
    font-size: 0.625rem;
    -webkit-transform: translateY(-13px);
            transform: translateY(-13px);
    padding: 0 2px;
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    pointer-events: initial;
}

.mx_Field input:focus + label,
.mx_Field select:focus + label,
.mx_Field textarea:focus + label {
    color: var(--primary-color);
}

.mx_Field select:disabled,
.mx_Field select:disabled + label,
.mx_Field input:disabled,
.mx_Field input:disabled + label,
.mx_Field textarea:disabled,
.mx_Field textarea:disabled + label {
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    color: var(--timeline-text-secondary-color);
}
    .mx_Field_valid.mx_Field,
    .mx_Field_valid.mx_Field:focus-within {
        border-color: #0dbd8b;
        border-color: var(--accent-color, #0dbd8b);
    }

    .mx_Field_valid.mx_Field label,
    .mx_Field_valid.mx_Field:focus-within label {
        color: #0dbd8b;
        color: var(--accent-color, #0dbd8b);
    }
    .mx_Field_invalid.mx_Field,
    .mx_Field_invalid.mx_Field:focus-within {
        border-color: #ff5b55;
        border-color: var(--alert, #ff5b55);
    }

    .mx_Field_invalid.mx_Field label,
    .mx_Field_invalid.mx_Field:focus-within label {
        color: #ff5b55;
        color: var(--alert, #ff5b55);
    }

/* Customise other components when placed inside a Field */

.mx_Field .mx_Dropdown_input {
    border: medium none currentcolor;
    border: initial;
    border-radius: 0;
    border-radius: initial;
}

.mx_Field .mx_CountryDropdown {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_GenericEventListSummary {
    position: relative;
}

    .mx_GenericEventListSummary .mx_GenericEventListSummary_avatars {
        margin-right: var(--cpd-space-2x);
    }

    .mx_GenericEventListSummary .mx_GenericEventListSummary_spacer {
        border-bottom: 1px solid var(--roomlist-separator-color);
        margin-left: 63px;
        line-height: 1.875rem; /* TODO: Use a variable */
    }

        .mx_IRCLayout .mx_GenericEventListSummary .mx_GenericEventListSummary_spacer {
            line-height: var(--line-height);
        }

    .mx_GenericEventListSummary .mx_GenericEventListSummary_toggle {
        /* We reuse a title cased translation */
        text-transform: lowercase;
    }
        .mx_GenericEventListSummary[data-layout="irc"] .mx_GenericEventListSummary_toggle, .mx_GenericEventListSummary[data-layout="group"] .mx_GenericEventListSummary_toggle {
            float: right;
            margin-inline: 0 10px;
        }

    .mx_GenericEventListSummary[data-layout="group"] {
        margin-top: var(--cpd-space-2x);
    }

    .mx_GenericEventListSummary[data-layout="bubble"] {
        --maxWidth: 70%;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-left: calc(var(--avatarSize) + var(--gutterSize));

        /* ideally we'd use display=contents here for the layout to all work regardless of the *ELS but */
    }

        .mx_GenericEventListSummary[data-layout="bubble"] .mx_GenericEventListSummary_toggle {
            margin-block: 0;
        }

            .mx_GenericEventListSummary[data-layout="bubble"] .mx_GenericEventListSummary_toggle[aria-expanded="false"] {
                -webkit-box-ordinal-group: 10;
                    -ms-flex-order: 9;
                        order: 9; /* TODO: Remove */
            }

            .mx_GenericEventListSummary[data-layout="bubble"] .mx_GenericEventListSummary_toggle[aria-expanded="true"] {
                -webkit-margin-start: auto;
                        margin-inline-start: auto; /* reduce clickable area */
                -webkit-margin-end: var(--EventTile_bubble-margin-inline-end);
                        margin-inline-end: var(--EventTile_bubble-margin-inline-end); /* as the parent has zero margin */
            }

        .mx_GenericEventListSummary[data-layout="bubble"] .mx_GenericEventListSummary_spacer {
            display: none;
        }

        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] {
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                    justify-content: space-between;
            -webkit-column-gap: 5px;
               -moz-column-gap: 5px;
                    column-gap: 5px;
        }
        /* that breaks ScrollPanel's reliance upon offsetTop so we have to have a bit more finesse. */
        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] {
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            margin: 0;
        }

        .mx_GenericEventListSummary[data-layout="bubble"]::after {
            content: "";
            clear: both;
        }
            .mx_GenericEventListSummary[data-layout="bubble"]:hover::before {
                background: transparent;
            }

    .mx_MatrixChat_useCompactLayout .mx_GenericEventListSummary {
        font-size: 0.8125rem;
        margin-top: var(--cpd-space-1x);
    }

        .mx_MatrixChat_useCompactLayout .mx_GenericEventListSummary .mx_EventTile_line {
            line-height: 1.25;
        }

        .mx_MatrixChat_useCompactLayout .mx_GenericEventListSummary .mx_GenericEventListSummary_spacer {
            line-height: 1.375;
        }

        .mx_MatrixChat_useCompactLayout .mx_GenericEventListSummary .mx_TextualEvent.mx_GenericEventListSummary_summary {
            font: var(--cpd-font-body-sm-regular);
        }

    /* Make all state events one order smaller than the other events */
    .mx_GenericEventListSummary .mx_EventTile {
        font: var(--cpd-font-body-sm-regular);
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

.mx_GenericEventListSummary_unstyledList {
    list-style: none;
    padding: 0;
}

.mx_TextualEvent.mx_GenericEventListSummary_summary {
    font: var(--cpd-font-body-sm-regular);
    display: inline;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

.mx_GenericEventListSummary_avatars {
    display: inline-block;
    line-height: 0.75rem;
}

    .mx_GenericEventListSummary_avatars .mx_BaseAvatar {
        margin-right: -4px;
        cursor: pointer;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

:root {
    --image-view-panel-height: 68px;
}

.mx_ImageView {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    height: 100%;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

.mx_ImageView_image_wrapper {
    pointer-events: initial;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    height: 100%;
    overflow: hidden;
}

.mx_ImageView_image {
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

    .mx_ImageView_image.mx_ImageView_image_animating {
        -webkit-transition: -webkit-transform 200ms ease 0s;
        transition: -webkit-transform 200ms ease 0s;
        transition: transform 200ms ease 0s;
        transition: transform 200ms ease 0s, -webkit-transform 200ms ease 0s;
    }

    .mx_ImageView_image.mx_ImageView_image_animatingLoading {
        -webkit-transition: -webkit-transform 300ms ease 0s;
        transition: -webkit-transform 300ms ease 0s;
        transition: transform 300ms ease 0s;
        transition: transform 300ms ease 0s, -webkit-transform 300ms ease 0s;
    }

.mx_ImageView_panel {
    width: 100%;
    height: 68px;
    height: var(--image-view-panel-height);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-animation-name: mx_ImageView_panel_keyframes;
            animation-name: mx_ImageView_panel_keyframes;
    -webkit-animation-duration: 300ms;
            animation-duration: 300ms;
}

.mx_ImageView_info_wrapper {
    pointer-events: initial;
    padding-left: 32px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: #ffffff;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
}

.mx_ImageView_info {
    padding-left: 12px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

.mx_ImageView_info_sender {
    font-weight: bold;
}

.mx_ImageView_title {
    color: #ffffff;
    font-size: 0.75rem;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
    text-align: center;
}

.mx_ImageView_toolbar {
    --icon-size: 24px;

    padding-right: 16px;
    pointer-events: initial;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    -ms-flex-preferred-size: 0;
        flex-basis: 0;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    gap: var(--cpd-space-3x);
}

.mx_ImageView_button {
    padding: calc((32px - var(--icon-size)) / 2);
    width: var(--icon-size);
    height: var(--icon-size);
    display: block;
}

    .mx_ImageView_button svg {
        height: inherit;
        width: inherit;
        display: block;
        color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
    }

.mx_ImageView_button_more {
    --icon-size: 28px;
}

.mx_ImageView_button_close {
    border-radius: 100%;
    background: #21262c; /* same on all themes */
}

@media (prefers-reduced-motion) {
    .mx_ImageView_image_animating {
        -webkit-transition: none !important;
        transition: none !important;
    }

    .mx_ImageView_image_animatingLoading {
        -webkit-transition: none !important;
        transition: none !important;
    }
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InfoTooltip_icon {
    width: 16px;
    height: 16px;
    display: inline-block;
}

    .mx_InfoTooltip_icon svg {
        height: inherit;
        width: inherit;
        color: #61708b;
    }

.mx_InfoTooltip_icon::before {
    display: inline-block;
    vertical-align: middle;
}
}
@layer app-web{

/*
Copyright 2017-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InlineSpinner {
    display: inline;
}

    .mx_InlineSpinner svg {
        margin: 0px 6px;
        vertical-align: -3px;
        display: inline-block;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InviteReason {
    position: relative;
    margin-bottom: 1em;
}

    .mx_InviteReason .mx_InviteReason_reason {
        visibility: visible;
    }

    .mx_InviteReason .mx_InviteReason_view {
        display: none;
        position: absolute;
        inset: 0;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        cursor: pointer;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

        .mx_InviteReason .mx_InviteReason_view svg {
            width: 16px;
            height: 16px;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            display: inline-block;
            margin-right: 8px;
        }
    .mx_InviteReason_hidden .mx_InviteReason_reason {
        visibility: hidden;
    }

    .mx_InviteReason_hidden .mx_InviteReason_view {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LabelledCheckbox {
    margin-top: var(--cpd-space-2x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_LanguageDropdown .mx_Dropdown_option > div {
        text-transform: capitalize;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MiniAvatarUploader {
    position: relative;
    width: -webkit-min-content;
    width: -moz-min-content;
    width: min-content;
}

    .mx_MiniAvatarUploader .mx_MiniAvatarUploader_indicator {
        position: absolute;

        height: 16px;
        width: 16px;
        padding: 5px;

        right: -6px;
        bottom: -6px;

        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        border-radius: 50%;

        line-height: 0;
    }

        .mx_MiniAvatarUploader .mx_MiniAvatarUploader_indicator .mx_MiniAvatarUploader_cameraIcon {
            height: inherit;
            width: inherit;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }

.mx_MiniAvatarUploader_input {
    display: none;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Pill {
    padding: 0.0625rem 0.4em 0.0625rem 0.4em;
    line-height: 1.0625rem;
    border-radius: 1rem;
    vertical-align: text-top;
    display: inline-block;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    max-width: 100%;
    overflow: hidden;
    cursor: pointer;

    color: var(--cpd-color-text-on-solid-primary) !important; /* To override .markdown-body */
    background-color: var(--other-user-pill-bg-color, var(--cpd-color-bg-action-primary-rest)) !important; /* To override .markdown-body */
    /* For enhanced visibility under contrast control */
    outline: 1px solid transparent;
}

    .mx_Pill > * {
        pointer-events: none;
    }

    .mx_Pill.mx_UserPill_me,
    .mx_Pill.mx_AtRoomPill,
    .mx_Pill.mx_KeywordPill {
        background-color: var(--cpd-color-bg-critical-primary) !important; /* To override .markdown-body */
    }

    .mx_Pill:hover {
        background-color: var(--other-user-pill-bg-color, var(--cpd-color-bg-action-primary-hovered)) !important; /* To override .markdown-body */
    }

    .mx_Pill:active {
        background-color: var(--other-user-pill-bg-color, var(--cpd-color-bg-action-primary-pressed)) !important; /* To override .markdown-body */
    }

    .mx_Pill.mx_UserPill_me:hover {
        background-color: var(
            --cpd-color-bg-critical-hovered
        ) !important; /* To override .markdown-body | same on both themes */
    }

    /* We don't want to indicate clickability */
    .mx_Pill.mx_AtRoomPill:hover,
    .mx_Pill.mx_KeywordPill:hover {
        background-color: var(--cpd-color-bg-critical-primary) !important; /* To override .markdown-body */
        cursor: inherit;
    }

    .mx_Pill::before,
    .mx_Pill .mx_BaseAvatar {
        -webkit-margin-start: -0.3em;
                margin-inline-start: -0.3em; /* Otherwise the gap is too large */
        -webkit-margin-end: 0.2em;
                margin-inline-end: 0.2em;
        min-width: 1rem; /* ensure the avatar is not compressed */
        -webkit-user-select: text;
           -moz-user-select: text;
            -ms-user-select: text;
                user-select: text;
        vertical-align: top;
    }

    .mx_Pill .mx_Pill_text {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .mx_Pill .mx_Pill_userStatus {
        -webkit-margin-start: var(--cpd-space-1x);
                margin-inline-start: var(--cpd-space-1x);
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
    }

    /* Pills with user status are flex so the status emoji stays visible if the
       display name gets truncated. */
    .mx_Pill.mx_Pill_withStatus {
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

    a.mx_Pill {
        text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;
        text-decoration: none !important; /* To override .markdown-body */
    }

    .mx_Pill .mx_Pill_LinkIcon {
        background-color: #0467dd;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        height: 16px;
        padding: 1px;
        width: 16px;
        border-radius: 50%;
    }

    .mx_Pill .mx_Pill_UserIcon {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        height: 16px;
        width: 16px;
    }

    .mx_Pill.mx_SpacePill {
        border-top-left-radius: 8px;
        border-bottom-left-radius: 8px;
        padding-left: 4px;
    }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PowerSelector {
    width: 100%;
}

.mx_PowerSelector .mx_Field select,
.mx_PowerSelector .mx_Field input {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020, 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

progress.mx_ProgressBar {
    height: 6px;
    width: 60px;
    overflow: hidden;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    border: var(--cpd-border-width-1) solid var(--cpd-color-gray-400);

    border-radius: 6px;
}

    progress.mx_ProgressBar::-moz-progress-bar {
        border-radius: 6px;
    }

    progress.mx_ProgressBar::-webkit-progress-bar,
    progress.mx_ProgressBar::-webkit-progress-value {
        border-radius: 6px;
    }

    progress.mx_ProgressBar{
    color: var(--cpd-color-icon-accent-tertiary);
}
    progress.mx_ProgressBar::-moz-progress-bar {
        background-color: var(--cpd-color-icon-accent-tertiary);
    }
    progress.mx_ProgressBar::-webkit-progress-value {
        background-color: var(--cpd-color-icon-accent-tertiary);
    }
    progress.mx_ProgressBar{
    background-color: rgb(141, 151, 165, 0.2);
}
    progress.mx_ProgressBar::-webkit-progress-bar {
        background-color: rgb(141, 151, 165, 0.2);
    }
    progress.mx_ProgressBar::-webkit-progress-value {
        -webkit-transition: width 1s;
        transition: width 1s;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_QRCode img {
        border-radius: 8px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2018 Vector Creations Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ReplyChain {
    margin-block: 0 var(--cpd-space-2x);
    margin-inline: 0;
    padding-left: 10px;
    border-left: 2px solid var(--username-color);
    border-radius: 2px;
}

    .mx_ReplyChain_compact .mx_ReplyChain {
        -webkit-margin-after: var(--cpd-space-1x);
                margin-block-end: var(--cpd-space-1x);
    }
        .mx_ReplyChain .mx_ReplyChain_show.mx_AccessibleButton_kind_link_inline {
            white-space: nowrap; /* Enforce 'In reply to' to be a single line */
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            -webkit-transition: color ease 0.15s;
            transition: color ease 0.15s;
            font-weight: var(--cpd-font-weight-regular);
            text-decoration: inherit;
        }

            .mx_ReplyChain .mx_ReplyChain_show.mx_AccessibleButton_kind_link_inline:hover {
                color: var(--timeline-text-color);
            }

    .mx_ReplyChain.mx_ReplyChain_color1 {
        --username-color: var(--cpd-color-text-decorative-1);
    }

    .mx_ReplyChain.mx_ReplyChain_color2 {
        --username-color: var(--cpd-color-text-decorative-2);
    }

    .mx_ReplyChain.mx_ReplyChain_color3 {
        --username-color: var(--cpd-color-text-decorative-3);
    }

    .mx_ReplyChain.mx_ReplyChain_color4 {
        --username-color: var(--cpd-color-text-decorative-4);
    }

    .mx_ReplyChain.mx_ReplyChain_color5 {
        --username-color: var(--cpd-color-text-decorative-5);
    }

    .mx_ReplyChain.mx_ReplyChain_color6 {
        --username-color: var(--cpd-color-text-decorative-6);
    }

/*
 * Reply previews in the new timeline (`compactPreview` in ReplyChain.tsx).
 *
 * The preview itself is the shared ReplyTileView, drawn at its natural size: a
 * quote already in the room renders at its final height on the first pass, and
 * growth above the viewport is compensated by the timeline. The rules here cover
 * the two states that stand in for a preview while it is fetched, or if the
 * fetch fails, so a row holds a sensible height instead of collapsing.
 */
.mx_NewTimelinePanel {
    /* About the height of the sender row and one line of quoted text. */
    --mx-reply-row-height: 20px;
}

    /* The skeleton shown while the quoted message is being fetched: a sender row
       and a message row, spaced like the real preview. */
    .mx_NewTimelinePanel .mx_ReplyChain_placeholder {
        --username-color: var(--quinary-content, #6f7882);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: 2px;
        padding-top: 2px;
        padding-bottom: 2px;
    }

    .mx_NewTimelinePanel .mx_ReplyChain_placeholderRow {
        height: var(--mx-reply-row-height);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_NewTimelinePanel .mx_ReplyChain_placeholderRow::before {
            content: "";
            height: 12px;
            width: 35%;
            border-radius: 6px;
            background: #6f7882;
            background: var(--quinary-content, #6f7882);
        }

        /* The message line reads longer than the name above it. */
        .mx_NewTimelinePanel .mx_ReplyChain_placeholderRow:last-child::before {
            width: 70%;
        }

    /* If the fetch fails the preview becomes a one-line error, so hold it at the
       height of the skeleton it replaces. */
    .mx_NewTimelinePanel .mx_ReplyChain_error {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        min-height: calc(2 * var(--mx-reply-row-height) + 2px + 4px);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ResizeHandle {
    cursor: row-resize;
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    z-index: 100;
}

    .mx_ResizeHandle.mx_ResizeHandle--horizontal {
        margin: 0 -5px;
        padding: 0 5px;
        cursor: col-resize;
    }

        .mx_ResizeHandle.mx_ResizeHandle--horizontal > div {
            width: 1px;
            height: 100%;
        }

    .mx_ResizeHandle.mx_ResizeHandle--vertical {
        margin: -5px 0;
        padding: 5px 0;
    }

        .mx_ResizeHandle.mx_ResizeHandle--vertical > div {
            height: 1px;
        }
}
@layer app-web{
.mx_Emoji {
    /* Should be 1.8rem for our default message bodies, and scale with the */
    /* surrounding text */
    font-size: max(1.125rem, 1em);
    vertical-align: bottom;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomAliasField {
    /* if parent is a flex container, this allows the */
    /* width to be as wide as needed, and not 100% */
    -webkit-box-flex: 0;
        -ms-flex: 0 1 auto;
            flex: 0 1 auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    min-width: 0;
    max-width: 100%;
}

    .mx_RoomAliasField input {
        width: 150px;
        padding-left: 0;
        padding-right: 0;
    }

    .mx_RoomAliasField input::-webkit-input-placeholder {
        color: var(--timeline-text-secondary-color);
        font-weight: normal;
    }

    .mx_RoomAliasField input::-moz-placeholder {
        color: var(--timeline-text-secondary-color);
        font-weight: normal;
    }

    .mx_RoomAliasField input:-ms-input-placeholder {
        color: var(--timeline-text-secondary-color);
        font-weight: normal;
    }

    .mx_RoomAliasField input::-ms-input-placeholder {
        color: var(--timeline-text-secondary-color);
        font-weight: normal;
    }

    .mx_RoomAliasField input::placeholder {
        color: var(--timeline-text-secondary-color);
        font-weight: normal;
    }

    .mx_RoomAliasField .mx_Field_prefix,
    .mx_RoomAliasField .mx_Field_postfix {
        color: var(--timeline-text-secondary-color);
        border-left: none;
        border-right: none;
        font-weight: var(--cpd-font-weight-semibold);
        padding: 9px 10px;
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
    }

    .mx_RoomAliasField .mx_Field_postfix {
        text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;
        /* this allows the domain name to show */
        /* as long as it doesn't make the input shrink */
        /* if it's too big, it shows an ellipsis */
        /* 180: 28 for prefix, 152 for input */
        max-width: calc(100% - 180px);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SSOButtons {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

    .mx_SSOButtons .mx_SSOButtons_row + .mx_SSOButtons_row {
        margin-top: 16px;
    }

    .mx_SSOButtons .mx_SSOButton {
        position: relative;
        width: 100%;
        display: inline-block;
    }

        .mx_SSOButtons .mx_SSOButton svg,
        .mx_SSOButtons .mx_SSOButton img {
            width: 24px;
            height: 24px;
            -o-object-fit: contain;
               object-fit: contain;
            position: absolute;
            left: 8px;
            top: 4px;
            color: var(--cpd-color-icon-primary);
        }
        .mx_SSOButtons .mx_SSOButton_mini svg,
        .mx_SSOButtons .mx_SSOButton_mini img {
            /* 30px parent, 24px self */
            padding: 3px;
            position: static;
            position: initial;
        }

        .mx_SSOButtons .mx_SSOButton_mini + .mx_SSOButton_mini {
            margin-left: 16px;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SearchWarning {
    text-align: center;
    padding: 0 16px;
}

    .mx_SearchWarning > * {
        vertical-align: middle;
    }

    .mx_SearchWarning > img {
        margin-right: 8px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ServerPicker {
    margin-bottom: 14px;
    padding-bottom: var(--cpd-space-4x);
    border-bottom: 1px solid rgb(141, 151, 165, 0.2);
    display: grid;
    grid-template-columns: auto -webkit-min-content;
    grid-template-columns: auto min-content;
    grid-template-rows: auto auto auto;
    font: var(--cpd-font-body-md-regular);
}

    .mx_ServerPicker > h2 {
        font-weight: var(--cpd-font-weight-semibold);
        margin: 0 0 20px;
        grid-column: 1;
        grid-row: 1;
    }

    .mx_ServerPicker .mx_ServerPicker_help {
        width: 24px;
        height: 24px;
        border-radius: 10px;
        grid-column: 2;
        grid-row: 1;
        margin-left: auto;
        margin-top: -2px;
        margin-right: -2px;
    }

        .mx_ServerPicker .mx_ServerPicker_help svg {
            width: inherit;
            height: inherit;
            color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
        }

    .mx_ServerPicker .mx_ServerPicker_server {
        color: var(--timeline-text-color);
        grid-column: 1;
        grid-row: 2;
        overflow: hidden;
        text-overflow: ellipsis;
        margin-right: 8px;
    }

    .mx_ServerPicker .mx_ServerPicker_change {
        grid-column: 2;
        grid-row: 2;
    }

    .mx_ServerPicker .mx_ServerPicker_desc {
        margin-top: 4px;
        color: #2e2f32;
        color: var(--tertiary-content, #2e2f32);
        grid-column: 1 / 2;
        grid-row: 3;
    }
    .mx_ServerPicker_helpDialog .mx_Dialog_content {
        width: 456px;
    }
}
@layer app-web{

/*
Copyright 2025 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsDropdown {
    margin-bottom: var(--cpd-space-1x);
    width: 100%;
}

    .mx_SettingsDropdown .mx_SettingsDropdown_label {
        color: var(--timeline-text-color);
        margin: var(--cpd-space-1x) 0;
    }

    .mx_SettingsDropdown .mx_Dropdown_input {
        width: 360px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsFlag {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    margin-bottom: 4px;
    width: 100%;
}

    .mx_SettingsFlag .mx_ToggleSwitch {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
    }
        .mx_SettingsFlag.mx_SettingsFlag_toggleInFront .mx_ToggleSwitch {
            display: inline-block;
            vertical-align: middle;
            margin-right: 8px;
        }

        .mx_SettingsFlag.mx_SettingsFlag_toggleInFront .mx_SettingsFlag_label {
            display: inline-block;
            vertical-align: middle;
        }

.mx_SettingsFlag_label {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    color: var(--timeline-text-color);
    padding-right: 10px;
    padding-top: 4px;
}

.mx_SettingsFlag_microcopy {
    margin-top: 4px;
    font: var(--cpd-font-body-sm-regular);
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);

    /* Support code/pre elements in settings flag descriptions */
}
    .mx_SettingsFlag_microcopy pre,
    .mx_SettingsFlag_microcopy code {
        font-family: "Fira Code", "", "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji" !important;
        font-family: var(--font-family-monospace, "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji") !important;
        background-color: rgb(0, 0, 0, 0.04);
    }

    .mx_SettingsFlag_microcopy .mx_SettingsTab_microcopy_warning::before {
        content: "⚠️ ";
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Spinner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: 100%;
    height: 100%;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}

.mx_MatrixChat_middlePanel .mx_Spinner {
    height: auto;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/**
* This component expects the parent to specify a positive padding and
* width
*/

.mx_StyledRadioButton {
    position: relative;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-align: baseline;
        -ms-flex-align: baseline;
            align-items: baseline;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
}

    .mx_StyledRadioButton > .mx_StyledRadioButton_content {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;

        display: -webkit-box;

        display: -ms-flexbox;

        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;

        margin-left: 8px;
        margin-right: 8px;
    }

    .mx_StyledRadioButton .mx_StyledRadioButton_spacer {
        -ms-flex-negative: 0;
            flex-shrink: 0;
        -webkit-box-flex: 0;
            -ms-flex-positive: 0;
                flex-grow: 0;

        height: 1rem;
        width: 1rem;
    }

    .mx_StyledRadioButton input[type="radio"] {
        /* Remove the OS's representation */
        margin: 0;
        padding: 0;
        -webkit-appearance: none;
           -moz-appearance: none;
                appearance: none;
    }

        .mx_StyledRadioButton input[type="radio"] + div {
            -ms-flex-negative: 0;
                flex-shrink: 0;
            -webkit-box-flex: 0;
                -ms-flex-positive: 0;
                    flex-grow: 0;

            display: -webkit-box;

            display: -ms-flexbox;

            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;

            -webkit-box-sizing: border-box;

                    box-sizing: border-box;
            height: 1rem;
            width: 1rem;
            margin-left: 2px; /* For the highlight on focus */

            border: 1px solid var(--cpd-color-border-interactive-primary);
            border-radius: 1rem;
        }

            .mx_StyledRadioButton input[type="radio"] + div > div {
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;

                height: 0.5rem;
                width: 0.5rem;

                border-radius: 0.5rem;
            }
            .mx_StyledRadioButton input[type="radio"]:focus-visible + div {
                outline-width: 2px;
                outline-style: solid;
                outline-color: Highlight;
            }
                /* WebKit gets its native focus styles. */
                @media (-webkit-min-device-pixel-ratio: 0) {
            .mx_StyledRadioButton input[type="radio"]:focus-visible + div {
        outline-color: -webkit-focus-ring-color;
        outline-style: auto;
            }
    }
            .mx_StyledRadioButton input[type="radio"]:checked + div {
                border-color: var(--cpd-color-bg-accent-rest);
            }

                .mx_StyledRadioButton input[type="radio"]:checked + div > div {
                    background: var(--cpd-color-bg-accent-rest);
                    /* For enhanced visibility under contrast control */
                    outline: 1px solid transparent;
                }
            .mx_StyledRadioButton input[type="radio"]:disabled + div,
            .mx_StyledRadioButton input[type="radio"]:disabled + div + span {
                opacity: 0.5;
                cursor: not-allowed;
            }

            .mx_StyledRadioButton input[type="radio"]:disabled + div {
                border-color: var(--cpd-color-border-interactive-primary);
            }
            .mx_StyledRadioButton input[type="radio"]:checked:disabled + div > div {
                background-color: var(--cpd-color-border-interactive-primary);
            }

    .mx_StyledRadioButton .mx_StyledRadioButton_innerLabel {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        position: relative;
        top: 4px;
    }

.mx_StyledRadioButton_outlined {
    border: 1px solid var(--roomlist-separator-color);
    border-radius: 8px;
}

.mx_StyledRadioButton_checked {
    border-color: var(--cpd-color-bg-accent-rest);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 Michael Telatynski <7t3chguy@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SyntaxHighlight {
    /* inhibit hljs styling */
    background: none !important;
    color: var(--timeline-text-secondary-color) !important;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_TagComposer .mx_TagComposer_input {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
    }

        .mx_TagComposer .mx_TagComposer_input .mx_AccessibleButton {
            min-width: 70px;
            padding: 0 8px; /* override from button styles */
            -ms-flex-item-align: stretch;
                align-self: stretch; /* override default settingstab style */
        }

        .mx_TagComposer .mx_TagComposer_input .mx_Field,
        .mx_TagComposer .mx_TagComposer_input .mx_Field input,
        .mx_TagComposer .mx_TagComposer_input .mx_AccessibleButton {
            /* So they look related to each other by feeling the same */
            border-radius: 8px;
        }

    .mx_TagComposer .mx_TagComposer_tags {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        margin-top: 12px; /* this plus 12px from the tags makes 24px from the input */
    }

    .mx_TagComposer .mx_Tag {
        margin-right: 12px;
        margin-top: 12px;
    }

.mx_Tag {
    font-size: 0.9375rem;

    display: -webkit-inline-box;

    display: -ms-inline-flexbox;

    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;

    gap: 8px;
    padding: 8px;
    border-radius: 8px;

    color: var(--timeline-text-color);
    background: #6f7882;
    background: var(--quinary-content, #6f7882);
}

    .mx_Tag > svg:first-child {
        width: 1em;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        -webkit-transform: scale(1.25);
                transform: scale(1.25);
        -webkit-transform-origin: center;
                transform-origin: center;
    }

    .mx_Tag .mx_Tag_delete {
        border-radius: 50%;
        text-align: center;
        width: 1.066666em; /* 16px; */
        height: 1.066666em;
        line-height: 1em;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        background: #f4f6fa;
        background: var(--system, #f4f6fa);
        position: relative;
    }

        .mx_Tag .mx_Tag_delete svg {
            width: 16px;
            height: 16px;
        }
}
@layer app-web{
/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
.mx_TextWithTooltip_target {
    display: inline;
}

.mx_TextWithTooltip_tooltip {
    display: none;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ToggleSwitch {
    --ToggleSwitch-min-width: 2.75rem;

    -webkit-transition:
        background-color 0.2s ease-out 0.1s,
        border-color 0.2s ease-out 0.1s;

    transition:
        background-color 0.2s ease-out 0.1s,
        border-color 0.2s ease-out 0.1s;

    width: 2.75rem;
    height: 1.25rem;
    border-radius: 1.5rem;
    padding: 2px;

    background-color: var(--cpd-color-bg-canvas-disabled);
    border: 1px solid var(--cpd-color-border-disabled);
    cursor: not-allowed;
}

    .mx_ToggleSwitch.mx_ToggleSwitch_enabled {
        cursor: pointer;
        background-color: var(--cpd-color-bg-canvas-default);
        border: var(--cpd-border-width-1) solid var(--cpd-color-border-interactive-primary);
    }

        .mx_ToggleSwitch.mx_ToggleSwitch_enabled.mx_ToggleSwitch_on {
            background-color: var(--cpd-color-bg-accent-rest);
            border-color: var(--cpd-color-bg-accent-rest);
        }

        .mx_ToggleSwitch.mx_ToggleSwitch_enabled > .mx_ToggleSwitch_ball {
            background-color: var(--cpd-color-icon-secondary);
        }

    .mx_ToggleSwitch.mx_ToggleSwitch_on {
        background-color: var(--cpd-color-bg-action-primary-disabled);
        border-color: var(--cpd-color-bg-action-primary-disabled);
    }

        .mx_ToggleSwitch.mx_ToggleSwitch_on > .mx_ToggleSwitch_ball {
            left: calc(100% - 1.25rem);
            background-color: var(--cpd-color-icon-on-solid-primary);
        }

.mx_ToggleSwitch_ball {
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 1.25rem;
    background-color: var(--cpd-color-bg-action-primary-disabled);
    -webkit-transition:
        left 0.15s ease-out 0.1s,
        background-color 0.15s ease-out 0.1s;
    transition:
        left 0.15s ease-out 0.1s,
        background-color 0.15s ease-out 0.1s;
    left: 0;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Validation {
    position: relative;
    max-width: 200px;
}

.mx_Validation_details {
    padding-left: 0;
    margin: 0;
}

.mx_Validation_description + .mx_Validation_details {
    margin: 1em 0 0;
}

.mx_Validation_detail {
    font-weight: normal;
    list-style: none;
    margin-bottom: 0.5em;
}

    .mx_Validation_detail:last-child {
        margin-bottom: 0;
    }

    .mx_Validation_detail svg {
        width: 14px;
        height: 14px;
        margin-right: var(--cpd-space-1x);
        vertical-align: text-bottom;
    }

    .mx_Validation_detail.mx_Validation_valid {
        color: #0dbd8b;
        color: var(--accent-color, #0dbd8b);
    }

    .mx_Validation_detail.mx_Validation_invalid {
        color: #ff5b55;
        color: var(--alert, #ff5b55);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LocationPicker {
    border-radius: 8px;

    height: 100%;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;

    /* when there are errors loading the map */
    /* the canvas is still inserted */
    /* and can overlap error message/close buttons */
}
    /* hide it */
        .mx_LocationPicker.mx_LocationPicker_hasError .maplibregl-canvas-container,
        .mx_LocationPicker.mx_LocationPicker_hasError .maplibregl-control-container {
            display: none;
        }

    .mx_LocationPicker #mx_LocationPicker_map {
        border-top-left-radius: inherit;
        border-top-right-radius: inherit;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
    }

        .mx_LocationPicker #mx_LocationPicker_map .maplibregl-ctrl.maplibregl-ctrl-group,
        .mx_LocationPicker #mx_LocationPicker_map .maplibregl-ctrl.maplibregl-ctrl-attrib {
            margin-right: var(--cpd-space-4x);
        }

        .mx_LocationPicker #mx_LocationPicker_map .maplibregl-ctrl.maplibregl-ctrl-group {
            /* place below the close button */
            /* padding-16 + 24px close button + padding-10 */
            margin-top: 50px;
        }

        .mx_LocationPicker #mx_LocationPicker_map .maplibregl-user-location-accuracy-circle {
            display: none;
        }

        .mx_LocationPicker #mx_LocationPicker_map .maplibregl-user-location-dot {
            display: none;
        }

    .mx_LocationPicker .mx_LocationPicker_footer {
        -webkit-box-flex: 0;
            -ms-flex: 0;
                flex: 0;
        width: 100%;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        padding: var(--cpd-space-4x);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-pack: stretch;
            -ms-flex-pack: stretch;
                justify-content: stretch;

        border-bottom-left-radius: inherit;
        border-bottom-right-radius: inherit;

        background-color: var(--roomlist-background-color);
    }

.mx_LocationPicker_pinText {
    position: absolute;
    top: var(--cpd-space-4x);
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    text-align: center;
    height: 0;
    pointer-events: none;
}

    .mx_LocationPicker_pinText span {
        -webkit-box-shadow: 0px 4px 15px rgb(0, 0, 0, 0.15);
                box-shadow: 0px 4px 15px rgb(0, 0, 0, 0.15);
        border-radius: 8px;
        padding: var(--cpd-space-2x);
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        color: var(--timeline-text-color);

        font-size: 0.75rem;
    }

.mx_LocationPicker_submitButton {
    width: 100%;
    height: 48px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CallEvent_wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
}

.mx_CallEvent {
    padding: 12px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    min-height: 60px;
    max-width: 600px;
    width: 100%;
    background-color: #f4f6fa;
    background-color: var(--system, #f4f6fa);
    border-radius: 8px;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    gap: var(--cpd-space-2x);
}

    .mx_CallEvent > .mx_BaseAvatar,
    .mx_CallEvent > .mx_Icon {
        -ms-flex-item-align: start;
            align-self: flex-start;
    }

    .mx_CallEvent > .mx_Icon {
        padding: 0;
        margin: var(--cpd-space-1x) 0;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

    .mx_CallEvent .mx_LiveContentSummary {
        font-size: 0.75rem;
    }

    .mx_CallEvent{

    --facepile-background: var(--system, #f4f6fa);
}

.mx_CallEvent_title {
    font-size: 0.9375rem;
    line-height: 24px; /* in px to match the avatar */
}

.mx_CallEvent_inactive .mx_CallEvent_title svg {
    display: inline-block;
    vertical-align: middle;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    width: 16px;
    height: 16px;
    margin-right: var(--cpd-space-2x);
}

.mx_CallEvent_active .mx_CallEvent_title {
    font-weight: var(--cpd-font-weight-semibold);
}

.mx_CallEvent_columns {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-3x);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
}

.mx_TimelineCard .mx_CallEvent_columns {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: var(--cpd-space-2x);
}

.mx_CallEvent_details {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 6px;
}

.mx_CallEvent_button {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    min-width: 120px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2018-2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EventTileBubble.mx_CreateEvent {
    margin: 10px auto;
    margin: var(--EventTileBubble_margin-block) auto;
}

    .mx_EventTileBubble.mx_CreateEvent svg {
        color: #91a1c0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/** Disambiguated profile needs to have a different layout in the member tile */
.mx_MemberTileView .mx_DisambiguatedProfile {
    /* Name and the user status emoji share the first row (with the name truncating and the emoji always visible)
       Disambiguated MXID gets a full row below. */
    display: grid;
    grid-template-columns: -webkit-min-content 1fr;
    grid-template-columns: min-content 1fr;
}

    .mx_MemberTileView .mx_DisambiguatedProfile .mx_DisambiguatedProfile_userStatus {
        -webkit-margin-start: var(--cpd-space-0-5x);
                margin-inline-start: var(--cpd-space-0-5x);
    }

    .mx_MemberTileView .mx_DisambiguatedProfile .mx_DisambiguatedProfile_mxid {
        grid-column: 1 / -1;
        -webkit-margin-start: 0;
                margin-inline-start: 0;
        font: var(--cpd-font-body-sm-regular);
        text-overflow: ellipsis;
        overflow: hidden;
    }

    .mx_MemberTileView .mx_DisambiguatedProfile span:not(.mx_DisambiguatedProfile_mxid) {
        /**
        In a member tile, this span element is a grid child and so
        we need the following for text overflow to work.
        **/
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LegacyCallEvent_wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
}

    .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
        gap: var(--cpd-space-1x) 0;

        position: relative;
        margin: var(--cpd-space-1x) 0;
        padding: var(--cpd-space-3x) var(--cpd-space-6x);
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        background-color: var(--roomlist-background-color);
        border-radius: 8px;
        width: 65%;
        height: -webkit-fit-content;
        height: -moz-fit-content;
        height: fit-content;
    }

        .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_iconButton {
            display: -webkit-inline-box;
            display: -ms-inline-flexbox;
            display: inline-flex;
        }

            .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_iconButton svg {
                height: 16px;
                width: 16px;
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
            }

        .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_info {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            width: -webkit-fit-content;
            width: -moz-fit-content;
            width: fit-content;
            max-width: 100%;
        }

            .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_info .mx_LegacyCallEvent_info_basic {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-orient: vertical;
                -webkit-box-direction: normal;
                    -ms-flex-direction: column;
                        flex-direction: column;
                gap: var(--cpd-space-1x);
                margin-left: 10px; /* To match mx_LegacyCallEvent */
                margin-right: 10px;
                min-width: 0;
            }

                .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_info .mx_LegacyCallEvent_info_basic .mx_LegacyCallEvent_sender {
                    font-weight: var(--cpd-font-weight-semibold);
                    margin-bottom: var(--cpd-space-1x);

                    overflow: hidden;
                    white-space: nowrap;
                    text-overflow: ellipsis;
                }

                .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_info .mx_LegacyCallEvent_info_basic .mx_LegacyCallEvent_type {
                    font-weight: 400;
                    color: #2e2f32;
                    color: var(--secondary-content, #2e2f32);
                }

        .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_content {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -ms-flex-wrap: wrap;
                flex-wrap: wrap;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            font-size: 0.75rem;
            gap: var(--cpd-space-3x); /* See mx_IncomingLegacyCallToast_buttons */
            -webkit-margin-start: 42px;
                    margin-inline-start: 42px; /* avatar (32px) + mx_LegacyCallEvent_info_basic margin (10px) */
            word-break: break-word;
            max-width: -webkit-fit-content;
            max-width: -moz-fit-content;
            max-width: fit-content;
        }

            .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_content .mx_LegacyCallEvent_content_button {
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;
                font-weight: var(--cpd-font-weight-semibold);
                height: 1.5rem;
                line-height: 1.5rem;
                margin-right: 0;
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
            }
                .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_content .mx_LegacyCallEvent_content_button svg {
        width: 16px;
        height: 16px;
        display: inline-block;
        color: white;
        margin-right: 8px;
        vertical-align: middle;
    }
                .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_content .mx_LegacyCallEvent_content_button{
                padding: 0 var(--cpd-space-3x);
                font-size: inherit;
}

            .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent .mx_LegacyCallEvent_content .mx_LegacyCallEvent_content_tooltip {
                margin-right: 5px;
            }

        .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent.mx_LegacyCallEvent_narrow {
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -webkit-box-align: initial;
                -ms-flex-align: initial;
                    align-items: initial;
            gap: var(--cpd-space-1x) var(--cpd-space-4x);
            height: auto;
            height: initial;
            min-width: 290px;
        }

            .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent.mx_LegacyCallEvent_narrow .mx_LegacyCallEvent_iconButton {
                position: absolute;
                margin-right: 0;
                top: 12px;
                right: 12px;
                height: 16px;
                width: 16px;
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
            }

            .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent.mx_LegacyCallEvent_narrow .mx_LegacyCallEvent_info {
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
            }

.mx_LegacyCallEvent_type_icon {
    height: 16px;
    width: 16px;
    margin-right: 6px;
    display: inline-block;
    vertical-align: -2px;
}

    .mx_LegacyCallEvent_type_icon svg {
        position: absolute;
        height: inherit;
        width: inherit;
        color: #2e2f32;
        color: var(--tertiary-content, #2e2f32);
    }
            .mx_EventTile:has(> [data-testid="event-tile-line"] > [data-testid="event-tile-slot-body"] .mx_LegacyCallEvent) .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent.mx_LegacyCallEvent_narrow {
                gap: var(--cpd-space-2x) var(--cpd-space-1x);
            }
        .mx_IRCLayout .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent {
            -webkit-margin-start: var(--cpd-space-1x);
                    margin-inline-start: var(--cpd-space-1x); /* display green line */
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 Tulir Asokan <tulir@maunium.net>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_MImageReplyBody .mx_MImageBody_banner, .mx_MStickerBody_wrapper .mx_MImageBody_banner {
        position: absolute;
        bottom: var(--cpd-space-1x);
        left: var(--cpd-space-1x);
        padding: var(--cpd-space-1x);
        border-radius: 8px;
        border-radius: var(--MBody-border-radius);
        font-size: 0.9375rem;
        -webkit-user-select: none;
           -moz-user-select: none;
            -ms-user-select: none;
                user-select: none;
        pointer-events: none;
        max-width: min(100%, 350px);
        text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;
        background-color: rgb(0, 0, 0, 0.6);
        color: #ffffff;
    }

    .mx_MImageReplyBody .mx_MImageBody_placeholder, .mx_MStickerBody_wrapper .mx_MImageBody_placeholder {
        position: absolute;
        left: 0;
        top: 0;
        height: 100%;
        width: 100%;
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    }

        .mx_MImageReplyBody .mx_MImageBody_placeholder .mx_Blurhash > canvas, .mx_MStickerBody_wrapper .mx_MImageBody_placeholder .mx_Blurhash > canvas {
            -webkit-animation: mx--anim-pulse 1.75s infinite cubic-bezier(0.4, 0, 0.6, 1);
                    animation: mx--anim-pulse 1.75s infinite cubic-bezier(0.4, 0, 0.6, 1);
        }

    .mx_MImageReplyBody .mx_MImageBody_thumbnail_container, .mx_MStickerBody_wrapper .mx_MImageBody_thumbnail_container {
        border-radius: 8px;
        border-radius: var(--MBody-border-radius);
        overflow: hidden;
        contain: paint;
    }

    .mx_MImageReplyBody .mx_MImageBody_thumbnail, .mx_MStickerBody_wrapper .mx_MImageBody_thumbnail {
        display: block;
        height: 100%;
        width: 100%;
    }

    .mx_MImageReplyBody .mx_MImageBody_gifLabel, .mx_MStickerBody_wrapper .mx_MImageBody_gifLabel {
        position: absolute;
        display: block;
        top: 0px;
        left: 14px;
        padding: 5px;
        border-radius: 5px;
        background: rgb(0, 0, 0, 0.7);
        border: 2px solid rgb(0, 0, 0, 0.2);
        color: rgb(255, 255, 255, 1);
        pointer-events: none;
    }

.mx_MImageReplyBody {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-column-gap: var(--cpd-space-1x);
       -moz-column-gap: var(--cpd-space-1x);
            column-gap: var(--cpd-space-1x);
}

    .mx_MImageReplyBody .mx_MImageBody_thumbnail_container {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        min-width: 0; /* Prevent a blowout */
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MLocationBody {
    max-width: 100%;
}

    .mx_MLocationBody .mx_MLocationBody_map {
        max-width: 100%;
        width: 450px;
        height: 300px;
        z-index: 0; /* keeps the entire map under the message action bar */

        border-radius: 8px;

        border-radius: var(--MBody-border-radius);
        cursor: pointer;
    }

/* Location maps use the full event-line width instead of the text-body gutter. */
.mx_EventTile_line .mx_MLocationBody {
    --event-tile-content-inline-end: 0;
}

/* In the timeline, we fit the width of the container */
.mx_EventTile_line .mx_MLocationBody .mx_MLocationBody_map {
    max-width: 450px;
    width: 100%;
}

/* Bubble lines use shrink-to-fit sizing. Give the map an intrinsic width
   before constraining it to the available bubble width. */
.mx_EventTile_line .mx_MLocationBody_bubble .mx_MLocationBody_map {
    max-width: 100%;
    width: 450px;
}

/* EventTileView places the sender and body in separate slot boundaries. */
.mx_EventTile > :has(> .mx_DisambiguatedProfile) ~ .mx_EventTile_line .mx_MLocationBody {
    margin-top: 6px; /* See: https://github.com/matrix-org/matrix-react-sdk/pull/8442 */
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MPollBody {
    margin-top: var(--cpd-space-2x);
    min-width: 0; /* Override fieldset default min-width: min-content */
    width: 100%; /* Ensure fieldset takes full available width */
    border: none; /* Remove default fieldset border */
    padding: 0; /* Remove default fieldset padding */
    margin-inline: unset; /* Remove default fieldset margin */
    display: inline-block; /* Preserve the fieldset display value we used to set globally */
}

    .mx_MPollBody legend {
        padding-inline: unset; /* Remove default legend padding */
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.9375rem;
        line-height: 1.5rem;
        margin-top: 0;
        margin-bottom: var(--cpd-space-2x);
        letter-spacing: var(--cpd-font-letter-spacing-heading-lg);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: var(--cpd-space-3x);
    }

        .mx_MPollBody legend svg {
            -ms-flex-negative: 0;
                flex-shrink: 0;
            color: var(--cpd-color-icon-primary);
        }

        .mx_MPollBody legend .mx_MPollBody_edited {
            color: var(--timeline-text-color-50pct);
            font-size: 0.75rem;
            opacity: 0.6;
        }

    .mx_MPollBody .mx_MPollBody_totalVotes {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: inline;
                flex-direction: inline;
        -webkit-box-pack: start;
            -ms-flex-pack: start;
                justify-content: start;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        font-size: 0.75rem;
    }

        .mx_MPollBody .mx_MPollBody_totalVotes .mx_Spinner {
            -webkit-box-flex: 0;
                -ms-flex: 0;
                    flex: 0;
            margin-left: var(--cpd-space-2x);
        }

    .mx_MPollBody.mx_MPollBody_bubble {
        width: 550px; /* to prevent timestamp overlapping summary text */
        max-width: 100%; /* prevent overflowing a reply tile */
    }

        .mx_MPollBody.mx_MPollBody_bubble .mx_MPollBody_totalVotes {
            /* align summary text with corner timestamp */
            padding: 4px 0;
        }

.mx_MPollBody_allOptions {
    display: grid;
    grid-gap: var(--cpd-space-4x);
    gap: var(--cpd-space-4x);
    margin-bottom: var(--cpd-space-2x);
    max-width: 550px;
}
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MStickerBody_wrapper {
    padding: 12px 0px;
}

.mx_MStickerBody_hidden {
    max-width: 220px;
    text-decoration: none;
    text-align: center;

    /* To center the text in the middle of the frame */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

.mx_MStickerBody_placeholder {
    /* centering */
    position: absolute;
    left: calc(50% - 40px);
    top: calc(50% - 40px);
}
}
@layer app-web{

/*
Copyright 2026 Element Creations Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* EventTileView owns the generic action-bar geometry. These are application
   context exceptions and intentionally target only the outer slot wrapper. */
    /* Improve clickability of the first event below a collapsed bubble summary. */
    .mx_GenericEventListSummary[data-layout="bubble"]
        .mx_GenericEventListSummary_toggle
        ~ .mx_GenericEventListSummary_unstyledList
        .mx_EventTile:first-of-type
        .mx_EventTile_line > :has(> .mx_MessageActionBar)::before {
        width: 100%;
        height: 100%;
        inset: 0;
    }

    /* Remove the vertical safe area for view-source events. */
    .mx_EventTile:has(> .mx_EventTile_line .mx_ViewSourceEvent) .mx_EventTile_line > :has(> .mx_MessageActionBar)::before {
        width: 100%;
        height: 100%;
        inset: 0;
    }

/* Align event action bars with right-column bubbles in an expanded bubble
   summary. */
.mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"]
    > .mx_GenericEventListSummary_unstyledList
    > .mx_EventTile
    > .mx_EventTile_line
    > :has(> .mx_MessageActionBar) {
    inset-inline-start: initial;
    inset-inline-end: 48px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_TextualBody_urlPreviews {
    /* Separate the preview group from the message text above it. */
    margin-top: var(--cpd-space-4x);

    /* Let shared-components own preview link colours instead of the app-wide anchor colour. */
}
    .mx_TextualBody_urlPreviews a:where(:not([data-kind])):hover,
    .mx_TextualBody_urlPreviews a:where(:not([data-kind])):link,
    .mx_TextualBody_urlPreviews a:where(:not([data-kind])):visited {
        color: revert-layer;
    }
}
@layer app-web{

/*
 * Copyright 2026 Element Creations Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_ThreadActionBar {
    position: absolute;
    visibility: hidden;
    top: calc(-1 * (28px + 2 * (3px + var(--cpd-border-width-1))));
    right: 8px;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    /* Ensure the action bar appears above other things like the read marker */
    /* and sender avatar (for small screens) */
    z-index: 10;

    /* Adds a previous event safe area so that you can't accidentally hover the */
    /* previous event while trying to mouse into the action bar or from the */
}
    /* react button to its tooltip. */
    .mx_ThreadActionBar::before {
        content: "";
        position: absolute;
        /* tooltip safe mousing area + tooltip overhang + */
        /* action bar + action bar offset from event */
        width: calc(10px + 48px + 100% + 8px);
        /* safe area + action bar */
        height: calc(20px + 100%);
        top: -12px;
        left: -58px;
        z-index: -1;
        cursor: auto;
        cursor: initial;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019, 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EventTileBubble.mx_cryptoEvent {
    margin: 10px auto;
    margin: var(--EventTileBubble_margin-block) auto;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PollHistory_content {
    height: 600px;
    width: 100%;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

.mx_PollHistory_header.mx_Heading_h2 {
    margin-bottom: var(--cpd-space-4x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PollHistoryList {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    max-height: 100%;
}

.mx_PollHistoryList_list {
    overflow: auto;
    list-style: none;
    margin-block: 0;
    padding-inline: 0;
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    -ms-flex-line-pack: start;
        align-content: flex-start;
    display: grid;
    grid-gap: var(--cpd-space-5x);
    gap: var(--cpd-space-5x);
    padding-right: var(--cpd-space-16x);
    margin: var(--cpd-space-8x) 0;
}

    .mx_PollHistoryList_list.mx_PollHistoryList_list_ENDED {
        gap: var(--cpd-space-8x);
    }

.mx_PollHistoryList_noResults {
    height: 100%;
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: 0 var(--cpd-space-16x);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    text-align: center;

    line-height: 1.5rem;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

    .mx_PollHistoryList_noResults .mx_PollHistoryList_loadMorePolls {
        margin-top: var(--cpd-space-4x);
    }

.mx_PollHistoryList_loading {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    text-align: center;
}

    /* center in all free space
    when there are no results */
    .mx_PollHistoryList_loading.mx_PollHistoryList_noResultsYet {
        margin: auto auto;
    }

.mx_PollHistoryList_loadMorePolls {
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_BaseCard {
    --BaseCard_EventTile_line-padding-block: 2px;
    --BaseCard_EventTile-spacing-inline: 36px;
    --BaseCard_header-button-size: 28px;

    overflow: hidden;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    font-size: var(--cpd-font-size-body-md);
}

    .mx_BaseCard .mx_BaseCard_header {
        height: 64px;
        padding: var(--cpd-space-4x);
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        /* changing the color from $separator to transparent as it is
           the best visual output during the transition period. This will be
           reintroduced at a later stage. */
        border-bottom: 1px solid transparent;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
        gap: var(--cpd-space-3x);
        -ms-flex-negative: 0;
            flex-shrink: 0;
        -webkit-border-after: var(--cpd-border-width-1) solid var(--cpd-color-gray-400);
                border-block-end: var(--cpd-border-width-1) solid var(--cpd-color-gray-400);
    }

        .mx_BaseCard .mx_BaseCard_header .mx_BaseCard_header_spacer {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
        }

        .mx_BaseCard .mx_BaseCard_header > h2 {
            margin: 0 44px;
            font: var(--cpd-font-body-sm-semibold);
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        .mx_BaseCard .mx_BaseCard_header .mx_BaseCard_header_title {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                    justify-content: space-between;
            height: 24px;
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            min-width: 0;
        }

            .mx_BaseCard .mx_BaseCard_header .mx_BaseCard_header_title .mx_BaseCard_header_title_heading {
                overflow: hidden;
                white-space: nowrap;
                text-overflow: ellipsis;
                font: var(--cpd-font-body-md-medium);
                color: var(--cpd-color-text-secondary);
            }

            .mx_BaseCard .mx_BaseCard_header .mx_BaseCard_header_title .mx_BaseCard_header_title_button--option {
                position: relative;
                width: calc(var(--BaseCard_header-button-size) - 4px);
                height: calc(var(--BaseCard_header-button-size) - 4px);
                padding: 2px;
            }

                .mx_BaseCard .mx_BaseCard_header .mx_BaseCard_header_title .mx_BaseCard_header_title_button--option svg {
                    width: inherit;
                    height: inherit;
                    display: block;
                    color: #2e2f32;
                    color: var(--secondary-content, #2e2f32);
                }

                .mx_BaseCard .mx_BaseCard_header .mx_BaseCard_header_title .mx_BaseCard_header_title_button--option:hover svg {
                    color: var(--timeline-text-color);
                }

    .mx_BaseCard .mx_AutoHideScrollbar {
        min-height: 0;
        width: 100%;
        height: 100%;
        scrollbar-gutter: stable;
    }

    .mx_BaseCard .mx_BaseCard_footer {
        padding-top: var(--cpd-space-1x);
        text-align: center;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-pack: distribute;
            justify-content: space-around;
    }

        .mx_BaseCard .mx_BaseCard_footer .mx_AccessibleButton_kind_secondary {
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            background-color: rgb(141, 151, 165, 0.2);
            font: var(--cpd-font-body-md-semibold);
        }

        .mx_BaseCard .mx_BaseCard_footer .mx_AccessibleButton_disabled {
            cursor: not-allowed;
        }
    .mx_ContextualMenu_wrapper.mx_BaseCard_header_title .mx_ContextualMenu {
        position: static;
        position: initial;
    }

        .mx_ContextualMenu_wrapper.mx_BaseCard_header_title .mx_ContextualMenu span:first-of-type {
            font-weight: var(--cpd-font-weight-semibold);
            font-size: inherit;
            color: var(--timeline-text-color);
        }

        .mx_ContextualMenu_wrapper.mx_BaseCard_header_title .mx_ContextualMenu{

        font: var(--cpd-font-body-sm-regular);
        color: var(--timeline-text-color);
        padding-top: 10px;
        padding-bottom: 10px;

        border: var(--cpd-border-width-1) solid var(--cpd-color-border-interactive-secondary);
        -webkit-box-shadow: 0px 4px 24px rgb(0, 0, 0, 0.1);
                box-shadow: 0px 4px 24px rgb(0, 0, 0, 0.1);
}

    .mx_ContextualMenu_wrapper.mx_BaseCard_header_title .mx_ContextualMenu_chevron_top {
        left: auto;
        right: 22px;
        border-bottom-color: var(--cpd-color-border-interactive-secondary);
    }

        .mx_ContextualMenu_wrapper.mx_BaseCard_header_title .mx_ContextualMenu_chevron_top::after {
            content: "";
            border: inherit;
            border-bottom-color: var(--cpd-color-bg-canvas-default);
            position: absolute;
            top: 1px;
            left: -8px;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EmptyState {
    height: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: var(--cpd-space-4x);
    text-align: center;
}

    .mx_EmptyState svg {
        width: 56px;
        height: 56px;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        border-radius: 8px;
        padding: var(--cpd-space-3x);
        background-color: var(--roomlist-highlights-color);
    }

    .mx_EmptyState::before {
        /* Bloom using magic numbers directly out of Figma */
        content: "";
        position: absolute;
        z-index: -1;
        width: 642px;
        height: 775px;
        right: -253.77px;
        top: 0;
        background: radial-gradient(49.95% 49.95% at 50% 50%, rgb(13, 189, 139, 0.12) 0%, rgb(18, 115, 235, 0) 100%);
        -webkit-transform: rotate(-89.69deg);
                transform: rotate(-89.69deg);
        overflow: hidden;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_EncryptionInfo_spinner .mx_Spinner {
        margin-top: 25px;
        margin-bottom: 15px;
    }
    .mx_EncryptionInfo_spinner{

    text-align: center;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ExtensionsCard {
    --cpd-separator-spacing: var(--cpd-space-6x);
    --AddExtension-overlap: -76px;
}
    .mx_ExtensionsCard .mx_AutoHideScrollbar {
        padding: 0 var(--cpd-space-4x);
        margin-top: var(--cpd-space-6x);
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
    }

        /* Styling for the "Add extensions" button */
        .mx_ExtensionsCard .mx_AutoHideScrollbar > button {
            width: 100%;
        }

    .mx_ExtensionsCard .mx_ExtensionsCard_container {
        text-align: center;
        margin: var(--cpd-space-5x) var(--cpd-space-4x) 0;
    }

    .mx_ExtensionsCard .mx_ExtensionsCard_Button {
        /* this button is special so we have to override some of the original styling */
        /* as we will be applying it in its children */
        padding: 0;
        height: auto;
        color: #2e2f32;
        color: var(--tertiary-content, #2e2f32);
        position: relative;
    }

        .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_WidgetAvatar {
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }

        .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_icon_app {
            padding: var(--cpd-space-2x) var(--cpd-space-12x) var(--cpd-space-2x) var(--cpd-space-3x);
            text-overflow: ellipsis;
            overflow: hidden;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

            .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_icon_app p {
                margin: 0 var(--cpd-space-3x);
                color: var(--timeline-text-color);
            }

        .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_pinToggle,
        .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_options {
            position: absolute;
            top: 0;
            height: 100%; /* to give bigger interactive zone */
            width: 24px;
            padding: var(--cpd-space-3x) var(--cpd-space-1x);
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }

            .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_pinToggle svg, .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_options svg {
                width: 16px;
                height: 16px;
                color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
            }
                .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_pinToggle:hover::after, .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_options:hover::after {
                    content: "";
                    position: absolute;
                    height: 24px;
                    width: 24px;
                    top: var(--cpd-space-2x); /* equal to padding-top of parent */
                    left: 0;
                    border-radius: 12px;
                    background-color: rgb(141, 151, 165, 0.1);
                }

        .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_pinToggle {
            right: 8px;
        }

        .mx_ExtensionsCard .mx_ExtensionsCard_Button .mx_ExtensionsCard_app_options {
            right: 32px; /* 24 + 8 */
        }
            .mx_ExtensionsCard .mx_ExtensionsCard_Button.mx_ExtensionsCard_Button_pinned::after {
                opacity: 0.2;
            }

            .mx_ExtensionsCard .mx_ExtensionsCard_Button.mx_ExtensionsCard_Button_pinned .mx_ExtensionsCard_app_pinToggle svg {
                color: #0dbd8b;
                color: var(--accent-color, #0dbd8b);
            }

        .mx_ExtensionsCard .mx_ExtensionsCard_Button::before {
            content: normal;
            content: initial;
        }

        .mx_ExtensionsCard .mx_ExtensionsCard_Button::after {
            top: var(--cpd-space-2x); /* re-align based on the height change */
            pointer-events: none; /* pass through to the real button */
        }

    /* Set layout for everyone button */
    .mx_ExtensionsCard a[data-kind="primary"] {
        margin-top: var(--cpd-space-10x);
    }

    .mx_ExtensionsCard .mx_EmptyState::before {
        /* Overlap the Add extensions button */
        top: var(--AddExtension-overlap);
    }

    .mx_ExtensionsCard .mx_EmptyState {
        /* Stop empty state scrolling */
        height: calc(100% + var(--AddExtension-overlap));
    }
}
@layer app-web{

/*
Copyright 2026 Element Creations Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* The usercontent iframe the document is rendered in. */
.mx_PdfViewer_iframe {
    display: block;
    border: 0;
    /* Lets the panel's background show through around the pages. */
    background: transparent;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PinnedMessagesCard {
    --unpin-height: 76px;
}

    .mx_PinnedMessagesCard .mx_PinnedMessagesCard_wrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        padding: var(--cpd-space-4x);
        gap: var(--cpd-space-6x);
        overflow-y: auto;
    }

        .mx_PinnedMessagesCard .mx_PinnedMessagesCard_wrapper .mx_PinnedMessagesCard_Separator {
            min-height: 1px;
            /* Override default compound value */
            margin-block: 0;
        }

    .mx_PinnedMessagesCard .mx_PinnedMessagesCard_wrapper_unpin_all {
        /* Remove the unpin all button height and the top and bottom padding  */
        height: calc(100% - var(--unpin-height) - calc(var(--cpd-space-4x) * 2));
    }

    .mx_PinnedMessagesCard .mx_PinnedMessagesCard_unpin {
        /* Make it float at the bottom of the unpin panel */
        position: absolute;
        bottom: 0;
        width: 100%;
        height: var(--unpin-height);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-shadow: 0 4px 24px 0 rgb(27, 29, 34, 0.1);
                box-shadow: 0 4px 24px 0 rgb(27, 29, 34, 0.1);
        background: var(--cpd-color-bg-canvas-default);
    }

    .mx_PinnedMessagesCard .mx_EventTile_line {
        word-break: break-word;
    }
}
@layer app-web{

/*
Copyright 2024, 2025 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomSummaryCard {
    --cpd-separator-inset: var(--cpd-space-4x);
    --cpd-separator-spacing: var(--cpd-space-4x);
}

    .mx_RoomSummaryCard .mx_RoomSummaryCard_container {
        text-align: center;
        margin: var(--cpd-space-5x) var(--cpd-space-4x) 0;
    }

    .mx_RoomSummaryCard .mx_RoomSummaryCard_roomName,
    .mx_RoomSummaryCard .mx_RoomSummaryCard_alias {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        white-space: pre-wrap;
        overflow: hidden;
    }

    .mx_RoomSummaryCard .mx_RoomSummaryCard_alias {
        text-overflow: ellipsis;
    }

    .mx_RoomSummaryCard .mx_RoomSummaryCard_topic {
        padding: 0 12px;
        color: var(--cpd-color-text-secondary);
    }

        .mx_RoomSummaryCard .mx_RoomSummaryCard_topic .mx_RoomSummaryCard_topic_box {
            width: 100%;
        }

        .mx_RoomSummaryCard .mx_RoomSummaryCard_topic .mx_RoomSummaryCard_topic_container {
            text-align: start;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
        }

        .mx_RoomSummaryCard .mx_RoomSummaryCard_topic .mx_RoomSummaryCard_topic_edit {
            width: -webkit-max-content;
            width: -moz-max-content;
            width: max-content;
        }

        .mx_RoomSummaryCard .mx_RoomSummaryCard_topic p {
            white-space: pre-wrap;
            width: 100%;
            min-width: 0;
            margin: 0;
        }

        .mx_RoomSummaryCard .mx_RoomSummaryCard_topic a {
            cursor: pointer;
        }

        .mx_RoomSummaryCard .mx_RoomSummaryCard_topic .mx_RoomSummaryCard_topic_chevron {
            -webkit-transition: -webkit-transform 0.3s;
            transition: -webkit-transform 0.3s;
            transition: transform 0.3s;
            transition: transform 0.3s, -webkit-transform 0.3s;
        }
            .mx_RoomSummaryCard .mx_RoomSummaryCard_topic.mx_RoomSummaryCard_topic_collapsed p {
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: normal;
                display: -webkit-box;
                -webkit-box-orient: vertical;
                -webkit-line-clamp: 2;
            }

            .mx_RoomSummaryCard .mx_RoomSummaryCard_topic.mx_RoomSummaryCard_topic_collapsed .mx_RoomSummaryCard_topic_chevron {
                -webkit-transform: rotate(-90deg);
                        transform: rotate(-90deg);
            }

    .mx_RoomSummaryCard .mx_AccessibleButton_kind_link {
        margin-top: 12px;
        margin-bottom: 12px;
        font-size: 0.8125rem;
        font-weight: var(--cpd-font-weight-semibold);
    }

.mx_RoomSummaryCard_badges {
    margin: var(--cpd-space-4x) 0;
}

.mx_RoomSummaryCard_search {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    min-width: 0;
}

    .mx_RoomSummaryCard_search input[type="search"]::-webkit-search-cancel-button {
        display: inline;
        display: initial; /* override _common.pcss which inhibits this */
    }

.mx_RoomSummaryCard_roomName {
    margin: var(--cpd-space-3x) 0 var(--cpd-space-1x);
}

.mx_RoomSummaryCard_bottomOptions {
    margin: 0 0 var(--cpd-space-8x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021-2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ThreadPanel {
    height: 100px;
    overflow: visible;
}

    .mx_ThreadPanel .mx_ThreadPanelHeader {
        height: 64px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        padding: 16px;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        border-bottom: 1px solid var(--cpd-color-gray-400);
    }

        .mx_ThreadPanel .mx_ThreadPanelHeader .mx_AccessibleButton {
            font-size: 12px;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }

        .mx_ThreadPanel .mx_ThreadPanelHeader .mx_ThreadPanel_vertical_separator {
            height: 28px;
            margin-left: var(--cpd-space-3x);
            margin-right: var(--cpd-space-2x);
            border-left: 1px solid var(--cpd-color-gray-400);
        }

        .mx_ThreadPanel .mx_ThreadPanelHeader .mx_ThreadPanel_dropdown {
            font: var(--cpd-font-body-sm-regular);
            padding: 3px var(--cpd-space-1x) 3px var(--cpd-space-2x);
            border-radius: 4px;
            line-height: 1.5;
            -webkit-user-select: none;
               -moz-user-select: none;
                -ms-user-select: none;
                    user-select: none;
        }

            .mx_ThreadPanel .mx_ThreadPanelHeader .mx_ThreadPanel_dropdown:hover,
            .mx_ThreadPanel .mx_ThreadPanelHeader .mx_ThreadPanel_dropdown[aria-expanded="true"] {
                background: #6f7882;
                background: var(--quinary-content, #6f7882);
            }

            .mx_ThreadPanel .mx_ThreadPanelHeader .mx_ThreadPanel_dropdown svg {
                margin-left: 2px;
                height: 20px;
                width: 20px;
                display: inline-block;
                vertical-align: bottom;
            }

    .mx_ThreadPanel .mx_AutoHideScrollbar,
    .mx_ThreadPanel .mx_RoomView_messagePanelSpinner {
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        border-radius: 8px;
        -webkit-padding-end: 0;
                padding-inline-end: 0;
        overflow-y: scroll; /* set gap between the thread tile and the right border */
        height: 100%;
    }

    /* For style rules of EventTile in a thread, see _EventTile.pcss */
    .mx_ThreadPanel.mx_ThreadView {
        max-height: 100%;
    }

        .mx_ThreadPanel.mx_ThreadView .mx_ThreadView_timelinePanelWrapper {
            position: relative;
            min-height: 0; /* don't displace the composer */
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
        }

            .mx_ThreadPanel.mx_ThreadView .mx_ThreadView_timelinePanelWrapper .mx_FileDropTarget {
                border-radius: 8px;
            }

        .mx_ThreadPanel.mx_ThreadView .mx_MessageComposer_sendMessage {
            margin-right: 0;
        }

        /* Make use of the space above the composer buttons too */
        .mx_ThreadPanel.mx_ThreadView .mx_Autocomplete {
            width: calc(100% + 140px);
        }
        .mx_ThreadPanel.mx_ThreadView.mx_ThreadView_narrow .mx_Autocomplete {
            width: calc(100% + 108px);
        }
        .mx_ThreadPanel .mx_RoomView_messagePanel.mx_RoomView_messageListWrapper {
            position: static;
            position: initial;
        }

        .mx_ThreadPanel .mx_RoomView_messagePanel .mx_RoomView_messageListWrapper {
            width: calc(100% + 6px); /* 8px - 2px */
        }

        .mx_ThreadPanel .mx_RoomView_messagePanel .mx_RoomView_empty {
            display: contents;
        }

    .mx_ThreadPanel .mx_RoomView_MessageList {
        -webkit-padding-start: var(--cpd-space-2x);
                padding-inline-start: var(--cpd-space-2x);
        -webkit-padding-end: var(--cpd-space-2x);
                padding-inline-end: var(--cpd-space-2x);
        content-visibility: visible;
    }

    .mx_ThreadPanel .mx_GenericEventListSummary {
        /* Account for scrollbar when hovering */
        padding-top: 0;
    }

        .mx_ThreadPanel .mx_GenericEventListSummary .mx_TimelineSeparator {
            display: none;
        }

    .mx_ThreadPanel .mx_MessageComposer {
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        border-radius: 8px;
        margin-top: 8px;
        padding: 0 8px;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
    }

    .mx_ThreadPanel .mx_BaseCard_footer {
        text-align: left;
        font-size: 0.75rem;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        gap: 4px;
        position: relative;
        top: 2px;
        padding-right: 8px;
    }

        .mx_ThreadPanel .mx_BaseCard_footer .mx_AccessibleButton_kind_link_inline {
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }
    .mx_ContextualMenu_wrapper .mx_ThreadPanel_Header_FilterOptionItem {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        -webkit-box-pack: justify;
            -ms-flex-pack: justify;
                justify-content: space-between;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        padding: 10px 20px 10px 30px;
        position: relative;
    }

        .mx_ContextualMenu_wrapper .mx_ThreadPanel_Header_FilterOptionItem:hover {
            background-color: var(--timeline-highlights-color);
        }
            .mx_ContextualMenu_wrapper .mx_ThreadPanel_Header_FilterOptionItem[aria-checked="true"] span:first-child {
                margin-left: -20px;
            }

            .mx_ContextualMenu_wrapper .mx_ThreadPanel_Header_FilterOptionItem[aria-checked="true"] svg {
                width: 12px;
                height: 12px;
                margin-right: 8px;
                color: var(--timeline-text-color);
                display: inline-block;
                vertical-align: middle;
                position: absolute;
                top: 14px;
                left: 10px;
            }

        .mx_ContextualMenu_wrapper .mx_ThreadPanel_Header_FilterOptionItem span:last-child {
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021, 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_TimelineCard .mx_TimelineCard_timeline {
        overflow: hidden;
        position: relative; /* offset parent for jump to bottom button */
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        border-radius: 8px;
    }

    .mx_TimelineCard .mx_NewRoomIntro {
        -webkit-margin-start: var(--BaseCard_EventTile-spacing-inline);
                margin-inline-start: var(--BaseCard_EventTile-spacing-inline);
        -webkit-margin-end: var(--BaseCard_EventTile-spacing-inline);
                margin-inline-end: var(--BaseCard_EventTile-spacing-inline);
    }

    .mx_TimelineCard .mx_LegacyCallEvent_wrapper {
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        margin: auto 5px;
    }
        .mx_TimelineCard .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent {
            margin: 4px;
        }
            .mx_TimelineCard .mx_GenericEventListSummary[data-layout="irc"] .mx_EventTile_line,
            .mx_TimelineCard .mx_GenericEventListSummary[data-layout="irc"] .mx_GenericEventListSummary_unstyledList > .mx_EventTile > :has(> .mx_BaseAvatar) ~ .mx_EventTile_line,
            .mx_TimelineCard .mx_GenericEventListSummary[data-layout="group"] .mx_EventTile_line,
            .mx_TimelineCard .mx_GenericEventListSummary[data-layout="group"] .mx_GenericEventListSummary_unstyledList > .mx_EventTile > :has(> .mx_BaseAvatar) ~ .mx_EventTile_line {
                -webkit-padding-start: var(--BaseCard_EventTile-spacing-inline);
                        padding-inline-start: var(--BaseCard_EventTile-spacing-inline);
                -webkit-padding-end: 46px;
                        padding-inline-end: 46px;
                -webkit-padding-end: var(--MessageTimestamp-width);
                        padding-inline-end: var(--MessageTimestamp-width); /* ensure timestamp is not hidden */
            }

    .mx_TimelineCard .mx_WhoIsTypingTile {
        margin-left: -12px; /* undo padding on the message list */
    }

    .mx_TimelineCard .mx_WhoIsTypingTile_avatars {
        -ms-flex-preferred-size: 48px;
            flex-basis: 48px; /* 12 (padding on message list) + 36 (padding on event lines) */
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_UserInfo.mx_BaseCard {
    /* UserInfo has a circular image at the top so it fits between the back & close buttons */
    padding-top: 0;
    overflow-y: auto;
    font-size: var(--cpd-font-size-body-sm);
}

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_container {
        padding: var(--cpd-space-2x) 0 var(--cpd-space-4x);
        margin: 0 var(--cpd-space-4x);
    }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container + .mx_UserInfo_container {
            border-top: 1px solid var(--cpd-color-gray-400);
        }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_avatar {
        margin: var(--cpd-space-12x) var(--cpd-space-4x) 0 var(--cpd-space-4x);
    }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_avatar .mx_UserInfo_avatar_transition {
            max-width: 120px;
            aspect-ratio: 1 / 1;
            margin: 0 auto;
            -webkit-transition: 0.5s;
            transition: 0.5s;
        }

            .mx_UserInfo.mx_BaseCard .mx_UserInfo_avatar .mx_UserInfo_avatar_transition .mx_BaseAvatar {
                /* Override the calculated font-size so that the letter isn't tiny */
                font-size: 4rem;
            }

            .mx_UserInfo.mx_BaseCard .mx_UserInfo_avatar .mx_UserInfo_avatar_transition .mx_BaseAvatar,
            .mx_UserInfo.mx_BaseCard .mx_UserInfo_avatar .mx_UserInfo_avatar_transition .mx_BaseAvatar img {
                width: 100%;
                height: 100%;
            }

    .mx_UserInfo.mx_BaseCard h2 {
        text-transform: uppercase;
        color: #2e2f32;
        color: var(--tertiary-content, #2e2f32);
        font: var(--cpd-font-body-md-semibold);
        font-weight: var(--cpd-font-weight-semibold);
        margin: var(--cpd-space-1x) 0;
    }

    .mx_UserInfo.mx_BaseCard p {
        margin: 5px 0;
    }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_header {
        margin-bottom: var(--cpd-space-8x);
        padding-bottom: 0;
    }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-1x);
    }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile h1 {
            margin: 0;
            font-size: 1.25rem;
            line-height: 1.5625rem;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile .mx_UserInfo_profile_name {
            min-height: 30px;

            /* limit to 2 lines, show an ellipsis if it overflows */
            /* this looks webkit specific but is supported by Firefox 68+ */
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 2;

            overflow: hidden;
            word-break: break-all;
            text-overflow: ellipsis;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile .mx_UserInfo_profile_mxid {
            color: var(--cpd-color-text-secondary);
            height: 28px;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile .mx_UserInfo_profileStatus {
            height: 20px;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile .mx_UserInfo_timezone {
            height: 20px;
            margin: 0;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

        /** Overrides for the copy to clipboard button **/
        .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile .mx_CopyableText {
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_profile .mx_CopyableText_copyButton {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            position: static;
            position: initial;
        }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_timezone {
        margin: var(--cpd-space-1x) 0;
    }

    .mx_UserInfo.mx_BaseCard .mx_PresenceLabel {
        font: var(--cpd-font-body-sm-regular);
        opacity: 1;
    }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_verification {
        margin-top: var(--cpd-space-4x);
        height: 36px;
    }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_verification .mx_UserInfo_verified_badge {
            min-width: 68px;
            height: 20px;
        }

            .mx_UserInfo.mx_BaseCard .mx_UserInfo_verification .mx_UserInfo_verified_badge .mx_UserInfo_verified_icon {
                -ms-flex-negative: 0;
                    flex-shrink: 0;
            }

            .mx_UserInfo.mx_BaseCard .mx_UserInfo_verification .mx_UserInfo_verified_badge .mx_UserInfo_verified_label {
                margin: 0;
            }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_verification .mx_UserInfo_verification_unavailable {
            color: var(--cpd-color-text-secondary);
        }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_field {
        line-height: 1rem;
    }

    .mx_UserInfo.mx_BaseCard .mx_UserInfo_statusMessage {

        font: var(--cpd-font-body-sm-regular);
        font-size: 0.6875rem;
        line-height: 1rem;
        opacity: 0.5;
        overflow: hidden;
        word-break: break-word;
        text-overflow: ellipsis;
        display: -webkit-box;
        max-height: calc(1rem * 3);
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
    }

    .mx_UserInfo.mx_BaseCard .mx_AutoHideScrollbar {
        -webkit-box-flex: 1;
            -ms-flex: 1 1 0px;
                flex: 1 1 0;
    }
            .mx_UserInfo.mx_BaseCard.mx_UserInfo_smallAvatar .mx_UserInfo_avatar .mx_UserInfo_avatar_transition {
                max-width: 72px;
                margin: 0 auto;
            }

            .mx_UserInfo.mx_BaseCard.mx_UserInfo_smallAvatar .mx_UserInfo_avatar .mx_BaseAvatar {
                /* Override the calculated font-size so that the letter isn't tiny */
                font-size: 2rem;
            }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    /* center the big shield icon */
    .mx_VerificationPanel_verified_section .mx_E2EIcon, .mx_VerificationPanel_reciprocate_section .mx_E2EIcon {
        /* Override general user info margin */
        margin: 20px auto !important;
    }
        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container:not(.mx_UserInfo_separator) > div > p {
            margin-top: 0;
            margin-bottom: 0;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container:not(.mx_UserInfo_separator) .mx_VerificationPanel_verifyByEmojiButton,
        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container:not(.mx_UserInfo_separator) .mx_UserInfo_wideButton {
            width: -webkit-fit-content;
            width: -moz-fit-content;
            width: fit-content;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container:not(.mx_UserInfo_separator) .mx_EncryptionInfo_spinner,
        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container:not(.mx_UserInfo_separator) .mx_VerificationShowSas {
            -webkit-margin-start: auto;
                    margin-inline-start: auto;
            -webkit-margin-end: auto;
                    margin-inline-end: auto;
        }

        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container:not(.mx_UserInfo_separator) .mx_Spinner,
        .mx_UserInfo.mx_BaseCard .mx_UserInfo_container:not(.mx_UserInfo_separator) .mx_VerificationShowSas {
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

    .mx_UserInfo.mx_BaseCard .mx_VerificationPanel_qrCode {
        padding: 4px 4px 0 4px;
        background: white;
        border-radius: 4px;
        width: -webkit-max-content;
        width: -moz-max-content;
        width: max-content;
        max-width: 100%;
        /* Override general user info margin */
        margin: 0 auto !important;
    }

        .mx_UserInfo.mx_BaseCard .mx_VerificationPanel_qrCode canvas {
            /* override height and width which are set on the element directly */
            height: auto !important;
            width: 100% !important;
            max-width: 240px;
        }
        .mx_UserInfo.mx_BaseCard .mx_VerificationPanel_reciprocate_section .mx_AccessibleButton {
            width: 100%;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            padding: 10px;
            display: block;
            margin: 10px 0;
        }

/* Special case styling for EncryptionPanel in a Modal dialog */
    .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions, .mx_CompleteSecurity_body .mx_VerificationPanel_QRPhase_startOptions {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-top: 10px;
        margin-bottom: 10px;
        -webkit-box-align: stretch;
            -ms-flex-align: stretch;
                align-items: stretch;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

        .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions > .mx_VerificationPanel_QRPhase_betweenText, .mx_CompleteSecurity_body .mx_VerificationPanel_QRPhase_startOptions > .mx_VerificationPanel_QRPhase_betweenText {
            width: 50px;
            vertical-align: middle;
            text-align: center;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
        }

        .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption, .mx_CompleteSecurity_body .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption {
            background-color: var(--roomlist-background-color);
            border-radius: 10px;
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            padding: 20px;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            position: relative;
            max-width: 310px;
            -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                    justify-content: space-between;
        }

            .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption canvas,
            .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption .mx_VerificationPanel_QRPhase_noQR,
            .mx_CompleteSecurity_body .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption canvas,
            .mx_CompleteSecurity_body .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption .mx_VerificationPanel_QRPhase_noQR {
                width: 220px !important;
                height: 220px !important;
                background-color: #fff;
                border-radius: 4px;
                vertical-align: middle;
                text-align: center;
                padding: 10px;
            }

            .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption > p, .mx_CompleteSecurity_body .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption > p {
                margin-top: 0;
                font-weight: 700;
            }

            .mx_Dialog .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption .mx_VerificationPanel_QRPhase_helpText, .mx_CompleteSecurity_body .mx_VerificationPanel_QRPhase_startOptions .mx_VerificationPanel_QRPhase_startOption .mx_VerificationPanel_QRPhase_helpText {
                font: var(--cpd-font-body-md-regular);
                margin: 30px 0;
                text-align: center;
            }

    /* EncryptionPanel when verification is done */
        /* right align the "Got it" button */
        .mx_Dialog .mx_VerificationPanel_verified_section .mx_AccessibleButton, .mx_CompleteSecurity_body .mx_VerificationPanel_verified_section .mx_AccessibleButton {
            float: right;
        }
        .mx_Dialog .mx_VerificationPanel_reciprocate_section .mx_AccessibleButton, .mx_CompleteSecurity_body .mx_VerificationPanel_reciprocate_section .mx_AccessibleButton {
            margin-left: 10px;
            padding: 7px 40px;
        }

        .mx_Dialog .mx_VerificationPanel_reciprocate_section .mx_VerificationPanel_reciprocateButtons, .mx_CompleteSecurity_body .mx_VerificationPanel_reciprocate_section .mx_VerificationPanel_reciprocateButtons {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
            -webkit-box-pack: end;
                -ms-flex-pack: end;
                    justify-content: flex-end;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_WidgetCard .mx_AppTileFullWidth {
        max-width: none;
        max-width: initial;
        width: auto !important;
        height: 100%;
        border: 0;
    }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AliasSettings_localAddresses {
    cursor: pointer;
    color: var(--cpd-color-text-primary);
    font-weight: var(--cpd-font-weight-semibold);
    text-decoration: underline;
    list-style: none;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
}

    /* list-style doesn't do it for webkit */
    .mx_AliasSettings_localAddresses::-webkit-details-marker {
        display: none;
    }
}
@layer app-web{

/*
 * Copyright 2025 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_RoomListPanel {
    background-color: var(--cpd-color-bg-canvas-default);
    height: 100%;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AppsDrawer {
    --minWidth: 240px; /* TODO this should be 300px but that's too large */

    margin: 8px;

    margin: var(--container-gap-width);
    /* The left side gap is fully handled by this margin. To prohibit bleeding on webkit browser. */
    margin-right: calc(8px / 2);
    margin-right: calc(var(--container-gap-width) / 2);
    margin-bottom: 0; /* No bottom margin for the correct gap to the CallView below. */
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    overflow: hidden;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
}

    .mx_AppsDrawer .mx_AppsDrawer_resizer {
        margin-bottom: 8px;
        margin-bottom: var(--container-gap-width);
    }

    .mx_AppsDrawer .mx_AppsDrawer_resizer_container {
        width: 100%;
        height: 10px;
        display: block;
        position: relative;
    }

        .mx_AppsDrawer .mx_AppsDrawer_resizer_container .mx_AppsDrawer_resizer_container_handle {
            cursor: ns-resize;

            /* Override styles from library, making the whole area the target area */
            width: 100% !important;
            height: 100% !important;

            /* This is positioned directly below frame */
            position: absolute;
            bottom: 50% !important; /* override from library */

            /* We then render the pill handle in an ::after to keep it in the handle's */
        }
            /* area without being a massive line across the screen */
            .mx_AppsDrawer .mx_AppsDrawer_resizer_container .mx_AppsDrawer_resizer_container_handle::after {
                content: "";
                position: absolute;
                border-radius: 3px;

                height: 4px;
                bottom: 0;

                /* Together, these make the bar 64px wide */
                /* These are also overridden from the library */
                left: calc(50% - 32px);
                right: calc(50% - 32px);
            }
        .mx_AppsDrawer:hover .mx_AppsDrawer_resizer_container_handle::after {
            opacity: 0.8;
            background: var(--timeline-text-color);
        }

        .mx_AppsDrawer:hover .mx_ResizeHandle--horizontal::before {
            position: absolute;
            left: 3px;
            top: 50%;
            -webkit-transform: translate(0, -50%);
                    transform: translate(0, -50%);

            height: 64px; /* to match width of the ones on roomlist */
            width: 4px;
            border-radius: 4px;

            content: "";

            background-color: var(--timeline-text-color);
            opacity: 0.8;
        }

    .mx_AppsDrawer .mx_AppTile {
        width: 50%;
        min-width: var(--minWidth);
    }

    .mx_AppsDrawer.mx_AppsDrawer--maximised {
        margin-bottom: 8px;
        margin-bottom: var(--container-gap-width);
    }

    .mx_AppsDrawer.mx_AppsDrawer--resizing .mx_AppTile_persistedWrapper {
        z-index: 1;
    }

    .mx_AppsDrawer.mx_AppsDrawer--2apps .mx_AppTile {
        width: 50%;
    }

        .mx_AppsDrawer.mx_AppsDrawer--2apps .mx_AppTile:nth-child(3) {
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
            width: 0 !important;
            min-width: var(--minWidth) !important;
        }
    .mx_AppsDrawer.mx_AppsDrawer--3apps .mx_AppTile {
        width: 33%;
    }

        .mx_AppsDrawer.mx_AppsDrawer--3apps .mx_AppTile:nth-child(3) {
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
            width: 0 !important;
            min-width: var(--minWidth) !important;
        }

.mx_AppsContainer {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    height: 100%;
    width: 100%;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-height: 0;
}

    .mx_AppsContainer .mx_AppTile:first-of-type {
        border-left-width: 8px;
        border-left-width: var(--container-border-width);
        border-radius: 10px 0 0 10px;
    }
    .mx_AppsContainer .mx_AppTile:last-of-type {
        border-right-width: 8px;
        border-right-width: var(--container-border-width);
        border-radius: 0 10px 10px 0;
    }

    .mx_AppsContainer .mx_ResizeHandle--horizontal {
        position: relative;
    }

        .mx_AppsContainer .mx_ResizeHandle--horizontal > div {
            width: 0;
        }

.mx_AppTile {
    border: 8px solid var(--roomlist-background-color);
    border: var(--container-border-width) solid var(--roomlist-background-color);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    background-color: var(--roomlist-background-color);
}

.mx_AppTileFullWidth {
    width: 100% !important; /* to override the inline style set by the resizer */
    margin: 0;
    padding: 0;
    border: 8px solid var(--roomlist-background-color);
    border: var(--container-border-width) solid var(--roomlist-background-color);
    border-radius: 8px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    background-color: var(--roomlist-background-color);
}

.mx_AppTile_mini {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

.mx_AppTile .mx_AppTile_persistedWrapper,
.mx_AppTileFullWidth .mx_AppTile_persistedWrapper,
.mx_AppTile_mini .mx_AppTile_persistedWrapper {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}

.mx_AppTile_persistedWrapper div {
    width: 100%;
    height: 100%;
}

.mx_AppTileMenuBar {
    margin: 0;
    font-size: 0.75rem;
    background-color: var(--roomlist-background-color);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    width: 100%;
    padding-top: 3px;
    padding-bottom: 6px;
}

    .mx_AppTileMenuBar .mx_AppTileMenuBar_title {
        line-height: 20px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

        .mx_AppTileMenuBar .mx_AppTileMenuBar_title .mx_WidgetAvatar {
            margin-right: 12px;
        }

        .mx_AppTileMenuBar .mx_AppTileMenuBar_title h1 {
            font-size: inherit;
            margin: 0;
        }

        .mx_AppTileMenuBar .mx_AppTileMenuBar_title > :last-child {
            margin-left: 9px;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

    .mx_AppTileMenuBar .mx_AppTileMenuBar_widgets {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_AppTileMenuBar .mx_AppTileMenuBar_widgets .mx_AppTileMenuBar_widgets_button {
            --size: 24px; /* Size of the button. Its height and width values should be same */

            margin: 0 4px;
            position: relative;
            height: 24px;
            height: var(--size);
            width: 24px;
            width: var(--size);
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
        }

            .mx_AppTileMenuBar .mx_AppTileMenuBar_widgets .mx_AppTileMenuBar_widgets_button:hover::after {
                content: "";
                position: absolute;
                height: var(--size);
                width: var(--size);
                background-color: var(--roomlist-highlights-color);
                border-radius: 50%;
                left: 0;
                top: 0;
            }

            .mx_AppTileMenuBar .mx_AppTileMenuBar_widgets .mx_AppTileMenuBar_widgets_button .mx_Icon {
                color: #61708b;
            }

/* Rules added to this selector style appTileBody generally */
.mx_AppTileBody {
    /* Apply to every variant of appTileBody */
    border-radius: 8px;
}
    /* Note the loading spinner and the message next to it are not always included in mx_AppTileBody--loading */
    .mx_AppTileBody .mx_AppTileBody_fadeInSpinner {
        /* place spinner and the message at the center of mx_AppTileBody */
        height: 100%;
        width: 100%;

        font-weight: bold; /* message next to the spinner */
        -webkit-animation-fill-mode: backwards;
                animation-fill-mode: backwards;
        -webkit-animation-duration: 200ms;
                animation-duration: 200ms;
        -webkit-animation-delay: 500ms;
                animation-delay: 500ms;
        -webkit-animation-name: mx_AppTileBody_fadeInSpinnerAnimation;
                animation-name: mx_AppTileBody_fadeInSpinnerAnimation;
    }

    .mx_AppTileBody.mx_AppTileBody--large,
    .mx_AppTileBody.mx_AppTileBody--mini {
        width: 100%;
        height: 100%;
        overflow: hidden;
    }

        .mx_AppTileBody.mx_AppTileBody--large iframe, .mx_AppTileBody.mx_AppTileBody--mini iframe {
            border: none;
            width: 100%;
            height: 100%;
        }

    .mx_AppTileBody.mx_AppTileBody--large {
        --AppTileBody-height: 100%;

        background-color: #fff;
    }

        .mx_AppTileBody.mx_AppTileBody--large iframe {
            overflow: hidden;
            padding: 0;
            margin: 0;
            display: block;
        }

    .mx_AppTileBody.mx_AppTileBody--loading {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        position: relative;
        height: 100%;

        /* match bg of border so that the cut corners have the right fill */
        background-color: #fff !important;
    }

        .mx_AppTileBody.mx_AppTileBody--loading iframe {
            display: none;
        }

    .mx_AppTileBody.mx_AppTileBody--call {
        border-radius: 0px;
    }

    /* const loadingElement */
    .mx_AppTileBody.mx_AppTileBody--call.mx_AppTileBody--mini {
        border-radius: 8px;
    }

/* appTileBody is embedded to PersistedElement outside of mx_AppTile,
   so rules to style appTileBody generally should not be included here. */
.mx_AppTile .mx_AppTileBody--large,
.mx_AppTileFullWidth .mx_AppTileBody--large,
.mx_AppTile_mini .mx_AppTileBody--mini {
    height: inherit;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}

@-webkit-keyframes mx_AppTileBody_fadeInSpinnerAnimation {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes mx_AppTileBody_fadeInSpinnerAnimation {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}
}
@layer app-web{

.mx_Autocomplete {
    position: absolute;
    bottom: 0;
    z-index: 1001;
    width: 100%;
    border: 1px solid var(--roomlist-separator-color);
    background: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-bottom: none;
    border-radius: 8px 8px 0 0;
    overflow: clip;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-shadow: 0px -16px 32px tranparent;
            box-shadow: 0px -16px 32px tranparent;
}

.mx_Autocomplete_ProviderSection {
    border-bottom: 1px solid var(--roomlist-separator-color);
    width: 100%;
}

/* a "block" completion takes up a whole line */
.mx_Autocomplete_Completion_block {
    min-height: 34px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    padding: 0 12px;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    cursor: pointer;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: var(--timeline-text-color);
}

.mx_Autocomplete_Completion_block * {
    margin: 0 3px;
}

.mx_Autocomplete_Completion_pill {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    border-radius: 2rem;
    height: 2.125rem;
    padding: 0.4rem;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    cursor: pointer;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: var(--timeline-text-color);
}

.mx_Autocomplete_Completion_pill > * {
    margin-right: 0.3rem;
}

/* styling for common completion elements */
.mx_Autocomplete_Completion_subtitle {
    font-style: italic;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}

.mx_Autocomplete_Completion_description {
    color: gray;
    min-width: 150px;
}

.mx_Autocomplete_Completion_container_pill {
    margin: 12px;
    height: 100%;
    overflow-y: scroll;
}

@container roomview (height >= 0px) {
    .mx_Autocomplete_Completion_container_pill {
        max-height: 40cqh;
    }
}
    .mx_Autocomplete_Completion_container_truncate .mx_Autocomplete_Completion_title,
    .mx_Autocomplete_Completion_container_truncate .mx_Autocomplete_Completion_subtitle,
    .mx_Autocomplete_Completion_container_truncate .mx_Autocomplete_Completion_description {
        /* Ellipsis for long names/subtitles/descriptions */
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

.mx_Autocomplete_Completion.selected,
.mx_Autocomplete_Completion:hover {
    background: var(--roomlist-background-color);
    outline: none;
}

.mx_Autocomplete_provider_name {
    margin: 12px;
    color: var(--timeline-text-color);
    font-weight: 400;
    opacity: 0.4;
}
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AuxPanel {
    min-width: 0px;
    width: 100%;
    margin: 0px auto;

    overflow: auto;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_BasicMessageComposer {
    /* These are set in Javascript */
    --avatar-letter: "";
    --avatar-background: unset;
    --avatar-color: unset;
    --placeholder: "";

    position: relative;
}

    .mx_BasicMessageComposer .mx_BasicMessageComposer_inputEmpty > :first-child::before {
        content: var(--placeholder);
        color: var(--cpd-color-text-secondary);
        width: 0;
        height: 0;
        overflow: visible;
        display: inline-block;
        pointer-events: none;
        white-space: nowrap;
    }

    @-webkit-keyframes visualbell {
        from {
            background-color: #faa;
        }
        to {
            background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        }
    }

    @keyframes visualbell {
        from {
            background-color: #faa;
        }
        to {
            background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        }
    }

    .mx_BasicMessageComposer.mx_BasicMessageComposer_input_error {
        -webkit-animation: 0.2s visualbell;
                animation: 0.2s visualbell;
    }

    .mx_BasicMessageComposer .mx_BasicMessageComposer_input {
        white-space: pre-wrap;
        word-wrap: break-word;
        outline: none;
        overflow-x: hidden;
    }
        /* navigated through in a single keypress */
        .mx_BasicMessageComposer .mx_BasicMessageComposer_input .caretNode {
            -webkit-user-select: all;
               -moz-user-select: all;
                    user-select: all;
        }

        /* Force caret nodes to be selected in full so that they can be */
            .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_UserPill,
            .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_RoomPill,
            .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_SpacePill {
                display: -webkit-inline-box;
                display: -ms-inline-flexbox;
                display: inline-flex;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                -webkit-user-select: all;
                   -moz-user-select: all;
                        user-select: all;
                position: relative;
                cursor: inherit; /* We don't want indicate clickability */
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
            }

                .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_UserPill:hover, .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_RoomPill:hover, .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_SpacePill:hover {
                    /* We don't want indicate clickability | To override the overriding of .markdown-body */
                    background-color: var(--other-user-pill-bg-color, var(--cpd-color-bg-action-primary-rest)) !important;
                }

                /* avatar psuedo element */
                .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_UserPill::before, .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_RoomPill::before, .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_shouldShowPillAvatar span.mx_SpacePill::before {
                    display: inline-block;
                    content: var(--avatar-letter);
                    width: 1rem;
                    min-width: 1rem; /* ensure the avatar is not compressed */
                    height: 1rem;
                    -webkit-margin-end: 0.24rem;
                            margin-inline-end: 0.24rem;
                    background: var(--avatar-background), var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
                    color: #ffffff;
                    color: var(--avatar-color, #ffffff);
                    background-repeat: no-repeat;
                    background-size: 1rem;
                    border-radius: 1rem;
                    text-align: center;
                    font-weight: normal;
                    line-height: 1rem;
                    font-size: 0.6275rem;
                }

        .mx_BasicMessageComposer .mx_BasicMessageComposer_input.mx_BasicMessageComposer_input_disabled {
            /* Ignore all user input to avoid accidentally triggering the composer */
            pointer-events: none;
        }

    .mx_BasicMessageComposer .mx_BasicMessageComposer_AutoCompleteWrapper {
        position: relative;
        height: 0;
    }
}
@layer app-web{
    .mx_JoinRuleDialog .mx_JoinRuleDialogButtons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-column-gap: 5px;
           -moz-column-gap: 5px;
                column-gap: 5px;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_E2EIcon {
    width: 16px;
    height: 16px;
    margin: 0 9px;
    display: block;
}

    .mx_E2EIcon svg {
        width: inherit;
        height: inherit;
        display: block;
    }

.mx_E2EIcon.mx_E2EIcon_inline {
    display: inline-block;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_E2EIconView {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_E2EIconView_warning {
    color: var(--cpd-color-icon-critical-primary);
}

.mx_E2EIconView_verified {
    color: var(--cpd-color-icon-success-primary);
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EditMessageComposer {
    --EditMessageComposer-padding-inline: 3px;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-width: 100%; /* disable overflow */
    width: auto;
    gap: 5px;
    padding: 3px 3px;
    padding: 3px var(--EditMessageComposer-padding-inline);
}

    .mx_EditMessageComposer .mx_BasicMessageComposer_input {
        border-radius: 4px;
        border: solid 1px var(--roomlist-separator-color);
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        max-height: 200px;
        padding: 3px 6px;
    }

        .mx_EditMessageComposer .mx_BasicMessageComposer_input:focus {
            border-color: var(--cpd-color-border-interactive-primary);
        }

    .mx_EditMessageComposer .mx_EditMessageComposer_buttons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-flow: row wrap-reverse;
                flex-flow: row wrap-reverse; /* display "Save" over "Cancel" */
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        gap: 5px;
        -webkit-margin-start: auto;
                margin-inline-start: auto;
    }

        .mx_EditMessageComposer .mx_EditMessageComposer_buttons .mx_AccessibleButton {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            min-width: 100px; /* magic number to align the edge of the button with the input area */
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EmojiButton {
    position: relative;
    cursor: pointer;
    border-radius: 50%;
}
    .mx_EmojiButton svg {
        color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
    }
    .mx_EmojiButton:hover {
        background-color: var(--cpd-color-bg-subtle-secondary);
    }

        .mx_EmojiButton:hover svg {
            color: var(--cpd-color-icon-secondary);
        }

.mx_EmojiButton_highlight {
    background: var(--cpd-color-bg-subtle-primary);
    color: var(--cpd-color-icon-primary) !important;
}
    .mx_MessageComposer_wysiwyg .mx_EmojiButton {
        position: relative;
        cursor: pointer;
        border-radius: 5px;
    }
        .mx_MessageComposer_wysiwyg .mx_EmojiButton svg {
        color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
    }
        .mx_MessageComposer_wysiwyg .mx_EmojiButton:hover {
        background-color: var(--panels, var(--cpd-color-gray-600));
    }

        .mx_MessageComposer_wysiwyg .mx_EmojiButton:hover svg {
            color: #2e2f32;
            color: var(--tertiary-content, #2e2f32);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_RoomView_body[data-layout="bubble"] .mx_RoomView_timeline,
    .mx_RoomView_body[data-layout="bubble"] .mx_RoomView_statusArea,
    .mx_RoomView_body[data-layout="bubble"] .mx_MessageComposer {
        width: 100%;
        max-width: 1200px;
        margin: 0 auto;
    }

.mx_GenericEventListSummary[data-layout="bubble"] {
    --avatarSize: 32px;
    --gutterSize: 11px;
    --cornerRadius: 12px;
    --maxWidth: 70%;

    /* Generic event list summaries still use the legacy bubble variables. */
    --EventTile_bubble-margin-inline-start: 49px;
    --EventTile_bubble-margin-inline-end: 60px;

    -webkit-margin-start: 49px;

            margin-inline-start: 49px;

    -webkit-margin-start: var(--EventTile_bubble-margin-inline-start);

            margin-inline-start: var(--EventTile_bubble-margin-inline-start);
    -webkit-margin-end: 60px;
            margin-inline-end: 60px;
    -webkit-margin-end: var(--EventTile_bubble-margin-inline-end);
            margin-inline-end: var(--EventTile_bubble-margin-inline-end);
}

    /* Keep the following event clear of the expand/collapse control when the
       summary is collapsed. */
    .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] + .mx_EventTile {
        -webkit-margin-before: 20px;
                margin-block-start: 20px;
    }

    /* Keep expanded informational rows aligned with the legacy summary layout. */
    .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile:has(> .mx_EventTile_line :is(.mx_TextualEvent, .mx_ViewSourceEvent)) {
        padding-block: 2px;
        -webkit-margin-end: 0;
                margin-inline-end: 0;
    }

        /* EventTileView owns the line-height for informational rows. */
        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile:has(> .mx_EventTile_line :is(.mx_TextualEvent, .mx_ViewSourceEvent)) > .mx_EventTile_line {
            /* EventTileView keeps the state-info line at min-width: 100% for
               ordinary bubble rows. Expanded summaries must be allowed to
               shrink around the sender avatar, as in the legacy tile. */
            width: 100%;
            min-width: 0;
            max-width: 100%;
        }

        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile:has(> .mx_EventTile_line :is(.mx_TextualEvent, .mx_ViewSourceEvent)) .mx_ReadReceiptGroup {
            /* match alignment to RRs of chat bubbles */
            inset-inline-end: calc(-1 * var(--ReadReceiptGroup_EventBubbleTile-spacing-end) + 60px);
        }

        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile:has(> .mx_EventTile_line :is(.mx_TextualEvent, .mx_ViewSourceEvent))::before {
            inset-inline-end: 0; /* match alignment of the hover background to that of chat bubbles */
        }

/* Preserve the legacy expanded-summary metrics in RoomView. ThreadView owns
   its informational row metrics through EventTileView. */
        .mx_RoomView_timeline .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile:has(> .mx_EventTile_line :is(.mx_TextualEvent, .mx_ViewSourceEvent)) > .mx_EventTile_line {
            line-height: normal;
        }

        .mx_RoomView_timeline .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile:has(> .mx_EventTile_line :is(.mx_TextualEvent, .mx_ViewSourceEvent)) > .mx_EventTile_line :is(.mx_TextualEvent, .mx_ViewSourceEvent) {
            padding-block: 0;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020, 2021 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EventTile {
    /* Pass the application/theme-specific highlight colour to the shared
       EventTileView interaction styles. */
    --event-tile-state-highlight-background: var(--timeline-highlights-color);
    --event-tile-state-hover-background: var(--timeline-highlights-color);
    --event-tile-state-selected-background: var(--timeline-highlights-color);
    --event-tile-bubble-hover-background: var(--eventbubble-bg-hover, #fafbfd);
    --event-tile-bubble-other-background: var(--eventbubble-others-bg, #f4f6fa);
    --event-tile-bubble-self-background: var(--eventbubble-self-bg, #f0fbf8);
    --event-tile-preview-hover-background: var(--panels, var(--cpd-color-gray-600));
    --event-tile-preview-separator-color: var(--quinary-content, #6f7882);
    --EventTile_group_line-spacing-block-start: 1px;
    --EventTile_group_line-spacing-block-end: 3px;
    --EventTile_group_line-spacing-inline-start: 64px;
    --EventTile_group_line-line-height: 1.375rem;
    --EventTile_ThreadSummary-line-height: calc(2 * 0.75rem);

    -ms-flex-negative: 0;

        flex-shrink: 0;
    max-width: 100%;
    clear: both; /* TODO: check if this is necessary */
    position: relative;
}

    /* Retained for legacy error/fallback markup that does not use EventTileView. */
    .mx_EventTile.mx_EventTile_info {
        font-size: var(--cpd-font-size-body-sm);
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }
        .mx_EventTile .mx_EventTile_content.mx_EditMessageComposer,
        .mx_EventTile .mx_EventTile_content.mx_EditWysiwygComposer {
            /* Make sure the formatting bar is visible */
            overflow: visible;
        }

    .mx_EventTile .mx_EditMessageComposerWrapper {
        /* This keeps the autocomplete / format bar visible above the edit composer. */
        overflow: visible;
    }

    .mx_EventTile .mx_EventTile_searchHighlight {
        background-color: #0dbd8b;
        background-color: var(--accent-color, #0dbd8b);
        color: #ffffff;
        border-radius: 5px;
        padding-inline: 2px;
        cursor: pointer;
    }

        .mx_EventTile .mx_EventTile_searchHighlight a {
            background-color: #0dbd8b;
            background-color: var(--accent-color, #0dbd8b);
            color: #ffffff;
        }

    .mx_EventTile .mx_EventTileBubble {
        margin-block: 10px;
        margin-block: var(--EventTileBubble_margin-block);
        min-width: 100px;
    }
        .mx_EventTile .mx_ImageBody .mx_ImageBody_container {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center; /* on every layout */
        }

    .mx_EventTile .mx_ReactionsRow {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-flow: wrap;
            flex-flow: wrap;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: var(--cpd-space-1x);
    }
        .mx_EventTile .mx_ReplyChain--expanded .mx_EventTile_content .mx_EventTile_body {
            /* !important needed to override the reply-tile content clamp. */
            display: block !important;
            overflow-y: scroll;
        }

        .mx_EventTile .mx_ReplyChain--expanded .mx_EventTile_collapsedCodeBlock {
            /* !important needed due to .mx_ReplyTile .mx_EventTile_content .mx_EventTile_pre_container > pre */
            display: block !important;
        }

/* Theads do not set a background on mentioned events as they use an indicator dot */
.mx_ThreadPanel .mx_EventTile {
    --event-tile-preview-highlight-background: none;
}
        .mx_GenericEventListSummary[data-layout="irc"] .mx_EventTile_line .mx_RedactedBody, .mx_GenericEventListSummary[data-layout="group"] .mx_EventTile_line .mx_RedactedBody {
            line-height: 1; /* remove spacing between lines */
        }
        /* Apply only collapsed events block */
        .mx_GenericEventListSummary[data-layout="irc"] > .mx_EventTile_line {
            /* add --right-padding value of MessageTimestamp and avatar only */
            /* stylelint-disable-next-line declaration-colon-space-after */
            padding-left: calc(
                var(--name-width) + var(--icon-width) + 46px + 2 * var(--right-padding)
            );
            padding-left: calc(
                var(--name-width) + var(--icon-width) + var(--MessageTimestamp-width) + 2 * var(--right-padding)
            );
        }
        /* The collapsed summary has a legacy line outside EventTileView. */
        .mx_GenericEventListSummary[data-layout="group"] > .mx_EventTile_line {
            -webkit-padding-start: 64px;
                    padding-inline-start: 64px;
        }

.mx_EventTile_content {
    /*
    all the overflow-y: hidden; are to trap Zalgos -
    but they introduce an implicit overflow-x: auto.
    so make that explicitly hidden too to avoid random
    horizontal scrollbars occasionally appearing, like in
    https://github.com/vector-im/vector-web/issues/1154
    */
    overflow-y: hidden;
    overflow-x: hidden;
}
    .mx_EventTile_content .markdown-body {
        font: var(--cpd-font-body-md-regular) !important;
        letter-spacing: var(--cpd-font-letter-spacing-body-md);
        font-family: inherit !important;
        white-space: normal !important;
        line-height: inherit !important;
        background-color: inherit;
        color: inherit; /* inherit the colour from the dark or light theme by default (but not for code blocks) */
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;

        /*
        // actually, removing the Italic TTF provides
        // better results seemingly

        // compensate for Nunito italics being terrible
        // https://github.com/google/fonts/issues/1726
        em {
            transform: skewX(-14deg);
            display: inline-block;
        }
        */
    }

        .mx_EventTile_content .markdown-body pre,
        .mx_EventTile_content .markdown-body code {
            font-family: "Fira Code", "", "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji" !important;
            font-family: var(--font-family-monospace, "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji") !important;
            background-color: #f4f6fa;
            background-color: var(--system, #f4f6fa);
        }

        .mx_EventTile_content .markdown-body code:not(pre *) {
            background-color: #f3f8fd;
            border: 1px solid #f3f8fd;
            border-radius: 4px;
            /* The horizontal padding is added by github-markdown-css .markdown-body */
            padding: var(--cpd-space-0-5x) 0;
            /* Avoid inline code blocks to be sticked when on multiple lines */
            line-height: 1.375rem;
            /* Avoid the border to be glued to the other words */
            margin-right: var(--cpd-space-0-5x);
        }

        .mx_EventTile_content .markdown-body code {
            white-space: pre-wrap; /* don't collapse spaces in inline code blocks */
        }

        .mx_EventTile_content .markdown-body pre {
            /* have to use overlay rather than auto otherwise Linux and Windows */
            /* Chrome gets very confused about vertical spacing: */
            /* https://github.com/vector-im/vector-web/issues/754 */
            overflow-x: overlay;
            overflow-y: visible;
        }

            .mx_EventTile_content .markdown-body pre::-webkit-scrollbar-corner {
                background: transparent;
            }

            .mx_EventTile_content .markdown-body pre{

            border: 1px solid #6f7882;

            border: 1px solid var(--quinary-content, #6f7882);
}

            .mx_EventTile_content .markdown-body pre code {
                white-space: pre; /* we want code blocks to be scrollable and not wrap */
            }

                .mx_EventTile_content .markdown-body pre code > * {
                    display: inline;
                }

        .mx_EventTile_content .markdown-body h1,
        .mx_EventTile_content .markdown-body h2,
        .mx_EventTile_content .markdown-body h3,
        .mx_EventTile_content .markdown-body h4,
        .mx_EventTile_content .markdown-body h5,
        .mx_EventTile_content .markdown-body h6 {
            font-family: inherit !important;
            color: inherit;
        }

        /* Make h1 and h2 the same size as h3. */
        .mx_EventTile_content .markdown-body h1,
        .mx_EventTile_content .markdown-body h2 {
            font-size: 1.5em;
            border-bottom: none !important; /* override GFM */
        }

        .mx_EventTile_content .markdown-body a {
            color: var(--primary-color);
        }

        .mx_EventTile_content .markdown-body blockquote {
            border-left: 2px solid var(--cpd-color-border-interactive-primary);
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            border-radius: 2px;
            padding: 0 10px;
        }

        /* Support arbitrarily large marker numbers */
        .mx_EventTile_content .markdown-body ol {
            list-style-position: inside;
            -webkit-padding-start: 0.5em;
                    padding-inline-start: 0.5em;
        }

        /* Override nested lists being lower-roman */
        .mx_EventTile_content .markdown-body ol ol,
        .mx_EventTile_content .markdown-body ul ol {
            list-style-type: revert;
        }

        /* Make list type disc to match rich text editor */
        .mx_EventTile_content .markdown-body ul {
            list-style-type: disc;
        }

        /* override styles from the base markdown CSS that put markdown content on its own line,
           as this isn't what we want for richtext emote content.
         */
        .mx_EventTile_content .markdown-body::before {
            display: none;
        }

        .mx_EventTile_content .markdown-body::after {
            display: none;
        }

/* Spoiler stuff */
.mx_EventTile_spoiler {
    cursor: pointer;

    /* clear button styles */
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    font-size: inherit;
    font-family: inherit;
    line-height: inherit;
    text-align: inherit;
}

    .mx_EventTile_spoiler .mx_EventTile_spoiler_reason {
        color: #acacac;
        font-size: 0.6875rem;
    }

    .mx_EventTile_spoiler .mx_EventTile_spoiler_content {
        -webkit-filter: blur(5px) saturate(0.1) sepia(1);
                filter: blur(5px) saturate(0.1) sepia(1);
        -webkit-transition-duration: 0.5s;
                transition-duration: 0.5s;
        pointer-events: none;
    }

    .mx_EventTile_spoiler.visible > .mx_EventTile_spoiler_content {
        -webkit-filter: none;
                filter: none;
        -webkit-user-select: auto;
           -moz-user-select: auto;
            -ms-user-select: auto;
                user-select: auto;
        pointer-events: auto;
    }

.mx_EventTile_bigEmoji {
    font-size: 48px;
    line-height: 57px;
}

    .mx_EventTile_bigEmoji .mx_Emoji {
        font-size: inherit !important;
    }
    .mx_EventTile_body pre {
        border: 1px solid transparent;
    }

        .mx_EventTile:hover .mx_EventTile_body pre,
        .mx_EventTile:focus-visible:focus-within .mx_EventTile_body pre {
            border: 1px solid #2e2f32;
            border: 1px solid var(--tertiary-content, #2e2f32);
        }

    /* selector wrongly applies to pill avatars but those have explicit width/height passed at a higher specificity */
    .mx_EventTile_body.markdown-body img {
        -o-object-fit: contain;
           object-fit: contain;
        -o-object-position: left top;
           object-position: left top;

        /* Override the default colors of the 'github-markdown-css' library
        (#fff for light theme, #000 for dark theme) to match the inherited theme */
        background-color: inherit !important;
    }

    .mx_EventTile_body .mx_EventTile_pre_container {
        /* For correct positioning of _copyButton (See TextualBody) */
        position: relative;
    }

        /* Emoji are enlarged in prose, but a code block's line numbers are one fixed-height block
           per line and cannot follow a line that an enlarged emoji has made taller. */
        .mx_EventTile_body .mx_EventTile_pre_container .mx_Emoji {
            font-size: inherit;
        }
            .mx_EventTile_body .mx_EventTile_pre_container:focus-within .mx_EventTile_button, .mx_EventTile_body .mx_EventTile_pre_container:hover .mx_EventTile_button {
                visibility: visible;
            }

        .mx_EventTile_body .mx_EventTile_pre_container .mx_EventTile_collapsedCodeBlock {
            max-height: 30vh;
            padding-top: var(--cpd-space-3x);
            padding-bottom: var(--cpd-space-3x);
        }

        /* Inserted adjacent to <pre> blocks, (See TextualBody) */
        .mx_EventTile_body .mx_EventTile_pre_container .mx_EventTile_button {
            position: absolute;
            top: var(--cpd-space-2x);
            right: var(--cpd-space-2x);
            visibility: hidden;
        }

            .mx_EventTile_body .mx_EventTile_pre_container .mx_EventTile_button.mx_EventTile_buttonBottom {
                top: 33px;
            }

            .mx_EventTile_body .mx_EventTile_pre_container .mx_EventTile_button svg {
                width: inherit;
                height: inherit;
                display: block;
                color: var(--timeline-text-color);
            }

.mx_EventTile_lineNumbers {
    float: left;
    margin: 0 0.5em 0 -1.5em;
    color: gray;
}

    .mx_EventTile_lineNumbers span {
        text-align: right;
        display: block;
        padding-left: 1em;
    }

.mx_EventTile_button {
    display: inline-block;
    cursor: pointer;
}

.mx_EventTile_tileError {
    color: red;
    text-align: center;

    /* Remove some of the default tile padding so that the error is centered */
    margin-right: 0;
}

    .mx_EventTile_tileError .mx_EventTile_line {
        padding-left: 0;
        margin-right: 0;
    }

        .mx_EventTile_tileError .mx_EventTile_line span {
            padding: var(--cpd-space-1x) var(--cpd-space-2x);
        }

    .mx_EventTile_tileError a {
        margin-left: 1em;
    }

.mx_EventTile:hover .mx_ThreadActionBar,
[data-whatinput="keyboard"] .mx_EventTile:focus-within .mx_ThreadActionBar,
.mx_EventTile:focus-visible:focus-within .mx_ThreadActionBar {
    visibility: visible;
}

/* Thread-list reply summaries retain the legacy application styling while
   remaining independent of the EventTileView root DOM contract. */
.mx_EventTile .mx_ThreadPanel_replies {
    margin-top: var(--cpd-space-2x);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    position: relative;
    font: var(--cpd-font-body-sm-regular);
}

    .mx_EventTile .mx_ThreadPanel_replies > svg {
        display: inline-block;
        height: 18px;
        width: 18px;
        -ms-flex-negative: 0;
            flex-shrink: 0;
        color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
    }

    .mx_EventTile .mx_ThreadPanel_replies .mx_ThreadPanel_replies_amount {
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        font-weight: var(--cpd-font-weight-semibold);
        white-space: nowrap;
        position: relative;
        padding: 0 var(--cpd-space-3x) 0 var(--cpd-space-2x);
    }

.mx_ThreadSummary_icon {
    display: inline-block;
    margin-top: var(--cpd-space-2x);
    margin-bottom: var(--cpd-space-2x);
}

    .mx_ThreadSummary_icon > svg {
        display: inline-block;
        height: 18px;
        width: 18px;
        -ms-flex-negative: 0;
            flex-shrink: 0;
        color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
        vertical-align: middle;
        -webkit-margin-end: var(--cpd-space-2x);
                margin-inline-end: var(--cpd-space-2x);
        margin-top: -2px;
    }

    a.mx_ThreadSummary_icon {
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

/* For style rules of ThreadView, see _ThreadPanel.pcss */
.mx_ThreadView {
    --ThreadView_group_spacing-start: 56px; /* 56px: 64px - 8px (padding) */
    --ThreadView_group_spacing-end: 8px;
} /* same as padding */
            .mx_ThreadView .mx_GenericEventListSummary[data-layout="irc"] > .mx_EventTile_line, .mx_ThreadView .mx_GenericEventListSummary[data-layout="group"] > .mx_EventTile_line {
                -webkit-padding-start: var(--ThreadView_group_spacing-start);
                        padding-inline-start: var(--ThreadView_group_spacing-start); /* align summary text with message text */
                -webkit-padding-end: var(--ThreadView_group_spacing-end);
                        padding-inline-end: var(--ThreadView_group_spacing-end); /* align summary text with message text */
            }

    /* ViewSourceEvent explicitly uses Compound's 11px body-xs token. Legacy
       thread info tiles applied their 12px size directly to event content;
       keep that override on the body component after its slot boundary. */
    .mx_ThreadView .mx_EventTile .mx_EventTile_line .mx_ViewSourceEvent {
        font-size: 0.75rem;
    }

/* Body-only compact markdown spacing remains application-owned. */
            .mx_MatrixChat_useCompactLayout .mx_EventTile .mx_EventTile_content .markdown-body p,
            .mx_MatrixChat_useCompactLayout .mx_EventTile .mx_EventTile_content .markdown-body ul,
            .mx_MatrixChat_useCompactLayout .mx_EventTile .mx_EventTile_content .markdown-body ol,
            .mx_MatrixChat_useCompactLayout .mx_EventTile .mx_EventTile_content .markdown-body dl,
            .mx_MatrixChat_useCompactLayout .mx_EventTile .mx_EventTile_content .markdown-body blockquote,
            .mx_MatrixChat_useCompactLayout .mx_EventTile .mx_EventTile_content .markdown-body pre,
            .mx_MatrixChat_useCompactLayout .mx_EventTile .mx_EventTile_content .markdown-body table {
                margin-bottom: var(--cpd-space-1x); /* 1/4 of the non-compact margin-bottom */
            }

/* Media query for mobile UI */
@media only screen and (max-width: 480px) {
    .mx_EventTile_content {
        margin-right: 0;
    }
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Robin Townsend <robin@robin.town>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EventTileBubble.mx_HistoryTile {
    margin: 10px auto;
    margin: var(--EventTileBubble_margin-block) auto;
}

    .mx_EventTileBubble.mx_HistoryTile svg {
        color: #91a1c0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

:root {
    --irc-line-height: 1.125rem;
}

.mx_IRCLayout {
    --name-width: 80px; /* cf. ircDisplayNameWidth on Settings.tsx */
    --icon-width: 14px;
    --line-height: var(--irc-line-height);
    --right-padding: 5px;
    /* Map application IRC geometry onto the shared EventTileView API. */
    --event-tile-irc-name-width: var(--name-width);
    --event-tile-irc-timestamp-width: var(--MessageTimestamp-width);

    line-height: 1.125rem !important;

    line-height: var(--line-height) !important;
}

    .mx_IRCLayout blockquote {
        margin: 0;
    }
        .mx_IRCLayout .mx_NewRoomIntro > h2 {
            line-height: normal;
            line-height: initial; /* Cancel var(--irc-line-height) */
        }
        .mx_IRCLayout .mx_ReplyChain .mx_DisambiguatedProfile {
            width: auto;
            width: initial;
            -webkit-box-ordinal-group: initial;
                -ms-flex-order: initial;
                    order: initial;
            -ms-flex-negative: initial;
                flex-shrink: initial; /* Unset flex-shrink to prevent long display name blowout */
        }

    .mx_IRCLayout .mx_ProfileResizer {
        --resizer-width: 15px;
        --resizer-a11y: 3px; /* Magic number, to be replaced with something more proper from the perspective of a11y */

        position: absolute;
        height: 100%;
        width: 15px;
        width: var(--resizer-width);
        cursor: col-resize;
        z-index: 100;

        /* Add width of every element rendered before the resizer (including padding for the avatar and the display
           name), subtracting the resizer width itself to prevent the resizer from overlapping the text and moving
           the resizer a bit to the left to make it easier to avoid selecting the resizer when highlighting text.
           Please note that MessageTimestamp does not have inline padding. */
        inset-inline-start: calc(
            18px + 46px + var(--icon-width) +
                var(--right-padding) + var(--name-width) + var(--right-padding) - 15px -
                3px
        );
        inset-inline-start: calc(
            var(--RoomView_MessageList-padding) + var(--MessageTimestamp-width) + var(--icon-width) +
                var(--right-padding) + var(--name-width) + var(--right-padding) - var(--resizer-width) -
                var(--resizer-a11y)
        );
    }
}
@layer app-web{

/*
Copyright 2025 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InvitedIconView {
    color: var(--cpd-color-icon-tertiary);
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_JumpToBottomButton {
    z-index: 1000;
    position: absolute;
    /* 12 because height is 50 but button is only 38 = 12+(50-38) = 24 */
    bottom: 12px;
    right: 24px;
    width: 38px;
    /* give it a fixed height so the badge doesn't make */
    /* it taller and pop upwards when visible */
    height: 50px;
    text-align: center;
}

.mx_JumpToBottomButton_badge {
    position: relative;
    top: -12px;
    border-radius: 16px;
    font-weight: bold;
    font-size: 0.75rem;
    line-height: 0.875rem;
    text-align: center;
    /* to be able to get it centered */
    /* with text-align in parent */
    display: inline-block;
    padding: 0 4px;
    color: var(--cpd-color-text-on-solid-primary);
    background-color: var(--cpd-color-icon-secondary);
}

.mx_JumpToBottomButton_highlight .mx_JumpToBottomButton_badge {
    background-color: var(--cpd-color-icon-critical-primary);
}

.mx_JumpToBottomButton_scrollDown {
    position: relative;
    display: block;
    height: 38px;
    border-radius: 50%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    background: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border: 1.3px solid var(--cpd-color-icon-tertiary);
    cursor: pointer;
}

    .mx_JumpToBottomButton_scrollDown svg {
        height: inherit;
        width: inherit;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        padding: 7px 8px 7px 6px;
        color: var(--cpd-color-icon-tertiary);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LiveContentSummary {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}
        .mx_LiveContentSummary .mx_LiveContentSummary_text svg {
            display: inline-block;
            vertical-align: text-bottom;
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            width: 16px;
            height: 16px;
            margin-right: 4px;
        }

        .mx_LiveContentSummary .mx_LiveContentSummary_text.mx_LiveContentSummary_text_active {
            color: #0dbd8b;
            color: var(--accent-color, #0dbd8b);
        }

            .mx_LiveContentSummary .mx_LiveContentSummary_text.mx_LiveContentSummary_text_active svg {
                color: #0dbd8b;
                color: var(--accent-color, #0dbd8b);
            }

    .mx_LiveContentSummary .mx_LiveContentSummary_participants svg {
        display: inline-block;
        vertical-align: middle;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        width: 16px;
        height: 16px;
        margin-right: 2px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MemberListHeaderView {
    border-bottom: var(--cpd-border-width-1) solid var(--cpd-color-gray-400);
}

    .mx_MemberListHeaderView .mx_MemberListHeaderView_container {
        margin-top: var(--cpd-space-6x);
        padding: 0 var(--cpd-space-4x);
        -ms-flex-item-align: stretch;
            align-self: stretch;
    }

    .mx_MemberListHeaderView .mx_MemberListHeaderView_inviteButton {
        width: 100%;
        max-width: 428px;
    }

    .mx_MemberListHeaderView .mx_MemberListHeaderView_label {
        padding: var(--cpd-space-6x) 0 var(--cpd-space-2x) var(--cpd-space-4x);
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        width: 100%;
        color: var(--cpd-color-text-secondary);
        font: var(--cpd-font-body-sm-semibold);
    }

    .mx_MemberListHeaderView .mx_MemberListHeaderView_search {
        width: 240px;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MemberListView {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    min-height: 0;
}

    .mx_MemberListView .mx_MemberListView_container {
        height: 100%;
    }

    .mx_MemberListView .mx_MemberListView_separator {
        margin: 0;
        border: none;
        border-top: 2px solid var(--cpd-color-bg-subtle-primary);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MemberTileView {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    padding: var(--cpd-space-3x) var(--cpd-space-3x) var(--cpd-space-3x) var(--cpd-space-4x);
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    height: 56px;
    border-bottom: var(--cpd-border-width-1) solid var(--cpd-color-gray-300);
}

    .mx_MemberTileView .mx_MemberTileView_left,
    .mx_MemberTileView .mx_MemberTileView_right {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: var(--cpd-space-2x);
    }

    .mx_MemberTileView .mx_MemberTileView_left {
        -ms-flex-preferred-size: 209px;
            flex-basis: 209px;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        min-width: 0;
    }

    .mx_MemberTileView .mx_MemberTileView_name {
        font: var(--cpd-font-body-md-medium);
        min-width: 0;
    }

        .mx_MemberTileView .mx_MemberTileView_name .mx_DisambiguatedProfile {
            font: inherit;
        }

    .mx_MemberTileView .mx_MemberTileView_userLabel {
        font: var(--cpd-font-body-sm-regular);
        color: var(--cpd-color-text-secondary);
        margin-left: var(--cpd-space-4x);
    }

    .mx_MemberTileView .mx_MemberTileView_avatar {
        position: relative;
        height: 32px;
        width: 32px;
    }

    .mx_MemberTileView .mx_MemberTileView_presence {
        position: absolute;
        right: -2px;
        bottom: 2px;
    }
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MessageComposer_wrapper {
    vertical-align: middle;
    margin: auto;
    border-top: 1px solid var(--roomlist-separator-color);
    position: relative;
    padding-left: 42px;
    padding-right: 16px;
}

.mx_MessageComposer_replaced_wrapper {
    margin-left: auto;
    margin-right: auto;
}

.mx_MessageComposer_replaced_valign {
    height: 60px;
    display: table-cell;
    vertical-align: middle;
}

.mx_MessageComposer_roomReplaced_icon {
    float: left;
    margin-right: 20px;
    margin-top: 5px;
    width: 31px;
    height: 31px;
}

.mx_MessageComposer_roomReplaced_header {
    font-weight: bold;
}

.mx_MessageComposer_row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    width: 100%;
}

.mx_MessageComposer_actions {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 6px;
}
    .mx_MessageComposer .mx_MessageComposer_avatar {
        position: absolute;
        left: 26px;
    }

        .mx_MessageComposer .mx_MessageComposer_avatar .mx_BaseAvatar {
            display: block;
        }

.mx_MessageComposer_e2eIconWrapper {
    height: 12px; /* Match the height of the E2E icon for alignment */
    width: 12px;
    position: absolute;
    left: 20px;
    top: 22px;
    margin-right: 0; /* Counteract the E2EIcon class */
    margin-left: 3px; /* Counteract the E2EIcon class */
}

    .mx_MessageComposer_e2eIconWrapper .mx_MessageComposer_e2eIcon {
        margin: 0;
        width: inherit;
        height: inherit;
    }

.mx_MessageComposer_noperm_error {
    width: 100%;
    height: 60px;
    font-style: italic;
    color: var(--timeline-text-secondary-color);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}

.mx_MessageComposer_input {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    vertical-align: middle;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    min-height: 60px;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    font: var(--cpd-font-body-md-regular);
    margin-right: 6px;
}

    .mx_MessageComposer_input pre {
        background-color: rgb(0, 0, 0, 0.04);
        border-radius: 3px;
        padding: 10px;
    }

    .mx_MessageComposer_input textarea {
        display: block;
        width: 100%;
        padding: 0px;
        margin-top: 6px;
        margin-bottom: 6px;
        border: 0px;
        resize: none;
        outline: none;
        -webkit-box-shadow: none;
                box-shadow: none;
        color: var(--timeline-text-color);
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        font: var(--cpd-font-body-md-regular);
        max-height: 120px;
        overflow: auto;
    }

        /* hack for FF as vertical alignment of custom placeholder text is broken */
        .mx_MessageComposer_input textarea::-moz-placeholder {
            line-height: 100%;
            color: #0dbd8b;
            color: var(--accent-color, #0dbd8b);
            opacity: 1;
        }

        .mx_MessageComposer_input textarea::-webkit-input-placeholder {
            color: #0dbd8b;
            color: var(--accent-color, #0dbd8b);
        }

.mx_MessageComposer_button_highlight {
    background: var(--cpd-color-bg-subtle-primary);
    color: var(--cpd-color-icon-primary) !important;
}

.mx_MessageComposer_button {
    position: relative;
    cursor: pointer;
    border-radius: 50%;
}
    .mx_MessageComposer_button svg {
        color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
    }
    .mx_MessageComposer_button:hover {
        background-color: var(--cpd-color-bg-subtle-primary);
    }

        .mx_MessageComposer_button:hover svg {
            color: var(--cpd-color-icon-primary);
        }
    .mx_MessageComposer_button{
    padding: 3px;
    height: 20px;
    width: 20px;
}

    .mx_MessageComposer_button:last-child {
        margin-right: auto;
    }
        .mx_MessageComposer_button.mx_MessageComposer_closeButtonMenu::after {
            background: var(--cpd-color-bg-subtle-primary);
        }

        .mx_MessageComposer_button.mx_MessageComposer_closeButtonMenu::before {
            background-color: var(--cpd-color-icon-primary);
            z-index: 2;
        }

    .mx_MessageComposer_button svg {
        width: inherit;
        height: inherit;
    }
    .mx_MessageComposer_wysiwyg .mx_MessageComposer_wrapper {
        padding-left: 16px;
        margin-top: 6px;
        margin-bottom: 12px;
    }

    .mx_MessageComposer_wysiwyg .mx_MessageComposer_row {
        -webkit-box-align: end;
            -ms-flex-align: end;
                align-items: flex-end;
    }

    .mx_MessageComposer_wysiwyg .mx_MessageComposer_actions {
        /* Height of the composer editor */
        height: 40px;
    }

    .mx_MessageComposer_wysiwyg .mx_MediaBody {
        padding-top: 4px;
        padding-bottom: 4px;
    }

    .mx_MessageComposer_wysiwyg .mx_MessageComposer_button {
        position: relative;
        cursor: pointer;
        border-radius: 5px;
    }
        .mx_MessageComposer_wysiwyg .mx_MessageComposer_button svg {
        color: var(--icon-button-color, var(--cpd-color-icon-tertiary));
    }
        .mx_MessageComposer_wysiwyg .mx_MessageComposer_button:hover {
        background-color: var(--panels, var(--cpd-color-gray-600));
    }

        .mx_MessageComposer_wysiwyg .mx_MessageComposer_button:hover svg {
            color: #2e2f32;
            color: var(--tertiary-content, #2e2f32);
        }
            .mx_MessageComposer_wysiwyg .mx_MessageComposer_button.mx_MessageComposer_closeButtonMenu::after {
                background: var(--accent-color-300);
            }

            .mx_MessageComposer_wysiwyg .mx_MessageComposer_button.mx_MessageComposer_closeButtonMenu::before {
                background-color: #0dbd8b;
                background-color: var(--accent-color, #0dbd8b);
                z-index: 2;
            }

.mx_MessageComposer_buttonMenu {
    width: 24px;
    height: 24px;
    padding: 1px;
}

    .mx_MessageComposer_buttonMenu svg {
        width: 24px;
        height: 24px;
    }

.mx_MessageComposer_sendMessage {
    cursor: pointer;
    position: relative;
    padding: var(--cpd-space-2x);
    border-radius: 100%;
    background-color: var(--cpd-color-icon-accent-tertiary);
    height: 16px;
    width: 16px;
}

    .mx_MessageComposer_sendMessage svg {
        height: inherit;
        width: inherit;

        color: var(--cpd-color-icon-on-solid-primary);
    }
    .mx_MatrixChat_useCompactLayout .mx_MessageComposer_input {
        min-height: 50px;
    }

    .mx_MatrixChat_useCompactLayout .mx_MessageComposer_noperm_error {
        height: 50px;
    }

/**
 * Unstable compact mode
 */

.mx_MessageComposer.mx_MessageComposer--compact {
    margin-right: 0;
}

    .mx_MessageComposer.mx_MessageComposer--compact .mx_MessageComposer_wrapper {
        padding: 0 0 0 25px;
    }

    .mx_MessageComposer.mx_MessageComposer--compact .mx_MessageComposer_e2eIconWrapper {
        left: 0;
    }
        .mx_MessageComposer.mx_MessageComposer--compact:not(.mx_MessageComposer_e2eStatus) .mx_MessageComposer_wrapper {
            padding: 0;
        }

    .mx_MessageComposer.mx_MessageComposer--compact .mx_MessageComposer_button:last-child {
        margin-right: 0;
    }

    .mx_MessageComposer.mx_MessageComposer--compact .mx_MessageComposer_e2eIcon {
        left: 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MessageComposerFormatBar {
    display: none;
    width: calc(32px * 6);
    height: 32px;
    position: absolute;
    cursor: pointer;
    border-radius: 8px;
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border: var(--cpd-border-width-1) solid var(--cpd-color-border-disabled);
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    /* equal to z-index of mx_ReplyPreview and mx_RoomView_statusArea (1000) */
    /* but as it appears after them in the DOM, will appear on top. */
    z-index: 1000;
}

    .mx_MessageComposerFormatBar.mx_MessageComposerFormatBar_shown {
        display: block;
    }

    .mx_MessageComposerFormatBar > * {
        white-space: nowrap;
        display: inline-block;
        position: relative;
        margin: 2px;
    }

    .mx_MessageComposerFormatBar .mx_MessageComposerFormatBar_button {
        width: 28px;
        height: 28px;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        vertical-align: middle;
        background: none;
        border: none;
        padding: 0;
    }

        .mx_MessageComposerFormatBar .mx_MessageComposerFormatBar_button svg {
            width: inherit;
            height: inherit;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            padding: var(--cpd-space-1x);
            color: var(--cpd-color-icon-secondary);
        }

        .mx_MessageComposerFormatBar .mx_MessageComposerFormatBar_button:hover {
            background: var(--cpd-color-bg-subtle-secondary);
            border-radius: 6px;
            z-index: 1;
        }

            .mx_MessageComposerFormatBar .mx_MessageComposerFormatBar_button:hover svg {
                color: var(--cpd-color-icon-primary);
            }

.mx_MessageComposerFormatBar_buttonTooltip {
    white-space: nowrap;
    font-size: 0.8125rem;
    font-weight: var(--cpd-font-weight-semibold);
    min-width: 54px;
    text-align: center;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_NewRoomIntro {
    margin: 40px 0 48px 64px;
}
        .mx_NewRoomIntro .mx_MiniAvatarUploader_hasAvatar:not(.mx_MiniAvatarUploader_busy):not(:hover) .mx_MiniAvatarUploader_indicator {
            display: none;
        }

    .mx_NewRoomIntro .mx_NewRoomIntro_buttons {
        margin-top: 28px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-flow: wrap;
            flex-flow: wrap;
        gap: 14px 12px;
    }

        .mx_NewRoomIntro .mx_NewRoomIntro_buttons .mx_AccessibleButton {
            line-height: 1.5rem;
            display: inline-block;
        }

            .mx_NewRoomIntro .mx_NewRoomIntro_buttons .mx_AccessibleButton svg {
                display: inline-block;
                width: 20px;
                height: 20px;
                margin-right: 5px;
                vertical-align: text-bottom;
            }

    .mx_NewRoomIntro > h2 {
        margin: var(--cpd-space-6x) 0 var(--cpd-space-4x);
        font: var(--cpd-font-heading-md-semibold);
    }

    .mx_NewRoomIntro > p {
        margin: 0;
        font-size: 0.9375rem;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_OverflowTileView {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    color: var(--timeline-text-color);
    cursor: pointer;
}

.mx_OverflowTileView_text {
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
    overflow: hidden;
    font: var(--cpd-font-body-md-regular);
    text-overflow: ellipsis;
    white-space: nowrap;
    font-style: italic;
}

.mx_OverflowTileView:hover {
    padding-right: 30px;
    position: relative; /* to keep the chevron aligned */
}

    .mx_OverflowTileView:hover .mx_OverflowTileView_chevron {
        display: inline;
    }

.mx_OverflowTileView_chevron {
    position: absolute;
    top: calc(50% - 12px); /* center */
    right: 0;
    width: 24px;
    height: 24px;
    color: #91a1c0;
    display: none;
}

.mx_OverflowTileView_icon {
    padding-left: 3px;
    padding-right: 12px;
    padding-top: 4px;
    padding-bottom: 4px;
    position: relative;
    line-height: 0;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2017 Travis Ralston

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PinnedEventTile {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-4x);
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
}

    .mx_PinnedEventTile .mx_PinnedEventTile_wrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-1x);
        /* Remove avatar width and space between the avatar and the wrapper */
        /* We need it to make the location fit */
        width: calc(100% - var(--cpd-space-4x) - 32px);
        /* Prevent a long sender name to overflow the tile */
        overflow: hidden;
    }

        .mx_PinnedEventTile .mx_PinnedEventTile_wrapper .mx_PinnedEventTile_top {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            gap: var(--cpd-space-1x);
            -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                    justify-content: space-between;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

            .mx_PinnedEventTile .mx_PinnedEventTile_wrapper .mx_PinnedEventTile_top .mx_PinnedEventTile_sender {
                text-overflow: ellipsis;
                overflow: hidden;
                white-space: nowrap;
                font: var(--cpd-font-body-md-semibold);
            }

        .mx_PinnedEventTile .mx_PinnedEventTile_wrapper .mx_PinnedEventTile_thread {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            gap: var(--cpd-space-2x);
            font: var(--cpd-font-body-sm-regular);
        }

            .mx_PinnedEventTile .mx_PinnedEventTile_wrapper .mx_PinnedEventTile_thread svg {
                width: 20px;
                fill: var(--cpd-color-icon-tertiary);
            }

            .mx_PinnedEventTile .mx_PinnedEventTile_wrapper .mx_PinnedEventTile_thread span {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                color: var(--cpd-color-text-secondary);
            }

            .mx_PinnedEventTile .mx_PinnedEventTile_wrapper .mx_PinnedEventTile_thread button {
                background: transparent;
                border: none;
                cursor: pointer;
                text-decoration: underline;
            }
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 * Copyright 2024 The Matrix.org Foundation C.I.C.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_PinnedMessageBanner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: var(--cpd-space-4x);
    /* 64px = 63px + 1px from the bottom border */
    height: 63px;
    padding: 0 var(--cpd-space-4x);

    background-color: var(--cpd-color-bg-canvas-default);
    border-bottom: 1px solid var(--cpd-color-gray-400);

    /* From figma */
    -webkit-box-shadow: 0 var(--cpd-space-2x) var(--cpd-space-6x) calc(var(--cpd-space-2x) * -1) rgb(27, 29, 34, 0.1);
            box-shadow: 0 var(--cpd-space-2x) var(--cpd-space-6x) calc(var(--cpd-space-2x) * -1) rgb(27, 29, 34, 0.1);
}

    .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main {
        color: inherit;
        background: transparent;
        border: none;
        text-align: start;
        cursor: pointer;

        height: 100%;
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_content {
            display: grid;
            grid-template:
                "indicators pinIcon title" auto
                "indicators pinIcon message" auto;
            grid-column-gap: var(--cpd-space-2x);
            -webkit-column-gap: var(--cpd-space-2x);
               -moz-column-gap: var(--cpd-space-2x);
                    column-gap: var(--cpd-space-2x);
        }

        .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_Indicators {
            grid-area: indicators;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            gap: var(--cpd-space-0-5x);
            height: 100%;
        }

            .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_Indicators .mx_PinnedMessageBanner_Indicator {
                width: var(--cpd-space-0-5x);
                background-color: var(--cpd-color-gray-600);
                height: 100%;
            }

            .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_Indicators .mx_PinnedMessageBanner_Indicator--active {
                background-color: var(--cpd-color-icon-accent-primary);
            }

            .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_Indicators .mx_PinnedMessageBanner_Indicator--hidden {
                background-color: transparent;
            }

        .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_PinIcon {
            grid-area: pinIcon;
            align-self: center;
            fill: var(--cpd-color-icon-secondary-alpha);
        }

        .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_title {
            grid-area: title;
            font: var(--cpd-font-body-sm-regular);
            color: var(--cpd-color-text-action-accent);
            line-height: 20px;
        }

            .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_title .mx_PinnedMessageBanner_title_counter {
                font: var(--cpd-font-body-sm-semibold);
            }

        .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_message {
            grid-area: message;
            line-height: 20px;
        }

        .mx_PinnedMessageBanner .mx_PinnedMessageBanner_main .mx_PinnedMessageBanner_redactedMessage {
            grid-area: message;
            height: 20px;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

    .mx_PinnedMessageBanner .mx_PinnedMessageBanner_actions {
        white-space: nowrap;
    }
    .mx_PinnedMessageBanner[data-single-message="true"] .mx_PinnedMessageBanner_content {
        grid-template: "indicators pinIcon message" auto;
    }

        .mx_PinnedMessageBanner[data-single-message="true"] .mx_PinnedMessageBanner_content .mx_PinnedMessageBanner_message {
            line-height: 40px;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PresenceIconView {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    background: var(--cpd-color-bg-canvas-default);
    border-radius: 100%;
}

    .mx_PresenceIconView .mx_PresenceIconView_online {
        color: var(--cpd-color-icon-accent-primary);
    }

    .mx_PresenceIconView .mx_PresenceIconView_offline,
    .mx_PresenceIconView .mx_PresenceIconView_dnd {
        color: var(--cpd-color-icon-tertiary);
    }

    .mx_PresenceIconView .mx_PresenceIconView_unavailable {
        color: var(--cpd-color-icon-quaternary);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PresenceLabel {
    font-size: 0.6875rem;
    opacity: 0.5;
}

.mx_PresenceLabel_online {
    color: var(--cpd-color-text-success-primary);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ReadReceiptGroup {
    --ReadReceiptGroup_EventBubbleTile-spacing-end: 78px;

    position: relative;
    inset-inline-end: auto;
    inset-inline-end: var(--event-tile-read-receipt-inset-inline-end, auto);
    display: inline-block;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    z-index: 1;
}

    .mx_ReadReceiptGroup .mx_ReadReceiptGroup_button {
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        height: 16px;
        padding: 4px;
        border-radius: 6px;
    }
            .mx_ReadReceiptGroup .mx_ReadReceiptGroup_button.mx_AccessibleButton:hover {
                background: var(--timeline-highlights-color);
            }

    .mx_ReadReceiptGroup .mx_ReadReceiptGroup_remainder {
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        font-size: 0.6875rem;
        line-height: 1rem;
        margin-right: 4px;
    }

    .mx_ReadReceiptGroup .mx_ReadReceiptGroup_container {
        position: relative;
        display: block;
        height: 100%;
    }

        .mx_ReadReceiptGroup .mx_ReadReceiptGroup_container svg {
            display: inline-block;
            width: 16px;
            height: 16px;
            color: var(--cpd-color-icon-tertiary);
        }

        .mx_ReadReceiptGroup .mx_ReadReceiptGroup_container .mx_BaseAvatar {
            /* Compound uses a border on default avatars but no border on actual images, we want a border in all cases */
            -webkit-box-sizing: content-box;
                    box-sizing: content-box;
            border: 1px solid var(--timeline-background-color, var(--cpd-color-bg-canvas-default)) !important;
            /* Reset the line height as we are no longer box-sizing border-box. 14px because avatar is set at 14px in component */
            line-height: 14px;
            position: absolute;
            will-change: left, top;
            -webkit-transition:
                left 0.1s ease-out,
                top 0.3s ease-out;
            transition:
                left 0.1s ease-out,
                top 0.3s ease-out;
            -webkit-transition:
                left var(--transition-short) ease-out,
                top var(--transition-standard) ease-out;
            transition:
                left var(--transition-short) ease-out,
                top var(--transition-standard) ease-out;
        }

.mx_ReadReceiptGroup_popup {
    max-height: 300px;
    width: 220px;
    border-radius: 8px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    text-align: left;
    font-size: 12px;
    line-height: 15px;

    right: 0;
}

    .mx_ReadReceiptGroup_popup.mx_ContextualMenu_top {
        top: 8px;
    }

    .mx_ReadReceiptGroup_popup.mx_ContextualMenu_bottom {
        bottom: 8px;
    }

    .mx_ReadReceiptGroup_popup .mx_ReadReceiptGroup_title {
        font-size: 12px;
        line-height: 15px;
        margin: 16px 16px 8px;
        font-weight: var(--cpd-font-weight-semibold);
        /* shouldn’t be actually focusable */
        outline: none;
    }
        .mx_ReadReceiptGroup_popup .mx_AutoHideScrollbar .mx_ReadReceiptGroup_person {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
            padding: 4px;
            margin: 0 12px;
            border-radius: 8px;
        }

            .mx_ReadReceiptGroup_popup .mx_AutoHideScrollbar .mx_ReadReceiptGroup_person:hover {
                background: #f5f8fa;
                background: var(--menu-selected-color, #f5f8fa);
            }

            .mx_ReadReceiptGroup_popup .mx_AutoHideScrollbar .mx_ReadReceiptGroup_person:last-child {
                margin-bottom: 8px;
            }

            .mx_ReadReceiptGroup_popup .mx_AutoHideScrollbar .mx_ReadReceiptGroup_person .mx_BaseAvatar {
                margin: 6px 8px;
                -ms-flex-item-align: center;
                    align-self: center;
                justify-self: center;
                -ms-flex-negative: 0;
                    flex-shrink: 0; /* Long names should not shrink the picture */
            }

            .mx_ReadReceiptGroup_popup .mx_AutoHideScrollbar .mx_ReadReceiptGroup_person .mx_ReadReceiptGroup_name {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-orient: vertical;
                -webkit-box-direction: normal;
                    -ms-flex-direction: column;
                        flex-direction: column;
                -webkit-box-flex: 1;
                    -ms-flex-positive: 1;
                        flex-grow: 1;
                -ms-flex-negative: 1;
                    flex-shrink: 1;
                overflow: hidden;
            }

                .mx_ReadReceiptGroup_popup .mx_AutoHideScrollbar .mx_ReadReceiptGroup_person .mx_ReadReceiptGroup_name p {
                    margin: 2px 0;
                    text-overflow: ellipsis;
                    overflow: hidden;
                    white-space: nowrap;
                }

                .mx_ReadReceiptGroup_popup .mx_AutoHideScrollbar .mx_ReadReceiptGroup_person .mx_ReadReceiptGroup_name .mx_ReadReceiptGroup_secondary {
                    color: #2e2f32;
                    color: var(--secondary-content, #2e2f32);
                }

.mx_ReadReceiptGroup_person--tooltip {
    overflow-y: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2018 Vector Creations Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ReplyPreview {
    border: 1px solid var(--roomlist-separator-color);
    border-bottom: none;
    background: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    max-height: 50vh;
    overflow: auto;
}

    .mx_ReplyPreview .mx_ReplyPreview_section {
        border-bottom: 1px solid var(--roomlist-separator-color);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-flow: column;
                flex-flow: column;
        row-gap: var(--cpd-space-2x);
        padding: var(--cpd-space-2x) var(--cpd-space-2x) 0 0;
    }

        .mx_ReplyPreview .mx_ReplyPreview_section .mx_ReplyPreview_header {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-pack: justify;
                -ms-flex-pack: justify;
                    justify-content: space-between;
            -webkit-column-gap: 8px;
               -moz-column-gap: 8px;
                    column-gap: 8px;

            color: var(--timeline-text-color);
            font-weight: 400;
            opacity: 0.4;
        }

            .mx_ReplyPreview .mx_ReplyPreview_section .mx_ReplyPreview_header .mx_ReplyPreview_header_cancel svg {
                color: var(--timeline-text-color);
                width: 20px;
                height: 20px;
                -ms-flex-negative: 0;
                    flex-shrink: 0;
            }
    .mx_RoomView_body .mx_ReplyPreview {
        /* Add box-shadow to the reply preview on the main (left) panel only. */
        /* It is not added to the preview on the (right) panel for threads and a chat with a maximized widget. */
        -webkit-box-shadow: 0px -16px 32px tranparent;
                box-shadow: 0px -16px 32px tranparent;
        border-radius: 8px 8px 0 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomHeader {
    height: 64px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    padding: 0 var(--cpd-space-3x) 0 calc(var(--cpd-space-3x) + var(--cpd-space-1-5x));
    border-bottom: 1px solid var(--cpd-color-gray-400);
    background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    -webkit-transition: all 0.2s ease;
    transition: all 0.2s ease;
}

    .mx_RoomHeader button:has(svg.mx_RoomHeader_toggled) {
        /* For enhanced visibility under contrast control */
        outline: 1px solid transparent;
    }

.mx_RoomHeader:hover {
    background-color: var(--cpd-color-bg-action-secondary-hovered);
}

.mx_RoomHeader_infoWrapper {
    /* unset button styles */
    color: inherit;
    background: transparent none repeat 0 0 / auto auto padding-box border-box scroll;
    background: initial;
    border: medium none currentcolor;
    border: initial;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    cursor: pointer;
    gap: var(--cpd-space-3x);
    text-align: left;
    height: 100%;
    padding: 0;
    /* Without this, this flex item reports its unshrunk content width to
       mx_RoomHeader which breaks its max-width. */
    min-width: 0;
}

.mx_RoomHeader_info {
    /* We want the spacing to be 64px, 13x = 52px but we have a flex gap of
       12px set on the flex container, which sums up to 64 */
    padding-right: var(--cpd-space-13x);
    /* See mx_RoomHeader_infoWrapper min-width comment above. */
    min-width: 0;
}

.mx_RoomHeader_truncated {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;

    overflow: hidden;
    word-break: break-all;
    text-overflow: ellipsis;
}

.mx_RoomHeader_heading {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-1-5x);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    min-width: 0;
}

.mx_RoomHeader_userStatus {
    -ms-flex-negative: 1;
        flex-shrink: 1;
    min-width: 0;
}

.mx_RoomHeader_icon {
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

.mx_RoomHeader .mx_FacePile {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    background: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: var(--cpd-space-2x);
    border-radius: 9999px;
    padding: var(--cpd-space-1-5x);
    cursor: pointer;
    -webkit-user-select: none;
       -moz-user-select: none;
        -ms-user-select: none;
            user-select: none;
    font: var(--cpd-font-body-sm-medium);
}

    /* RoomAvatar doesn't pass classes down to avatar
    So set style here
    using div because compound classes are not stable */
    .mx_RoomHeader .mx_FacePile > div {
        -ms-flex-negative: 0;
            flex-shrink: 0;
    }

    .mx_RoomHeader .mx_FacePile:hover {
        color: var(--timeline-text-color);
        background: var(--cpd-color-bg-subtle-primary);
    }

    .mx_RoomHeader .mx_FacePile.mx_FacePile_toggled {
        background: var(--cpd-color-bg-success-subtle);
        color: var(--cpd-color-text-action-accent);
        font: var(--cpd-font-body-sm-semibold);
        /* For enhanced visibility under contrast control */
        outline: 1px solid transparent;
    }

.mx_RoomHeader .mx_BaseAvatar {
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

.mx_RoomHeader_videoCallOption {
    /* Workaround for https://github.com/element-hq/compound/issues/331 */
    min-width: 240px;
}

.mx_RoomHeader .mx_RoomHeader_toggled {
    fill: var(--cpd-color-icon-accent-primary);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomInfoLine {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    display: inline-block;
}

    .mx_RoomInfoLine svg {
        margin-right: 6px;
        vertical-align: -2px;
        color: #2e2f32;
        color: var(--tertiary-content, #2e2f32);
    }

    .mx_RoomInfoLine .mx_RoomInfoLine_members {
        color: inherit;
        text-decoration: inherit;
        font-weight: inherit;
    }

        .mx_RoomInfoLine .mx_RoomInfoLine_members::before {
            content: "·"; /* visual separator */
            margin: 0 6px;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 Nordeck IT + Consulting GmbH

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomKnocksBar {
    background-color: var(--cpd-color-bg-subtle-secondary);
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    padding: var(--cpd-space-2x) var(--cpd-space-4x);
}

.mx_RoomKnocksBar_content {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    margin: 0 var(--cpd-space-3x);
}

.mx_RoomKnocksBar_paragraph {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    font-size: var(--cpd-font-size-body-sm);
    margin: 0;
}

.mx_RoomKnocksBar_link {
    margin-left: var(--cpd-space-3x);
}

.mx_RoomKnocksBar_action,
.mx_RoomKnocksBar_avatar {
    -ms-flex-item-align: center;
        align-self: center;
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

.mx_RoomKnocksBar_action + .mx_RoomKnocksBar_action {
    margin-left: var(--cpd-space-3x);
}

.mx_RoomKnocksBar_avatar + .mx_RoomKnocksBar_avatar {
    margin-left: calc(var(--cpd-space-4x) * -1);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015-2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomPreviewBar {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-align-items: center;
}

    .mx_RoomPreviewBar h3 {
        font-size: 1.125rem;
        font-weight: var(--cpd-font-weight-semibold);
    }

        .mx_RoomPreviewBar h3.mx_RoomPreviewBar_spinnerTitle {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            margin: 0;
        }

    .mx_RoomPreviewBar h3,
    .mx_RoomPreviewBar .mx_RoomPreviewBar_message p {
        /* break-word, with fallback to break-all, which is wider supported */
        word-break: break-all;
        word-break: break-word;
    }

    .mx_RoomPreviewBar .mx_Spinner {
        width: auto;
        height: auto;
        margin: 10px 10px 10px 0;
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
    }

    .mx_RoomPreviewBar .mx_RoomPreviewBar_footer {
        font-size: 0.75rem;
        line-height: 1.25rem;
    }

        .mx_RoomPreviewBar .mx_RoomPreviewBar_footer .mx_Spinner {
            vertical-align: middle;
            display: inline-block;
        }

.mx_RoomPreviewBar_actions {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.mx_RoomPreviewBar_message {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
}

    .mx_RoomPreviewBar_message p {
        overflow-wrap: break-word;
    }

.mx_RoomPreviewBar_panel {
    padding: 8px 8px 8px 20px;

    -webkit-box-orient: horizontal;

    -webkit-box-direction: normal;

        -ms-flex-direction: row;

            flex-direction: row;
}

    .mx_RoomPreviewBar_panel .mx_RoomPreviewBar_actions {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 auto;
                flex: 0 0 auto;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-direction: row;
                flex-direction: row;
        padding: 3px 8px;
    }

        .mx_RoomPreviewBar_panel .mx_RoomPreviewBar_actions > * {
            margin-left: 12px;
        }

    .mx_RoomPreviewBar_panel .mx_RoomPreviewBar_message {
        -webkit-box-flex: 1;
            -ms-flex: 1 0 0px;
                flex: 1 0 0;
        min-width: 0;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

        .mx_RoomPreviewBar_panel .mx_RoomPreviewBar_message > * {
            margin: 4px;
        }

/* With maximised widgets, the panel fits in better when rounded */
.mx_MainSplit_maximisedWidget .mx_RoomPreviewBar_panel {
    margin: 8px;
    margin: var(--container-gap-width);
    margin-right: calc(8px / 2);
    margin-right: calc(var(--container-gap-width) / 2); /* Shared with right panel */
    margin-top: 0; /* Already covered by apps drawer */
    border-radius: 8px;
}

.mx_RoomPreviewBar_dialog {
    margin: auto;
    -webkit-box-sizing: content;
            box-sizing: content;
    width: 400px;
    /* Matches the room preview card this stands in place of, and the panel form of this same bar */
    border-radius: 8px;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    padding: 20px;
    text-align: center;
}

    .mx_RoomPreviewBar_dialog .mx_RoomPreviewBar_message {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

        .mx_RoomPreviewBar_dialog .mx_RoomPreviewBar_message > * {
            margin: 5px 0 20px 0;
        }

    .mx_RoomPreviewBar_dialog .mx_RoomPreviewBar_actions {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }
        .mx_RoomPreviewBar_dialog .mx_RoomPreviewBar_actions .mx_AccessibleButton {
            padding: 7px 50px; /* extra wide */
        }

        .mx_RoomPreviewBar_dialog .mx_RoomPreviewBar_actions > * {
            margin-top: 12px;
        }
        .mx_RoomPreviewBar_dialog .mx_RoomPreviewBar_actions .mx_AccessibleButton.mx_AccessibleButton_kind_primary {
            /* to account for the padding of the primary button which causes inconsistent look between */
            /* subsequent secondary (text) buttons */
            margin-bottom: 7px;
        }
.mx_RoomPreviewBar_Invite {
    max-height: 100vh;
    overflow-y: auto;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
}

.mx_RoomPreviewBar_Invite h3 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    white-space: pre-wrap;
    overflow: hidden;
}

.mx_RoomPreviewBar_inviter {
    font-weight: var(--cpd-font-weight-semibold);
}

a.mx_RoomPreviewBar_inviter {
    text-decoration: underline;
    cursor: pointer;
}

.mx_RoomPreviewBar_inviter_mxid {
    color: var(--cpd-color-text-secondary);
}

.mx_RoomPreviewBar_icon {
    margin-right: 8px;
    vertical-align: text-top;
}

.mx_RoomPreviewBar_fullWidth {
    width: 100%;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomPreviewCard {
    padding: var(--cpd-space-8x) var(--cpd-space-6x) !important; /* Override SpaceRoomView's default padding */
    margin: auto;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    max-width: 480px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    background-color: #f4f6fa;
    background-color: var(--system, #f4f6fa);
    border-radius: 8px;
    position: relative;
    font: var(--cpd-font-body-md-regular);
}

    .mx_RoomPreviewCard .mx_RoomPreviewCard_notice {
        font-weight: var(--cpd-font-weight-semibold);
        line-height: 1.5rem;
        color: var(--timeline-text-color);
        margin-top: var(--cpd-space-6x);
    }

        .mx_RoomPreviewCard .mx_RoomPreviewCard_notice svg {
            height: 1em;
            width: 1em;
            margin-right: var(--cpd-space-2x);
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            vertical-align: -2px;
        }

    .mx_RoomPreviewCard .mx_RoomPreviewCard_inviter {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        margin-bottom: var(--cpd-space-5x);
        font-size: 0.9375rem;
    }

        .mx_RoomPreviewCard .mx_RoomPreviewCard_inviter > div {
            margin-left: var(--cpd-space-2x);
        }

            .mx_RoomPreviewCard .mx_RoomPreviewCard_inviter > div .mx_RoomPreviewCard_inviter_name {
                line-height: 1.125rem;
            }

            .mx_RoomPreviewCard .mx_RoomPreviewCard_inviter > div .mx_RoomPreviewCard_inviter_mxid {
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
            }

    .mx_RoomPreviewCard .mx_RoomPreviewCard_avatar {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_RoomPreviewCard .mx_RoomPreviewCard_avatar .mx_RoomPreviewCard_video {
            width: 22px;
            height: 22px;
            padding: 14px;
            border-radius: calc((50px + 2 * 3px) / 2);
            background-color: #0dbd8b;
            background-color: var(--accent-color, #0dbd8b);
            border: 3px solid #f4f6fa;
            border: 3px solid var(--system, #f4f6fa);

            left: calc(-50px / 4 - 3px);
        }

            .mx_RoomPreviewCard .mx_RoomPreviewCard_avatar .mx_RoomPreviewCard_video svg {
                width: inherit;
                height: inherit;
                color: #ffffff;
            }

        /* XXX Remove this when video rooms leave beta */
        .mx_RoomPreviewCard .mx_RoomPreviewCard_avatar .mx_BetaCard_betaPill {
            position: absolute;
            inset-block-start: var(--cpd-space-8x);
            inset-inline-end: var(--cpd-space-6x);
        }

    .mx_RoomPreviewCard h1.mx_RoomPreviewCard_name {
        margin: var(--cpd-space-4x) 0 !important; /* Override SpaceRoomView's default margins */
    }

    .mx_RoomPreviewCard .mx_RoomPreviewCard_topic {
        line-height: 1.375rem;
        margin-top: var(--cpd-space-4x);
        max-height: 160px;
        overflow-y: auto;
    }

    .mx_RoomPreviewCard .mx_FacePile {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        margin-top: var(--cpd-space-4x);
        /* For enhanced visibility under contrast control */
        outline: 1px solid transparent;
    }

        .mx_RoomPreviewCard .mx_FacePile :first-child {
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }

    .mx_RoomPreviewCard .mx_RoomPreviewCard_joinButtons {
        margin-top: var(--cpd-space-5x);
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        gap: var(--cpd-space-5x);
    }

        .mx_RoomPreviewCard .mx_RoomPreviewCard_joinButtons .mx_AccessibleButton {
            max-width: 200px;
            padding: 14px 0;
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomSearchAuxPanel {
    /* use `min-height` rather than height, to allow room for the text to wrap if the window is narrow */
    min-height: 84px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    border-color: var(--cpd-color-bg-canvas-default);
    border-style: solid;
    border-width: 1px 0;
    padding: var(--cpd-space-3x);
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    gap: var(--cpd-space-2x);
}

    .mx_RoomSearchAuxPanel .mx_RoomSearchAuxPanel_summary {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
        display: inherit; /* flex */
        gap: var(--cpd-space-2x);
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        overflow: hidden;
    }

        .mx_RoomSearchAuxPanel .mx_RoomSearchAuxPanel_summary > svg {
            padding: var(--cpd-space-2x);
            border-radius: var(--cpd-space-2x);
            background-color: var(--cpd-color-bg-subtle-secondary);
            color: var(--cpd-color-icon-secondary);
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }

        .mx_RoomSearchAuxPanel .mx_RoomSearchAuxPanel_summary .mx_RoomSearchAuxPanel_summary_text {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            font-size: 0.9375rem;
            line-height: 1.375rem;
            overflow: hidden;
        }

            .mx_RoomSearchAuxPanel .mx_RoomSearchAuxPanel_summary .mx_RoomSearchAuxPanel_summary_text span {
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
            }

        .mx_RoomSearchAuxPanel .mx_RoomSearchAuxPanel_summary .mx_SearchWarning {
            display: contents;
            font-size: 0.8125rem;
            line-height: 1.25rem;
            color: var(--cpd-color-text-secondary);
        }

    .mx_RoomSearchAuxPanel .mx_RoomSearchAuxPanel_buttons {
        display: inherit; /* flex */
        gap: var(--cpd-space-6x);
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -ms-flex-negative: 0;
            flex-shrink: 0;
    }
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomUpgradeWarningBar {
    max-height: 235px;
    background-color: #f7f7f7;
    padding-left: 20px;
    padding-right: 20px;
    overflow: scroll;
}

.mx_RoomUpgradeWarningBar_wrapped {
    width: 100%;
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    text-align: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-align-items: center;
}

.mx_RoomUpgradeWarningBar_header {
    color: #ff5b55;
    color: var(--alert, #ff5b55);
    font-weight: bold;
}

.mx_RoomUpgradeWarningBar_body {
    color: #ff5b55;
    color: var(--alert, #ff5b55);
}

.mx_RoomUpgradeWarningBar_upgradelink {
    color: #ff5b55;
    color: var(--alert, #ff5b55);
    text-decoration: underline;
}

.mx_RoomUpgradeWarningBar_small {
    color: var(--timeline-text-secondary-color);
    font-size: 70%;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SendMessageComposer {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    font: var(--cpd-font-body-md-regular);
    /* fixed line height to prevent emoji from being taller than text */
    line-height: 1.125rem;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin-right: 6px;
    /* don't grow wider than available space */
    min-width: 0;
}

    .mx_SendMessageComposer .mx_BasicMessageComposer {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        /* min-height at this level so the mx_BasicMessageComposer_input */
        /* still stays vertically centered when less than 55px. */
        /* We also set this to ensure the voice message recording widget */
        /* doesn't cause a jump. */
        min-height: 55px;
    }

        .mx_SendMessageComposer .mx_BasicMessageComposer .mx_BasicMessageComposer_input {
            padding: 3px 0;
            /* this will center the contenteditable */
            /* in it's parent vertically */
            /* while keeping the autocomplete at the top */
            /* of the composer. The parent needs to be a flex container for this to work. */
            margin: auto 0;
            /* max-height at this level so autocomplete doesn't get scrolled too */
            max-height: 140px;
            overflow-y: auto;
        }
}
@layer app-web{

.mx_Stickers_content {
    overflow: hidden;
}

.mx_Stickers_content_container {
    overflow: hidden;
    height: 300px;
}
    #mx_persistedElement_stickerPicker .mx_AppTileFullWidth {
        height: auto;
        height: initial;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        border-left: none;
        border-right: none;
        border-bottom: none;
    }

    #mx_persistedElement_stickerPicker .mx_AppTileMenuBar {
        padding: 0;
    }

    #mx_persistedElement_stickerPicker iframe {
        /* Sticker picker depends on the fixed height previously used for all tiles */
        height: 283px; /* height of the popout minus the AppTile menu bar */
    }

.mx_Stickers_contentPlaceholder {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    text-align: center;
}

.mx_Stickers_contentPlaceholder p {
    max-width: 200px;
}

.mx_Stickers_addLink {
    display: inline;
    cursor: pointer;
    color: #0dbd8b;
    color: var(--accent-color, #0dbd8b);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ThirdPartyMemberInfo {
    padding: var(--cpd-space-4x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_TopUnreadMessagesBar {
    z-index: 1000;
    position: absolute;
    top: 24px;
    right: 24px;
    width: 38px;
}

.mx_TopUnreadMessagesBar::after {
    content: "";
    position: absolute;
    top: -8px;
    left: 11px;
    width: 4px;
    height: 4px;
    border-radius: 16px;
    background-color: var(--cpd-color-bg-canvas-default);
    border: 6px solid var(--cpd-color-icon-accent-tertiary);
    pointer-events: none;
}

.mx_TopUnreadMessagesBar_scrollUp {
    height: 38px;
    width: 38px;
    border-radius: 19px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    background: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border: 1.3px solid var(--cpd-color-icon-tertiary);
    cursor: pointer;
}

    .mx_TopUnreadMessagesBar_scrollUp svg {
        width: 24px;
        height: 24px;
        padding: 6px;
        color: var(--cpd-color-icon-tertiary);
    }

.mx_TopUnreadMessagesBar_markAsRead {
    display: block;
    width: 18px;
    height: 18px;
    background: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border: 1.3px solid var(--cpd-color-icon-tertiary);
    border-radius: 10px;
    margin: 5px auto;
}

    .mx_TopUnreadMessagesBar_markAsRead svg {
        width: 16px;
        height: 16px;
        padding: 1px;
        color: var(--cpd-color-icon-tertiary);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_UserIdentityWarning {
    /* 42px is the padding-left of .mx_MessageComposer_wrapper in res/css/views/rooms/_MessageComposer.pcss */
    margin-left: calc(-42px + 18px);
    margin-left: calc(-42px + var(--RoomView_MessageList-padding));
}

    .mx_UserIdentityWarning .mx_UserIdentityWarning_row {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_UserIdentityWarning .mx_UserIdentityWarning_row .mx_BaseAvatar {
            margin-left: var(--cpd-space-2x);
        }
        .mx_UserIdentityWarning .mx_UserIdentityWarning_row .mx_UserIdentityWarning_main {
            margin-left: var(--cpd-space-6x);
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
        }
        .mx_UserIdentityWarning .mx_UserIdentityWarning_row .mx_UserIdentityWarning_main.critical {
            color: var(--cpd-color-text-critical-primary);
        }
.mx_UserIdentityWarning.critical {
    background: linear-gradient(180deg, var(--cpd-color-red-100) 0%, var(--cpd-color-theme-bg) 100%);
}

.mx_MessageComposer.mx_MessageComposer--compact > .mx_UserIdentityWarning {
    margin-left: calc(-25px + 18px);
    margin-left: calc(-25px + var(--RoomView_MessageList-padding));
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_VoiceRecordComposerTile_stop {
    /* 20px + 4px padding + 2px border makes this a 32px square (as intended) */
    width: 20px;
    height: 20px;
    padding: var(--cpd-space-1x);
    border: 2px solid #e3e8f0;
    border-radius: 32px;
    margin-right: 2px; /* between us and the waveform component */
}

    .mx_VoiceRecordComposerTile_stop svg {
        width: inherit;
        height: inherit;
        color: #ff4b55;
    }

.mx_VoiceRecordComposerTile_delete {
    width: 24px;
    height: 24px;
    vertical-align: middle;
    margin-right: 2px; /* distance from left edge of waveform container (container has some margin too) */
}

    .mx_VoiceRecordComposerTile_delete svg {
        width: inherit;
        height: inherit;
        color: #2e2f32;
    }

.mx_VoiceRecordComposerTile_uploadingState {
    margin-right: 10px;
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
}

.mx_VoiceRecordComposerTile_failedState {
    margin-right: 21px;
}

    .mx_VoiceRecordComposerTile_failedState .mx_VoiceRecordComposerTile_uploadState_badge {
        display: inline-block;
        margin-right: 4px;
        vertical-align: middle;
    }

.mx_MessageComposer_row .mx_VoiceMessagePrimaryContainer {
    /* Note: remaining class properties are in the PlayerContainer CSS. */

    /* fixed height to reduce layout jumps with the play button appearing */
    /* https://github.com/vector-im/element-web/issues/18431 */
    height: 32px;

    margin: 6px; /* force the composer area to put a gutter around us */
    margin-right: 6px; /* isolate from stop/send button */

    position: relative; /* important for the live circle */
}

    .mx_MessageComposer_row .mx_VoiceMessagePrimaryContainer.mx_VoiceRecordComposerTile_recording {
        /* We are putting the circle in this padding, so we need +10px from the regular */
        /* padding on the left side. */
        padding-left: 22px;
    }

        .mx_MessageComposer_row .mx_VoiceMessagePrimaryContainer.mx_VoiceRecordComposerTile_recording::before {
            -webkit-animation: recording-pulse 2s infinite;
                    animation: recording-pulse 2s infinite;

            content: "";
            background-color: #ff4b55;
            width: 10px;
            height: 10px;
            position: absolute;
            left: 12px; /* 12px from the left edge for container padding */
            top: 17px; /* vertically center (middle align with clock) */
            border-radius: 10px;
        }
        .mx_MessageComposer_wysiwyg .mx_VoiceMessagePrimaryContainer.mx_VoiceRecordComposerTile_recording::before {
            top: 15px; /* vertically center (middle align with clock) */
        }

/* The keyframes are slightly weird here to help make a ramping/punch effect */
/* for the recording dot. We start and end at 100% opacity to help make the */
/* dot feel a bit like a real lamp that is blinking: the animation ends up */
/* spending a lot of its time showing a steady state without a fade effect. */
/* This lamp effect extends into why the 0% opacity keyframe is not in the */
/* midpoint: lamps take longer to turn off than they do to turn on, and the */
/* extra frames give it a bit of a realistic punch for when the animation is */
/* ramping back up to 100% opacity. */

/* Target animation timings: steady for 1.5s, fade out for 0.3s, fade in for 0.2s */
/* (intended to be used in a loop for 2s animation speed) */
@-webkit-keyframes recording-pulse {
    0% {
        opacity: 1;
    }
    35% {
        opacity: 0;
    }
    65% {
        opacity: 1;
    }
}
@keyframes recording-pulse {
    0% {
        opacity: 1;
    }
    35% {
        opacity: 0;
    }
    65% {
        opacity: 1;
    }
}

@media (forced-colors: active) {
    .mx_VoiceMessagePrimaryContainer {
        outline: 1px solid transparent;
    }
}
}
@layer app-web{

/*
Copyright 2018-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_WhoIsTypingTile {
    margin-left: -18px; /* offset padding from mx_RoomView_MessageList to center avatars */
    padding-top: 18px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

/* position the indicator in the same place horizontally as the event-tile avatar slot. */
.mx_WhoIsTypingTile_avatars {
    -webkit-box-flex: 0;
        -ms-flex: 0 0 82px;
            flex: 0 0 82px; /* 18 (padding on message list) + 64 (padding on event lines) */
    text-align: center;
}

.mx_WhoIsTypingTile_avatars > :not(:first-child) {
    margin-left: -12px;
}

.mx_WhoIsTypingTile_avatars .mx_BaseAvatar {
    border: 1px solid var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-radius: 40px;
}

.mx_WhoIsTypingTile_remainingAvatarPlaceholder {
    position: relative;
    display: inline-block;
    color: var(--timeline-text-color);
    background-color: #6f7882;
    background-color: var(--quinary-content, #6f7882);
    border: 1px solid var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
    border-radius: 40px;
    width: 24px;
    height: 24px;
    line-height: 1.5rem;
    font-size: 0.8em;
    vertical-align: top;
    text-align: center;
}

.mx_WhoIsTypingTile_label {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    font: var(--cpd-font-body-md-semibold);
    color: var(--timeline-text-color-50pct);
}

.mx_WhoIsTypingTile_label > span {
    background-image: url(../../img/typing-indicator-2x.e13c259.gif);
    background-size: 25px;
    background-position: left bottom;
    background-repeat: no-repeat;
    padding-bottom: 15px;
    display: block;
}
    .mx_MatrixChat_useCompactLayout .mx_WhoIsTypingTile {
        padding-top: 4px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_EditWysiwygComposer {
    --EditWysiwygComposer-padding-inline: 3px;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    max-width: 100%; /* disable overflow */
    width: auto;
    gap: 8px;
    padding: 8px 3px;
    padding: 8px var(--EditWysiwygComposer-padding-inline);
}

    .mx_EditWysiwygComposer .mx_WysiwygComposer_Editor_content {
        border-radius: 4px;
        border: solid 1px var(--roomlist-separator-color);
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        max-height: 200px;
        padding: 3px 6px;
    }

        .mx_EditWysiwygComposer .mx_WysiwygComposer_Editor_content:focus {
            border-color: var(--accent-color-400);
        }

    .mx_EditWysiwygComposer .mx_EditWysiwygComposer_buttons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-flow: row wrap-reverse;
                flex-flow: row wrap-reverse; /* display "Save" over "Cancel" */
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        gap: 5px;
        -webkit-margin-start: auto;
                margin-inline-start: auto;
    }

        .mx_EditWysiwygComposer .mx_EditWysiwygComposer_buttons .mx_AccessibleButton {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            min-width: 100px; /* magic number to align the edge of the button with the input area */
        }
        .mx_EditWysiwygComposer .mx_FormattingButtons_Button:first-child {
            margin-left: 0px;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SendWysiwygComposer {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    font: var(--cpd-font-body-md-regular);
    /* fixed line height to prevent emoji from being taller than text */
    line-height: 1.125rem;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin-right: 13px;
    gap: 8px;
}

    .mx_SendWysiwygComposer .mx_FormattingButtons {
        margin-left: 12px;
    }

    .mx_SendWysiwygComposer .mx_WysiwygComposer_Editor {
        border: 1px solid;
        border-color: #6f7882;
        border-color: var(--quinary-content, #6f7882);
        padding: 6px 11px 6px 12px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: end;
            -ms-flex-align: end;
                align-items: flex-end;
        gap: 10px;
    }

        .mx_SendWysiwygComposer .mx_WysiwygComposer_Editor .mx_E2EIcon {
            margin: 0 0 7px 0;
            width: 12px;
            height: 12px;
        }

        .mx_SendWysiwygComposer .mx_WysiwygComposer_Editor[data-is-expanded="true"] {
            border-radius: 14px;
        }

            .mx_SendWysiwygComposer .mx_WysiwygComposer_Editor[data-is-expanded="true"] .mx_WysiwygComposer_Editor_container {
                margin-top: 3px;
                margin-bottom: 3px;
            }

        .mx_SendWysiwygComposer .mx_WysiwygComposer_Editor[data-is-expanded="false"] {
            border-radius: 40px;
        }

        .mx_SendWysiwygComposer .mx_WysiwygComposer_Editor .mx_WysiwygComposer_Editor_container {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            min-height: 22px;
            margin-bottom: 2px;
            /* don't grow wider than available space */
            width: 0;
        }

            .mx_SendWysiwygComposer .mx_WysiwygComposer_Editor .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content {
                /* this will center the contenteditable */
                /* in it's parent vertically */
                /* while keeping the autocomplete at the top */
                /* of the composer. The parent needs to be a flex container for this to work. */
                margin: auto 0;
                /* the line height is $font-22px (set in _Editor.pcss) and we want to display 16 lines */
                max-height: calc(16 * 1.375rem);
                overflow-y: auto;
            }
    .mx_SendWysiwygComposer-focused .mx_WysiwygComposer_Editor {
        border-color: #6f7882;
        border-color: var(--quaternary-content, #6f7882);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_WysiwygComposer_Editor_container {
    /* These are set in Javascript */
    --avatar-letter: "";
    --avatar-background: unset;
    --user-status: none;
    --placeholder: "";
}

    @-webkit-keyframes visualbell {
        from {
            background-color: #faa;
        }
        to {
            background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        }
    }

    @keyframes visualbell {
        from {
            background-color: #faa;
        }
        to {
            background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        }
    }

    .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content {
        line-height: 1.375rem;
        white-space: pre-wrap;
        word-wrap: break-word;
        outline: none;
        overflow-x: hidden;
    }
        /* navigated through in a single keypress */
        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content .caretNode {
            -webkit-user-select: all;
               -moz-user-select: all;
                    user-select: all;
        }

        /* we always have a <br/> tag at the end of the html, we need it to be present at first then hide it as soon as
        we have any other elements */
        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content br:not(:only-child) {
            display: none;
        }

        /* Force caret nodes to be selected in full so that they can be */

        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content p {
            margin-top: 0;
            margin-bottom: 0;
            /* this may seem redundant, but we need to handle zero content formatting tags, which occur when we split a
               formatting tag into paragraphs */
            min-height: 1.375rem;
        }

        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content ul,
        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content ol {
            margin-top: 0;
            margin-bottom: 0;
            -webkit-padding-start: var(--cpd-space-7x);
                    padding-inline-start: var(--cpd-space-7x);
        }

        /* Make list type disc to match rich text editor */
        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content ul {
            list-style-type: disc;
        }

        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content blockquote {
            color: #777;
            border-left: 2px solid var(--cpd-color-border-interactive-primary);
            border-radius: 2px;
            padding: 0 10px;

            -webkit-margin-before: 0;

                    margin-block-start: 0;
            -webkit-margin-after: 0;
                    margin-block-end: 0;
            -webkit-margin-start: 0;
                    margin-inline-start: 0;
            -webkit-margin-end: 0;
                    margin-inline-end: 0;
        }

        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content > pre {
            font-size: 0.9375rem;
            line-height: 1.5rem;

            margin-top: 0;
            margin-bottom: 0;
            padding: var(--cpd-space-2x) var(--cpd-space-3x);

            background-color: #f3f8fd;
            border: 1px solid #f3f8fd;
            border-radius: 2px;
        }

        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content code:not(pre *) {
            font-family: "Fira Code", "", "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji" !important;
            font-family: var(--font-family-monospace, "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji") !important;
            background-color: #f3f8fd;
            border: 1px solid #f3f8fd;
            border-radius: 4px;
            padding: var(--cpd-space-0-5x);
        }

            .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content code:not(pre *):empty {
                border: medium none currentcolor;
                border: initial;
                padding: 0;
                padding: initial;
            }

        /* this selector represents what will become a pill
        nb despite there being mx_UserPill and mx_RoomPill classes appended to these pills
        in the current composer, there don't appear to be any styles associated with those classes
        in this repo */
        .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content a[data-mention-type] {
            /* combine mx_Pill from _Pill.pcss */
            padding: 0.0625rem 0.4em;
            line-height: 1.0625rem;
            border-radius: 1rem;
            display: inline;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            max-width: 100%;
            overflow: hidden;

            color: var(--cpd-color-text-on-solid-primary);
            background-color: var(--other-user-pill-bg-color, var(--cpd-color-bg-action-primary-rest));

            /* ...with the overrides from _BasicMessageComposer.pcss */
            -webkit-user-select: all;
               -moz-user-select: all;
                    user-select: all;
            position: relative;
            cursor: inherit; /* We don't want indicate clickability */
            text-overflow: ellipsis;
            white-space: nowrap;
        }

            /* avatar pseudo element */
            .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content a[data-mention-type]::before {
                /* After consolidation, all of the styling from _Pill.scss was being overridden,
                so take what is in _BasicMessageComposer.pcss as the starting point */
                display: inline-block;
                content: var(--avatar-letter);
                background: var(--avatar-background), var(--timeline-background-color, var(--cpd-color-bg-canvas-default));

                width: 1rem;
                min-width: 1rem; /* ensure the avatar is not compressed */
                height: 1rem;
                line-height: 1rem;
                text-align: center;

                /* Get the positioning of the avatar just right for consistency with timeline */
                -webkit-margin-start: -0.4rem;
                        margin-inline-start: -0.4rem;
                -webkit-margin-end: 0.24rem;
                        margin-inline-end: 0.24rem;
                vertical-align: 0.12rem;

                background-repeat: no-repeat;
                background-size: 1rem;
                border-radius: 1rem;

                color: #ffffff;

                color: var(--avatar-color, #ffffff);
                font-weight: bold;
                font-size: 0.6275rem;
            }

            /* Pseudo element for rendering the user status emoji on mention pills. It is a
            pseudo element rather than a child node because the pill's text content is used
            verbatim when the message is serialised, so a real node would put the emoji in the
            sent message. */
            .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content a[data-mention-type]::after {
                content: var(--user-status);
                -webkit-margin-start: var(--cpd-space-1x);
                        margin-inline-start: var(--cpd-space-1x);
            }

    .mx_WysiwygComposer_Editor_container .mx_WysiwygComposer_Editor_content_placeholder::before {
        content: var(--placeholder);
        width: 0;
        height: 0;
        overflow: visible;
        display: inline-block;
        pointer-events: none;
        white-space: nowrap;
        color: var(--cpd-color-text-secondary);
    }

.mx_WysiwygComposer_AutoCompleteWrapper {
    position: relative;
}

    /* Due to the fact that editing a message now has a larger amount of grey
    colour above it (due to the rich text buttons above the composer), we need
    to give the autocomplete a bit more visual separation by using a border.
    */
    .mx_WysiwygComposer_AutoCompleteWrapper > .mx_Autocomplete {
        border: 1px solid #6f7882;
        border: 1px solid var(--quinary-content, #6f7882);
        border-radius: 8px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_FormattingButtons {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    gap: 8px;
}

    .mx_FormattingButtons .mx_FormattingButtons_Button {
        --size: 28px;
        cursor: pointer;
        height: 28px;
        height: var(--size);
        width: 28px;
        width: var(--size);
        background-color: transparent;
        border: none;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        border-radius: 5px;
    }
        .mx_FormattingButtons .mx_FormattingButtons_Button_hover:hover {
            background: var(--panels, var(--cpd-color-gray-600));
        }

            .mx_FormattingButtons .mx_FormattingButtons_Button_hover:hover .mx_FormattingButtons_Icon {
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
            }

    .mx_FormattingButtons .mx_FormattingButtons_active {
        background: var(--accent-color-300);
    }

        .mx_FormattingButtons .mx_FormattingButtons_active .mx_FormattingButtons_Icon {
            color: #0dbd8b;
            color: var(--accent-color, #0dbd8b);
        }
        .mx_FormattingButtons .mx_FormattingButtons_disabled .mx_FormattingButtons_Icon {
            color: #6f7882;
            color: var(--quinary-content, #6f7882);
        }

    .mx_FormattingButtons .mx_FormattingButtons_Icon {
        --size: 16px;
        height: 16px;
        height: var(--size);
        width: 16px;
        width: var(--size);
        color: #2e2f32;
        color: var(--tertiary-content, #2e2f32);
    }
    .mx_FormattingButtons_Tooltip_KeyboardShortcut kbd {
        text-align: center;
        display: inline-block;
        text-transform: capitalize;
        font-family: Inter, sans-serif;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LinkModal {
    padding: var(--cpd-space-8x);
    max-width: 600px;
    height: 341px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
}

    .mx_LinkModal .mx_LinkModal_content {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        gap: var(--cpd-space-2x);
        margin-top: 7px;
    }

        .mx_LinkModal .mx_LinkModal_content .mx_LinkModal_Field {
            -webkit-box-flex: initial;
                -ms-flex: initial;
                    flex: initial;
            height: 40px;
        }

        .mx_LinkModal .mx_LinkModal_content .mx_LinkModal_buttons {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
            -webkit-box-align: end;
                -ms-flex-align: end;
                    align-items: flex-end;
        }

            .mx_LinkModal .mx_LinkModal_content .mx_LinkModal_buttons .mx_Dialog_buttons {
                display: inline-block;
            }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019, 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_AvatarSetting_avatar {
    width: 120px;
    min-width: 120px; /* so it doesn't get crushed by the flexbox in languages with longer words */
    height: 120px;
    margin-top: 8px;
    position: relative;
}

    .mx_AvatarSetting_avatar.mx_AvatarSetting_avatarDisplay:hover .mx_AvatarSetting_hover {
        opacity: 1;
    }

    .mx_AvatarSetting_avatar > * {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
    }

    .mx_AvatarSetting_avatar .mx_AccessibleButton.mx_AccessibleButton_kind_primary {
        margin-top: 8px;
    }

    .mx_AvatarSetting_avatar .mx_AccessibleButton.mx_AccessibleButton_kind_link_sm {
        width: 100%;
    }

    .mx_AvatarSetting_avatar > img {
        display: block;
        height: 120px;
        width: inherit;
        border-radius: 120px;
        cursor: pointer;
        -o-object-fit: cover;
           object-fit: cover;
    }

    .mx_AvatarSetting_avatar .mx_AvatarSetting_uploadButton {
        width: 28px;
        height: 28px;
        border-radius: 32px;
        border: 1px solid var(--cpd-color-bg-canvas-default);
        background-color: var(--cpd-color-bg-canvas-default);

        position: absolute;
        bottom: 0;
        right: 0;
        text-align: center;
        cursor: pointer;
    }

        .mx_AvatarSetting_avatar .mx_AvatarSetting_uploadButton svg {
            position: relative;
            top: 3px;
        }

    .mx_AvatarSetting_avatar .mx_AvatarSetting_uploadButton:hover,
    .mx_AvatarSetting_avatar .mx_AvatarSetting_uploadButton_active {
        background-color: var(--cpd-color-bg-subtle-primary);
    }

.mx_AvatarSetting_removeMenuItem svg,
.mx_AvatarSetting_removeMenuItem span {
    color: var(--cpd-color-text-critical-primary) !important;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_FontScalingPanel_preview {
    --FontScalingPanel_preview-padding-block: 9px;

    border: 1px solid #6f7882;

    border: 1px solid var(--quinary-content, #6f7882);
    border-radius: 10px;
    padding: 0 var(--cpd-space-4x) 9px var(--cpd-space-4x);
    padding: 0 var(--cpd-space-4x) var(--FontScalingPanel_preview-padding-block) var(--cpd-space-4x);
    pointer-events: none;
    display: flow-root;
}

    .mx_FontScalingPanel_preview.mx_IRCLayout {
        padding-top: 9px;
    }

    .mx_FontScalingPanel_preview .mx_ReadReceiptGroup {
        display: none;
    }

.mx_FontScalingPanel_Dropdown {
    width: 120px;
    /* Override default mx_Field margin */
    margin-bottom: var(--cpd-space-2x) !important;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ImageSizePanel_radios {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: var(--cpd-space-4x);
}

    .mx_ImageSizePanel_radios > label {
        margin-right: 68px; /* keep the boxes separate */
        cursor: pointer;
    }

    .mx_ImageSizePanel_radios .mx_ImageSizePanel_size {
        display: block;
        color: #6f7882;
        color: var(--quinary-content, #6f7882);
        width: 221px;
        height: 148px;
        margin-bottom: 14px; /* move radio button away from bottom edge a bit */
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_IntegrationManager .mx_Dialog_border {
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        width: 60%;
        height: 70%;
        max-width: none;
        max-width: initial;
        max-height: none;
        max-height: initial;
    }

    .mx_IntegrationManager .mx_Dialog {
        padding: 0;
        overflow: hidden;
    }

    .mx_IntegrationManager iframe {
        background-color: #fff;
        border: 0;
        width: 100%;
        height: 100%;
    }

    .mx_IntegrationManager h3 {
        margin-block: var(--cpd-space-5x);
    }

    .mx_IntegrationManager .mx_IntegrationManager_loading,
    .mx_IntegrationManager .mx_IntegrationManager_error {
        text-align: center;
    }

    .mx_IntegrationManager .mx_IntegrationManager_error h3 {
        color: #ff5b55;
        color: var(--alert, #ff5b55);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_JoinRuleSettings_upgradeRequired {
    margin-left: 16px;
    padding: 4px 16px;
    border: 1px solid #0dbd8b;
    border: 1px solid var(--accent-color, #0dbd8b);
    border-radius: 8px;
    color: #0dbd8b;
    color: var(--accent-color, #0dbd8b);
    font-size: 0.75rem;
    line-height: 0.9375rem;
}
    .mx_JoinRuleSettings_spacesWithAccess > h4 {
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.75rem;
        line-height: 0.9375rem;
        text-transform: uppercase;
    }

    .mx_JoinRuleSettings_spacesWithAccess > span {
        font: var(--cpd-font-body-md-medium);
        line-height: 32px; /* matches height of avatar for v-align */
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
        display: inline-block;
    }

        .mx_JoinRuleSettings_spacesWithAccess > span .mx_BaseAvatar {
            margin-right: 8px;
        }

        .mx_JoinRuleSettings_spacesWithAccess > span + span {
            margin-left: 16px;
        }

.mx_JoinRuleSettings_radioButton {
    padding-top: 16px;
}

    .mx_JoinRuleSettings_radioButton .mx_StyledRadioButton_content {
        margin-left: 14px;
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.9375rem;
        line-height: 1.5rem;
        color: var(--timeline-text-color);
        display: block;
    }

    .mx_JoinRuleSettings_radioButton.mx_StyledRadioButton_disabled {
        opacity: 0.5;
    }

    .mx_JoinRuleSettings_radioButton.mx_StyledRadioButton_disabled + span {
        opacity: 0.5;
    }

    .mx_JoinRuleSettings_radioButton + span {
        display: inline-block;
        margin-left: 34px;
        margin-bottom: 16px;
        font-size: 0.9375rem;
        line-height: 1.5rem;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

        .mx_JoinRuleSettings_radioButton + span + .mx_StyledRadioButton {
            border-top: 1px solid #6f7882;
            border-top: 1px solid var(--quinary-content, #6f7882);
        }

.mx_JoinRuleSettings_labelledCheckbox {
    font: var(--cpd-font-body-md-regular);
    margin-top: var(--cpd-space-2x);
}

.mx_JoinRuleSettings_recommended {
    color: var(--accent-color-1000);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_KeyboardShortcut kbd {
        padding: 5px;
        border-radius: 4px;
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        min-width: 20px;
        text-align: center;
        display: inline-block;
        border: 1px solid #c7c7c7;
        -webkit-box-shadow: 0 2px #c7c7c7;
                box-shadow: 0 2px #c7c7c7;
        text-transform: capitalize;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2020, 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LayoutSwitcher_LayoutSelector {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    /**
     * The settings form has a default gap of 10px
     * We want to have a bigger gap between the layout options
     */
    gap: var(--cpd-space-4x) !important;
}

    .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio {
        border: 1px solid var(--cpd-color-border-interactive-primary);
        border-radius: var(--cpd-space-2x);
    }

        .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_inline {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            /*
             * 10px
             */
            gap: calc(var(--cpd-space-2x) + var(--cpd-space-0-5x));
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

        .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_inline,
        .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview {
            margin: var(--cpd-space-3x);
        }

        /**
         * Override the event tile style to make it fit in the selector
         * Tweak also hover style and remove action bar
         */
        .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview {
            pointer-events: none;
        }

            .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile {
                margin: 0;

                /*
                 * EventTileView applies the content gutter through this
                 * variable on the shell. Keep the preview's content width
                 * consistent with the legacy preview override below.
                 */
                --event-tile-content-inline-end: 0;
            }

                /**
                 * Hide the message options and message action bar in the preview
                 */
                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile .mx_ReadReceiptGroup,
                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile .mx_MessageActionBar {
                    display: none;
                }

                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile .mx_EventTile_content {
                    margin-right: 0;
                    -webkit-margin-end: 0;
                            margin-inline-end: 0;
                }

                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile:has([data-event-layout="group"]) {
                    margin-top: calc(var(--cpd-space-3x) * -1);
                }

                /**
                 * Add margin to center the bubble
                 */
                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile:has([data-event-layout="bubble"]) {
                    /**
                     * Add the layout margin and the margin to vertically center the bubble
                     */
                    margin-top: var(--cpd-space-6x);
                    margin-right: 34px;
                    -ms-flex-negative: 1;
                        flex-shrink: 1;
                }

                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile:has([data-event-layout="irc"]) {
                    /*
                     * The migrated tile keeps an empty timestamp slot for
                     * IRC alignment. The preview must hide that slot as the
                     * legacy preview hid its timestamp element.
                     */
                }
                    .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile:has([data-event-layout="irc"]) .mx_MessageTimestamp,
                    .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile:has([data-event-layout="irc"]) [data-testid="event-tile-slot-timestamp"] {
                        display: none;
                    }

                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile .mx_EventTile_line {
                    max-width: 100%;
                }

        .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_separator {
            border-top: 0;
            border-bottom: 1px solid var(--cpd-color-border-interactive-secondary);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_NotificationPusherSettings .mx_NotificationPusherSettings_description {
        color: var(--timeline-text-color);
    }

    .mx_NotificationPusherSettings .mx_NotificationPusherSettings_detail {
        margin-top: -4px;
        margin-bottom: 12px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    /* The labs notice banner renders directly below this, so keep them apart. When it is absent
       the margin collapses with the section's own, leaving the spacing below unchanged. */
    .mx_SettingsTab .mx_NotificationSettings2 .mx_NotificationSettings2_error {
        margin-bottom: var(--cpd-space-4x);
    }

        /* The alert lays its actions out at flex-basis 0, which would otherwise break the label
           across lines rather than wrapping it below the message. */
        .mx_SettingsTab .mx_NotificationSettings2 .mx_NotificationSettings2_error .mx_AccessibleButton {
            white-space: nowrap;
        }

        /* Compound drops the action onto its own row for any alert under 600px, which leaves this
           short message sitting beside a mostly empty second row. Wrap on demand instead, so the
           action only moves below the message once the two genuinely stop fitting side by side.
           The children are the alert's content row and the message within it. */
        .mx_SettingsTab .mx_NotificationSettings2 .mx_NotificationSettings2_error > div {
            -ms-flex-wrap: wrap;
                flex-wrap: wrap;
        }

            .mx_SettingsTab .mx_NotificationSettings2 .mx_NotificationSettings2_error > div > div:first-child {
                -webkit-box-flex: 1;
                    -ms-flex: 1 1 auto;
                        flex: 1 1 auto;

                /* Compound tints only the icon on a critical alert and leaves the message in the
                   default text colour, so state it here to read like warnings elsewhere. The action
                   is a sibling of this element and so keeps its own colour. */
                color: var(--cpd-color-text-critical-primary);
            }

    .mx_SettingsTab .mx_NotificationSettings2 .mx_SettingsSection_subSections {
        color: var(--timeline-text-color);
        gap: 32px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

    .mx_SettingsTab .mx_NotificationSettings2 .mx_SettingsSubsection_description {
        margin-bottom: 20px;
    }
            .mx_SettingsTab .mx_NotificationSettings2 .mx_SettingsSubsection_description .mx_SettingsSubsection_text .mx_NotificationSettings2_notificationBadge {
                vertical-align: baseline;
                display: -webkit-inline-box;
                display: -ms-inline-flexbox;
                display: inline-flex;
                margin: 0 2px;
            }

    .mx_SettingsTab .mx_NotificationSettings2 .mx_SettingsSubsection_content {
        margin-top: 12px;
        gap: 12px;
        justify-items: stretch;
        -webkit-box-pack: stretch;
            -ms-flex-pack: stretch;
                justify-content: stretch;
    }

    .mx_SettingsTab .mx_NotificationSettings2 .mx_StyledRadioButton_content {
        margin-left: 10px;
        margin-right: 10px;
    }

    .mx_SettingsTab .mx_NotificationSettings2 .mx_TagComposer {
        margin-top: 16px;
    }

        .mx_SettingsTab .mx_NotificationSettings2 .mx_TagComposer.mx_TagComposer_disabled {
            opacity: 0.7;
        }

        .mx_SettingsTab .mx_NotificationSettings2 .mx_TagComposer .mx_TagComposer_tags {
            margin-top: 16px;
            gap: 8px;
        }

            .mx_SettingsTab .mx_NotificationSettings2 .mx_TagComposer .mx_TagComposer_tags .mx_Tag {
                border-radius: 18px;
                padding: 6px 12px;
                background: var(--roomlist-highlights-color);
                margin: 0;
            }

                .mx_SettingsTab .mx_NotificationSettings2 .mx_TagComposer .mx_TagComposer_tags .mx_Tag .mx_Tag_delete {
                    background: #2e2f32;
                    background: var(--tertiary-content, #2e2f32);
                    color: #fff;
                    -ms-flex-item-align: initial;
                        align-self: initial;
                }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2015-2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_UserNotifSettings_grid {
    width: calc(100% + 12px); /* +12px to line up center of 'Noisy' column with toggle switches */
    display: grid;
    grid-template-columns: auto repeat(3, 62px);
    place-items: center center;
    grid-gap: 8px;
    gap: 8px;
}

    /* Override StyledRadioButton default styles */
    .mx_UserNotifSettings_grid .mx_StyledRadioButton {
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

        .mx_UserNotifSettings_grid .mx_StyledRadioButton .mx_StyledRadioButton_content {
            display: none;
        }

        .mx_UserNotifSettings_grid .mx_StyledRadioButton .mx_StyledRadioButton_spacer {
            display: none;
        }

    /* left align section heading */
    .mx_UserNotifSettings_grid .mx_SettingsSubsectionHeading {
        justify-self: start;
    }

.mx_UserNotifSettings_gridRowContainer {
    display: contents;
}

.mx_UserNotifSettings_gridRow {
    display: contents;
}

.mx_UserNotifSettings_gridRowLabel {
    padding-inline: unset; /* Remove default legend padding */
    justify-self: start;
    /* <legend> does not accept */
    /* display: inline | inline-block */
    /* force it inline using float */
    float: left;
}

.mx_UserNotifSettings_gridColumnLabel {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    font: var(--cpd-font-body-sm-semibold);
}
.mx_UserNotifSettings_gridRowError {
    /* occupy full row */
    grid-column: 1/-1;
    justify-self: start;
    padding-right: 30%;
    /* collapse half of the grid-gap */
    margin-top: calc(-1 * var(--cpd-space-1x));
}

.mx_UserNotifSettings_floatingSection {
    margin-top: 40px;
}

    .mx_UserNotifSettings_floatingSection > div:first-child {
        /* section header */
        font-size: 1.125rem;
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_UserNotifSettings_floatingSection > table {
        border-collapse: collapse;
        border-spacing: 0;
        margin-top: 8px;
    }

        .mx_UserNotifSettings_floatingSection > table tr > td:first-child {
            /* Just for a bit of spacing */
            padding-right: 8px;
        }

.mx_UserNotifSettings_clearNotifsButton {
    margin-top: 8px;
}

.mx_TagComposer {
    margin-top: 35px; /* lots of distance from the last line of the table */
}

.mx_AccessibleButton.mx_NotificationSound_browse {
    margin-right: 10px;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_GeneralUserSettingsTab_section--discovery_existing_verification {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

    .mx_GeneralUserSettingsTab_section--discovery_existing_verification .mx_Field {
        margin: 0 0 0 1em;
    }

.mx_PhoneNumbers_input {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_PhoneNumbers_input > .mx_Field {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
}

.mx_PhoneNumbers_country {
    width: 80px;
}
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 * Copyright 2024 The Matrix.org Foundation C.I.C.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_PowerLevelSelector_Button {
    -ms-flex-item-align: start;
        align-self: flex-start;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019, 2020 , 2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RoomProfileSettings {
    border-bottom: 1px solid #6f7882;
    border-bottom: 1px solid var(--quinary-content, #6f7882);
}

    .mx_RoomProfileSettings .mx_RoomProfileSettings_profile {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

        .mx_RoomProfileSettings .mx_RoomProfileSettings_profile .mx_RoomProfileSettings_profile_controls {
            -webkit-box-flex: 1;
                -ms-flex-positive: 1;
                    flex-grow: 1;
            -webkit-margin-end: 54px;
                    margin-inline-end: 54px;
        }

            .mx_RoomProfileSettings .mx_RoomProfileSettings_profile .mx_RoomProfileSettings_profile_controls .mx_Field {
                margin-top: var(--cpd-space-2x);
            }

            .mx_RoomProfileSettings .mx_RoomProfileSettings_profile .mx_RoomProfileSettings_profile_controls .mx_RoomProfileSettings_profile_controls_topic {
                margin-top: var(--cpd-space-2x);
            }

                .mx_RoomProfileSettings .mx_RoomProfileSettings_profile .mx_RoomProfileSettings_profile_controls .mx_RoomProfileSettings_profile_controls_topic > textarea {
                    font-family: inherit;
                    resize: vertical;
                }

                .mx_RoomProfileSettings .mx_RoomProfileSettings_profile .mx_RoomProfileSettings_profile_controls .mx_RoomProfileSettings_profile_controls_topic.mx_RoomProfileSettings_profile_controls_topic--room textarea {
                    min-height: 4em;
                }

            .mx_RoomProfileSettings .mx_RoomProfileSettings_profile .mx_RoomProfileSettings_profile_controls .mx_RoomProfileSettings_profile_controls_userId {
                -webkit-margin-end: var(--cpd-space-5x);
                        margin-inline-end: var(--cpd-space-5x);
            }

    .mx_RoomProfileSettings .mx_RoomProfileSettings_buttons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        gap: var(--cpd-space-4x);
        margin-top: 10px; /* 18px is already accounted for by the <p> above the buttons */
        margin-bottom: var(--cpd-space-7x);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_SetIntegrationManager .mx_SetIntegrationManager_heading_manager {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        -webkit-column-gap: var(--cpd-space-1x);
           -moz-column-gap: var(--cpd-space-1x);
                column-gap: var(--cpd-space-1x);
    }
    .mx_SetIntegrationManager form {
        margin-top: var(--cpd-space-3x);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsFieldset {
    /* Reset the browser default <fieldset> styling */
    display: inline-block;
    margin-inline: unset;
    padding-block: unset;
    padding-inline: unset;
    min-inline-size: unset;
    border: none;
    -webkit-box-sizing: content-box;
            box-sizing: content-box;
}

.mx_SettingsFieldset_legend {
    /* Reset the browser default <legend> styling */
    padding-inline: unset;
    border: none;
    font: var(--cpd-font-heading-md-semibold);
    font-weight: var(--cpd-font-weight-semibold);
    display: block;
    color: var(--timeline-text-color);
    margin-bottom: 10px;
    margin-top: 12px;
}

.mx_SettingsFieldset_description {
    display: block;
    margin-top: 0;
    margin-bottom: 10px;
}

    .mx_SettingsFieldset_description p {
        margin-top: 10px;
        margin-bottom: 0;
    }

        .mx_SettingsFieldset_description p:first-child {
            margin: 0;
        }

.mx_SettingsFieldset_content {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: var(--cpd-space-2x);
}
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_SettingsHeader {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: var(--cpd-space-2x);
    color: var(--cpd-color-text-primary);
    /* Override margin from common.pcss */
    margin: 0;
}

    .mx_SettingsHeader > span {
        font: var(--cpd-font-body-sm-medium);
        color: var(--cpd-color-text-action-accent);
    }

    .mx_SettingsHeader.mx_SettingsHeader_recommended::after {
        display: inline-block;
        content: "";
        width: 8px;
        height: 8px;
        background-color: var(--cpd-color-icon-critical-primary);
        clip-path: circle(4px);
    }
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_SettingsSubheader {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: var(--cpd-space-2x);
}

    .mx_SettingsSubheader > span {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: var(--cpd-space-2x);
        font: var(--cpd-font-body-sm-medium);
    }

    .mx_SettingsSubheader .mx_SettingsSubheader_success {
        color: var(--cpd-color-text-success-primary);
    }

    .mx_SettingsSubheader .mx_SettingsSubheader_error {
        color: var(--cpd-color-text-critical-primary);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ExistingSpellCheckLanguage {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_ExistingSpellCheckLanguage_language {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    margin-right: 10px;
}

.mx_GeneralUserSettingsTab_spellCheckLanguageInput {
    margin-bottom: var(--cpd-space-2x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_ThemeChoicePanel_ThemeSelectors {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    /* Override form default style */
    -webkit-box-orient: horizontal !important;
    -webkit-box-direction: normal !important;
        -ms-flex-direction: row !important;
            flex-direction: row !important;
    gap: var(--cpd-space-4x) !important;
}

    .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector {
        border: 1px solid var(--cpd-color-border-interactive-secondary);
        border-radius: var(--cpd-space-1-5x);
        padding: var(--cpd-space-3x) var(--cpd-space-5x) var(--cpd-space-3x) var(--cpd-space-3x);
        gap: var(--cpd-space-2x);
        background-color: var(--cpd-color-bg-canvas-default);
    }

        .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector.mx_ThemeChoicePanel_themeSelector_enabled {
            border-color: var(--cpd-color-border-interactive-primary);
        }

        .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector.mx_ThemeChoicePanel_themeSelector_disabled {
            border-color: var(--cpd-color-border-disabled);
        }

            .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector.mx_ThemeChoicePanel_themeSelector_disabled .mx_ThemeChoicePanel_themeSelector_Label {
                color: var(--cpd-color-text-disabled);
                cursor: not-allowed;
            }

        .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector .mx_ThemeChoicePanel_themeSelector_Label {
            font: var(--cpd-font-body-md-semibold);
        }
            .mx_ThemeChoicePanel_ThemeSelectors .mx_ThemeChoicePanel_themeSelector:not(.mx_ThemeChoicePanel_themeSelector_disabled) .mx_ThemeChoicePanel_themeSelector_Label {
                color: var(--cpd-color-text-primary);
            }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_UpdateCheckButton_summary {
    margin-left: 16px;
}
}
@layer app-web{

/*
Copyright 2026 Element Creations Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_UserPersonalInfoSettings h2 {
        margin: var(--cpd-space-4x) 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019, 2020 , 2024 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_UserProfileSettings {
    border-bottom: 1px solid #6f7882;
    border-bottom: 1px solid var(--quinary-content, #6f7882);
}

    .mx_UserProfileSettings h2 {
        margin: var(--cpd-space-4x) 0;
    }

    .mx_UserProfileSettings .mx_UserProfileSettings_profile {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-top: var(--cpd-space-6x);
        gap: 16px;
    }

        .mx_UserProfileSettings .mx_UserProfileSettings_profile .mx_UserProfileSettings_profile_displayName {
            -webkit-box-flex: 0;
                -ms-flex-positive: 0;
                    flex-grow: 0;
            width: 100%;
            gap: 0;
        }
        .mx_UserProfileSettings .mx_UserProfileSettings_profile .mx_UserProfileSettings_profile_nameAndStatus {
            width: 100%;
            /* Override the default of min-width: auto to allow max-width: 100% to bound correctly */
            min-width: 0;
            gap: 16px;
        }

    .mx_UserProfileSettings .mx_UserProfileSettings_nicknameColor {
        margin-top: var(--cpd-space-6x);
        border: 0;
        padding: 0;
    }

        .mx_UserProfileSettings .mx_UserProfileSettings_nicknameColor legend {
            font-weight: 600;
        }

    .mx_UserProfileSettings .mx_UserProfileSettings_nicknameColor_help,
    .mx_UserProfileSettings .mx_UserProfileSettings_nicknameColor_preview {
        margin: var(--cpd-space-2x) 0;
    }

    .mx_UserProfileSettings .mx_UserProfileSettings_nicknameColor_options {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
        gap: var(--cpd-space-2x) var(--cpd-space-4x);
        margin: var(--cpd-space-3x) 0;
    }

        .mx_UserProfileSettings .mx_UserProfileSettings_nicknameColor_options label {
            display: -webkit-inline-box;
            display: -ms-inline-flexbox;
            display: inline-flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            gap: var(--cpd-space-1x);
        }

    .mx_UserProfileSettings .mx_UserProfileSettings_nicknameColor_swatch {
        width: 16px;
        height: 16px;
        border: 1px solid #6f7882;
        border: 1px solid var(--quinary-content, #6f7882);
        border-radius: 50%;
    }

    .mx_UserProfileSettings .mx_UserProfileSettings_nicknameColor_unavailable {
        margin-top: var(--cpd-space-6x);
    }

    .mx_UserProfileSettings .mx_UserProfileSettings_profile_controls {
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
    }

    .mx_UserProfileSettings .mx_UserProfileSettings_profile_controls_userId {
        width: 100%;
        margin-top: var(--cpd-space-4x);
    }
        .mx_UserProfileSettings .mx_UserProfileSettings_profile_controls_userId .mx_CopyableText {
            margin-top: var(--cpd-space-1x);
            width: 100%;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
        }

    .mx_UserProfileSettings .mx_UserProfileSettings_profile_controls_userId_label {
        font-size: 15px;
        font-weight: 500;
    }

    .mx_UserProfileSettings .mx_UserProfileSettings_profile_buttons {
        margin-top: var(--cpd-space-8x);
        margin-bottom: var(--cpd-space-8x);
    }

    .mx_UserProfileSettings .mx_UserProfileSettings_accountmanageIcon {
        margin-right: var(--cpd-space-2x);
    }

@media (max-width: 768px) {
    .mx_UserProfileSettings_profile {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: 30px;
    }
}
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_EncryptionDetails,
.mx_OtherSettings {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    /* !important override compound form */
    gap: var(--cpd-space-6x) !important;
    width: 100%;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: start;
}

    .mx_EncryptionDetails .mx_EncryptionDetails_session_title,
    .mx_EncryptionDetails .mx_OtherSettings_title,
    .mx_OtherSettings .mx_EncryptionDetails_session_title,
    .mx_OtherSettings .mx_OtherSettings_title {
        font: var(--cpd-font-body-lg-semibold);
        padding-bottom: var(--cpd-space-2x);
        border-bottom: 1px solid var(--cpd-color-gray-400);
        width: 100%;
        margin: 0;
    }
    .mx_EncryptionDetails .mx_EncryptionDetails_session {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-4x);
        width: 100%;
    }

        .mx_EncryptionDetails .mx_EncryptionDetails_session > div {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
        }

            .mx_EncryptionDetails .mx_EncryptionDetails_session > div > span {
                width: 50%;
                word-wrap: break-word;
            }

        .mx_EncryptionDetails .mx_EncryptionDetails_session > div:nth-child(odd) {
            background-color: var(--cpd-color-gray-200);
        }

    .mx_EncryptionDetails .mx_EncryptionDetails_buttons {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        gap: var(--cpd-space-4x);
    }
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */
    .mx_ChangeRecoveryKey .mx_ChangeRecoveryKey_Form {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-8x);
    }

        .mx_ChangeRecoveryKey .mx_ChangeRecoveryKey_Form .mx_ChangeRecoveryKey_footer {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            gap: var(--cpd-space-4x);
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
        }

    .mx_ChangeRecoveryKey .mx_KeyPanel {
        display: grid;
        grid-template:
            "header button" auto
            "content button" auto / 1fr;

        grid-column-gap: var(--cpd-space-3x);

        -webkit-column-gap: var(--cpd-space-3x);

           -moz-column-gap: var(--cpd-space-3x);

                column-gap: var(--cpd-space-3x);
        grid-row-gap: var(--cpd-space-1x);
        row-gap: var(--cpd-space-1x);
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_ChangeRecoveryKey .mx_KeyPanel > span {
            grid-area: header;
        }

        .mx_ChangeRecoveryKey .mx_KeyPanel > div {
            grid-area: content;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            gap: var(--cpd-space-2x);
            color: var(--cpd-color-text-secondary);
        }

            .mx_ChangeRecoveryKey .mx_KeyPanel > div .mx_KeyPanel_key {
                font-family: "Fira Code", monospace;
                /*
                 * From figma https://www.figma.com/design/qTWRfItpO3RdCjnTKPu4mL/Settings?node-id=375-77471&t=t7lozYrSI1AVZZ3U-4
                 */
                height: 70px;
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;
                border-radius: var(--cpd-space-2x);
                padding: var(--cpd-space-3x) var(--cpd-space-4x);
                background-color: var(--cpd-color-bg-subtle-secondary);
            }

        .mx_ChangeRecoveryKey .mx_KeyPanel > button {
            margin: 0 var(--cpd-space-1x);
            grid-area: button;
            color: var(--cpd-color-icon-secondary-alpha);
        }

/* Used by ChangeRecoveryKeyBody and CheckRecoveryKey, which both render the form in an
   EncryptionCard. */
.mx_EncryptionCard .mx_KeyForm {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: var(--cpd-space-8x);
}
        .mx_EncryptionCard .mx_KeyForm .mx_KeyForm_password > input[name="recoveryKey"] {
            /*
             * From figma https://www.figma.com/design/qTWRfItpO3RdCjnTKPu4mL/Settings?node-id=375-77506&t=d82NdRBDoKsUe1C9-4
             */
            height: 70px;
            padding: var(--cpd-space-3x) var(--cpd-space-3x) var(--cpd-space-3x) var(--cpd-space-4x);
            border: var(--cpd-border-width-1) solid;
            border-radius: 8px;
            margin: 0px;
        }
            .mx_EncryptionCard .mx_KeyForm .mx_KeyForm_password > input[name="recoveryKey"]:focus {
                outline: none;
                -webkit-box-shadow: none;
                        box-shadow: none;
            }

        .mx_EncryptionCard .mx_KeyForm .mx_KeyForm_password > button {
            /*
             * See figma https://www.figma.com/design/qTWRfItpO3RdCjnTKPu4mL/Settings?node-id=375-77506&t=d82NdRBDoKsUe1C9-4
             * Avoid stretching the hide/show symbol to the height of the input, and centre it vertically.
             */
            height: 24.5px;
            padding: var(--cpd-space-1x);
            -ms-flex-item-align: center;
                align-self: center;
        }
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_EncryptionCard {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: var(--cpd-space-8x);
    padding: var(--cpd-space-10x);
    border-radius: var(--cpd-space-4x);
    /* From figma */
    -webkit-box-shadow: 0 1.2px 2.4px 0 rgb(27, 29, 34, 0.15);
            box-shadow: 0 1.2px 2.4px 0 rgb(27, 29, 34, 0.15);
    border: 1px solid var(--cpd-color-gray-400);
}

    .mx_EncryptionCard .mx_EncryptionCard_header {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-4x);
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_EncryptionCard .mx_EncryptionCard_header > h2 {
            color: var(--cpd-color-text-primary);
            margin: 0;
        }

        .mx_EncryptionCard .mx_EncryptionCard_header > span {
            color: var(--cpd-color-text-secondary);
            text-align: center;
        }

    /* extra class for specifying that we don't need a border */
    .mx_EncryptionCard.mx_EncryptionCard_noBorder {
        border: 0px none;
        -webkit-box-shadow: none;
                box-shadow: none;
        padding: 0px;
    }

    .mx_EncryptionCard .mx_AlertNoIcon {
        color: var(--cpd-color-text-critical-primary);
        margin-top: -var(cpd-space-2x);
    }

        .mx_EncryptionCard .mx_AlertNoIcon svg {
            display: none;
        }

.mx_EncryptionCard_buttons {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: var(--cpd-space-4x);
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
}
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */
    .mx_EncryptionCard_emphasisedContent span {
        font: var(--cpd-font-body-md-medium);
        text-align: center;
    }
}
@layer app-web{

/*
 * Copyright 2025 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

.mx_RecoveryPanelOutOfSync {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-2x);
}
}
@layer app-web{

/*
 * Copyright 2024 New Vector Ltd.
 *
 * SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
 * Please see LICENSE files in the repository root for full details.
 */

/* Red text for the "Do not close this window" warning */
.mx_ResetIdentityPanel_warning {
    color: var(--cpd-color-text-critical-primary);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsBanner {
    background: #f4f6fa;
    background: var(--system, #f4f6fa);
    border-radius: 8px;
    padding: 12px 16px;
    gap: 12px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

    .mx_SettingsBanner .mx_SettingsBanner_content {
        margin: 0;
    }

    .mx_SettingsBanner .mx_AccessibleButton {
        white-space: nowrap;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsIndent {
    padding-left: 16px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 12px;
}
}
@layer app-web{

/*
Copyright 2023, 2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsSection {
    --SettingsTab_section-margin-bottom-preferences-labs: 30px;
    --SettingsTab_heading_nth_child-margin-top: 30px;
    --SettingsTab_tooltip-max-width: 20px; /* So it fits in the space provided by the page */

    color: var(--timeline-text-color);
}

    /* Compound links carry data-kind and provide their own colour. */
    .mx_SettingsSection a:not([data-kind]) {
        color: #0086e6;
        color: var(--links, #0086e6);
    }

    .mx_SettingsSection.mx_SettingsSection_newUi {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-6x);
        -webkit-box-align: start;
            -ms-flex-align: start;
                align-items: start;
    }

    .mx_SettingsSection .mx_SettingsSection_header {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-3x);
        color: var(--cpd-color-text-secondary);
    }

.mx_SettingsSection_subSections {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-gap: var(--cpd-space-8x);
    gap: var(--cpd-space-8x);

    margin: var(--cpd-space-4x) 0;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SettingsTab {
    --SettingsTab_tooltip-max-width: 120px; /* So it fits in the space provided by the page */

    color: var(--timeline-text-color);
}

    /* Compound links carry data-kind and provide their own colour. */
    .mx_SettingsTab a:not([data-kind]) {
        color: #0086e6;
        color: var(--links, #0086e6);
    }

    .mx_SettingsTab form {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-3x);
        -webkit-box-flex: 1;
            -ms-flex-positive: 1;
                flex-grow: 1;
    }

    /* never want full width buttons
    event when other content is 100% width */
    .mx_SettingsTab .mx_AccessibleButton {
        -ms-flex-item-align: start;
            align-self: flex-start;
        justify-self: flex-start;
    }

    .mx_SettingsTab .mx_Field {
        margin: 0;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
    }

.mx_SettingsTab_warningText {
    color: #ff5b55;
    color: var(--alert, #ff5b55);
}

.mx_SettingsTab_subsectionText {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    font: var(--cpd-font-body-md-regular);
    display: block;
    margin-top: 10px;
    -webkit-margin-end: 80px;
            margin-inline-end: 80px; /* Align with the rest of the view */
    margin-bottom: 10px;
    -webkit-margin-start: 0;
            margin-inline-start: 0;
}

.mx_SettingsTab_section {

    margin-bottom: var(--cpd-space-6x);
}

    .mx_SettingsTab_section .mx_SettingsFlag {
        -webkit-margin-end: 80px;
                margin-inline-end: 80px;
        margin-bottom: 10px;
    }

        .mx_SettingsTab_section .mx_SettingsFlag .mx_SettingsFlag_label {
            vertical-align: middle;
            display: inline-block;
            max-width: calc(100% - 3rem); /* Force word wrap instead of colliding with the switch */
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
        }

        .mx_SettingsTab_section .mx_SettingsFlag .mx_ToggleSwitch {
            float: inline-end;
        }

    .mx_SettingsTab_section > p {
        -webkit-margin-end: 80px;
                margin-inline-end: 80px;
    }

    .mx_SettingsTab_section.mx_SettingsTab_subsectionText .mx_SettingsFlag {
        -webkit-margin-end: 0 !important;
                margin-inline-end: 0 !important;
    }

.mx_SettingsTab_sections {
    display: grid;
    grid-template-columns: 1fr;
    grid-gap: var(--cpd-space-8x);
    gap: var(--cpd-space-8x);

    padding-bottom: var(--cpd-space-4x);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_NotificationSettingsTab_notificationsSection {
    width: 360px;
}

    .mx_NotificationSettingsTab_notificationsSection .mx_StyledRadioButton {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: reverse;
            -ms-flex-direction: row-reverse;
                flex-direction: row-reverse;
        color: var(--timeline-text-color);
        font-size: 0.9375rem;
        line-height: 1.125rem;
        font-weight: var(--cpd-font-weight-semibold);
        margin-top: 16px;
        position: relative;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_NotificationSettingsTab_notificationsSection .mx_StyledRadioButton input + div {
            margin-top: 8px;
        }

        .mx_NotificationSettingsTab_notificationsSection .mx_StyledRadioButton .mx_NotificationSettingsTab_microCopy {
            color: #2e2f32;
            color: var(--secondary-content, #2e2f32);
            font-weight: normal;
            font-size: 0.75rem;
            line-height: 0.9375rem;
            margin-right: 32px;
        }

input[type="file"].mx_NotificationSound_soundUpload {
    display: none;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2023 Nordeck IT + Consulting GmbH

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PeopleRoomSettingsTab_knock {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-top: var(--cpd-space-2x);
}

.mx_PeopleRoomSettingsTab_content {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    margin: 0 var(--cpd-space-4x);
}

.mx_PeopleRoomSettingsTab_avatar {
    -ms-flex-item-align: start;
        align-self: flex-start;
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

.mx_PeopleRoomSettingsTab_name {
    font-weight: var(--cpd-font-weight-semibold);
}

.mx_PeopleRoomSettingsTab_timestamp {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    margin-left: var(--cpd-space-1x);
}

.mx_PeopleRoomSettingsTab_userId {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    display: block;
    font-size: var(--cpd-font-size-body-sm);
}

.mx_PeopleRoomSettingsTab_seeMoreOrLess {
    margin: var(--cpd-space-3x) 0 0;
}

.mx_PeopleRoomSettingsTab_action {
    -ms-flex-negative: 0;
        flex-shrink: 0;
}

    .mx_PeopleRoomSettingsTab_action + .mx_PeopleRoomSettingsTab_action {
        margin-left: var(--cpd-space-3x);
    }

.mx_PeopleRoomSettingsTab_paragraph {
    margin: 0;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_RolesRoomSettingsTab_bannedList {
    margin-bottom: 0;
}

.mx_RolesRoomSettingsTab_unbanBtn {
    margin-right: 10px;
    margin-bottom: 5px;
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SecurityRoomSettingsTab_advancedSection {
    margin-top: var(--cpd-space-4x);
}

.mx_SecurityRoomSettingsTab_warning {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-column-gap: var(--cpd-space-1x);
       -moz-column-gap: var(--cpd-space-1x);
            column-gap: var(--cpd-space-1x);
}

    .mx_SecurityRoomSettingsTab_warning svg {
        color: #ff0064; /* Match legacy icon colour until redesign */
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020, 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Field.mx_AppearanceUserSettingsTab_checkboxControlledField {
    width: 256px;
    /* Line up with Settings field toggle button */
    -webkit-margin-start: 0;
            margin-inline-start: 0;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2019 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_HelpUserSettingsTab_accessTokenDetails {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_KeyboardShortcut_shortcutList {
    margin: 0;
    padding: 0;
    width: 100%;
    display: grid;
    grid-gap: var(--cpd-space-1x);
    gap: var(--cpd-space-1x);
}

.mx_KeyboardShortcut_shortcutRow,
.mx_KeyboardShortcut {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

.mx_KeyboardShortcut_shortcutRow {
    -webkit-column-gap: var(--cpd-space-2x);
       -moz-column-gap: var(--cpd-space-2x);
            column-gap: var(--cpd-space-2x);
}

.mx_KeyboardShortcut {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-column-gap: var(--cpd-space-1x);
       -moz-column-gap: var(--cpd-space-1x);
            column-gap: var(--cpd-space-1x);
}
}
@layer app-web{

/*
Copyright 2025 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MediaPreviewAccountSetting_Radio {
    margin: var(--cpd-space-1x) 0;
}

.mx_MediaPreviewAccountSetting {
    margin-top: var(--cpd-space-1x);
}

.mx_MediaPreviewAccountSetting_RadioHelp {
    /* !important because it's overriding compound help message */
    margin-top: 0 !important;
    margin-bottom: var(--cpd-space-1x);
}

.mx_MediaPreviewAccountSetting_Form {
    width: 100%;
}

.mx_MediaPreviewAccountSetting_ToggleSwitch {
    font: var(--cpd-font-body-md-medium);
    letter-spacing: var(--cpd-font-letter-spacing-body-md);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_MjolnirUserSettingsTab_listItem {
    margin-bottom: 2px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2024 The Matrix.org Foundation C.I.C.
Copyright 2019 New Vector Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_PreferencesUserSettingsTab_section_hint {
    font: var(--cpd-font-body-sm-regular);
    color: var(--cpd-color-text-secondary);
}
}
@layer app-web{

/*
Copyright 2019-2024 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SecurityUserSettingsTab_bulkOptions {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-column-gap: var(--cpd-space-2x);
       -moz-column-gap: var(--cpd-space-2x);
            column-gap: var(--cpd-space-2x);
}

.mx_SecurityUserSettingsTab_ignoredUsers {
    padding-left: 0;
    margin: 0;
    list-style: none;
}

.mx_SecurityUserSettingsTab_ignoredUser {
    margin-bottom: var(--cpd-space-1x);
}

.mx_SecurityUserSettingsTab_ignoredUser .mx_AccessibleButton {
    margin-right: var(--cpd-space-2x);
}

.mx_SecurityUserSettingsTab_warning {
    color: #ff5b55;
    color: var(--alert, #ff5b55);
}

    .mx_SecurityUserSettingsTab_warning svg {
        width: 24px;
        height: 24px;
        margin-right: var(--cpd-space-4x);
        color: #ff5b55;
        color: var(--alert, #ff5b55);
    }

form.mx_SecurityUserSettingsTab_posthogSection {
    /* Inhibit compound spacing here as it clashes with pre-compound UI */
    display: contents !important;
}
}
@layer app-web{

/*
Copyright 2024,2025 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SidebarUserSettingsTab_homeAllRoomsCheckbox {
    margin-left: 24px;
}

    .mx_SidebarUserSettingsTab_homeAllRoomsCheckbox + div {
        margin-left: 48px;
    }

.mx_SidebarUserSettingsTab_icon {
    margin-right: var(--cpd-space-2x);
    margin-top: auto;
    margin-bottom: auto;
}

.mx_SidebarUserSettingsTab_checkbox label {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_SpaceBasicSettings .mx_Field {
        margin: 24px 0;
    }

    .mx_SpaceBasicSettings .mx_SpaceBasicSettings_avatarContainer {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin-top: 24px;
    }

        .mx_SpaceBasicSettings .mx_SpaceBasicSettings_avatarContainer .mx_SpaceBasicSettings_avatar {
            height: 80px;
            width: 80px;
            background-color: #2e2f32;
            background-color: var(--tertiary-content, #2e2f32);
            border-radius: 16px;
            -o-object-fit: cover;
               object-fit: cover;
        }

            .mx_SpaceBasicSettings .mx_SpaceBasicSettings_avatarContainer .mx_SpaceBasicSettings_avatar svg {
                width: 20px;
                height: 20px;
                padding: 30px;
                color: #ffffff; /* white icon fill */
            }

        .mx_SpaceBasicSettings .mx_SpaceBasicSettings_avatarContainer > input[type="file"] {
            display: none;
        }

        .mx_SpaceBasicSettings .mx_SpaceBasicSettings_avatarContainer > .mx_AccessibleButton_kind_link {
            display: inline-block;
            margin: auto 18px;
            color: #0086e6;
            color: var(--links, #0086e6);
            font: var(--cpd-font-body-md-regular);
        }

        .mx_SpaceBasicSettings .mx_SpaceBasicSettings_avatarContainer > .mx_SpaceBasicSettings_avatar_remove {
            color: #ff5b55;
            color: var(--alert, #ff5b55);
        }

    .mx_SpaceBasicSettings .mx_AccessibleButton_hasKind {
        margin-left: auto;
        display: block;
        width: -webkit-min-content;
        width: -moz-min-content;
        width: min-content;
    }

    .mx_SpaceBasicSettings .mx_AccessibleButton_disabled {
        cursor: not-allowed;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_SpaceChildrenPicker {
    margin: 16px 0;
}

    .mx_SpaceChildrenPicker .mx_StyledRadioButton + .mx_StyledRadioButton {
        margin-top: 16px;
    }

    .mx_SpaceChildrenPicker .mx_SearchBox {
        /* To match the space around the title */
        margin: 0 0 15px 0;
        -webkit-box-flex: 0;
            -ms-flex-positive: 0;
                flex-grow: 0;
        border-radius: 8px;
    }

    .mx_SpaceChildrenPicker .mx_SpaceChildrenPicker_noResults {
        display: block;
        margin-top: 24px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    /* background blur everything except SpacePanel */
    .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu_background {
        background-color: var(--sidebar-color-50pct);
        opacity: 0.6;
        left: 68px;
    }

    .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu {
        padding: 24px;
        width: 480px;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        background-color: var(--timeline-background-color, var(--cpd-color-bg-canvas-default));
        position: relative;
    }
            .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu > div > h2 {
                font: var(--cpd-font-heading-sm-semibold);
                font-size: 1.125rem;
                margin-top: 4px;
            }

            .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu > div > p {
                font-size: 0.9375rem;
                color: #2e2f32;
                color: var(--secondary-content, #2e2f32);
            }

        .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu .mx_SpaceCreateMenu_back {
            width: 24px;
            height: 24px;
            padding: var(--cpd-space-0-5x);
            background-color: var(--roomlist-highlights-color);
            border-radius: 14px;
            margin-bottom: 12px;
        }

            .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu .mx_SpaceCreateMenu_back svg {
                color: #2e2f32;
                color: var(--tertiary-content, #2e2f32);
            }

        .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu .mx_AccessibleButton_kind_primary {
            padding: 8px 22px;
            margin-left: auto;
            display: block;
            width: -webkit-min-content;
            width: -moz-min-content;
            width: min-content;
        }

        .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu .mx_AccessibleButton_disabled {
            cursor: not-allowed;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_InlineTermsAgreement_cbContainer {
    margin-top: var(--cpd-space-4x);
    margin-bottom: 10px;
    font: var(--cpd-font-body-md-regular);
}

    .mx_InlineTermsAgreement_cbContainer a {
        color: #0dbd8b;
        color: var(--accent-color, #0dbd8b);
        text-decoration: none;
    }

    .mx_InlineTermsAgreement_cbContainer .mx_InlineTermsAgreement_checkbox {
        margin-top: 10px;
    }

        .mx_InlineTermsAgreement_cbContainer .mx_InlineTermsAgreement_checkbox input {
            vertical-align: text-bottom;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_AnalyticsToast .mx_AccessibleButton_kind_danger_outline {
        background-color: #0dbd8b;
        background-color: var(--accent-color, #0dbd8b);
        color: #ffffff;
        border: 1px solid #0dbd8b;
        border: 1px solid var(--accent-color, #0dbd8b);
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_AnalyticsToast .mx_AccessibleButton_kind_primary {
        background-color: #0dbd8b;
        background-color: var(--accent-color, #0dbd8b);
        color: #ffffff;
        border: 1px solid #0dbd8b;
        border: 1px solid var(--accent-color, #0dbd8b);
        font-weight: var(--cpd-font-weight-semibold);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_IncomingCallToast {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    pointer-events: initial; /* restore pointer events so the user can accept/decline */
}

    .mx_IncomingCallToast .mx_IncomingCallToast_content {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        gap: var(--cpd-space-4x);
        width: 100%;
        overflow: hidden;
    }

        .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_title {
            display: grid;
            grid-template-columns: auto 1fr auto;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            grid-gap: var(--cpd-space-2x);
            gap: var(--cpd-space-2x);
        }

            .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_title h2 {
                margin: 0;
            }

            .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_title .mx_IncomingCallToast_expandButton {
                padding: var(--cpd-space-1x);
                color: var(--cpd-color-icon-secondary);
                -webkit-transition: color 0.1s;
                transition: color 0.1s;
            }

                .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_title .mx_IncomingCallToast_expandButton:hover {
                    color: var(--cpd-color-icon-primary);
                }

                .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_title .mx_IncomingCallToast_expandButton > svg {
                    display: block;
                }

        .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_avatars {
            display: inline-block;
            vertical-align: top;
        }

        .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_buttons {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            gap: var(--cpd-space-2x);
            -webkit-padding-before: var(--cpd-space-2x);
                    padding-block-start: var(--cpd-space-2x);
        }

        .mx_IncomingCallToast .mx_IncomingCallToast_content .mx_IncomingCallToast_actionButton {
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
            min-width: 131px;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_IncomingLegacyCallToast {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    pointer-events: initial; /* restore pointer events so the user can accept/decline */
}

    .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_content {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        margin-left: 8px;
    }

        .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_content .mx_LegacyCallEvent_caller {
            font-weight: bold;
            font-size: 0.9375rem;
            line-height: 1.125rem;

            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;

            margin-top: 2px;
            margin-right: 6px;

            max-width: 200px;
        }

        .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_content .mx_LegacyCallEvent_type {
            font-size: 0.75rem;
            line-height: 0.9375rem;
            color: #2e2f32;
            color: var(--tertiary-content, #2e2f32);

            margin-top: 4px;
            margin-bottom: 6px;

            display: -webkit-box;

            display: -ms-flexbox;

            display: flex;
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
        }

        .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_content .mx_IncomingLegacyCallToast_buttons {
            margin-top: 8px;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
            gap: 12px;
        }

            .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_content .mx_IncomingLegacyCallToast_buttons .mx_IncomingLegacyCallToast_button {
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;
                font-weight: var(--cpd-font-weight-semibold);
                height: 1.5rem;
                line-height: 1.5rem;
                margin-right: 0;
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
            }
                .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_content .mx_IncomingLegacyCallToast_buttons .mx_IncomingLegacyCallToast_button svg {
        width: 16px;
        height: 16px;
        display: inline-block;
        color: white;
        margin-right: 8px;
        vertical-align: middle;
    }
                .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_content .mx_IncomingLegacyCallToast_buttons .mx_IncomingLegacyCallToast_button{
                padding: 8px;
                -ms-flex-negative: 0;
                    flex-shrink: 0;
                -webkit-box-flex: 1;
                    -ms-flex-positive: 1;
                        flex-grow: 1;
                font-size: 0.9375rem;
}

    .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_iconButton {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        height: 20px;
        width: 20px;
    }

        .mx_IncomingLegacyCallToast .mx_IncomingLegacyCallToast_iconButton svg {
            height: inherit;
            width: inherit;
            color: #2e2f32;
            color: var(--tertiary-content, #2e2f32);
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
    .mx_NonUrgentEchoFailureToast svg {
        display: inline-block;
        width: 1.125rem;
        height: 1.125rem;
        color: #fff; /* we know that non-urgent toasts are always styled the same */
        margin-right: 8px;
    }

    .mx_NonUrgentEchoFailureToast span {
        /* includes the i18n block */
        vertical-align: middle;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021-2023 x The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Heading_h1,
.mx_Heading_h2,
.mx_Heading_h3,
.mx_Heading_h4 {
    margin-inline: unset;
    margin-block: unset;
    color: var(--timeline-text-color);
}

.mx_Heading_h1 {
    font: var(--cpd-font-heading-xl-semibold);
}

.mx_Heading_h2 {
    font: var(--cpd-font-heading-lg-semibold);
}

.mx_Heading_h3 {
    font: var(--cpd-font-heading-md-semibold);
    font-weight: var(--cpd-font-weight-semibold);
}

.mx_Heading_h4 {
    font: var(--cpd-font-heading-sm-semibold);
    font-weight: var(--cpd-font-weight-semibold);
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2019 New Vector Ltd.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_VerificationShowSas_decimalSas {
    text-align: center;
    font-weight: bold;
    padding-left: 3px;
    padding-right: 3px;
}

.mx_VerificationShowSas_decimalSas span {
    margin-left: 5px;
    margin-right: 5px;
}

.mx_VerificationShowSas_emojiSas {
    margin: 25px 0;
}

.mx_VerificationShowSas_buttonRow {
    text-align: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 9px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021, 2022 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2020, 2021 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

/* data-whatintent makes more sense here semantically but then the tooltip would stay visible without the button */
/* which looks broken, so we match the behaviour of tooltips which is fine too. */
[data-whatinput="mouse"] .mx_LegacyCallViewButtons.mx_LegacyCallViewButtons_hidden {
    opacity: 0.001; /* opacity 0 can cause a re-layout */
    pointer-events: none;
}

.mx_LegacyCallViewButtons {
    --LegacyCallViewButtons_dropdownButton-size: 16px;

    position: absolute;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    bottom: 32px;
    opacity: 1;
    -webkit-transition: opacity 0.5s;
    transition: opacity 0.5s;
    z-index: 200; /* To be above _all_ feeds */
    gap: 18px;
}

    .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button {
        cursor: pointer;

        background-color: #ffffff;

        border-radius: 100%;
        height: 40px;
        width: 40px;

        display: -webkit-box;

        display: -ms-flexbox;

        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;

        position: relative;

        -webkit-box-shadow: 0px 4px 4px 0px #00000026;

                box-shadow: 0px 4px 4px 0px #00000026;
        /* State buttons */
        /* Stateless buttons */
        /* Invisible state */
    } /* Same on both themes */

        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button svg {
            display: inline-block;

            color: #2e2f32;

            height: 24px;
            width: 24px;
        }

        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_dropdownButton {
            width: var(--LegacyCallViewButtons_dropdownButton-size);
            height: var(--LegacyCallViewButtons_dropdownButton-size);

            position: absolute;
            right: 0;
            bottom: 0;
        }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_dropdownButton svg {
                width: 16px;
                height: 16px;
            }

        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_mic svg {
            height: 20px;
            width: 20px;
        }

        /* State buttons */
        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_on {
            background-color: #ffffff;
        }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_on svg {
                color: #2e2f32;
            }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_on.mx_LegacyCallViewButtons_button_screensharing {
                background-color: #0dbd8b;
                background-color: var(--accent-color, #0dbd8b);
            }

                .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_on.mx_LegacyCallViewButtons_button_screensharing svg {
                    color: white; /* Same on both themes */
                }

        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_off {
            background-color: #2e2f32;
        }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_off svg {
                color: #ffffff;
            }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_off.mx_LegacyCallViewButtons_button_screensharing,
            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_off.mx_LegacyCallViewButtons_button_sidebar {
                background-color: #ffffff;
            }

                .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_off.mx_LegacyCallViewButtons_button_screensharing svg, .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_off.mx_LegacyCallViewButtons_button_sidebar svg {
                    color: #2e2f32;
                }

        /* Stateless buttons */
        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_hangup {
            background-color: #ff5b55;
            background-color: var(--alert, #ff5b55);
        }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_hangup svg {
                color: white; /* Same on both themes */
            }

        /* Invisible state */
        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_invisible {
            visibility: hidden;
            pointer-events: none;
            position: absolute;
        }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CallDuration {
    color: #2e2f32;
    color: var(--secondary-content, #2e2f32);
    font-size: 0.75rem;
    white-space: nowrap;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_CallView {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    min-height: 0;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;

    background-color: var(--roomlist-background-color);
}

    .mx_CallView .mx_AppTile {
        width: auto;
        height: 100%;
        border: none;
        border-radius: inherit;
        background-color: #15191e;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DialPad {
    display: grid;
    grid-row-gap: 16px;
    row-gap: 16px;
    grid-column-gap: 0px;
    -webkit-column-gap: 0px;
       -moz-column-gap: 0px;
            column-gap: 0px;
    margin-top: 24px;
    margin-left: auto;
    margin-right: auto;

    /* squeeze the dial pad buttons together horizontally */
    grid-template-columns: repeat(3, 1fr);
}

.mx_DialPad_button {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;

    width: 40px;
    height: 40px;
    background-color: #6f7882;
    background-color: var(--quinary-content, #6f7882);
    border-radius: 40px;
    font-size: 18px;
    font-weight: var(--cpd-font-weight-semibold);
    text-align: center;
    vertical-align: middle;
    margin-left: auto;
    margin-right: auto;
}

.mx_DialPad_button .mx_DialPad_buttonSubText {
    font-size: 8px;
}

.mx_DialPad_dialButton {
    /* Always show the dial button in the center grid column */
    grid-column: 2;
    background-color: #0dbd8b;
    background-color: var(--accent-color, #0dbd8b);
}

    .mx_DialPad_dialButton svg {
        display: inline-block;
        height: 20px;
        width: 20px;
        padding: 10px;
        color: #fff; /* on all themes */
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_DialPadContextMenu_dialPad .mx_DialPad {
    row-gap: 16px;
    -webkit-column-gap: 32px;
       -moz-column-gap: 32px;
            column-gap: 32px;
}

.mx_DialPadContextMenuWrapper {
    padding: 15px;
}

.mx_DialPadContextMenu_header {
    border: none;
    margin-top: 32px;
    margin-left: 20px;
    margin-right: 20px;

    /* a separator between the input line and the dial buttons */
    border-bottom: 1px solid #6f7882;
    border-bottom: 1px solid var(--quaternary-content, #6f7882);
    -webkit-transition: border-bottom 0.25s;
    transition: border-bottom 0.25s;
}

.mx_DialPadContextMenu_cancel {
    width: 20px;
    height: 20px;
    padding: var(--cpd-space-1x);
    border-radius: 14px;
    background-color: var(--cpd-color-bg-subtle-secondary);
}
    .mx_DialPadContextMenu_cancel:hover {
        background-color: var(--cpd-color-bg-subtle-primary);
    }
    .mx_DialPadContextMenu_cancel svg {
        width: inherit;
        height: inherit;
        vertical-align: top;
        color: var(--cpd-color-icon-secondary);
    }
    .mx_DialPadContextMenu_cancel{
    float: right;
}

.mx_DialPadContextMenu_header:focus-within {
    border-bottom: 1px solid #0dbd8b;
    border-bottom: 1px solid var(--accent-color, #0dbd8b);
}

.mx_DialPadContextMenu_title {
    color: #61708b;
    font-size: 12px;
    font-weight: var(--cpd-font-weight-semibold);
}

.mx_DialPadContextMenu_dialled {
    height: 1.5em;
    font-size: 18px;
    font-weight: var(--cpd-font-weight-semibold);
    border: none;
    margin: 0px;
}
.mx_DialPadContextMenu_dialled input {
    font-size: 18px;
    font-weight: var(--cpd-font-weight-semibold);
    overflow: hidden;
    max-width: 185px;
    text-align: left;
    padding: 8px 0px;
    background-color: rgb(0, 0, 0, 0);
}

.mx_DialPadContextMenu_dialPad {
    margin: 16px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2020 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_Dialog_dialPadWrapper .mx_Dialog {
    padding: 0px;
}

.mx_DialPadModal {
    width: 292px;
    height: 370px;
    padding: 16px 0px 0px 0px;
}

.mx_DialPadModal_header {
    margin-top: 32px;
    margin-left: 40px;
    margin-right: 40px;

    /* a separator between the input line and the dial buttons */
    border-bottom: 1px solid #6f7882;
    border-bottom: 1px solid var(--quaternary-content, #6f7882);
    -webkit-transition: border-bottom 0.25s;
    transition: border-bottom 0.25s;
}

.mx_DialPadModal_header:focus-within {
    border-bottom: 1px solid #0dbd8b;
    border-bottom: 1px solid var(--accent-color, #0dbd8b);
}

.mx_DialPadModal_title {
    color: #61708b;
    font-size: 12px;
    font-weight: var(--cpd-font-weight-semibold);
}

.mx_DialPadModal_cancel {
    width: 20px;
    height: 20px;
    padding: var(--cpd-space-1x);
    border-radius: 14px;
    background-color: var(--cpd-color-bg-subtle-secondary);
}
    .mx_DialPadModal_cancel:hover {
        background-color: var(--cpd-color-bg-subtle-primary);
    }
    .mx_DialPadModal_cancel svg {
        width: inherit;
        height: inherit;
        vertical-align: top;
        color: var(--cpd-color-icon-secondary);
    }
    .mx_DialPadModal_cancel{
    float: right;
    margin-right: 16px;
}

.mx_DialPadModal_field {
    border: none;
    margin: 0px;
    height: 30px;
}

.mx_DialPadModal_field .mx_Field_postfix {
    /* Remove border separator between postfix and field content */
    border-left: none;
}

.mx_DialPadModal_field input {
    font-size: 18px;
    font-weight: var(--cpd-font-weight-semibold);
}

.mx_DialPadModal_dialPad {
    margin-left: 16px;
    margin-right: 16px;
    margin-top: 16px;
}
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021, 2022 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2020, 2021 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LegacyCallView {
    border-radius: 8px;
    background-color: var(--roomlist-background-color);
    padding-left: 8px;
    padding-right: 8px;
    /* XXX: PiPContainer sets pointer-events: none - should probably be set back in a better place */
    pointer-events: initial;
}

    .mx_LegacyCallView .mx_LegacyCallView_toast {
        position: absolute;
        top: 74px;

        padding: 4px 8px;

        border-radius: 4px;
        z-index: 50;

        /* Same on both themes */
        color: white;
        background-color: #17191c;
    }

    .mx_LegacyCallView .mx_LegacyCallView_content_wrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;

        width: 100%;
        height: 100%;

        overflow: hidden;
    }

        .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content {
            position: relative;

            display: -webkit-box;

            display: -ms-flexbox;

            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;

            -webkit-box-flex: 1;

                -ms-flex: 1;

                    flex: 1;
            overflow: hidden;

            border-radius: 10px;

            padding: 10px;
            padding-right: calc(20% + 20px); /* Space for the sidebar */

            background-color: #21262c;
        }

            .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content .mx_LegacyCallView_status {
                z-index: 50;
                color: #ffffff;
            }

            .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content .mx_LegacyCallView_avatarsContainer {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-orient: horizontal;
                -webkit-box-direction: normal;
                    -ms-flex-direction: row;
                        flex-direction: row;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                -webkit-box-pack: center;
                    -ms-flex-pack: center;
                        justify-content: center;
            }

                .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content .mx_LegacyCallView_avatarsContainer div {
                    margin-left: 12px;
                    margin-right: 12px;
                }

            .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content .mx_LegacyCallView_holdBackground {
                position: absolute;
                left: 0;
                right: 0;

                width: 100%;
                height: 100%;

                background-repeat: no-repeat;
                background-size: cover;
                background-position: center;
                -webkit-filter: blur(20px);
                        filter: blur(20px);
            }

                .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content .mx_LegacyCallView_holdBackground::after {
                    content: "";
                    display: block;
                    position: absolute;
                    width: 100%;
                    height: 100%;
                    left: 0;
                    right: 0;
                    background-color: rgb(0, 0, 0, 0.6);
                }

            .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content.mx_LegacyCallView_content_hold .mx_LegacyCallView_status {
                font-weight: bold;
                text-align: center;
            }

                .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content.mx_LegacyCallView_content_hold .mx_LegacyCallView_status::before {
                    display: block;
                    margin-left: auto;
                    margin-right: auto;
                    content: "";
                    width: 40px;
                    height: 40px;
                    background-image: url(../../img/voip/paused.b00e0b4.svg);
                    background-position: center;
                    background-size: cover;
                }

                .mx_LegacyCallView_pip .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content.mx_LegacyCallView_content_hold .mx_LegacyCallView_status::before {
                    width: 30px;
                    height: 30px;
                }

    .mx_LegacyCallView:not(.mx_LegacyCallView_sidebar) .mx_LegacyCallView_content {
        padding: 0;
        width: 100%;
        height: 100%;
    }

        .mx_LegacyCallView:not(.mx_LegacyCallView_sidebar) .mx_LegacyCallView_content .mx_VideoFeed_primary {
            aspect-ratio: unset;
            border: 0;

            width: 100%;
            height: 100%;
        }

    .mx_LegacyCallView.mx_LegacyCallView_pip {
        width: 320px;
        padding-bottom: 8px;

        border-radius: 8px;

        background-color: #f4f6fa;

        background-color: var(--system, #f4f6fa);
        -webkit-box-shadow: 0px 4px 20px rgb(0, 0, 0, 0.2);
                box-shadow: 0px 4px 20px rgb(0, 0, 0, 0.2);
    }

        .mx_LegacyCallView.mx_LegacyCallView_pip .mx_LegacyCallViewButtons {
            bottom: 13px;
        }

            .mx_LegacyCallView.mx_LegacyCallView_pip .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button {
                width: 34px;
                height: 34px;
            }

                .mx_LegacyCallView.mx_LegacyCallView_pip .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_dropdownButton {
                    width: var(--LegacyCallViewButtons_dropdownButton-size);
                    height: var(--LegacyCallViewButtons_dropdownButton-size);
                }

                .mx_LegacyCallView.mx_LegacyCallView_pip .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button::before {
                    width: 22px;
                    height: 22px;
                }

        .mx_LegacyCallView.mx_LegacyCallView_pip .mx_LegacyCallView_content {
            min-height: 180px;
        }

    .mx_LegacyCallView.mx_LegacyCallView_large {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;

        -webkit-box-flex: 1;

            -ms-flex: 1;

                flex: 1;

        padding-bottom: 10px;

        margin: 8px;

        margin: var(--container-gap-width);
        /* The left side gap is fully handled by this margin. To prohibit bleeding on webkit browser. */
        margin-right: calc(8px / 2);
        margin-right: calc(var(--container-gap-width) / 2);
        margin-bottom: 10px;
    }

    .mx_LegacyCallView.mx_LegacyCallView_belowWidget {
        margin-top: 0;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LegacyCallViewForRoom {
    overflow: hidden;
}

    .mx_LegacyCallViewForRoom .mx_LegacyCallViewForRoom_ResizeWrapper {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

        .mx_LegacyCallViewForRoom .mx_LegacyCallViewForRoom_ResizeWrapper:hover .mx_LegacyCallViewForRoom_ResizeHandle {
            /* Need to use important to override element style attributes */
            /* set by re-resizable */
            width: 100% !important;

            display: -webkit-box;

            display: -ms-flexbox;

            display: flex;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
        }

            .mx_LegacyCallViewForRoom .mx_LegacyCallViewForRoom_ResizeWrapper:hover .mx_LegacyCallViewForRoom_ResizeHandle::after {
                content: "";
                border-radius: 4px;

                height: 4px;
                width: 100%;
                max-width: 64px;

                background-color: var(--timeline-text-color);
            }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021, 2022 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LegacyCallViewHeader {
    height: 44px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -ms-flex-negative: 0;
        flex-shrink: 0;
    width: 100%;
}

    .mx_LegacyCallViewHeader.mx_LegacyCallViewHeader_pip {
        cursor: -webkit-grab;
        cursor: grab;
    }

.mx_LegacyCallViewHeader_text {
    font-size: 1.2rem;
    font-weight: bold;
    vertical-align: middle;
}
    .mx_LegacyCallViewHeader_secondaryCallInfo::before {
        content: "·";
        margin-left: 6px;
        margin-right: 6px;
    }

.mx_LegacyCallViewHeader_controls {
    margin-left: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 5px;
}

.mx_LegacyCallViewHeader_button {
    display: inline-block;
    vertical-align: middle;
    cursor: pointer;
}

    .mx_LegacyCallViewHeader_button svg {
        display: inline-block;
        height: 20px;
        width: 20px;
        vertical-align: middle;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }

.mx_LegacyCallViewHeader_callInfo {
    margin-left: 12px;
    margin-right: 16px;
    overflow: hidden;
}

.mx_LegacyCallViewHeader_roomName {
    font-weight: bold;
    font-size: 12px;
    line-height: normal;
    line-height: initial;
    height: 15px;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mx_LegacyCallView_secondaryCall_roomName {
    margin-left: 4px;
}

.mx_LegacyCallViewHeader_icon {
    display: inline-block;
    margin-right: 6px;
    height: 16px;
    width: 16px;
    vertical-align: middle;
}

    .mx_LegacyCallViewHeader_icon svg {
        display: inline-block;
        vertical-align: top;

        height: 16px;
        width: 16px;
        color: #2e2f32;
        color: var(--secondary-content, #2e2f32);
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021, 2022 Šimon Brandner <simon.bra.ag@gmail.com>

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_LegacyCallViewSidebar {
    position: absolute;
    right: 10px;

    width: 20%;
    height: 100%;
    overflow: auto;

    display: -webkit-box;

    display: -ms-flexbox;

    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    gap: 12px;
}

    .mx_LegacyCallViewSidebar > .mx_VideoFeed {
        width: 100%;
        border-radius: 4px;
    }

        .mx_LegacyCallViewSidebar > .mx_VideoFeed.mx_VideoFeed_voice {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;

            background-color: #394049;
        }

    .mx_LegacyCallViewSidebar.mx_LegacyCallViewSidebar_pipMode {
        top: 16px;
        bottom: auto;
        bottom: initial;
        -webkit-box-pack: end;
            -ms-flex-pack: end;
                justify-content: flex-end;
        gap: 4px;
    }
}
@layer app-web{

/*
Copyright 2024 New Vector Ltd.
Copyright 2021, 2022 Šimon Brandner <simon.bra.ag@gmail.com>
Copyright 2015, 2016 , 2020, 2021 The Matrix.org Foundation C.I.C.

SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/

.mx_VideoFeed {
    overflow: hidden;
    position: relative;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    border: transparent 2px solid;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    border-radius: 4px;
}

    .mx_VideoFeed.mx_VideoFeed_secondary {
        position: absolute;
        right: 24px;
        bottom: 72px;
        width: 20%;
    }

    .mx_VideoFeed.mx_VideoFeed_voice {
        background-color: #27303a;
        background-color: var(--strong-input-border-color, #27303a);

        display: -webkit-box;

        display: -ms-flexbox;

        display: flex;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
    }

        .mx_VideoFeed.mx_VideoFeed_voice:not(.mx_VideoFeed_primary) {
            aspect-ratio: 16 / 9;
        }

    .mx_VideoFeed .mx_VideoFeed_video {
        height: 100%;
        width: 100%;
        border-radius: 4px;
        background-color: #000000;
    }

        .mx_VideoFeed .mx_VideoFeed_video.mx_VideoFeed_video_mirror {
            -webkit-transform: scale(-1, 1);
                    transform: scale(-1, 1);
        }

    .mx_VideoFeed .mx_VideoFeed_mic {
        position: absolute;
        left: 6px;
        bottom: 6px;
        z-index: 1;

        width: 24px;
        height: 24px;

        background-color: rgb(0, 0, 0, 0.5); /* Same on both themes */
        border-radius: 100%;
    }

        .mx_VideoFeed .mx_VideoFeed_mic svg {
            width: 16px;
            height: 16px;
            padding: 4px;
            color: white; /* Same on both themes */
        }
}
@layer app-web{
pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#383a42;background:#fafafa}.hljs-comment,.hljs-quote{color:#a0a1a7;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#a626a4}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e45649}.hljs-literal{color:#0184bb}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#50a14f}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#986801}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#4078f2}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#c18401}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}
}
@layer app-web{
/*light */
.markdown-body {
  color-scheme: light;
  /** CSS default easing. Use for hover state changes and micro-interactions. */
  /** Accelerating motion. Use for elements exiting the viewport (moving off-screen). */
  /** Smooth acceleration and deceleration. Use for elements moving or morphing within the viewport. */
  /** Decelerating motion. Use for elements entering the viewport or appearing on screen. */
  /** Constant motion with no acceleration. Use for continuous animations like progress bars or loaders. */
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  margin: 0;
  font-weight: 400;
  color: #1f2328;
  background-color: #ffffff;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
  font-size: 16px;
  line-height: 1.5;
  word-wrap: break-word;
}

.markdown-body a {
  text-decoration: underline;
  text-underline-offset: .2rem;
}

.markdown-body .octicon {
  display: inline-block;
  fill: currentColor;
  vertical-align: text-bottom;
}

.markdown-body h1:hover .anchor .octicon-link:before,
.markdown-body h2:hover .anchor .octicon-link:before,
.markdown-body h3:hover .anchor .octicon-link:before,
.markdown-body h4:hover .anchor .octicon-link:before,
.markdown-body h5:hover .anchor .octicon-link:before,
.markdown-body h6:hover .anchor .octicon-link:before {
  width: 16px;
  height: 16px;
  content: ' ';
  display: inline-block;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>");
  mask-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>");
}

.markdown-body details,
.markdown-body figcaption,
.markdown-body figure {
  display: block;
}

.markdown-body summary {
  display: list-item;
}

.markdown-body [hidden] {
  display: none !important;
}

.markdown-body a {
  background-color: rgba(0,0,0,0);
  color: #0969da;
  text-decoration: none;
}

.markdown-body abbr[title] {
  border-bottom: none;
  text-decoration: underline dotted;
}

.markdown-body b,
.markdown-body strong {
  font-weight: 600;
}

.markdown-body dfn {
  font-style: italic;
}

.markdown-body h1 {
  margin: .67em 0;
  font-weight: 600;
  padding-bottom: .3em;
  font-size: 2em;
  border-bottom: 1px solid #d1d9e0b3;
}

.markdown-body mark {
  background-color: #fff8c5;
  color: #1f2328;
}

.markdown-body small {
  font-size: 90%;
}

.markdown-body sub,
.markdown-body sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

.markdown-body sub {
  bottom: -0.25em;
}

.markdown-body sup {
  top: -0.5em;
}

.markdown-body img {
  border-style: none;
  max-width: 100%;
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
}

.markdown-body code,
.markdown-body kbd,
.markdown-body pre,
.markdown-body samp {
  font-family: monospace;
  font-size: 1em;
}

.markdown-body figure {
  margin: 1em 2.5rem;
}

.markdown-body hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  overflow: hidden;
  background: rgba(0,0,0,0);
  border-bottom: 1px solid #d1d9e0b3;
  height: .25em;
  padding: 0;
  margin: 1.5rem 0;
  background-color: #d1d9e0;
  border: 0;
}

.markdown-body input {
  font: inherit;
  margin: 0;
  overflow: visible;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

.markdown-body [type=button],
.markdown-body [type=reset],
.markdown-body [type=submit] {
  -webkit-appearance: button;
  -moz-appearance: button;
       appearance: button;
}

.markdown-body [type=checkbox],
.markdown-body [type=radio] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0;
}

.markdown-body [type=number]::-webkit-inner-spin-button,
.markdown-body [type=number]::-webkit-outer-spin-button {
  height: auto;
}

.markdown-body [type=search]::-webkit-search-cancel-button,
.markdown-body [type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
}

.markdown-body ::-webkit-input-placeholder {
  color: inherit;
  opacity: .54;
}

.markdown-body ::-webkit-file-upload-button {
  -webkit-appearance: button;
  appearance: button;
  font: inherit;
}

.markdown-body a:hover {
  text-decoration: underline;
}

.markdown-body ::-webkit-input-placeholder {
  color: #59636e;
  opacity: 1;
}

.markdown-body ::-moz-placeholder {
  color: #59636e;
  opacity: 1;
}

.markdown-body :-ms-input-placeholder {
  color: #59636e;
  opacity: 1;
}

.markdown-body ::-ms-input-placeholder {
  color: #59636e;
  opacity: 1;
}

.markdown-body ::placeholder {
  color: #59636e;
  opacity: 1;
}

.markdown-body hr::before {
  display: table;
  content: "";
}

.markdown-body hr::after {
  display: table;
  clear: both;
  content: "";
}

.markdown-body table {
  border-spacing: 0;
  border-collapse: collapse;
  display: block;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  max-width: 100%;
  overflow: auto;
  -webkit-font-feature-settings: "tnum";
          font-feature-settings: "tnum";
  font-variant: tabular-nums;
}

.markdown-body td,
.markdown-body th {
  padding: 0;
}

.markdown-body details summary {
  cursor: pointer;
}

.markdown-body a:focus,
.markdown-body [role=button]:focus,
.markdown-body input[type=radio]:focus,
.markdown-body input[type=checkbox]:focus {
  outline: 2px solid var(--borderColor-accent-emphasis);
  outline-offset: -2px;
  -webkit-box-shadow: none;
          box-shadow: none;
}

.markdown-body a:focus:not(:focus-visible),
.markdown-body [role=button]:focus:not(:focus-visible),
.markdown-body input[type=radio]:focus:not(:focus-visible),
.markdown-body input[type=checkbox]:focus:not(:focus-visible) {
  outline: solid 1px rgba(0,0,0,0);
}

.markdown-body a:focus-visible,
.markdown-body [role=button]:focus-visible,
.markdown-body input[type=radio]:focus-visible,
.markdown-body input[type=checkbox]:focus-visible {
  outline: 2px solid var(--borderColor-accent-emphasis);
  outline-offset: -2px;
  -webkit-box-shadow: none;
          box-shadow: none;
}

.markdown-body a:not([class]):focus,
.markdown-body a:not([class]):focus-visible,
.markdown-body input[type=radio]:focus,
.markdown-body input[type=radio]:focus-visible,
.markdown-body input[type=checkbox]:focus,
.markdown-body input[type=checkbox]:focus-visible {
  outline-offset: 0;
}

.markdown-body kbd {
  display: inline-block;
  padding: 0.25rem;
  font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
  line-height: 10px;
  color: #1f2328;
  vertical-align: middle;
  background-color: #f6f8fa;
  border: solid 1px var(--borderColor-muted);
  border-bottom-color: var(--borderColor-muted);
  border-radius: 6px;
  -webkit-box-shadow: inset 0 -1px 0 var(--borderColor-muted);
          box-shadow: inset 0 -1px 0 var(--borderColor-muted);
}

.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
  margin-top: 1.5rem;
  margin-bottom: 1rem;
  font-weight: 600;
  line-height: 1.25;
}

.markdown-body h2 {
  font-weight: 600;
  padding-bottom: .3em;
  font-size: 1.5em;
  border-bottom: 1px solid #d1d9e0b3;
}

.markdown-body h3 {
  font-weight: 600;
  font-size: 1.25em;
}

.markdown-body h4 {
  font-weight: 600;
  font-size: 1em;
}

.markdown-body h5 {
  font-weight: 600;
  font-size: .875em;
}

.markdown-body h6 {
  font-weight: 600;
  font-size: .85em;
  color: #59636e;
}

.markdown-body p {
  margin-top: 0;
  margin-bottom: 10px;
}

.markdown-body blockquote {
  margin: 0;
  padding: 0 1em;
  color: #59636e;
  border-left: .25em solid #d1d9e0;
}

.markdown-body ul,
.markdown-body ol {
  margin-top: 0;
  margin-bottom: 0;
  padding-left: 2em;
}

.markdown-body ol ol,
.markdown-body ul ol {
  list-style-type: lower-roman;
}

.markdown-body ul ul ol,
.markdown-body ul ol ol,
.markdown-body ol ul ol,
.markdown-body ol ol ol {
  list-style-type: lower-alpha;
}

.markdown-body dd {
  margin-left: 0;
}

.markdown-body tt,
.markdown-body code,
.markdown-body samp {
  font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
  font-size: 12px;
}

.markdown-body pre {
  margin-top: 0;
  margin-bottom: 0;
  font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
  font-size: 12px;
  word-wrap: normal;
}

.markdown-body .octicon {
  display: inline-block;
  overflow: visible !important;
  vertical-align: text-bottom;
  fill: currentColor;
}

.markdown-body input::-webkit-outer-spin-button,
.markdown-body input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
          appearance: none;
}

.markdown-body .mr-2 {
  margin-right: 0.5rem !important;
}

.markdown-body::before {
  display: table;
  content: "";
}

.markdown-body::after {
  display: table;
  clear: both;
  content: "";
}

.markdown-body>*:first-child {
  margin-top: 0 !important;
}

.markdown-body>*:last-child {
  margin-bottom: 0 !important;
}

.markdown-body a:not([href]) {
  color: inherit;
  text-decoration: none;
}

.markdown-body .absent {
  color: #d1242f;
}

.markdown-body .anchor {
  float: left;
  padding-right: 0.25rem;
  margin-left: -20px;
  line-height: 1;
}

.markdown-body .anchor:focus {
  outline: none;
}

.markdown-body p,
.markdown-body blockquote,
.markdown-body ul,
.markdown-body ol,
.markdown-body dl,
.markdown-body table,
.markdown-body pre,
.markdown-body details {
  margin-top: 0;
  margin-bottom: 1rem;
}

.markdown-body blockquote>:first-child {
  margin-top: 0;
}

.markdown-body blockquote>:last-child {
  margin-bottom: 0;
}

.markdown-body h1 .octicon-link,
.markdown-body h2 .octicon-link,
.markdown-body h3 .octicon-link,
.markdown-body h4 .octicon-link,
.markdown-body h5 .octicon-link,
.markdown-body h6 .octicon-link {
  color: #1f2328;
  vertical-align: middle;
  visibility: hidden;
}

.markdown-body h1:hover .anchor,
.markdown-body h2:hover .anchor,
.markdown-body h3:hover .anchor,
.markdown-body h4:hover .anchor,
.markdown-body h5:hover .anchor,
.markdown-body h6:hover .anchor {
  text-decoration: none;
}

.markdown-body h1:hover .anchor .octicon-link,
.markdown-body h2:hover .anchor .octicon-link,
.markdown-body h3:hover .anchor .octicon-link,
.markdown-body h4:hover .anchor .octicon-link,
.markdown-body h5:hover .anchor .octicon-link,
.markdown-body h6:hover .anchor .octicon-link {
  visibility: visible;
}

.markdown-body h1 tt,
.markdown-body h1 code,
.markdown-body h2 tt,
.markdown-body h2 code,
.markdown-body h3 tt,
.markdown-body h3 code,
.markdown-body h4 tt,
.markdown-body h4 code,
.markdown-body h5 tt,
.markdown-body h5 code,
.markdown-body h6 tt,
.markdown-body h6 code {
  padding: 0 .2em;
  font-size: inherit;
}

.markdown-body summary h1,
.markdown-body summary h2,
.markdown-body summary h3,
.markdown-body summary h4,
.markdown-body summary h5,
.markdown-body summary h6 {
  display: inline-block;
}

.markdown-body summary h1 .anchor,
.markdown-body summary h2 .anchor,
.markdown-body summary h3 .anchor,
.markdown-body summary h4 .anchor,
.markdown-body summary h5 .anchor,
.markdown-body summary h6 .anchor {
  margin-left: -40px;
}

.markdown-body summary h1,
.markdown-body summary h2 {
  padding-bottom: 0;
  border-bottom: 0;
}

.markdown-body ul.no-list,
.markdown-body ol.no-list {
  padding: 0;
  list-style-type: none;
}

.markdown-body ol[type="a s"] {
  list-style-type: lower-alpha;
}

.markdown-body ol[type="A s"] {
  list-style-type: upper-alpha;
}

.markdown-body ol[type="i s"] {
  list-style-type: lower-roman;
}

.markdown-body ol[type="I s"] {
  list-style-type: upper-roman;
}

.markdown-body ol[type="1"] {
  list-style-type: decimal;
}

.markdown-body div>ol:not([type]) {
  list-style-type: decimal;
}

.markdown-body ul ul,
.markdown-body ul ol,
.markdown-body ol ol,
.markdown-body ol ul {
  margin-top: 0;
  margin-bottom: 0;
}

.markdown-body li>p {
  margin-top: 1rem;
}

.markdown-body li+li {
  margin-top: .25em;
}

.markdown-body dl {
  padding: 0;
}

.markdown-body dl dt {
  padding: 0;
  margin-top: 1rem;
  font-size: 1em;
  font-style: italic;
  font-weight: 600;
}

.markdown-body dl dd {
  padding: 0 1rem;
  margin-bottom: 1rem;
}

.markdown-body table th {
  font-weight: 600;
}

.markdown-body table th,
.markdown-body table td {
  padding: 6px 13px;
  border: 1px solid #d1d9e0;
}

.markdown-body table td>:last-child {
  margin-bottom: 0;
}

.markdown-body table tr {
  background-color: #ffffff;
  border-top: 1px solid #d1d9e0b3;
}

.markdown-body table tr:nth-child(2n) {
  background-color: #f6f8fa;
}

.markdown-body table img {
  background-color: rgba(0,0,0,0);
}

.markdown-body img[align=right] {
  padding-left: 20px;
}

.markdown-body img[align=left] {
  padding-right: 20px;
}

.markdown-body .emoji {
  max-width: none;
  vertical-align: text-top;
  background-color: rgba(0,0,0,0);
}

.markdown-body span.frame {
  display: block;
  overflow: hidden;
}

.markdown-body span.frame>span {
  display: block;
  float: left;
  width: auto;
  padding: 7px;
  margin: 13px 0 0;
  overflow: hidden;
  border: 1px solid #d1d9e0;
}

.markdown-body span.frame span img {
  display: block;
  float: left;
}

.markdown-body span.frame span span {
  display: block;
  padding: 5px 0 0;
  clear: both;
  color: #1f2328;
}

.markdown-body span.align-center {
  display: block;
  overflow: hidden;
  clear: both;
}

.markdown-body span.align-center>span {
  display: block;
  margin: 13px auto 0;
  overflow: hidden;
  text-align: center;
}

.markdown-body span.align-center span img {
  margin: 0 auto;
  text-align: center;
}

.markdown-body span.align-right {
  display: block;
  overflow: hidden;
  clear: both;
}

.markdown-body span.align-right>span {
  display: block;
  margin: 13px 0 0;
  overflow: hidden;
  text-align: right;
}

.markdown-body span.align-right span img {
  margin: 0;
  text-align: right;
}

.markdown-body span.float-left {
  display: block;
  float: left;
  margin-right: 13px;
  overflow: hidden;
}

.markdown-body span.float-left span {
  margin: 13px 0 0;
}

.markdown-body span.float-right {
  display: block;
  float: right;
  margin-left: 13px;
  overflow: hidden;
}

.markdown-body span.float-right>span {
  display: block;
  margin: 13px auto 0;
  overflow: hidden;
  text-align: right;
}

.markdown-body code,
.markdown-body tt {
  padding: .2em .4em;
  margin: 0;
  font-size: 85%;
  white-space: break-spaces;
  background-color: #818b981f;
  border-radius: 6px;
}

.markdown-body code br,
.markdown-body tt br {
  display: none;
}

.markdown-body del code {
  text-decoration: inherit;
}

.markdown-body samp {
  font-size: 85%;
}

.markdown-body pre code {
  font-size: 100%;
}

.markdown-body pre>code {
  padding: 0;
  margin: 0;
  word-break: normal;
  white-space: pre;
  background: rgba(0,0,0,0);
  border: 0;
}

.markdown-body .highlight {
  margin-bottom: 1rem;
}

.markdown-body .highlight pre {
  margin-bottom: 0;
  word-break: normal;
}

.markdown-body .highlight pre,
.markdown-body pre {
  padding: 1rem;
  overflow: auto;
  font-size: 85%;
  line-height: 1.45;
  color: #1f2328;
  background-color: #f6f8fa;
  border-radius: 6px;
}

.markdown-body pre code,
.markdown-body pre tt {
  display: inline;
  padding: 0;
  margin: 0;
  overflow: visible;
  line-height: inherit;
  word-wrap: normal;
  background-color: rgba(0,0,0,0);
  border: 0;
}

.markdown-body .csv-data td,
.markdown-body .csv-data th {
  padding: 5px;
  overflow: hidden;
  font-size: 12px;
  line-height: 1;
  text-align: left;
  white-space: nowrap;
}

.markdown-body .csv-data .blob-num {
  padding: 10px 0.5rem 9px;
  text-align: right;
  background: #ffffff;
  border: 0;
}

.markdown-body .csv-data tr {
  border-top: 0;
}

.markdown-body .csv-data th {
  font-weight: 600;
  background: #f6f8fa;
  border-top: 0;
}

.markdown-body [data-footnote-ref]::before {
  content: "[";
}

.markdown-body [data-footnote-ref]::after {
  content: "]";
}

.markdown-body .footnotes {
  font-size: 12px;
  color: #59636e;
  border-top: 1px solid #d1d9e0;
}

.markdown-body .footnotes ol {
  padding-left: 1rem;
}

.markdown-body .footnotes ol ul {
  display: inline-block;
  padding-left: 1rem;
  margin-top: 1rem;
}

.markdown-body .footnotes li {
  position: relative;
}

.markdown-body .footnotes li:target::before {
  position: absolute;
  top: calc(0.5rem*-1);
  right: calc(0.5rem*-1);
  bottom: calc(0.5rem*-1);
  left: calc(1.5rem*-1);
  pointer-events: none;
  content: "";
  border: 2px solid #0969da;
  border-radius: 6px;
}

.markdown-body .footnotes li:target {
  color: #1f2328;
}

.markdown-body .footnotes .data-footnote-backref g-emoji {
  font-family: monospace;
}

.markdown-body .pl-c {
  color: #59636e;
}

.markdown-body .pl-c1,
.markdown-body .pl-s .pl-v {
  color: #0550ae;
}

.markdown-body .pl-e,
.markdown-body .pl-en {
  color: #6639ba;
}

.markdown-body .pl-smi,
.markdown-body .pl-s .pl-s1 {
  color: #1f2328;
}

.markdown-body .pl-ent {
  color: #0550ae;
}

.markdown-body .pl-k {
  color: #cf222e;
}

.markdown-body .pl-s,
.markdown-body .pl-pds,
.markdown-body .pl-s .pl-pse .pl-s1,
.markdown-body .pl-sr,
.markdown-body .pl-sr .pl-cce,
.markdown-body .pl-sr .pl-sre,
.markdown-body .pl-sr .pl-sra {
  color: #0a3069;
}

.markdown-body .pl-v,
.markdown-body .pl-smw {
  color: #953800;
}

.markdown-body .pl-bu {
  color: #82071e;
}

.markdown-body .pl-ii {
  color: var(--fgColor-danger);
  background-color: var(--bgColor-danger-muted);
}

.markdown-body .pl-c2 {
  color: #f6f8fa;
  background-color: #cf222e;
}

.markdown-body .pl-sr .pl-cce {
  font-weight: bold;
  color: #116329;
}

.markdown-body .pl-ml {
  color: #3b2300;
}

.markdown-body .pl-mh,
.markdown-body .pl-mh .pl-en,
.markdown-body .pl-ms {
  font-weight: bold;
  color: #0550ae;
}

.markdown-body .pl-mi {
  font-style: italic;
  color: #1f2328;
}

.markdown-body .pl-mb {
  font-weight: bold;
  color: #1f2328;
}

.markdown-body .pl-md {
  color: #82071e;
  background-color: #ffebe9;
}

.markdown-body .pl-mi1 {
  color: #116329;
  background-color: #dafbe1;
}

.markdown-body .pl-mc {
  color: #953800;
  background-color: #ffd8b5;
}

.markdown-body .pl-mi2 {
  color: #d1d9e0;
  background-color: #0550ae;
}

.markdown-body .pl-mdr {
  font-weight: bold;
  color: #8250df;
}

.markdown-body .pl-ba {
  color: #59636e;
}

.markdown-body .pl-sg {
  color: #818b98;
}

.markdown-body .pl-corl {
  text-decoration: underline;
  color: #0a3069;
}

.markdown-body [role=button]:focus:not(:focus-visible),
.markdown-body [role=tabpanel][tabindex="0"]:focus:not(:focus-visible),
.markdown-body button:focus:not(:focus-visible),
.markdown-body summary:focus:not(:focus-visible),
.markdown-body a:focus:not(:focus-visible) {
  outline: none;
  -webkit-box-shadow: none;
          box-shadow: none;
}

.markdown-body [tabindex="0"]:focus:not(:focus-visible),
.markdown-body details-dialog:focus:not(:focus-visible) {
  outline: none;
}

.markdown-body g-emoji {
  display: inline-block;
  min-width: 1ch;
  font-family: "Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
  font-size: 1em;
  font-style: normal !important;
  font-weight: 400;
  line-height: 1;
  vertical-align: -0.075em;
}

.markdown-body g-emoji img {
  width: 1em;
  height: 1em;
}

.markdown-body a:has(>p,>div,>pre,>blockquote) {
  display: block;
}

.markdown-body a:has(>p,>div,>pre,>blockquote):not(:has(.snippet-clipboard-content,>pre)) {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}

.markdown-body a:has(>p,>div,>pre,>blockquote):has(.snippet-clipboard-content,>pre):focus-visible {
  outline: 2px solid var(--borderColor-accent-emphasis);
  outline-offset: 2px;
}

.markdown-body .task-list-item {
  list-style-type: none;
}

.markdown-body .task-list-item label {
  font-weight: 400;
}

.markdown-body .task-list-item.enabled label {
  cursor: pointer;
}

.markdown-body .task-list-item+.task-list-item {
  margin-top: 0.25rem;
}

.markdown-body .task-list-item .handle {
  display: none;
}

.markdown-body .task-list-item-checkbox {
  margin: 0 .2em .25em -1.4em;
  vertical-align: middle;
}

.markdown-body ul:dir(rtl) .task-list-item-checkbox {
  margin: 0 -1.6em .25em .2em;
}

.markdown-body ol:dir(rtl) .task-list-item-checkbox {
  margin: 0 -1.6em .25em .2em;
}

.markdown-body .contains-task-list:hover .task-list-item-convert-container,
.markdown-body .contains-task-list:focus-within .task-list-item-convert-container {
  display: block;
  width: auto;
  height: 24px;
  overflow: visible;
  clip-path: none;
}

.markdown-body ::-webkit-calendar-picker-indicator {
  -webkit-filter: invert(50%);
          filter: invert(50%);
}

.markdown-body .markdown-alert {
  padding: 0.5rem 1rem;
  margin-bottom: 1rem;
  color: inherit;
  border-left: .25em solid #d1d9e0;
}

.markdown-body .markdown-alert>:first-child {
  margin-top: 0;
}

.markdown-body .markdown-alert>:last-child {
  margin-bottom: 0;
}

.markdown-body .markdown-alert .markdown-alert-title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  font-weight: 500;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  line-height: 1;
}

.markdown-body .markdown-alert.markdown-alert-note {
  border-left-color: #0969da;
}

.markdown-body .markdown-alert.markdown-alert-note .markdown-alert-title {
  color: #0969da;
}

.markdown-body .markdown-alert.markdown-alert-important {
  border-left-color: #8250df;
}

.markdown-body .markdown-alert.markdown-alert-important .markdown-alert-title {
  color: #8250df;
}

.markdown-body .markdown-alert.markdown-alert-warning {
  border-left-color: #9a6700;
}

.markdown-body .markdown-alert.markdown-alert-warning .markdown-alert-title {
  color: #9a6700;
}

.markdown-body .markdown-alert.markdown-alert-tip {
  border-left-color: #1a7f37;
}

.markdown-body .markdown-alert.markdown-alert-tip .markdown-alert-title {
  color: #1a7f37;
}

.markdown-body .markdown-alert.markdown-alert-caution {
  border-left-color: #cf222e;
}

.markdown-body .markdown-alert.markdown-alert-caution .markdown-alert-title {
  color: #d1242f;
}

.markdown-body>*:first-child>.heading-element:first-child {
  margin-top: 0 !important;
}

.markdown-body .highlight pre:has(+.zeroclipboard-container) {
  min-height: 52px;
}
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlcy8wZmVmMjVhN2ViNjU4M2NkZTExOC90aGVtZS1saWdodC1jdXN0b20uY3NzIiwibWFwcGluZ3MiOiI7OztBQUFBLGdFQUFnRTtBQ0FoRTs7QUFBQTs7Ozs7O0NBTUM7O0FBRUQ7Ozs7OztFQU1FOztBQUVGOzs7Ozs7O0VBT0UsRUFLcUIsaURBQWlELEVBRWpELGlEQUFpRCxFQUVqRCxpREFBaUQsRUFFakQsaURBQWlELEVBRW5ELG9EQUFvRCxFQUVyRCxvREFBb0QsRUFHbkQsb0RBQW9ELEVBRXZELG9EQUFvRDtBQU10RTtBQ2pEQTs7QUFBQTs7Ozs7Ozs7Ozs7O0VBWUU7O0FBRUYsNkVBQTZFO0FBQzdFLCtCQUErQjtBQTBCL0I7QUN6Q0E7O0FBQUE7RUFDRTs7QUFFRixpQkFBaUI7QUFDakI7SUFDSSxvQkFBb0I7SUFDcEIsZ0JBQWdCO0lBQ2hCLDREQUFnRjtBQUNwRjtBQUNBLDZIQUE2SDtBQUM3SDtJQUNJLG9CQUFvQjtJQUNwQixnQkFBZ0I7SUFDaEIsNERBQWdGO0FBQ3BGOztBQUVBO0lBQ0ksb0JBQW9CO0lBQ3BCLGdCQUFnQjtJQUNoQiw0REFBZ0Y7QUFDcEY7QUFDQTtBRHJCQTtBQWtCQSxpRUFBaUU7QUFDakU7RUFDRTtBQUNGO0lBQ0ksbUJBQW1CO0lBQ25CLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsK0RBQW1FO0FBQ3ZFOztBQUVBO0lBQ0ksbUJBQW1CO0lBQ25CLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsK0RBQW9FO0FBQ3hFOztBQUVBO0lBQ0ksbUJBQW1CO0lBQ25CLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsK0RBQWdFO0FBQ3BFO0FBQ0E7QUV6Q0E7O0FBQUE7SUFDSSwwRUFBMEU7SUFDMUUsdUJBQXVCO0FBQzNCOztBQUVBOzs7b0VBR29FO0FBQ3BFOzs2RUFFNkU7O0FBUzdFLG9CQUFvQjtBQUNwQiwwQ0FBMEM7O0FBSTFDLCtDQUErQyxFQUtyQixvREFBb0Q7O0FBRTlFLDZCQUE2Qjs7QUFHN0Isb0NBQW9D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ZTtBQUNqQjs7QUFFQTtFQUNFLDJCQUFtQjtVQUFuQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxvQkFBb0I7RUFDcEIsbUJBQW1CO0VBQ25CLGNBQWM7RUFDZCxnQ0FBZ0M7QUFDbEM7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLGdCQUFnQjtFQUNoQix5QkFBbUI7TUFBbkIsc0JBQW1CO1VBQW5CLG1CQUFtQjtFQUNuQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsMEJBQTBCO0FBQzVCOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFLDBCQUEwQjtBQUM1Qjs7QUFFQTtFQUNFLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSwwQkFBMEI7QUFDNUI7O0FBRUE7RUFDRSxjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsMEJBQTBCO0FBQzVCOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFLDBCQUEwQjtBQUM1Qjs7QUFFQTtFQUNFLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSx3QkFBd0I7QUFDMUI7O0FBRUE7RUFDRSxnQkFBZ0I7QUFDbEI7QUFFQSIsInNvdXJjZXMiOlsid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL3RoZW1lcy9saWdodC1jdXN0b20vY3NzL2xpZ2h0LWN1c3RvbS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9fZm9udC1zaXplcy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL3RoZW1lcy9sZWdhY3ktbGlnaHQvY3NzL19mb250cy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL3RoZW1lcy9saWdodC9jc3MvX2ZvbnRzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvdGhlbWVzL2xlZ2FjeS1saWdodC9jc3MvX2xlZ2FjeS1saWdodC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL3RoZW1lcy9saWdodC1jdXN0b20vY3NzL19jdXN0b20ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvX2NvbXBvbmVudHMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvX2FuaW1hdGlvbnMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvX2NvbW1vbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLzxubyBzb3VyY2U+Iiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fQmVhY29uTGlzdEl0ZW0ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0JlYWNvblN0YXR1cy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fQmVhY29uU3RhdHVzVG9vbHRpcC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fQmVhY29uVmlld0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fRGlhbG9nT3duQmVhY29uU3RhdHVzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19EaWFsb2dTaWRlYmFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19MZWZ0UGFuZWxMaXZlU2hhcmVXYXJuaW5nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19MaXZlVGltZVJlbWFpbmluZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fT3duQmVhY29uU3RhdHVzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19TaGFyZUxhdGVzdExvY2F0aW9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19TdHlsZWRMaXZlQmVhY29uSWNvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2NvbnRleHRfbWVudXMvX0tlYmFiQ29udGV4dE1lbnUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9kaWFsb2dzL3BvbGxzL19Qb2xsRGV0YWlsSGVhZGVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9wb2xscy9fUG9sbExpc3RJdGVtLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9wb2xscy9fUG9sbExpc3RJdGVtRW5kZWQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9fQXBwUGVybWlzc2lvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL19BcHBXYXJuaW5nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvX0ZpbHRlckRyb3Bkb3duLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvX0ZpbHRlclRhYkdyb3VwLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvX0xlYXJuTW9yZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19FbmFibGVMaXZlU2hhcmUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fTGl2ZUR1cmF0aW9uRHJvcGRvd24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fTG9jYXRpb25TaGFyZU1lbnUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fTWFwRXJyb3IucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fTWFwRmFsbGJhY2sucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fTWFya2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX1NoYXJlRGlhbG9nQnV0dG9ucy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19TaGFyZVR5cGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fWm9vbUJ1dHRvbnMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9tZXNzYWdlcy9fTUJlYWNvbkJvZHkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9tZXNzYWdlcy9zaGFyZWQvX01lZGlhUHJvY2Vzc2luZ0Vycm9yLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvcG9sbHMvX1BvbGxPcHRpb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9fQWRkUmVtb3ZlVGhyZWVwaWRzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fQ3VycmVudERldmljZVNlY3Rpb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VEZXRhaWxIZWFkaW5nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRGV2aWNlRGV0YWlscy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0RldmljZUV4cGFuZERldGFpbHNCdXR0b24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VTZWN1cml0eUNhcmQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VUaWxlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRGV2aWNlVHlwZUljb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19GaWx0ZXJlZERldmljZUxpc3QucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19GaWx0ZXJlZERldmljZUxpc3RIZWFkZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19TZWN1cml0eVJlY29tbWVuZGF0aW9ucy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX1NlbGVjdGFibGVEZXZpY2VUaWxlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fS2V5U3RvcmFnZVBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3Mvc2hhcmVkL19TZXR0aW5nc1N1YnNlY3Rpb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9zaGFyZWQvX1NldHRpbmdzU3Vic2VjdGlvbkhlYWRpbmcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zcGFjZXMvX1F1aWNrVGhlbWVTd2l0Y2hlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3R5cG9ncmFwaHkvX0NhcHRpb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG91bmQvX0ljb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG91bmQvX1N1Y2Nlc3NEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fQXV0b0hpZGVTY3JvbGxiYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fQXV0b2NvbXBsZXRlSW5wdXQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fQ29udGV4dHVhbE1lbnUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fRXJyb3JNZXNzYWdlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX0ZpbGVEcm9wVGFyZ2V0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX0ZpbGVQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19HZW5lcmljRHJvcGRvd25NZW51LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX0hvbWVQYWdlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX0xhcmdlTG9hZGVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX0xlZnRQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19NYWluU3BsaXQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fTWF0cml4Q2hhdC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19OZXdUaW1lbGluZVBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX05vblVyZ2VudFRvYXN0Q29udGFpbmVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1BpY3R1cmVJblBpY3R1cmVEcmFnZ2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1F1aWNrU2V0dGluZ3NCdXR0b24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fUmlnaHRQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19Sb29tVmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19TZWFyY2hCb3gucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fU3BhY2VIaWVyYXJjaHkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fU3BhY2VQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19TcGFjZVBpbGxCdXR0b24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fU3BhY2VSb29tVmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19TcGxhc2hQYWdlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1RhYmJlZFZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fVGhyZWFkc0FjdGl2aXR5Q2VudHJlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1RvYXN0Q29udGFpbmVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1VwbG9hZEJhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19WaWV3U291cmNlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvYXV0aC9fQ29tcGxldGVTZWN1cml0eS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL2F1dGgvX0NvbmZpcm1TZXNzaW9uTG9ja1RoZWZ0Vmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL2F1dGgvX0xvZ2luLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvYXV0aC9fTG9naW5TcGxhc2hWaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvYXV0aC9fTW9iaWxlUmVnaXN0cmF0aW9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvYXV0aC9fUmVnaXN0cmF0aW9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvYXV0aC9fU2Vzc2lvbkxvY2tTdG9sZW5WaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvYXV0aC9fU2V0dXBFbmNyeXB0aW9uQm9keS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdWRpb19tZXNzYWdlcy9fUGxheWJhY2tDb250YWluZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXVkaW9fbWVzc2FnZXMvX1NlZWtCYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXVkaW9fbWVzc2FnZXMvX1dhdmVmb3JtLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1dGgvX0F1dGhCb2R5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1dGgvX0F1dGhGb290ZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fQXV0aEhlYWRlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19BdXRoSGVhZGVyTG9nby5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19BdXRoUGFnZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19Db21wbGV0ZVNlY3VyaXR5Qm9keS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19Db3VudHJ5RHJvcGRvd24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fRGVmYXVsdFdlbGNvbWUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1dGgvX0xhbmd1YWdlU2VsZWN0b3IucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fTG9naW5XaXRoUVIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fUGFzc3BocmFzZUZpZWxkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1dGgvX1dlbGNvbWUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXZhdGFycy9fQmFzZUF2YXRhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdmF0YXJzL19EZWNvcmF0ZWRSb29tQXZhdGFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F2YXRhcnMvX1Jvb21BdmF0YXJWaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F2YXRhcnMvX1dpZGdldEF2YXRhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdmF0YXJzL19XaXRoUHJlc2VuY2VJbmRpY2F0b3IucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYmV0YS9fQmV0YUNhcmQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvY29udGV4dF9tZW51cy9fRGV2aWNlQ29udGV4dE1lbnUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvY29udGV4dF9tZW51cy9fSWNvbml6ZWRDb250ZXh0TWVudS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9jb250ZXh0X21lbnVzL19MZWdhY3lDYWxsQ29udGV4dE1lbnUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQWRkRXhpc3RpbmdUb1NwYWNlRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0FuYWx5dGljc0xlYXJuTW9yZURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19CdWdSZXBvcnREaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQ2hhbmdlbG9nRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0NvbXBvdW5kRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0NvbmZpcm1LZXlTdG9yYWdlT2ZmRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0NvbmZpcm1TcGFjZVVzZXJBY3Rpb25EaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQ29uZmlybVVzZXJBY3Rpb25EaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQ3JlYXRlUm9vbURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19DcmVhdGVTZWN0aW9uRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0NyZWF0ZVN1YnNwYWNlRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0NyeXB0by5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19EZWFjdGl2YXRlQWNjb3VudERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19EZXZ0b29sc0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19FeHBvcnREaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fRmVlZGJhY2tEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fRm9yd2FyZERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19HZW5lcmljRmVhdHVyZUZlZWRiYWNrRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0luY29taW5nU2FzRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0ludml0ZURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19JbnZpdGVQcm9ncmVzc0JvZHkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fSm9pblJ1bGVEcm9wZG93bi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19MZWF2ZVJvb21EaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fTGVhdmVTcGFjZURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Mb2NhdGlvblZpZXdEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fTG9nb3V0RGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX01hbmFnZVJlc3RyaWN0ZWRKb2luUnVsZURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19NZXNzYWdlRWRpdEhpc3RvcnlEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fTW9kYWxXaWRnZXREaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fUG9sbENyZWF0ZURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19SZWdpc3RyYXRpb25FbWFpbFByb21wdERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19SZW1vdmVTZWN0aW9uRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1JlcG9ydFJvb21EaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fUm9vbVNldHRpbmdzRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1Jvb21TZXR0aW5nc0RpYWxvZ0JyaWRnZXMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fUm9vbVVwZ3JhZGVEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fUm9vbVVwZ3JhZGVXYXJuaW5nRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1NlcnZlck9mZmxpbmVEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fU2VydmVyUGlja2VyRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1NldEVtYWlsRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1NldHRpbmdzRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1NoYXJlRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1NsYXNoQ29tbWFuZEhlbHBEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fU3BhY2VQcmVmZXJlbmNlc0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19TcGFjZVNldHRpbmdzRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1Nwb3RsaWdodERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19UZXJtc0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19VbnBpbkFsbERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19VcGxvYWRDb25maXJtRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1VzZXJTZXR0aW5nc0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19WZXJpZnlFTWFpbERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19XaWRnZXRDYXBhYmlsaXRpZXNQcm9tcHREaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9pbnZpdGUvX1Vua25vd25JZGVudGl0eVVzZXJzV2FybmluZ0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL3NlY3VyaXR5L19BY2Nlc3NTZWNyZXRTdG9yYWdlRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3Mvc2VjdXJpdHkvX0NyZWF0ZUNyb3NzU2lnbmluZ0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL3NlY3VyaXR5L19DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3Mvc2VjdXJpdHkvX0tleUJhY2t1cEZhaWxlZERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL3NlY3VyaXR5L19SZXN0b3JlS2V5QmFja3VwRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpcmVjdG9yeS9fTmV0d29ya0Ryb3Bkb3duLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19BY2Nlc3NpYmxlQnV0dG9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19Db3B5YWJsZVRleHQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0Rlc2t0b3BDYXB0dXJlclNvdXJjZVBpY2tlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fRGlhbFBhZEJhY2tzcGFjZUJ1dHRvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fRHJvcGRvd24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0VkaXRhYmxlSXRlbUxpc3QucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0Vycm9yQm91bmRhcnkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0V4dGVybmFsTGluay5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fRmFjZVBpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0ZpZWxkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19HZW5lcmljRXZlbnRMaXN0U3VtbWFyeS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fSW1hZ2VWaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19JbmZvVG9vbHRpcC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fSW5saW5lU3Bpbm5lci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fSW52aXRlUmVhc29uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19MYWJlbGxlZENoZWNrYm94LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19MYW5ndWFnZURyb3Bkb3duLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19NaW5pQXZhdGFyVXBsb2FkZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1BpbGwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1Bvd2VyU2VsZWN0b3IucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1Byb2dyZXNzQmFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19RUkNvZGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1JlcGx5Q2hhaW4ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1Jlc2l6ZUhhbmRsZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fUmljaFRleHQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1Jvb21BbGlhc0ZpZWxkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19TU09CdXR0b25zLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19TZWFyY2hXYXJuaW5nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19TZXJ2ZXJQaWNrZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1NldHRpbmdzRHJvcGRvd24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1NldHRpbmdzRmxhZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fU3Bpbm5lci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fU3R5bGVkUmFkaW9CdXR0b24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1N5bnRheEhpZ2hsaWdodC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fVGFnQ29tcG9zZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1RleHRXaXRoVG9vbHRpcC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fVG9nZ2xlU3dpdGNoLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19WYWxpZGF0aW9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2xvY2F0aW9uL19Mb2NhdGlvblBpY2tlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9tZXNzYWdlcy9fQ2FsbEV2ZW50LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL21lc3NhZ2VzL19DcmVhdGVFdmVudC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9tZXNzYWdlcy9fRGlzYW1iaWd1YXRlZFByb2ZpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvbWVzc2FnZXMvX0xlZ2FjeUNhbGxFdmVudC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9tZXNzYWdlcy9fTUltYWdlUmVwbHlCb2R5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL21lc3NhZ2VzL19NTG9jYXRpb25Cb2R5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL21lc3NhZ2VzL19NUG9sbEJvZHkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvbWVzc2FnZXMvX01TdGlja2VyQm9keS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9tZXNzYWdlcy9fTWVzc2FnZUFjdGlvbkJhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9tZXNzYWdlcy9fVGV4dHVhbEV2ZW50LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL21lc3NhZ2VzL19UaHJlYWRBY3Rpb25CYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvbWVzc2FnZXMvX2NvbW1vbl9DcnlwdG9FdmVudC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9wb2xscy9wb2xsSGlzdG9yeS9fUG9sbEhpc3RvcnkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcG9sbHMvcG9sbEhpc3RvcnkvX1BvbGxIaXN0b3J5TGlzdC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yaWdodF9wYW5lbC9fQmFzZUNhcmQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcmlnaHRfcGFuZWwvX0VtcHR5U3RhdGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcmlnaHRfcGFuZWwvX0VuY3J5cHRpb25JbmZvLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3JpZ2h0X3BhbmVsL19FeHRlbnNpb25zQ2FyZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yaWdodF9wYW5lbC9fUGRmVmlld2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3JpZ2h0X3BhbmVsL19QaW5uZWRNZXNzYWdlc0NhcmQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcmlnaHRfcGFuZWwvX1Jvb21TdW1tYXJ5Q2FyZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yaWdodF9wYW5lbC9fVGhyZWFkUGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcmlnaHRfcGFuZWwvX1RpbWVsaW5lQ2FyZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yaWdodF9wYW5lbC9fVXNlckluZm8ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcmlnaHRfcGFuZWwvX1ZlcmlmaWNhdGlvblBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3JpZ2h0X3BhbmVsL19XaWRnZXRDYXJkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21fc2V0dGluZ3MvX0FsaWFzU2V0dGluZ3MucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvUm9vbUxpc3RQYW5lbC9fUm9vbUxpc3RQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fQXBwc0RyYXdlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fQXV0b2NvbXBsZXRlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19BdXhQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fQmFzaWNNZXNzYWdlQ29tcG9zZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0NhbGxHdWVzdExpbmtCdXR0b24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0UyRUljb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0UyRUljb25WaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19FZGl0TWVzc2FnZUNvbXBvc2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19FbW9qaUJ1dHRvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fRXZlbnRCdWJibGVUaWxlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19FdmVudFRpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0hpc3RvcnlUaWxlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19JUkNMYXlvdXQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0ludml0ZWRJY29uVmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fSnVtcFRvQm90dG9tQnV0dG9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19MaXZlQ29udGVudFN1bW1hcnkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX01lbWJlckxpc3RIZWFkZXJWaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19NZW1iZXJMaXN0Vmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fTWVtYmVyVGlsZVZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX01lc3NhZ2VDb21wb3Nlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fTWVzc2FnZUNvbXBvc2VyRm9ybWF0QmFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19OZXdSb29tSW50cm8ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX092ZXJmbG93VGlsZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fUGlubmVkRXZlbnRUaWxlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19QaW5uZWRNZXNzYWdlQmFubmVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19QcmVzZW5jZUljb25WaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19QcmVzZW5jZUxhYmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19SZWFkUmVjZWlwdEdyb3VwLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19SZXBseVByZXZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1Jvb21IZWFkZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1Jvb21JbmZvTGluZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fUm9vbUtub2Nrc0Jhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fUm9vbVByZXZpZXdCYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1Jvb21QcmV2aWV3Q2FyZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fUm9vbVNlYXJjaEF1eFBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19Sb29tVXBncmFkZVdhcm5pbmdCYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1NlbmRNZXNzYWdlQ29tcG9zZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1N0aWNrZXJzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19UaGlyZFBhcnR5TWVtYmVySW5mby5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fVG9wVW5yZWFkTWVzc2FnZXNCYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1VzZXJJZGVudGl0eVdhcm5pbmcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1ZvaWNlUmVjb3JkQ29tcG9zZXJUaWxlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19XaG9Jc1R5cGluZ1RpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvd3lzaXd5Z19jb21wb3Nlci9fRWRpdFd5c2l3eWdDb21wb3Nlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy93eXNpd3lnX2NvbXBvc2VyL19TZW5kV3lzaXd5Z0NvbXBvc2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL3d5c2l3eWdfY29tcG9zZXIvY29tcG9uZW50cy9fRWRpdG9yLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL3d5c2l3eWdfY29tcG9zZXIvY29tcG9uZW50cy9fRm9ybWF0dGluZ0J1dHRvbnMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvd3lzaXd5Z19jb21wb3Nlci9jb21wb25lbnRzL19MaW5rTW9kYWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX0F2YXRhclNldHRpbmcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX0ZvbnRTY2FsaW5nUGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX0ltYWdlU2l6ZVBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19JbnRlZ3JhdGlvbk1hbmFnZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX0pvaW5SdWxlU2V0dGluZ3MucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX0tleWJvYXJkU2hvcnRjdXQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX0xheW91dFN3aXRjaGVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19Ob3RpZmljYXRpb25QdXNoZXJTZXR0aW5ncy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fTm90aWZpY2F0aW9uU2V0dGluZ3MyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19Ob3RpZmljYXRpb25zLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19QaG9uZU51bWJlcnMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX1Bvd2VyTGV2ZWxTZWxlY3Rvci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fUm9vbVByb2ZpbGVTZXR0aW5ncy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fU2V0SW50ZWdyYXRpb25NYW5hZ2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19TZXR0aW5nc0ZpZWxkc2V0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19TZXR0aW5nc0hlYWRlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fU2V0dGluZ3NTdWJoZWFkZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX1NwZWxsQ2hlY2tMYW5ndWFnZXMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX1RoZW1lQ2hvaWNlUGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX1VwZGF0ZUNoZWNrQnV0dG9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19Vc2VyUGVyc29uYWxJbmZvU2V0dGluZ3MucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX1VzZXJQcm9maWxlU2V0dGluZ3MucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fQWR2YW5jZWRQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19DaGFuZ2VSZWNvdmVyeUtleS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19FbmNyeXB0aW9uQ2FyZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19FbmNyeXB0aW9uQ2FyZEVtcGhhc2lzZWRDb250ZW50LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL2VuY3J5cHRpb24vX1JlY292ZXJ5UGFuZWxPdXRPZlN5bmMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fUmVzZXRJZGVudGl0eVBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvX1NldHRpbmdzQmFubmVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvX1NldHRpbmdzSW5kZW50LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvX1NldHRpbmdzU2VjdGlvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL19TZXR0aW5nc1RhYi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL3Jvb20vX05vdGlmaWNhdGlvblNldHRpbmdzVGFiLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvcm9vbS9fUGVvcGxlUm9vbVNldHRpbmdzVGFiLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvcm9vbS9fUm9sZXNSb29tU2V0dGluZ3NUYWIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy9yb29tL19TZWN1cml0eVJvb21TZXR0aW5nc1RhYi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX0FwcGVhcmFuY2VVc2VyU2V0dGluZ3NUYWIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19IZWxwVXNlclNldHRpbmdzVGFiLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fS2V5Ym9hcmRVc2VyU2V0dGluZ3NUYWIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19NZWRpYVByZXZpZXdBY2NvdW50U2V0dGluZ3MucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19Nam9sbmlyVXNlclNldHRpbmdzVGFiLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fUHJlZmVyZW5jZXNVc2VyU2V0dGluZ3NUYWIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19TZWN1cml0eVVzZXJTZXR0aW5nc1RhYi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX1NpZGViYXJVc2VyU2V0dGluZ3NUYWIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc3BhY2VzL19TcGFjZUJhc2ljU2V0dGluZ3MucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc3BhY2VzL19TcGFjZUNoaWxkcmVuUGlja2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NwYWNlcy9fU3BhY2VDcmVhdGVNZW51LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Rlcm1zL19JbmxpbmVUZXJtc0FncmVlbWVudC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy90b2FzdHMvX0FuYWx5dGljc1RvYXN0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3RvYXN0cy9fSW5jb21pbmdDYWxsVG9hc3QucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvdG9hc3RzL19JbmNvbWluZ0xlZ2FjeUNhbGxUb2FzdC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy90b2FzdHMvX05vblVyZ2VudEVjaG9GYWlsdXJlVG9hc3QucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvdHlwb2dyYXBoeS9fSGVhZGluZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy92ZXJpZmljYXRpb24vX1ZlcmlmaWNhdGlvblNob3dTYXMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvdm9pcC9MZWdhY3lDYWxsVmlldy9fTGVnYWN5Q2FsbFZpZXdCdXR0b25zLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3ZvaXAvX0NhbGxEdXJhdGlvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy92b2lwL19DYWxsVmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy92b2lwL19EaWFsUGFkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3ZvaXAvX0RpYWxQYWRDb250ZXh0TWVudS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy92b2lwL19EaWFsUGFkTW9kYWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvdm9pcC9fTGVnYWN5Q2FsbFZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvdm9pcC9fTGVnYWN5Q2FsbFZpZXdGb3JSb29tLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3ZvaXAvX0xlZ2FjeUNhbGxWaWV3SGVhZGVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3ZvaXAvX0xlZ2FjeUNhbGxWaWV3U2lkZWJhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy92b2lwL19WaWRlb0ZlZWQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vaGlnaGxpZ2h0LmpzQDExLjEyLjAvbm9kZV9tb2R1bGVzL2hpZ2hsaWdodC5qcy9zdHlsZXMvYXRvbS1vbmUtbGlnaHQubWluLmNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uLi8uLi9ub2RlX21vZHVsZXMvLnBucG0vZ2l0aHViLW1hcmtkb3duLWNzc0A1LjkuMC9ub2RlX21vZHVsZXMvZ2l0aHViLW1hcmtkb3duLWNzcy9naXRodWItbWFya2Rvd24tbGlnaHQuY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkBsYXllciBjb21wb3VuZC10b2tlbnMsIGNvbXBvdW5kLXdlYiwgc2hhcmVkLWNvbXBvbmVudHMsIGFwcC13ZWI7XG5cbkBpbXBvcnQgXCIuLi8uLi8uLi8uLi9yZXMvY3NzL19mb250LXNpemVzLnBjc3NcIiBsYXllcihhcHAtd2ViKTtcbkBpbXBvcnQgXCIuLi8uLi9sZWdhY3ktbGlnaHQvY3NzL19mb250cy5wY3NzXCIgbGF5ZXIoYXBwLXdlYik7XG5AaW1wb3J0IFwiLi4vLi4vbGVnYWN5LWxpZ2h0L2Nzcy9fbGVnYWN5LWxpZ2h0LnBjc3NcIiBsYXllcihhcHAtd2ViKTtcbkBpbXBvcnQgXCJfY3VzdG9tLnBjc3NcIiBsYXllcihhcHAtd2ViKTtcbkBpbXBvcnQgXCIuLi8uLi8uLi8uLi9yZXMvY3NzL19jb21wb25lbnRzLnBjc3NcIiBsYXllcihhcHAtd2ViKTtcbkBpbXBvcnQgdXJsKFwiaGlnaGxpZ2h0LmpzL3N0eWxlcy9hdG9tLW9uZS1saWdodC5taW4uY3NzXCIpIGxheWVyKGFwcC13ZWIpO1xuQGltcG9ydCB1cmwoXCJnaXRodWItbWFya2Rvd24tY3NzL2dpdGh1Yi1tYXJrZG93bi1saWdodC5jc3NcIikgbGF5ZXIoYXBwLXdlYik7XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKlxuICogU0NTUyB2YXJpYWJsZXMgZGVmaW5pbmcgYSByYW5nZSBvZiBmb250IHNpemVzLlxuICpcbiAqIFRoZXNlIGFyZSBkZWZpbmVkIGluIGByZW1gIHNvIHRoYXQgdGhleSBzY2FsZSB3aXRoIHRoZSBgZm9udC1zaXplYCBvZiB0aGUgcm9vdCBlbGVtZW50ICh3aGljaCBpcyBhZGp1c3RhYmxlIHZpYSB0aGVcbiAqIFwiRm9udCBzaXplXCIgc2V0dGluZykuIFRoZXkgZXhpc3QgdG8gbWFrZSB0aGUgam9iIG9mIGNvbnZlcnRpbmcgZGVzaWducyAod2hpY2ggdGVuZCB0byBiZSBiYXNlZCBpbiBwaXhlbHMpIGludG8gQ1NTXG4gKiBlYXNpZXIuXG4gKi9cblxuLypcbiAqIFRoZXNlIHZhcmlhYmxlcyBhcmUgbm93ICpkZXByZWNhdGVkKiBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGluIG5ldyBjb2RlOyBpbnN0ZWFkIENvbXBvdW5kIHR5cG9ncmFwaGljIHRva2Vuc1xuICogc2hvdWxkIGJlIHVzZWQuIERpcmVjdCBlcXVpdmFsZW50cyBmb3IgdGhlc2Ugb2xkIGZvbnQgc2l6ZSB0b2tlbnMgYXJlIGxpc3RlZCBiZWxvdzsgd2hlcmUgbm8gZXF1aXZhbGVudCBleGlzdHMsXG4gKiB0aGF0IHN1Z2dlc3RzIHRoYXQgdGhlIGRlc2lnbiBpcyB1c2luZyBhIG5vbi1zdGFuZGFyZCBmb250IHNpemUgYW5kIHNob3VsZCBiZSB1cGRhdGVkLlxuICpcbiAqIEluIGZhY3QsIG1vZGVybiBGaWdtYSBkZXNpZ25zIHNob3VsZCBhY3R1YWxseSB1c2UgYSBuYW1lZCBUeXBvZ3JhcGh5IHN0eWxlIHN1Y2ggYXMgXCJXZWIvZm9udC9oZWFkaW5nL3NtL3NlbWlib2xkXCIsXG4gKiB0cmFuc2xhdGVzIGRpcmVjdGx5IHRvIGBmb250OiB2YXIoLS1jcGQtZm9udC1oZWFkaW5nLXNtLXNlbWlib2xkKWAuXG4gKi9cbiRmb250LTFweDogMC4wNjI1cmVtO1xuJGZvbnQtOHB4OiAwLjVyZW07XG4kZm9udC0xMHB4OiAwLjYyNXJlbTtcbiRmb250LTEwLTRweDogMC42Mjc1cmVtO1xuJGZvbnQtMTFweDogMC42ODc1cmVtOyAvKiBDb21wb3VuZCBlcXVpdmFsZW50OiAtLWNwZC1mb250LXNpemUtYm9keS14cyAqL1xuJGZvbnQtMTJweDogMC43NXJlbTtcbiRmb250LTEzcHg6IDAuODEyNXJlbTsgLyogQ29tcG91bmQgZXF1aXZhbGVudDogLS1jcGQtZm9udC1zaXplLWJvZHktc20gKi9cbiRmb250LTE0cHg6IDAuODc1cmVtO1xuJGZvbnQtMTVweDogMC45Mzc1cmVtOyAvKiBDb21wb3VuZCBlcXVpdmFsZW50OiAtLWNwZC1mb250LXNpemUtYm9keS1tZCAqL1xuJGZvbnQtMTZweDogMXJlbTtcbiRmb250LTE3cHg6IDEuMDYyNXJlbTsgLyogQ29tcG91bmQgZXF1aXZhbGVudDogLS1jcGQtZm9udC1zaXplLWJvZHktbGcgKi9cbiRmb250LTE4cHg6IDEuMTI1cmVtO1xuJGZvbnQtMjBweDogMS4yNXJlbTsgLyogQ29tcG91bmQgZXF1aXZhbGVudDogLS1jcGQtZm9udC1zaXplLWhlYWRpbmctc20gKi9cbiRmb250LTIycHg6IDEuMzc1cmVtO1xuJGZvbnQtMjRweDogMS41cmVtOyAvKiBDb21wb3VuZCBlcXVpdmFsZW50OiAtLWNwZC1mb250LXNpemUtaGVhZGluZy1tZCAqL1xuJGZvbnQtMjVweDogMS41NjI1cmVtO1xuJGZvbnQtMjZweDogMS42MjVyZW07XG4kZm9udC0yOHB4OiAxLjc1cmVtOyAvKiBDb21wb3VuZCBlcXVpdmFsZW50OiAtLWNwZC1mb250LXNpemUtaGVhZGluZy1sZyAqL1xuJGZvbnQtMzBweDogMS44NzVyZW07XG4kZm9udC0zMnB4OiAycmVtOyAvKiBDb21wb3VuZCBlcXVpdmFsZW50OiAtLWNwZC1mb250LXNpemUtaGVhZGluZy14bCAqL1xuJGZvbnQtMzRweDogMi4xMjVyZW07XG4kZm9udC0zNXB4OiAyLjE4NzVyZW07XG4kZm9udC00MnB4OiAyLjYyNXJlbTtcbiRmb250LTQ0cHg6IDIuNzVyZW07XG4kZm9udC00OHB4OiAzcmVtO1xuIiwiLypcbiAqIE51bml0by5cbiAqIEluY2x1ZGVzIGV4dGVuZGVkIExhdGluIGFuZCBWaWV0bmFtZXNlIGNoYXJhY3RlciBzZXRzXG4gKiBDdXJyZW50IFVSTHMgYXJlIHRha2VuIGZyb21cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4ZWl2YS9OdW5pdG9Gb250L3JlbGVhc2VzL3RhZy92My41MDBcbiAqIC4uLmluIG9yZGVyIHRvIGluY2x1ZGUgY3lyaWxsaWMuXG4gKlxuICogUHJldmlvdXNseSwgdGhleSB3ZXJlXG4gKiBodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9TnVuaXRvOjQwMCw0MDBpLDYwMCw2MDBpLDcwMCw3MDBpJnN1YnNldD1sYXRpbi1leHQsdmlldG5hbWVzZVxuICpcbiAqIFdlIGV4cGxpY2l0bHkgZG8gbm90IGluY2x1ZGUgTnVuaXRvJ3MgaXRhbGljIHZhcmlhbnRzLCBhcyB0aGV5IGFyZSBub3QgaXRhbGljIGVub3VnaFxuICogYW5kIGl0J3MgYmV0dGVyIHRvIHJlbHkgb24gdGhlIGJyb3dzZXIncyBidWlsdC1pbiBvYmxpcXVpbmcgYmVoYXZpb3VyLlxuICovXG5cbi8qIEdyYWIgdGhlIG90aGVyIGZvbnRzIGZyb20gdGhlIGN1cnJlbnQgdGhlbWUsIHNvIHdlIGNhbiBvdmVycmlkZSB0byBJbnRlciAqL1xuLyogaW4gY3VzdG9tIGZvbnRzIGlmIG5lZWRlZC4gKi9cbkBpbXBvcnQgXCIuLi8uLi9saWdodC9jc3MvX2ZvbnRzLnBjc3NcIjtcblxuLyogTnVuaXRvIGFzIHRoZSBkZWZhdWx0LCBmb3Igb2xkIHRpbWUncyBzYWtlIG9uIGxlZ2FjeSB0aGVtZXMuICovXG4vKiB0aGUgJ3NyYycgbGlua3MgYXJlIHJlbGF0aXZlIHRvIHRoZSBidW5kbGUuY3NzLCB3aGljaCBpcyBpbiBhIHN1YmRpcmVjdG9yeS5cbiAqL1xuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IE51bml0bztcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBzcmM6IHVybChcIi9yZXMvZm9udHMvTnVuaXRvL051bml0by1SZWd1bGFyLnR0ZlwiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IE51bml0bztcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBzcmM6IHVybChcIi9yZXMvZm9udHMvTnVuaXRvL051bml0by1TZW1pQm9sZC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBOdW5pdG87XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgc3JjOiB1cmwoXCIvcmVzL2ZvbnRzL051bml0by9OdW5pdG8tQm9sZC50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG59XG4iLCIvKiB0aGUgJ3NyYycgbGlua3MgYXJlIHJlbGF0aXZlIHRvIHRoZSBidW5kbGUuY3NzLCB3aGljaCBpcyBpbiBhIHN1YmRpcmVjdG9yeS5cbiAqL1xuXG4vKiBUd2Vtb2ppIENPTFIgKi9cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiBUd2Vtb2ppO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgc3JjOiB1cmwoXCIvcmVzL2ZvbnRzL1R3ZW1vamlfTW96aWxsYS9Ud2Vtb2ppTW96aWxsYS1jb2xyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xufVxuLyogRm9yIGF0IGxlYXN0IENocm9tZSBvbiBXaW5kb3dzIDEwLCB3ZSBoYXZlIHRvIGV4cGxpY3RseSBhZGQgZXh0cmEgd2VpZ2h0cyBmb3IgdGhlIGVtb2ppIHRvIGFwcGVhciBpbiBib2xkIG1lc3NhZ2VzLCBldGMuICovXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogVHdlbW9qaTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHNyYzogdXJsKFwiL3Jlcy9mb250cy9Ud2Vtb2ppX01vemlsbGEvVHdlbW9qaU1vemlsbGEtY29sci53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKTtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IFR3ZW1vamk7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBzcmM6IHVybChcIi9yZXMvZm9udHMvVHdlbW9qaV9Nb3ppbGxhL1R3ZW1vamlNb3ppbGxhLWNvbHIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG59XG4iLCI6cm9vdCB7XG4gICAgLyogVGhpcyBpcyBzZXQgdG8gVHdlbW9qaSB3aGVuIHRoZSB1c2VyIG9wdHMgaW50byB0aGUgYnVuZGxlZCBlbW9qaSBmb250ICovXG4gICAgLS1lbW9qaS1mb250LWZhbWlseTogXCJcIjtcbn1cblxuLyogTnVuaXRvIGxhY2tzIGNvbWJpbmluZyBkaWFjcml0aWNzLCBzbyB0aGVzZSB3aWxsIGZhbGwgdGhyb3VnaFxuICAgdG8gdGhlIG5leHQgZm9udC4gIEhlbGV2ZXRpY2EncyBkaWFjcml0aWNzIHNvbWV0aW1lcyBkbyBub3QgY29tYmluZVxuICAgbmljZWx5IChvbiBPU1gsIGF0IGxlYXN0KSBhbmQgcmVzdWx0IGluIGEgaHVnZSBob3Jpem9udGFsIG1lc3MuXG4gICBBcmlhbCBlbXBpcmljYWxseSBnZXRzIGl0IHJpZ2h0LCBoZW5jZSBwcmlvcml0aXNpbmcgQXJpYWwgaGVyZS4gKi9cbi8qIE5vdG8gQ29sb3IgRW1vamkgY29udGFpbnMgZGlnaXRzLCBpbiBmaXhlZC13aWR0aCwgdGhlcmVmb3JlIGNhdXNpbmdcbiAgIGRpZ2l0cyBpbiBmbG93ZWQgdGV4dCB0byBzdGFuZCBvdXQuXG4gICBUT0RPOiBDb25zaWRlciBwdXR0aW5nIGFsbCBlbW9qaSBmb250cyB0byB0aGUgZW5kIHJhdGhlciB0aGFuIHRoZSBmcm9udC4gKi9cbiRmb250LWZhbWlseTpcbiAgICBcIk51bml0b1wiLCB2YXIoLS1lbW9qaS1mb250LWZhbWlseSksIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIkFyaWFsXCIsIFwiSGVsdmV0aWNhXCIsIHNhbnMtc2VyaWYsXG4gICAgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG5cbiRtb25vc3BhY2UtZm9udC1mYW1pbHk6XG4gICAgXCJGaXJhIENvZGVcIiwgdmFyKC0tZW1vamktZm9udC1mYW1pbHkpLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJDb3VyaWVyXCIsIG1vbm9zcGFjZSxcbiAgICBcIk5vdG8gQ29sb3IgRW1vamlcIjtcblxuLyogdW5pZmllZCBwYWxldHRlICovXG4vKiB0cnkgdG8gdXNlIHRoZXNlIGNvbG9ycyB3aGVuIHBvc3NpYmxlICovXG4kaGVhZGVyLXBhbmVsLWJnLWNvbG9yOiAjZjNmOGZkO1xuJGhlYWRlci1wYW5lbC1iZy1ob3ZlcjogdmFyKC0tY3BkLWNvbG9yLWdyYXktMjAwKTtcblxuLyogdHlwaWNhbCB0ZXh0IChkYXJrLW9uLXdoaXRlIGluIGxpZ2h0IHNraW4pICovXG4kcHJpbWFyeS1mZy1jb2xvcjogIzJlMmYzMjtcbiRzZWNvbmRhcnktZmctY29sb3I6ICRwcmltYXJ5LWZnLWNvbG9yO1xuJHRlcnRpYXJ5LWZnLWNvbG9yOiAkcHJpbWFyeS1mZy1jb2xvcjtcbiRwcmltYXJ5LWJnLWNvbG9yOiAjZmZmZmZmO1xuJG11dGVkLWZnLWNvbG9yOiAjNjE3MDhiOyAvKiBDb21tb25seSB1c2VkIGluIGhlYWRpbmdzIGFuZCByZWxldmFudCBhbHQgdGV4dCAqL1xuXG4vKiB1c2VkIGZvciBkaWFsb2cgYm94IHRleHQgKi9cbiRsaWdodC1mZy1jb2xvcjogIzc0NzQ3NDtcblxuLyogdXNlZCBmb3IgZm9jdXNpbmcgZm9ybSBjb250cm9scyAqL1xuJGZvY3VzLWJnLWNvbG9yOiAjZGRkZGRkO1xuXG4vKiBidXR0b24gVUkgKHdoaXRlLW9uLWdyZWVuIGluIGxpZ2h0IHNraW4pICovXG4kYWNjZW50LWZnLWNvbG9yOiAjZmZmZmZmO1xuJGFjY2VudC1hbHQ6ICMyMzhjZjU7XG5cbiRzZWxlY3Rpb24tZmctY29sb3I6ICRwcmltYXJ5LWJnLWNvbG9yO1xuXG4kZm9jdXMtYnJpZ2h0bmVzczogMTA1JTtcblxuLyogaW5mb3JtYXRpb25hbCBwbGludGggKi9cbiRpbmZvLXBsaW50aC1iZy1jb2xvcjogI2Y3ZjdmNztcbiRpbmZvLXBsaW50aC1mZy1jb2xvcjogIzg4ODtcblxuLyogbGVmdC1wYW5lbCBzdHlsZSBtdXRlZCBhY2NlbnQgY29sb3IgKi9cbiRzZWNvbmRhcnktYWNjZW50LWNvbG9yOiAjZjJmNWY4O1xuXG4kc3BhY2VQYW5lbC1iZy1jb2xvcjogIzI3MzAzYTtcbiRpbnZlcnRlZC1iZy1jb2xvcjogJHNwYWNlUGFuZWwtYmctY29sb3I7XG5cbi8qIHVzZWQgYnkgUm9vbURyb3BUYXJnZXQgKi9cbiRkcm9wdGFyZ2V0LWJnLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSwgMC41KTtcblxuLyogdXNlZCBieSBBdXRvY29tcGxldGUgKi9cbiRzZWxlY3RlZC1jb2xvcjogJHNlY29uZGFyeS1hY2NlbnQtY29sb3I7XG5cbi8qIHNlbGVjdGVkIGZvciBob3Zlcm92ZXIgJiBzZWxlY3RlZCBldmVudCB0aWxlcyAqL1xuJGV2ZW50LXNlbGVjdGVkLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuXG4vKiB1c2VkIGZvciB0aGUgaGFpcmxpbmUgZGl2aWRlcnMgaW4gUm9vbVZpZXcgKi9cbiRwcmltYXJ5LWhhaXJsaW5lLWNvbG9yOiAjZTVlNWU1O1xuJHNlY29uZGFyeS1oYWlybGluZS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWdyYXktMzAwKTtcblxuLyogdXNlZCBmb3IgdGhlIGJvcmRlciBvZiBpbnB1dCB0ZXh0IGZpZWxkcyAqL1xuJGlucHV0LWJvcmRlci1jb2xvcjogI2U3ZTdlNztcbiRpbnB1dC1kYXJrZXItYmctY29sb3I6ICNlM2U4ZjA7XG4kaW5wdXQtZGFya2VyLWZnLWNvbG9yOiAjOWZhOWJhO1xuJGlucHV0LWxpZ2h0ZXItYmctY29sb3I6ICNmMmY1Zjg7XG5cbiRyZXNlbmQtYnV0dG9uLWRpdmlkZXItY29sb3I6ICRpbnB1dC1kYXJrZXItYmctY29sb3I7XG5cbiRidXR0b24tZmctY29sb3I6IHdoaXRlO1xuXG4vKiBhcGFydCBmcm9tIGxvZ2luIGZvcm1zLCB3aGljaCBoYXZlIHN0cm9uZ2VyIGJvcmRlciAqL1xuJHN0cm9uZy1pbnB1dC1ib3JkZXItY29sb3I6ICNjN2M3Yzc7XG5cbi8qIHVzZWQgZm9yIFVzZXJTZXR0aW5ncyBFZGl0YWJsZVRleHQgKi9cbiRpbnB1dC11bmRlcmxpbmUtY29sb3I6IHJnYigxNTEsIDE1MSwgMTUxLCAwLjUpO1xuJGlucHV0LWZnLWNvbG9yOiByZ2IoNzQsIDc0LCA3NCwgMC45KTtcbiRpbnB1dC1wbGFjZWhvbGRlcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbi8qIHNjcm9sbGJhcnMgKi9cbiRzY3JvbGxiYXItdGh1bWItY29sb3I6IHJnYigwLCAwLCAwLCAwLjIpO1xuLyogY29udGV4dCBtZW51cyAqL1xuJG1lbnUtYm9yZGVyLWNvbG9yOiAjZTdlN2U3O1xuJG1lbnUtYmctY29sb3I6ICNmZmY7XG4kbWVudS1ib3gtc2hhZG93LWNvbG9yOiByZ2IoMTE4LCAxMzEsIDE1NiwgMC42KTtcbiRtZW51LXNlbGVjdGVkLWNvbG9yOiAjZjVmOGZhO1xuXG4kYXZhdGFyLWluaXRpYWwtY29sb3I6ICNmZmZmZmY7XG5cbiRoMy1jb2xvcjogIzNkM2IzOTtcbiRpY29uLWJ1dHRvbi1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xuXG4kZGlhbG9nLXRpdGxlLWZnLWNvbG9yOiAjNDU0NzRhO1xuJGRpYWxvZy1iYWNrZHJvcC1jb2xvcjogcmdiKDQ2LCA0OCwgNTEsIDAuMzgpO1xuJGRpYWxvZy1jbG9zZS1mZy1jb2xvcjogJGljb24tYnV0dG9uLWNvbG9yO1xuJGRpYWxvZy1jbG9zZS1leHRlcm5hbC1jb2xvcjogJHByaW1hcnktYmctY29sb3I7XG5cbiRsaWdodGJveC1iYWNrZ3JvdW5kLWJnLWNvbG9yOiAjMDAwO1xuJGxpZ2h0Ym94LWJhY2tncm91bmQtYmctb3BhY2l0eTogMC45NTtcblxuJGltYWdlYm9keS1naWZsYWJlbDogcmdiKDAsIDAsIDAsIDAuNyk7XG4kaW1hZ2Vib2R5LWdpZmxhYmVsLWJvcmRlcjogcmdiKDAsIDAsIDAsIDAuMik7XG4kaW1hZ2Vib2R5LWdpZmxhYmVsLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSwgMSk7XG5cbiRpbmZvLXBsaW50aC1mZy1jb2xvcjogIzg4ODtcblxuJG5ldXRyYWwtYmFkZ2UtY29sb3I6ICNkYmRiZGI7XG5cbiRwcmV2aWV3LXdpZGdldC1iYXItY29sb3I6ICNkZGQ7XG5cbiRibG9ja3F1b3RlLWJhci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1wcmltYXJ5KTtcblxuJHNldHRpbmdzLWdyZXktZmctY29sb3I6ICNhMmEyYTI7XG4kc2V0dGluZ3Mtc3Vic2VjdGlvbi1mZy1jb2xvcjogIzYxNzA4YjtcblxuJHJ0ZS1iZy1jb2xvcjogI2U5ZTllOTtcbiRydGUtY29kZS1iZy1jb2xvcjogcmdiKDAsIDAsIDAsIDAuMDQpO1xuXG4kaGVhZGVyLXBhbmVsLXRleHQtcHJpbWFyeS1jb2xvcjogIzkxYTFjMDtcblxuJHBpbGwtYmctY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1yZXN0KTtcbiRwaWxsLWhvdmVyLWJnLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktaG92ZXJlZCk7XG4kcGlsbC1wcmVzcy1iZy1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXByZXNzZWQpO1xuXG4kdG9wbGVmdG1lbnUtY29sb3I6ICMyMTIxMjE7XG4kcm9vbWhlYWRlci1iZy1jb2xvcjogJHByaW1hcnktYmctY29sb3I7XG4kcm9vbWhlYWRlci1hZGRyb29tLWJnLWNvbG9yOiAjOTFhMWMwO1xuJHJvb21oZWFkZXItYWRkcm9vbS1mZy1jb2xvcjogJGFjY2VudC1mZy1jb2xvcjtcbiRyb29tdG9waWMtY29sb3I6ICM5ZTllOWU7XG4kcm9vbS1pY29uLXVucmVhZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xuXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4kcHJlc2VuY2UtYXdheTogI2Q5YjA3MjtcbiRwcmVzZW5jZS1vZmZsaW5lOiAjZTNlOGYwO1xuJHByZXNlbmNlLWJ1c3k6ICNmZjViNTU7XG5cbi8qIExlZ2FjeSB0aGVtZSBiYWNrcG9ydHMgKi9cbiRhY2NlbnQ6ICMwZGJkOGI7XG4kYWxlcnQ6ICNmZjViNTU7XG4kbGlua3M6ICMwMDg2ZTY7XG4kbGluay1leHRlcm5hbDogIzA0NjdkZDtcbiRwcmltYXJ5LWNvbnRlbnQ6ICRwcmltYXJ5LWZnLWNvbG9yO1xuJHNlY29uZGFyeS1jb250ZW50OiAkc2Vjb25kYXJ5LWZnLWNvbG9yO1xuJHRlcnRpYXJ5LWNvbnRlbnQ6ICR0ZXJ0aWFyeS1mZy1jb2xvcjtcbiRxdWF0ZXJuYXJ5LWNvbnRlbnQ6ICM2Zjc4ODI7XG4kcXVpbmFyeS1jb250ZW50OiAkcXVhdGVybmFyeS1jb250ZW50O1xuJHN5c3RlbTogI2Y0ZjZmYTtcbiRzeXN0ZW0tdHJhbnNwYXJlbnQ6ICNlMWU2ZWMwMDtcbiRiYWNrZ3JvdW5kOiAkcHJpbWFyeS1iZy1jb2xvcjtcblxuJHBhbmVsczogcmdiYSgkc3lzdGVtLCAwLjkpO1xuJHBhbmVsLWFjdGlvbnM6ICNmZmY7XG5cbiRzZXBhcmF0b3I6IHZhcigtLWNwZC1jb2xvci1ncmF5LTQwMCk7XG5cbi8qIExlZ2FjeSB0aGVtZSBiYWNrcG9ydHMgKi9cblxuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiR2b2lwY2FsbC1wbGludGgtY29sb3I6ICRzeXN0ZW07XG5cbiRjYWxsLXZpZXctYnV0dG9uLW9uLWZvcmVncm91bmQ6ICRzZWNvbmRhcnktY29udGVudDtcbiRjYWxsLXZpZXctYnV0dG9uLW9uLWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuJGNhbGwtdmlldy1idXR0b24tb2ZmLWZvcmVncm91bmQ6ICRiYWNrZ3JvdW5kO1xuJGNhbGwtdmlldy1idXR0b24tb2ZmLWJhY2tncm91bmQ6ICRzZWNvbmRhcnktY29udGVudDtcbiRjYWxsLXZpZXctY29udGVudC1iYWNrZ3JvdW5kOiAjMjEyNjJjO1xuXG4kdmlkZW8tZmVlZC1zZWNvbmRhcnktYmFja2dyb3VuZDogIzM5NDA0OTsgLyogWFhYOiBDb2xvciBmcm9tIGRhcmsgdGhlbWUgKi9cblxuLyogQWxsIG9mIHRoZXNlIGFyZSBmcm9tIGRhcmsgdGhlbWUgKi9cbiRjYWxsLXN5c3RlbTogIzIxMjYyYztcbiRjYWxsLWJhY2tncm91bmQ6ICMxNTE5MWU7XG4kY2FsbC1wcmltYXJ5LWNvbnRlbnQ6ICNmZmZmZmY7XG4kY2FsbC1saWdodC1xdWF0ZXJuYXJ5LWNvbnRlbnQ6ICNjMWM2Y2Q7XG5cbiR1c2VybmFtZS12YXJpYW50MS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS0xKTtcbiR1c2VybmFtZS12YXJpYW50Mi1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS0yKTtcbiR1c2VybmFtZS12YXJpYW50My1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS0zKTtcbiR1c2VybmFtZS12YXJpYW50NC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS00KTtcbiR1c2VybmFtZS12YXJpYW50NS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS01KTtcbiR1c2VybmFtZS12YXJpYW50Ni1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS02KTtcblxuLyoqXG4gKiBDcmVhdGluZyBhIGBzZW1hbnRpY2AgY29sb3Igc2NhbGUuIFRoaXMgd2lsbCBub3QgYmUgbmVlZGVkIHdpdGggdGhlIG5ld1xuICogdmlzdWFsIGxhbmd1YWdlLCBidXQgbmVjZXNzYXJ5IGR1cmluZyB0aGUgdHJhbnNpdGlvbiBwZXJpb2RcbiAqIFRoaXMgYWJzdHJhY3QgdGhlIGBncmVlbmAgYXdheSBmcm9tIHdoZXJlIGFjY2VudCBzaGFkZXMgYXJlIHVzZWRcbiAqIFRha2U6IGBiYWNrZ3JvdW5kOiByZ2JhKCRhY2NlbnQsIDAuMSk7YFxuICogd291bGQgYmUgdHJhbnNmb3JtZWQgdG86IGBiYWNrZ3JvdW5kOiAkYWNjZW50LTMwMDtgXG4gKlxuICogVG8gdXNlIHVuZGVyIHZlcnkgcmFyZSBjaXJjdW1zdGFuY2VzLCBhbHdheXMgcHJlZmVyIHRoZSBzZW1hbnRpY3MgZGVmaW5lZFxuICogaW4gaHR0cHM6Ly9jb21wb3VuZC5lbGVtZW50LmlvLz9wYXRoPS9kb2NzL3Rva2Vucy1zZW1hbnRpYy1jb2xvcnMtLWRvY3NcbiAqL1xuJGFjY2VudC0xMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0xMDApO1xuJGFjY2VudC0yMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0yMDApO1xuJGFjY2VudC0zMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0zMDApO1xuJGFjY2VudC00MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi00MDApO1xuJGFjY2VudC01MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi01MDApO1xuJGFjY2VudC02MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi02MDApO1xuJGFjY2VudC03MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi03MDApO1xuJGFjY2VudC04MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi04MDApO1xuJGFjY2VudC05MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi05MDApO1xuJGFjY2VudC0xMDAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMTAwMCk7XG4kYWNjZW50LTExMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0xMTAwKTtcbiRhY2NlbnQtMTIwMDogdmFyKC0tY3BkLWNvbG9yLWdyZWVuLTEyMDApO1xuJGFjY2VudC0xMzAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMTMwMCk7XG4kYWNjZW50LTE0MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0xNDAwKTtcblxuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuJHdpZGdldC1tZW51LWJhci1iZy1jb2xvcjogJHNlY29uZGFyeS1hY2NlbnQtY29sb3I7XG4kd2lkZ2V0LWJvZHktYmctY29sb3I6ICNmZmY7XG5cbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbi8qICRldmVudC1oaWdobGlnaHQtYmctY29sb3Igc2hhcmVzIHRoaXMgdmFsdWUsICovXG4vKiBzbyB0byBub3QgbWFrZSB0aGVpciBvcmRlciBkZXBlbmRlbnQgb24gd2hvIGRlcGVuZHMgb24gd2hvLCBoYXZlIGEgc2hhcmVkIHZhbHVlICovXG4vKiBkZWZpbmVkIGJlZm9yZSBib3RoICovXG4keWVsbG93LWJhY2tncm91bmQ6ICNmZmY4ZTM7XG5cbiRldmVudC1oaWdobGlnaHQtYmctY29sb3I6ICR5ZWxsb3ctYmFja2dyb3VuZDtcblxuLyogZXZlbnQgdGltZXN0YW1wICovXG4kZXZlbnQtdGltZXN0YW1wLWNvbG9yOiAjYWNhY2FjO1xuXG4vKiBlMmUgKi9cbiRlMmUtdmVyaWZpZWQtY29sb3I6ICMwZGJkOGI7XG4kZTJlLXdhcm5pbmctY29sb3I6ICNmZjViNTU7XG4kZTJlLXZlcmlmaWVkLWNvbG9yLWxpZ2h0OiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMzAwKTtcbiRlMmUtd2FybmluZy1jb2xvci1saWdodDogdmFyKC0tY3BkLWNvbG9yLXJlZC0zMDApO1xuXG4vKioqIEltYWdlVmlldyAqKiovXG4kbGlnaHRib3gtYmctY29sb3I6ICM0NTQ1NDU7XG4kbGlnaHRib3gtZmctY29sb3I6ICNmZmZmZmY7XG4kbGlnaHRib3gtYm9yZGVyLWNvbG9yOiAjZmZmZmZmO1xuXG4vKiBUYWJiZWQgdmlld3MgKi9cbiR0YWItbGFiZWwtZmctY29sb3I6ICM0NTQ3NGE7XG4kdGFiLWxhYmVsLWFjdGl2ZS1mZy1jb2xvcjogI2ZmZmZmZjtcblxuLyogQnV0dG9ucyAqL1xuJGJ1dHRvbi1wcmltYXJ5LWZnLWNvbG9yOiAjZmZmZmZmO1xuJGJ1dHRvbi1zZWNvbmRhcnktYmctY29sb3I6ICRhY2NlbnQtZmctY29sb3I7XG4kYnV0dG9uLWRhbmdlci1mZy1jb2xvcjogI2ZmZmZmZjtcbiRidXR0b24tZGFuZ2VyLWRpc2FibGVkLWZnLWNvbG9yOiAjZmZmZmZmO1xuJGJ1dHRvbi1kYW5nZXItZGlzYWJsZWQtYmctY29sb3I6ICNmNWI2YmI7IC8qIFRPRE86IFZlcmlmeSBjb2xvciAqL1xuXG4kdmlzdWFsLWJlbGwtYmctY29sb3I6ICNmYWE7XG5cbi8qIFRvZ2dsZSBzd2l0Y2ggKi9cbiR0b2dnbGVzdy1vZmYtY29sb3I6ICNjMWM5ZDY7XG4kdG9nZ2xlc3ctYmFsbC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuXG4kcHJvZ3Jlc3NiYXItYmctY29sb3I6IHJnYigxNDEsIDE1MSwgMTY1LCAwLjIpO1xuXG4kYXV0aHBhZ2UtYmctY29sb3I6ICMyZTM2NDk7XG4kYXV0aHBhZ2UtbW9kYWwtYmctY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1LCAwLjU5KTtcbiRhdXRocGFnZS1tb2RhbC1jb250ZW50LXdpdGgtYmx1ci1iZy1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUsIDAuNTkpO1xuJGF1dGhwYWdlLWZvY3VzLWJnLWNvbG9yOiAjZGRkZGRkO1xuJGF1dGhwYWdlLWxhbmctY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiRhdXRocGFnZS1wcmltYXJ5LWNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuJGF1dGhwYWdlLXNlY29uZGFyeS1jb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4kZGFyay1wYW5lbC1iZy1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1zZWNvbmRhcnkpO1xuJHBhbmVsLWdyYWRpZW50OiByZ2IoMjQyLCAyNDUsIDI0OCwgMCksIHJnYigyNDIsIDI0NSwgMjQ4LCAxKTtcblxuJG1lc3NhZ2UtYWN0aW9uLWJhci1iZy1jb2xvcjogJHByaW1hcnktYmctY29sb3I7XG4kbWVzc2FnZS1hY3Rpb24tYmFyLWZnLWNvbG9yOiAkcHJpbWFyeS1mZy1jb2xvcjtcbiRtZXNzYWdlLWFjdGlvbi1iYXItYm9yZGVyLWNvbG9yOiAjZTllZGYxO1xuJG1lc3NhZ2UtYWN0aW9uLWJhci1ob3Zlci1ib3JkZXItY29sb3I6ICRmb2N1cy1iZy1jb2xvcjtcblxuJHJlYWN0aW9uLXJvdy1idXR0b24taG92ZXItYm9yZGVyLWNvbG9yOiAkZm9jdXMtYmctY29sb3I7XG4kcmVhY3Rpb24tcm93LWJ1dHRvbi1zZWxlY3RlZC1iZy1jb2xvcjogI2U5ZmZmOTtcblxuJGtiZC1ib3JkZXItY29sb3I6ICRzdHJvbmctaW5wdXQtYm9yZGVyLWNvbG9yO1xuXG4kdG9vbHRpcC10aW1lbGluZS1iZy1jb2xvcjogJHNwYWNlUGFuZWwtYmctY29sb3I7XG4kdG9vbHRpcC10aW1lbGluZS1mZy1jb2xvcjogI2ZmZmZmZjtcblxuJGJyZWFkY3J1bWItcGxhY2Vob2xkZXItYmctY29sb3I6ICNlOGVlZjU7XG5cbi8qIFNlZSBub24tbGVnYWN5IF9saWdodCBmb3IgdmFyaWFibGUgaW5mb3JtYXRpb24gKi9cbiR2b2ljZS1yZWNvcmQtc3RvcC1zeW1ib2wtY29sb3I6ICNmZjRiNTU7XG4kdm9pY2UtcmVjb3JkLWxpdmUtY2lyY2xlLWNvbG9yOiAjZmY0YjU1O1xuJHZvaWNlLXJlY29yZC1zdG9wLWJvcmRlci1jb2xvcjogI2UzZThmMDtcbiR2b2ljZS1yZWNvcmQtaWNvbi1jb2xvcjogJHRlcnRpYXJ5LWZnLWNvbG9yO1xuXG4kY29tcG9zZXItc2hhZG93LWNvbG9yOiB0cmFucGFyZW50O1xuXG4kY29kZWJsb2NrLWJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG4kaW5saW5lY29kZS1ib3JkZXItY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG4kaW5saW5lY29kZS1iYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuXG4vKiBCdWJibGUgdGlsZXMgKi9cbiRldmVudGJ1YmJsZS1zZWxmLWJnOiAjZjBmYmY4O1xuJGV2ZW50YnViYmxlLW90aGVycy1iZzogJHN5c3RlbTtcbiRldmVudGJ1YmJsZS1iZy1ob3ZlcjogI2ZhZmJmZDtcblxuLyogcGlubmVkIGV2ZW50cyBpbmRpY2F0b3IgKi9cbiRwaW5uZWQtY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuXG4kc3BhY2VQYW5lbC1kaXZpZGVyLWNvbG9yOiAkdGVydGlhcnktY29udGVudDtcblxuLyogTG9jYXRpb24gc2hhcmluZyAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRsb2NhdGlvbi1tYXJrZXItY29sb3I6ICNmZmZmZmY7XG4kbG9jYXRpb24tbGl2ZS1jb2xvcjogIzVjNTZmNTtcbiRsb2NhdGlvbi1saXZlLXNlY29uZGFyeS1jb2xvcjogI2RlZGRmZDtcbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbmJvZHkge1xuICAgIGNvbG9yLXNjaGVtZTogbGlnaHQ7XG59XG5cbi8qIGRpZmYgaGlnaGxpZ2h0IGNvbG9ycyAqL1xuLmhsanMtYWRkaXRpb24ge1xuICAgIGJhY2tncm91bmQ6ICNkZmQ7XG59XG5cbi5obGpzLWRlbGV0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmRkO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyogc3R5bGVsaW50LWRpc2FibGUgY3NzdG9vbHMvdmFsdWUtbm8tdW5rbm93bi1jdXN0b20tcHJvcGVydGllcyAqL1xuXG4kZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5LCAkZm9udC1mYW1pbHkpO1xuJG1vbm9zcGFjZS1mb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHktbW9ub3NwYWNlLCAkbW9ub3NwYWNlLWZvbnQtZmFtaWx5KTtcblxuLyogQ29sb3JzIGZyb20gRmlnbWEgQ29tcG91bmQgaHR0cHM6Ly93d3cuZmlnbWEuY29tL2ZpbGUvWDRYVEg5aVMyS0dKMndGS0Rxa3llZC9Db21wb3VuZD9ub2RlLWlkPTU1OSUzQTc0MSAqL1xuJGFjY2VudDogdmFyKC0tYWNjZW50LWNvbG9yLCAkYWNjZW50KTtcbiRhbGVydDogdmFyKC0tYWxlcnQsICRhbGVydCk7XG4kbGlua3M6IHZhcigtLWxpbmtzLCAkbGlua3MpO1xuJHByaW1hcnktY29udGVudDogdmFyKC0tcHJpbWFyeS1jb250ZW50LCAkcHJpbWFyeS1jb250ZW50KTtcbiRzZWNvbmRhcnktY29udGVudDogdmFyKC0tc2Vjb25kYXJ5LWNvbnRlbnQsICRzZWNvbmRhcnktY29udGVudCk7XG4kdGVydGlhcnktY29udGVudDogdmFyKC0tdGVydGlhcnktY29udGVudCwgJHRlcnRpYXJ5LWNvbnRlbnQpO1xuJHF1YXRlcm5hcnktY29udGVudDogdmFyKC0tcXVhdGVybmFyeS1jb250ZW50LCAkcXVhdGVybmFyeS1jb250ZW50KTtcbiRxdWluYXJ5LWNvbnRlbnQ6IHZhcigtLXF1aW5hcnktY29udGVudCwgJHF1aW5hcnktY29udGVudCk7XG4kc3lzdGVtOiB2YXIoLS1zeXN0ZW0sICRzeXN0ZW0pO1xuJHN5c3RlbS10cmFuc3BhcmVudDogdmFyKC0tc3lzdGVtLXRyYW5zcGFyZW50LCAjZTFlNmVjMDApO1xuJGJhY2tncm91bmQ6IHZhcigtLWJhY2tncm91bmQsICRiYWNrZ3JvdW5kKTtcbiRwYW5lbHM6IHZhcigtLXBhbmVscywgdmFyKC0tY3BkLWNvbG9yLWdyYXktNjAwKSk7XG4kcGFuZWwtYWN0aW9uczogdmFyKC0tcGFuZWxzLWFjdGlvbnMsIHZhcigtLWNwZC1jb2xvci1ncmF5LTMwMCkpO1xuXG4vKiAtLXRpbWVsaW5lLWJhY2tncm91bmQtY29sb3IgKi9cbiRjdXN0b20tdGhlbWUtYmFja2dyb3VuZDogdmFyKC0tdGltZWxpbmUtYmFja2dyb3VuZC1jb2xvciwgdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KSk7XG4kYnV0dG9uLXNlY29uZGFyeS1iZy1jb2xvcjogJGN1c3RvbS10aGVtZS1iYWNrZ3JvdW5kO1xuJGxpZ2h0Ym94LWJvcmRlci1jb2xvcjogJGN1c3RvbS10aGVtZS1iYWNrZ3JvdW5kO1xuJG1lbnUtYmctY29sb3I6ICRjdXN0b20tdGhlbWUtYmFja2dyb3VuZDtcbiRtZXNzYWdlLWFjdGlvbi1iYXItYmctY29sb3I6ICRjdXN0b20tdGhlbWUtYmFja2dyb3VuZDtcbiRiYWNrZ3JvdW5kOiAkY3VzdG9tLXRoZW1lLWJhY2tncm91bmQ7XG4kdG9nZ2xlc3ctYmFsbC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuJHRvZ2dsZXN3LW9mZi1jb2xvcjogdmFyKC0tdG9nZ2xlc3ctb2ZmLWNvbG9yKTtcbiRkcm9wdGFyZ2V0LWJnLWNvbG9yOiB2YXIoLS10aW1lbGluZS1iYWNrZ3JvdW5kLWNvbG9yLTUwcGN0KTsgLyogc3RpbGwgbmVlZHMgYWxwaGEgYXQgLjUgKi9cbiRhdXRocGFnZS1tb2RhbC1iZy1jb2xvcjogdmFyKC0tdGltZWxpbmUtYmFja2dyb3VuZC1jb2xvci01MHBjdCk7IC8qIHN0aWxsIG5lZWRzIGFscGhhIGF0IC41OSAqL1xuJHJvb21oZWFkZXItYmctY29sb3I6ICRjdXN0b20tdGhlbWUtYmFja2dyb3VuZDtcblxuLyogLS1yb29tbGlzdC1oaWdobGlnaHRzLWNvbG9yICovXG4kcGFuZWwtYWN0aW9uczogdmFyKC0tcm9vbWxpc3QtaGlnaGxpZ2h0cy1jb2xvcik7XG5cbi8qIC0tc2lkZWJhci1jb2xvciAqL1xuJHNwYWNlUGFuZWwtYmctY29sb3I6IHZhcigtLXNpZGViYXItY29sb3IpO1xuJHRvb2x0aXAtdGltZWxpbmUtYmctY29sb3I6IHZhcigtLXNpZGViYXItY29sb3IpO1xuJGRpYWxvZy1iYWNrZHJvcC1jb2xvcjogdmFyKC0tc2lkZWJhci1jb2xvci01MHBjdCk7XG5cbi8qIC0tcm9vbWxpc3QtYmFja2dyb3VuZC1jb2xvciAqL1xuJGhlYWRlci1wYW5lbC1iZy1jb2xvcjogdmFyKC0tcm9vbWxpc3QtYmFja2dyb3VuZC1jb2xvcik7XG4kaGVhZGVyLXBhbmVsLWJnLWhvdmVyOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXNlY29uZGFyeS1ob3ZlcmVkKTtcbiRwYW5lbC1ncmFkaWVudDogdmFyKC0tcm9vbWxpc3QtYmFja2dyb3VuZC1jb2xvci0wcGN0KSwgdmFyKC0tcm9vbWxpc3QtYmFja2dyb3VuZC1jb2xvcik7XG4vKiB0aGVzZSB3ZXJlICNmMmY1ZjggaW5zdGVhZCBvZiAjZjNmOGZkLCBidXQgY2xvc2UgZW5vdWdoICovXG4kZGFyay1wYW5lbC1iZy1jb2xvcjogdmFyKC0tcm9vbWxpc3QtYmFja2dyb3VuZC1jb2xvcik7XG4kaW5wdXQtbGlnaHRlci1iZy1jb2xvcjogdmFyKC0tcm9vbWxpc3QtYmFja2dyb3VuZC1jb2xvcik7XG4kc2Vjb25kYXJ5LWFjY2VudC1jb2xvcjogdmFyKC0tcm9vbWxpc3QtYmFja2dyb3VuZC1jb2xvcik7XG4kc2VsZWN0ZWQtY29sb3I6IHZhcigtLXJvb21saXN0LWJhY2tncm91bmQtY29sb3IpO1xuJHdpZGdldC1tZW51LWJhci1iZy1jb2xvcjogdmFyKC0tcm9vbWxpc3QtYmFja2dyb3VuZC1jb2xvcik7XG4kcm9vbWxpc3QtYmctY29sb3I6IHZhcigtLXJvb21saXN0LWJhY2tncm91bmQtY29sb3IpO1xuXG4vKiAtLXRpbWVsaW5lLXRleHQtY29sb3IgKi9cbiRtZXNzYWdlLWFjdGlvbi1iYXItZmctY29sb3I6IHZhcigtLXRpbWVsaW5lLXRleHQtY29sb3IpO1xuJHByaW1hcnktY29udGVudDogdmFyKC0tdGltZWxpbmUtdGV4dC1jb2xvcik7XG4kcm9vbXRvcGljLWNvbG9yOiB2YXIoLS10aW1lbGluZS10ZXh0LWNvbG9yLTUwcGN0KTtcbi8qIHdhcyAjMjEyMTIxICovXG4kdG9wbGVmdG1lbnUtY29sb3I6IHZhcigtLXRpbWVsaW5lLXRleHQtY29sb3IpO1xuLyogd2FzICM0NTQ3NGEgKi9cbiRkaWFsb2ctdGl0bGUtZmctY29sb3I6IHZhcigtLXRpbWVsaW5lLXRleHQtY29sb3IpO1xuLyogd2FzICM0ZTUwNTQgKi9cbiRhdXRocGFnZS1sYW5nLWNvbG9yOiB2YXIoLS10aW1lbGluZS10ZXh0LWNvbG9yKTtcbi8qIHdhcyAjMjMyZjMyICovXG4kYXV0aHBhZ2UtcHJpbWFyeS1jb2xvcjogdmFyKC0tdGltZWxpbmUtdGV4dC1jb2xvcik7XG5cbi8qIC0tcm9vbWxpc3Qtc2VwYXJhdG9yLWNvbG9yICovXG4kaW5wdXQtZGFya2VyLWJnLWNvbG9yOiB2YXIoLS1yb29tbGlzdC1zZXBhcmF0b3ItY29sb3IpO1xuJHByaW1hcnktaGFpcmxpbmUtY29sb3I6IHZhcigtLXJvb21saXN0LXNlcGFyYXRvci1jb2xvcik7IC8qIG9yaWdpbmFsbHkgI2U1ZTVlNSwgYnV0IGNsb3NlIGVub3VnaCAqL1xuJHNlY29uZGFyeS1oYWlybGluZS1jb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWhhaXJsaW5lLWNvbG9yKTtcblxuLyogLS10aW1lbGluZS10ZXh0LXNlY29uZGFyeS1jb2xvciAqL1xuJGF1dGhwYWdlLXNlY29uZGFyeS1jb2xvcjogdmFyKC0tdGltZWxpbmUtdGV4dC1zZWNvbmRhcnktY29sb3IpO1xuJHBpbm5lZC1jb2xvcjogdmFyKC0tdGltZWxpbmUtdGV4dC1zZWNvbmRhcnktY29sb3IpO1xuJHNldHRpbmdzLXN1YnNlY3Rpb24tZmctY29sb3I6IHZhcigtLXRpbWVsaW5lLXRleHQtc2Vjb25kYXJ5LWNvbG9yKTtcbiRyb29taGVhZGVyLWFkZHJvb20tYmctY29sb3I6IHZhcigtLXRpbWVsaW5lLXRleHQtc2Vjb25kYXJ5LWNvbG9yKTtcbi8qIHdhcyAjNzQ3NDc0ICovXG4kbGlnaHQtZmctY29sb3I6IHZhcigtLXRpbWVsaW5lLXRleHQtc2Vjb25kYXJ5LWNvbG9yKTtcbiRmb2N1cy1iZy1jb2xvcjogdmFyKC0tZm9jdXMtYmctY29sb3IsICRmb2N1cy1iZy1jb2xvcik7XG4kcm9vbS1oaWdobGlnaHQtY29sb3I6IHZhcigtLXJvb20taGlnaGxpZ2h0LWNvbG9yKTtcblxuJHJ0ZS1yb29tLXBpbGwtY29sb3I6ICRyb29tLWhpZ2hsaWdodC1jb2xvcjtcblxuLyogd2FzICM4ODg4ODggKi9cbiRpbmZvLXBsaW50aC1mZy1jb2xvcjogdmFyKC0tdGltZWxpbmUtdGV4dC1zZWNvbmRhcnktY29sb3IpO1xuXG4vKiAtLXByaW1hcnktY29sb3IgKi9cbiRhY2NlbnQtYWx0OiB2YXIoLS1wcmltYXJ5LWNvbG9yKTtcblxuLyogLS13YXJuaW5nLWNvbG9yICovXG4kYnV0dG9uLWRhbmdlci1kaXNhYmxlZC1iZy1jb2xvcjogdmFyKC0td2FybmluZy1jb2xvci01MHBjdCk7IC8qIHN0aWxsIG5lZWRzIGFscGhhIGF0IDAuNSAqL1xuXG4vKiAtLXRpbWVsaW5lLWhpZ2hsaWdodHMtY29sb3IgKi9cbiRldmVudC1zZWxlY3RlZC1jb2xvcjogdmFyKC0tdGltZWxpbmUtaGlnaGxpZ2h0cy1jb2xvcik7XG4kZXZlbnQtaGlnaGxpZ2h0LWJnLWNvbG9yOiB2YXIoLS10aW1lbGluZS1oaWdobGlnaHRzLWNvbG9yKTtcblxuLyogcmVkaXJlY3Qgc29tZSB2YXJpYWJsZXMgYXdheSBmcm9tIHRoZWlyIGhhcmRjb2RlZCB2YWx1ZXMgaW4gdGhlIGxpZ2h0IHRoZW1lICovXG4kc2V0dGluZ3MtZ3JleS1mZy1jb2xvcjogJHByaW1hcnktY29udGVudDtcblxuLyogLS1ldmVudGJ1YmJsZSBjb2xvcnMgKi9cbiRldmVudGJ1YmJsZS1zZWxmLWJnOiB2YXIoLS1ldmVudGJ1YmJsZS1zZWxmLWJnLCAkZXZlbnRidWJibGUtc2VsZi1iZyk7XG4kZXZlbnRidWJibGUtb3RoZXJzLWJnOiB2YXIoLS1ldmVudGJ1YmJsZS1vdGhlcnMtYmcsICRldmVudGJ1YmJsZS1vdGhlcnMtYmcpO1xuJGV2ZW50YnViYmxlLWJnLWhvdmVyOiB2YXIoLS1ldmVudGJ1YmJsZS1iZy1ob3ZlciwgJGV2ZW50YnViYmxlLWJnLWhvdmVyKTtcblxuJHJlYWN0aW9uLXJvdy1idXR0b24tc2VsZWN0ZWQtYmctY29sb3I6IHZhcihcbiAgICAtLXJlYWN0aW9uLXJvdy1idXR0b24tc2VsZWN0ZWQtYmctY29sb3IsXG4gICAgJHJlYWN0aW9uLXJvdy1idXR0b24tc2VsZWN0ZWQtYmctY29sb3Jcbik7XG5cbiRtZW51LXNlbGVjdGVkLWNvbG9yOiB2YXIoLS1tZW51LXNlbGVjdGVkLWNvbG9yLCAkbWVudS1zZWxlY3RlZC1jb2xvcik7XG4kcGlsbC1iZy1jb2xvcjogdmFyKC0tb3RoZXItdXNlci1waWxsLWJnLWNvbG9yLCAkcGlsbC1iZy1jb2xvcik7XG4kcGlsbC1ob3Zlci1iZy1jb2xvcjogdmFyKC0tb3RoZXItdXNlci1waWxsLWJnLWNvbG9yLCAkcGlsbC1ob3Zlci1iZy1jb2xvcik7XG4kcGlsbC1wcmVzcy1iZy1jb2xvcjogdmFyKC0tb3RoZXItdXNlci1waWxsLWJnLWNvbG9yLCAkcGlsbC1wcmVzcy1iZy1jb2xvcik7XG4kaWNvbi1idXR0b24tY29sb3I6IHZhcigtLWljb24tYnV0dG9uLWNvbG9yLCAkaWNvbi1idXR0b24tY29sb3IpO1xuXG4kc3Ryb25nLWlucHV0LWJvcmRlci1jb2xvcjogdmFyKC0tc3Ryb25nLWlucHV0LWJvcmRlci1jb2xvciwgJHN0cm9uZy1pbnB1dC1ib3JkZXItY29sb3IpO1xuJGludmVydGVkLWJnLWNvbG9yOiB2YXIoLS1zdHJvbmctaW5wdXQtYm9yZGVyLWNvbG9yLCAkaW52ZXJ0ZWQtYmctY29sb3IpO1xuXG4vKipcbiAqIFZhcmlhdGlvbiBvZiB0aGUgYWNjZW50IGNvbG9yLlxuICogR2VuZXJhdGUgdGhpcyBjb2xvdXIgc2NhbGUgdXNpbmcgTGVvbmFyZG9Db2xvclxuICogVE9ETzogQWRkIGxpbmtcbiAqL1xuJGFjY2VudC0xMDA6IHZhcigtLWFjY2VudC1jb2xvci0xMDApO1xuJGFjY2VudC0yMDA6IHZhcigtLWFjY2VudC1jb2xvci0yMDApO1xuJGFjY2VudC0zMDA6IHZhcigtLWFjY2VudC1jb2xvci0zMDApO1xuJGFjY2VudC00MDA6IHZhcigtLWFjY2VudC1jb2xvci00MDApO1xuJGFjY2VudC01MDA6IHZhcigtLWFjY2VudC1jb2xvci01MDApO1xuJGFjY2VudC02MDA6IHZhcigtLWFjY2VudC1jb2xvci02MDApO1xuJGFjY2VudC03MDA6IHZhcigtLWFjY2VudC1jb2xvci03MDApO1xuJGFjY2VudC04MDA6IHZhcigtLWFjY2VudC1jb2xvci04MDApO1xuJGFjY2VudC05MDA6IHZhcigtLWFjY2VudC1jb2xvci05MDApO1xuJGFjY2VudC0xMDAwOiB2YXIoLS1hY2NlbnQtY29sb3ItMTAwMCk7XG4kYWNjZW50LTExMDA6IHZhcigtLWFjY2VudC1jb2xvci0xMTAwKTtcbiRhY2NlbnQtMTIwMDogdmFyKC0tYWNjZW50LWNvbG9yLTEyMDApO1xuJGFjY2VudC0xMzAwOiB2YXIoLS1hY2NlbnQtY29sb3ItMTMwMCk7XG4kYWNjZW50LTE0MDA6IHZhcigtLWFjY2VudC1jb2xvci0xNDAwKTtcbiIsIi8qIGF1dG9nZW5lcmF0ZWQgYnkgcmV0aGVtZW5kZXguc2ggKi9cbkBpbXBvcnQgXCIuL19hbmltYXRpb25zLnBjc3NcIjtcbkBpbXBvcnQgXCIuL19jb21tb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vX2ZvbnQtc2l6ZXMucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0JlYWNvbkxpc3RJdGVtLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19CZWFjb25TdGF0dXMucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0JlYWNvblN0YXR1c1Rvb2x0aXAucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0JlYWNvblZpZXdEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0RpYWxvZ093bkJlYWNvblN0YXR1cy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fRGlhbG9nU2lkZWJhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fTGVmdFBhbmVsTGl2ZVNoYXJlV2FybmluZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fTGl2ZVRpbWVSZW1haW5pbmcucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9iZWFjb24vX093bkJlYWNvblN0YXR1cy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fU2hhcmVMYXRlc3RMb2NhdGlvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fU3R5bGVkTGl2ZUJlYWNvbkljb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9jb250ZXh0X21lbnVzL19LZWJhYkNvbnRleHRNZW51LnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9wb2xscy9fUG9sbERldGFpbEhlYWRlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2RpYWxvZ3MvcG9sbHMvX1BvbGxMaXN0SXRlbS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2RpYWxvZ3MvcG9sbHMvX1BvbGxMaXN0SXRlbUVuZGVkLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvX0FwcFBlcm1pc3Npb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9fQXBwV2FybmluZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL19GaWx0ZXJEcm9wZG93bi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL19GaWx0ZXJUYWJHcm91cC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL19MZWFybk1vcmUucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fRW5hYmxlTGl2ZVNoYXJlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX0xpdmVEdXJhdGlvbkRyb3Bkb3duLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX0xvY2F0aW9uU2hhcmVNZW51LnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX01hcEVycm9yLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX01hcEZhbGxiYWNrLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX01hcmtlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19TaGFyZURpYWxvZ0J1dHRvbnMucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fU2hhcmVUeXBlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX1pvb21CdXR0b25zLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvbWVzc2FnZXMvX01CZWFjb25Cb2R5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvbWVzc2FnZXMvc2hhcmVkL19NZWRpYVByb2Nlc3NpbmdFcnJvci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3BvbGxzL19Qb2xsT3B0aW9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvX0FkZFJlbW92ZVRocmVlcGlkcy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0N1cnJlbnREZXZpY2VTZWN0aW9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRGV2aWNlRGV0YWlsSGVhZGluZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0RldmljZURldGFpbHMucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VFeHBhbmREZXRhaWxzQnV0dG9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRGV2aWNlU2VjdXJpdHlDYXJkLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRGV2aWNlVGlsZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0RldmljZVR5cGVJY29uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRmlsdGVyZWREZXZpY2VMaXN0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRmlsdGVyZWREZXZpY2VMaXN0SGVhZGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fU2VjdXJpdHlSZWNvbW1lbmRhdGlvbnMucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19TZWxlY3RhYmxlRGV2aWNlVGlsZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2VuY3J5cHRpb24vX0tleVN0b3JhZ2VQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL3NoYXJlZC9fU2V0dGluZ3NTdWJzZWN0aW9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3Mvc2hhcmVkL19TZXR0aW5nc1N1YnNlY3Rpb25IZWFkaW5nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc3BhY2VzL19RdWlja1RoZW1lU3dpdGNoZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy90eXBvZ3JhcGh5L19DYXB0aW9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvdW5kL19JY29uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvdW5kL19TdWNjZXNzRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX0F1dG9IaWRlU2Nyb2xsYmFyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX0F1dG9jb21wbGV0ZUlucHV0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX0NvbnRleHR1YWxNZW51LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX0Vycm9yTWVzc2FnZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19GaWxlRHJvcFRhcmdldC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19GaWxlUGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fR2VuZXJpY0Ryb3Bkb3duTWVudS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19Ib21lUGFnZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19MYXJnZUxvYWRlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19MZWZ0UGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fTWFpblNwbGl0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX01hdHJpeENoYXQucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fTmV3VGltZWxpbmVQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19Ob25VcmdlbnRUb2FzdENvbnRhaW5lci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19QaWN0dXJlSW5QaWN0dXJlRHJhZ2dlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19RdWlja1NldHRpbmdzQnV0dG9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1JpZ2h0UGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fUm9vbVZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fU2VhcmNoQm94LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1NwYWNlSGllcmFyY2h5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1NwYWNlUGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fU3BhY2VQaWxsQnV0dG9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1NwYWNlUm9vbVZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fU3BsYXNoUGFnZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19UYWJiZWRWaWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1RocmVhZHNBY3Rpdml0eUNlbnRyZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19Ub2FzdENvbnRhaW5lci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19VcGxvYWRCYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fVmlld1NvdXJjZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL2F1dGgvX0NvbXBsZXRlU2VjdXJpdHkucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9hdXRoL19Db25maXJtU2Vzc2lvbkxvY2tUaGVmdFZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9hdXRoL19Mb2dpbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL2F1dGgvX0xvZ2luU3BsYXNoVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL2F1dGgvX01vYmlsZVJlZ2lzdHJhdGlvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL2F1dGgvX1JlZ2lzdHJhdGlvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL2F1dGgvX1Nlc3Npb25Mb2NrU3RvbGVuVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL2F1dGgvX1NldHVwRW5jcnlwdGlvbkJvZHkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXVkaW9fbWVzc2FnZXMvX1BsYXliYWNrQ29udGFpbmVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1ZGlvX21lc3NhZ2VzL19TZWVrQmFyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1ZGlvX21lc3NhZ2VzL19XYXZlZm9ybS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdXRoL19BdXRoQm9keS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdXRoL19BdXRoRm9vdGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX0F1dGhIZWFkZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXV0aC9fQXV0aEhlYWRlckxvZ28ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXV0aC9fQXV0aFBhZ2UucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXV0aC9fQ29tcGxldGVTZWN1cml0eUJvZHkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXV0aC9fQ291bnRyeURyb3Bkb3duLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX0RlZmF1bHRXZWxjb21lLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX0ludGVyYWN0aXZlQXV0aEVudHJ5Q29tcG9uZW50cy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdXRoL19MYW5ndWFnZVNlbGVjdG9yLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX0xvZ2luV2l0aFFSLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX1Bhc3NwaHJhc2VGaWVsZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdXRoL19XZWxjb21lLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F2YXRhcnMvX0Jhc2VBdmF0YXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXZhdGFycy9fRGVjb3JhdGVkUm9vbUF2YXRhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdmF0YXJzL19Sb29tQXZhdGFyVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdmF0YXJzL19XaWRnZXRBdmF0YXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXZhdGFycy9fV2l0aFByZXNlbmNlSW5kaWNhdG9yLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2JldGEvX0JldGFDYXJkLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2NvbnRleHRfbWVudXMvX0RldmljZUNvbnRleHRNZW51LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2NvbnRleHRfbWVudXMvX0ljb25pemVkQ29udGV4dE1lbnUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvY29udGV4dF9tZW51cy9fTGVnYWN5Q2FsbENvbnRleHRNZW51LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0FkZEV4aXN0aW5nVG9TcGFjZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19BbmFseXRpY3NMZWFybk1vcmVEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fQnVnUmVwb3J0RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0NoYW5nZWxvZ0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Db21wb3VuZERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Db25maXJtS2V5U3RvcmFnZU9mZkRpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Db25maXJtU3BhY2VVc2VyQWN0aW9uRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0NvbmZpcm1Vc2VyQWN0aW9uRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0NyZWF0ZVJvb21EaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fQ3JlYXRlU2VjdGlvbkRpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19DcmVhdGVTdWJzcGFjZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19DcnlwdG8ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fRGVhY3RpdmF0ZUFjY291bnREaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fRGV2dG9vbHNEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fRXhwb3J0RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0ZlZWRiYWNrRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0ZvcndhcmREaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fR2VuZXJpY0ZlYXR1cmVGZWVkYmFja0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19JbmNvbWluZ1Nhc0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19JbnZpdGVEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fSW52aXRlUHJvZ3Jlc3NCb2R5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0pvaW5SdWxlRHJvcGRvd24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fTGVhdmVSb29tRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0xlYXZlU3BhY2VEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fTG9jYXRpb25WaWV3RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0xvZ291dERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fTWVzc2FnZUVkaXRIaXN0b3J5RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX01vZGFsV2lkZ2V0RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1BvbGxDcmVhdGVEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fUmVnaXN0cmF0aW9uRW1haWxQcm9tcHREaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fUmVtb3ZlU2VjdGlvbkRpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19SZXBvcnRSb29tRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1Jvb21TZXR0aW5nc0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Sb29tU2V0dGluZ3NEaWFsb2dCcmlkZ2VzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1Jvb21VcGdyYWRlRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1Jvb21VcGdyYWRlV2FybmluZ0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19TZXJ2ZXJPZmZsaW5lRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1NlcnZlclBpY2tlckRpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19TZXRFbWFpbERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19TZXR0aW5nc0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19TaGFyZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19TbGFzaENvbW1hbmRIZWxwRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1NwYWNlUHJlZmVyZW5jZXNEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fU3BhY2VTZXR0aW5nc0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19TcG90bGlnaHREaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fVGVybXNEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fVW5waW5BbGxEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fVXBsb2FkQ29uZmlybURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Vc2VyU2V0dGluZ3NEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fVmVyaWZ5RU1haWxEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fV2lkZ2V0Q2FwYWJpbGl0aWVzUHJvbXB0RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvaW52aXRlL19Vbmtub3duSWRlbnRpdHlVc2Vyc1dhcm5pbmdEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9zZWN1cml0eS9fQWNjZXNzU2VjcmV0U3RvcmFnZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL3NlY3VyaXR5L19DcmVhdGVDcm9zc1NpZ25pbmdEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9zZWN1cml0eS9fQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL3NlY3VyaXR5L19LZXlCYWNrdXBGYWlsZWREaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9zZWN1cml0eS9fUmVzdG9yZUtleUJhY2t1cERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaXJlY3RvcnkvX05ldHdvcmtEcm9wZG93bi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fQWNjZXNzaWJsZUJ1dHRvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fQ29weWFibGVUZXh0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19EZXNrdG9wQ2FwdHVyZXJTb3VyY2VQaWNrZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0RpYWxQYWRCYWNrc3BhY2VCdXR0b24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0Ryb3Bkb3duLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19FZGl0YWJsZUl0ZW1MaXN0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19FcnJvckJvdW5kYXJ5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19FeHRlcm5hbExpbmsucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0ZhY2VQaWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19GaWVsZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0ltYWdlVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fSW5mb1Rvb2x0aXAucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0lubGluZVNwaW5uZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0ludml0ZVJlYXNvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fTGFiZWxsZWRDaGVja2JveC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fTGFuZ3VhZ2VEcm9wZG93bi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fTWluaUF2YXRhclVwbG9hZGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19QaWxsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19Qb3dlclNlbGVjdG9yLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19Qcm9ncmVzc0Jhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fUVJDb2RlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19SZXBseUNoYWluLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19SZXNpemVIYW5kbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1JpY2hUZXh0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19Sb29tQWxpYXNGaWVsZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fU1NPQnV0dG9ucy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fU2VhcmNoV2FybmluZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fU2VydmVyUGlja2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19TZXR0aW5nc0Ryb3Bkb3duLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19TZXR0aW5nc0ZsYWcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1NwaW5uZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1N0eWxlZFJhZGlvQnV0dG9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19TeW50YXhIaWdobGlnaHQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1RhZ0NvbXBvc2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19UZXh0V2l0aFRvb2x0aXAucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1RvZ2dsZVN3aXRjaC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fVmFsaWRhdGlvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9sb2NhdGlvbi9fTG9jYXRpb25QaWNrZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvbWVzc2FnZXMvX0NhbGxFdmVudC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fQ3JlYXRlRXZlbnQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvbWVzc2FnZXMvX0Rpc2FtYmlndWF0ZWRQcm9maWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL21lc3NhZ2VzL19MZWdhY3lDYWxsRXZlbnQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvbWVzc2FnZXMvX01JbWFnZVJlcGx5Qm9keS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fTUxvY2F0aW9uQm9keS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fTVBvbGxCb2R5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL21lc3NhZ2VzL19NU3RpY2tlckJvZHkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvbWVzc2FnZXMvX01lc3NhZ2VBY3Rpb25CYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvbWVzc2FnZXMvX1RleHR1YWxFdmVudC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fVGhyZWFkQWN0aW9uQmFyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL21lc3NhZ2VzL19jb21tb25fQ3J5cHRvRXZlbnQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcG9sbHMvcG9sbEhpc3RvcnkvX1BvbGxIaXN0b3J5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3BvbGxzL3BvbGxIaXN0b3J5L19Qb2xsSGlzdG9yeUxpc3QucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcmlnaHRfcGFuZWwvX0Jhc2VDYXJkLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3JpZ2h0X3BhbmVsL19FbXB0eVN0YXRlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3JpZ2h0X3BhbmVsL19FbmNyeXB0aW9uSW5mby5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yaWdodF9wYW5lbC9fRXh0ZW5zaW9uc0NhcmQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcmlnaHRfcGFuZWwvX1BkZlZpZXdlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yaWdodF9wYW5lbC9fUGlubmVkTWVzc2FnZXNDYXJkLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3JpZ2h0X3BhbmVsL19Sb29tU3VtbWFyeUNhcmQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcmlnaHRfcGFuZWwvX1RocmVhZFBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3JpZ2h0X3BhbmVsL19UaW1lbGluZUNhcmQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcmlnaHRfcGFuZWwvX1VzZXJJbmZvLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3JpZ2h0X3BhbmVsL19WZXJpZmljYXRpb25QYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yaWdodF9wYW5lbC9fV2lkZ2V0Q2FyZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tX3NldHRpbmdzL19BbGlhc1NldHRpbmdzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL1Jvb21MaXN0UGFuZWwvX1Jvb21MaXN0UGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0FwcHNEcmF3ZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0F1dG9jb21wbGV0ZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fQXV4UGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0Jhc2ljTWVzc2FnZUNvbXBvc2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19DYWxsR3Vlc3RMaW5rQnV0dG9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19FMkVJY29uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19FMkVJY29uVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fRWRpdE1lc3NhZ2VDb21wb3Nlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fRW1vamlCdXR0b24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0V2ZW50QnViYmxlVGlsZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fRXZlbnRUaWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19IaXN0b3J5VGlsZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fSVJDTGF5b3V0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19JbnZpdGVkSWNvblZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0p1bXBUb0JvdHRvbUJ1dHRvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fTGl2ZUNvbnRlbnRTdW1tYXJ5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19NZW1iZXJMaXN0SGVhZGVyVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fTWVtYmVyTGlzdFZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX01lbWJlclRpbGVWaWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19NZXNzYWdlQ29tcG9zZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX01lc3NhZ2VDb21wb3NlckZvcm1hdEJhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fTmV3Um9vbUludHJvLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19PdmVyZmxvd1RpbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1Bpbm5lZEV2ZW50VGlsZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUGlubmVkTWVzc2FnZUJhbm5lci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUHJlc2VuY2VJY29uVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUHJlc2VuY2VMYWJlbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUmVhZFJlY2VpcHRHcm91cC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUmVwbHlQcmV2aWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19Sb29tSGVhZGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19Sb29tSW5mb0xpbmUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1Jvb21Lbm9ja3NCYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1Jvb21QcmV2aWV3QmFyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19Sb29tUHJldmlld0NhcmQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1Jvb21TZWFyY2hBdXhQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUm9vbVVwZ3JhZGVXYXJuaW5nQmFyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19TZW5kTWVzc2FnZUNvbXBvc2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19TdGlja2Vycy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fVGhpcmRQYXJ0eU1lbWJlckluZm8ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1RvcFVucmVhZE1lc3NhZ2VzQmFyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19Vc2VySWRlbnRpdHlXYXJuaW5nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19Wb2ljZVJlY29yZENvbXBvc2VyVGlsZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fV2hvSXNUeXBpbmdUaWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL3d5c2l3eWdfY29tcG9zZXIvX0VkaXRXeXNpd3lnQ29tcG9zZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvd3lzaXd5Z19jb21wb3Nlci9fU2VuZFd5c2l3eWdDb21wb3Nlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy93eXNpd3lnX2NvbXBvc2VyL2NvbXBvbmVudHMvX0VkaXRvci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy93eXNpd3lnX2NvbXBvc2VyL2NvbXBvbmVudHMvX0Zvcm1hdHRpbmdCdXR0b25zLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL3d5c2l3eWdfY29tcG9zZXIvY29tcG9uZW50cy9fTGlua01vZGFsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19BdmF0YXJTZXR0aW5nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19Gb250U2NhbGluZ1BhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19JbWFnZVNpemVQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fSW50ZWdyYXRpb25NYW5hZ2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19Kb2luUnVsZVNldHRpbmdzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19LZXlib2FyZFNob3J0Y3V0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19MYXlvdXRTd2l0Y2hlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fTm90aWZpY2F0aW9uUHVzaGVyU2V0dGluZ3MucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX05vdGlmaWNhdGlvblNldHRpbmdzMi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fTm90aWZpY2F0aW9ucy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fUGhvbmVOdW1iZXJzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19Qb3dlckxldmVsU2VsZWN0b3IucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX1Jvb21Qcm9maWxlU2V0dGluZ3MucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX1NldEludGVncmF0aW9uTWFuYWdlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fU2V0dGluZ3NGaWVsZHNldC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fU2V0dGluZ3NIZWFkZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX1NldHRpbmdzU3ViaGVhZGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19TcGVsbENoZWNrTGFuZ3VhZ2VzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19UaGVtZUNob2ljZVBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19VcGRhdGVDaGVja0J1dHRvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fVXNlclBlcnNvbmFsSW5mb1NldHRpbmdzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19Vc2VyUHJvZmlsZVNldHRpbmdzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL2VuY3J5cHRpb24vX0FkdmFuY2VkUGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fQ2hhbmdlUmVjb3ZlcnlLZXkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fRW5jcnlwdGlvbkNhcmQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fRW5jcnlwdGlvbkNhcmRFbXBoYXNpc2VkQ29udGVudC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19SZWNvdmVyeVBhbmVsT3V0T2ZTeW5jLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL2VuY3J5cHRpb24vX1Jlc2V0SWRlbnRpdHlQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL19TZXR0aW5nc0Jhbm5lci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL19TZXR0aW5nc0luZGVudC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL19TZXR0aW5nc1NlY3Rpb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy9fU2V0dGluZ3NUYWIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy9yb29tL19Ob3RpZmljYXRpb25TZXR0aW5nc1RhYi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL3Jvb20vX1Blb3BsZVJvb21TZXR0aW5nc1RhYi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL3Jvb20vX1JvbGVzUm9vbVNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvcm9vbS9fU2VjdXJpdHlSb29tU2V0dGluZ3NUYWIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19BcHBlYXJhbmNlVXNlclNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fSGVscFVzZXJTZXR0aW5nc1RhYi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX0tleWJvYXJkVXNlclNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fTWVkaWFQcmV2aWV3QWNjb3VudFNldHRpbmdzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fTWpvbG5pclVzZXJTZXR0aW5nc1RhYi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX1ByZWZlcmVuY2VzVXNlclNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fU2VjdXJpdHlVc2VyU2V0dGluZ3NUYWIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19TaWRlYmFyVXNlclNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NwYWNlcy9fU3BhY2VCYXNpY1NldHRpbmdzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NwYWNlcy9fU3BhY2VDaGlsZHJlblBpY2tlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zcGFjZXMvX1NwYWNlQ3JlYXRlTWVudS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy90ZXJtcy9fSW5saW5lVGVybXNBZ3JlZW1lbnQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvdG9hc3RzL19BbmFseXRpY3NUb2FzdC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy90b2FzdHMvX0luY29taW5nQ2FsbFRvYXN0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3RvYXN0cy9fSW5jb21pbmdMZWdhY3lDYWxsVG9hc3QucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvdG9hc3RzL19Ob25VcmdlbnRFY2hvRmFpbHVyZVRvYXN0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3R5cG9ncmFwaHkvX0hlYWRpbmcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvdmVyaWZpY2F0aW9uL19WZXJpZmljYXRpb25TaG93U2FzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3ZvaXAvTGVnYWN5Q2FsbFZpZXcvX0xlZ2FjeUNhbGxWaWV3QnV0dG9ucy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92b2lwL19DYWxsRHVyYXRpb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvdm9pcC9fQ2FsbFZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvdm9pcC9fRGlhbFBhZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92b2lwL19EaWFsUGFkQ29udGV4dE1lbnUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvdm9pcC9fRGlhbFBhZE1vZGFsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3ZvaXAvX0xlZ2FjeUNhbGxWaWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3ZvaXAvX0xlZ2FjeUNhbGxWaWV3Rm9yUm9vbS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92b2lwL19MZWdhY3lDYWxsVmlld0hlYWRlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92b2lwL19MZWdhY3lDYWxsVmlld1NpZGViYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvdm9pcC9fVmlkZW9GZWVkLnBjc3NcIjtcbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qKlxuICogUmVhY3QgVHJhbnNpdGlvbiBHcm91cCBhbmltYXRpb25zIGFyZSBwcmVmaXhlZCB3aXRoICdteF9ydGctLScgc28gdGhhdCB3ZVxuICoga25vdyB0aGV5IHNob3VsZCBub3QgYmUgdXNlZCBhbnl3aGVyZSBvdXRzaWRlIG9mIFJlYWN0IFRyYW5zaXRpb24gR3JvdXBzLlxuKi9cblxuLm14X3J0Zy0tZmFkZS1lbnRlciB7XG4gICAgb3BhY2l0eTogMDtcbn1cbi5teF9ydGctLWZhZGUtZW50ZXItYWN0aXZlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMzAwbXMgZWFzZTtcbn1cbi5teF9ydGctLWZhZGUtZXhpdCB7XG4gICAgb3BhY2l0eTogMTtcbn1cbi5teF9ydGctLWZhZGUtZXhpdC1hY3RpdmUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyBlYXNlO1xufVxuXG46cm9vdCB7XG4gICAgLS1ob3Zlci10cmFuc2l0aW9uOiAwLjA4cyBjdWJpYy1iZXppZXIoMC40NiwgMC4wMywgMC41MiwgMC45Nik7IC8qIHF1YWRyYXRpYyAqL1xufVxuXG5Aa2V5ZnJhbWVzIG14LS1hbmltLXB1bHNlIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIG14X0RpYWxvZ19saWdodGJveF9iYWNrZ3JvdW5kX2tleWZyYW1lcyB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogJGxpZ2h0Ym94LWJhY2tncm91bmQtYmctb3BhY2l0eTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgbXhfSW1hZ2VWaWV3X3BhbmVsX2tleWZyYW1lcyB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbikge1xuICAgIEBrZXlmcmFtZXMgbXgtLWFuaW0tcHVsc2Uge1xuICAgICAgICAvKiBPdmVycmlkZSBhbGwga2V5ZnJhbWVzIGluIHJlZHVjZWQtbW90aW9uICovXG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyBteF9EaWFsb2dfbGlnaHRib3hfYmFja2dyb3VuZF9rZXlmcmFtZXMge1xuICAgICAgICAvKiBPdmVycmlkZSBhbGwga2V5ZnJhbWVzIGluIHJlZHVjZWQtbW90aW9uICovXG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyBteF9JbWFnZVZpZXdfcGFuZWxfa2V5ZnJhbWVzIHtcbiAgICAgICAgLyogT3ZlcnJpZGUgYWxsIGtleWZyYW1lcyBpbiByZWR1Y2VkLW1vdGlvbiAqL1xuICAgIH1cblxuICAgIC5teF9ydGctLWZhZGUtZW50ZXItYWN0aXZlIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gICAgLm14X3J0Zy0tZmFkZS1leGl0LWFjdGl2ZSB7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTktMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DXG5Db3B5cmlnaHQgMjAxNy0yMDE5IE5ldyBWZWN0b3IgTHRkXG5Db3B5cmlnaHQgMjAxNyBWZWN0b3IgQ3JlYXRpb25zIEx0ZFxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuQGltcG9ydCBcIi4vX2ZvbnQtc2l6ZXMucGNzc1wiO1xuQGltcG9ydCBcIi4vX2FuaW1hdGlvbnMucGNzc1wiO1xuXG46cm9vdCB7XG4gICAgLS1jb250YWluZXItYm9yZGVyLXdpZHRoOiA4cHg7XG4gICAgLS1jb250YWluZXItZ2FwLXdpZHRoOiA4cHg7IC8qIG9ubHkgZXZlbiBudW1iZXJzIHNob3VsZCBiZSB1c2VkIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIGdldCAwLjVweCBtYXJnaW4gdmFsdWVzLiAqL1xuICAgIC0tdHJhbnNpdGlvbi1zaG9ydDogMC4xcztcbiAgICAtLXRyYW5zaXRpb24tc3RhbmRhcmQ6IDAuM3M7XG4gICAgLS1idXR0b25zLWRpYWxvZy1nYXAtcm93OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIC0tYnV0dG9ucy1kaWFsb2ctZ2FwLWNvbHVtbjogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAtLU1Cb2R5LWJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAtLUV2ZW50VGlsZUJ1YmJsZV9tYXJnaW4tYmxvY2s6IDEwcHg7XG4gICAgLS1NZXNzYWdlVGltZXN0YW1wLXdpZHRoOiA0NnB4OyAvKiA4ICsgMzAgKGF2YXRhcikgKyA4ICovXG4gICAgLS1NZWRpYVByZXZpZXctd2lkdGg6IDQ3OHB4OyAvKiBrZWVwIGluIHN5bmMgd2l0aCBQUkVWSUVXX1dJRFRIX1BYIGluIHNyYy91dGlscy9VcmxQcmV2aWV3RmV0Y2hlci50cyAqL1xuXG4gICAgLyogRXhwZWN0ZWQgei1pbmRleGVzIGZvciBkaWFsb2dzOlxuICAgICAgICA0MDAwIC0gRGVmYXVsdCB3cmFwcGVyIGluZGV4XG4gICAgICAgIDQwMDkgLSBTdGF0aWMgZGlhbG9nIGJhY2tncm91bmRcbiAgICAgICAgNDAxMCAtIFN0YXRpYyBkaWFsb2cgaXRzZWxmXG4gICAgICAgIDQwMTEgLSBTdGFuZGFyZCBkaWFsb2cgYmFja2dyb3VuZFxuICAgICAgICA0MDEyIC0gU3RhbmRhcmQgZGlhbG9nIGl0c2VsZlxuXG4gICAgICAgVGhlc2UgYXJlIHNldCB1cCBzdWNoIHRoYXQgdGhlIHN0YXRpYyBkaWFsb2cgYWx3YXlzIGFwcGVhcnNcbiAgICAgICB1bmRlcm5lYXRoIHRoZSBzdGFuZGFyZCBkaWFsb2dzLlxuICAgICAqL1xuICAgIC0tZGlhbG9nLXpJbmRleC13cmFwcGVyLWRlZmF1bHQ6IDQwMDA7XG4gICAgLS1kaWFsb2ctekluZGV4LXN0YXRpYy1iYWNrZ3JvdW5kOiA0MDA5O1xuICAgIC0tZGlhbG9nLXpJbmRleC1zdGF0aWM6IGNhbGModmFyKC0tZGlhbG9nLXpJbmRleC1zdGF0aWMtYmFja2dyb3VuZCkgKyAxKTsgLyogNDAxMCAqL1xuICAgIC0tZGlhbG9nLXpJbmRleC1zdGFuZGFyZC1iYWNrZ3JvdW5kOiBjYWxjKHZhcigtLWRpYWxvZy16SW5kZXgtc3RhdGljKSArIDEpOyAvKiA0MDExICovXG4gICAgLS1kaWFsb2ctekluZGV4LXN0YW5kYXJkOiBjYWxjKHZhcigtLWRpYWxvZy16SW5kZXgtc3RhbmRhcmQtYmFja2dyb3VuZCkgKyAxKTsgLyogNDAxMiAqL1xufVxuXG4jbWF0cml4Y2hhdCB7XG4gICAgLyogVGhpcyBpcyByZXF1aXJlZCB0byBlbnN1cmUgQ29tcG91bmQgdG9vbHRpcHMgY29ycmVjdGx5IGRyYXcgd2hlcmUgdGhleSBzaG91bGQgd2l0aCB6LWluZGV4OiBhdXRvICovXG4gICAgY29udGFpbjogc3RyaWN0O1xufVxuI214X0NvbnRleHR1YWxNZW51X0NvbnRhaW5lcixcbiNteF9QZXJzaXN0ZWRFbGVtZW50X2NvbnRhaW5lcixcbiNteF9EaWFsb2dfQ29udGFpbmVyLFxuI214X0RpYWxvZ19TdGF0aWNDb250YWluZXIge1xuICAgIC8qIFRoaXMgaXMgcmVxdWlyZWQgdG8gZW5zdXJlIENvbXBvdW5kIHRvb2x0aXBzIGNvcnJlY3RseSBkcmF3IHdoZXJlIHRoZXkgc2hvdWxkIHdpdGggei1pbmRleDogYXV0byAqL1xuICAgIGlzb2xhdGlvbjogaXNvbGF0ZTtcbn1cblxuLyoqXG4gKiBEaXNhYmxlIHBvaW50ZXIgZXZlbnRzIGluc2lkZSB0aGUgcGVyc2lzdGVudEVsZW1lbnQgY29udGFpbmVyIHdoZW4gdGhlIHJvb20tbGlzdCBpcyBiZWluZyByZXNpemVkLlxuICogVGhpcyBpcyBuZWNlc3NhcnkgdG8gYXZvaWQgdGhlIHBvaW50ZXIgZXZlbnRzIGZyb20gYmVpbmcgaGlqYWNrZWQgYnkgdGhlIGNvbnRlbnQgcmVuZGVyZWQgaW5zaWRlXG4gKiB0aGF0IGRpdi5cbiAqL1xuOnJvb3Q6aGFzKC5teF9TZXBhcmF0b3JbZGF0YS1zZXBhcmF0b3I9XCJhY3RpdmVcIl0pICNteF9QZXJzaXN0ZWRFbGVtZW50X2NvbnRhaW5lciB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qKlxuICogV2UgbmVlZCB0byBpbmNyZWFzZSB0aGUgc3BlY2lmaWNpdHkgb2YgdGhlIHNlbGVjdG9yIHRvIG92ZXJyaWRlIHRoZVxuICogY3VzdG9tIHByb3BlcnR5IHNldCBieSB0aGUgZGVzaWduIHRva2VucyBwYWNrYWdlXG4gKi9cbltjbGFzc149XCJjcGQtdGhlbWVcIl1bY2xhc3NePVwiY3BkLXRoZW1lXCJdIHtcbiAgICAvKipcbiAgICAgKiBUaGUgZGVzaWduIHRva2VucyBwYWNrYWdlIGN1cnJlbnRseSBkb2VzIG5vdCBleHBvc2UgdGhlIGZhbGxiYWNrIGZvbnRzXG4gICAgICogV2Ugd2FudCB0byBrZWVwIG9uIHJlLXVzaW5nIGAkZm9udC1mYW1pbHlgIHRvIG5vdCBicmVhayBjdXN0b20gdGhlbWVzXG4gICAgICogYW5kIGJlY2F1c2Ugd2UgY2FuIHRvIHVzZSBgVHdlbW9qaWAgdG8gZGlzcGxheSBlbW9qaSByYXRoZXIgdGhhbiB1c2luZ1xuICAgICAqIHN5c3RlbSBvbmVzXG4gICAgICovXG4gICAgLS1jcGQtZm9udC1mYW1pbHktc2FuczogJGZvbnQtZmFtaWx5O1xufVxuXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb24pIHtcbiAgICA6cm9vdCB7XG4gICAgICAgIC0tdHJhbnNpdGlvbi1zaG9ydDogMDtcbiAgICAgICAgLS10cmFuc2l0aW9uLXN0YW5kYXJkOiAwO1xuICAgIH1cbn1cblxuaHRtbCB7XG4gICAgLyogaGFjayB0byBzdG9wIG92ZXJzY3JvbGwgYm91bmNlIG9uIE9TWCBhbmQgaU9TLlxuICAgICAgIE4uQi4gQnJlYWtzIHRoaW5ncyB3aGVuIHdlIGhhdmUgbGVnaXRpbWF0ZSBob3Jpem9udGFsIG92ZXJzY3JvbGwgKi9cbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAvKiBTdG9wIHNpbWlsYXIgb3ZlcnNjcm9sbCBib3VuY2UgaW4gRmlyZWZveCBOaWdodGx5IGZvciBtYWNPUyAqL1xuICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmU7XG59XG5cbmJvZHkge1xuICAgIC8qICFpbXBvcnRhbnQgYmVjYXVzZSBjb21wb3VuZCBvdmVycmlkZXMgdGhlc2UgZm9udCBzZXR0aW5ncyBmb3IgYm9keSAqL1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcikgIWltcG9ydGFudDtcbiAgICBsZXR0ZXItc3BhY2luZzogdmFyKC0tY3BkLWZvbnQtbGV0dGVyLXNwYWNpbmctYm9keS1tZCkgIWltcG9ydGFudDtcbiAgICAvKipcbiAgICAgKiBXZSB3YW50IHRvIGFwcGx5IEludGVyIER5bmFtaWMgbWV0cmljcyAoaHR0cHM6Ly9yc21zLm1lL2ludGVyL2R5bm1ldHJpY3MvKVxuICAgICAqIFdlIG5lZWQgdG8gdHdlYWsgdGhlIGBsZXR0ZXItc3BhY2luZ2AgcHJvcGVydHkgYW5kIGRvaW5nIHNvLCBkaXNhYmxlcyBieVxuICAgICAqIGRlZmF1bHQgdGhlIG9wdGlvbmFsIGxpZ2F0dXJlc1xuICAgICAqIGBmb250LWZlYXR1cmUtc2V0dGluZ3NgIGFsbG93cyB1cyB0byBvdmVycmlkZSB0aGlzIGJlaGF2aW91ciBhbmQgaGF2ZSB0aGVcbiAgICAgKiBjb3JyZWN0IGxpZ2F0dXJlcyBhbmQgdGhlIHByb3BlciBkeW5hbWljIG1ldHJpYyBzcGFjaW5nLlxuICAgICAqL1xuICAgIGZvbnQtZmVhdHVyZS1zZXR0aW5nczpcbiAgICAgICAgXCJrZXJuXCIgMSxcbiAgICAgICAgXCJsaWdhXCIgMSxcbiAgICAgICAgXCJjYWx0XCIgMSAhaW1wb3J0YW50O1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgYm9yZGVyOiAwcHg7XG4gICAgbWFyZ2luOiAwcHg7XG5cbiAgICAvKiBuZWVkZWQgdG8gbWF0Y2ggdGhlIGRlc2lnbnMgY29ycmVjdGx5IG9uIG1hY09TICovXG4gICAgLyogc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS92ZWN0b3ItaW0vZWxlbWVudC13ZWIvaXNzdWVzLzExNDI1ICovXG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxucHJlLFxuY29kZSB7XG4gICAgZm9udC1mYW1pbHk6ICRtb25vc3BhY2UtZm9udC1mYW1pbHk7XG4gICAgZm9udC1zaXplOiAxMDAlICFpbXBvcnRhbnQ7XG59XG5cbi5lcnJvcixcbi53YXJuaW5nLFxuLnRleHQtZXJyb3IsXG4udGV4dC13YXJuaW5nIHtcbiAgICBjb2xvcjogJGFsZXJ0O1xufVxuXG4udGV4dC1zdWNjZXNzIHtcbiAgICBjb2xvcjogJGFjY2VudDtcbn1cblxuLnRleHQtbXV0ZWQge1xuICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG59XG5cbi50ZXh0LXByaW1hcnkge1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xufVxuXG4udGV4dC1zZWNvbmRhcnkge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9WZXJpZmllZCB7XG4gICAgY29sb3I6ICRlMmUtdmVyaWZpZWQtY29sb3I7XG59XG5cbi5teF9VbnRydXN0ZWQge1xuICAgIGNvbG9yOiAkZTJlLXdhcm5pbmctY29sb3I7XG59XG5cbmIge1xuICAgIC8qIE9uIEZpcmVmb3gsIHRoZSBkZWZhdWx0IHdlaWdodCBmb3IgYDxiPmAgaXMgYGJvbGRlcmAgd2hpY2ggcmVzdWx0cyBpbiBubyBib2xkICovXG4gICAgLyogZWZmZWN0IHNpbmNlIHdlIG9ubHkgaGF2ZSBzcGVjaWZpYyB3ZWlnaHRzIG9mIG91ciBmb250cyBhdmFpbGFibGUuICovXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi8qIEtlZXAgdGhlIGxlZ2FjeSBsaW5rIGNvbG91ciB3aXRob3V0IG92ZXJyaWRpbmcgQ29tcG91bmQgYW5jaG9ycyBvciBzaGFyZWQgdGltZXN0YW1wIHN0eWxpbmcuICovXG5hOndoZXJlKDpub3QoW2RhdGEta2luZF0pOm5vdCgubXhfTWVzc2FnZVRpbWVzdGFtcCkpOmhvdmVyLFxuYTp3aGVyZSg6bm90KFtkYXRhLWtpbmRdKTpub3QoLm14X01lc3NhZ2VUaW1lc3RhbXApKTpsaW5rLFxuYTp3aGVyZSg6bm90KFtkYXRhLWtpbmRdKTpub3QoLm14X01lc3NhZ2VUaW1lc3RhbXApKTp2aXNpdGVkIHtcbiAgICBjb2xvcjogJGFjY2VudC1hbHQ7XG59XG5cbjpub3QoLm14X25vX3RleHRpbnB1dCk6bm90KC5teF90ZXh0aW5wdXQpOm5vdCgubXhfRmllbGQpID4gaW5wdXRbdHlwZT1cInRleHRcIl0sXG46bm90KC5teF9ub190ZXh0aW5wdXQpOm5vdCgubXhfdGV4dGlucHV0KTpub3QoLm14X0ZpZWxkKSA+IGlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgIHBhZGRpbmc6IDlweDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXNlbWlib2xkKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdLm14X3RleHRpbnB1dF9pY29uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXS5teF90ZXh0aW5wdXRfaWNvbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAzNnB4O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTBweCBjZW50ZXI7XG59XG5cbi8qIEZJWE1FIFRIRU1FIC0gVGludCBieSBDU1MgcmF0aGVyIHRoYW4gcmVmZXJlbmNpbmcgYSBkdXBsaWNhdGUgYXNzZXQgKi9cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdLm14X3RleHRpbnB1dF9pY29uLm14X3RleHRpbnB1dF9zZWFyY2gsXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdLm14X3RleHRpbnB1dF9pY29uLm14X3RleHRpbnB1dF9zZWFyY2gge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIkB2ZWN0b3ItaW0vY29tcG91bmQtZGVzaWduLXRva2Vucy9pY29ucy9zZWFyY2guc3ZnXCIpO1xufVxuXG4vKiBkb250IHNlYXJjaCBVSSBhcyBub3QgYWxsIGJyb3dzZXJzIHN1cHBvcnQgaXQsICovXG4vKiB3ZSBpbXBsZW1lbnQgaXQgb3Vyc2VsdmVzIHdoZXJlIG5lZWRlZCBpbnN0ZWFkICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtYnV0dG9uLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vKiBPdmVycmlkZSBGaXJlZm94J3MgVUEgc3R5bGUgc28gd2UgZ2V0IGEgY29uc2lzdGVudCBsb29rIGFjcm9zcyBicm93c2VycyAqL1xuaW5wdXQ6OnBsYWNlaG9sZGVyLFxudGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgICBvcGFjaXR5OiBpbml0aWFsO1xufVxuXG5pbnB1dFt0eXBlPVwidGV4dFwiXSxcbnRleHRhcmVhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuLyogUmVxdWlyZWQgYnkgRmlyZWZveCAqL1xudGV4dGFyZWEge1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xufVxuXG5pbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbnRleHRhcmVhOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi8qIFRoaXMgaXMgdXNlZCB0byBoaWRlIHRoZSBzdGFuZGFyZCBvdXRsaW5lIGFkZGVkIGJ5IGJyb3dzZXJzIGZvciAqL1xuLyogYWNjZXNzaWJsZSAoZm9jdXNhYmxlKSBjb21wb25lbnRzLiBOb3QgaW50ZW5kZWQgZm9yIGJ1dHRvbnMsIGJ1dCAqL1xuLyogc2hvdWxkIGJlIHVzZWQgb24gdGhpbmdzIGxpa2UgZm9jdXNhYmxlIGNvbnRhaW5lcnMgd2hlcmUgdGhlIG91dGxpbmUgKi9cbi8qIGlzIHVzdWFsbHkgbm90IGhlbHBpbmcgYW55b25lLiAqL1xuKjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuXG5zdW1tYXJ5IHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qIC5teF90ZXh0aW5wdXQgaXMgYSBjb250YWluZXIgZm9yIGEgdGV4dCBpbnB1dCAqL1xuLyogKyBzb21lIG90aGVyIGNvbnRyb2xzIGxpa2UgYnV0dG9ucywgLi4uICovXG4vKiBpdCBoYXMgdGhlIGFwcGVhcmFuY2Ugb2YgYSB0ZXh0IGJveCBzbyB0aGUgY29udHJvbHMgKi9cbi8qIGFwcGVhciB0byBiZSBwYXJ0IG9mIHRoZSBpbnB1dCAqL1xuXG4ubXhfRGlhbG9nLFxuLm14X01hdHJpeENoYXRfd3JhcHBlciB7XG4gICAgLm14X3RleHRpbnB1dCA+IGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICAgIC5teF90ZXh0aW5wdXQgPiBpbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICB9XG5cbiAgICA6bm90KC5teF90ZXh0aW5wdXQpOm5vdCgubXhfRmllbGQpOm5vdCgubXhfbm9fdGV4dGlucHV0KSA+IGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuICAgIDpub3QoLm14X3RleHRpbnB1dCk6bm90KC5teF9GaWVsZCk6bm90KC5teF9ub190ZXh0aW5wdXQpID4gaW5wdXRbdHlwZT1cInNlYXJjaFwiXSxcbiAgICAubXhfdGV4dGlucHV0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJGlucHV0LWRhcmtlci1mZy1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkc2Vjb25kYXJ5LWhhaXJsaW5lLWNvbG9yO1xuICAgICAgICAvKiB0aGVzZSB0aGluZ3Mgc2hvdWxkIHByb2JhYmx5IG5vdCBiZSBkZWZpbmVkIGdsb2JhbGx5ICovXG4gICAgICAgIG1hcmdpbjogOXB4O1xuICAgIH1cblxuICAgIC5teF90ZXh0aW5wdXQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgIDpub3QoLm14X3RleHRpbnB1dCk6bm90KC5teF9GaWVsZCk6bm90KC5teF9ub190ZXh0aW5wdXQpID4gaW5wdXRbdHlwZT1cInRleHRcIl06OnBsYWNlaG9sZGVyLFxuICAgIDpub3QoLm14X3RleHRpbnB1dCk6bm90KC5teF9GaWVsZCk6bm90KC5teF9ub190ZXh0aW5wdXQpID4gaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6cGxhY2Vob2xkZXIsXG4gICAgLm14X3RleHRpbnB1dCBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogJGlucHV0LXBsYWNlaG9sZGVyO1xuICAgIH1cbn1cblxuLyogUHJldmVudCB1Z2x5IGRvdHRlZCBoaWdobGlnaHQgYXJvdW5kIHNlbGVjdGVkIGVsZW1lbnRzIGluIEZpcmVmb3ggKi9cbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xufVxuXG4vKiBUaGVzZSBhcmUgbWFnaWMgY29uc3RhbnRzIHdoaWNoIGFyZSBleGNsdWRlZCBmcm9tIHRpbnRpbmcsIHRvIGxldCB0aGVtZXMgKi9cbi8qICh3aGljaCBvbmx5IGhhdmUgQ1NTKSB0ZWxsIHRoZSBhcHAgd2hhdCB0aGVpciBub24tdGludGVkICovXG4vKiBjb2xvdXJzY2hlbWUgaXMgYnkgaW5zcGVjdGluZyB0aGUgc3R5bGVzaGVldCBET00uICovXG4vKiBUaGV5IGFyZSBub3QgdXNlZCBmb3IgbGF5b3V0ISEgKi9cbiNteF90aGVtZV9hY2NlbnRDb2xvciB7XG4gICAgY29sb3I6ICRhY2NlbnQ7XG59XG5cbiNteF90aGVtZV9zZWNvbmRhcnlBY2NlbnRDb2xvciB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktYWNjZW50LWNvbG9yO1xufVxuXG4ubXhfRGlhbG9nX3dyYXBwZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiB2YXIoLS1kaWFsb2ctekluZGV4LXdyYXBwZXItZGVmYXVsdCk7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ubXhfRGlhbG9nX2JvcmRlciB7XG4gICAgei1pbmRleDogdmFyKC0tZGlhbG9nLXpJbmRleC1zdGFuZGFyZCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSB2YXIoLS1jcGQtc3BhY2UtNngpKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAubXhfRGlhbG9nX2xpZ2h0Ym94ICYge1xuICAgICAgICAvKiBUaGUgbGlnaHRib3ggaXNuJ3Qgc28gbXVjaCBvZiBhIGRpYWxvZyBhcyBhIGZ1bGxzY3JlZW4gb3ZlcmxheS4gV2VcbiAgICAgICAgZG9uJ3Qgd2FudCB0aGUgZ2xhc3MgYm9yZGVyLiAqL1xuICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICB9XG59XG5cbi5teF9EaWFsb2cge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkbGlnaHQtZmctY29sb3I7XG4gICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtOHgpIHZhcigtLWNwZC1zcGFjZS0xMHgpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgIC5teF9EaWFsb2dfc3RhdGljV3JhcHBlciAmIHtcbiAgICAgICAgei1pbmRleDogdmFyKC0tZGlhbG9nLXpJbmRleC1zdGF0aWMpO1xuICAgICAgICBjb250YWluOiBjb250ZW50O1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfbGlnaHRib3ggJiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgLyogU3R5bGVzIGNvcGllZC9pbnNwaXJlZCBieSBHcm91cExheW91dCwgUmVwbHlUaWxlLCBhbmQgRXZlbnRUaWxlIHZhcmlhbnRzLiAqL1xuICAgIC5tYXJrZG93bi1ib2R5IHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKSAhaW1wb3J0YW50O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogdmFyKC0tY3BkLWZvbnQtbGV0dGVyLXNwYWNpbmctYm9keS1tZCk7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7IC8qIGluaGVyaXQgdGhlIGNvbG91ciBmcm9tIHRoZSBkYXJrIG9yIGxpZ2h0IHRoZW1lIGJ5IGRlZmF1bHQgKGJ1dCBub3QgZm9yIGNvZGUgYmxvY2tzKSAqL1xuXG4gICAgICAgIHByZSxcbiAgICAgICAgY29kZSB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJG1vbm9zcGFjZS1mb250LWZhbWlseSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvZGVibG9jay1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogdGhpcyBzZWxlY3RvciB3cm9uZ2x5IGFwcGxpZXMgdG8gY29kZSBibG9ja3MgdG9vIGJ1dCB3ZSB3aWxsIHVuc2V0IGl0IGluIHRoZSBuZXh0IG9uZSAqL1xuICAgICAgICBjb2RlIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgLyogZG9uJ3QgY29sbGFwc2Ugc3BhY2VzIGluIGlubGluZSBjb2RlIGJsb2NrcyAqL1xuICAgICAgICB9XG5cbiAgICAgICAgcHJlIHtcbiAgICAgICAgICAgIC8qIGhhdmUgdG8gdXNlIG92ZXJsYXkgcmF0aGVyIHRoYW4gYXV0byBvdGhlcndpc2UgTGludXggYW5kIFdpbmRvd3MgKi9cbiAgICAgICAgICAgIC8qIENocm9tZSBnZXRzIHZlcnkgY29uZnVzZWQgYWJvdXQgdmVydGljYWwgc3BhY2luZzogKi9cbiAgICAgICAgICAgIC8qIGh0dHBzOi8vZ2l0aHViLmNvbS92ZWN0b3ItaW0vdmVjdG9yLXdlYi9pc3N1ZXMvNzU0ICovXG4gICAgICAgICAgICBvdmVyZmxvdy14OiBvdmVybGF5O1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcblxuICAgICAgICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29kZSB7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IHByZTsgLyogd2Ugd2FudCBjb2RlIGJsb2NrcyB0byBiZSBzY3JvbGxhYmxlIGFuZCBub3Qgd3JhcCAqL1xuXG4gICAgICAgICAgICAgICAgPiAqIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGgxLFxuICAgICAgICBoMixcbiAgICAgICAgaDMsXG4gICAgICAgIGg0LFxuICAgICAgICBoNSxcbiAgICAgICAgaDYge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB9XG5cbiAgICAgICAgLyogTWFrZSBoMSBhbmQgaDIgdGhlIHNhbWUgc2l6ZSBhcyBoMy4gKi9cbiAgICAgICAgaDEsXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lICFpbXBvcnRhbnQ7IC8qIG92ZXJyaWRlIEdGTSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogJGFjY2VudC1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgJGJsb2NrcXVvdGUtYmFyLWNvbG9yO1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0RpYWxvZ19maXhlZFdpZHRoIHtcbiAgICB3aWR0aDogNjB2dztcbiAgICBtYXgtd2lkdGg6IDcwNHB4O1xufVxuXG4ubXhfRGlhbG9nX2JhY2tncm91bmQge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGRpYWxvZy1iYWNrZHJvcC1jb2xvcjtcbiAgICB6LWluZGV4OiB2YXIoLS1kaWFsb2ctekluZGV4LXN0YW5kYXJkLWJhY2tncm91bmQpO1xuXG4gICAgJi5teF9EaWFsb2dfc3RhdGljQmFja2dyb3VuZCB7XG4gICAgICAgIHotaW5kZXg6IHZhcigtLWRpYWxvZy16SW5kZXgtc3RhdGljLWJhY2tncm91bmQpO1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfd3JhcHBlcldpdGhTdGF0aWNVbmRlciAmIHtcbiAgICAgICAgLyogUm91Z2hseSBoYWxmIG9mIHdoYXQgaXQgd291bGQgbm9ybWFsbHkgYmUgLSB3ZSBkb24ndCB3YW50IHRvIGJsYWNrIG91dCAqL1xuICAgICAgICAvKiB0aGUgYXBwLCBqdXN0IG1ha2UgaXQgY2xlYXIgdGhhdCB0aGUgZGlhbG9ncyBhcmUgc3RhY2tlZC4gKi9cbiAgICAgICAgb3BhY2l0eTogMC40O1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfbGlnaHRib3ggJiB7XG4gICAgICAgIG9wYWNpdHk6ICRsaWdodGJveC1iYWNrZ3JvdW5kLWJnLW9wYWNpdHk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodGJveC1iYWNrZ3JvdW5kLWJnLWNvbG9yO1xuICAgICAgICBhbmltYXRpb24tbmFtZTogbXhfRGlhbG9nX2xpZ2h0Ym94X2JhY2tncm91bmRfa2V5ZnJhbWVzO1xuICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDMwMG1zO1xuICAgIH1cbn1cblxuLm14X0RpYWxvZ190aXRsZUltYWdlIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogc3ViO1xuICAgIHdpZHRoOiAyNXB4O1xuICAgIGhlaWdodDogMjVweDtcbiAgICBtYXJnaW4tbGVmdDogLTJweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG5cbi5teF9EaWFsb2dfdGl0bGUge1xuICAgIGNvbG9yOiAkZGlhbG9nLXRpdGxlLWZnLWNvbG9yO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGxldHRlci1zcGFjaW5nOiB2YXIoLS1jcGQtZm9udC1sZXR0ZXItc3BhY2luZy1oZWFkaW5nLWxnKTtcblxuICAgICYuZGFuZ2VyIHtcbiAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICB9XG59XG5cbi5teF9EaWFsb2dfaGVhZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDIwcHg7IC8qIFJlc2VydmUgcm9vbSBmb3IgdGhlIGNsb3NlIGJ1dHRvbiAqL1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAmLm14X0RpYWxvZ19oZWFkZXJXaXRoQnV0dG9uID4gLm14X0RpYWxvZ190aXRsZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59XG5cbkBkZWZpbmUtbWl4aW4gY3VzdG9taXNlZENhbmNlbEJ1dHRvbiB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXNlY29uZGFyeSk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1wcmltYXJ5KTtcbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tc2Vjb25kYXJ5KTtcbiAgICB9XG59XG5cbi5teF9EaWFsb2dfY2FuY2VsQnV0dG9uIHtcbiAgICBAbWl4aW4gY3VzdG9taXNlZENhbmNlbEJ1dHRvbjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIHJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuXG4ubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgIG1hcmdpbjogMjRweCAwIDY4cHg7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbi5teF9EaWFsb2dfYnV0dG9ucyB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuXG4gICAgLm14X0RpYWxvZ19idXR0b25zX2FkZGl0aXZlIHtcbiAgICAgICAgLyogVGhlIGNvbnN1bWVyIGlzIHJlc3BvbnNpYmxlIGZvciBwb3NpdGlvbmluZyB0aGVpciBlbGVtZW50cy4gKi9cbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19idXR0b25zX3JvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgdGV4dC1hbGlnbjogaW5pdGlhbDtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcblxuICAgICAgICAvKiBkZWZhdWx0IGdhcCBhbW9uZyBlbGVtZW50cyAqL1xuICAgICAgICBjb2x1bW4tZ2FwOiB2YXIoLS1idXR0b25zLWRpYWxvZy1nYXAtY29sdW1uKTtcbiAgICAgICAgcm93LWdhcDogdmFyKC0tYnV0dG9ucy1kaWFsb2ctZ2FwLXJvdyk7XG5cbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OyAvKiBvdmVycmlkZSB0aGUgbWFyZ2luIHNldHRpbmdzICovXG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBkZWZpbmUtbWl4aW4gbXhfRGlhbG9nQnV0dG9uIHtcbiAgICAvKiBhbGlnbiBpbWFnZXMgaW4gYnV0dG9ucyAoZWcgc3Bpbm5lcnMpICovXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBib3JkZXI6IDBweDtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgY29sb3I6ICRidXR0b24tZmctY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIHBhZGRpbmc6IDdweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuNWVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNWVtO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAmOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbn1cblxuLyogWFhYOiBPdXIgYnV0dG9uIHN0eWxlcyBhcmUgYSBtZXNzOyB0aGlzIGlzIG9wdC1pbiBzdHlsaW5nIGZvciBsZWdhY3kgcmF3IDxidXR0b24+cyBhbmRcbiAqIDxpbnB1dCB0eXBlPVwic3VibWl0XCI+cyBpbiBkaWFsb2dzLiBTZWFyY2ggYG14X0xlZ2FjeURpYWxvZ0J1dHRvbmAgaW4gdGhlIEpTWCBmb3IgdGhlIGVsZW1lbnRzXG4gKiBzdGlsbCByZWx5aW5nIG9uIGl0LlxuICogS2VlcCB0aGUgYC5teF9EaWFsb2dgL2AubXhfRGlhbG9nX2J1dHRvbnNgIGFuY2VzdG9yICsgYGJ1dHRvbmAvYGlucHV0W3R5cGU9XCJzdWJtaXRcIl1gIHR5cGVcbiAqIHNlbGVjdG9yIGFsb25nc2lkZSB0aGUgbWFya2VyIGNsYXNzOiB0aGV5IHByZXNlcnZlIHRoZSBzcGVjaWZpY2l0eSBvZiB0aGUgb2xkIHNlbGVjdG9ycywgd2hpY2hcbiAqIHNvbWUgcGVyLWRpYWxvZyBDU1Mgb3ZlcnJpZGVzIChlLmcuIHdpZHRoIHR3ZWFrcykgcmVseSBvbiBsb3NpbmcgdG8uXG4gKi9cbi5teF9EaWFsb2cgYnV0dG9uLm14X0xlZ2FjeURpYWxvZ0J1dHRvbixcbi5teF9EaWFsb2cgaW5wdXQubXhfTGVnYWN5RGlhbG9nQnV0dG9uW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIEBtaXhpbiBteF9EaWFsb2dCdXR0b247XG4gICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWJ1dHRvbnMtZGlhbG9nLWdhcC1jb2x1bW4pO1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcblxuICAgIC8qIGZsaXAgY29sb3VycyBmb3IgdGhlIHNlY29uZGFyeSBvbmVzICovXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbn1cblxuLm14X0RpYWxvZyBidXR0b24ubXhfTGVnYWN5RGlhbG9nQnV0dG9uOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1yaWdodDogMHB4O1xufVxuXG4ubXhfRGlhbG9nIGJ1dHRvbi5teF9MZWdhY3lEaWFsb2dCdXR0b246Zm9jdXMsXG4ubXhfRGlhbG9nIGlucHV0Lm14X0xlZ2FjeURpYWxvZ0J1dHRvblt0eXBlPVwic3VibWl0XCJdOmZvY3VzIHtcbiAgICBmaWx0ZXI6IGJyaWdodG5lc3MoJGZvY3VzLWJyaWdodG5lc3MpO1xufVxuXG4vKiBEZWZhdWx0IChub24tY2FuY2VsKSBidXR0b25zIGluc2lkZSBhIERpYWxvZ0J1dHRvbnMgZm9vdGVyIGdldCBmaWxsZWQgaW4gYXMgdGhlIHByaW1hcnkgYWN0aW9uLFxuICogZXZlbiB3aXRob3V0IHRoZSBteF9EaWFsb2dfcHJpbWFyeSBjbGFzcyAtIC5kYW5nZXIvLndhcm5pbmcgb3ZlcnJpZGUgdGhlIGNvbG91cnMgYmVsb3cgdmlhIGFcbiAqIHNhbWUtc3BlY2lmaWNpdHksIGxhdGVyLWluLXNvdXJjZSBydWxlOyBkaXNhYmxlZCBvdmVycmlkZXMgZXZlcnlvbmUgdGhlIHNhbWUgd2F5LlxuICovXG4ubXhfRGlhbG9nIGJ1dHRvbi5teF9MZWdhY3lEaWFsb2dCdXR0b24ubXhfRGlhbG9nX3ByaW1hcnksXG4ubXhfRGlhbG9nIGlucHV0Lm14X0xlZ2FjeURpYWxvZ0J1dHRvblt0eXBlPVwic3VibWl0XCJdLm14X0RpYWxvZ19wcmltYXJ5LFxuLm14X0RpYWxvZ19idXR0b25zIGJ1dHRvbi5teF9MZWdhY3lEaWFsb2dCdXR0b246bm90KC5jYW5jZWwpIHtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtb24tc29saWQtcHJpbWFyeSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuICAgIG1pbi13aWR0aDogMTU2cHg7XG59XG5cbi5teF9EaWFsb2cgYnV0dG9uLm14X0xlZ2FjeURpYWxvZ0J1dHRvbi5kYW5nZXIsXG4ubXhfRGlhbG9nIGlucHV0Lm14X0xlZ2FjeURpYWxvZ0J1dHRvblt0eXBlPVwic3VibWl0XCJdLmRhbmdlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNyaXRpY2FsLXByaW1hcnkpO1xuICAgIGJvcmRlcjogc29saWQgMXB4IHZhcigtLWNwZC1jb2xvci1iZy1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtb24tc29saWQtcHJpbWFyeSk7XG59XG5cbi5teF9EaWFsb2cgYnV0dG9uLm14X0xlZ2FjeURpYWxvZ0J1dHRvbi53YXJuaW5nLFxuLm14X0RpYWxvZyBpbnB1dC5teF9MZWdhY3lEaWFsb2dCdXR0b25bdHlwZT1cInN1Ym1pdFwiXS53YXJuaW5nIHtcbiAgICBib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWNyaXRpY2FsLXN1YnRsZSk7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWNyaXRpY2FsLXByaW1hcnkpO1xufVxuXG4ubXhfRGlhbG9nX2J1dHRvbnMgYnV0dG9uLm14X0xlZ2FjeURpYWxvZ0J1dHRvbi5jYW5jZWwge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXNlY29uZGFyeS1yZXN0KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtc2Vjb25kYXJ5KTtcbiAgICBtaW4td2lkdGg6IDE1NnB4O1xufVxuXG4ubXhfRGlhbG9nIGJ1dHRvbi5teF9MZWdhY3lEaWFsb2dCdXR0b246ZGlzYWJsZWQsXG4ubXhfRGlhbG9nIGlucHV0Lm14X0xlZ2FjeURpYWxvZ0J1dHRvblt0eXBlPVwic3VibWl0XCJdOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZmctY29sb3I7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggJGxpZ2h0LWZnLWNvbG9yO1xuICAgIG9wYWNpdHk6IDAuNztcbn1cblxuLyogU3Bpbm5lciBEaWFsb2cgb3ZlcmlkZSAqL1xuLm14X0RpYWxvZ193cmFwcGVyLm14X0RpYWxvZ19zcGlubmVyIHtcbiAgICAvKiBUaGlzIGlzIG5vdCBhIHJlYWwgZGlhbG9nLCBzbyB3ZSBzaG91bGRuJ3Qgc2hvdyBhIGdsYXNzIGJvcmRlciAqL1xuICAgIC5teF9EaWFsb2dfYm9yZGVyIHtcbiAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZyB7XG4gICAgICAgIGlubGluZS1zaXplOiBhdXRvO1xuICAgICAgICBibG9jay1zaXplOiBhdXRvO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcblxuICAgICAgICAvKiBEb24ndCBzaG93IHNjcm9sbC1iYXJzIG9uIHNwaW5uZXIgZGlhbG9ncyAqL1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICB9XG59XG5cbi8qIFRPRE86IFJldmlldyBteF9HZW5lcmFsQnV0dG9uIHVzYWdlIHRvIHNlZSBpZiBpdCBjYW4gdXNlIGEgZGlmZmVyZW50IGNsYXNzICovXG4vKiBUaGVzZSBjbGFzc2VzIHdlcmUgYnJvdWdodCBpbiBmcm9tIHRoZSBvbGQgVXNlclNldHRpbmdzIGFuZCBhcmUgaW5jbHVkZWQgaGVyZSB0byBhdm9pZCAqL1xuLyogYnJlYWtpbmcgdGhlIGFwcC4gKi9cbi8qIFJlZjogaHR0cHM6Ly9naXRodWIuY29tL3ZlY3Rvci1pbS9lbGVtZW50LXdlYi9pc3N1ZXMvODQyMCAqL1xuLm14X0dlbmVyYWxCdXR0b24ge1xuICAgIEBtaXhpbiBteF9EaWFsb2dCdXR0b247XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIG1hcmdpbjogYXV0bztcbn1cblxuLm14X1RleHRJbnB1dERpYWxvZ19sYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbn1cblxuLm14X1RleHRJbnB1dERpYWxvZ19pbnB1dCB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgIHBhZGRpbmc6IDlweDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbn1cblxuLm14X2J1dHRvbl9yb3cge1xuICAgIG1hcmdpbi10b3A6IDY5cHg7XG59XG5cbi8qIHVzZXJuYW1lIGNvbG9ycyAqL1xuLyogdXNlZCBieSBTZW5kZXJQcm9maWxlICYgUm9vbVByZXZpZXdCYXIgKi9cbi5teF9Vc2VybmFtZV9jb2xvcjEge1xuICAgIGNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDEtY29sb3I7XG59XG5cbi5teF9Vc2VybmFtZV9jb2xvcjIge1xuICAgIGNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDItY29sb3I7XG59XG5cbi5teF9Vc2VybmFtZV9jb2xvcjMge1xuICAgIGNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDMtY29sb3I7XG59XG5cbi5teF9Vc2VybmFtZV9jb2xvcjQge1xuICAgIGNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDQtY29sb3I7XG59XG5cbi5teF9Vc2VybmFtZV9jb2xvcjUge1xuICAgIGNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDUtY29sb3I7XG59XG5cbi5teF9Vc2VybmFtZV9jb2xvcjYge1xuICAgIGNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDYtY29sb3I7XG59XG5cbi5teF9BcHBXYXJuaW5nLFxuLm14X0FwcFBlcm1pc3Npb24ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbkBkZWZpbmUtbWl4aW4gUHJvZ3Jlc3NCYXJDb2xvdXIgJGNvbG91ciB7XG4gICAgY29sb3I6ICRjb2xvdXI7XG4gICAgJjo6LW1vei1wcm9ncmVzcy1iYXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3VyO1xuICAgIH1cbiAgICAmOjotd2Via2l0LXByb2dyZXNzLXZhbHVlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG91cjtcbiAgICB9XG59XG5cbkBkZWZpbmUtbWl4aW4gUHJvZ3Jlc3NCYXJCZ0NvbG91ciAkY29sb3VyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3VyO1xuICAgICY6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG91cjtcbiAgICB9XG59XG5cbkBkZWZpbmUtbWl4aW4gUHJvZ3Jlc3NCYXJCb3JkZXJSYWRpdXMgJHJhZGl1cyB7XG4gICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICAmOjotbW96LXByb2dyZXNzLWJhciB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgfVxuICAgICY6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFyLFxuICAgICY6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgIH1cbn1cblxuQGRlZmluZS1taXhpbiB1bnJlYWwtZm9jdXMge1xuICAgIG91dGxpbmUtd2lkdGg6IDJweDtcbiAgICBvdXRsaW5lLXN0eWxlOiBzb2xpZDtcbiAgICBvdXRsaW5lLWNvbG9yOiBIaWdobGlnaHQ7XG5cbiAgICAvKiBXZWJLaXQgZ2V0cyBpdHMgbmF0aXZlIGZvY3VzIHN0eWxlcy4gKi9cbiAgICBAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogMCkge1xuICAgICAgICBvdXRsaW5lLWNvbG9yOiAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7XG4gICAgICAgIG91dGxpbmUtc3R5bGU6IGF1dG87XG4gICAgfVxufVxuXG5AZGVmaW5lLW1peGluIExlZ2FjeUNhbGxCdXR0b24ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgIG1hcmdpbi1yaWdodDogMDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29sb3I6ICRidXR0b24tZmctY29sb3I7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbn1cblxuQGRlZmluZS1taXhpbiBUaHJlYWRSZXBsaWVzQW1vdW50IHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tY3BkLXNwYWNlLTN4KSAwIHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbkBkZWZpbmUtbWl4aW4gVGhyZWFkU3VtbWFyeUljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgY29sb3I6ICRpY29uLWJ1dHRvbi1jb2xvcjtcbn1cblxuQGRlZmluZS1taXhpbiBjb21wb3NlckJ1dHRvbkhpZ2hMaWdodCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1wcmltYXJ5KTtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSkgIWltcG9ydGFudDtcbn1cblxuQGRlZmluZS1taXhpbiBjb21wb3NlckJ1dHRvbiAkYm9yZGVyLXJhZGl1cywgJGhvdmVyLWNvbG9yLCAkaG92ZXItYmcge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXM7XG5cbiAgICBzdmcge1xuICAgICAgICBjb2xvcjogJGljb24tYnV0dG9uLWNvbG9yO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItYmc7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGNvbG9yOiAkaG92ZXItY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9saW5lQ2xhbXAge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgLXdlYmtpdC1saW5lLWNsYW1wOiB2YXIoLS1teC1saW5lLWNsYW1wLCAxKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiBMYXlvdXQgY29tcGF0aWJpbGl0eSBob29rIGZvciB0aW1lc3RhbXAgcGxhY2VtZW50IGluIGV4aXN0aW5nIGFwcC93ZWIgdGltZWxpbmUgc3VyZmFjZXMuICovXG4ubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5teF9NZXNzYWdlVGltZXN0YW1wX2xhdGVJY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQtYmxvY2stc3RhcnQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgaW5zZXQtaW5saW5lLWVuZDogMTAwJTtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbn1cbiIsbnVsbCwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0JlYWNvbkxpc3RJdGVtIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpIDA7XG5cbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHN5c3RlbTtcblxuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm14X0JlYWNvbkxpc3RJdGVtX2F2YXRhckljb24ge1xuICAgIGZsZXg6IDAgMDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgd2lkdGg6IDMycHg7XG59XG5cbi5teF9CZWFjb25MaXN0SXRlbV9hdmF0YXIge1xuICAgIGZsZXg6IDAgMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICRsb2NhdGlvbi1saXZlLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuLm14X0JlYWNvbkxpc3RJdGVtX2luZm8ge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIHdpZHRoOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbn1cblxuLm14X0JlYWNvbkxpc3RJdGVtX3N0YXR1cyB7XG4gICAgLyogb3ZlcnJpZGUgYmVhY29uIHN0YXR1cyBwYWRkaW5nICovXG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAubXhfQmVhY29uU3RhdHVzX2xhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxufVxuXG4ubXhfQmVhY29uTGlzdEl0ZW1fbGFzdFVwZGF0ZWQge1xuICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICBmb250LXNpemU6ICRmb250LTEwcHg7XG59XG5cbi5teF9CZWFjb25MaXN0SXRlbV9pbnRlcmFjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9CZWFjb25TdGF0dXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgIGNvbG9yOiB2YXIoLS1jb2xvcik7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xufVxuXG4ubXhfQmVhY29uU3RhdHVzX0xvYWRpbmcsXG4ubXhfQmVhY29uU3RhdHVzX1N0b3BwZWQge1xuICAgIC0tY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xufVxuXG4ubXhfQmVhY29uU3RhdHVzX0FjdGl2ZSxcbi5teF9CZWFjb25TdGF0dXNfRXJyb3Ige1xuICAgIC0tY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9CZWFjb25TdGF0dXNfaWNvbiB7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIHdpZHRoOiAzMnB4O1xuXG4gICAgZmxleDogMCAwIDMycHg7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfQmVhY29uU3RhdHVzX2Rlc2NyaXB0aW9uIHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE0cHg7XG5cbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLm14X0JlYWNvblN0YXR1c19kZXNjcmlwdGlvbl9zdGF0dXMge1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG59XG5cbi5teF9CZWFjb25TdGF0dXNfZXhwaXJ5VGltZSB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbn1cblxuLm14X0JlYWNvblN0YXR1c19sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQmVhY29uU3RhdHVzVG9vbHRpcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNDJweDtcbiAgICBtYXgtd2lkdGg6IDE1MHB4O1xuICAgIGhlaWdodDogMzhweDtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X0JlYWNvblN0YXR1c1Rvb2x0aXBfaW5uZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJhY2tncm91bmQ6ICRtZW51LWJnLWNvbG9yO1xuICAgIGJveC1zaGFkb3c6IDRweCA0cHggMTJweCAwICRtZW51LWJveC1zaGFkb3ctY29sb3I7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQmVhY29uVmlld0RpYWxvZ193cmFwcGVyIC5teF9EaWFsb2cge1xuICAgIHBhZGRpbmc6IDBweDtcblxuICAgIC8qIFVuc2V0IGNvbnRhaW4gYW5kIHBvc2l0aW9uIHRvIGFsbG93IHRoZSBjbG9zZSBidXR0b25cbiAgICB0byBhcHBlYXIgb3V0c2lkZSB0aGUgZGlhbG9nICovXG4gICAgY29udGFpbjogdW5zZXQ7XG4gICAgcG9zaXRpb246IHVuc2V0O1xufVxuXG4ubXhfQmVhY29uVmlld0RpYWxvZyB7XG4gICAgLyogc3VidHJhY3QgMC41cHggdG8gcHJldmVudCBzaW5nbGUtcGl4ZWwgbWFyZ2luIGR1ZSB0byByb3VuZGluZyAqL1xuICAgIHdpZHRoOiBjYWxjKDgwdncgLSAwLjVweCk7XG4gICAgaGVpZ2h0OiBjYWxjKDgwdmggLSAwLjVweCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC8qIHNpZGViYXIgaXMgYWJzb2x1dGVseSBwb3NpdGlvbmVkIGluc2lkZSAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5teF9EaWFsb2dfaGVhZGVyIHtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgcG9zaXRpb246IHVuc2V0O1xuXG4gICAgICAgIC5teF9EaWFsb2dfdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9EaWFsb2dfY2FuY2VsQnV0dG9uIHtcbiAgICAgICAgICAgIHotaW5kZXg6IDQwMTA7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICByaWdodDogNXZ3O1xuICAgICAgICAgICAgdG9wOiA1dmg7XG4gICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkaWFsb2ctY2xvc2UtZXh0ZXJuYWwtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9CZWFjb25WaWV3RGlhbG9nX21hcCB7XG4gICAgd2lkdGg6IDgwdnc7XG4gICAgaGVpZ2h0OiA4MHZoO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuLm14X0JlYWNvblZpZXdEaWFsb2dfbWFwRmFsbGJhY2tNZXNzYWdlIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG5cbi5teF9CZWFjb25WaWV3RGlhbG9nX3ZpZXdMaXN0QnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIGxlZnQ6IHZhcigtLWNwZC1zcGFjZS02eCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGlhbG9nT3duQmVhY29uU3RhdHVzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgIHdpZHRoOiAzMDBweDtcbiAgICBtYXJnaW4tbGVmdDogLTE1MHB4O1xuICAgIGxlZnQ6IDUwJTtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcblxuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3gtc2hhZG93OiA0cHggNHB4IDEycHggMCAkbWVudS1ib3gtc2hhZG93LWNvbG9yO1xuXG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtM3gpO1xufVxuXG4ubXhfRGlhbG9nT3duQmVhY29uU3RhdHVzX2F2YXRhckljb24ge1xuICAgIGZsZXg6IDAgMDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMngpIDAgdmFyKC0tY3BkLXNwYWNlLTJ4KSAwO1xufVxuXG4ubXhfRGlhbG9nT3duQmVhY29uU3RhdHVzX2F2YXRhciB7XG4gICAgZmxleDogMCAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICBib3JkZXI6IDJweCBzb2xpZCAkbG9jYXRpb24tbGl2ZS1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMngpIDAgdmFyKC0tY3BkLXNwYWNlLTJ4KSAwO1xufVxuXG4ubXhfRGlhbG9nT3duQmVhY29uU3RhdHVzX3N0YXR1cyB7XG4gICAgZmxleDogMSAxO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGlhbG9nU2lkZWJhciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMjY1cHg7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBib3gtc2hhZG93OiAwcHggNHB4IDRweCAkbWVudS1ib3gtc2hhZG93LWNvbG9yO1xuXG4gICAgLm14X0RpYWxvZ1NpZGViYXJfaGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgICAgIGZsZXg6IDAgMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcblxuICAgICAgICAubXhfRGlhbG9nU2lkZWJhcl9jbG9zZUJ1dHRvbkljb24ge1xuICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ1NpZGViYXJfbGlzdCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZmxleDogMSAxIDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG59XG5cbi5teF9EaWFsb2dTaWRlYmFyX25vUmVzdWx0cyB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xlZnRQYW5lbExpdmVTaGFyZVdhcm5pbmcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMHB4O1xuXG4gICAgLyogcGFuZWwgYmFja2Ryb3BzIG92ZXJsYXkgdGhlIHdob2xlIHNpZGVwYW5lbCAqL1xuICAgIC8qIGdvIGFib3ZlIHRvIGdldCBob3ZlciBmb3IgdGl0bGUgKi9cbiAgICB6LWluZGV4OiAxO1xufVxuXG4ubXhfTGVmdFBhbmVsTGl2ZVNoYXJlV2FybmluZ19fZXJyb3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhbGVydDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MaXZlVGltZVJlbWFpbmluZyB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfT3duQmVhY29uU3RhdHVzX2J1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9Pd25CZWFjb25TdGF0dXNfZGVzdHJ1Y3RpdmVCdXR0b24ge1xuICAgIC8qIG92ZXJyaWRlIGJ1dHRvbiBsaW5rX2lubGluZSBzdHlsZXMgKi9cbiAgICBjb2xvcjogJGFsZXJ0ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCkgIWltcG9ydGFudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TaGFyZUxhdGVzdExvY2F0aW9uX2ljb24ge1xuICAgIGhlaWdodDogMTNweDtcbiAgICB3aWR0aDogMTNweDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xufVxuXG4vKiBkb3VibGUgY2xhc3MgdG8gYmUgbW9yZSBzcGVjaWZpYyB0aGFuIHRoZSBnZW5lcmFsIG14X0NvcHlhYmxlVGV4dCBDU1MgcnVsZSAqL1xuLm14X0NvcHlhYmxlVGV4dC5teF9TaGFyZUxhdGVzdExvY2F0aW9uX2NvcHkge1xuICAgIC8qIG92ZXJyaWRlIGNvcHlhYmxlIHRleHQgc3R5bGUgdG8gbWFrZSBjb21wYWN0ICovXG4gICAgLm14X0NvcHlhYmxlVGV4dF9jb3B5QnV0dG9uIHtcbiAgICAgICAgaGVpZ2h0OiAxM3B4O1xuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KSAhaW1wb3J0YW50O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogLTFweDtcbiAgICAgICAgd2lkdGg6IDEzcHg7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGhlaWdodDogMTNweDtcbiAgICAgICAgICAgIHdpZHRoOiAxM3B4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1N0eWxlZExpdmVCZWFjb25JY29uIHtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3JkZXItd2lkdGg6IDJweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRsb2NhdGlvbi1saXZlLWNvbG9yO1xuICAgIGJvcmRlci1jb2xvcjogJGxvY2F0aW9uLWxpdmUtY29sb3I7XG4gICAgcGFkZGluZzogMnB4O1xuICAgIC8qIGNvbG9ycyBpY29uICovXG4gICAgY29sb3I6IHdoaXRlO1xufVxuXG4ubXhfU3R5bGVkTGl2ZUJlYWNvbkljb24ubXhfU3R5bGVkTGl2ZUJlYWNvbkljb25fZXJyb3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhbGVydDtcbiAgICBib3JkZXItY29sb3I6ICRhbGVydDtcbn1cblxuLm14X1N0eWxlZExpdmVCZWFjb25JY29uLm14X1N0eWxlZExpdmVCZWFjb25JY29uX2lkbGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkcXVhdGVybmFyeS1jb250ZW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0tlYmFiQ29udGV4dE1lbnVfaWNvbiB7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIGNvbG9yOiAkaWNvbi1idXR0b24tY29sb3I7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUG9sbERldGFpbEhlYWRlciB7XG4gICAgLyogb3ZlcnJpZGUgYWNjZXNzaWJsZWJ1dHRvbiBzdHlsZSAqL1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweCAhaW1wb3J0YW50O1xufVxuXG4ubXhfUG9sbERldGFpbEhlYWRlcl9pY29uIHtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUG9sbExpc3RJdGVtIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLm14X1BvbGxMaXN0SXRlbV9jb250ZW50IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGp1c3RpZnktY29udGVudDogbGVmdDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IGF1dG8gYXV0byBhdXRvO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuLm14X1BvbGxMaXN0SXRlbV9pY29uIHtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfUG9sbExpc3RJdGVtX3F1ZXN0aW9uIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUG9sbExpc3RJdGVtRW5kZWQge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfUG9sbExpc3RJdGVtRW5kZWRfY29udGVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm14X1BvbGxMaXN0SXRlbUVuZGVkX3RpdGxlIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGp1c3RpZnktY29udGVudDogbGVmdDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbi1jb250ZW50IDFmciBtaW4tY29udGVudDtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87XG59XG5cbi5teF9Qb2xsTGlzdEl0ZW1FbmRlZF9pY29uIHtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfUG9sbExpc3RJdGVtRW5kZWRfZGF0ZSB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9Qb2xsTGlzdEl0ZW1FbmRlZF9xdWVzdGlvbiB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4ubXhfUG9sbExpc3RJdGVtRW5kZWRfYW5zd2VycyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbn1cblxuLm14X1BvbGxMaXN0SXRlbUVuZGVkX3ZvdGVDb3VudCB7XG4gICAgLyogNnB4IHRvIG1hdGNoIFBvbGxPcHRpb24gcGFkZGluZyAqL1xuICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTJ4KSAwIDAgNnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTktMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0FwcFBlcm1pc3Npb24ge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICB3aWR0aDogMTAwJTsgLyogbWFrZSBteF9BcHBQZXJtaXNzaW9uIGZpbGwgd2lkdGggb2YgbXhfQXBwVGlsZUJvZHkgc28gdGhhdCBzY3JvbGwgYmFyIGFwcGVhcnMgb24gdGhlIGVkZ2UgKi9cbiAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgLm14X0FwcFBlcm1pc3Npb25fYm9sZGVyLFxuICAgIC5teF9BcHBQZXJtaXNzaW9uX2NvbnRlbnRfYm9sZGVyIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxuICAgIC5teF9BcHBQZXJtaXNzaW9uX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW4tYmxvY2s6IGF1dG87IC8qIHBsYWNlIGF0IHRoZSBjZW50ZXIgKi9cblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBtYXJnaW4tYmxvY2s6IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVGV4dFdpdGhUb29sdGlwX3RhcmdldC0taGVscEljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgaGVpZ2h0OiAkZm9udC0xNHB4OyAvKiBhbGlnbiB3aXRoIGNoYXJhY3RlcnMgb24gdGhlIHNhbWUgbGluZSAqL1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgLm14X0ljb24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgU3VndXJ1IEhpcmFoYXJhXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BcHBXYXJuaW5nIHtcbiAgICBmb250LXNpemU6ICRmb250LTE2cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICBoNCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRmlsdGVyRHJvcGRvd24ge1xuICAgIC5teF9Ecm9wZG93bl9tZW51IHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgbGVmdDogdW5zZXQ7XG4gICAgICAgIHJpZ2h0OiBjYWxjKC0xICogdmFyKC0tY3BkLXNwYWNlLTN4KSk7XG4gICAgICAgIHdpZHRoOiAyMzJweDtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KTtcblxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCAxcHggM3B4IHJnYigyMywgMjUsIDI4LCAwLjA1KTtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3lzdGVtO1xuXG4gICAgICAgIC5teF9Ecm9wZG93bl9vcHRpb25faGlnaGxpZ2h0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0Ryb3Bkb3duX2lucHV0IHtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Ecm9wZG93bl9hcnJvdyB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubXhfRmlsdGVyRHJvcGRvd25fb3B0aW9uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpIDAgdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuXG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xufVxuXG4ubXhfRmlsdGVyRHJvcGRvd25fb3B0aW9uU2VsZWN0ZWRJY29uIHtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBsZWZ0OiAwO1xufVxuXG4ubXhfRmlsdGVyRHJvcGRvd25fb3B0aW9uTGFiZWwge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubXhfRmlsdGVyRHJvcGRvd25fb3B0aW9uRGVzY3JpcHRpb24ge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9GaWx0ZXJUYWJHcm91cCB7XG4gICAgLyogUmVzZXQgdGhlIGJyb3dzZXIgZGVmYXVsdCA8ZmllbGRzZXQ+IHN0eWxpbmcgKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWlubGluZTogdW5zZXQ7XG4gICAgcGFkZGluZy1ibG9jazogdW5zZXQ7XG4gICAgcGFkZGluZy1pbmxpbmU6IHVuc2V0O1xuICAgIG1pbi1pbmxpbmUtc2l6ZTogdW5zZXQ7XG4gICAgYm9yZGVyOiBub25lO1xuXG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgbGFiZWwge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAmICsgc3BhbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6Y2hlY2tlZCArIHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIC8qIHVuZGVybGluZSAqL1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxLjVweCAwIDAgY3VycmVudENvbG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xlYXJuTW9yZV9idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0VuYWJsZUxpdmVTaGFyZSB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS04eCkgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLm14X0VuYWJsZUxpdmVTaGFyZV9oZWFkaW5nIHtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbn1cblxuLm14X0VuYWJsZUxpdmVTaGFyZV9pY29uIHtcbiAgICBoZWlnaHQ6IDU4cHg7XG4gICAgd2lkdGg6IDU4cHg7XG59XG5cbi5teF9FbmFibGVMaXZlU2hhcmVfZGVzY3JpcHRpb24ge1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMHB4O1xufVxuXG4ubXhfRW5hYmxlTGl2ZVNoYXJlX2J1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGl2ZUR1cmF0aW9uRHJvcGRvd24ge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTG9jYXRpb25TaGFyZU1lbnUge1xuICAgIHdpZHRoOiAzNzVweDtcbiAgICBoZWlnaHQ6IDQ2MHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NYXBFcnJvciB7XG4gICAgcGFkZGluZzogMTAwcHggdmFyKC0tY3BkLXNwYWNlLTh4KSAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC0tbXgtbWFwLWVycm9yLWljb24tY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAtLW14LW1hcC1lcnJvci1pY29uLXNpemU6IDU4cHg7XG59XG5cbi5teF9NYXBFcnJvci5teF9NYXBFcnJvcl9pc01pbmltaXNlZCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwYW5lbHM7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNnB4O1xuXG4gICAgLS1teC1tYXAtZXJyb3ItaWNvbi1jb2xvcjogJGFsZXJ0O1xuICAgIC0tbXgtbWFwLWVycm9yLWljb24tc2l6ZTogMjZweDtcblxuICAgIC5teF9NYXBFcnJvcl9tZXNzYWdlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBtYXgtd2lkdGg6IDI3NXB4O1xuICAgIH1cblxuICAgIC5teF9NYXBFcnJvcl9oZWFkaW5nIHtcbiAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIC8qIG92ZXJyaWRlIGgzIGhlYWRpbmcgc2l6ZSAqL1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLm14X01hcEVycm9yX21lc3NhZ2Uge1xuICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTR4KSAwIHZhcigtLWNwZC1zcGFjZS04eCk7XG59XG5cbi5teF9NYXBFcnJvcl9oZWFkaW5nIHtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbn1cblxuLm14X01hcEVycm9yX2ljb24ge1xuICAgIGhlaWdodDogdmFyKC0tbXgtbWFwLWVycm9yLWljb24tc2l6ZSk7XG4gICAgd2lkdGg6IHZhcigtLW14LW1hcC1lcnJvci1pY29uLXNpemUpO1xuICAgIGNvbG9yOiB2YXIoLS1teC1tYXAtZXJyb3ItaWNvbi1jb2xvcik7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWFwRmFsbGJhY2sge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDA7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3lzdGVtO1xufVxuXG4ubXhfTWFwRmFsbGJhY2tfYmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICBjb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICB6LWluZGV4OiAtMTtcblxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubXhfTWFwRmFsbGJhY2tfaWNvbiB7XG4gICAgd2lkdGg6IDY1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICBjb2xvcjogJHF1YXRlcm5hcnktY29udGVudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NYXJrZXJfZGVmYXVsdENvbG9yIHtcbiAgICBjb2xvcjogJGFjY2VudDtcbn1cblxuLm14X01hcmtlcl9ib3JkZXIge1xuICAgIHdpZHRoOiA0MnB4O1xuICAgIGhlaWdodDogNDJweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwcHggM3B4IDVweCByZ2IoMCwgMCwgMCwgMC4yKSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLyogY2FyZXQgZG93biAqL1xuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGJvcmRlci1sZWZ0OiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1yaWdodDogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItdG9wOiA1cHggc29saWQgY3VycmVudENvbG9yO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogLTRweDtcbiAgICB9XG59XG5cbi5teF9NYXJrZXJfaWNvbiB7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGhlaWdodDogMjBweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkNcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NoYXJlRGlhbG9nQnV0dG9ucyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMDtcbiAgICB0b3A6IDA7XG59XG5cbmJ1dHRvbi5teF9TaGFyZURpYWxvZ0J1dHRvbnNfYnV0dG9uIHtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgb3BhY2l0eTogMC44O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICYubGVmdCB7XG4gICAgICAgIGxlZnQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxuXG4gICAgJi5yaWdodCB7XG4gICAgICAgIHJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIH1cbn1cblxuLm14X1NoYXJlRGlhbG9nQnV0dG9uc19idXR0b24taWNvbiB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIG1hcmdpbjogMnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NoYXJlVHlwZSB7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBwYWRkaW5nOiA2MHB4IHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTh4KTtcblxuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgLm14X1NoYXJlVHlwZV93cmFwcGVyX29wdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICByb3ctZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcblxuICAgICAgICAubXhfU2hhcmVUeXBlX29wdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1NoYXJlVHlwZV9iYWRnZSB7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIHdpZHRoOiA2MHB4O1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS01eCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAxNHB4IHNvbGlkICRhY2NlbnQ7XG4gICAgLyogY29sb3JzIGljb24gKi9cbiAgICBjb2xvcjogd2hpdGU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLm14X1NoYXJlVHlwZV9oZWFkaW5nIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teF9TaGFyZVR5cGVfb3B0aW9uLWljb24ge1xuICAgIGhlaWdodDogNDBweDtcbiAgICB3aWR0aDogNDBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICBmbGV4OiAwIDAgNDBweDtcbiAgICBib3JkZXItd2lkdGg6IDJweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgIC8qIExpdmUgaXMgc3R5bGVkIGJ5IFN0eWxlZExpdmVCZWFjb25JY29uICovXG5cbiAgICAmLk93biB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGFjY2VudDtcbiAgICB9XG5cbiAgICAmLlBpbiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGFjY2VudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcbiAgICAgICAgcGFkZGluZzogN3B4O1xuICAgICAgICAvKiBjb2xvcnMgaWNvbiAqL1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1pvb21CdXR0b25zIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgIHJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICByb3ctZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgLm14X1pvb21CdXR0b25zX2J1dHRvbiB7XG4gICAgICAgICRab29tQnV0dG9uc19idXR0b24tc2l6ZTogMjRweDtcblxuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBoZWlnaHQ6ICRab29tQnV0dG9uc19idXR0b24tc2l6ZTtcbiAgICAgICAgd2lkdGg6ICRab29tQnV0dG9uc19idXR0b24tc2l6ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCA0cHggMTJweCByZ2IoMCwgMCwgMCwgMC4yNSk7XG5cbiAgICAgICAgLm14X1pvb21CdXR0b25zX2ljb24ge1xuICAgICAgICAgICAgJFpvb21CdXR0b25zX2ljb24tc2l6ZTogMTJweDtcblxuICAgICAgICAgICAgaGVpZ2h0OiAkWm9vbUJ1dHRvbnNfaWNvbi1zaXplO1xuICAgICAgICAgICAgd2lkdGg6ICRab29tQnV0dG9uc19pY29uLXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NQmVhY29uQm9keSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMjIwcHg7XG4gICAgbWF4LXdpZHRoOiAzMjVweDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLU1Cb2R5LWJvcmRlci1yYWRpdXMpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5teF9NQmVhY29uQm9keS5teF9NQmVhY29uQm9keV93aXRob3V0TWFwIHtcbiAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICAubXhfTUJlYWNvbkJvZHlfY2hpbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuXG4ubXhfTUJlYWNvbkJvZHlfd2l0aG91dE1hcENvbnRlbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwYW5lbHM7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xufVxuXG4ubXhfTUJlYWNvbkJvZHlfd2l0aG91dE1hcEluZm9MYXN0VXBkYXRlZCB7XG4gICAgLyogNDhweCBsaW5lcyB1cCB3aXRoIGljb24gaW4gQmVhY29uU3RhdHVzICovXG4gICAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLWNwZC1zcGFjZS0yeCkpO1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtMngpIDQ4cHg7XG5cbiAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMHB4O1xufVxuXG4ubXhfTUJlYWNvbkJvZHlfbWFwIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMDsgLyoga2VlcHMgdGhlIGVudGlyZSBtYXAgdW5kZXIgdGhlIG1lc3NhZ2UgYWN0aW9uIGJhcnMgKi9cblxuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm14X01CZWFjb25Cb2R5X21hcEZhbGxiYWNrLFxuLm14X01CZWFjb25Cb2R5X21hcEVycm9yIHtcbiAgICAvKiBwdXNoZXMgc3Bpbm5lci9pY29uIHVwICovXG4gICAgLyogdG8gYXBwZWFyIG1vcmUgY2VudGVyZWQgd2l0aCB0aGUgZm9vdGVyICovXG4gICAgcGFkZGluZy1ib3R0b206IDUwcHggIWltcG9ydGFudDtcbn1cblxuLm14X01CZWFjb25Cb2R5X21hcEVycm9ySW50ZXJhY3RpdmUge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm14X01CZWFjb25Cb2R5X21hcEZhbGxiYWNrIHtcbiAgICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5teF9NQmVhY29uQm9keV9jaGluIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgb3BhY2l0eTogMC44NTtcbn1cblxuLm14X0V2ZW50VGlsZVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXSAubXhfRXZlbnRUaWxlX2xpbmUgLm14X01CZWFjb25Cb2R5IHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgd2lkdGg6IDQ1MHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01lZGlhUHJvY2Vzc2luZ0Vycm9yX0ljb24ge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUG9sbE9wdGlvbiB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG5cbiAgICAubXhfU3R5bGVkUmFkaW9CdXR0b25fY29udGVudCxcbiAgICAubXhfUG9sbE9wdGlvbl9lbmRlZE9wdGlvbiB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAycHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgIH1cblxuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9zcGFjZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLm14X1BvbGxPcHRpb24sXG4vKiBsYWJlbCBoYXMgY3Vyc29yOiBkZWZhdWx0IGluIHVzZXItYWdlbnQgc3R5bGVzaGVldCAqL1xuLyogb3ZlcnJpZGUgKi9cbi5teF9Qb2xsT3B0aW9uX2xpdmUtb3B0aW9uIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5teF9Qb2xsT3B0aW9uX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xufVxuXG4ubXhfUG9sbE9wdGlvbl9vcHRpb25Wb3RlQ291bnQge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5teF9Qb2xsT3B0aW9uX3dpbm5lckljb24ge1xuICAgIGhlaWdodDogMTJweDtcbiAgICB3aWR0aDogMTJweDtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tYWNjZW50LXRlcnRpYXJ5KTtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm14X1BvbGxPcHRpb25fY2hlY2tlZCB7XG4gICAgLm14X1BvbGxPcHRpb25fcG9wdWxhcml0eUJhY2tncm91bmQge1xuICAgICAgICAubXhfUG9sbE9wdGlvbl9wb3B1bGFyaXR5QW1vdW50IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogb3ZlcnJpZGUgY2hlY2tlZCByYWRpbyBidXR0b24gc3R5bGluZyB0byBzaG93IGNoZWNrbWFyayBpbnN0ZWFkICovXG4gICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uX2NoZWNrZWQge1xuICAgICAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIGRpdiB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG5cbiAgICAgICAgICAgIGRpdiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1vbi1zb2xpZC1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAtMnB4O1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9Qb2xsT3B0aW9uX2VuZGVkLm14X1BvbGxPcHRpb25fY2hlY2tlZCB7XG4gICAgLm14X1BvbGxPcHRpb25fcG9wdWxhcml0eUJhY2tncm91bmQge1xuICAgICAgICAubXhfUG9sbE9wdGlvbl9wb3B1bGFyaXR5QW1vdW50IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLWFjY2VudC10ZXJ0aWFyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBvdmVycmlkZSBjaGVja2VkIHJhZGlvIGJ1dHRvbiBzdHlsaW5nIHRvIHNob3cgY2hlY2ttYXJrIGluc3RlYWQgKi9cbiAgICAubXhfU3R5bGVkUmFkaW9CdXR0b25fY2hlY2tlZCB7XG4gICAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgZGl2IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tYWNjZW50LXRlcnRpYXJ5KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLWFjY2VudC10ZXJ0aWFyeSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIG9wdGlvbnMgbm90IGFjdGlvbmFibGUgaW4gdGhlc2Ugc3RhdGVzICovXG4ubXhfUG9sbE9wdGlvbl9jaGVja2VkLFxuLm14X1BvbGxPcHRpb25fZW5kZWQge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubXhfUG9sbE9wdGlvbl9wb3B1bGFyaXR5QmFja2dyb3VuZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3lzdGVtO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAubXhfUG9sbE9wdGlvbl9wb3B1bGFyaXR5QW1vdW50IHtcbiAgICAgICAgd2lkdGg6IDAlO1xuICAgICAgICBoZWlnaHQ6IDhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1wcmltYXJ5KTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTkgTmV3IFZlY3RvciBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLypcbiAqIFRoZXNlIHVzZWQgdG8gbGl2ZSBpbiBHZW5lcmFsIFVzZXIgU2V0dGluZ3MuIFRoZXNlIGNvbXBvbmVudHMgYXJlIGhvcnJpYmx5IGR1cGxpY2F0aXZlXG4gKiBidXQgc2hhcmUgdGhlIHNhbWUgc3R5bGVzLiBGb3Igbm93IEknbSBwdXR0aW5nIHRoZW0gaGVyZSBzbyBJIGNhbiByZW5hbWVkIHRoZSBnZW5lcmFsXG4gKiB0YWIgc2Vuc2libHkgYW5kIGJlZm9yZSBJIGNhbiByZWZhY3RvciB0aGVzZSBjb21wb25lbnRzLlxuICovXG5cbi5teF9BZGRSZW1vdmVUaHJlZXBpZHNfZXhpc3Rpbmcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm14X0FkZFJlbW92ZVRocmVlcGlkc19leGlzdGluZ19hZGRyZXNzLFxuLm14X0FkZFJlbW92ZVRocmVlcGlkc19leGlzdGluZ19wcm9tcHRUZXh0IHtcbiAgICBmbGV4OiAxO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuLm14X0FkZFJlbW92ZVRocmVlcGlkc19leGlzdGluZ19idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG59XG5cbi5teF9FbWFpbEFkZHJlc3Nlc1Bob25lTnVtYmVyc192ZXJpZnkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5teF9FbWFpbEFkZHJlc3Nlc1Bob25lTnVtYmVyc19leGlzdGluZ19idXR0b24ge1xuICAgIGp1c3RpZnktY29udGVudDogcmlnaHQ7XG59XG5cbi5teF9FbWFpbEFkZHJlc3Nlc1Bob25lTnVtYmVyc192ZXJpZnlfaW5zdHJ1Y3Rpb25zIHtcbiAgICBmbGV4OiAxO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0N1cnJlbnREZXZpY2VTZWN0aW9uX2RldmljZURldGFpbHMge1xuICAgIC8qIGFsaWduIHdpdGggdGV4dCBvZiBzZXNzaW9uIHRpbGUgKi9cbiAgICBtYXJnaW4tbGVmdDogNTZweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZXZpY2VEZXRhaWxIZWFkaW5nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5teF9EZXZpY2VEZXRhaWxIZWFkaW5nX3JlbmFtZUN0YSB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5teF9EZXZpY2VEZXRhaWxIZWFkaW5nX3JlbmFtZUZvcm0ge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIGp1c3RpZnktY29udGVudDogbGVmdDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEwMCU7XG59XG5cbi5teF9EZXZpY2VEZXRhaWxIZWFkaW5nX3JlbmFtZUZvcm1CdXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgLm14X1NwaW5uZXIge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgIH1cbn1cblxuLm14X0RldmljZURldGFpbEhlYWRpbmdfcmVuYW1lRm9ybUlucHV0IHtcbiAgICAvKiBvdmVycmlkZSBmaWVsZCBzdHlsZXMgKi9cbiAgICBtYXJnaW46IDAgMCB2YXIoLS1jcGQtc3BhY2UtMXgpIDAgIWltcG9ydGFudDtcbn1cblxuLm14X0RldmljZURldGFpbEhlYWRpbmdfcmVuYW1lRm9ybUhlYWRpbmcge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLm14X0RldmljZURldGFpbEhlYWRpbmdfcmVuYW1lRm9ybUVycm9yIHtcbiAgICBjb2xvcjogJGFsZXJ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGV2aWNlRGV0YWlscyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9EZXZpY2VEZXRhaWxzX3NlY3Rpb24ge1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS01eCk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG5cbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxMDAlO1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG4ubXhfRGV2aWNlRGV0YWlsc19zZWN0aW9uSGVhZGluZyB7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgLm14X0RldmljZURldGFpbHNfc2VjdGlvblN1YmhlYWRpbmcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTRweDtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICB9XG59XG5cbi5teF9EZXZpY2VEZXRhaWxzX21ldGFkYXRhVGFibGUge1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG5cbiAgICB0aCB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuXG4gICAgdGQge1xuICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICB9XG5cbiAgICAubXhEZXZpY2VEZXRhaWxzX21ldGFkYXRhTGFiZWwge1xuICAgICAgICB3aWR0aDogMTYwcHg7XG4gICAgfVxuXG4gICAgLm14RGV2aWNlRGV0YWlsc19tZXRhZGF0YVZhbHVlIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubXhfRGV2aWNlRGV0YWlsc19zaWduT3V0QnV0dG9uQ29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xufVxuXG4ubXhfRGV2aWNlRGV0YWlsc19wdXNoTm90aWZpY2F0aW9ucyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgLm14X1RvZ2dsZVN3aXRjaCB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGV2aWNlRXhwYW5kRGV0YWlsc0J1dHRvbiB7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGNvbG9yOiAkaWNvbi1idXR0b24tY29sb3I7XG5cbiAgICAtLWljb24tdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcXVpbmFyeS1jb250ZW50O1xuICAgIH1cbn1cblxuLm14X0RldmljZUV4cGFuZERldGFpbHNCdXR0b24ubXhfRGV2aWNlRXhwYW5kRGV0YWlsc0J1dHRvbl9leHBhbmRlZCB7XG4gICAgLS1pY29uLXRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuXG4gICAgYmFja2dyb3VuZDogJHN5c3RlbTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcXVpbmFyeS1jb250ZW50O1xuICAgIH1cbn1cblxuLm14X0RldmljZUV4cGFuZERldGFpbHNCdXR0b25faWNvbiB7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIHdpZHRoOiAyNHB4O1xuXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gICAgdHJhbnNmb3JtOiB2YXIoLS1pY29uLXRyYW5zZm9ybSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RldmljZVNlY3VyaXR5Q2FyZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi5teF9EZXZpY2VTZWN1cml0eUNhcmRfaWNvbiB7XG4gICAgZmxleDogMCAwIDQwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgd2lkdGg6IDQwcHg7XG5cbiAgICBjb2xvcjogdmFyKC0taWNvbi1jb2xvcik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmFja2dyb3VuZC1jb2xvcik7XG5cbiAgICAmLlZlcmlmaWVkIHtcbiAgICAgICAgLS1pY29uLWNvbG9yOiAkZTJlLXZlcmlmaWVkLWNvbG9yO1xuICAgICAgICAtLWJhY2tncm91bmQtY29sb3I6ICRlMmUtdmVyaWZpZWQtY29sb3ItbGlnaHQ7XG4gICAgfVxuXG4gICAgJi5VbnZlcmlmaWVkIHtcbiAgICAgICAgLS1pY29uLWNvbG9yOiAkZTJlLXdhcm5pbmctY29sb3I7XG4gICAgICAgIC0tYmFja2dyb3VuZC1jb2xvcjogJGUyZS13YXJuaW5nLWNvbG9yLWxpZ2h0O1xuICAgIH1cblxuICAgICYuSW5hY3RpdmUge1xuICAgICAgICAtLWljb24tY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgLS1iYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWxzO1xuICAgIH1cbn1cblxuLm14X0RldmljZVNlY3VyaXR5Q2FyZF9jb250ZW50IHtcbiAgICBmbGV4OiAxIDE7XG59XG4ubXhfRGV2aWNlU2VjdXJpdHlDYXJkX2hlYWRpbmcge1xuICAgIG1hcmdpbjogMCAwIHZhcigtLWNwZC1zcGFjZS0xeCkgMDtcbn1cbi5teF9EZXZpY2VTZWN1cml0eUNhcmRfZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9EZXZpY2VTZWN1cml0eUNhcmRfYWN0aW9ucyB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZXZpY2VUaWxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLm14X0RldmljZVRpbGVfaW50ZXJhY3RpdmUge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm14X0RldmljZVRpbGVfaW5mbyB7XG4gICAgZmxleDogMSAxIDA7XG59XG5cbi5teF9EZXZpY2VUaWxlX21ldGFkYXRhIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbn1cblxuLm14X0RldmljZVRpbGVfaW5hY3RpdmVJY29uIHtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5teF9EZXZpY2VUaWxlX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGdyaWQtYXV0by1mbG93OiBjb2x1bW47XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGV2aWNlVHlwZUljb24ge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgLyogY3JlYXRlcyBzcGFjZSBmb3IgdmVyaWZpY2F0aW9uIGljb24gdG8gb3ZlcmxhcCAqL1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtMngpIDA7XG59XG5cbi5teF9EZXZpY2VUeXBlSWNvbl9kZXZpY2VJY29uV3JhcHBlciB7XG4gICAgLS1iYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWxzO1xuICAgIC0taWNvbi1jb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICBib3JkZXI6IHZhcigtLWNwZC1zcGFjZS0yeCkgc29saWQgdmFyKC0tYmFja2dyb3VuZC1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGNvbG9yOiB2YXIoLS1pY29uLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yKTtcbn1cblxuLm14X0RldmljZVR5cGVJY29uX3NlbGVjdGVkIC5teF9EZXZpY2VUeXBlSWNvbl9kZXZpY2VJY29uV3JhcHBlciB7XG4gICAgLS1iYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIC0taWNvbi1jb2xvcjogJGJhY2tncm91bmQ7XG59XG5cbi5teF9EZXZpY2VUeXBlSWNvbl9kZXZpY2VJY29uIHtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgd2lkdGg6IDI0cHg7XG59XG5cbi5teF9EZXZpY2VUeXBlSWNvbl92ZXJpZmljYXRpb25JY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGhlaWdodDogMjRweDtcbiAgICB3aWR0aDogMjRweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICAgIGNvbG9yOiB2YXIoLS12LWljb24tY29sb3IpO1xuXG4gICAgJi52ZXJpZmllZCB7XG4gICAgICAgIC0tdi1pY29uLWNvbG9yOiAkZTJlLXZlcmlmaWVkLWNvbG9yO1xuICAgIH1cblxuICAgICYudW52ZXJpZmllZCB7XG4gICAgICAgIC0tdi1pY29uLWNvbG9yOiAkZTJlLXdhcm5pbmctY29sb3I7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ZpbHRlcmVkRGV2aWNlTGlzdCB7XG4gICAgLm14X0Ryb3Bkb3duIHtcbiAgICAgICAgZmxleDogMSAwIDgwcHg7XG4gICAgfVxufVxuXG4ubXhfRmlsdGVyZWREZXZpY2VMaXN0X2xpc3Qge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuXG4ubXhfRmlsdGVyZWREZXZpY2VMaXN0X2xpc3RJdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5teF9GaWx0ZXJlZERldmljZUxpc3Rfc2VjdXJpdHlDYXJkIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xufVxuXG4ubXhfRmlsdGVyZWREZXZpY2VMaXN0X25vUmVzdWx0cyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG59XG5cbi5teF9GaWx0ZXJlZERldmljZUxpc3RfaGVhZGVyQnV0dG9uIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICAvKiBvdmVycmlkZSBpbmxpbmUgYnV0dG9uIHN0eWxpbmcgKi9cbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9GaWx0ZXJlZERldmljZUxpc3RfZGV2aWNlRGV0YWlscyB7XG4gICAgLyogYWxpZ24gd2l0aCB0ZXh0IG9mIHNlc3Npb24gdGlsZSAqL1xuICAgIG1hcmdpbi1sZWZ0OiA4OHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ZpbHRlcmVkRGV2aWNlTGlzdEhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWxzO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgLyogSGlnaGVyIHNwZWNpZmljaXR5IHNlbGVjdG9yIHRvIG92ZXJyaWRlIHRoZSBmbGV4LXN0YXJ0IHZhbHVlICovXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b24ubXhfQWNjZXNzaWJsZUJ1dHRvbl9oYXNLaW5kIHtcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIH1cbn1cblxuLm14X0ZpbHRlcmVkRGV2aWNlTGlzdEhlYWRlcl9sYWJlbCB7XG4gICAgZmxleDogMSAxIDEwMCU7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2VjdXJpdHlSZWNvbW1lbmRhdGlvbnNfc3BhY2luZyB7XG4gICAgaGVpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0LDIwMjUgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2VsZWN0YWJsZURldmljZVRpbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfU2VsZWN0YWJsZURldmljZVRpbGVfY2hlY2tib3gge1xuICAgIGZsZXg6IDEgMDtcblxuICAgID4gZGl2IHtcbiAgICAgICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X0tleVN0b3JhZ2VQYW5lbF90b2dnbGVSb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0dGluZ3NTdWJzZWN0aW9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgJi5teF9TZXR0aW5nc1N1YnNlY3Rpb25fbmV3VWkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgfVxuXG4gICAgKltyb2xlPVwic2VwYXJhdG9yXCJdIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBnYXAgYmV0d2VlbiBzdWJzZWN0aW9ucyBpcyAzMnB4IGFuZCBpbnNpZGUgdGhlIHN1YnNlY3Rpb24gaXMgMjRweC5cbiAgICAgICAgICogVGhlIHNlcGFyYXRvciBzZXBhcmF0ZXMgdGhlIHN1YnNlY3Rpb25zLCBzbyBpdCBzaG91bGQgaGF2ZSB0aGUgc2FtZSBnYXAgYXMgdGhlIHN1YnNlY3Rpb25zLlxuICAgICAgICAgKiBXZSBhZGQgMTJweCBhbmQgdGhlIHNlcGFyYXRvciBzcGFjaW5nICg4cHgpIHRvIHRoZSB0b3AgbWFyZ2luIHRvIG1ha2UgdGhlIHNlcGFyYXRvciB2aXN1YWxseSBjZW50ZXJlZCBiZXR3ZWVuIHRoZSBzdWJzZWN0aW9ucy5cbiAgICAgICAgICogIWltcG9ydGFudCBiZWNhdXNlIGl0J3Mgb3ZlcnJpZGluZyBjb21wb3VuZCBtYXJnaW4uXG4gICAgICAgICAqL1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNXgpICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4ubXhfU2V0dGluZ3NTdWJzZWN0aW9uX2Rlc2NyaXB0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfU2V0dGluZ3NTdWJzZWN0aW9uX3RleHQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbn1cblxuLm14X1NldHRpbmdzU3Vic2VjdGlvbl9jb250ZW50IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAvKiBzZXR0aW5nIG1pbndpZHRoIDAgbWFrZXMgY29sdW1ucyBkZWZpbml0ZWx5IHNpemVkIGZpeGluZyBob3Jpem9udGFsIG92ZXJmbG93ICovXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtcbiAgICBqdXN0aWZ5LWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG5cbiAgICBzdW1tYXJ5IHtcbiAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgfVxuICAgIGRldGFpbHNbb3Blbl0ge1xuICAgICAgICBzdW1tYXJ5IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X1NldHRpbmdzU3Vic2VjdGlvbl9jb250ZW50U3RyZXRjaCB7XG4gICAgICAgIGp1c3RpZnktaXRlbXM6IHN0cmV0Y2g7XG4gICAgfVxuXG4gICAgJi5teF9TZXR0aW5nc1N1YnNlY3Rpb25fbm9IZWFkaW5nIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gICAgJi5teF9TZXR0aW5nc1N1YnNlY3Rpb25fY29udGVudF9uZXdVaSB7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICAubXhfU2V0dGluZ3NTdWJzZWN0aW9uX2Ryb3Bkb3duIHtcbiAgICAgICAgbWluLXdpZHRoOiAzNjBweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0dGluZ3NTdWJzZWN0aW9uSGVhZGluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfU2V0dGluZ3NTdWJzZWN0aW9uSGVhZGluZ19oZWFkaW5nIHtcbiAgICBmbGV4OiAxIDEgMTAwJTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9RdWlja1RoZW1lU3dpdGNoZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIC5teF9Ecm9wZG93biB7XG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IG1pbi1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9Ecm9wZG93bl9tZW51IHtcbiAgICAgICAgLyogUXVpY2sgc2V0dGluZ3MgbGl2ZXMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgd2luZG93LCBzbyBhIG1lbnUgZHJvcHBpbmcgZG93bndhcmRzIHdvdWxkIHJ1blxuICAgICAgICAgICBvZmYgdGhlIGJvdHRvbSBvZiB0aGUgdmlld3BvcnQuIE9wZW4gaXQgdXB3YXJkcywgd2hlcmUgdGhlcmUgaXMgcm9vbSBmb3IgZXZlcnkgdGhlbWUuICovXG4gICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgYm90dG9tOiAxMDAlO1xuICAgIH1cbn1cblxuLm14X1F1aWNrVGhlbWVTd2l0Y2hlcl9oZWFkaW5nIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDA7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ2FwdGlvbiB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgJi5teF9DYXB0aW9uX2Vycm9yIHtcbiAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKlxuICogQ29tcG91bmQgaWNvblxuXG4gKiB7QGxpbmsgaHR0cHM6Ly93d3cuZmlnbWEuY29tL2ZpbGUvWDRYVEg5aVMyS0dKMndGS0Rxa3llZH1cbiAqL1xuXG4ubXhfSWNvbiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLm14X0ljb25fYWNjZW50IHtcbiAgICBjb2xvcjogJGFjY2VudDtcbn1cblxuLm14X0ljb25fYmctYWNjZW50LWxpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50LTMwMDtcbn1cblxuLm14X0ljb25fYWxlcnQge1xuICAgIGNvbG9yOiAkYWxlcnQ7XG59XG5cbi5teF9JY29uX2NpcmNsZS00MCB7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBmbGV4OiAwIDAgNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZzogMCAxMnB4O1xuICAgIHdpZHRoOiA0MHB4O1xufVxuXG4ubXhfSWNvbl84IHtcbiAgICBmbGV4OiAwIDAgOHB4O1xuICAgIGhlaWdodDogOHB4O1xuICAgIHdpZHRoOiA4cHg7XG59XG5cbi5teF9JY29uXzEwIHtcbiAgICBmbGV4OiAwIDAgMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgd2lkdGg6IDEwcHg7XG59XG5cbi5teF9JY29uXzEyIHtcbiAgICBmbGV4OiAwIDAgMTJweDtcbiAgICBoZWlnaHQ6IDEycHg7XG4gICAgd2lkdGg6IDEycHg7XG59XG5cbi5teF9JY29uXzE2IHtcbiAgICBmbGV4OiAwIDAgMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgd2lkdGg6IDE2cHg7XG59XG5cbi5teF9JY29uXzI0IHtcbiAgICBmbGV4OiAwIDAgMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgd2lkdGg6IDI0cHg7XG59XG5cbi5teF9JY29uXzMyIHtcbiAgICBmbGV4OiAwIDAgMzJweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgd2lkdGg6IDMycHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3VjY2Vzc0RpYWxvZyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLm14X0ljb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfaGVhZGVyIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nX3RpdGxlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfY29udGVudCB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIG1hcmdpbjogMCAwIHZhcigtLWNwZC1zcGFjZS0xMHgpO1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfYnV0dG9ucyB7XG4gICAgICAgIC5teF9EaWFsb2dfYnV0dG9uc19yb3cge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGJ1dHRvbi5teF9EaWFsb2dfcHJpbWFyeSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMzI4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTgtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyogbWFrZSBhbnkgc2Nyb2xsYmFyIGdyZXkgYW5kIHRoaW4gKi9cbmh0bWwge1xuICAgIHNjcm9sbGJhci1jb2xvcjogJHNjcm9sbGJhci10aHVtYi1jb2xvciB0cmFuc3BhcmVudDtcbn1cbi8qIHNjcm9sbGJhci13aWR0aCBpcyBub3QgaW5oZXJpdGVkIChidXQgLWNvbG9yIGlzLCB3aHk/ISksICovXG4vKiBzbyBkZWNsYXJlIGl0IG9uIGV2ZXJ5IGVsZW1lbnQgKi9cbioge1xuICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjtcbn1cblxuOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDZweDtcbiAgICBoZWlnaHQ6IDZweDtcbn1cblxuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzY3JvbGxiYXItdGh1bWItY29sb3I7XG59XG5cbi8qIG1ha2UgYXV0by1oaWRlIHNjcm9sbGJhcnMgbm90IHRyYW5zcGFyZW50IGFnYWluIG9uIGhvdmVyICovXG4ubXhfQXV0b0hpZGVTY3JvbGxiYXI6aG92ZXIge1xuICAgIHNjcm9sbGJhci1jb2xvcjogJHNjcm9sbGJhci10aHVtYi1jb2xvciB0cmFuc3BhcmVudDtcblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNjcm9sbGJhci10aHVtYi1jb2xvcjtcbiAgICB9XG59XG5cbi8qIG1ha2Ugc2Nyb2xsYmFycyB0cmFuc3BhcmVudCBmb3IgYXV0b2hpZGUgc2Nyb2xsYmFycyAqL1xuLm14X0F1dG9IaWRlU2Nyb2xsYmFyIHtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy15OiBvdmVybGF5OyAvKiB3aGVyZSBzdXBwb3J0ZWQgKi9cbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICBzY3JvbGxiYXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5teF9BdXRvY29tcGxldGVJbnB1dF9zZWFyY2hfaWNvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgZmlsbDogJHNlY29uZGFyeS1jb250ZW50O1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXRfZWRpdG9yIHtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGlucHV0LWJvcmRlci1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMjVzO1xuXG4gICAgPiBpbnB1dCB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogNDAlO1xuICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgICAgIC8qIGAhaW1wb3J0YW50YCBpcyByZXF1aXJlZCB0byBieXBhc3MgZ2xvYmFsIGlucHV0IHN0eWxlcy4gKi9cbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgOXB4O1xuICAgICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQgIWltcG9ydGFudDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuXG4gICAgICAgICY6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9BdXRvY29tcGxldGVJbnB1dF9lZGl0b3ItLWZvY3VzZWQge1xuICAgIGJvcmRlci1jb2xvcjogJGxpbmtzO1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXRfZWRpdG9yLS1oYXMtc3VnZ2VzdGlvbnMge1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG59XG5cbi5teF9BdXRvY29tcGxldGVJbnB1dF9lZGl0b3Jfc2VsZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXRfZWRpdG9yX3NlbGVjdGlvbl9waWxsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDEtY29sb3I7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXRfZWRpdG9yX3NlbGVjdGlvbl9yZW1vdmVfYnV0dG9uIHN2ZyB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0X21hdGNoZXMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRsaW5rcztcbiAgICBib3JkZXItdG9wLWNvbG9yOiAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDRweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xuICAgIHotaW5kZXg6IDEwMDA7XG59XG5cbi5teF9BdXRvY29tcGxldGVJbnB1dF9zdWdnZXN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICA+ICoge1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xuICAgIH1cbn1cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0X3N1Z2dlc3Rpb24tLXNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNHB4O1xuICAgIH1cbn1cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0X3N1Z2dlc3Rpb25fdGl0bGUge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0X3N1Z2dlc3Rpb25fZGVzY3JpcHRpb24ge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Db250ZXh0dWFsTWVudV93cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogNTAwMDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51X2JhY2tncm91bmQge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51IHtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJveC1zaGFkb3c6IDBweCA0cHggMjRweCByZ2IoMCwgMCwgMCwgMC4xKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgIGJvcmRlcjogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDUwMDE7XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfcmlnaHQge1xuICAgIHJpZ2h0OiAxNnB4O1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnUubXhfQ29udGV4dHVhbE1lbnVfd2l0aENoZXZyb25fcmlnaHQge1xuICAgIHJpZ2h0OiA4cHg7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV9jaGV2cm9uX3JpZ2h0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IC04cHg7XG4gICAgdG9wOiAwcHg7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci10b3A6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItbGVmdDogOHB4IHNvbGlkICRtZW51LWJnLWNvbG9yO1xuICAgIGJvcmRlci1ib3R0b206IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51X2xlZnQge1xuICAgIGxlZnQ6IDA7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudS5teF9Db250ZXh0dWFsTWVudV93aXRoQ2hldnJvbl9sZWZ0IHtcbiAgICBsZWZ0OiA4cHg7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV9jaGV2cm9uX2xlZnQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAtOHB4O1xuICAgIHRvcDogMHB4O1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItdG9wOiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJpZ2h0OiA4cHggc29saWQgJG1lbnUtYmctY29sb3I7XG4gICAgYm9yZGVyLWJvdHRvbTogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfdG9wIHtcbiAgICB0b3A6IDA7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudS5teF9Db250ZXh0dWFsTWVudV93aXRoQ2hldnJvbl90b3Age1xuICAgIHRvcDogOHB4O1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfY2hldnJvbl90b3Age1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwcHg7XG4gICAgdG9wOiAtOHB4O1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItbGVmdDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1ib3R0b206IDhweCBzb2xpZCAkbWVudS1iZy1jb2xvcjtcbiAgICBib3JkZXItcmlnaHQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51X2JvdHRvbSB7XG4gICAgYm90dG9tOiAwO1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnUubXhfQ29udGV4dHVhbE1lbnVfd2l0aENoZXZyb25fYm90dG9tIHtcbiAgICBib3R0b206IDhweDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51X2NoZXZyb25fYm90dG9tIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMHB4O1xuICAgIGJvdHRvbTogLThweDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLWxlZnQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItdG9wOiA4cHggc29saWQgJG1lbnUtYmctY29sb3I7XG4gICAgYm9yZGVyLXJpZ2h0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV9yaWdodEFsaWduZWQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV9ib3R0b21BbGlnbmVkIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0Vycm9yTWVzc2FnZSB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjb2xvcjogJGFsZXJ0O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBsaW5lLWhlaWdodDogMS4yZW07XG4gICAgbWluLWhlaWdodDogMi40ZW07XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5Aa2V5ZnJhbWVzIG14X0ZpbGVEcm9wVGFyZ2V0X2FuaW1hdGlvbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMC45NTtcbiAgICB9XG59XG5cbi5teF9GaWxlRHJvcFRhcmdldCB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIGZvbnQtc2l6ZTogJGZvbnQtMThweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIG9wYWNpdHk6IDAuOTU7XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMzAwMDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgYW5pbWF0aW9uOiBteF9GaWxlRHJvcFRhcmdldF9hbmltYXRpb247XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xufVxuXG5Aa2V5ZnJhbWVzIG14X0ZpbGVEcm9wVGFyZ2V0X2ltYWdlX2FuaW1hdGlvbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpO1xuICAgIH1cbn1cblxuLm14X0ZpbGVEcm9wVGFyZ2V0X2ltYWdlIHtcbiAgICB3aWR0aDogMzJweDtcbiAgICBhbmltYXRpb246IG14X0ZpbGVEcm9wVGFyZ2V0X2ltYWdlX2FuaW1hdGlvbjtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDAuNXM7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9GaWxlUGFuZWwge1xuICAgIG9yZGVyOiAyO1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIC5teF9Sb29tVmlld19tZXNzYWdlTGlzdFdyYXBwZXIge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubXhfUm9vbVZpZXdfTWVzc2FnZUxpc3Qge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9HZW5lcmljRHJvcGRvd25NZW51X2J1dHRvbiB7XG4gICAgcGFkZGluZzogM3B4IDRweCAzcHggOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbn1cblxuLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfYnV0dG9uOmhvdmVyLFxuLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfYnV0dG9uW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kOiAkcXVpbmFyeS1jb250ZW50O1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfd3JhcHBlci5teF9HZW5lcmljRHJvcGRvd25NZW51X3dyYXBwZXIge1xuICAgIC5teF9Db250ZXh0dWFsTWVudSB7XG4gICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuXG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2IoMjMsIDI1LCAyOCwgMC4wNSk7XG4gICAgfVxuXG4gICAgLm14X0NvbnRleHR1YWxNZW51X2NoZXZyb25fdG9wIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IDIycHg7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGJvcmRlcjogaW5oZXJpdDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRtZW51LWJnLWNvbG9yO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxcHg7XG4gICAgICAgICAgICBsZWZ0OiAtOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfZGl2aWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTlweDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfT3B0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHggMTBweCAzMHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgPiAubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuXG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgIHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9HZW5lcmljRHJvcGRvd25NZW51X09wdGlvbi0taGVhZGVyID4gLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfT3B0aW9uLS1sYWJlbCBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWl0ZW0ge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1lbnUtc2VsZWN0ZWQtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9HZW5lcmljRHJvcGRvd25NZW51X09wdGlvbi0tY2hlY2tJY29uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMnB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNyBWZWN0b3IgQ3JlYXRpb25zIEx0ZFxuQ29weXJpZ2h0IDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0hvbWVQYWdlIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IG1pbigxMDAlIC0gNTBweCwgOTYwcHgpO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7XG4gICAgY29udGFpbmVyLW5hbWU6IGhvbWVwYWdlO1xufVxuXG4ubXhfSG9tZVBhZ2VfZGVmYXVsdCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgaW1nIHtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgIH1cblxuICAgIGgxIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0zMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zNzU7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE4cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNXB4O1xuICAgICAgICBjb2xvcjogJG11dGVkLWZnLWNvbG9yO1xuICAgIH1cblxuICAgIC5teF9NaW5pQXZhdGFyVXBsb2FkZXIge1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG5cbiAgICAubXhfSG9tZVBhZ2VfZGVmYXVsdF9idXR0b25zIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICAgICAgZ2FwOiA1cHggNDBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi10b3A6IDgwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IDEzcHg7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgd2lkdGg6IDE2MHB4O1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTMycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggMTVweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTIwcHg7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjsgLyogb24gYWxsIHRoZW1lcyAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjsgLyogb24gYWxsIHRoZW1lcyAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRhaW5lciBob21lcGFnZSAobWF4LXdpZHRoOiA1NTlweCkge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cbiAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG5cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGFyZ2VMb2FkZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIC5teF9TcGlubmVyIHtcbiAgICAgICAgZmxleDogdW5zZXQ7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMzN2aDtcbiAgICB9XG5cbiAgICAubXhfTGFyZ2VMb2FkZXJfdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01hdHJpeENoYXQtLXdpdGgtYXZhdGFyIHtcbiAgICAubXhfTGVmdFBhbmVsLFxuICAgIC5teF9MZWZ0UGFuZWwgLm14X0xlZnRQYW5lbF9yb29tTGlzdENvbnRhaW5lciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuLm14X0xlZnRQYW5lbF9vdXRlcldyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5teF9MZWZ0UGFuZWxfd3JhcHBlcixcbi5teF9MZWZ0UGFuZWwge1xuICAgIC0tY29sbGFwc2VkV2lkdGg6IDY4cHg7XG59XG5cbi5teF9MZWZ0UGFuZWxfcGFuZWwge1xuICAgIC5teF9MZWZ0UGFuZWxfb3V0ZXJXcmFwcGVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuXG4gICAgLm14X0xlZnRQYW5lbF93cmFwcGVyLS11c2VyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4ubXhfTGVmdFBhbmVsX3dyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4OiAxO1xuICAgIGhlaWdodDogMTAwJTsgLyogZW5zdXJlIHNwYWNlIHBhbmVsIGlzIHN0aWxsIHNjcm9sbGFibGUgd2l0aCBhbiBvdXRlciB3cmFwcGVyICovXG5cbiAgICAubXhfTGVmdFBhbmVsX3dyYXBwZXItLXVzZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC8qIEZvciBlbmhhbmNlZCB2aXNpYmlsaXR5IHVuZGVyIGNvbnRyYXN0IGNvbnRyb2wgKi9cbiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICAgICAgICZbZGF0YS1jb2xsYXBzZWRdIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogdmFyKC0tY29sbGFwc2VkV2lkdGgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfTGVmdFBhbmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgIC8qIFRoZSByb29tIGxpc3QgaXMgbm90IGRlc2lnbmVkIHRvIGJlIGNvbGxhcHNlZCB0byBqdXN0IGljb25zLiAqL1xuICAgIC8qIDIyNCArIDY4KHNwYWNlcyBiYXIpIHdhcyBkZWVtZWQgYnkgZGVzaWduIHRvIGJlIGEgZ29vZCBtaW5pbXVtIGZvciB0aGUgbGVmdCBwYW5lbC4gKi9cbiAgICAtLWNvbGxhcHNlZFdpZHRoOiAyMjRweDtcblxuICAgIC8qIENyZWF0ZSBhIHJvdy1iYXNlZCBmbGV4Ym94IGZvciB0aGUgc3BhY2UgcGFuZWwgYW5kIHRoZSByb29tIGxpc3QgKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGNvbnRhaW46IGNvbnRlbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLm14X0xlZnRQYW5lbF9yb29tTGlzdENvbnRhaW5lciB7XG4gICAgICAgIGZsZXg6IDEgMCAwO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIC8qIENyZWF0ZSBhbm90aGVyIGZsZXhib3ggKHRoaXMgdGltZSBhIGNvbHVtbikgZm9yIHRoZSByb29tIGxpc3QgY29tcG9uZW50cyAqL1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC8qIFRoZXNlIHN0eWxlcyBvdmVycmlkZSB0aGUgZGVmYXVsdHMgZm9yIHRoZSBtaW5pbWl6ZWQgKDY2cHgpIGxheW91dCAqL1xuICAgICYubXhfTGVmdFBhbmVsX21pbmltaXplZCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgbWluLXdpZHRoOiB1bnNldDtcbiAgICAgICAgd2lkdGg6IHVuc2V0ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgLm14X0xlZnRQYW5lbF9yb29tTGlzdENvbnRhaW5lciB7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tY29sbGFwc2VkV2lkdGgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4jbGVmdC1wYW5lbCAubXhfTGVmdFBhbmVsX3dyYXBwZXItLXVzZXIge1xuICAgIC8qXG4gICAgICogRGlzYWJsZSBiYWNrZ3JvdW5kIHdoZW4gdXNpbmcgdGhlIG5ldyByb29tIGxpc3QuXG4gICAgICogVGhpcyBiYWNrZ3JvdW5kIHNvbWV0aW1lcyBzaG93cyB3aGVuIHRoZSBwYW5lbCBpcyByZXNpemVkIGFuZCBpdCBsb29rcyBsaWtlIGEgdGhpY2tlciBib3JkZXIuXG4gICAgICovXG4gICAgYmFja2dyb3VuZDogbm9uZTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWFpblNwbGl0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ubXhfTWFpblNwbGl0ID4gLm14X1JpZ2h0UGFuZWxfUmVzaXplV3JhcHBlciB7XG4gICAgJjpob3ZlciAubXhfUmVzaXplSGFuZGxlLS1ob3Jpem9udGFsOjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNTAlLCAtNTAlKTtcblxuICAgICAgICBoZWlnaHQ6IDY0cHg7IC8qIHRvIG1hdGNoIHdpZHRoIG9mIHRoZSBvbmVzIG9uIHJvb21saXN0ICovXG4gICAgICAgIHdpZHRoOiA0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblxuICAgICAgICBjb250ZW50OiBcIlwiO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWF0cml4Q2hhdF9zcGxhc2gge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5teF9NYXRyaXhDaGF0X3dyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5teF9NYXRyaXhDaGF0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIGZsZXg6IDE7XG4gICAgbWluLWhlaWdodDogMDtcbn1cblxuLyogbm90IHRoZSBsZWZ0IHBhbmVsLCBhbmQgbm90IHRoZSByZXNpemUgaGFuZGxlLCBzbyB0aGUgcm9vbXZpZXcgYW5kIGZyaWVuZHMgKi9cbi5teF9NYXRyaXhDaGF0ID4gOm5vdCgubXhfTGVmdFBhbmVsKTpub3QoLm14X1NwYWNlUGFuZWwpOm5vdCgubXhfUmVzaXplSGFuZGxlKTpub3QoLm14X0xlZnRQYW5lbF9vdXRlcldyYXBwZXIpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICAgIGZsZXg6IDEgMSAwO1xuICAgIG1pbi13aWR0aDogMDtcblxuICAgIC8qIFRvIGZpeCBodHRwczovL2dpdGh1Yi5jb20vdmVjdG9yLWltL2VsZW1lbnQtd2ViL2lzc3Vlcy8zMjk4IHdoZXJlIFNhZmFyaVxuICAgICAgIG5lZWRlZCBoZWlnaHQgMTAwJSBhbGwgdGhlIHdheSBkb3duIHRvIHRoZSBIb21lUGFnZS4gSGVpZ2h0IGRvZXMgbm90XG4gICAgICAgaGF2ZSB0byBiZSBhdXRvLCBlbXBpcmljYWxseS5cbiAgICAqL1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLm14X01hdHJpeENoYXQgPiAubXhfUmVzaXplSGFuZGxlLS1ob3Jpem9udGFsOmhvdmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuXG4gICAgICAgIGhlaWdodDogNjRweDsgLyogdG8gbWF0Y2ggd2lkdGggb2YgdGhlIG9uZXMgb24gcm9vbWxpc3QgKi9cbiAgICAgICAgd2lkdGg6IDRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgICAgIGNvbnRlbnQ6IFwiIFwiO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjYgRWxlbWVudCBDcmVhdGlvbnMgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKlxuICogVGhlIG5ldyB0aW1lbGluZSdzIHJlcGx5LXByZXZpZXcgcnVsZXMg4oCUIHRoZSBsb2FkaW5nIHNrZWxldG9uIGFuZCB0aGUgcm93XG4gKiBoZWlnaHRzIHRoYXQga2VlcCBpdCBoZWlnaHQtbmV1dHJhbCDigJQgbGl2ZSBhbG9uZ3NpZGUgdGhlIHJlcGx5IGNvbXBvbmVudHMgaW5cbiAqIF9SZXBseUNoYWluLnBjc3MgLyBfUmVwbHlUaWxlLnBjc3MuXG4gKi9cbi5teF9OZXdUaW1lbGluZVBhbmVsIHtcbiAgICAvKiBGaWxsIHRoZSByb29tIHZpZXcgYm9keSwgbGlrZSB0aGUgb2xkIG1lc3NhZ2UgcGFuZWwgZG9lcy4gKi9cbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAvKiBLZXB0IG1vdW50ZWQgYnV0IGludmlzaWJsZSwgZS5nLiB3aGlsZSBzZWFyY2ggcmVzdWx0cyBhcmUgc2hvd24sIHNvIHRoZVxuICAgICAgIHRpbWVsaW5lIGtlZXBzIGl0cyBzY3JvbGwgcG9zaXRpb24gYW5kIGxvYWRlZCB3aW5kb3cuICovXG4gICAgJi5teF9OZXdUaW1lbGluZVBhbmVsX2hpZGRlbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLyogVGhlIHZpcnR1YWxpemVkIHRpbWVsaW5lIHJlbmRlcnMgaXRzIHJvd3MgYXMgYW4gPG9sIHJvbGU9XCJsaXN0XCI+IG9mIDxsaT5cbiAgICAgICB0aWxlcyAobXhfVGltZWxpbmVWaWV3X2xpc3QgLyBteF9UaW1lbGluZVZpZXdfdGlsZSBpbiBUaW1lbGluZVZpZXc7IHRoZSA8b2w+XG4gICAgICAgYW5kIDxsaT4gcmVzZXQgdGhlaXIgb3duIGxpc3QgbWFya2VycyBpbmxpbmUpLiBJbnNldCB0aGUgdGlsZSBjb250ZW50IHRvXG4gICAgICAgbWF0Y2ggdGhlIGxlZ2FjeSBteF9Sb29tVmlld19NZXNzYWdlTGlzdCBwYWRkaW5nIHNvIG1lc3NhZ2VzIGRvbid0IHNpdCBmbHVzaFxuICAgICAgIGFnYWluc3QgdGhlIHBhbmVsIGVkZ2VzLlxuXG4gICAgICAgVGhlIGluc2V0IGdvZXMgb24gdGhlIHRpbGVzIHJhdGhlciB0aGFuIHRoZSA8b2w+OiB0aGUgcm93cyBhcmUgYWJzb2x1dGVseVxuICAgICAgIHBvc2l0aW9uZWQsIHNvIHRoZWlyIGNvbnRhaW5pbmcgYmxvY2sgaXMgdGhlIDxvbD4ncyBwYWRkaW5nIGJveCBhbmQgcGFkZGluZ1xuICAgICAgIHRoZXJlIHdvdWxkIG5vdCBpbnNldCB0aGVtLiBib3gtc2l6aW5nICsgcGFkZGluZy1pbmxpbmUgb24gZWFjaCByb3cgZG9lcyxcbiAgICAgICBhbmQg4oCUIGJlaW5nIGhvcml6b250YWwgb25seSDigJQgbGVhdmVzIHRoZSB2aXJ0dWFsaXplcidzIG1lYXN1cmVkIHJvdyBoZWlnaHRzXG4gICAgICAgYW5kIHZlcnRpY2FsIG9mZnNldHMgdW50b3VjaGVkLiAqL1xuICAgIC5teF9UaW1lbGluZVZpZXdfdGlsZSB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1Sb29tVmlld19NZXNzYWdlTGlzdC1wYWRkaW5nKTtcbiAgICB9XG5cbiAgICAvKiBUaGUgcm93IGhvbGRpbmcgdGhlIHNwaW5uZXIgc2hvd24gd2hpbGUgbW9yZSBoaXN0b3J5IGlzIGZldGNoZWQuIEl0cyBoZWlnaHQgaXNcbiAgICAgICBmaXhlZCBzbyB0aGUgcm93IGFsd2F5cyBtZWFzdXJlcyB0aGUgc2FtZS4gKi9cbiAgICAubXhfTmV3VGltZWxpbmVQYW5lbF9sb2FkaW5nIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAvKiBBbiBpbWFnZSB0aGF0IGZhaWxzIHRvIGxvYWQgcmVwbGFjZXMgaXRzIHJlc2VydmVkIG1lZGlhIGJveCB3aXRoIGEgc2hvcnRcbiAgICAgICBlcnJvciBtZXNzYWdlLCB3aGljaCB3b3VsZCBvdGhlcndpc2UgcHVsbCBldmVyeSByb3cgYmVsb3cgaXQgdXB3YXJkcy4gSG9sZFxuICAgICAgIHRoZSByb3cgYXQgdGhlIGhlaWdodCBvZiB0aGUgYm94IGJlaW5nIHJlcGxhY2VkIOKAlCBJbWFnZUJvZHlWaWV3IHBhc3NlcyBpdFxuICAgICAgIGFzIC0tbXgtaW1hZ2UtcmVzZXJ2ZWQtaGVpZ2h0LCBhbmQgb25seSBmb3IgaW1hZ2VzIHdob3NlIGV2ZW50IGRlY2xhcmVkXG4gICAgICAgZGltZW5zaW9uczsgYW55dGhpbmcgZWxzZSByZXNlcnZlZCBubyBib3gsIHNvIGl0IGdldHMgbm8gbWluaW11bS5cblxuICAgICAgIFRoZSBlcnJvciBzdGF0ZSBzZXRzIGBkaXNwbGF5OiBibG9ja2AsIHNvIGxheWluZyB0aGUgbWVzc2FnZSBvdXQgbmVlZHMgZmxleFxuICAgICAgIHJlLWFzc2VydGluZyBoZXJlOyB0aGUgcm9vdCdzIGBmbGV4LWRpcmVjdGlvbjogY29sdW1uYCB0aGVuIG1lYW5zIHRoZSBjcm9zc1xuICAgICAgIGF4aXMgaXMgaG9yaXpvbnRhbCwgYW5kIGNlbnRyaW5nIGluIHRoZSBib3ggaXMgYWxpZ24taXRlbXMgKGhvcml6b250YWxseSlcbiAgICAgICBwbHVzIGp1c3RpZnktY29udGVudCAodmVydGljYWxseSkuICovXG4gICAgc3Bhbi5teF9JbWFnZUJvZHkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogdmFyKC0tbXgtaW1hZ2UtcmVzZXJ2ZWQtaGVpZ2h0LCAwKTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTm9uVXJnZW50VG9hc3RDb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDMwcHg7XG4gICAgbGVmdDogMjhweDtcbiAgICB6LWluZGV4OiAxMDE7IC8qIHNhbWUgbGV2ZWwgYXMgb3RoZXIgdG9hc3RzICovXG5cbiAgICAubXhfTm9uVXJnZW50VG9hc3RDb250YWluZXJfdG9hc3Qge1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgd2lkdGg6IDMyMHB4O1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEzcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcblxuICAgICAgICAvKiBXZSBkb24ndCB1c2UgdmFyaWFibGVzIG9uIHRoZSBjb2xvdXJzIGJlY2F1c2Ugd2Ugd2FudCBpdCB0byBiZSB0aGUgc2FtZSAqL1xuICAgICAgICAvKiBpbiBhbGwgdGhlbWVzLiAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcxOTFjO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjYgRWxlbWVudCBDcmVhdGlvbnMgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUGljdHVyZUluUGljdHVyZURyYWdnZXIge1xuICAgIGN1cnNvcjogZ3JhYjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBsZWZ0OiAwO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgLypcbiAgICAgKiBSZW5kZXJlZCBpbiAjbXhfUGVyc2lzdGVkRWxlbWVudF9jb250YWluZXI6IGRpc3BsYXkgYWJvdmUgZG9ja2VkIHdpZGdldHMgKHotaW5kZXggOSksXG4gICAgICogYnV0IGJlbG93IHRoZSBwZXJzaXN0ZWQgd2lkZ2V0IHNob3duIGluIHRoZSBQaVAgaXRzZWxmICh6LWluZGV4IDEwMSksIHdoaWNoIGlzXG4gICAgICogcG9zaXRpb25lZCBvdmVyIGEgcGxhY2Vob2xkZXIgaW5zaWRlIHRoaXMgZWxlbWVudC5cbiAgICAgKi9cbiAgICB6LWluZGV4OiAxMDA7XG59XG5cbi5teF9QaWN0dXJlSW5QaWN0dXJlRHJhZ2dlcjphY3RpdmUge1xuICAgIGN1cnNvcjogZ3JhYmJpbmc7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQsMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9RdWlja1NldHRpbmdzQnV0dG9uIHtcbiAgICAvKiAhaW1wb3J0YW50IG92ZXJyaWRlIGNvbXBvdW5kICovXG4gICAgYm9yZGVyLXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAxMnB4IGF1dG8gMTJweDtcblxuICAgIHN2ZyB7XG4gICAgICAgIGZpbGw6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG5cbiAgICAmOm5vdCguZXhwYW5kZWQpOmhvdmVyIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIG92ZXJyaWRlIGNvbXBvdW5kIGRlZmF1bHQgYmFja2dyb3VuZCBjb2xvciB3aGVuIGhvdmVyZWRcbiAgICAgICAgICogc2hvdWxkIGRpc2FwcGVhciB3aGVuIHRoZSBzcGFjZSBwYW5lbCB3aWxsIGJlIG1pZ3JhdGVkIHRvIGNvbXBvdW5kXG4gICAgICAgICAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVhdGVybmFyeS1jb250ZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBmaWxsOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5leHBhbmRlZCB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBvdmVycmlkZSBjb21wb3VuZCBkZWZhdWx0IGJhY2tncm91bmQgY29sb3Igd2hlbiBob3ZlcmVkXG4gICAgICAgICAqIHNob3VsZCBkaXNhcHBlYXIgd2hlbiB0aGUgc3BhY2UgcGFuZWwgd2lsbCBiZSBtaWdyYXRlZCB0byBjb21wb3VuZFxuICAgICAgICAgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblxuICAgICAgICAvKiBhbGlnbiB3aXRoIHNldHRpbmdzIGljb24gKi9cbiAgICAgICAgbWFyZ2luLWxlZnQ6IDIxcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogbW9kaWZ5IGludGVybmFsIGNzcyBvZiB0aGUgY29tcG91bmQgY29tcG9uZW50XG4gICAgICAgICAqIGRpcnR5IGJ1dCB3ZSBuZWVkIHRvIGFkZCB0aGUgbGFiZWwgaW50byB0aGUgaW5kaWNhdG9yIGljb24gYnV0dG9uXG4gICAgICAgICAqKi9cbiAgICAgICAgJiA+IGRpdiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAvKiBhbGlnbiB3aXRoIHNldHRpbmdzIGxhYmVsICovXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDE0cHg7XG4gICAgICAgICAgICAvKiByZXF1aXJlZCB0byBzZXQgdGhlIGljb24gd2lkdGggd2hlbiBpbnRvIGEgZmxleCBjb250YWluZXIgKi9cbiAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmIC5teF9RdWlja1NldHRpbmdzQnV0dG9uX2xhYmVsIHtcbiAgICAgICAgICAgIC8qICFpbXBvcnRhbnQgb3ZlcnJpZGUgY29tcG91bmQgICovXG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9RdWlja1NldHRpbmdzQnV0dG9uX0NvbnRleHRNZW51V3JhcHBlciAubXhfQ29udGV4dHVhbE1lbnUge1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgY29udGFpbjogdW5zZXQ7IC8qIGxldCB0aGUgZHJvcGRvd24gcGFpbnQgYmV5b25kIHRoZSBjb250ZXh0IG1lbnUgKi9cblxuICAgID4gZGl2ID4gaDIge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25faGFzS2luZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgfVxuXG4gICAgPiBkaXYgPiBoNCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgbWFyZ2luOiAyMHB4IDAgMTJweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIC5teF9RdWlja1NldHRpbmdzQnV0dG9uX21vcmVPcHRpb25zQnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS03eCk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIH1cblxuICAgIC5teF9RdWlja1NldHRpbmdzQnV0dG9uX29wdGlvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIC8qIENvcnJlY3RseSBsaW5lIHVwIGljb25zIGFuZCB0ZXh0LiAqL1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9RdWlja1RoZW1lU3dpdGNoZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cbn1cblxuLm14X1F1aWNrU2V0dGluZ3NCdXR0b25faWNvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUmlnaHRQYW5lbCB7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkc2VwYXJhdG9yO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGNvbnRhaW46IHN0cmljdDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuXG4gICAgLm14X1Jvb21WaWV3X01lc3NhZ2VMaXN0IHtcbiAgICAgICAgcGFkZGluZzogMTRweCAxOHB4OyAvKiB0b3AgYW5kIGJvdHRvbSBpcyA0cHggc21hbGxlciB0byBiYWxhbmNlIHdpdGggdGhlIHBhZGRpbmcgc2V0IGFib3ZlICovXG4gICAgfVxufVxuXG4ubXhfUmlnaHRQYW5lbCAubXhfTWVtYmVyTGlzdCxcbi5teF9SaWdodFBhbmVsIC5teF9NZW1iZXJJbmZvIHtcbiAgICBvcmRlcjogMjtcbiAgICBmbGV4OiAxIDEgMDtcbn1cblxuLm14X1JpZ2h0UGFuZWwgLm14X1Jvb21WaWV3X21lc3NhZ2VQYW5lbFNwaW5uZXIge1xuICAgIG9yZGVyOiAyO1xuICAgIG1hcmdpbjogYXV0bztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbjpyb290IHtcbiAgICAtLVJvb21WaWV3X01lc3NhZ2VMaXN0LXBhZGRpbmc6IDE4cHg7XG59XG5cbi5teF9MZWZ0UGFuZWxfcGFuZWwge1xuICAgIC5teF9Sb29tVmlld193cmFwcGVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbn1cblxuLm14X1Jvb21WaWV3X3dyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAvKiBDb250YWluIHRoZSBhbW91bnQgb2YgbGF5ZXJzIHJlbmRlcmVkIGJ5IGNvbnN0cmFpbmluZyB3aGF0IGFjdHVhbGx5IG5lZWRzIHJlLWxheWVyaW5nIHZpYSBjc3MgKi9cbiAgICBjb250YWluOiBzdHJpY3Q7XG59XG5cbi5teF9Sb29tVmlldyB7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5teF9NYWluU3BsaXQge1xuICAgICAgICBmbGV4OiAxIDEgMDtcbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDFlbTtcbiAgICB9XG59XG5cbi5teF9Sb29tVmlld19hdXhQYW5lbF9oaWRkZW5IaWdobGlnaHRzIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHByaW1hcnktaGFpcmxpbmUtY29sb3I7XG4gICAgcGFkZGluZzogMTBweCAyNnB4O1xuICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfUm9vbVZpZXdfbWVzc2FnZVBhbmVsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIG92ZXJmbG93LWFuY2hvcjogbm9uZTtcbn1cblxuLm14X1Jvb21WaWV3X21lc3NhZ2VQYW5lbFNlYXJjaFNwaW5uZXIge1xuICAgIGZsZXg6IDE7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL3Jlcy9pbWcvdHlwaW5nLWluZGljYXRvci0yeC5naWZcIik7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIDM2N3B4O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMjVweDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHN2ZyB7XG4gICAgICAgIGNvbG9yOiAkaW5mby1wbGludGgtZmctY29sb3I7XG4gICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAyODZweDtcbiAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAyNXB4KTtcbiAgICB9XG59XG5cbi5teF9Sb29tVmlld19ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgY29udGFpbmVyLXR5cGU6IHNpemU7XG4gICAgY29udGFpbmVyLW5hbWU6IHJvb212aWV3O1xuXG4gICAgLm14X1Jvb21WaWV3X21lc3NhZ2VQYW5lbCxcbiAgICAubXhfUm9vbVZpZXdfbWVzc2FnZVBhbmVsU3Bpbm5lcixcbiAgICAubXhfUm9vbVZpZXdfbWVzc2FnZVBhbmVsU2VhcmNoU3Bpbm5lciB7XG4gICAgICAgIG9yZGVyOiAyO1xuICAgIH1cblxuICAgIC8qIEZpbGwgdGhlIHNwYWNlIHRoZSBtZXNzYWdlcyB3aWxsIG9jY3VweSwgc28gdGhpcyBzcGlubmVyIGlzIGNlbnRyZWQgbGlrZSB0aGVcbiAgICAgICB0aW1lbGluZSdzIG93bi4gT3RoZXJ3aXNlIGl0IHNpdHMgbmVhciB0aGUgdG9wIGFuZCB0aGVuIGFwcGVhcnMgdG8ganVtcCBkb3duXG4gICAgICAgd2hlbiB0aGUgdGltZWxpbmUgdGFrZXMgb3Zlci4gKi9cbiAgICAubXhfUm9vbVZpZXdfbWVzc2FnZVBhbmVsU3Bpbm5lciB7XG4gICAgICAgIGZsZXg6IDEgMSAwO1xuICAgIH1cblxuICAgIC5teF9Sb29tVmlld190aW1lbGluZSB7XG4gICAgICAgIC8qIG9mZnNldCBwYXJlbnQgZm9yIG14X1Jvb21WaWV3X3RvcFVucmVhZE1lc3NhZ2VzQmFyICAqL1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxufVxuXG4vKiBSZXN0b3JlIHRoZSBnYXAgYmV0d2VlbiB0aGUgdGltZWxpbmUgYW5kIHRoZSByaWdodCBwYW5lbCBvbmx5IHdoZW4gdGhlIHBhbmVsIGlzIG9wZW4uXG4gICBXaXRob3V0IHRoaXMsIHRoZSBzY3JvbGxiYXIgb24gbXhfUm9vbVZpZXdfbWVzc2FnZVBhbmVsIHdvdWxkIHNpdCA0IHB4IGF3YXkgZnJvbSB0aGVcbiAgIHZpZXdwb3J0IGVkZ2UgaW4gRmlyZWZveCAod2hpY2ggZG9lcyBub3Qgc3VwcG9ydCBvdmVyZmxvdzpvdmVybGF5KS4gKi9cbi5teF9NYWluU3BsaXQ6aGFzKC5teF9SaWdodFBhbmVsX1Jlc2l6ZVdyYXBwZXIpIC5teF9Sb29tVmlld190aW1lbGluZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvbnRhaW5lci1nYXAtd2lkdGgpIC8gMik7XG59XG5cbi5teF9Sb29tVmlld19zdGF0dXNBcmVhIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbGV4OiAwIDAgYXV0bztcblxuICAgIG1heC1oZWlnaHQ6IDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLW91dDtcbn1cblxuLm14X1Jvb21WaWV3X3N0YXR1c0FyZWFfZXhwYW5kZWQge1xuICAgIG1heC1oZWlnaHQ6IDEwMHB4O1xufVxuXG4ubXhfUm9vbVZpZXdfc3RhdHVzQXJlYUJveCB7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG59XG5cbi5teF9Sb29tVmlld19zdGF0dXNBcmVhQm94X2xpbmUge1xuICAgIG1hcmdpbi1sZWZ0OiA2NXB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICBoZWlnaHQ6IDFweDtcbn1cblxuLm14X1Jvb21WaWV3X21lc3NhZ2VMaXN0V3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubXhfUm9vbVZpZXdfc2VhcmNoUmVzdWx0c1BhbmVsIHtcbiAgICAubXhfUm9vbVZpZXdfbWVzc2FnZUxpc3RXcmFwcGVyIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXG4gICAgICAgID4gLm14X1Jvb21WaWV3X01lc3NhZ2VMaXN0ID4gbGkgPiBvbCB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG59XG5cbi5teF9Sb29tVmlld19lbXB0eSB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xM3B4O1xuICAgIHBhZGRpbmc6IDAgMjRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDgwcHg7IC8qIHZpc3VhbGx5IGNlbnRlciB0aGUgY29udGVudCAoaW50ZW50aW9uYWwgb2Zmc2V0KSAqL1xufVxuXG4ubXhfUm9vbVZpZXdfTWVzc2FnZUxpc3Qge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBwYWRkaW5nOiB2YXIoLS1Sb29tVmlld19NZXNzYWdlTGlzdC1wYWRkaW5nKTsgLyogbXhfUHJvZmlsZVJlc2l6ZXIgZGVwZW5kcyBvbiB0aGlzIHZhbHVlICovXG4gICAgbWFyZ2luOiAwO1xuICAgIC8qIG5lZWRlZCBhcyBtaW4taGVpZ2h0IGlzIHNldCB0byBjbGllbnRIZWlnaHQgaW4gU2Nyb2xsUGFuZWxcbiAgICB0byBwcmV2ZW50IHNocmlua2luZyB3aGVuIFdob0lzVHlwaW5nVGlsZSBpcyBoaWRkZW4gKi9cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgbGkge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAubXhfU2Nyb2xsUGFuZWwgJiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICBjb250ZW50LXZpc2liaWxpdHk6IGF1dG87XG4gICAgICAgIGNvbnRhaW4taW50cmluc2ljLXNpemU6IDUwcHg7XG4gICAgfVxuXG4gICAgLm14X1Jvb21WaWV3LS1sb2NhbCAubXhfU2Nyb2xsUGFuZWwgJiB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbn1cblxuLm14X1Jvb21WaWV3X2luQ2FsbCB7XG4gICAgLm14X1Jvb21WaWV3X3N0YXR1c0FyZWFCb3hfbGluZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBoZWlnaHQ6IDBweDtcbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX3dyYXBwZXIge1xuICAgICAgICBib3JkZXItdG9wOiAycHggaGlkZGVuO1xuICAgICAgICBwYWRkaW5nLXRvcDogMXB4O1xuICAgIH1cbn1cblxuLm14X01hdHJpeENoYXRfdXNlQ29tcGFjdExheW91dCB7XG4gICAgLm14X1Jvb21WaWV3X01lc3NhZ2VMaXN0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Sb29tVmlld19zdGF0dXNBcmVhQm94IHtcbiAgICAgICAgbWluLWhlaWdodDogNDJweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2VhcmNoQm94IHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWluLWhlaWdodDogMzZweDsgLyogdG8gYXZvaWQganVtcGluZyB3aGVuIHRoZSBYIHRvIGNsZWFyIHNob3dzL2hpZGVzICovXG5cbiAgICAmLm14X1NlYXJjaEJveF9ibHVycmVkOm5vdCg6aG92ZXIpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLm14X1NlYXJjaEJveF9jbG9zZUJ1dHRvbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgcGFkZGluZzogOXB4O1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1zZWNvbmRhcnkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0LDIwMjUgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3BhY2VSb29tVmlld19sYW5kaW5nIHtcbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmsge1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgLm14X1NlYXJjaEJveCB7XG4gICAgICAgIG1hcmdpbjogMjRweCAwIDE2cHg7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X25vUmVzdWx0cyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VIaWVyYXJjaHlfbGlzdEhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuXG4gICAgICAgIC5teF9TcGFjZUhpZXJhcmNoeV9saXN0SGVhZGVyX2hlYWRlciB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbi1zdGFydDogMTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NwYWNlSGllcmFyY2h5X2xpc3RIZWFkZXJfYnV0dG9ucyB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbi1zdGFydDogMjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAzMnB4O1xuXG4gICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNHB4IDEycHg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfZGFuZ2VyX291dGxpbmUsXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeV9vdXRsaW5lIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDNweCAxMnB4OyAvKiB0byBhY2NvdW50IGZvciB0aGUgMXB4IGJvcmRlciAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X2Vycm9yIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMThweDtcbiAgICAgICAgbWFyZ2luOiAyMHB4IGF1dG8gMTJweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJAdmVjdG9yLWltL2NvbXBvdW5kLWRlc2lnbi10b2tlbnMvaWNvbnMvZXJyb3Itc29saWQuc3ZnXCIpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VIaWVyYXJjaHlfcm9vbUNvdW50IHtcbiAgICAgICAgPiBoMyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMThweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMnB4O1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZUhpZXJhcmNoeV9zdWJzcGFjZV90b2dnbGUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IC0xcHg7XG4gICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9TcGFjZUhpZXJhcmNoeV9zdWJzcGFjZV90b2dnbGVfc2hvd24gc3ZnIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X3N1YnNwYWNlX2NoaWxkcmVuIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X2xpc3Qge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgbGkubXhfU3BhY2VIaWVyYXJjaHlfcm9vbVRpbGVXcmFwcGVyIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICAgICAgICAgIC5teF9TcGFjZUhpZXJhcmNoeV9yb29tVGlsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAgICAgZ2FwOiA2cHggMTJweDtcblxuICAgICAgICAgICAgICAgIC5teF9TcGFjZUhpZXJhcmNoeV9yb29tVGlsZV9pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjBweCBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBnYXA6IDZweCA4cHg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDE7IC8qIHdyYXAgYWN0aW9uIGJ1dHRvbnMgKi9cblxuICAgICAgICAgICAgICAgICAgICAubXhfU3BhY2VIaWVyYXJjaHlfcm9vbVRpbGVfYXZhdGFyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubXhfU3BhY2VIaWVyYXJjaHlfcm9vbVRpbGVfbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAubXhfSW5mb1Rvb2x0aXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAubXhfU3BhY2VIaWVyYXJjaHlfcm9vbVRpbGVfam9pbmVkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAubXhfSW5mb1Rvb2x0aXAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLm14X1NwYWNlSGllcmFyY2h5X3Jvb21UaWxlX2pvaW5lZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X1NwYWNlSGllcmFyY2h5X3Jvb21UaWxlX2luZm8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfU3BhY2VIaWVyYXJjaHlfYWN0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbi1nYXA6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNHB4IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9vdXRsaW5lLFxuICAgICAgICAgICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnlfb3V0bGluZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAzcHggMTZweDsgLyogdG8gYWNjb3VudCBmb3IgdGhlIDFweCBib3JkZXIgKi9cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cy13aXRoaW4ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3BhY2VQYW5lbC1iZy1jb2xvcjtcblxuICAgICAgICAgICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5teF9TcGFjZUhpZXJhcmNoeV9qb2luaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDRweCAxOHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X3Jvb21UaWxlLFxuICAgIC5teF9TcGFjZUhpZXJhcmNoeV9zdWJzcGFjZV9jaGlsZHJlbiB7XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNwYWNlUGFuZWwtYmctY29sb3I7XG4gICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogNnB4O1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X2FjdGlvbnMge1xuICAgICAgICAubXhfU3BhY2VIaWVyYXJjaHlfYWN0aW9uc1RleHQge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgID4gaHIge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTQxLCAxNTEsIDE2NSwgMC4yKTtcbiAgICAgICAgbWFyZ2luOiAyMHB4IDA7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X2NyZWF0ZVJvb20ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAxNnB4IGF1dG8gMDtcbiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcGFjZVBhbmVsIHtcbiAgICAtLWFjdGl2ZUJhY2tncm91bmQtY29sb3I6ICRwYW5lbC1hY3Rpb25zO1xuICAgIC0tYWN0aXZlQm9yZGVyLWNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIC0tYWN0aXZlQm9yZGVyLXRyYW5zcGFyZW50LWdhcDogMXB4O1xuICAgIC0tZ3V0dGVyU2l6ZTogMTRweDtcbiAgICAtLWhlaWdodC1uZXN0ZWQ6IDI0cHg7XG4gICAgLS1oZWlnaHQtdG9wTGV2ZWw6IDMycHg7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtcHJpbWFyeSk7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8qIEZpeCBmb3IgdGhlIGJsdXJyZWQgYXZhdGFyLWJhY2tncm91bmQgKi9cbiAgICB6LWluZGV4OiAxO1xuXG4gICAgLyogRm9yIGVuaGFuY2VkIHZpc2liaWxpdHkgdW5kZXIgY29udHJhc3QgY29udHJvbCAqL1xuICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgIC8qIENyZWF0ZSBhbm90aGVyIGZsZXhib3ggc28gdGhlIFBhbmVsIGZpbGxzIHRoZSBjb250YWluZXIgKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAmLmNvbGxhcHNlZCB7XG4gICAgICAgIHdpZHRoOiA2OHB4O1xuICAgIH1cblxuICAgIC5teF9TcGFjZVBhbmVsX3RvZ2dsZUNvbGxhcHNlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICB0b3A6IDE5cHg7IC8qIHYtYWxpZ24gd2l0aCBhdmF0YXIgKi9cbiAgICAgICAgcmlnaHQ6IC04cHg7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAgICAgLyogU2xpZ2h0IGFsaWdubWVudCB0d2VhayB0byBjZW50ZXIgdGhlIGFzc2V0ICovXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5leHBhbmRlZCBzdmcge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICAgIC8qIFNsaWdodCBhbGlnbm1lbnQgdHdlYWsgdG8gY2VudGVyIHRoZSBhc3NldCAqL1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIC5teF9TcGFjZVBhbmVsX3RvZ2dsZUNvbGxhcHNlLFxuICAgIC5teF9TcGFjZVBhbmVsX3RvZ2dsZUNvbGxhcHNlOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAvKiBGb3IgZW5oYW5jZWQgdmlzaWJpbGl0eSB1bmRlciBjb250cmFzdCBjb250cm9sICovXG4gICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAubXhfU3BhY2VCdXR0b25fdG9nZ2xlQ29sbGFwc2Uge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSXRlbV9kcmFnZ2luZyB7XG4gICAgICAgIC5teF9TcGFjZUJ1dHRvbl90b2dnbGVDb2xsYXBzZSB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VJdGVtIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogd3JhcDtcblxuICAgICAgICAmLm14X1NwYWNlSXRlbV9uYXJyb3cge1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogYmFzZWxpbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VJdGVtLmNvbGxhcHNlZCB7XG4gICAgICAgICYgPiAubXhfU3BhY2VCdXR0b24gPiAubXhfU3BhY2VCdXR0b25fdG9nZ2xlQ29sbGFwc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0xMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJiA+IC5teF9TcGFjZVRyZWVMZXZlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSXRlbV9uZXcge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSXRlbTpub3QoLmhhc1N1YlNwYWNlcykgPiAubXhfU3BhY2VCdXR0b24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ3V0dGVyU2l6ZSk7XG4gICAgICAgIG1pbi13aWR0aDogNDBweDtcbiAgICB9XG5cbiAgICAubXhfU3BhY2VCdXR0b24ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDRweCA0cHggNHB4IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAvKiBPdmVycmlkZSB0aGUgdW5sYXllcmVkIGN1cnNvcjogZ3JhYjsgcnVsZSBmcm9tIHJlYWN0LWJlYXV0aWZ1bC1kbmQgKi9cbiAgICAgICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgJi5teF9TcGFjZUJ1dHRvbl9hY3RpdmUge1xuICAgICAgICAgICAgJjpub3QoLm14X1NwYWNlQnV0dG9uX25hcnJvdykgLm14X1NwYWNlQnV0dG9uX3NlbGVjdGlvbldyYXBwZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjdGl2ZUJhY2tncm91bmQtY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X1NwYWNlQnV0dG9uX25hcnJvdyAubXhfU3BhY2VCdXR0b25fc2VsZWN0aW9uV3JhcHBlciB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tYWN0aXZlQm9yZGVyLXRyYW5zcGFyZW50LWdhcCk7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAzcHggdmFyKC0tYWN0aXZlQm9yZGVyLWNvbG9yKSBzb2xpZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZUJ1dHRvbl9zZWxlY3Rpb25XcmFwcGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMzJweCk7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X1NwYWNlQnV0dG9uX25hcnJvdyAubXhfU3BhY2VCdXR0b25fc2VsZWN0aW9uV3JhcHBlciB7XG4gICAgICAgICAgICBmbGV4OiBpbml0aWFsO1xuICAgICAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VCdXR0b25fbmFtZSB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VCdXR0b25fdG9nZ2xlQ29sbGFwc2Uge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLWd1dHRlclNpemUpO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgLyogUmUtYWxpZ24gd2l0aCBwYXJlbnQgKi9cbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTNweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZUJ1dHRvbl9pY29uIHtcbiAgICAgICAgICAgIC8qIENhbGN1bGF0ZSBoZWlnaHQgZXhjbHVkaW5nIHBhZGRpbmcgdG8gYWxsb3cgc3ZnIHRvIGluaGVyaXQgKi9cbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLWhlaWdodC10b3BMZXZlbCkgLSAxNHB4KTtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1oZWlnaHQtdG9wTGV2ZWwpIC0gMTRweCk7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDdweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwYW5lbC1hY3Rpb25zO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9TcGFjZUJ1dHRvbl9uZXcgLm14X1NwYWNlQnV0dG9uX2ljb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7IC8qIFRPRE8gdHJhbnNpdGlvbiAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9TcGFjZUJ1dHRvbl9uZXdDYW5jZWwgLm14X1NwYWNlQnV0dG9uX2ljb24gc3ZnIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZUJ1dHRvbl9tZW51QnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogNHB4O1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZVRyZWVMZXZlbCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1heC13aWR0aDogMjUwcHg7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuXG4gICAgICAgIC5teF9TcGFjZVRyZWVMZXZlbCB7XG4gICAgICAgICAgICAvKiBJbmRlbnQgc3Vic3BhY2VzICovXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VCdXR0b25fYXZhdGFyV3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlUGFuZWxfYmFkZ2VDb250YWluZXIge1xuICAgICAgICAvKiBDcmVhdGUgYSBmbGV4Ym94IHRvIG1ha2UgYWxpZ25pbmcgZG90IGJhZGdlcyBlYXNpZXIgKi9cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLTNweDtcbiAgICAgICAgdG9wOiAtM3B4O1xuXG4gICAgICAgIC5teF9TcGFjZVBhbmVsX25vdGlmaWNhdGlvbkJhZGdlIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAycHg7IC8qIGNlbnRlcmluZyAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICAgICAgfVxuXG4gICAgICAgIFtkYXRhLWJhZGdlLXR5cGU9XCJkb3RcIl0ge1xuICAgICAgICAgICAgLyogbWFrZSB0aGUgc21hbGxlciBkb3Qgb2NjdXB5IHRoZSBzYW1lIHdpZHRoIGZvciBjZW50ZXJpbmcgKi9cbiAgICAgICAgICAgIG1hcmdpbjogMCAtMXB4IDAgMDtcbiAgICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICRzcGFjZVBhbmVsLWJnLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgW2RhdGEtYmFkZ2UtdHlwZT1cImJhZGdlXzJjaGFyXCJdLFxuICAgICAgICBbZGF0YS1iYWRnZS10eXBlPVwiYmFkZ2VfM2NoYXJcIl0ge1xuICAgICAgICAgICAgbWFyZ2luOiAtNXB4IC01cHggMCAwO1xuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHNwYWNlUGFuZWwtYmctY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VCdXR0b246aG92ZXIsXG4gICAgLm14X1NwYWNlQnV0dG9uOmZvY3VzLXdpdGhpbixcbiAgICAubXhfU3BhY2VCdXR0b25faGFzTWVudU9wZW4ge1xuICAgICAgICAmOm5vdCgubXhfU3BhY2VCdXR0b25fbmFycm93KTpub3QoLm14X1NwYWNlQnV0dG9uX2ludml0ZSkgLm14X1NwYWNlQnV0dG9uX21lbnVCdXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VJdGVtOm5vdCgubXhfU3BhY2VJdGVtX25ldykge1xuICAgICAgICAubXhfU3BhY2VCdXR0b246aG92ZXIsXG4gICAgICAgIC5teF9TcGFjZUJ1dHRvbjpmb2N1cy13aXRoaW4sXG4gICAgICAgIC5teF9TcGFjZUJ1dHRvbl9oYXNNZW51T3BlbiB7XG4gICAgICAgICAgICAmOm5vdCgubXhfU3BhY2VCdXR0b25fbmFycm93KTpub3QoLm14X1NwYWNlQnV0dG9uX2ludml0ZSkgLm14X1NwYWNlQnV0dG9uX25hbWUge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gNTZweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiByb290IHNwYWNlIGJ1dHRvbnMgYXJlIGJpZ2dlciBhbmQgbm90IGluZGVudGVkICovXG4gICAgJiA+IC5teF9BdXRvSGlkZVNjcm9sbGJhciB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAxNnB4IDA7XG4gICAgICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTtcblxuICAgICAgICAmLm14X0luZGljYXRvclNjcm9sbGJhcl90b3BPdmVyZmxvdyB7XG4gICAgICAgICAgICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCwgYmxhY2sgMTZweCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0luZGljYXRvclNjcm9sbGJhcl9ib3R0b21PdmVyZmxvdyB7XG4gICAgICAgICAgICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgdG8gdG9wLFxuICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50LFxuICAgICAgICAgICAgICAgIHJnYigyNTUsIDI1NSwgMjU1LCAzMCUpIDRweCxcbiAgICAgICAgICAgICAgICByZ2IoMjU1LCAyNTUsIDI1NSwgNTUlKSA4cHgsXG4gICAgICAgICAgICAgICAgcmdiKDI1NSwgMjU1LCAyNTUsIDc1JSkgMTJweCxcbiAgICAgICAgICAgICAgICBibGFjayAxNnB4XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9JbmRpY2F0b3JTY3JvbGxiYXJfdG9wT3ZlcmZsb3cubXhfSW5kaWNhdG9yU2Nyb2xsYmFyX2JvdHRvbU92ZXJmbG93IHtcbiAgICAgICAgICAgIC8qIFRoaXMgc3RhY2tzIHR3byBncmFkaWVudHMgb24gdG9wIG9mIG9uZSBhbm90aGVyLCB3aGljaCBsZXRzIHVzXG4gICAgICAgICAgICAgICBoYXZlIGEgZml4ZWQgcGl4ZWwgb2Zmc2V0IGZyb20gYm90aCB0b3AgYW5kIGJvdHRvbSBmb3IgdGhlIGNvbG91ciBzdG9wcy5cbiAgICAgICAgICAgICAgIE5vdGUgdGhlIHRvcCBmYWRlIGlzIG11Y2ggc21hbGxlciBiZWNhdXNlIHRoZSBzcGFjZXMgc3RhcnQgY2xvc2UgdG8gdGhlIHRvcCxcbiAgICAgICAgICAgICAgIHNvIG90aGVyd2lzZSBhIGxhcmdlIGdyYWRpZW50IHN1ZGRlbmx5IGFwcGVhcnMgd2hlbiB5b3Ugc2Nyb2xsIGRvd24uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIG1hc2staW1hZ2U6XG4gICAgICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdHJhbnNwYXJlbnQsIGJsYWNrIDE2cHgpLFxuICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gdG9wLFxuICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCxcbiAgICAgICAgICAgICAgICAgICAgcmdiKDI1NSwgMjU1LCAyNTUsIDMwJSkgNHB4LFxuICAgICAgICAgICAgICAgICAgICByZ2IoMjU1LCAyNTUsIDI1NSwgNTUlKSA4cHgsXG4gICAgICAgICAgICAgICAgICAgIHJnYigyNTUsIDI1NSwgMjU1LCA3NSUpIDEycHgsXG4gICAgICAgICAgICAgICAgICAgIGJsYWNrIDE2cHhcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgbWFzay1wb3NpdGlvbjpcbiAgICAgICAgICAgICAgICAwJSAwJSxcbiAgICAgICAgICAgICAgICAwJSAxMDAlO1xuICAgICAgICAgICAgbWFzay1zaXplOlxuICAgICAgICAgICAgICAgIGNhbGMoMTAwJSAtIDEwcHgpIDUwJSxcbiAgICAgICAgICAgICAgICBjYWxjKDEwMCUgLSAxMHB4KSA1MCU7XG4gICAgICAgICAgICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfU3BhY2VQYW5lbF9jb250ZXh0TWVudSB7XG4gICAgbWF4LXdpZHRoOiAzNjBweDtcblxuICAgIC5teF9TcGFjZVBhbmVsX2NvbnRleHRNZW51X2hlYWRlciB7XG4gICAgICAgIG1hcmdpbjogMTJweCAxNnB4IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAubXhfU3BhY2VQYW5lbF9jb250ZXh0TWVudV9zZXBhcmF0b3JMYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxufVxuXG4ubXhfU3BhY2VQYW5lbF9zaGFyZVB1YmxpY1NwYWNlIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5teF9TcGFjZVBhbmVsX1Rvb2x0aXBfS2V5Ym9hcmRTaG9ydGN1dCB7XG4gICAga2JkIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNSBFbGVtZW50IENyZWF0aW9ucyBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcGFjZVBpbGxCdXR0b24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAxNnB4IDMycHggMTZweCA3MnB4O1xuICAgIHdpZHRoOiA0MzJweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTdweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBtYXJnaW46IDIwcHggMDtcblxuICAgID4gZGl2IHtcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICBsZWZ0OiAyMnB4O1xuICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgIH1cblxuICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3BhY2VSb29tVmlldyB7XG4gICAgLS1pbm5lcldpZHRoOiA0MjhweDtcblxuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgZmxleDogMTtcblxuICAgIC5teF9NYWluU3BsaXQgPiBkaXY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nOiA4MHB4IDYwcHg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgICAgICBoMSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTI0cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NwYWNlUm9vbVZpZXdfZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1pbm5lcldpZHRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2Uge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1pbm5lcldpZHRoKTtcblxuICAgICAgICAgICAgLm14X0FkZEV4aXN0aW5nVG9TcGFjZV9jb250ZW50IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAzNjBweCk7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VSb29tVmlld19idXR0b25zIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNDRweDtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1pbm5lcldpZHRoKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyAvKiBidXR0b24gYWxpZ25tZW50IHJpZ2h0ICovXG5cbiAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2hhc0tpbmQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweCAyMnB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbnB1dC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7IC8qIG92ZXJyaWRlIGRlZmF1bHQgc3R5bGVzICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRmllbGQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1pbm5lcldpZHRoKTtcblxuICAgICAgICAgICAgJiArIC5teF9GaWVsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMjhweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2Vycm9yVGV4dCB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlUm9vbVZpZXdfbGFuZGluZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1pbi13aWR0aDogMDtcblxuICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX2hlYWRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgICAgICAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDgwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX25hbWUge1xuICAgICAgICAgICAgbWFyZ2luOiAyNHB4IDAgMTZweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBnYXA6IDEycHggMDtcblxuICAgICAgICAgICAgICAgIGgxIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX2ludml0ZXIge1xuICAgICAgICAgICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NwYWNlUm9vbVZpZXdfbGFuZGluZ19pbmZvQmFyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG5cbiAgICAgICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2xhbmRpbmdfaW5mb0Jhcl9pbnRlcmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDEycHggMTJweDtcblxuICAgICAgICAgICAgICAgIC5teF9GYWNlUGlsZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICAvKiBGb3IgZW5oYW5jZWQgdmlzaWJpbGl0eSB1bmRlciBjb250cmFzdCBjb250cm9sICovXG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX2ludml0ZUJ1dHRvbixcbiAgICAgICAgICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX3NldHRpbmdzQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX2ludml0ZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDRweCAxOHB4IDRweCA0MHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IG1pbi1jb250ZW50O1xuXG4gICAgICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiA4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1vbi1zb2xpZC1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2xhbmRpbmdfc2V0dGluZ3NCdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuXG4gICAgICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX3RvcGljIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NlYXJjaEJveCB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAyMHB4O1xuICAgICAgICAgICAgZmxleDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZVJvb21WaWV3X2ludml0ZVRlYW1tYXRlcyB7XG4gICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2ludml0ZVRlYW1tYXRlc19idXR0b25zIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyOHB4O1xuXG4gICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7IC8qIHRvIGNlbnRlciBpY29ucyAqL1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiArIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDMycHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NwbGFzaFBhZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgIDUzLjg1JSA2Ni43NSUgYXQgODcuNTUlIDAlLFxuICAgICAgICAgICAgICAgIGhzbCgyNTBkZWcsIDc2JSwgNzElLCAwLjI2MSkgMCUsXG4gICAgICAgICAgICAgICAgaHNsKDI1MGRlZywgMTAwJSwgODglLCAwKSAxMDAlXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KDQxLjkzJSA0MS45MyUgYXQgMCUgMCUsIGhzbCgyMjJkZWcsIDI5JSwgMjAlLCAwLjI4KSAwJSwgaHNsKDI1MGRlZywgMTAwJSwgODglLCAwKSAxMDAlKSxcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudCgxMDAlIDEwMCUgYXQgMCUgMCUsIGhzbCgyNTBkZWcsIDEwMCUsIDg4JSwgMC4xNzQpIDAlLCBoc2woMGRlZywgMTAwJSwgODYlLCAwKSAxMDAlKSxcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudCgxMDYuMzUlIDk2LjI2JSBhdCAxMDAlIDAlLCBoc2woMjUwZGVnLCAxMDAlLCA4OCUsIDAuNCkgMCUsIGhzbCgxNjdkZWcsIDc2JSwgODIlLCAwKSAxMDAlKTtcbiAgICAgICAgLyogYmx1ciB0byByZWR1Y2UgY29sb3IgYmFuZGluZyBpc3N1ZXMgZHVlIHRvIGFscGhhLWJsZW5kaW5nIG11bHRpcGxlIGdyYWRpZW50cyAqL1xuICAgICAgICBmaWx0ZXI6IGJsdXIoOHB4KTtcbiAgICAgICAgaW5zZXQ6IC05cHg7XG4gICAgICAgIG1hc2s6XG4gICAgICAgICAgICAvKiBtYXNrIHRvIGRpdGhlciByZXN1bHRpbmcgY29tYmluZWQgZ3JhZGllbnQgKi9cbiAgICAgICAgICAgIHVybChcIi9yZXMvaW1nL25vaXNlLnBuZ1wiKSxcbiAgICAgICAgICAgIC8qIGdyYWRpZW50IHRvIGFwcGx5IGRpZmZlcmVudCBhbW91bnRzIG9mIGRpdGhlcmluZyB0byBkaWZmZXJlbnQgcGFydHMgb2YgdGhlIGdyYWRpZW50ICovXG4gICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgdG8gYm90dG9tLFxuICAgICAgICAgICAgICAgIC8qIDEwJSBkaXRoZXJpbmcgYXQgdGhlIHRvcCAqLyByZ2IoMCwgMCwgMCwgMC45KSAyMCUsXG4gICAgICAgICAgICAgICAgLyogODAlIGRpdGhlcmluZyBhdCB0aGUgYm90dG9tICovIHJnYigwLCAwLCAwLCAwLjIpIDEwMCVcbiAgICAgICAgICAgICk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE5IE5ldyBWZWN0b3IgTHRkXG5Db3B5cmlnaHQgMjAxNyBUcmF2aXMgUmFsc3RvblxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVGFiYmVkVmlldyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMCAwIHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGluc2V0OiAwO1xuICAgIG1hcmdpbi10b3A6IDhweDtcbn1cblxuLm14X1RhYmJlZFZpZXdfdGFic09uTGVmdCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbHMge1xuICAgICAgICB3aWR0aDogMjIwcHg7XG4gICAgICAgIG1heC13aWR0aDogMjIwcHg7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgbWFyZ2luOiAwOyAvKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmFsdWUgKi9cbiAgICAgICAgcGFkZGluZzogMDsgLyogUmVtb3ZlIHRoZSBkZWZhdWx0IHZhbHVlICovXG4gICAgfVxuXG4gICAgLm14X1RhYmJlZFZpZXdfdGFiUGFuZWwge1xuICAgICAgICBtYXJnaW4tbGVmdDogMjgwcHg7IC8qIDIyMHB4IHNpZGViYXIgKyA2MHB4IHBhZGRpbmcgKi9cbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbDpob3ZlcixcbiAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbF9hY3RpdmUge1xuICAgICAgICBjb2xvcjogJHRhYi1sYWJlbC1hY3RpdmUtZmctY29sb3I7XG4gICAgfVxuXG4gICAgLm14X1RhYmJlZFZpZXdfdGFiTGFiZWxfYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1zZWNvbmRhcnkpO1xuICAgICAgICAvKiBGb3IgZW5oYW5jZWQgdmlzaWJpbGl0eSB1bmRlciBjb250cmFzdCBjb250cm9sICovXG4gICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG59XG5cbi5teF9UYWJiZWRWaWV3X3RhYnNPblRvcCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC5teF9UYWJiZWRWaWV3X3RhYkxhYmVscyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICB9XG5cbiAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1MnB4O1xuXG4gICAgICAgIC5teF9UYWJiZWRWaWV3X3RhYkxhYmVsX3RleHQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1RhYmJlZFZpZXdfdGFiUGFuZWwge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIH1cblxuICAgIC5teF9UYWJiZWRWaWV3X3RhYkxhYmVsX2FjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbF90ZXh0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfVGFiYmVkVmlld190YWJMYWJlbHMge1xuICAgIGNvbG9yOiAkdGFiLWxhYmVsLWZnLWNvbG9yO1xufVxuXG4ubXhfVGFiYmVkVmlld190YWJMYWJlbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcGFkZGluZy1ibG9jazogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLWJsb2NrLXNpemU6IDQwcHg7XG4gICAgbWluLWlubGluZS1zaXplOiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1tZWRpdW0pO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgICBjb2xvciAwLjFzLFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDAuMXM7XG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgfVxufVxuXG4ubXhfVGFiYmVkVmlld190YWJMYWJlbF90ZXh0IHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubXhfVGFiYmVkVmlld190YWJQYW5lbCB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWluLWhlaWdodDogMDsgLyogZmlyZWZveCAqL1xufVxuXG4ubXhfVGFiYmVkVmlld190YWJQYW5lbENvbnRlbnQge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwOyAvKiBmaXJlZm94ICovXG59XG5cbi8qIEhpZGUgdGhlIGxhYmVscyBvbiB0YWJzLCBzaG93aW5nIG9ubHkgdGhlIGljb25zLCBvbiBuYXJyb3cgdmlld3BvcnRzLiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5teF9UYWJiZWRWaWV3X3RhYnNPbkxlZnQubXhfVGFiYmVkVmlld19yZXNwb25zaXZlIHtcbiAgICAgICAgLm14X1RhYmJlZFZpZXdfdGFiTGFiZWxfdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC5teF9UYWJiZWRWaWV3X3RhYlBhbmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA3MnB4OyAvKiA0MHB4IHNpZGViYXIgKyAzMnB4IHBhZGRpbmcgKi9cbiAgICAgICAgfVxuICAgICAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbHMge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgLm14X1RhYmJlZFZpZXdfdGFiTGFiZWwge1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDAgMDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKiBDb3B5cmlnaHQgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfVGhyZWFkc0FjdGl2aXR5Q2VudHJlX2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLm14X1RocmVhZHNBY3Rpdml0eUNlbnRyZUJ1dHRvbiB7XG4gICAgLyogIWltcG9ydGFudCBvdmVycmlkZSBjb21wb3VuZCAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDhweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMThweCBhdXRvIGF1dG8gYXV0bztcblxuICAgICYuZXhwYW5kZWQge1xuICAgICAgICAvKipcbiAgICAgICAgICogb3ZlcnJpZGUgY29tcG91bmQgZGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIHdoZW4gaG92ZXJlZFxuICAgICAgICAgKiBzaG91bGQgZGlzYXBwZWFyIHdoZW4gdGhlIHNwYWNlIHBhbmVsIHdpbGwgYmUgbWlncmF0ZWQgdG8gY29tcG91bmRcbiAgICAgICAgICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgLyogYWxpZ24gd2l0aCBzZXR0aW5ncyBpY29uICovXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyMXB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIG1vZGlmeSBpbnRlcm5hbCBjc3Mgb2YgdGhlIGNvbXBvdW5kIGNvbXBvbmVudFxuICAgICAgICAgKiBkaXJ0eSBidXQgd2UgbmVlZCB0byBhZGQgdGhlIGBUaHJlYWRzYCBsYWJlbCBpbnRvIHRoZSBpbmRpY2F0b3IgaWNvbiBidXR0b25cbiAgICAgICAgICoqL1xuICAgICAgICAmID4gZGl2IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGlubGluZS1zaXplOiA4cHg7XG4gICAgICAgICAgICAgICAgYmxvY2stc2l6ZTogOHB4O1xuICAgICAgICAgICAgICAgIGxlZnQ6IDE3cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmIC5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVCdXR0b25fSWNvbiB7XG4gICAgICAgICAgICAvKiBhbGlnbiB3aXRoIHNldHRpbmdzIGxhYmVsICovXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDE0cHg7XG4gICAgICAgICAgICAvKiByZXF1aXJlZCB0byBzZXQgdGhlIGljb24gd2lkdGggd2hlbiBpbnRvIGEgZmxleCBjb250YWluZXIgKi9cbiAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmIC5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVCdXR0b25fVGV4dCB7XG4gICAgICAgICAgICAvKiAhaW1wb3J0YW50IG92ZXJyaWRlIGNvbXBvdW5kICAqL1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLmV4cGFuZGVkKSB7XG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6aG92ZXIgLm14X1RocmVhZHNBY3Rpdml0eUNlbnRyZUJ1dHRvbl9JY29uIHtcbiAgICAgICAgICAgIC8qICFpbXBvcnRhbnQgb3ZlcnJpZGUgY29tcG91bmQgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGZpbGw6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmIC5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVCdXR0b25fSWNvbiB7XG4gICAgICAgIGZpbGw6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG59XG5cbi8qIENvbXBvdW5kIHN0eWxlcyBpdHMgTWVudS9OYXZCYXIvTWVudUl0ZW0gaW50ZXJuYWxzIHdpdGggc2luZ2xlLWNsYXNzIHNlbGVjdG9ycy4gVGhlXG4gICBgW3JvbGU9XCJtZW51XCJdYCBxdWFsaWZpZXIgZ2l2ZXMgb3VyIHJ1bGVzIGEgaGlnaGVyIHNwZWNpZmljaXR5IHNvIHRoZXkgd2luIHdpdGhvdXRcbiAgIGAhaW1wb3J0YW50YC4gKi9cbi5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVfbWVudVtyb2xlPVwibWVudVwiXSB7XG4gICAgLyogT3ZlcnJpZGUgY29tcG91bmQncyBkZWZhdWx0IDM0MHB4IGNhcCAqL1xuICAgIG1heC1pbmxpbmUtc2l6ZTogNDQ0cHg7XG4gICAgaW5saW5lLXNpemU6IDQ0NHB4O1xuICAgIC8qXG4gICAgICogQXdmdWwsIGJyaXR0bGUgaGFjayB0byByZW1vdmUgcGFkZGluZyBmcm9tIHRoZSBtZW51IHdoaWNoIGlzIG5vdyBhZGRlZCBvbiB0aGUgY29udGVudCBjaGlsZFxuICAgICAqIFRoaXMgcHJvYmFibHkgb3VnaHQgdG8gYmUgYSBwYXJhbWV0ZXIgdG8gdGhlIGNvbXBvdW5kIGNvbXBvbmVudCBpZiB3ZSBzb21ldGltZXMgZG9uJ3Qgd2FudCBwYWRkaW5nLlxuICAgICAqL1xuICAgID4gW3JvbGU9XCJub25lXCJdIHtcbiAgICAgICAgcGFkZGluZy1ibG9jazogMDtcblxuICAgICAgICAtLWNwZC1tZW51LXBhZGRpbmctYmxvY2stZW5kOiAwO1xuICAgIH1cblxuICAgIC5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVfdGFicyB7XG4gICAgICAgIC8qIE92ZXJyaWRlIE5hdkJhcidzIGRlZmF1bHQgYmxvY2sgbWFyZ2luIHRvIG1hdGNoIHRoZSBGaWdtYSBkZXNpZ24gKi9cbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS00eCkgMDtcbiAgICB9XG5cbiAgICAubXhfVGhyZWFkc0FjdGl2aXR5Q2VudHJlX3Jvd3Mge1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICAvKiBGaXhlZCBwYW5lbCBoZWlnaHQgZnJvbSB0aGUgZGVzaWduICh+NiByb3dzKSwgc28gdGhlIG1lbnUgZG9lc24ndCByZXNpemUgYXMgdGhlXG4gICAgICAgICAgIGxpc3QgY2hhbmdlcy4gUm93IGhlaWdodHMgdmFyeSB3aXRoIHRoZSBwcmV2aWV3LCBhbmQgNDMycHggaXNuJ3Qgb24gdGhlIHNwYWNpbmdcbiAgICAgICAgICAgc2NhbGUsIHNvIHRoaXMgc3RheXMgaW4gcHguICovXG4gICAgICAgIGhlaWdodDogNDMycHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQzMnB4O1xuXG4gICAgICAgIC5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVUaHJlYWRSb3cge1xuICAgICAgICAgICAgLyogRmxvb3IgZm9yIHJvd3Mgd2l0aG91dCBhIG1lc3NhZ2UgcHJldmlldywgd2hpY2ggd291bGQgb3RoZXJ3aXNlIGJlIH40OHB4ICovXG4gICAgICAgICAgICBtaW4taGVpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMTR4KTtcblxuICAgICAgICAgICAgLyogT3ZlcnJpZGUgY29tcG91bmQncyBkaXNwbGF5OiBncmlkIHdpdGggYSBzaW1wbGUgbGVmdC10by1yaWdodCBmbGV4IHJvdzpcbiAgICAgICAgICAgICAgIFthdmF0YXJdIFtnYXBdIFt0ZXh0IGNvbnRlbnRdIFtpbmRpY2F0b3JdICovXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgICAgICAgICAgLyogQ29tcG91bmQncyAuaWNvbiBjbGFzcyBhZGRzIG1hcmdpbi1pbmxpbmUtZW5kOyB6ZXJvIGl0IHNpbmNlIGdhcCBoYW5kbGVzIHNwYWNpbmcgKi9cbiAgICAgICAgICAgICYgPiAubXhfRGVjb3JhdGVkUm9vbUF2YXRhciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDA7XG4gICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIE5vdGlmaWNhdGlvbiBkZWNvcmF0aW9uIChtZW50aW9uIGljb24gLyBjb3VudGVyIC8gYWN0aXZpdHkgZG90KSBhdCB0aGUgdHJhaWxpbmcgZWRnZSAqL1xuICAgICAgICAgICAgJiA+IC5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVUaHJlYWRSb3dfZGVjb3JhdGlvbiB7XG4gICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfVGhyZWFkc0FjdGl2aXR5Q2VudHJlVGhyZWFkUm93X2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1RocmVhZHNBY3Rpdml0eUNlbnRyZVRocmVhZFJvd19oZWFkZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIEZvbnQvbGV0dGVyLXNwYWNpbmcgY29tZSBmcm9tIHRoZSBDb21wb3VuZCBUZXh0IGNvbXBvbmVudHM7IG9ubHkgbGF5b3V0ICsgY29sb3VyIGhlcmUuICovXG4gICAgICAgICAgICAubXhfVGhyZWFkc0FjdGl2aXR5Q2VudHJlVGhyZWFkUm93X3Jvb21OYW1lIHtcbiAgICAgICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVUaHJlYWRSb3dfcHJldmlldyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgICAgICAgICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1RocmVhZHNBY3Rpdml0eUNlbnRyZVRocmVhZFJvd19zZW5kZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1RocmVhZHNBY3Rpdml0eUNlbnRyZV9lbXB0eUNhcHRpb24ge1xuICAgIC8qIFR5cG9ncmFwaHkgY29tZXMgZnJvbSB0aGUgQ29tcG91bmQgVGV4dCBjb21wb25lbnQuICovXG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI2IEVsZW1lbnQgQ3JlYXRpb25zIEx0ZC5cbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTktMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVG9hc3RDb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEycHg7XG4gICAgbGVmdDogNjJweDtcbiAgICB6LWluZGV4OiAxMDE7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IDFmciAyOHB4IDhweDtcblxuICAgICYubXhfVG9hc3RDb250YWluZXJfc3RhY2tlZDo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgbWFyZ2luOiAwIHZhcigtLWNwZC1zcGFjZS0xLTV4KTtcbiAgICAgICAgZ3JpZC1yb3c6IDIgLyAtMTtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzeXN0ZW07XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCA0cHggMjBweCByZ2IoMCwgMCwgMCwgMC41KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICB9XG5cbiAgICAubXhfVG9hc3RfdG9hc3Qge1xuICAgICAgICBncmlkLXJvdzogMSAvIDM7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDRweCAyNHB4IHJnYigwLCAwLCAwLCAwLjEpO1xuICAgICAgICBib3JkZXI6IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDIwcHggMWZyIGF1dG87XG4gICAgICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIHJvdy1nYXA6IDRweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogY2FsYyh2YXIoLS1jcGQtc3BhY2UtNXgpIC0gdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSk7XG5cbiAgICAgICAgJi5teF9Ub2FzdF9oYXNJY29uIHtcbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfVG9hc3RfdGl0bGUge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfVG9hc3RfY2xvc2VidXR0b24ge1xuICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6bm90KC5teF9Ub2FzdF9oYXNJY29uKSAubXhfVG9hc3RfdGl0bGUge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Ub2FzdF90aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1sZy1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RvYXN0X2JvZHkge1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAtMTtcbiAgICAgICAgICAgIGdyaWQtcm93OiAyO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgLCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9VcGxvYWRCYXIge1xuICAgIC8qIGxpbmUgdXAgd2l0aCB0aGUgc2hpZWxkIGFyZWEgaW4gdGhlIGNvbXBvc2VyICovXG4gICAgcGFkZGluZzogNXB4IDIxcHggMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGU6XG4gICAgICAgIFwiaWNvbiAgICAgZmlsZW5hbWUgY2FuY2VsXCIgYXV0b1xuICAgICAgICBcInByb2dyZXNzIHByb2dyZXNzIHByb2dyZXNzXCIgYXV0b1xuICAgICAgICAvIG1pbi1jb250ZW50IGF1dG8gbWluLWNvbnRlbnQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMS01eCk7XG5cbiAgICAmID4gc3ZnIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBpY29uO1xuICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgICAgICBjb2xvcjogJG11dGVkLWZnLWNvbG9yO1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm14X1VwbG9hZEJhcl9maWxlbmFtZSB7XG4gICAgICAgIGdyaWQtYXJlYTogZmlsZW5hbWU7XG4gICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC5teF9VcGxvYWRCYXJfY2FuY2VsIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBjYW5jZWw7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubXhfUHJvZ3Jlc3NCYXIge1xuICAgICAgICBncmlkLWFyZWE6IHByb2dyZXNzO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi5teF9UaHJlYWRWaWV3IHtcbiAgICAubXhfVXBsb2FkQmFyIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9WaWV3U291cmNlIHtcbiAgICBwcmUge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIHBhZGRpbmc6IDAuNWVtIDFlbTtcbiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xuICAgIH1cblxuICAgIC5teF9WaWV3U291cmNlX2hlYWRlciB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcblxuICAgICAgICAubXhfQ29weWFibGVUZXh0IHtcbiAgICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9WaWV3U291cmNlX2hlYWRpbmcge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE3cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgIH1cblxuICAgIC5teF9WaWV3U291cmNlX2RldGFpbHMge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgIH1cblxuICAgIC5teF9Db3B5YWJsZVRleHRfYm9yZGVyIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NvbXBsZXRlU2VjdXJpdHlfaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5teF9FMkVJY29uLm14X0NvbXBsZXRlU2VjdXJpdHlfaGVhZGVySWNvbiB7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLm14X0UyRUljb24ubXhfQ29tcGxldGVTZWN1cml0eV9oZXJvSWNvbiB7XG4gICAgd2lkdGg6IDEyOHB4O1xuICAgIGhlaWdodDogMTI4cHg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5teF9Db21wbGV0ZVNlY3VyaXR5X3NraXAge1xuICAgIEBtaXhpbiBjdXN0b21pc2VkQ2FuY2VsQnV0dG9uO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMjRweDtcbn1cblxuLm14X0NvbXBsZXRlU2VjdXJpdHlfYm9keSB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xufVxuXG4ubXhfQ29tcGxldGVTZWN1cml0eV93YWl0aW5nIHtcbiAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9Db21wbGV0ZVNlY3VyaXR5X2FjdGlvblJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIG1hcmdpbi10b3A6ICRmb250LTI4cHg7XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDE4cHg7XG5cbiAgICAgICAgJi53YXJuaW5nIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOS0yMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Db25maXJtU2Vzc2lvbkxvY2tUaGVmdFZpZXcge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5teF9Db25maXJtU2Vzc2lvbkxvY2tUaGVmdFZpZXdfYm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1heC13aWR0aDogNDAwcHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xvZ2luX3N1Ym1pdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuXG4ubXhfTG9naW5fbG9hZGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMnB4O1xuICAgIGxlZnQ6IDhweDtcbn1cblxuLm14X0xvZ2luX2xvYWRlciAubXhfU3Bpbm5lciB7XG4gICAgZGlzcGxheTogaW5saW5lO1xufVxuXG4ubXhfTG9naW5fbG9hZGVyIC5teF9TcGlubmVyIGltZyB7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xufVxuXG4ubXhfTG9naW5fZXJyb3Ige1xuICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbn1cblxuLm14X0xvZ2luX2Vycm9yLm14X0xvZ2luX3NlcnZlckVycm9yIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5teF9Mb2dpbl9lcnJvci5teF9Mb2dpbl9zZXJ2ZXJFcnJvci5teF9Mb2dpbl9zZXJ2ZXJFcnJvck5vbkZhdGFsIHtcbiAgICBjb2xvcjogI2ZmOGQxMzsgLyogT25seSB1c2VkIGhlcmUgKi9cbn1cblxuLm14X0xvZ2luX3R5cGVfY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICRhdXRocGFnZS1wcmltYXJ5LWNvbG9yO1xuXG4gICAgLm14X0ZpZWxkIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLm14X0xvZ2luX3R5cGVfbGFiZWwge1xuICAgIGZsZXg6IDE7XG59XG5cbi5teF9Mb2dpbl91bmRlcmxpbmVkU2VydmVyTmFtZSB7XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgJGFjY2VudDtcbn1cblxuZGl2Lm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rLm14X0xvZ2luX2ZvcmdvdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMjRweDtcblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgfVxufVxuXG4ubXhfTG9naW5fc3Bpbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxNHB4O1xufVxuXG4ubXhfTG9naW5fZnVsbFdpZHRoQnV0dG9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUtMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTG9naW5TcGxhc2hWaWV3X3NwbGFzaEJ1dHRvbnMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAzMHB4O1xufVxuXG4ubXhfTG9naW5TcGxhc2hWaWV3X3N5bmNFcnJvciB7XG4gICAgY29sb3I6ICRhY2NlbnQtZmctY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RmMmE4YjsgLyogT25seSB1c2VkIGhlcmUgKi9cbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgcGFkZGluZzogMzBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDBweDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTW9iaWxlUmVnaXN0ZXJfYm9keSB7XG4gICAgcGFkZGluZzogMzJweDtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9SZWdpc3Rlcl9tYWluQ29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtaW4taGVpZ2h0OiAyNzBweDtcblxuICAgIHAge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgICAgICBjb2xvcjogJGF1dGhwYWdlLXByaW1hcnktY29sb3I7XG5cbiAgICAgICAgJi5zZWNvbmRhcnkge1xuICAgICAgICAgICAgY29sb3I6ICRhdXRocGFnZS1zZWNvbmRhcnktY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICA+IGltZzpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfTG9naW5fc3VibWl0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi8qIE1lZGl1bSByYXRoZXIgdGhhbiB0aGUgYm9sZCBldmVyeSBvdGhlciBhdXRoIGVycm9yIHVzZXM6IHRoaXMgb25lIHNpdHMgZGlyZWN0bHkgYWJvdmUgdGhlIGJ1dHRvbiBpdFxuICAgaXMgZGlzYWJsaW5nLCBhbmQgZG9lcyBub3QgbmVlZCB0byBzaG91dCBvdmVyIGl0LiBTY29wZWQgc28gdGhlIGxvZ2luIGVycm9ycyBrZWVwIHRoZWlyIHdlaWdodC4gKi9cbi5teF9Mb2dpbl9lcnJvci5teF9SZWdpc3RyYXRpb25fcmF0ZUxpbWl0RXJyb3Ige1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtbWVkaXVtKTtcbn1cblxuLm14X1JlZ2lzdGVyX2Zvb3RlckFjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgcGFkZGluZy10b3A6IDE2cHg7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiKDE0MSwgMTUxLCAxNjUsIDAuMik7XG5cbiAgICA+ICoge1xuICAgICAgICBmbGV4LWJhc2lzOiBjb250ZW50O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXNzaW9uTG9ja1N0b2xlblZpZXcge1xuICAgIGgxIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMzJweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIGgyIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTI0cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0dXBFbmNyeXB0aW9uQm9keSB7XG4gICAgd2lkdGg6IDYwMHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEsIDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyogRGV2IG5vdGU6IHRoZXJlJ3Mgbm8gYWN0dWFsIGNvbXBvbmVudCBjYWxsZWQgPFBsYXliYWNrQ29udGFpbmVyIC8+LiBUaGVzZSBjbGFzc2VzICovXG4vKiBhcmUgc2hhcmVkIGFtb25nc3QgbXVsdGlwbGUgdm9pY2UgbWVzc2FnZSBjb21wb25lbnRzLiAqL1xuXG4vKiBDb250YWluZXIgZm9yIGxpdmUgcmVjb3JkaW5nIGFuZCBwbGF5YmFjayBjb250cm9scyAqL1xuLm14X1ZvaWNlTWVzc2FnZVByaW1hcnlDb250YWluZXIge1xuICAgIC8qIE1hdGNoIG14X01lZGlhQm9keSBzcGFjaW5nLCBvZmZzZXR0aW5nIHRoZSB3YXZlZm9ybSdzIDFweCBpbnRlcm5hbCByaWdodCBwYWRkaW5nLiAqL1xuICAgIHBhZGRpbmc6IDZweCAxMXB4IDZweCAxMnB4O1xuXG4gICAgLyogQ2hlYXQgYXQgYWxpZ25tZW50IGEgYml0ICovXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgY29udGFpbjogY29udGVudDtcblxuICAgIC5teF9XYXZlZm9ybSxcbiAgICAubXhfUmVjb3JkaW5nUGxheWJhY2tfdGltZWxpbmVMYXlvdXRNaWRkbGUge1xuICAgICAgICBtaW4td2lkdGg6IDA7IC8qIFByZXZlbnQgYSBibG93b3V0ICovXG4gICAgfVxuXG4gICAgLyogV2F2ZWZvcm1zIGFyZSBwcmVzZW50IGluIGxpdmUgcmVjb3JkaW5nIG9ubHkgKi9cbiAgICAubXhfV2F2ZWZvcm0ge1xuICAgICAgICAvKiBkZWZhdWx0LCBvdmVycmlkZGVuIGluIEpTICovXG4gICAgICAgIC0tYmFySGVpZ2h0OiAxO1xuICAgICAgICAubXhfV2F2ZWZvcm1fYmFyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWShtYXgoMC4wNSwgdmFyKC0tYmFySGVpZ2h0KSkpO1xuXG4gICAgICAgICAgICAmLm14X1dhdmVmb3JtX2Jhcl8xMDBwY3Qge1xuICAgICAgICAgICAgICAgIC8qIFNtYWxsIGFuaW1hdGlvbiB0byByZW1vdmUgdGhlIG1lY2hhbmljYWwgZmVlbCBvZiBwcm9ncmVzcyAqL1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMjUwbXMgZWFzZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQ2xvY2sge1xuICAgICAgICB3aWR0aDogJGZvbnQtNDJweDsgLyogd2UncmUgbm90IHVzaW5nIGEgbW9ub3NwYWNlIGZvbnQsIHNvIGZha2UgaXQgKi9cbiAgICAgICAgbWluLXdpZHRoOiAkZm9udC00MnB4OyAvKiBmb3JjZSBzZW5zaWJsZSBsYXlvdXRzIGluIGF3a3dhcmQgZmxleGJveGVzIChmaWxlIHBhbmVsLCBmb3IgZXhhbXBsZSkgKi9cbiAgICAgICAgcGFkZGluZy1yaWdodDogNnB4OyAvKiB3aXRoIHRoZSBmaXhlZCB3aWR0aCB0aGlzIGVuZHMgdXAgYXMgYSB2aXN1YWwgOHB4IG1vc3Qgb2YgdGhlIHRpbWUsIGFzIGludGVuZGVkLiAqL1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweDsgLyogaXNvbGF0ZSBmcm9tIHJlY29yZGluZyBjaXJjbGUgLyBwbGF5IGNvbnRyb2wgKi9cbiAgICB9XG5cbiAgICAubXhfUmVjb3JkaW5nUGxheWJhY2tfdGltZWxpbmVMYXlvdXRNaWRkbGUge1xuICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGhlaWdodDogMzBweDsgLyogc2FtZSBoZWlnaHQgYXMgbXhfV2F2ZWZvcm0sIG5lZWRlZCBmb3IgYXV0b21hdGljIHZlcnRpY2FsIGNlbnRlcmluZyAqL1xuXG4gICAgICAgIC5teF9XYXZlZm9ybSB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NlZWtCYXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICAgIHRvcDogLTJweDsgLyogdmlzdWFsbHkgdmVydGljYWxseSBjZW50ZXJlZCAqL1xuXG4gICAgICAgICAgICAvKiBIaWRlIHRoZSBoYWlybGluZSBwcm9ncmVzcyBiYXIgc2luY2Ugd2UncmUgYXQgMTAwJSBoZWlnaHQuIE5lZWQgdG8gaGF2ZSBkaXN0aW5jdCBydWxlcyAqL1xuICAgICAgICAgICAgLyogYmVjYXVzZSBDU1MgaXMgd2VpcmQuICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjo6LW1vei1yYW5nZS1wcm9ncmVzcyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyogTWFrZSB0aGUgdGh1bWIgZWFzaWVyIHRvIHNlZS4gTGlrZSB0aGUgU2Vla0JhciBvcmlnaW5hbCBzdHlsZXMsIHRoZXNlIG5lZWQgdG8gYmUgKi9cbiAgICAgICAgICAgIC8qIGRpc3RpbmN0LiBXZSBtYWtlIGl0IHRyYW5zcGFyZW50IHNvIGl0IGRvZXNuJ3Qgc2hvdyB1cCBvbiB0aGUgVUksIGJ1dCBhbHNvIGxhcmdlciAqL1xuICAgICAgICAgICAgLyogc28gaXQncyBlYXNpZXIgdG8gZ3JhYiBieSBtb3VzZSB1c2VycyBpbiBzb21lIGJyb3dzZXJzLiBNb3N0IGJyb3dzZXJzIGxldCB0aGUgdXNlciAqL1xuICAgICAgICAgICAgLyogbW92ZSBhbmQgZHJhZyB0aGUgdGh1bWIgcmVnYXJkbGVzcyBvZiBoaXR0aW5nIHRoZSB0aHVtYiwgaG93ZXZlci4gKi9cbiAgICAgICAgICAgICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKiBGb3IgdGltZWxpbmUtcmVuZGVyZWQgcGxheWJhY2ssIHRoZSBjbG9jayBpcyBvbiB0aGUgb3RoZXIgc2lkZSBvZiB0aGUgd2F2ZWZvcm0uICovXG4gICAgICAgICYgKyAubXhfQ2xvY2sge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG5cbiAgICAgICAgICAgIC8qIFRha2UgdGhlIHBhZGRpbmcgb2ZmIHRoZSBjbG9jayBiZWNhdXNlIGl0J3MgYWNjb3VudGVkIGZvciBieSB0aGUgYHRpbWVsaW5lTGF5b3V0TWlkZGxlYCAqL1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qIENTUyBpbnNwaXJhdGlvbiBmcm9tOiAqL1xuLyogKiBodHRwczovL3d3dy53M3NjaG9vbHMuY29tL2hvd3RvL2hvd3RvX2pzX3Jhbmdlc2xpZGVyLmFzcCAqL1xuLyogKiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjgyODM4MDYgKi9cbi8qICogaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9zdHlsaW5nLWNyb3NzLWJyb3dzZXItY29tcGF0aWJsZS1yYW5nZS1pbnB1dHMtY3NzLyAqL1xuXG4ubXhfU2Vla0JhciB7XG4gICAgLyogZGVmYXVsdCwgb3ZlcnJpZGRlbiBpbiBKUyAqL1xuICAgIC0tZmlsbFRvOiAxO1xuXG4gICAgLyogRGV2IG5vdGU6IHdlIGRlbGliZXJhdGVseSBkbyBub3QgaGF2ZSB0aGUgLW1zLXRyYWNrIChhbmQgZnJpZW5kcykgc2VsZWN0b3JzIGJlY2F1c2Ugd2UgZG9uJ3QgKi9cbiAgICAvKiBuZWVkIHRvIHN1cHBvcnQgSUUuICovXG5cbiAgICBhcHBlYXJhbmNlOiBub25lOyAvKiBkZWZhdWx0IHN0eWxlIG92ZXJyaWRlICovXG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kOiAkcXVhdGVybmFyeS1jb250ZW50O1xuICAgIG91dGxpbmU6IG5vbmU7IC8qIHJlbW92ZSBibHVlIHNlbGVjdGlvbiBib3JkZXIgKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIGZvciBiZWZvcmUrYWZ0ZXIgcHNldWRvIGVsZW1lbnRzIGxhdGVyIG9uICovXG5cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOjotd2Via2l0LXNsaWRlci10aHVtYiB7XG4gICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7IC8qIGRlZmF1bHQgc3R5bGUgb3ZlcnJpZGUgKi9cblxuICAgICAgICAvKiBEZXYgbm90ZTogVGhpcyBuZWVkcyB0byBiZSBkdXBsaWNhdGVkIHdpdGggdGhlIC1tb3otcmFuZ2UtdGh1bWIgc2VsZWN0b3IgKi9cbiAgICAgICAgLyogYmVjYXVzZSBvdGhlcndpc2UgRWRnZSAod2Via2l0KSB3aWxsIGZhaWwgdG8gc2VlIHRoZSBzdHlsZXMgYW5kIGp1c3QgcmVmdXNlICovXG4gICAgICAgIC8qIHRvIGFwcGx5IHRoZW0uICovXG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgJjo6LW1vei1yYW5nZS10aHVtYiB7XG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgLyogRmlyZWZveCBhZGRzIGEgYm9yZGVyIG9uIHRoZSB0aHVtYiAqL1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuXG4gICAgLyogVGhpcyBpcyBmb3Igd2Via2l0IHN1cHBvcnQsIGJ1dCB3ZSBjYW4ndCBsaW1pdCB0aGUgZnVuY3Rpb25hbGl0eSBvZiBpdCB0byBqdXN0IHdlYmtpdCAqL1xuICAgIC8qIGJyb3dzZXJzLiBGaXJlZm94IHJlc3BvbmRzIHRvIHdlYmtpdC1wcmVmaXhlZCB2YWx1ZXMgbm93LCB3aGljaCBtZWFucyB3ZSBjYW4ndCB1c2UgbWVkaWEgKi9cbiAgICAvKiBvciBzdXBwb3J0IHF1ZXJpZXMgdG8gc2VsZWN0aXZlbHkgYXBwbHkgdGhlIHJ1bGUuIEFuIHVwc2lkZSBpcyB0aGF0IHRoaXMgQ1NTIGRvZXNuJ3Qgd29yayAqL1xuICAgIC8qIGluIGZpcmVmb3gsIHNvIGl0J3MganVzdCB3YXN0ZWQgQ1BVL0dQVSB0aW1lLiAqL1xuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIC8qIDo6YmVmb3JlIHRvIGVuc3VyZSBpdCBlbmRzIHVwIHVuZGVyIHRoZSB0aHVtYiAqL1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGVydGlhcnktY29udGVudDtcblxuICAgICAgICAvKiBBYnNvbHV0ZSBwb3NpdGlvbmluZyB0byBlbnN1cmUgaXQgb3ZlcmxhcHMgd2l0aCB0aGUgZXhpc3RpbmcgYmFyICovXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuXG4gICAgICAgIC8qIFNpemluZyB0byBtYXRjaCB0aGUgYmFyICovXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDFweDtcblxuICAgICAgICAvKiBBbmQgZmluYWxseSBkeW5hbWljIHdpZHRoIHdpdGhvdXQgb3Zlcmx5IGh1cnRpbmcgdGhlIHJlbmRlcmluZyBlbmdpbmUuICovXG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMTAwJTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgodmFyKC0tZmlsbFRvKSk7XG4gICAgfVxuXG4gICAgLyogVGhpcyBpcyBmaXJlZm94J3MgYnVpbHQtaW4gc3VwcG9ydCBmb3IgdGhlIGFib3ZlLCB3aXRoIDEwMCUgbGVzcyBoYWNrcy4gKi9cbiAgICAmOjotbW96LXJhbmdlLXByb2dyZXNzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgIH1cblxuICAgICY6ZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxuXG4gICAgLyogSW5jcmVhc2UgY2xpY2thYmxlIGFyZWEgZm9yIHRoZSBzbGlkZXIgKGFwcHJveGltYXRlbHkgc2FtZSBzaXplIGFzIGJyb3dzZXIgZGVmYXVsdCkgKi9cbiAgICAvKiBXZSBkbyBpdCB0aGlzIHdheSB0byBrZWVwIHRoZSBzYW1lIHBhZGRpbmcgYW5kIG1hcmdpbnMgb2YgdGhlIGVsZW1lbnQsIGF2b2lkaW5nIG1hcmdpbiBtYXRoLiAqL1xuICAgIC8qIFNvdXJjZTogaHR0cHM6Ly9mcm9udC1iYWNrLmNvbS9leHBhbmQtY2xpY2thYmxlLWFyZWFzLWZvci1hLWJldHRlci10b3VjaC1leHBlcmllbmNlLyAqL1xuICAgICY6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC02cHg7XG4gICAgICAgIGJvdHRvbTogLTZweDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1dhdmVmb3JtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAzMHB4OyAvKiB0YWxsZXN0IGJhciBjYW4gb25seSBiZSAzMHB4ICovXG4gICAgdG9wOiAxcHg7IC8qIGJlY2F1c2Ugb2Ygb3VyIGJvcmRlciB0cmljayAoc2VlIGJlbG93KSwgd2UncmUgb2ZmIGJ5IDFweCBvZiBhbGlnbnRtZW50ICovXG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIHNvIHRoZSBiYXJzIGdyb3cgZnJvbSB0aGUgbWlkZGxlICovXG5cbiAgICBvdmVyZmxvdzogaGlkZGVuOyAvKiB0aGlzIGlzIGNoZWFwZXIgdGhhbiBhIGBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSA0cHgpYCBpbiB0aGUgYmFyJ3MgQ1NTLiAqL1xuXG4gICAgLyogQSBiYXIgaXMgbWVhbnQgdG8gYmUgYSAyeDIgY2lyY2xlIHdoZW4gYXQgemVybyBoZWlnaHQsIGFuZCBvdGhlcndpc2UgYSAycHggd2lkZSBsaW5lICovXG4gICAgLyogd2l0aCByb3VuZGVkIGNhcHMuICovXG4gICAgLm14X1dhdmVmb3JtX2JhciB7XG4gICAgICAgIHdpZHRoOiAwOyAvKiAwcHggd2lkdGggbWVhbnMgd2UnbGwgZW5kIHVwIHVzaW5nIHRoZSBib3JkZXIgYXMgb3VyIHdpZHRoICovXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OyAvKiB0cmFuc3BhcmVudCBtZWFucyB3ZSdsbCB1c2UgdGhlIGJhY2tncm91bmQgY29sb3VyICovXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDsgLyogcm91bmRlZCBlbmQgY2FwcywgYmFzZWQgb24gdGhlIGJvcmRlciAqL1xuICAgICAgICBtaW4taGVpZ2h0OiAwOyAvKiBsaWtlIHRoZSB3aWR0aCwgd2UnbGwgcmVseSBvbiB0aGUgYm9yZGVyIHRvIGdpdmUgdXMgaGVpZ2h0ICovXG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7IC8qIHRoaXMgbWFrZXMgdGhlIGBoZWlnaHQ6IDQyJWAgd29yayBvbiB0aGUgZWxlbWVudCAqL1xuICAgICAgICBtYXJnaW4tbGVmdDogMXB4OyAvKiB3ZSB3YW50IDJweCBiZXR3ZWVuIGVhY2ggYmFyLCBzbyAxcHggb24gZWl0aGVyIHNpZGUgZm9yIGJhbGFuY2UgKi9cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcHg7XG5cbiAgICAgICAgLyogYmFja2dyb3VuZCBjb2xvciBpcyBoYW5kbGVkIGJ5IHRoZSBwYXJlbnQgY29tcG9uZW50cyAqL1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxOSBOZXcgVmVjdG9yIEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQXV0aEJvZHkge1xuICAgIHdpZHRoOiA1MDBweDtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgY29sb3I6ICRhdXRocGFnZS1zZWNvbmRhcnktY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXJhZGl1czogMCB2YXIoLS1jcGQtc3BhY2UtNngpIHZhcigtLWNwZC1zcGFjZS02eCkgMDtcbiAgICBwYWRkaW5nOiAyNXB4IDYwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIHN0cm9uZyB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIH1cblxuICAgICYubXhfQXV0aEJvZHlfZmxleCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgaDEge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTI0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBjb2xvcjogJGF1dGhwYWdlLXByaW1hcnktY29sb3I7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXNlbWlib2xkKTtcbiAgICAgICAgY29sb3I6ICRhdXRocGFnZS1zZWNvbmRhcnktY29sb3I7XG4gICAgfVxuXG4gICAgaDIubXhfQXV0aEJvZHlfY2VudGVyZWQge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgYTpsaW5rLFxuICAgIGE6aG92ZXIsXG4gICAgYTp2aXNpdGVkIHtcbiAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICBmaWVsZHNldCB7XG4gICAgICAgIC8qIFJlc2V0IHRoZSBicm93c2VyIGRlZmF1bHQgPGZpZWxkc2V0PiBzdHlsaW5nICovXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4taW5saW5lOiB1bnNldDtcbiAgICAgICAgcGFkZGluZy1ibG9jazogdW5zZXQ7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiB1bnNldDtcbiAgICAgICAgbWluLWlubGluZS1zaXplOiB1bnNldDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cblxuICAgIC5teF9BdXRoQm9keV9pY29uIHtcbiAgICAgICAgd2lkdGg6IDQ0cHg7XG4gICAgICAgIGhlaWdodDogNDRweDtcbiAgICB9XG5cbiAgICAubXhfQXV0aEJvZHlfbG9ja0ljb24ge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIHdpZHRoOiAzMnB4O1xuICAgIH1cblxuICAgIC5teF9BdXRoQm9keV90ZXh0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTEyeCk7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4gICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcbiAgICAgICAgY29sb3I6ICRhdXRocGFnZS1wcmltYXJ5LWNvbG9yO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0ZpZWxkIGxhYmVsIHtcbiAgICAgICAgY29sb3I6ICRhdXRocGFnZS1zZWNvbmRhcnktY29sb3I7XG4gICAgfVxuXG4gICAgLm14X0ZpZWxkIGlucHV0LFxuICAgIC5teF9GaWVsZCBzZWxlY3Qge1xuICAgICAgICBjb2xvcjogJGF1dGhwYWdlLXByaW1hcnktY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIC5teF9GaWVsZF9sYWJlbEFsd2F5c1RvcExlZnQgbGFiZWwsXG4gICAgLm14X0ZpZWxkIHNlbGVjdCArIGxhYmVsIC8qIEFsd2F5cyBzaG93IGEgc2VsZWN0J3MgbGFiZWwgb24gdG9wIHRvIG5vdCBjb2xsaWRlIHdpdGggdGhlIHZhbHVlICovLFxuICAgIC5teF9GaWVsZCBpbnB1dDpmb2N1cyArIGxhYmVsLFxuICAgIC5teF9GaWVsZCBpbnB1dDpub3QoOnBsYWNlaG9sZGVyLXNob3duKSArIGxhYmVsLFxuICAgIC5teF9GaWVsZCB0ZXh0YXJlYTpmb2N1cyArIGxhYmVsLFxuICAgIC5teF9GaWVsZCB0ZXh0YXJlYTpub3QoOnBsYWNlaG9sZGVyLXNob3duKSArIGxhYmVsIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgaW5wdXQuZXJyb3Ige1xuICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgIH1cblxuICAgIC5teF9Mb2dpbl9zdWJtaXQge1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxuXG4gICAgLm14X0Vycm9yTWVzc2FnZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICB9XG5cbiAgICAubXhfRmllbGQgaW5wdXQge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cblxuICAgIC5teF9GaWVsZF9zZWxlY3Q6OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhdXRocGFnZS1wcmltYXJ5LWNvbG9yO1xuICAgIH1cblxuICAgIC5teF9Ecm9wZG93biB7XG4gICAgICAgIGNvbG9yOiAkYXV0aHBhZ2UtcHJpbWFyeS1jb2xvcjtcbiAgICB9XG5cbiAgICAubXhfRHJvcGRvd25fYXJyb3cge1xuICAgICAgICBjb2xvcjogJGF1dGhwYWdlLXByaW1hcnktY29sb3I7XG4gICAgfVxuXG4gICAgLm14X0Ryb3Bkb3duX21lbnUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICAgICAgICAubXhfRHJvcGRvd25fb3B0aW9uX2hpZ2hsaWdodCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXV0aHBhZ2UtZm9jdXMtYmctY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIHNwZWNpYWxpc2F0aW9uIGZvciBwYXNzd29yZCByZXNldCB2aWV3cyAqL1xuLm14X0F1dGhCb2R5Lm14X0F1dGhCb2R5X2ZvcmdvdC1wYXNzd29yZCB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBwYWRkaW5nOiA1MHB4IDMycHg7XG4gICAgbWluLWhlaWdodDogNjAwcHg7XG5cbiAgICBoMSB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTZ4KSAwO1xuICAgIH1cblxuICAgIC5teF9BdXRoQm9keV9idXR0b24tY29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm14X0xvZ2luX3N1Ym1pdCB7XG4gICAgICAgIG1hcmdpbjogMCAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxuXG4gICAgLm14X0F1dGhCb2R5X3RleHQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9BdXRoQm9keV9zaWduLWluLWluc3RlYWQtYnV0dG9uIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgfVxuXG4gICAgLm14X0F1dGhCb2R5X2ZpZWxkUm93IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICB9XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbi5teF9BY2Nlc3NpYmxlQnV0dG9uX2hhc0tpbmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICY6ZGlzYWJsZWQge1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfQXV0aEJvZHlfZGlkLW5vdC1yZWNlaXZlIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9BdXRoQm9keV9yZXNlbmQtYnV0dG9uIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBjb2xvcjogJGFjY2VudDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzeXN0ZW07XG4gICAgfVxufVxuXG4ubXhfQXV0aEJvZHlfZW1haWxQcm9tcHRJY29uIHtcbiAgICB3aWR0aDogNTdweDtcbn1cblxuLm14X0F1dGhCb2R5X2VtYWlsUHJvbXB0SWNvbi0tc2hpZnRlZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogLTE3cHg7IC8qIFByZXZlbnQgbGF5b3V0IGp1bXAgYnkgcmVsYXRpdmUgcG9zaXRpb25pbmcuICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTE3cHg7IC8qIFRoaXMgaWNvbiBpcyBoaWdoZXIgdGhhbiB0aGUgb3RoZXIgaWNvbnMuIFNoaWZ0IHVwIHRvIHByZXZlbnQgaWNvbiBqdW1waW5nLiAqL1xuICAgIHdpZHRoOiA1N3B4O1xufVxuXG4ubXhfQXV0aEJvZHlfZmllbGRSb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLm14X0F1dGhCb2R5X2ZpZWxkUm93ID4gLm14X0ZpZWxkIHtcbiAgICBtYXJnaW46IDAgNXB4O1xufVxuXG4ubXhfQXV0aEJvZHlfZmllbGRSb3cgPiAubXhfRmllbGQ6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4ubXhfQXV0aEJvZHlfZmllbGRSb3cgPiAubXhfRmllbGQ6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4ubXhfQXV0aEJvZHlfcGFkZGVkRm9vdGVyIHtcbiAgICBoZWlnaHQ6IDgwcHg7IC8qIGhlaWdodCBvZiB0aGUgc3VibWl0IGJ1dHRvbiArIHJlZ2lzdGVyIGxpbmsgKi9cbiAgICBwYWRkaW5nLXRvcDogMjhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAubXhfQXV0aEJvZHlfcGFkZGVkRm9vdGVyX3RpdGxlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcblxuICAgICAgICAubXhfSW5saW5lU3Bpbm5lciBzdmcge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHN1YjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0F1dGhCb2R5X3BhZGRlZEZvb3Rlcl9zdWJ0aXRsZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE0cHg7XG4gICAgfVxufVxuXG4ubXhfQXV0aEJvZHlfY2hhbmdlRmxvdyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgPiBhIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxufVxuXG4ubXhfU1NPQnV0dG9ucyArIC5teF9BdXRoQm9keV9jaGFuZ2VGbG93IHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xufVxuXG4ubXhfQXV0aEJvZHlfc3Bpbm5lciB7XG4gICAgbWFyZ2luOiAxZW0gMDtcbn1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuICAgIC5teF9BdXRoQm9keSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1heC13aWR0aDogNTAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BdXRoRm9vdGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBvcGFjaXR5OiAwLjcyO1xuICAgIHBhZGRpbmc6IDIwcHggMDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiKDAsIDAsIDAsIDApLCByZ2IoMCwgMCwgMCwgMC44KSk7XG59XG5cbi5teF9BdXRoRm9vdGVyIGE6bGluayxcbi5teF9BdXRoRm9vdGVyIGE6aG92ZXIsXG4ubXhfQXV0aEZvb3RlciBhOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAkYWNjZW50LWZnLWNvbG9yO1xuICAgIG1hcmdpbjogMCAyMnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BdXRoSGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgd2lkdGg6IDIwNnB4O1xuICAgIHBhZGRpbmc6IDI1cHggMjVweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgLm14X0F1dGhIZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQXV0aEhlYWRlckxvZ28ge1xuICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgZmxleDogMTtcbiAgICBwYWRkaW5nOiAwIDI1cHg7XG59XG5cbi5teF9BdXRoSGVhZGVyTG9nbyBpbWcge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgLm14X0F1dGhIZWFkZXJMb2dvIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0F1dGhQYWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXV0aHBhZ2UtYmctY29sb3I7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLm14X0F1dGhQYWdlX21vZGFsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbjogMTAwcHggYXV0byBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGF1dGhwYWdlLW1vZGFsLWJnLWNvbG9yO1xuXG4gICAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LWhlaWdodDogNzY4cHgpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNTBweDtcbiAgICB9XG5cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgJi5teF9BdXRoUGFnZV9tb2RhbF93aXRoQmx1ciB7XG4gICAgICAgIC8qIEFwcGx5IGEgYmx1cnJlZCBzaGFkb3cgYXJvdW5kIHRoZSBtb2RhbCAqL1xuICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggMCByZ2IoMCwgMCwgMCwgMC4zMyk7XG5cbiAgICAgICAgLm14X0F1dGhQYWdlX21vZGFsQ29udGVudCB7XG4gICAgICAgICAgICAvKiBNYWtlIHRoZSBtb2RhbCdzIGJhY2tncm91bmQgc2VtaXRyYW5zcGFyZW50ICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXV0aHBhZ2UtbW9kYWwtY29udGVudC13aXRoLWJsdXItYmctY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTkgTmV3IFZlY3RvciBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NvbXBsZXRlU2VjdXJpdHlCb2R5IHtcbiAgICBjb2xvcjogJGF1dGhwYWdlLXByaW1hcnktY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBwYWRkaW5nOiAyMHB4IDIwcHggNjBweCAyMHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMjRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgaDMge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXNlbWlib2xkKTtcbiAgICB9XG5cbiAgICBhOmxpbmssXG4gICAgYTpob3ZlcixcbiAgICBhOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ291bnRyeURyb3Bkb3duIC5teF9Ecm9wZG93bl9pbnB1dCAubXhfRHJvcGRvd25fb3B0aW9uIHtcbiAgICBwYWRkaW5nOiAwIDNweDtcbn1cblxuLm14X0NvdW50cnlEcm9wZG93biAubXhfRHJvcGRvd25fYXJyb3cge1xuICAgIHBhZGRpbmctcmlnaHQ6IDNweDtcbn1cblxuLm14X0NvdW50cnlEcm9wZG93bl9zaG9ydE9wdGlvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5teF9Db3VudHJ5RHJvcGRvd25fb3B0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjYgRWxlbWVudCBDcmVhdGlvbnMgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGVmYXVsdFdlbGNvbWUge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5teF9EZWZhdWx0V2VsY29tZV9sb2dvIGltZyB7XG4gICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuXG4gICAgaDEge1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS00eCkgMCB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICB9XG5cbiAgICAubXhfRGVmYXVsdFdlbGNvbWVfYnV0dG9ucyB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTZ4KSAwIHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLXNlcGFyYXRvci1wcmltYXJ5KTtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIHdpZHRoOiAzODBweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9XZWxjb21lUGFnZV9yZWdpc3RyYXRpb25EaXNhYmxlZCB7XG4gICAgLm14X0RlZmF1bHRXZWxjb21lX2J1dHRvbnNfcmVnaXN0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNyBWZWN0b3IgQ3JlYXRpb25zIEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzIHtcbiAgICAubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX3Rlcm1zU3VibWl0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogcHJldmVudCBvdmVyZmxvd2luZyAqL1xuICAgIH1cbn1cblxuLm14X0ludGVyYWN0aXZlQXV0aEVudHJ5Q29tcG9uZW50c19tc2lzZG5XcmFwcGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teF9JbnRlcmFjdGl2ZUF1dGhFbnRyeUNvbXBvbmVudHNfbXNpc2RuRW50cnkge1xuICAgIGZvbnQtc2l6ZTogMjAwJTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkc3Ryb25nLWlucHV0LWJvcmRlci1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgd2lkdGg6IDZlbTtcbn1cblxuLm14X0ludGVyYWN0aXZlQXV0aEVudHJ5Q29tcG9uZW50c19tc2lzZG5FbnRyeTpmb2N1cyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudDtcbn1cblxuLm14X0ludGVyYWN0aXZlQXV0aEVudHJ5Q29tcG9uZW50c19tc2lzZG5TdWJtaXQge1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi8qIFhYWDogVGhpcyBzaG91bGQgYmUgYSBjb21tb24gYnV0dG9uIGNsYXNzICovXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX21zaXNkblN1Ym1pdDpkaXNhYmxlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxpZ2h0LWZnLWNvbG9yO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLm14X0ludGVyYWN0aXZlQXV0aEVudHJ5Q29tcG9uZW50c190ZXJtc1BvbGljeSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX3Bhc3N3b3JkU2VjdGlvbiB7XG4gICAgd2lkdGg6IDMwMHB4O1xufVxuXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX3Nzb19idXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIH1cbn1cblxuLm14X0ludGVyYWN0aXZlQXV0aEVudHJ5Q29tcG9uZW50c19lbWFpbFdyYXBwZXIge1xuICAgIC8qIFwiUmVzZW5kXCIgYnV0dG9uL2xpbmsgKi9cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfaW5saW5lIHtcbiAgICAgICAgLyogV2UgbmVlZCB0aGlzIHRvIGJlIGFuIGlubGluZS1ibG9jayBzbyBwb3NpdGlvbmluZyB3b3JrcyBjb3JyZWN0bHkgKi9cbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgLyogU3Bpbm5lciBhcyBlbmQgYWRvcm5tZW50IG9mIHRoZSBcInJlc2VuZFwiIGJ1dHRvbi9saW5rICovXG4gICAgICAgIC5teF9TcGlubmVyIHtcbiAgICAgICAgICAgIC8qIFNwaW5uZXJzIGFyZSB1c3VhbGx5IGJsb2NrIGVsZW1lbnRzLCBidXQgd2UgbmVlZCBpdCBhcyBpbmxpbmUgZWxlbWVudCAqL1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgICAgICAgICAgIC8qIFNwaW5uZXJzIGJ5IGRlZmF1bHQgZmlsbCBhbGwgYXZhaWxhYmxlIHdpZHRoLCBidXQgd2UgZG9uJ3Qgd2FudCB0aGF0ICovXG4gICAgICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICAgICAgLyogV2UgbmVlZCB0byBjZW50ZXIgdGhlIHNwaW5uZXIgcmVsYXRpdmUgdG8gdGhlIGJ1dHRvbi9saW5rICovXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0F1dGhCb2R5X2xhbmd1YWdlIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLm14X0F1dGhCb2R5X2xhbmd1YWdlIC5teF9Ecm9wZG93bl9pbnB1dCB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgIGNvbG9yOiAkYXV0aHBhZ2UtbGFuZy1jb2xvcjtcbiAgICB3aWR0aDogYXV0bztcbn1cblxuLm14X0F1dGhCb2R5X2xhbmd1YWdlIC5teF9Ecm9wZG93bl9hcnJvdyB7XG4gICAgY29sb3I6ICRhdXRocGFnZS1sYW5nLWNvbG9yO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xvZ2luV2l0aFFSU2VjdGlvbiBwIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG5cbi5teF9Mb2dpbldpdGhRUlNlY3Rpb24ge1xuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeSArIHAge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICB9XG59XG5cbi5teF9Mb2dpbldpdGhRUlNlY3Rpb24gLm14X0FjY2Vzc2libGVCdXR0b24gc3ZnIHtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG59XG5cbi5teF9Mb2dpbldpdGhRUl9kaWFsb2cgLm14X0RpYWxvZyB7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTEyeCkgdmFyKC0tY3BkLXNwYWNlLTEyeCkgdmFyKC0tY3BkLXNwYWNlLTEweCk7XG5cbiAgICAubXhfTG9naW5XaXRoUVIge1xuICAgICAgICB3aWR0aDogNTAwcHg7XG4gICAgfVxufVxuXG4ubXhfTG9naW5XaXRoUVIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtaW4taGVpZ2h0OiA1MDBweDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuXG4gICAgaDEge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTI0cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9xcldyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtN3gpIDA7XG5cbiAgICAgICAgLm14X1NwaW5uZXIge1xuICAgICAgICAgICAgLyogTWF0Y2ggdGhlIHNpemUgb2YgdGhlIFFSIGNvZGUgdG8gcHJldmVudCBqdW1wcyAqL1xuICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9jb25maXJtYXRpb25EaWdpdHMge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTEyeCkgYXV0bztcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMjRweDtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0xvZ2luV2l0aFFSX2NvbmZpcm1hdGlvbkFsZXJ0IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHF1YXRlcm5hcnktY29udGVudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTG9naW5XaXRoUVJfc2VwYXJhdG9yIHtcbiAgICAgICAgbWFyZ2luOiAxZW0gMDtcbiAgICB9XG5cbiAgICBvbCB7XG4gICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lOyAvKiBsaXN0IG1hcmtlcnMgZG8gbm90IHN1cHBvcnQgdGhlIG91dGxpbmVkIG51bWJlciBzdHlsaW5nIHdlIG5lZWQgKi9cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS03eCk7XG4gICAgICAgICAgICBjb2xvcjogMXB4IHNvbGlkICRpbnB1dC1wbGFjZWhvbGRlcjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGluaXRpYWw7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBDaXJjbGVkIG51bWJlciBsaXN0IGl0ZW0gbWFya2VyICovXG4gICAgICAgIGxpOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogY291bnRlcihsaXN0LWl0ZW0pO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5wdXQtcGxhY2Vob2xkZXI7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGFiZWxbZm9yPVwibXhfTG9naW5XaXRoUVJfY2hlY2tDb2RlXCJdIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9jaGVja0NvZGVfaW5wdXQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICB0ZXh0LWFsaWduOiBpbml0aWFsO1xuXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIC8qIFdvcmthcm91bmQgZm9yIG9uZSBvZiB0aGUgaW5wdXQgcnVsZXMgaW4gX2NvbW1vbi5wY3NzIGJlaW5nIG5vdCBzcGVjaWZpYyBlbm91Z2ggKi9cbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogY2FsYyg0MHB4IC8gMiAtICgxY2ggLyAyKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTG9naW5XaXRoUVJfaGVhZGluZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubXhfTG9naW5XaXRoUVJfQmFja0J1dHRvbiB7XG4gICAgICAgIGhlaWdodDogdmFyKC0tY3BkLXNwYWNlLTd4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTd4KTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1zZWNvbmRhcnkpO1xuICAgICAgICBzdmcge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0xvZ2luV2l0aFFSX2JyZWFkY3J1bWJzIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xM3B4O1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9tYWluIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTG9naW5XaXRoUVJfYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogMzAwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1FSQ29kZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9zcGlubmVyIHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbiRQYXNzcGhyYXNlU3RyZW5ndGhIaWdoOiAkYWNjZW50O1xuJFBhc3NwaHJhc2VTdHJlbmd0aE1lZGl1bTogJHVzZXJuYW1lLXZhcmlhbnQ1LWNvbG9yO1xuJFBhc3NwaHJhc2VTdHJlbmd0aExvdzogJGFsZXJ0O1xuXG5wcm9ncmVzcy5teF9QYXNzcGhyYXNlRmllbGRfcHJvZ3Jlc3Mge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGhlaWdodDogNHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xMHB4O1xuICAgIGxlZnQ6IDA7XG5cbiAgICBAbWl4aW4gUHJvZ3Jlc3NCYXJCb3JkZXJSYWRpdXMgXCIycHhcIjtcbiAgICBAbWl4aW4gUHJvZ3Jlc3NCYXJDb2xvdXIgJFBhc3NwaHJhc2VTdHJlbmd0aExvdztcbiAgICAmW3ZhbHVlPVwiMlwiXSxcbiAgICAmW3ZhbHVlPVwiM1wiXSB7XG4gICAgICAgIEBtaXhpbiBQcm9ncmVzc0JhckNvbG91ciAkUGFzc3BocmFzZVN0cmVuZ3RoTWVkaXVtO1xuICAgIH1cbiAgICAmW3ZhbHVlPVwiNFwiXSB7XG4gICAgICAgIEBtaXhpbiBQcm9ncmVzc0JhckNvbG91ciAkUGFzc3BocmFzZVN0cmVuZ3RoSGlnaDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1dlbGNvbWUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMTF4KSB2YXIoLS1jcGQtc3BhY2UtMTJ4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuXG4gICAgJi5teF9XZWxjb21lUGFnZV9yZWdpc3RyYXRpb25EaXNhYmxlZCB7XG4gICAgICAgIC5teF9CdXR0b25DcmVhdGVBY2NvdW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9XZWxjb21lIC5teF9BdXRoQm9keV9sYW5ndWFnZSB7XG4gICAgd2lkdGg6IDE2MHB4O1xuICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTF4KSAwO1xufVxuXG4vKiBJbnZlcnQgaW1hZ2UgY29sb3VycyBpbiBkYXJrIG1vZGUuICovXG4uY3BkLXRoZW1lLWRhcmsgLm14X1dlbGNvbWVQYWdlX2xvZ28ge1xuICAgIGZpbHRlcjogaW52ZXJ0KDEpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuYnV0dG9uLm14X0Jhc2VBdmF0YXIge1xuICAgIC8qIDxidXR0b24+IGlzIGEgZm9ybSBlbGVtZW50IGFuZCBieSBkZWZhdWx0IGl0IHVzZXMgdGhlIHVzZXIgYWdlbnQgKGJyb3dzZXIpIHN0eWxpbmcuXG4gICAgICAgV2Ugd2FudCBpdCB0byBpbmhlcml0IHRoZSBmb250LWZhbWlseSBhbmQgbGluZS1oZWlnaHQgZnJvbSBpdHMgcGFyZW50LlxuICAgICAqL1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RlY29yYXRlZFJvb21BdmF0YXIsXG4ubXhfRXh0cmFUaWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29udGFpbjogY29udGVudDtcbiAgICBsaW5lLWhlaWdodDogMDtcblxuICAgICYubXhfRGVjb3JhdGVkUm9vbUF2YXRhcl9jdXRvdXQgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICBtYXNrLWltYWdlOiB1cmwoXCIvcmVzL2ltZy9lbGVtZW50LWljb25zL3Jvb21saXN0L2RlY29yYXRlZC1hdmF0YXItbWFzay5zdmdcIik7XG4gICAgICAgIG1hc2stcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgbWFzay1zaXplOiBjb250YWluO1xuICAgICAgICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIH1cblxuICAgIC5teF9EZWNvcmF0ZWRSb29tQXZhdGFyX2ljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIC8qIHRoZSBmb2xsb3dpbmcgcGVyY2VudGFnZSBiYXNlZCBzaXppbmdzIGFyZSB0byBtYXRjaCB0aGUgc2NhbGFibGUgc3ZnIG1hc2sgZm9yIHRoZSBjdXRvdXQgKi9cbiAgICAgICAgYm90dG9tOiA2LjI1JTsgLyogMnB4IGZvciBhIDMyeDMyIGF2YXRhciAqL1xuICAgICAgICByaWdodDogNi4yNSU7XG4gICAgICAgIHdpZHRoOiAyNSU7IC8qIDhweCBmb3IgYSAzMngzMiBhdmF0YXIgKi9cbiAgICAgICAgaGVpZ2h0OiAyNSU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0RlY29yYXRlZFJvb21BdmF0YXJfaWNvbl9nbG9iZSBzdmcge1xuICAgICAgICAvKiBPdmVyc2l6ZSB0aGUgaWNvbiB0byBhY2NvdW50IGZvciB0aGUgZGVhZCBzcGFjZSBhcm91bmQgdGhlIGljb24gd2l0aGluIHRoZSBjYW52YXMgKi9cbiAgICAgICAgd2lkdGg6IDEyMCU7XG4gICAgICAgIGhlaWdodDogMTIwJTtcbiAgICAgICAgbWFyZ2luOiAtMTAlO1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9EZWNvcmF0ZWRSb29tQXZhdGFyX2ljb25fb2ZmbGluZTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByZXNlbmNlLW9mZmxpbmU7XG4gICAgfVxuXG4gICAgLm14X0RlY29yYXRlZFJvb21BdmF0YXJfaWNvbl9vbmxpbmU6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG4gICAgfVxuXG4gICAgLm14X0RlY29yYXRlZFJvb21BdmF0YXJfaWNvbl9hd2F5OjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJlc2VuY2UtYXdheTtcbiAgICB9XG5cbiAgICAubXhfRGVjb3JhdGVkUm9vbUF2YXRhcl9pY29uX2J1c3k6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmVzZW5jZS1idXN5O1xuICAgIH1cblxuICAgIC5teF9EZWNvcmF0ZWRSb29tQXZhdGFyX25vdGlmaWNhdGlvbkJhZGdlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgIH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1Jvb21BdmF0YXJWaWV3IHtcbiAgICAtLXJvb20tYXZhdGFyLXNpemU6IDMycHg7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvKiBLZWVwIHRoZSBjb250YWluZXIgdG8gdGhlIHNhbWUgc2l6ZSB0aGFuIHRoZSBhdmF0YXIgKi9cbiAgICBpbmxpbmUtc2l6ZTogdmFyKC0tcm9vbS1hdmF0YXItc2l6ZSk7XG4gICAgYmxvY2stc2l6ZTogdmFyKC0tcm9vbS1hdmF0YXItc2l6ZSk7XG5cbiAgICAubXhfUm9vbUF2YXRhclZpZXdfUm9vbUF2YXRhciB7XG4gICAgICAgIG1hc2stcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgbWFzay1zaXplOiBjb250YWluO1xuICAgICAgICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAubXhfUm9vbUF2YXRhclZpZXdfUm9vbUF2YXRhcl9pY29uIHtcbiAgICAgICAgbWFzay1pbWFnZTogdXJsKFwiL3Jlcy9pbWcvZWxlbWVudC1pY29ucy9yb29tbGlzdC9yb29tLWF2YXRhci12aWV3LWljb24tbWFzay5zdmdcIik7XG4gICAgfVxuXG4gICAgLm14X1Jvb21BdmF0YXJWaWV3X1Jvb21BdmF0YXJfcHJlc2VuY2Uge1xuICAgICAgICBtYXNrLWltYWdlOiB1cmwoXCIvcmVzL2ltZy9lbGVtZW50LWljb25zL3Jvb21saXN0L3Jvb20tYXZhdGFyLXZpZXctcHJlc2VuY2UtbWFzay5zdmdcIik7XG4gICAgfVxuXG4gICAgLm14X1Jvb21BdmF0YXJWaWV3X2ljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgLyogUGxhY2UgaGFsZiB0aGUgaWNvbiBpbnNpZGUgdGhlIGF2YXRhciAqL1xuICAgICAgICAvKiBBdmF0YXIgc2l6ZSAtIChpY29uIHNpemUgKDE2cHgpIC8gMikgKi9cbiAgICAgICAgbGVmdDogY2FsYygodmFyKC0tcm9vbS1hdmF0YXItc2l6ZSkgLSA4cHgpKTtcbiAgICAgICAgYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG4gICAgfVxuXG4gICAgLm14X1Jvb21BdmF0YXJWaWV3X1ByZXNlbmNlRGVjb3JhdGlvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAvKiBQbGFjZSBoYWxmIHRoZSBpY29uIGluc2lkZSB0aGUgYXZhdGFyICovXG4gICAgICAgIC8qIEF2YXRhciBzaXplIC0gKGljb24gc2l6ZSAoOHB4KSAvIDIpICovXG4gICAgICAgIGxlZnQ6IGNhbGMoKHZhcigtLXJvb20tYXZhdGFyLXNpemUpIC0gNHB4KSk7XG4gICAgICAgIGJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9XaWRnZXRBdmF0YXIge1xuICAgIC8qICFpbXBvcnRhbnQgb3ZlcnJpZGUgY29tcG91bmQgYXZhdGFyICovXG4gICAgYm9yZGVyLXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfV2l0aFByZXNlbmNlSW5kaWNhdG9yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29udGFpbjogY29udGVudDtcbiAgICBsaW5lLWhlaWdodDogMDtcblxuICAgIC5teF9XaXRoUHJlc2VuY2VJbmRpY2F0b3JfaWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgYm90dG9tOiAycHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0JldGFDYXJkIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwYW5lbHM7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgIC5teF9CZXRhQ2FyZF9jb2x1bW5zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiB3cmFwO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS01eCk7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIC5teF9CZXRhQ2FyZF9jb2x1bW5zX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG5cbiAgICAgICAgICAgIC5teF9CZXRhQ2FyZF90aXRsZSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xOHB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMnB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTF4KSAwIDE0cHg7XG5cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgY29sdW1uLWdhcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0JldGFDYXJkX2NhcHRpb24ge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0JldGFDYXJkX2J1dHRvbnMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2U7XG4gICAgICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTV4KSBhdXRvIDA7XG5cbiAgICAgICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDdweCA0MHB4O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLyogdGV4dCBtaWdodCBvdmVyZmxvdyAqL1xuXG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyOiAyOyAvKiBQbGFjZSBmZWVkYmFjayBidXR0b24gdG9wIGFuZCByaWdodCAqL1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfQmV0YUNhcmRfcmVmcmVzaFdhcm5pbmcge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMHB4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0JldGFDYXJkX2ZhcSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXhzLXJlZ3VsYXIpO1xuXG4gICAgICAgICAgICAgICAgPiBoNCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTN4KSAwIDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPiBwIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9CZXRhQ2FyZF9jb2x1bW5zX2ltYWdlX3dyYXBwZXIge1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvIDA7XG5cbiAgICAgICAgICAgIC5teF9CZXRhQ2FyZF9jb2x1bW5zX2ltYWdlIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9CZXRhQ2FyZF9yZWxhdGVkU2V0dGluZ3Mge1xuICAgICAgICAubXhfU2V0dGluZ3NGbGFnIHtcbiAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTR4KSAwIDA7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICAubXhfU2V0dGluZ3NGbGFnX21pY3JvY29weSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfQmV0YUNhcmRfYmV0YVBpbGwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQtYWx0O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCkgMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gICAgY29sb3I6ICRidXR0b24tcHJpbWFyeS1mZy1jb2xvcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICAgIHdvcmQtYnJlYWs6IGtlZXAtYWxsOyAvKiBhdm9pZCBtdWx0aXBsZSBsaW5lcyBvbiBDSksgbGFuZ3VhZ2UgKi9cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZXZpY2VDb250ZXh0TWVudSB7XG4gICAgbWF4LXdpZHRoOiAyNTJweDtcblxuICAgIC5teF9JY29uaXplZENvbnRleHRNZW51X2xhYmVsIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAtMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKiBBIGNvbnRleHQgbWVudSB0aGF0IGxhcmdlbHkgZml0cyB0aGUgfCBbaWNvbl0gICAgW2xhYmVsXSB8IGZvcm1hdC4gKi9cbi5teF9JY29uaXplZENvbnRleHRNZW51IHtcbiAgICBtaW4td2lkdGg6IDE0NnB4O1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAvKiBvdmVycmlkZSBkZWZhdWx0IHVsIHN0eWxlcyAqL1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgLm14X0ljb25pemVkQ29udGV4dE1lbnVfb3B0aW9uTGlzdCB7XG4gICAgICAgICYgPiAqIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9vcHRpb25MaXN0X2xhYmVsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogdGhlIG5vdEZpcnN0IGNsYXNzIGlzIGZvciBjYXNlcyB3aGVyZSB0aGUgb3B0aW9uTGlzdCBtaWdodCBiZSB1bmRlciBhIGhlYWRlciBvZiBzb3J0cy4gKi9cbiAgICAgICAgJjpudGgtY2hpbGQobiArIDIpLFxuICAgICAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9vcHRpb25MaXN0X25vdEZpcnN0IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQgdmFyKC0tY3BkLWNvbG9yLWdyYXktNDAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHJvdW5kIHRoZSB0b3AgY29ybmVycyBvZiB0aGUgdG9wIGJ1dHRvbiBmb3IgdGhlIGhvdmVyIGVmZmVjdCB0byBiZSBib3VuZGVkICovXG4gICAgICAgICY6Zmlyc3QtY2hpbGQgLm14X0ljb25pemVkQ29udGV4dE1lbnVfaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHggOHB4IDAgMDsgLyogcmFkaXVzIG1hdGNoZXMgLm14X0NvbnRleHR1YWxNZW51ICovXG4gICAgICAgIH1cblxuICAgICAgICAvKiByb3VuZCB0aGUgYm90dG9tIGNvcm5lcnMgb2YgdGhlIGJvdHRvbSBidXR0b24gZm9yIHRoZSBob3ZlciBlZmZlY3QgdG8gYmUgYm91bmRlZCAqL1xuICAgICAgICAmOmxhc3QtY2hpbGQgLm14X0ljb25pemVkQ29udGV4dE1lbnVfaXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCA4cHggOHB4OyAvKiByYWRpdXMgbWF0Y2hlcyAubXhfQ29udGV4dHVhbE1lbnUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHJvdW5kIGFsbCBjb3JuZXJzIG9mIHRoZSBvbmx5IGJ1dHRvbiBmb3IgdGhlIGhvdmVyIGVmZmVjdCB0byBiZSBib3VuZGVkICovXG4gICAgICAgICY6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9pdGVtOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OyAvKiByYWRpdXMgbWF0Y2hlcyAubXhfQ29udGV4dHVhbE1lbnUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9JY29uaXplZENvbnRleHRNZW51X2l0ZW0ge1xuICAgICAgICAgICAgLyogcGFkIHRoZSBpbnNpZGUgb2YgdGhlIGJ1dHRvbiBzbyB0aGF0IHRoZSBob3ZlciBiYWNrZ3JvdW5kIGlzIHBhZGRlZCB0b28gKi9cbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG5cbiAgICAgICAgICAgIC8qIENyZWF0ZSBhIGZsZXhib3ggdG8gbW9yZSBlYXNpbHkgZGVmaW5lIHRoZSBsaXN0IGl0ZW1zICovXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1zZWNvbmRhcnktaG92ZXJlZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ubXhfSWNvbml6ZWRDb250ZXh0TWVudV9sYWJlbCB7XG4gICAgICAgICAgICAgICAgLyogbGFiZWxzICovXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgZmxleDogMTtcblxuICAgICAgICAgICAgICAgIC8qIEVsbGlwc2l6ZSBhbnkgdGV4dCBvdmVyZmxvdyAqL1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAgICAgICAgICAgICAmICsgLm14X0ljb25pemVkQ29udGV4dE1lbnVfbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE0cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfQmV0YUNhcmRfYmV0YVBpbGwge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0ljb25pemVkQ29udGV4dE1lbnVfb3B0aW9uTGlzdF9yZWQge1xuICAgICAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9pdGVtIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWxlcnQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9vcHRpb25fcmVkIHtcbiAgICAgICAgY29sb3I6ICRhbGVydCAhaW1wb3J0YW50O1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0ljb25pemVkQ29udGV4dE1lbnVfYWN0aXZlIHtcbiAgICAgICAgJi5teF9JY29uaXplZENvbnRleHRNZW51X2l0ZW0sXG4gICAgICAgIC5teF9JY29uaXplZENvbnRleHRNZW51X2l0ZW0ge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfSWNvbml6ZWRDb250ZXh0TWVudV9jb21wYWN0IHtcbiAgICAgICAgLm14X0ljb25pemVkQ29udGV4dE1lbnVfb3B0aW9uTGlzdCA+ICoge1xuICAgICAgICAgICAgcGFkZGluZzogOHB4IDE2cHggOHB4IDEycHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdmcubXhfSWNvbml6ZWRDb250ZXh0TWVudV9jaGVja2VkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTVweDtcbiAgICB9XG5cbiAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9zdWJsYWJlbCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubXhfSWNvbml6ZWRDb250ZXh0TWVudV9pdGVtLm14X0ljb25pemVkQ29udGV4dE1lbnVfaXRlbURlc3RydWN0aXZlIHtcbiAgICBjb2xvcjogJGFsZXJ0ICFpbXBvcnRhbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjAtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xlZ2FjeUNhbGxDb250ZXh0TWVudV9pdGVtIHtcbiAgICB3aWR0aDogMjA1cHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0LDIwMjUgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQWRkRXhpc3RpbmdUb1NwYWNlRGlhbG9nX3dyYXBwZXIge1xuICAgIC5teF9EaWFsb2cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbn1cblxuLm14X0FkZEV4aXN0aW5nVG9TcGFjZSB7XG4gICAgLm14X1NlYXJjaEJveCB7XG4gICAgICAgIC8qIFRvIG1hdGNoIHRoZSBzcGFjZSBhcm91bmQgdGhlIHRpdGxlICovXG4gICAgICAgIG1hcmdpbjogMCAwIDE1cHggMDtcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgIH1cblxuICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2VfY29udGVudCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG5cbiAgICAubXhfQWRkRXhpc3RpbmdUb1NwYWNlX25vUmVzdWx0cyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgIH1cblxuICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2Vfc2VjdGlvbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogcHJvdmlkZXMgc3BhY2UgZm9yIHNjcm9sbGJhciBzbyB0aGF0IGNoZWNrYm94IGFuZCBzY3JvbGxiYXIgZG8gbm90IGNvbGxpZGUgKi9cbiAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgPiBoMyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGluayB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2VfZm9vdGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcblxuICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICAubXhfUHJvZ3Jlc3NCYXIge1xuICAgICAgICAgICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgQG1peGluIFByb2dyZXNzQmFyQm9yZGVyUmFkaXVzIDhweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0FkZEV4aXN0aW5nVG9TcGFjZURpYWxvZ19wcm9ncmVzc1RleHQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2VfZXJyb3Ige1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuXG4gICAgICAgICAgICA+IGltZyB7XG4gICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfQWRkRXhpc3RpbmdUb1NwYWNlX2Vycm9ySGVhZGluZyB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2VfZXJyb3JDYXB0aW9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAzNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0FkZEV4aXN0aW5nVG9TcGFjZURpYWxvZ19yZXRyeUJ1dHRvbiBzdmcge1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0FkZEV4aXN0aW5nVG9TcGFjZURpYWxvZyB7XG4gICAgd2lkdGg6IDQ4MHB4O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGhlaWdodDogODB2aDtcblxuICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2Uge1xuICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICB9XG59XG5cbi5teF9TdWJzcGFjZVNlbGVjdG9yIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICBtYXJnaW46IGF1dG8gMTZweCBhdXRvIDVweDtcbiAgICB9XG5cbiAgICA+IGRpdiB7XG4gICAgICAgID4gaDEge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE4cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjJweDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Ecm9wZG93bl9pbnB1dCB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcblxuICAgICAgICA+IC5teF9Ecm9wZG93bl9vcHRpb24ge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgZmxleDogdW5zZXQ7XG4gICAgICAgICAgICBoZWlnaHQ6IHVuc2V0O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuXG4gICAgICAgICAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TdWJzcGFjZVNlbGVjdG9yX2Ryb3Bkb3duT3B0aW9uQWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1N1YnNwYWNlU2VsZWN0b3Jfb25seVNwYWNlIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICB9XG59XG5cbi5teF9BZGRFeGlzdGluZ1RvU3BhY2VfZW50cnkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcblxuICAgIGZvcm0ge1xuICAgICAgICAvKiBBbGlnbiBjaGVja2JveGVzLiAqL1xuICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICAgIH1cblxuICAgIC8qIHdlIGNhbid0IHRhcmdldCAubXhfQmFzZUF2YXRhciBoZXJlIGFzIGl0J2xsIGJyZWFrIHRoZSBkZWNvcmF0ZWQgYXZhdGFyIHN0eWxpbmcgKi9cbiAgICAubXhfRGVjb3JhdGVkUm9vbUF2YXRhciB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICB9XG5cbiAgICAubXhfQWRkRXhpc3RpbmdUb1NwYWNlX2VudHJ5X25hbWUge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0FuYWx5dGljc0xlYXJuTW9yZURpYWxvZyB7XG4gICAgbWF4LXdpZHRoOiA1MDBweDtcbiAgICAubXhfQW5hbHl0aWNzTGVhcm5Nb3JlX2ltYWdlX2hvbGRlciB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9yZXMvaW1nL2VsZW1lbnQtc2hpbnkuc3ZnXCIpO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgdG9wO1xuICAgICAgICBoZWlnaHQ6IDExMnB4O1xuICAgICAgICBwYWRkaW5nOiAyMHB4IDBweDtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgfVxuXG4gICAgLm14X0FuYWx5dGljc0xlYXJuTW9yZV9jb3B5IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRtZW51LWJvcmRlci1jb2xvcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLm14X0FuYWx5dGljc0xlYXJuTW9yZV9idWxsZXRzIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gICAgfVxuXG4gICAgLm14X0FuYWx5dGljc0xlYXJuTW9yZV9idWxsZXRzIGxpIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAycHggMCAwIDMycHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDI2cHg7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgY29sb3I6ICMwZGJkOGI7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQnVnUmVwb3J0RGlhbG9nIHtcbiAgICAubXhfQnVnUmVwb3J0RGlhbG9nX2Rvd25sb2FkIHtcbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMThweDsgLyogU3BhY2UgYmV0d2VlbiBcIkRvd25sb2FkaW5nIGxvZ3MuLi5cIiAqL1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTYgQXZpcmFsIERhc2d1cHRhXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DaGFuZ2Vsb2dEaWFsb2dfY29udGVudCB7XG4gICAgbWF4LWhlaWdodDogMzAwcHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5teF9DaGFuZ2Vsb2dEaWFsb2dfbGkge1xuICAgIHBhZGRpbmc6IDAuMmVtO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIERFViBOT1RFOiBUaGlzIHN0eWxlc2hlZXQgY292ZXJzIGRpYWxvZ3MgbGlzdGVkIGJ5IHRoZSBjb21wb3VuZCwgaW5jbHVkaW5nICovXG4vKiBvdmVyIG11bHRpcGxlIFJlYWN0IGNvbXBvbmVudHMuIFRoZSBhY3R1YWwgaW5uZXIgY29udGVudHMgb2YgdGhlIGRpYWxvZyBzaG91bGQgKi9cbi8qIGJlIGluIHRoZWlyIHJlc3BlY3RpdmUgc3R5bGVzaGVldHMuICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiBPdmVycmlkZSBsZWdhY3kvZGVmYXVsdCBzdHlsZXMgZm9yIGRpYWxvZ3MgKi9cbi5teF9EaWFsb2dfd3JhcHBlci5teF9Db21wb3VuZERpYWxvZyAubXhfRGlhbG9nIHtcbiAgICBwYWRkaW5nOiAwOyAvKiB3ZSdsbCBtYW5hZ2UgaXQgb3Vyc2VsdmVzICovXG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9Db21wb3VuZERpYWxvZyB7XG4gICAgLm14X0RpYWxvZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgLm14X0NvbXBvdW5kRGlhbG9nX2hlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDMycHggMzJweCAxNnB4IDMycHg7XG5cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTI0cHg7XG4gICAgICAgICAgICBtYXJnaW46IDA7IC8qIG1hbmFnZWQgYnkgaGVhZGVyIGNsYXNzICovXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQ29tcG91bmREaWFsb2dfY2FuY2VsQnV0dG9uIHtcbiAgICAgICAgQG1peGluIGN1c3RvbWlzZWRDYW5jZWxCdXR0b247XG4gICAgICAgIC8qIEFsaWduIHdpdGggY29ybmVyIHJhZGl1cyBvZiBkaWFsb2cgKi9cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIHJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIH1cblxuICAgIC5teF9Db21wb3VuZERpYWxvZ19mb3JtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgZmxleDogMTtcbiAgICB9XG5cbiAgICAubXhfQ29tcG91bmREaWFsb2dfY29udGVudCB7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiA4cHggMzJweDtcbiAgICAgICAgZmxleDogMTtcbiAgICB9XG5cbiAgICAubXhfQ29tcG91bmREaWFsb2dfZm9vdGVyIHtcbiAgICAgICAgcGFkZGluZzogMjBweCAzMnB4O1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiAubXhfU3Bpbm5lciB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9TY3JvbGxhYmxlQmFzZURpYWxvZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgd2lkdGg6IDU0NHB4OyAvKiBmaXhlZCAqL1xuICAgIGhlaWdodDogNTE2cHg7IC8qIGZpeGVkICovXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgbWF4LWhlaWdodDogODAlO1xuXG4gICAgLm14X0NvbXBvdW5kRGlhbG9nX2Zvb3RlciB7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCAtNHB4IDRweCByZ2IoMCwgMCwgMCwgMC4wNSk7IC8qIGhhcmRjb2RlZCBjb2xvdXIgZm9yIGJvdGggdGhlbWVzICovXG4gICAgICAgIHotaW5kZXg6IDE7IC8qIG5lZWRlZCB0byBtYWtlIGZvb3RlciAmIHNoYWRvdyBhcHBlYXIgYWJvdmUgZGlhbG9nIGNvbnRlbnQgKi9cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjUgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Db25maXJtS2V5U3RvcmFnZU9mZkRpYWxvZyB7XG4gICAgLm14X0RpYWxvZ19ib3JkZXIge1xuICAgICAgICB3aWR0aDogNjAwcHg7XG4gICAgfVxuXG4gICAgLm14X0VuY3J5cHRpb25DYXJkIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Db25maXJtU3BhY2VVc2VyQWN0aW9uRGlhbG9nX3dyYXBwZXIge1xuICAgIC5teF9EaWFsb2cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwYWRkaW5nOiAyNHB4IDMycHg7XG4gICAgfVxufVxuXG4ubXhfQ29uZmlybVNwYWNlVXNlckFjdGlvbkRpYWxvZyB7XG4gICAgd2lkdGg6IDQ0MHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBoZWlnaHQ6IDUyMHB4O1xuXG4gICAgLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICAgICAgbWFyZ2luOiAxMnB4IDA7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB9XG5cbiAgICAubXhfQ29uZmlybVVzZXJBY3Rpb25EaWFsb2dfcmVhc29uRmllbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIH1cblxuICAgIC5teF9Db25maXJtU3BhY2VVc2VyQWN0aW9uRGlhbG9nX3dhcm5pbmcge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDEycHggOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuXG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IC00cHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0xLTV4KTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNyBWZWN0b3IgQ3JlYXRpb25zIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NvbmZpcm1Vc2VyQWN0aW9uRGlhbG9nIC5teF9EaWFsb2dfY29udGVudCAubXhfQ29uZmlybVVzZXJBY3Rpb25EaWFsb2dfdXNlciB7XG4gICAgbWluLWhlaWdodDogNDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xufVxuXG4ubXhfQ29uZmlybVVzZXJBY3Rpb25EaWFsb2dfYXZhdGFyIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG59XG5cbi5teF9Db25maXJtVXNlckFjdGlvbkRpYWxvZ19uYW1lIHtcbiAgICBwYWRkaW5nLXRvcDogMnB4O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMThweDtcbn1cblxuLm14X0NvbmZpcm1Vc2VyQWN0aW9uRGlhbG9nX3VzZXJJZCB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xM3B4O1xufVxuXG4ubXhfQ29uZmlybVVzZXJBY3Rpb25EaWFsb2dfcmVhc29uRmllbGQge1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNyBNaWNoYWVsIFRlbGF0eW5za2kgPDd0M2NoZ3V5QGdtYWlsLmNvbT5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NyZWF0ZVJvb21EaWFsb2dfZGV0YWlscyB7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcblxuICAgIC5teF9DcmVhdGVSb29tRGlhbG9nX2RldGFpbHNfc3VtbWFyeSB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcblxuICAgICAgICAvKiBsaXN0LXN0eWxlIGRvZXNuJ3QgZG8gaXQgZm9yIHdlYmtpdCAqL1xuICAgICAgICAmOjotd2Via2l0LWRldGFpbHMtbWFya2VyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgID4gZGl2IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIG1hcmdpbjogNXB4IDA7XG5cbiAgICAgICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0NyZWF0ZVJvb21EaWFsb2dfbGFiZWwge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDEycHg7XG59XG5cbi5teF9DcmVhdGVSb29tRGlhbG9nX2lucHV0X2NvbnRhaW5lciB7XG4gICAgcGFkZGluZy1yaWdodDogMjBweDtcbn1cblxuLm14X0NyZWF0ZVJvb21EaWFsb2dfaW5wdXQge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGlucHV0LWJvcmRlci1jb2xvcjtcbiAgICBwYWRkaW5nOiA5cHg7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5teF9DcmVhdGVSb29tRGlhbG9nX2FsaWFzQ29udGFpbmVyIHtcbiAgICAvKiBuZWVkZWQgdG8gbWFrZSB0aGUgYWxpYXMgZmllbGQgb25seSBncm93IGFzIHdpZGUgYXMgbmVlZGVkIGFzIG9wcG9zZWQgdG8gZnVsbCB3aWR0aCAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG59XG5cbi5teF9DcmVhdGVSb29tRGlhbG9nIHtcbiAgICAmLm14X0RpYWxvZ19maXhlZFdpZHRoIHtcbiAgICAgICAgd2lkdGg6IDQ1MHB4O1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgfVxuXG4gICAgcCxcbiAgICAubXhfRmllbGRfaW5wdXQgbGFiZWwge1xuICAgICAgICBjb2xvcjogJG11dGVkLWZnLWNvbG9yO1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc0ZsYWcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc0ZsYWdfbGFiZWwge1xuICAgICAgICBmbGV4OiAxIDEgMDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG5cbiAgICAubXhfVG9nZ2xlU3dpdGNoIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzMHB4O1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfY29udGVudCA+IC5teF9TZXR0aW5nc0ZsYWcge1xuICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgIH1cblxuICAgIC5teF9GaWVsZCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICBmb3JtIHtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgICBtYXJnaW46IDAgODVweCAwIDA7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICB9XG59XG5cbi5teF9DcmVhdGVSb29tRGlhbG9nX2xhYmVsbGVkQ2hlY2tib3gge1xuICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNiBFbGVtZW50IENyZWF0aW9ucyBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9DcmVhdGVTZWN0aW9uRGlhbG9nIHtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG5cbiAgICAubXhfQ3JlYXRlU2VjdGlvbkRpYWxvZ190aXRsZSB7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgICYubXhfRGlhbG9nX2ZpeGVkV2lkdGgge1xuICAgICAgICAvKiA1NzZweCBjb21pbmcgZnJvbSBGaWdtYSBhbmQgcmVtb3ZlIGV4dGVybmFsIHBhZGRpbmcgKi9cbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDU3NnB4IC0gdmFyKC0tY3BkLXNwYWNlLTIweCkpO1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfaGVhZGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ3JlYXRlU3Vic3BhY2VEaWFsb2dfd3JhcHBlciB7XG4gICAgLm14X0RpYWxvZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxufVxuXG4ubXhfQ3JlYXRlU3Vic3BhY2VEaWFsb2cge1xuICAgIHdpZHRoOiA0ODBweDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgbWluLWhlaWdodDogMDtcblxuICAgIC5teF9DcmVhdGVTdWJzcGFjZURpYWxvZ19jb250ZW50IHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuXG4gICAgICAgIC5teF9DcmVhdGVTdWJzcGFjZURpYWxvZ19iZXRhTm90aWNlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG5cbiAgICAgICAgICAgIC5teF9CZXRhQ2FyZF9iZXRhUGlsbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Kb2luUnVsZURyb3Bkb3duICsgcCB7XG4gICAgICAgICAgICBjb2xvcjogJG11dGVkLWZnLWNvbG9yO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0NyZWF0ZVN1YnNwYWNlRGlhbG9nX2Zvb3RlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG5cbiAgICAgICAgLm14X0NyZWF0ZVN1YnNwYWNlRGlhbG9nX2Zvb3Rlcl9wcm9tcHQge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICA+ICoge1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggMzZweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X0NyeXB0byB7XG4gICAgdGFibGUge1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS00eCkgMDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgYm9yZGVyLXNwYWNpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgMDtcblxuICAgICAgICB0aGVhZCB7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1oZWFkaW5nLXNtLXNlbWlib2xkKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOC0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGVhY3RpdmF0ZUFjY291bnREaWFsb2cgLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xufVxuXG4ubXhfRGVhY3RpdmF0ZUFjY291bnREaWFsb2cgLm14X0RlYWN0aXZhdGVBY2NvdW50RGlhbG9nX2lucHV0X3NlY3Rpb24gLm14X0ZpZWxkIHtcbiAgICB3aWR0aDogMzAwcHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNyBNaWNoYWVsIFRlbGF0eW5za2kgPDd0M2NoZ3V5QGdtYWlsLmNvbT5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RldnRvb2xzRGlhbG9nX3dyYXBwZXIge1xuICAgIC5teF9EaWFsb2cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfZml4ZWRXaWR0aCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgLm14X0RpYWxvZ19idXR0b25zIGJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0RldlRvb2xzX3RvZ2dsZUZvcm0ge1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgfVxufVxuXG4ubXhfRGV2VG9vbHNfdG9vbEhlYWRpbmcge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctc20tc2VtaWJvbGQpO1xufVxuXG4ubXhfRGV2VG9vbHNfY29udGVudCB7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAvKiBHaXZlIHJvb20gZm9yIGZvY3VzIG91dGxpbmVzICovXG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcbiAgICBwYWRkaW5nLWJsb2NrLWVuZDogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xufVxuXG4ubXhfRGV2VG9vbHNfUm9vbVN0YXRlRXhwbG9yZXJfcXVlcnkge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5teF9EZXZUb29sc19idXR0b24ge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHggIWltcG9ydGFudDtcbn1cblxuLm14X0RldlRvb2xzX1Jvb21TdGF0ZUV4cGxvcmVyX2J1dHRvbl9oYXNTcGFjZXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4ubXhfRGV2VG9vbHNfYnV0dG9uLm14X0RldlRvb2xzX1Jvb21TdGF0ZUV4cGxvcmVyX2J1dHRvbl9lbXB0eVN0cmluZyB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4ubXhfRGV2VG9vbHNfbGFiZWxfbGVmdCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5teF9EZXZUb29sc19sYWJlbF9yaWdodCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ubXhfRGV2VG9vbHNfbGFiZWxfYm90dG9tIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U1ZTVlNTtcbn1cblxuLm14X0RldlRvb2xzX2lucHV0Um93IHtcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XG59XG5cbi5teF9EZXZUb29sc19pbnB1dExhYmVsQ2VsbCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xufVxuXG4ubXhfRGV2VG9vbHNfdGV4dGFyZWEge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBtYXgtd2lkdGg6IDY4NHB4O1xuICAgIG1pbi1oZWlnaHQ6IDI1MHB4O1xuICAgIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5teF9EZXZUb29sc19ldmVudFR5cGVTdGF0ZUtleUdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLm14X0RldlRvb2xzX2NvbnRlbnQgLm14X0ZpZWxkX2lucHV0OmZpcnN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1yaWdodDogNDJweDtcbn1cblxuLm14X0RldlRvb2xzX1ZlcmlmaWNhdGlvblJlcXVlc3Qge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2NjY2M7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIHBhZGRpbmc6IDFweCA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuICAgIGZvbnQtZmFtaWx5OiAkbW9ub3NwYWNlLWZvbnQtZmFtaWx5O1xuXG4gICAgZGwge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1heC1jb250ZW50IGF1dG87XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICBkZCB7XG4gICAgICAgIGdyaWQtY29sdW1uLXN0YXJ0OiAyO1xuICAgIH1cblxuICAgIGRkOmVtcHR5IHtcbiAgICAgICAgY29sb3I6ICM2NjY2NjY7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiKGVtcHR5KVwiO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZHQge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDE7XG4gICAgfVxuXG4gICAgZHQ6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCI6XCI7XG4gICAgfVxufVxuXG4ubXhfRGV2VG9vbHNfU2V0dGluZ3NFeHBsb3JlciB7XG4gICAgdGFibGUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICAgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcblxuICAgICAgICB0aCB7XG4gICAgICAgICAgICAvKiBDb2xvdXIgY2hvaWNlOiBmaXJzdCBvbmUgYXV0b2NvbXBsZXRlIGdhdmUgbWUuICovXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGFjY2VudDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICB0ZCxcbiAgICAgICAgdGgge1xuICAgICAgICAgICAgd2lkdGg6IDM2MHB4OyAvKiBcImZlZWxzIHJpZ2h0XCIgbnVtYmVyICovXG5cbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICB0ZCArIHRkLFxuICAgICAgICB0aCArIHRoIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgdHI6aG92ZXIge1xuICAgICAgICAgICAgLyogQ29sb3VyIGNob2ljZTogZmlyc3Qgb25lIGF1dG9jb21wbGV0ZSBnYXZlIG1lLiAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9EZXZUb29sc19TZXR0aW5nc0V4cGxvcmVyX211dGFibGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgIH1cblxuICAgIC5teF9EZXZUb29sc19TZXR0aW5nc0V4cGxvcmVyX2ltbXV0YWJsZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhbGVydDtcbiAgICB9XG5cbiAgICAubXhfRGV2VG9vbHNfU2V0dGluZ3NFeHBsb3Jlcl9lZGl0IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gICAgfVxuXG4gICAgLm14X0RldlRvb2xzX1NldHRpbmdzRXhwbG9yZXJfd2FybmluZyB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRhbGVydDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICB9XG59XG5cbi5teF9EZXZUb29sc19TZXR0aW5nc0V4cGxvcmVyX3NldHRpbmcge1xuICAgIC8qIG92ZXJyaWRlIGRlZmF1bHQgbGluayBidXR0b24gY29sb3IgKi9cbiAgICAvKiBhcyBpdCBpcyB0aGUgc2FtZSBhcyB0aGUgYmFja2dyb3VuZCBoaWdobGlnaHQgKi9cbiAgICAvKiB1c2VkIG9uIGZvY3VzICovXG4gICAgY29sb3I6ICRsaW5rcyAhaW1wb3J0YW50O1xufVxuXG4ubXhfRGV2VG9vbHNfc3RpY2t5X2V4cGxvcmVyIHtcbiAgICB0YWJsZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgICAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuXG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aCN1c2VyX2hlYWRlciB7XG4gICAgICAgICAgICB3aWR0aDogMzUlO1xuICAgICAgICB9XG4gICAgICAgIHRoI3N0aWNreV9rZXlfaGVhZGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIH1cbiAgICAgICAgdGgjZXhwaXJlc19pbl9oZWFkZXIge1xuICAgICAgICAgICAgd2lkdGg6IDE1JTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1wcmltYXJ5KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgdHI6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXNlY29uZGFyeS1ob3ZlcmVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgb3V0bGluZTogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0yKSBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWZvY3VzZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGQge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRkLnJlbWFpbmluZ190aW1lX2NvbHVtbiB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCwyMDI1IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0V4cG9ydERpYWxvZyB7XG4gICAgLm14X0V4cG9ydERpYWxvZ19zdWJoZWFkaW5nIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNnB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBtYXJnaW4tdG9wOiAxOHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIH1cblxuICAgICYubXhfRXhwb3J0RGlhbG9nX0V4cG9ydGluZyB7XG4gICAgICAgIC5teF9FeHBvcnREaWFsb2dfb3B0aW9ucyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9GaWVsZF9zZWxlY3Q6OmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgZGl2ID4gZGl2IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRpbmZvLXBsaW50aC1mZy1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbiBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIGRpdiB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHVuc2V0O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ZpZWxkX3ZhbGlkLm14X0ZpZWxkIGxhYmVsLFxuICAgICAgICAubXhfRmllbGRfdmFsaWQubXhfRmllbGQ6Zm9jdXMtd2l0aGluIGxhYmVsIHtcbiAgICAgICAgICAgIGNvbG9yOiB1bnNldDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9GaWVsZF92YWxpZC5teF9GaWVsZCxcbiAgICAgICAgLm14X0ZpZWxkX3ZhbGlkLm14X0ZpZWxkOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRpbnB1dC1ib3JkZXItY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRXhwb3J0RGlhbG9nX3Byb2dyZXNzIHtcbiAgICAgICAgLm14X0RpYWxvZ19idXR0b25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHVuc2V0O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3Bpbm5lciB7XG4gICAgICAgICAgICB3aWR0aDogdW5zZXQ7XG4gICAgICAgICAgICBoZWlnaHQ6IHVuc2V0O1xuICAgICAgICAgICAgZmxleDogdW5zZXQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbiA+IC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgfVxuXG4gICAgLm14X0ZpZWxkIHtcbiAgICAgICAgd2lkdGg6IDI1NnB4O1xuICAgIH1cblxuICAgIC5teF9GaWVsZF9wb3N0Zml4IHtcbiAgICAgICAgcGFkZGluZzogOXB4IDEwcHg7XG4gICAgfVxufVxuXG4ubXhfRXhwb3J0RGlhbG9nX2F0dGFjaG1lbnRzLWNoZWNrYm94IHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ZlZWRiYWNrRGlhbG9nIHtcbiAgICBociB7XG4gICAgICAgIG1hcmdpbjogMjRweCAwO1xuICAgICAgICBib3JkZXItY29sb3I6ICRpbnB1dC1ib3JkZXItY29sb3I7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDtcblxuICAgICAgICA+IGgyIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRmVlZGJhY2tEaWFsb2dfc2VjdGlvbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogMTJweCA1MnB4IDEycHggNjhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuXG4gICAgICAgICYgKyAubXhfRmVlZGJhY2tEaWFsb2dfc2VjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgPiBoMyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE4cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjJweDtcbiAgICAgICAgfVxuXG4gICAgICAgID4gcCB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICBtYXJnaW46IDhweCAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRmVlZGJhY2tEaWFsb2dfc2VjdGlvbl9taWNyb2NvcHkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgIH1cblxuICAgICAgICBhLFxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmsge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmID4gc3ZnIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDE2cHg7XG4gICAgICAgICAgICB0b3A6IDEycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaWNvbi1idXR0b24tY29sb3I7XG4gICAgICAgICAgICBjb2xvcjogJGF2YXRhci1pbml0aWFsLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0ZlZWRiYWNrRGlhbG9nX3JhdGVBcHAge1xuICAgICAgICAubXhfU3R5bGVkUmFkaW9CdXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZSAxcyxcbiAgICAgICAgICAgICAgICBib3JkZXIgMC41cztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBkaXYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkaWNvbi1idXR0b24tY29sb3I7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogNXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfU3R5bGVkUmFkaW9CdXR0b25fc3BhY2VyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmICsgLm14X1N0eWxlZFJhZGlvQnV0dG9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jaGVja2VkIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgUm9iaW4gVG93bnNlbmQgPHJvYmluQHJvYmluLnRvd24+XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Gb3J3YXJkRGlhbG9nIHtcbiAgICB3aWR0aDogNTIwcHg7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgaGVpZ2h0OiA4MHZoO1xuXG4gICAgPiBoMyB7XG4gICAgICAgIG1hcmdpbjogMCAwIDZweDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgfVxuXG4gICAgPiAubXhfRm9yd2FyZERpYWxvZ19wcmV2aWV3IHtcbiAgICAgICAgbWF4LWhlaWdodDogMzAlO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgICAgICBkaXYge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBXaGVuIGZvcndhcmRpbmcgbWVzc2FnZXMgZnJvbSBlbmNyeXB0ZWQgcm9vbXMsIEV2ZW50VGlsZSB3aWxsIGNvbXBsYWluICovXG4gICAgICAgIC8qIHRoYXQgb3VyIHByZXZpZXcgaXMgdW5lbmNyeXB0ZWQsIHdoaWNoIGRvZXNuJ3QgYWN0dWFsbHkgbWF0dGVyICovXG4gICAgICAgIC8qIFdlIGFsc28gaGlkZSBkb3dubG9hZCBsaW5rcyB0byBub3QgZW5jb3VyYWdlIHVzZXJzIHRvIHRyeSBpbnRlcmFjdGluZyAqL1xuICAgICAgICAvKiBUaGUgZmlsZSB0aWxlJ3MgaW5saW5lIGRvd25sb2FkIGFuZCBvcGVuIGFjdGlvbnMgZ28gZm9yIHRoZSBzYW1lIHJlYXNvbiAqL1xuICAgICAgICAubXhfUmVhZFJlY2VpcHRHcm91cCxcbiAgICAgICAgLm14X0UyZVBhZGxvY2ssXG4gICAgICAgIC5teF9NRmlsZUJvZHkgW2RhdGEtdHlwZT1cImRvd25sb2FkXCJdLFxuICAgICAgICAubXhfTUZpbGVCb2R5IFtkYXRhLXR5cGU9XCJhY3Rpb25zXCJdIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICA+IGhyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRpbnB1dC1ib3JkZXItY29sb3I7XG4gICAgICAgIG1hcmdpbjogMTJweCAwO1xuICAgIH1cblxuICAgID4gLm14X0ZvcndhcmRMaXN0IHtcbiAgICAgICAgZGlzcGxheTogY29udGVudHM7XG5cbiAgICAgICAgLm14X1NlYXJjaEJveCB7XG4gICAgICAgICAgICAvKiBUbyBtYXRjaCB0aGUgc3BhY2UgYXJvdW5kIHRoZSB0aXRsZSAqL1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgMTVweCAwO1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuXG4gICAgICAgICAgICAmOm5vdCg6Zm9jdXMtd2l0aGluKSArIC5teF9Gb3J3YXJkTGlzdF9jb250ZW50IHtcbiAgICAgICAgICAgICAgICAvKiBJbmhpYml0IHRoZSBzdHlsaW5nIGlmIGZvY3VzIGlzIG5vdCB3aXRoaW4gdGhlIGlucHV0IHdoaWNoIGhhbmRsZXMga2V5Ym9hcmQgYWNjZXNzaWJpbGl0eSAqL1xuICAgICAgICAgICAgICAgIC0tbXhfRm9yd2FyZExpc3RfZW50cnlfc2VsZWN0ZWRCZ0NvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Gb3J3YXJkTGlzdF9jb250ZW50IHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Gb3J3YXJkTGlzdF9ub1Jlc3VsdHMge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ZvcndhcmRMaXN0X3Jlc3VsdHMge1xuICAgICAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0ZvcndhcmRMaXN0X3Jlc3VsdHNMaXN0IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Gb3J3YXJkTGlzdF9lbnRyeSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDZweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICYubXhfRm9yd2FyZExpc3RfZW50cnlfYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbXhfRm9yd2FyZExpc3RfZW50cnlfc2VsZWN0ZWRCZ0NvbG9yLCAkc3BhY2VQYW5lbC1iZy1jb2xvcik7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X0ZvcndhcmRMaXN0X3Jvb21CdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMDtcblxuICAgICAgICAgICAgICAgICAgICAubXhfRGVjb3JhdGVkUm9vbUF2YXRhciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubXhfRm9yd2FyZExpc3RfZW50cnlfbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgLm14X0ZvcndhcmRMaXN0X2VudHJ5X2RldGFpbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubXhfRm9yd2FyZExpc3RfZW50cnlfbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubXhfRm9yd2FyZExpc3RfZW50cnlfZGV0YWlsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfRm9yd2FyZExpc3Rfc2VuZEJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG5cbiAgICAgICAgICAgICAgICAgICAgJjpub3QoLm14X0ZvcndhcmRMaXN0X2NhblNlbmQpIC5teF9Gb3J3YXJkTGlzdF9zZW5kTGFiZWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgLyogSGlkZSB0aGUgXCJTZW5kXCIgbGFiZWwgd2hpbGUgcHJlc2VydmluZyBidXR0b24gc2l6ZSAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJiA+IHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X0ZvcndhcmREaWFsb2dfbm90aWZpY2F0aW9uQmFkZ2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLyogTWF0Y2ggdGhlIGZhaWxlZCB0byBzZW5kIGluZGljYXRvcidzIGNvbG9yIHdpdGggdGhlIGRpc2FibGVkIGJ1dHRvbiAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbi1kYW5nZXItZGlzYWJsZWQtZmctY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfR2VuZXJpY0ZlYXR1cmVGZWVkYmFja0RpYWxvZyB7XG4gICAgLm14X0dlbmVyaWNGZWF0dXJlRmVlZGJhY2tEaWFsb2dfc3ViaGVhZGluZyB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0luY29taW5nU2FzRGlhbG9nX29wcG9uZW50UHJvZmlsZV9pbWFnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubXhfSW5jb21pbmdTYXNEaWFsb2dfb3Bwb25lbnRQcm9maWxlIGgyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSwgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW52aXRlRGlhbG9nX2ZsZXhXcmFwcGVyIC5teF9EaWFsb2cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLm14X0ludml0ZURpYWxvZ190cmFuc2ZlcldyYXBwZXIgLm14X0RpYWxvZyB7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfYWRkcmVzc0JhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIC8qIFJpZ2h0IG1hcmdpbiBmb3IgdGhlIGRlc2lnbi4gV2UgY291bGQgYXBwbHkgdGhpcyB0byB0aGUgd2hvbGUgZGlhbG9nLCBidXQgdGhlbiB0aGUgc2Nyb2xsYmFyICovXG4gICAgLyogZm9yIHRoZSB1c2VyIHNlY3Rpb24gZ2V0cyB3ZWlyZC4gKi9cbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0yeCkgNDVweCAwIDA7XG5cbiAgICAubXhfSW52aXRlRGlhbG9nX2VkaXRvciB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG4gICAgfVxuXG4gICAgLm14X0ludml0ZURpYWxvZ19nb0J1dHRvbiB7XG4gICAgICAgIG1pbi13aWR0aDogODZweDtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMTBweDtcbiAgICAgICAgaGVpZ2h0OiA0MXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjVweDtcbiAgICB9XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfc2VjdGlvbiB7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICAubXhfSW52aXRlRGlhbG9nX3NlY3Rpb25fc2hvd01vcmUge1xuICAgICAgICBtYXJnaW46IDdweCAxOHB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfc2VjdGlvbl9oaWRkZW5fc3VnZ2VzdGlvbnNfZGlzY2xhaW1lciB7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KSAwIHZhcigtLWNwZC1zcGFjZS00eCkgMDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuXG4gICAgPiBzcGFuIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIH1cblxuICAgID4gcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfZm9vdGVyIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGlucHV0LWJvcmRlci1jb2xvcjtcblxuICAgID4gaDMge1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0zeCkgMDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICBjb2xvcjogJG11dGVkLWZnLWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICB9XG5cbiAgICAubXhfQ29weWFibGVUZXh0Lm14X0NvcHlhYmxlVGV4dF9ib3JkZXIge1xuICAgICAgICB3aWR0aDogdW5zZXQ7IC8qIGZ1bGwgd2lkdGggKi9cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICA+IGEge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfb3RoZXIge1xuICAgIC8qIFByZXZlbnQgdGhlIGRpYWxvZyBmcm9tIGp1bXBpbmcgYXJvdW5kIHJhbmRvbWx5IHdoZW4gZWxlbWVudHMgY2hhbmdlLiAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBoZWlnaHQ6IDYwMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBoMiB7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAubXhfSW52aXRlRGlhbG9nX2FkZHJlc3NCYXIge1xuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMDtcbiAgICB9XG5cbiAgICAubXhfSW52aXRlRGlhbG9nX3VzZXJTZWN0aW9ucyB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG5cbiAgICAgICAgLm14X0ludml0ZURpYWxvZ19zZWN0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfSW52aXRlRGlhbG9nX2NvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC5teF9JbnZpdGVQcm9ncmVzc0JvZHkge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMTJ4KTtcbiAgICB9XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfdHJhbnNmZXIge1xuICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgLm14X0ludml0ZURpYWxvZ19jb250ZW50IHtcbiAgICAgICAgd2lkdGg6IDQ5NnB4O1xuICAgICAgICBoZWlnaHQ6IDQzMHB4O1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAgICAgICAubXhfVGFiYmVkVmlldyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMDtcblxuICAgICAgICAgICAgLm14X1RhYmJlZFZpZXdfdGFiUGFuZWwge1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgICAgICAgICAubXhfVGFiYmVkVmlld190YWJQYW5lbENvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9JbnZpdGVEaWFsb2dfYWRkcmVzc0JhciB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgfVxufVxuXG4ubXhfSW52aXRlRGlhbG9nX3VzZXJTZWN0aW9ucyB7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBwYWRkaW5nOiAwIDQ1cHggdmFyKC0tY3BkLXNwYWNlLTF4KSAwO1xufVxuXG4ubXhfSW52aXRlRGlhbG9nX2hlbHBUZXh0IHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfZGlhbFBhZCB7XG4gICAgd2lkdGg6IDIyNHB4O1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgbWFyZ2luLWlubGluZTogYXV0bztcblxuICAgIC5teF9JbnZpdGVEaWFsb2dfZGlhbFBhZEZpZWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgYm9yZGVyLWlubGluZTogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkcXVhdGVybmFyeS1jb250ZW50O1xuXG4gICAgICAgICY6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGFjY2VudDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRmllbGRfcG9zdGZpeCB7XG4gICAgICAgICAgICAvKiBSZW1vdmUgYm9yZGVyIHNlcGFyYXRvciBiZXR3ZWVuIHBvc3RmaXggYW5kIGZpZWxkIGNvbnRlbnQgKi9cbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0RpYWxQYWQge1xuICAgICAgICByb3ctZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBjb2x1bW4tZ2FwOiA0OHB4O1xuICAgICAgICBtYXJnaW4taW5saW5lOiBhdXRvO1xuICAgIH1cbn1cblxuLm14X0ludml0ZURpYWxvZ190cmFuc2ZlckNvbnN1bHRDb25uZWN0IHtcbiAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAvKiBUaGlzIHdhbnRzIGEgZHJvcCBzaGFkb3cgdGhlIGZ1bGwgd2lkdGggb2YgdGhlIGRpYWxvZywgc28gdXNlIG5lZ2F0aXZlIG1hcmdpbiB0byBtYWtlIGl0IGZ1bGwgd2lkdGgsXG4gICAgICogdGhlbiBjb21wZW5zYXRlIHdpdGggcGFkZGluZ1xuICAgICAqL1xuICAgIHBhZGRpbmctaW5saW5lOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIG1hcmdpbi1pbmxpbmU6IGNhbGMoLTEgKiB2YXIoLS1jcGQtc3BhY2UtNngpKTtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubXhfSW52aXRlRGlhbG9nX3RyYW5zZmVyQ29uc3VsdENvbm5lY3RfcHVzaFJpZ2h0IHtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xufVxuXG4ubXhfSW52aXRlRGlhbG9nX3RpbGUge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmLm14X0ludml0ZURpYWxvZ190aWxlLS1pbnZpdGVyRXJyb3Ige1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1heC1jb250ZW50IGF1dG87IC8qIG1heC1jb250ZW50ID0gYXZhdGFyIHdpZHRoICovXG4gICAgfVxuXG4gICAgKiB7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLm14X0ludml0ZURpYWxvZ190aWxlX2F2YXRhclN0YWNrIHtcbiAgICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGdyaWQtcm93LXN0YXJ0OiAxO1xuICAgICAgICBncmlkLWNvbHVtbi1zdGFydDogMTtcblxuICAgICAgICAmID4gKiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0ludml0ZURpYWxvZ190aWxlX25hbWVTdGFjayB7XG4gICAgICAgIGdyaWQtcm93LXN0YXJ0OiAxO1xuICAgICAgICBncmlkLWNvbHVtbi1zdGFydDogMjtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbjtcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICAgIGdhcDogMnB4IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgLm14X0ludml0ZURpYWxvZ190aWxlX25hbWVTdGFja19uYW1lLFxuICAgICAgICAubXhfSW52aXRlRGlhbG9nX3RpbGVfbmFtZVN0YWNrX3VzZXJJZCB7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ludml0ZURpYWxvZ190aWxlX25hbWVTdGFja19uYW1lIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfSW52aXRlRGlhbG9nX3RpbGVfbmFtZVN0YWNrX3VzZXJJZCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBjb2xvcjogJG11dGVkLWZnLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfSW52aXRlRGlhbG9nX211bHRpSW52aXRlckVycm9yV3JhcHBlciAubXhfRGlhbG9nIHtcbiAgICB3aWR0aDogNjAwcHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgLm14X0RpYWxvZ19maXhlZFdpZHRoIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxufVxuXG4ubXhfSW52aXRlRGlhbG9nX211bHRpSW52aXRlckVycm9yIHtcbiAgICA+IGg0IHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgfVxuXG4gICAgLm14X0ludml0ZURpYWxvZ19tdWx0aUludml0ZXJFcnJvcl9ncm91cCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9JbnZpdGVEaWFsb2dfbXVsdGlJbnZpdGVyRXJyb3JfcmVhc29uIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgICAgICBmb250LXNpemU6IHZhcigtLWNwZC1mb250LXNpemUtYm9keS1tZCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICB9XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfaWRlbnRpdHlTZXJ2ZXIge1xuICAgIG1hcmdpbi10b3A6IDFlbTtcbn1cblxuLm14X0ludml0ZURpYWxvZ19vbmVUaHJlZXBpZCB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTJ4KSAwO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI1IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW52aXRlUHJvZ3Jlc3NCb2R5IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1sZy1yZWd1bGFyKTtcblxuICAgIGgxIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1oZWFkaW5nLXNtLXNlbWlib2xkKTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSm9pblJ1bGVEcm9wZG93biB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG5cbiAgICAubXhfRHJvcGRvd25fb3B0aW9uIHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTMycHg7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgbWluLWhlaWdodDogMzJweDtcblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0xLTV4KTtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogLTJweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0xLTV4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5teF9Kb2luUnVsZURyb3Bkb3duX2tub2NrOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Kb2luUnVsZURyb3Bkb3duX2ljb24ge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDZweDtcbiAgICAgICAgdG9wOiA4cHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI2IGhheWFrc2kxXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MZWF2ZVJvb21EaWFsb2cge1xuICAgIC5teF9EaWFsb2dfZml4ZWRXaWR0aCB7XG4gICAgICAgIHdpZHRoOiAzMjBweDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfY29udGVudDpub3QoOmVtcHR5KSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfY29udGVudDplbXB0eSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGVhdmVTcGFjZURpYWxvZ193cmFwcGVyIHtcbiAgICAubXhfRGlhbG9nIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcGFkZGluZzogMjRweCAzMnB4O1xuXG4gICAgICAgIC5teF9MZWF2ZVNwYWNlRGlhbG9nIHtcbiAgICAgICAgICAgIHdpZHRoOiA0NDBweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgICAgICBoZWlnaHQ6IDUyMHB4O1xuXG4gICAgICAgICAgICAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgICAgICAgICAgICAgIC5teF9MZWF2ZVNwYWNlRGlhbG9nX3NlY3Rpb25fd2FybmluZyB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAxMnB4IDAgMDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTJweCA4cHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG5cbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgICAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPiBwIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xvY2F0aW9uVmlld0RpYWxvZ193cmFwcGVyIC5teF9EaWFsb2cge1xuICAgIHBhZGRpbmc6IDBweDtcbn1cblxuLm14X0xvY2F0aW9uVmlld0RpYWxvZyB7XG4gICAgLyogc3VidHJhY3QgMC41cHggdG8gcHJldmVudCBzaW5nbGUtcGl4ZWwgbWFyZ2luIGR1ZSB0byByb3VuZGluZyAqL1xuICAgIHdpZHRoOiBjYWxjKDgwdncgLSAwLjVweCk7XG4gICAgaGVpZ2h0OiBjYWxjKDgwdmggLSAwLjVweCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC5teF9EaWFsb2dfaGVhZGVyIHtcbiAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgcG9zaXRpb246IHVuc2V0O1xuXG4gICAgICAgIC5teF9EaWFsb2dfdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9EaWFsb2dfY2FuY2VsQnV0dG9uIHtcbiAgICAgICAgei1pbmRleDogNDAxMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxufVxuXG4ubXhfTG9jYXRpb25WaWV3RGlhbG9nX21hcCB7XG4gICAgd2lkdGg6IDgwdnc7XG4gICAgaGVpZ2h0OiA4MHZoO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIE1hbmFuIFNhZGFuYSA8bWFuYW5jb2Rlcy5kZXZAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTG9nb3V0RGlhbG9nIHtcbiAgICB3aWR0aDogMjZyZW07XG5cbiAgICAubXhfRW5jcnlwdGlvbkNhcmQge1xuICAgICAgICAvKiBUaGUgZGlhbG9nLWJhc2VkIHJlY292ZXJ5IGtleSBmbG93IHByZXNlcnZlcyB0aGUgY2FyZCdzIGdhcCwgYnV0IGVtcGhhc2lzZWQgY29udGVudCBzZXRzIGl0cyBvd24uICovXG4gICAgICAgICY6aGFzKD4gLm14X0VuY3J5cHRpb25DYXJkX2VtcGhhc2lzZWRDb250ZW50KSB7XG4gICAgICAgICAgICBnYXA6IDA7XG4gICAgICAgIH1cbiAgICAgICAgaDIge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgICAgIC5teF9FbmNyeXB0aW9uQ2FyZF9lbXBoYXNpc2VkQ29udGVudCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTEyeCk7XG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQsMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfd3JhcHBlciB7XG4gICAgLm14X0RpYWxvZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxufVxuXG4ubXhfTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nIHtcbiAgICB3aWR0aDogNDgwcHg7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgaGVpZ2h0OiA2MHZoO1xuXG4gICAgLm14X1NlYXJjaEJveCB7XG4gICAgICAgIC8qIFRvIG1hdGNoIHRoZSBzcGFjZSBhcm91bmQgdGhlIHRpdGxlICovXG4gICAgICAgIG1hcmdpbjogMCAwIDE1cHggMDtcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgIH1cblxuICAgIC5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfY29udGVudCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG5cbiAgICAubXhfTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nX25vUmVzdWx0cyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgIH1cblxuICAgIC5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfc2VjdGlvbiB7XG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgICAgfVxuXG4gICAgICAgID4gaDMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nX2VudHJ5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuXG4gICAgICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nX2VudHJ5X25hbWUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCA4cHg7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfZW50cnlfZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X01hbmFnZVJlc3RyaWN0ZWRKb2luUnVsZURpYWxvZ19zZWN0aW9uX3NwYWNlcyB7XG4gICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfc2VjdGlvbl9pbmZvIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIG1hcmdpbjogMTJweCAwO1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG5cbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIG1hcmdpbjogMCB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X01hbmFnZVJlc3RyaWN0ZWRKb2luUnVsZURpYWxvZ19mb290ZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuXG4gICAgICAgIC5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfZm9vdGVyX2J1dHRvbnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAgICAgJiArIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDI0cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01lc3NhZ2VFZGl0SGlzdG9yeURpYWxvZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1heC1oZWlnaHQ6IDYwdmg7XG59XG5cbi5teF9NZXNzYWdlRWRpdEhpc3RvcnlEaWFsb2dfc2Nyb2xsUGFuZWwge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xufVxuXG4ubXhfTWVzc2FnZUVkaXRIaXN0b3J5RGlhbG9nX2Vycm9yIHtcbiAgICBjb2xvcjogJGFsZXJ0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X01lc3NhZ2VFZGl0SGlzdG9yeURpYWxvZ19lZGl0cyB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcblxuICAgIC5teF9FZGl0SGlzdG9yeU1lc3NhZ2VfZW1vdGVTZW5kZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgc3Bhbi5teF9FZGl0SGlzdG9yeU1lc3NhZ2VfZGVsZXRpb24sXG4gICAgc3Bhbi5teF9FZGl0SGlzdG9yeU1lc3NhZ2VfaW5zZXJ0aW9uIHtcbiAgICAgICAgcGFkZGluZzogMHB4IDJweDtcbiAgICB9XG5cbiAgICAubXhfRWRpdEhpc3RvcnlNZXNzYWdlX2RlbGV0aW9uIHtcbiAgICAgICAgY29sb3I6IHJnYigyNTUsIDc2LCA4NSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDc2LCA4NSwgMC4xKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgfVxuXG4gICAgLm14X0VkaXRIaXN0b3J5TWVzc2FnZV9pbnNlcnRpb24ge1xuICAgICAgICBjb2xvcjogcmdiKDI2LCAxNjksIDEyMyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNiwgMTY5LCAxMjMsIDAuMSk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgIC8qIEVtdWxhdGUgbXhfRXZlbnRUaWxlW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0gKi9cbiAgICAubXhfRXZlbnRUaWxlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG5cbiAgICAgICAgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtc3BhY2luZy1ibG9jay1zdGFydCk7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtc3BhY2luZy1ibG9jay1lbmQpO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWlubGluZS1zdGFydCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtbGluZS1oZWlnaHQpO1xuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAtMXB4O1xuICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgbGVmdDogLTEwcHg7XG4gICAgICAgICAgICByaWdodDogLTEwcHg7XG4gICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZXZlbnRidWJibGUtYmctaG92ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfSGlzdG9yeUFjdGlvbkJhciB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAubXhfSGlzdG9yeUFjdGlvbkJhciBbZGF0YS1wcmVzZW50YXRpb249XCJsYWJlbFwiXSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01vZGFsV2lkZ2V0RGlhbG9nIHtcbiAgICAubXhfTW9kYWxXaWRnZXREaWFsb2dfd2FybmluZyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG5cbiAgICAgICAgPiBpbWcge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X01vZGFsV2lkZ2V0RGlhbG9nX2J1dHRvbnMge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24gKyAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWZyYW1lIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogNDUwcHg7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Qb2xsQ3JlYXRlRGlhbG9nIHtcbiAgICBoMiB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG5cbiAgICAgICAgJjpudGgtY2hpbGQobiArIDIpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfUG9sbENyZWF0ZURpYWxvZ19vcHRpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tdG9wOiAxMXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OyAvKiAxMXB4IGZyb20gdGhlIHRvcCB3aWxsIGNvbGxhcHNlLCBzbyB0aGlzIGNyZWF0ZXMgYSAxNnB4IGdhcCBiZXR3ZWVuIG9wdGlvbnMgKi9cblxuICAgICAgICAubXhfRmllbGQge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Qb2xsQ3JlYXRlRGlhbG9nX3JlbW92ZU9wdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Qb2xsQ3JlYXRlRGlhbG9nX2FkZE9wdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7IC8qIGFyYml0cmFyeSB0byBjcmVhdGUgc2Nyb2xsYWJsZSBhcmVhIHVuZGVyIHRoZSBwb2xsICovXG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25fZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1JlZ2lzdHJhdGlvbkVtYWlsUHJvbXB0RGlhbG9nIHtcbiAgICB3aWR0aDogNDE3cHg7XG5cbiAgICAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19wcmltYXJ5IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI2IEVsZW1lbnQgQ3JlYXRpb25zIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1JlbW92ZVNlY3Rpb25EaWFsb2cge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1JlcG9ydFJvb21EaWFsb2csXG4ubXhfRGVjbGluZUFuZEJsb2NrSW52aXRlRGlhbG9nIHtcbiAgICB0ZXh0YXJlYSB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtcHJpbWFyeSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIH1cblxuICAgIC8qXG4gICAgICBXb3JrYXJvdW5kIHRvIGZpeCBsYWJlbHMgYXBwZWFyaW5nIHdpdGggdGhlIHdyb25nIGNvbG9yLlxuXG4gICAgICAubXhfRGlhbG9nIChpbiByZXMvY3NzL19jb21tb24ucGNzcykgcmVkZWZpbmVzIHRoZSBib2R5IGNvbG9yXG4gICAgICBhcyAkbGlnaHQtZmctY29sb3IgcmF0aGVyIHRoYW4gdGhlIHN0YW5kYXJkIHByaW1hcnkgY29sb3IuXG5cbiAgICAgIFRoaXMgZm9yY2VzIHRoZSBjb2xvdXIgdG8gbWF0Y2ggdGhlIENvbXBvdW5kIHN0eWxlLCBidXRcbiAgICAgIGluIHRoZSBmdXR1cmUgdGhlIERpYWxvZ3Mgc2hvdWxkIG5vdCBmb3JjZSBhIGNvbG9yLlxuICAgICovXG4gICAgZm9ybSBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICB9XG59XG5cbi5teF9EZWNsaW5lQW5kQmxvY2tJbnZpdGVEaWFsb2cge1xuICAgIGRpdlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSA+IGxhYmVsIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzRmxhZ19sYWJlbCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tU2V0dGluZ3NEaWFsb2cgLm14X0RpYWxvZ190aXRsZSB7XG4gICAgLW1zLXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nLXJpZ2h0OiA4MHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19CcmlkZ2VMaXN0IHtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgbGkge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgICAgICAgJi5teF9Sb29tU2V0dGluZ3NEaWFsb2dfQnJpZGdlTGlzdF9saXN0SXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgICAgICAgICAgLyogYm9yZGVyLXN0eWxlIGFyb3VuZCBlYWNoIGJyaWRnZSBsaXN0IGl0ZW0gKi9cbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4IDFweDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnktaGFpcmxpbmUtY29sb3I7XG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuXG4gICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9pY29uIHtcbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX3Byb3RvY29sSWNvbixcbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX3Byb3RvY29sSWNvbiBzcGFuLFxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfbm9Qcm90b2NvbEljb24ge1xuICAgICAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRpbnB1dC1kYXJrZXItYmctY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19ub1Byb3RvY29sSWNvbixcbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX3Byb3RvY29sSWNvbiBpbWcge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19ub1Byb3RvY29sSWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRpbnB1dC1kYXJrZXItYmctY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19wcm90b2NvbEljb24ge1xuICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHggMXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29ycmVjdCBsZXR0ZXIgcGxhY2VtZW50ICovXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9kYXRhIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDg1JTtcblxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfY29sdW1uX2RhdGFfZGV0YWlscyxcbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9kYXRhX21ldGFkYXRhLFxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfY29sdW1uX2RhdGFfbWV0YWRhdGEgbGksXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19jb2x1bW5fZGF0YV9wcm90b2NvbE5hbWUge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfY29sdW1uX2RhdGFfZGV0YWlscyxcbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9kYXRhX21ldGFkYXRhIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9kYXRhX21ldGFkYXRhIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9kYXRhX3Byb3RvY29sTmFtZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZwdDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ193b3Jrc3BhY2VfY2hhbm5lbF9kZXRhaWxzIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuXG4gICAgICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfY2hhbm5lbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA1cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX21ldGFkYXRhIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE4LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tVXBncmFkZURpYWxvZyB7XG4gICAgcGFkZGluZy1yaWdodDogNzBweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5LTIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jvb21VcGdyYWRlV2FybmluZ0RpYWxvZyB7XG4gICAgbWF4LXdpZHRoOiAzOHZ3O1xuICAgIHdpZHRoOiAzOHZ3O1xuXG4gICAgLm14X1Jvb21VcGdyYWRlV2FybmluZ0RpYWxvZ19wcm9ncmVzcyB7XG4gICAgICAgIC5teF9Qcm9ncmVzc0JhciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDhweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICBAbWl4aW4gUHJvZ3Jlc3NCYXJCb3JkZXJSYWRpdXMgOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Jvb21VcGdyYWRlV2FybmluZ0RpYWxvZ19wcm9ncmVzc1RleHQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1Jvb21VcGdyYWRlV2FybmluZ0RpYWxvZyAubXhfU2V0dGluZ3NGbGFnIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuXG4gICAgLm14X1RvZ2dsZVN3aXRjaCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc0ZsYWdfbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NlcnZlck9mZmxpbmVEaWFsb2cge1xuICAgIC5teF9TZXJ2ZXJPZmZsaW5lRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4NXB4O1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcblxuICAgICAgICBociB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjE7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgcGFkZGluZzogMTZweDtcblxuICAgICAgICAgICAgbGk6bnRoLWNoaWxkKG4gKyAyKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TZXJ2ZXJPZmZsaW5lRGlhbG9nX2NvbnRlbnRfY29udGV4dCB7XG4gICAgICAgICAgICAubXhfU2VydmVyT2ZmbGluZURpYWxvZ19jb250ZW50X2NvbnRleHRfdGltZXN0YW1wIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDExNXB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7IC8qIHNhbWUgYXMgYXZhdGFyICovXG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1NlcnZlck9mZmxpbmVEaWFsb2dfY29udGVudF9jb250ZXh0X3RpbWVsaW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE1NXB4KTsgLyogMTE1cHggdGltZXN0YW1wIHdpZHRoICsgNDBweCByaWdodCBtYXJnaW4gKi9cblxuICAgICAgICAgICAgICAgIC5teF9TZXJ2ZXJPZmZsaW5lRGlhbG9nX2NvbnRlbnRfY29udGV4dF90aW1lbGluZV9oZWFkZXIge1xuICAgICAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1NlcnZlck9mZmxpbmVEaWFsb2dfY29udGVudF9jb250ZXh0X3R4biB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuXG4gICAgICAgICAgICAgICAgICAgIC5teF9TZXJ2ZXJPZmZsaW5lRGlhbG9nX2NvbnRlbnRfY29udGV4dF90eG5fZGVzYyB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTAwcHgpOyAvKiAxMDBweCBpcyBhbiBhcmJpdHJhcnkgbWFyZ2luIGZvciB0aGUgYnV0dG9uICovXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2VydmVyUGlja2VyRGlhbG9nIHtcbiAgICB3aWR0aDogNDY4cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC5teF9EaWFsb2dfY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgPiBwIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuXG4gICAgICAgICAgICBtYXJnaW46IDE2cHggMDtcblxuICAgICAgICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDI0cHggMjRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gaDIge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgbWFyZ2luOiAxNnB4IDAgMTZweCA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICA+IGEge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NlcnZlclBpY2tlckRpYWxvZ19vdGhlckhvbWVzZXJ2ZXJSYWRpbyB7XG4gICAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGRpdiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TZXJ2ZXJQaWNrZXJEaWFsb2dfb3RoZXJIb21lc2VydmVyIHtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdW5zZXQ7XG5cbiAgICAgICAgPiBpbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICA+IGxhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5IHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDI2cHgpO1xuICAgICAgICBtYXJnaW46IDAgOHB4O1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDE4cHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTcgVmVjdG9yIENyZWF0aW9ucyBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NldEVtYWlsRGlhbG9nX2VtYWlsX2lucHV0IHtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGlucHV0LWJvcmRlci1jb2xvcjtcbiAgICBwYWRkaW5nOiA5cHg7XG4gICAgY29sb3I6ICRpbnB1dC1mZy1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAyODBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4ubXhfU2V0RW1haWxEaWFsb2dfZW1haWxfaW5wdXQ6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qIE5vdCBhY3R1YWxseSBhIGNvbXBvbmVudCBidXQgdGhpbmdzIHNoYXJlZCBieSBzZXR0aW5ncyBjb21wb25lbnRzICovXG4ubXhfVXNlclNldHRpbmdzRGlhbG9nLFxuLm14X1Jvb21TZXR0aW5nc0RpYWxvZyxcbi5teF9TcGFjZVNldHRpbmdzRGlhbG9nLFxuLm14X1NwYWNlUHJlZmVyZW5jZXNEaWFsb2cge1xuICAgIHdpZHRoOiA5MHZ3O1xuICAgIG1heC13aWR0aDogOTgwcHg7XG4gICAgLyogc2V0IHRoZSBoZWlnaHQgdG9vIHNpbmNlIHRhYmJlZCB2aWV3IHNjcm9sbHMgaXRzZWxmLiAqL1xuICAgIGhlaWdodDogODB2aDtcblxuICAgIC5teF9UYWJiZWRWaWV3IHtcbiAgICAgICAgdG9wOiA5MHB4O1xuICAgIH1cblxuICAgIC5teF9UYWJiZWRWaWV3IC5teF9TZXR0aW5nc1RhYiB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIG1pbi13aWR0aDogNTgwcHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwMHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgIC8qIFB1dCBzb21lIHBhZGRpbmcgb24gdGhlIGJvdHRvbSB0byBhdm9pZCB0aGUgc2V0dGluZ3MgdGFiIGZyb20gKi9cbiAgICAgICAgLyogY29sbGlkaW5nIGhhcnNobHkgd2l0aCB0aGUgZGlhbG9nIHdoZW4gc2Nyb2xsZWQgZG93bi4gKi9cbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc0RpYWxvZ190YWJMYWJlbHNBbGVydDo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgY2xpcC1wYXRoOiBjaXJjbGUoNHB4KTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG59XG5cbi8qIE9uIG5hcnJvdyB2aWV3cG9ydHMsIHRoZSB0YWIgbGFiZWxzIGFyZSBoaWRkZW4sIHNvIHdlIG5lZWQgdG8gc2hpZnQgdGhlIGluZGljYXRvciBzbyBpdCBpc24ndCBvdmVyIHRoZSB0YWIgaWNvbi4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAubXhfVXNlclNldHRpbmdzRGlhbG9nLFxuICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2csXG4gICAgLm14X1NwYWNlU2V0dGluZ3NEaWFsb2csXG4gICAgLm14X1NwYWNlUHJlZmVyZW5jZXNEaWFsb2cge1xuICAgICAgICAubXhfU2V0dGluZ3NEaWFsb2dfdGFiTGFiZWxzQWxlcnQ6OmFmdGVyIHtcbiAgICAgICAgICAgIHJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE4LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TaGFyZURpYWxvZyB7XG4gICAgLyogVmFsdWUgZnJvbSBmaWdtYSBkZXNpZ24gKi9cbiAgICB3aWR0aDogNDE2cHg7XG5cbiAgICAubXhfRGlhbG9nX2hlYWRlciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgLyogT3ZlcnJpZGUgZGlhbG9nIGhlYWRlciBwYWRkaW5nIHRvIGFibGUgdG8gY2VudGVyIGl0ICovXG4gICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMDtcbiAgICB9XG5cbiAgICAubXhfU2hhcmVEaWFsb2dfY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAubXhfU2hhcmVEaWFsb2dfdG9wIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLW1lZGl1bSk7XG4gICAgICAgIH1cblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU2hhcmVEaWFsb2dfc29jaWFsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDk5cHg7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TbGFzaENvbW1hbmRIZWxwRGlhbG9nIC5teF9TbGFzaENvbW1hbmRIZWxwRGlhbG9nX2hlYWRlclJvdyBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuXG4ubXhfU2xhc2hDb21tYW5kSGVscERpYWxvZyAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzRweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcGFjZVByZWZlcmVuY2VzRGlhbG9nIHtcbiAgICB3aWR0aDogNzAwcHg7XG4gICAgaGVpZ2h0OiA0MDBweDtcblxuICAgID4gaDQge1xuICAgICAgICBtYXJnaW46IC0xMnB4IDAgMDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfVGFiYmVkVmlldyB7XG4gICAgICAgIHRvcDogODBweDtcblxuICAgICAgICAubXhfU2V0dGluZ3NUYWIge1xuICAgICAgICAgICAgbWluLXdpZHRoOiB1bnNldDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcGFjZVNldHRpbmdzRGlhbG9nIHtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcblxuICAgIC5teF9TcGFjZVNldHRpbmdzX2Vycm9yVGV4dCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICAgIH1cblxuICAgIC5teF9Ub2dnbGVTd2l0Y2gge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc1RhYl9zZWN0aW9uIHtcbiAgICAgICAgLm14X1NldHRpbmdzVGFiX3NlY3Rpb25fY2FwdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG5cbiAgICAgICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMThweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiArIHNwYW4ge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMThweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyNnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlU2V0dGluZ3NEaWFsb2dfYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbi10b3A6IDY0cHg7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25faGFzS2luZCB7XG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmsge1xuICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBtYXJnaW46IDdweCAxOHB4O1xuXG4gICAgICAgICAgICAmLm14X1NldHRpbmdzVGFiX3Nob3dBZHZhbmNlZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxOHB4IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3BvdGxpZ2h0RGlhbG9nX3dyYXBwZXIge1xuICAgIC5teF9EaWFsb2dfYm9yZGVyIHtcbiAgICAgICAgLyogRGlzYWJsZSB0aGUgZ2xhc3MgYm9yZGVyIGFzIHRoaXMgZGlhbG9nIHdhc24ndCBkZXNpZ25lZCB3aXRoIGl0IGluIG1pbmQgKi9cbiAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZyB7XG4gICAgICAgIC8qICFpbXBvcnRhbnQgYmVjYXVzZSBpdCdzIG92ZXJyaWRpbmcgY29tcG91bmQgICovXG4gICAgICAgIHdpZHRoOiBmaXQtY29udGVudCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiA2MCUgIWltcG9ydGFudDtcbiAgICAgICAgb3ZlcmZsb3cteTogaW5pdGlhbDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjb250YWluOiB1bnNldDsgLyogbmVlZGVkIGZvciAjbXhfU3BvdGxpZ2h0RGlhbG9nX2tleWJvYXJkUHJvbXB0IHRvIG5vdCBiZSBjdWxsZWQgKi9cblxuICAgICAgICAjbXhfU3BvdGxpZ2h0RGlhbG9nX2tleWJvYXJkUHJvbXB0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgICAgIHRvcDogLTYwcHg7IC8qIHJlbGF0aXZlIHRvIHRoZSB0b3Agb2YgdGhlIG1vZGFsICovXG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgIGtiZCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJweCB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIC8qIFRvIGF2b2lkIGFueSBzdHlsaW5nIGluaGVyZW50IHdpdGggPGtiZD4gZWxlbWVudHMgKi9cbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9TcG90bGlnaHREaWFsb2cge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAubXhfRGlhbG9nX2hlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLm14X1Nwb3RsaWdodERpYWxvZ19zZWFyY2hCb3gge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4IDhweCAwIDA7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzeXN0ZW07XG5cbiAgICAgICAgPiAubXhfU3BvdGxpZ2h0RGlhbG9nX2ZpbHRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpIHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTF4KSAzN3B4O1xuXG4gICAgICAgICAgICA+IHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX2ZpbHRlci0tY2xvc2Uge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMXB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzeXN0ZW07XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA+IGlucHV0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgPiAubXhfU3Bpbm5lciB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICB3aWR0aDogdW5zZXQ7XG4gICAgICAgICAgICBoZWlnaHQ6IHVuc2V0O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCg6Zm9jdXMtd2l0aGluKSArICNteF9TcG90bGlnaHREaWFsb2dfY29udGVudCB7XG4gICAgICAgICAgICAvKiBJbmhpYml0IHRoZSBzdHlsaW5nIGlmIGZvY3VzIGlzIG5vdCB3aXRoaW4gdGhlIGlucHV0IHdoaWNoIGhhbmRsZXMga2V5Ym9hcmQgYWNjZXNzaWJpbGl0eSAqL1xuICAgICAgICAgICAgLS1teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uX3NlbGVjdGVkQmdDb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgICAgIC8qIEhpZGUgdGhlIGVudGVyIHByb21wdCBhcyBpbiB0aGlzIHN0YXRlIHByZXNzaW5nIGVudGVyIHdvdWxkIG5vdCBhY3R1YXRlIHRoYXQgb3B0aW9uICovXG4gICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX2VudGVyUHJvbXB0IHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjbXhfU3BvdGxpZ2h0RGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfc2VjdGlvbiB7XG4gICAgICAgICAgICA+IGg0LFxuICAgICAgICAgICAgPiAubXhfU3BvdGxpZ2h0RGlhbG9nX3NlY3Rpb25IZWFkZXIgPiBoNCB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+IGg0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3NlY3Rpb25IZWFkZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfb3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYgKyAubXhfU3BvdGxpZ2h0RGlhbG9nX3NlY3Rpb24ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbiB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uX3NlbGVjdGVkQmdDb2xvciwgJHF1aW5hcnktY29udGVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3JlY2VudGx5Vmlld2VkIHtcbiAgICAgICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXB4OyAvKiBvY2NsdWRlIHRoZSAxcHggdmlzaWJsZSBvZiB0aGUgdmVyeSBuZXh0IHRpbGUgdG8gcHJldmVudCBpdCBsb29raW5nIGJyb2tlbiAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1OHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogNThweDtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDU4cHg7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICAubXhfRGVjb3JhdGVkUm9vbUF2YXRhciB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCA5cHggdmFyKC0tY3BkLXNwYWNlLTF4KTsgLyogbWFpbnRhaW4gY2VudGVyaW5nICovXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiArIC5teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRzLFxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3JlY2VudFNlYXJjaGVzLFxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX290aGVyU2VhcmNoZXMsXG4gICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfaGlkZGVuUmVzdWx0cyB7XG4gICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbiB7XG4gICAgICAgICAgICAgICAgLS1teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uX3NlbGVjdGVkQmdDb2xvcjogJHN5c3RlbTtcblxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDZweCB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbi0tZW5kQWRvcm5tZW50IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRfbXVsdGlsaW5lIHtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KSB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAycHggdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfZW50ZXJQcm9tcHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogOXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRfbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPiAubXhfU3BvdGxpZ2h0RGlhbG9nX21ldGFzcGFjZVJlc3VsdCxcbiAgICAgICAgICAgICAgICA+IC5teF9EZWNvcmF0ZWRSb29tQXZhdGFyLFxuICAgICAgICAgICAgICAgID4gLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgICAgICAgICAgICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRfcHVibGljUm9vbURldGFpbHMge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMDtcblxuICAgICAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3Jlc3VsdF9wdWJsaWNSb29tSGVhZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X3B1YmxpY1Jvb21OYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X3B1YmxpY1Jvb21BbGlhcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogJHNlY29uZGFyeS1jb250ZW50LCBub3QgJHRlcnRpYXJ5LWNvbnRlbnQ6IGF0IDEycHggdGhpcyBoYXMgdG8gbWVldCBXQ0FHIEFBXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDQuNToxKSBhZ2FpbnN0IHRoZSBkaWFsb2cgYmFja2dyb3VuZCwgYW5kIHRlcnRpYXJ5IGlzIDMuNToxIGluIHRoZSBsaWdodFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkYXJrIHRoZW1lcy4gKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X3B1YmxpY1Jvb21EZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfbm90aWZpY2F0aW9uQmFkZ2Uge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbi0tbWVudSxcbiAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbi0tbm90aWZpY2F0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIgc3ZnLFxuICAgICAgICAgICAgICAgICAgICAmOmZvY3VzLXZpc2libGUgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICZbYXJpYS1zZWxlY3RlZD1cInRydWVcIl0ge1xuICAgICAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbi0tbWVudSxcbiAgICAgICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19vcHRpb24tLW5vdGlmaWNhdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvKiAkc2Vjb25kYXJ5LWNvbnRlbnQgaXMgbGVnaWJsZSBhdCByZXN0IGJ1dCBvbmx5IDQuMjoxIGFnYWluc3QgdGhlIGhvdmVyXG4gICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQgKCRxdWluYXJ5LWNvbnRlbnQpLCBzbyBzdGVwIHVwIHRvICRwcmltYXJ5LWNvbnRlbnQgdG8ga2VlcCBXQ0FHIEFBLiAqL1xuICAgICAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3Jlc3VsdF9wdWJsaWNSb29tRGV0YWlscyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3Jlc3VsdF9wdWJsaWNSb29tSGVhZGVyIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X3B1YmxpY1Jvb21BbGlhcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X3B1YmxpY1Jvb21EZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIC5teF9TcG90bGlnaHREaWFsb2dfZW50ZXJQcm9tcHQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19pbnZpdGVMaW5rLFxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX2NyZWF0ZVJvb20ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgICAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogM3B4IHZhcigtLWNwZC1zcGFjZS0yeCkgM3B4IHZhcigtLWNwZC1zcGFjZS03eCk7XG5cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19vdGhlclNlYXJjaGVzIHtcbiAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19vdGhlclNlYXJjaGVzX21lc3NhZ2VTZWFyY2hUZXh0IHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3Jlc3VsdF9kZXRhaWxzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgLyogU2VlIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X3B1YmxpY1Jvb21BbGlhczogMTJweCB0ZXh0IG5lZWRzIDQuNToxIGF0IHJlc3QgdG9vLiAqL1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19yZWNlbnRTZWFyY2hlcyA+IGg0ID4gLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfZW50ZXJQcm9tcHQge1xuICAgICAgICAgICAgcGFkZGluZzogMnB4IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICAvKiBUbyBhdm9pZCBhbnkgc3R5bGluZyBpbmhlcmVudCB3aXRoIDxrYmQ+IGVsZW1lbnRzICovXG4gICAgICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfbWV0YXNwYWNlUmVzdWx0IHN2ZyB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKlxuICogVG8gYXZvaWQgdmlzdWFsIGdsaXRjaGluZyBvZiB0d28gbW9kYWxzIHN0YWNraW5nIGJyaWVmbHksIHdlIGN1c3RvbWlzZSB0aGVcbiAqIHRlcm1zIGRpYWxvZyBzaXppbmcgd2hlbiBpdCB3aWxsIGFwcGVhciBmb3IgdGhlIGludGVncmF0aW9uIG1hbmFnZXIgc28gdGhhdFxuICogaXQgZ2V0cyB0aGUgc2FtZSBiYXNpYyBzaXplIGFzIHRoZSBJTSdzIG93biBtb2RhbC5cbiAqL1xuLm14X1Rlcm1zRGlhbG9nX2ZvckludGVncmF0aW9uTWFuYWdlciAubXhfRGlhbG9nX2JvcmRlciB7XG4gICAgd2lkdGg6IDYwJTtcbiAgICBoZWlnaHQ6IDcwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubXhfVGVybXNEaWFsb2dfdGVybXNUYWJsZUhlYWRlciB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLm14X1Rlcm1zRGlhbG9nX3Rlcm1zVGFibGUge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLm14X1Rlcm1zRGlhbG9nX3NlcnZpY2UsXG4ubXhfVGVybXNEaWFsb2dfc3VtbWFyeSB7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbiAqIENvcHlyaWdodCAyMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9VbnBpbkFsbERpYWxvZyB7XG4gICAgLyogMzk2IGlzIGNvbWluZyBmcm9tIGZpZ21hIGFuZCB3ZSByZW1vdmUgdGhlIGxlZnQgYW5kIHJpZ2h0IHBhZGRpbmdzIG9mIHRoZSBkaWFsb2cgKi9cbiAgICB3aWR0aDogY2FsYygzOTZweCAtICh2YXIoLS1jcGQtc3BhY2UtMTB4KSAqIDIpKTtcbiAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgIC5teF9VbnBpbkFsbERpYWxvZ190aXRsZSB7XG4gICAgICAgIC8qIE92ZXJyaWRlIHRoZSBkZWZhdWx0IGhlYWRpbmcgc3R5bGUgKi9cbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy1zbS1zZW1pYm9sZCkgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICB9XG5cbiAgICAubXhfVW5waW5BbGxEaWFsb2dfYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtOHgpIHZhcigtLWNwZC1zcGFjZS0yeCkgMCB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVXBsb2FkQ29uZmlybURpYWxvZ19maWxlSWNvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG5cbi5teF9VcGxvYWRDb25maXJtRGlhbG9nX3ByZXZpZXdPdXRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubXhfVXBsb2FkQ29uZmlybURpYWxvZ19wcmV2aWV3SW5uZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHdpZHRoOiB2YXIoLS1NZWRpYVByZXZpZXctd2lkdGgpO1xufVxuXG4ubXhfVXBsb2FkQ29uZmlybURpYWxvZ19pbWFnZVByZXZpZXcge1xuICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGRpYWxvZy1jbG9zZS1mZy1jb2xvcjtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0dGluZ3NEaWFsb2dfdG9hc3RDb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IHZhcigtLWNwZC1zcGFjZS0xMHgpO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5teF9Vc2VyU2V0dGluZ3NEaWFsb2dfdGl0bGUge1xuICAgIC8qIE92ZXJyaWRlIGRlZmF1bHQgZGlhbG9nIGZvbnQgc3R5bGUgKi9cbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1oZWFkaW5nLW1kLXJlZ3VsYXIpICFpbXBvcnRhbnQ7XG5cbiAgICAubXhfVXNlclNldHRpbmdzRGlhbG9nX3RpdGxlX3N0cm9uZyB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctbWQtc2VtaWJvbGQpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9WZXJpZnlFTWFpbERpYWxvZyB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHRvcDogMzAwcHg7XG5cbiAgICAubXhfRGlhbG9nIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS02eCkgdmFyKC0tY3BkLXNwYWNlLTZ4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIC8qICFpbXBvcnRhbnQgb3ZlcnJpZGUgY29tcG91bmQgICovXG4gICAgICAgIHdpZHRoOiA0ODVweCAhaW1wb3J0YW50O1xuXG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMjRweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1ZlcmlmeUVNYWlsRGlhbG9nX3RleHQtbGlnaHQge1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0F1dGhCb2R5X2RpZC1ub3QtcmVjZWl2ZSB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRGlhbG9nX2NhbmNlbEJ1dHRvbiB7XG4gICAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCwyMDI1IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1dpZGdldENhcGFiaWxpdGllc1Byb21wdERpYWxvZyB7XG4gICAgLnRleHQtbXV0ZWQge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICB9XG5cbiAgICAubXhfV2lkZ2V0Q2FwYWJpbGl0aWVzUHJvbXB0RGlhbG9nX2NhcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19idXR0b25zIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNDBweDsgLyogZG91YmxlIG5vcm1hbCAqL1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc0ZsYWcge1xuICAgICAgICBsaW5lLWhlaWdodDogY2FsYygkZm9udC0xNHB4ICsgN3B4ICsgN3B4KTsgLyogN3B4IHRvcCAmIGJvdHRvbSBwYWRkaW5nICovXG4gICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcblxuICAgICAgICAubXhfVG9nZ2xlU3dpdGNoIHtcbiAgICAgICAgICAgIC8qIGRvd25zaXplIHRoZSBzd2l0Y2ggKyBiYWxsICovXG4gICAgICAgICAgICB3aWR0aDogJGZvbnQtMzJweDtcbiAgICAgICAgICAgIGhlaWdodDogJGZvbnQtMTVweDtcblxuICAgICAgICAgICAgJi5teF9Ub2dnbGVTd2l0Y2hfb24gPiAubXhfVG9nZ2xlU3dpdGNoX2JhbGwge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGMoMTAwJSAtICRmb250LTE1cHgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfVG9nZ2xlU3dpdGNoX2JhbGwge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbiBDb3B5cmlnaHQgMjAyNiBFbGVtZW50IENyZWF0aW9ucyBMdGQuXG5cbiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Vua25vd25JZGVudGl0eVVzZXJzV2FybmluZ0RpYWxvZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGhlaWdodDogNjAwcHg7IC8qIENvbnNpc3RlbmN5IHdpdGggSW52aXRlRGlhbG9nICovXG59XG5cbi5teF9Vbmtub3duSWRlbnRpdHlVc2Vyc1dhcm5pbmdEaWFsb2dfaGVhZGVyQ29udGFpbmVyIHtcbiAgICAvKiBDZW50cmUgdGhlIFBhZ2VIZWFkZXIgY29tcG9uZW50IGhvcml6b250YWxseSAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAvKiBTdHlsaW5nIGZvciB0aGUgcmVndWxhciB0ZXh0IGluc2lkZSB0aGUgaGVhZGVyICovXG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1sZy1yZWd1bGFyKTtcblxuICAgIC8qIFNwYWNlIGJlZm9yZSB0aGUgbGlzdCAqL1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xufVxuXG4ubXhfVW5rbm93bklkZW50aXR5VXNlcnNXYXJuaW5nRGlhbG9nX3VzZXJMaXN0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogYXV0bztcblxuICAgIC8qIEZpbGwgYXZhaWxhYmxlIHZlcnRpY2FsIHNwYWNlLCBidXQgZG9uJ3QgYWxsb3cgaXQgdG8gc2hyaW5rIHRvIGxlc3MgdGhhbiA2MHB4IChhYm91dCB0aGUgaGVpZ2h0IG9mIGEgc2luZ2xlIHRpbGUpICovXG4gICAgZmxleDogMSAwIDYwcHg7XG5cbiAgICAvKiBSZW1vdmUgYnJvd3NlciBkZWZhdWx0IHVsIHBhZGRpbmcvbWFyZ2luICovXG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5teF9Vbmtub3duSWRlbnRpdHlVc2Vyc1dhcm5pbmdEaWFsb2dfYnV0dG9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICA+IGJ1dHRvbiB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTgsIDIwMTkgLCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BY2Nlc3NTZWNyZXRTdG9yYWdlRGlhbG9nIHtcbiAgICAmLm14X0VuY3J5cHRpb25DYXJkIHtcbiAgICAgICAgLyogb3ZlcnJpZGUgc29tZSBzdHlsZXMgdGhhdCB3ZSBkb24ndCBuZWVkICovXG4gICAgICAgIGJvcmRlcjogMHB4IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICB9XG5cbiAgICAubXhfQWNjZXNzU2VjcmV0U3RvcmFnZURpYWxvZ19wcmltYXJ5Q29udGFpbmVyIHtcbiAgICAgICAgLm14X0FjY2Vzc1NlY3JldFN0b3JhZ2VEaWFsb2dfcmVjb3ZlcnlLZXlFbnRyeSB7XG4gICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAqIEZyb20gZmlnbWE6IGh0dHBzOi8vd3d3LmZpZ21hLmNvbS9kZXNpZ24vWm9kQkx0R25LbVJUR0pvNVNHTG5IMy9FUi0xMzctLUV4Y2x1ZGluZy1JbnNlY3VyZS1EZXZpY2VzP25vZGUtaWQ9MTAyLTQzNzI5JnQ9UW1ld0VOVWQ3ZjZUbXc5VS0xXG4gICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICB3aWR0aDogNDQ4cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA3MHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDlweDtcbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQWNjZXNzU2VjcmV0U3RvcmFnZURpYWxvZ19yZWNvdmVyeUtleUZlZWRiYWNrIHtcbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIG1hc2stc2l6ZTogMjBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogNXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X0FjY2Vzc1NlY3JldFN0b3JhZ2VEaWFsb2dfcmVjb3ZlcnlLZXlGZWVkYmFjay0taW52YWxpZCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhbGVydDtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0VuY3J5cHRpb25DYXJkX2J1dHRvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMjB4KTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ3JlYXRlQ3Jvc3NTaWduaW5nRGlhbG9nIHtcbiAgICAvKiBXaHkgeW91IGFzaz8gQmVjYXVzZSBDb21wbGV0ZVNlY3VyaXR5Qm9keSBpcyA2MDBweCBzbyB0aGlzIGlzIHRoZSB3aWR0aCAqL1xuICAgIC8qIHdlIGVuZCB1cCB3aGVuIGluIHRoZXJlLCBidXQgd2hlbiBpbiBvdXIgb3duIGRpYWxvZyB3ZSBzZXQgb3VyIG93biB3aWR0aCAqL1xuICAgIC8qIHNvIG5lZWQgdG8gZml4IGl0IHRvIHNvbWV0aGluZyBzZW5zaWJsZSBhcyBvdGhlcndpc2Ugd2UnZCBlbmQgdXAgZWl0aGVyICovXG4gICAgLyogcmVhbGx5IHdpZGUgb3IgcmVhbGx5IG5hcnJvdyBkZXBlbmRpbmcgb24gdGhlIHBoYXNlLiBJIGJldCB5b3Ugd2lzaCB5b3UgKi9cbiAgICAvKiBuZXZlciBhc2tlZC4gKi9cbiAgICB3aWR0aDogNTYwcHg7XG5cbiAgICBkZXRhaWxzIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgbWFyZ2luOiAxZW0gMDsgLyogZW11bGF0ZSBwYXJhZ3JhcGggc3BhY2luZyBiZWNhdXNlIHdlIGNhbid0IHB1dCB0aGlzIGJ1dHRvbiBpbiBhIHBhcmFncmFwaCBkdWUgdG8gSFRNTCBydWxlcyAqL1xuICAgIH1cbn1cblxuLm14X0NyZWF0ZUNyb3NzU2lnbmluZ0RpYWxvZyAubXhfRGlhbG9nX3RpdGxlIHtcbiAgICAvKiBUT0RPOiBDb25zaWRlciBzZXR0aW5nIHRoaXMgZm9yIGFsbCBkaWFsb2cgdGl0bGVzLiAqL1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5LCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxOCBOZXcgVmVjdG9yIEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZyB7XG4gICAgLyogV2h5IHlvdSBhc2s/IEJlY2F1c2UgQ29tcGxldGVTZWN1cml0eUJvZHkgaXMgNjAwcHggc28gdGhpcyBpcyB0aGUgd2lkdGggKi9cbiAgICAvKiB3ZSBlbmQgdXAgd2hlbiBpbiB0aGVyZSwgYnV0IHdoZW4gaW4gb3VyIG93biBkaWFsb2cgd2Ugc2V0IG91ciBvd24gd2lkdGggKi9cbiAgICAvKiBzbyBuZWVkIHRvIGZpeCBpdCB0byBzb21ldGhpbmcgc2Vuc2libGUgYXMgb3RoZXJ3aXNlIHdlJ2QgZW5kIHVwIGVpdGhlciAqL1xuICAgIC8qIHJlYWxseSB3aWRlIG9yIHJlYWxseSBuYXJyb3cgZGVwZW5kaW5nIG9uIHRoZSBwaGFzZS4gSSBiZXQgeW91IHdpc2ggeW91ICovXG4gICAgLyogbmV2ZXIgYXNrZWQuICovXG4gICAgd2lkdGg6IDU2MHB4O1xuXG4gICAgJi5teF9TdWNjZXNzRGlhbG9nIHtcbiAgICAgICAgcGFkZGluZzogNTZweDsgLyogODBweCBmcm9tIGRlc2lnbiAtIDI0cHggd3JhcHBlciBwYWRkaW5nICovXG5cbiAgICAgICAgLm14X0RpYWxvZ190aXRsZSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzRmxhZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzRmxhZ19sYWJlbCB7XG4gICAgICAgIGZsZXg6IDEgMSAwO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIH1cblxuICAgIC5teF9Ub2dnbGVTd2l0Y2gge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgfVxuXG4gICAgZGV0YWlscyAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbjogMWVtIDA7IC8qIGVtdWxhdGUgcGFyYWdyYXBoIHNwYWNpbmcgYmVjYXVzZSB3ZSBjYW4ndCBwdXQgdGhpcyBidXR0b24gaW4gYSBwYXJhZ3JhcGggZHVlIHRvIEhUTUwgcnVsZXMgKi9cbiAgICB9XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nIC5teF9EaWFsb2dfdGl0bGUge1xuICAgIC8qIFRPRE86IENvbnNpZGVyIHNldHRpbmcgdGhpcyBmb3IgYWxsIGRpYWxvZyB0aXRsZXMuICovXG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19jZW50ZXJlZFRpdGxlLFxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfY2VudGVyZWRCb2R5IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3ByaW1hcnlDb250YWluZXIge1xuICAgIC8qIEZJWE1FOiBwbGludGggY29sb3VyIGluIG5ldyB0aGVtZShzKS4gYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDsgKi9cbiAgICBwYWRkaW5nLXRvcDogMjBweDtcblxuICAgICYubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19yZWNvdmVyeUtleVByaW1hcnljb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3ByaW1hcnlDb250YWluZXI6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19wcmltYXJ5Q29udGFpbmVyIC5teF9TdHlsZWRSYWRpb0J1dHRvbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBwYWRkaW5nOiAxMXB4O1xufVxuXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19vcHRpb25UaXRsZSB7XG4gICAgY29sb3I6ICRkaWFsb2ctdGl0bGUtZmctY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgZm9udC1zaXplOiAkZm9udC0xOHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xufVxuXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19wYXNzUGhyYXNlQ29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xufVxuXG4ubXhfRmllbGQubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19wYXNzUGhyYXNlRmllbGQge1xuICAgIG1hcmdpbi10b3A6IDBweDtcbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcGFzc1BocmFzZU1hdGNoIHtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3JlY292ZXJ5S2V5Q29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3JlY292ZXJ5S2V5IHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMjBweDtcbiAgICBjb2xvcjogJGluZm8tcGxpbnRoLWZnLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRpbmZvLXBsaW50aC1iZy1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgd29yZC1zcGFjaW5nOiAxZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcblxuICAgIGNvZGUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiAzMHJlbTtcbiAgICB9XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3JlY292ZXJ5S2V5QnV0dG9ucyB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMTZweDtcbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcmVjb3ZlcnlLZXlCdXR0b25zX2NvcHlCdG4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3JlY292ZXJ5S2V5QnV0dG9ucyAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX2NvbnRpbnVlU3Bpbm5lciB7XG4gICAgbWFyZ2luLXRvcDogMzNweDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfY29udGludWVTcGlubmVyIGltZyB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE4LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9LZXlCYWNrdXBGYWlsZWREaWFsb2cgLm14X0RpYWxvZ190aXRsZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzJweDtcbn1cblxuLm14X0tleUJhY2t1cEZhaWxlZERpYWxvZ190aXRsZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG5cbiAgICBzdmcge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiAtMnB4O1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICB9XG59XG5cbi5teF9LZXlCYWNrdXBGYWlsZWREaWFsb2cgLm14X0RpYWxvZ19idXR0b25zIHtcbiAgICBtYXJnaW4tdG9wOiAzNnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE4IE5ldyBWZWN0b3IgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9SZXN0b3JlS2V5QmFja3VwRGlhbG9nX2tleVN0YXR1cyB7XG4gICAgaGVpZ2h0OiAzMHB4O1xufVxuXG4ubXhfUmVzdG9yZUtleUJhY2t1cERpYWxvZ19wcmltYXJ5Q29udGFpbmVyIHtcbiAgICAvKiBGSVhNRTogcGxpbnRoIGNvbG91ciBpbiBuZXcgdGhlbWUocykuIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7ICovXG4gICAgcGFkZGluZzogMjBweDtcbn1cblxuLm14X1Jlc3RvcmVLZXlCYWNrdXBEaWFsb2dfcGFzc1BocmFzZUlucHV0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBwYWRkaW5nOiA5cHg7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1zZW1pYm9sZCk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cbn1cblxuLm14X1Jlc3RvcmVLZXlCYWNrdXBEaWFsb2dfcGFzc1BocmFzZUlucHV0LFxuLm14X1Jlc3RvcmVLZXlCYWNrdXBEaWFsb2dfcmVjb3ZlcnlLZXlJbnB1dCB7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRhY2NlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIHBhZGRpbmc6IDEwcHg7XG59XG5cbi5teF9SZXN0b3JlS2V5QmFja3VwRGlhbG9nX2NvbnRlbnQgPiBkaXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWluLWhlaWdodDogMTEwcHg7IC8qIEVtcGlyaWNhbGx5IG1lYXN1cmVkICovXG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTmV0d29ya0Ryb3Bkb3duX3dyYXBwZXIgLm14X0NvbnRleHR1YWxNZW51IHtcbiAgICAubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24ge1xuICAgICAgICAmLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfT3B0aW9uLS1oZWFkZXIge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTYwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfT3B0aW9uLS1pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICAgICAgICAgID4gLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfT3B0aW9uLS1sYWJlbCBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPiAubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWxhYmVsIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgICAgICAgICBhbGlnbi1jb250ZW50OiBiYXNlbGluZTtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICBzcGFuOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfZGl2aWRlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICAgICAgJiArIC5teF9HZW5lcmljRHJvcGRvd25NZW51X09wdGlvbiAubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWxhYmVsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X05ldHdvcmtEcm9wZG93bl9yZW1vdmVTZXJ2ZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIHBhZGRpbmc6IDFweDtcbiAgICBiYWNrZ3JvdW5kOiAkcXVpbmFyeS1jb250ZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgIHN2ZyB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgfVxufVxuXG4ubXhfTmV0d29ya0Ryb3Bkb3duX2RpYWxvZyAubXhfRGlhbG9nIHtcbiAgICB3aWR0aDogNDV2dztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE3IFZlY3RvciBDcmVhdGlvbnMgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAmOndoZXJlKGJ1dHRvbikge1xuICAgICAgICAvKiBDbGVhciBkZWZhdWx0IGJ1dHRvbiBzdHlsaW5nICovXG4gICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgfVxuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2Rpc2FibGVkIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9pY29uX3ByaW1hcnksXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2ljb25fcHJpbWFyeV9vdXRsaW5lLFxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5LFxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5X291dGxpbmUsXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnlfc20sXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmssXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfYWNjZW50LFxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rX2lubGluZSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfZGFuZ2VyX2lubGluZSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfY29udGVudF9pbmxpbmUsXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfc20ge1xuICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2hhc0tpbmQge1xuICAgICAgICBwYWRkaW5nOiA3cHggMThweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgICAgICBib3JkZXI6IG5vbmU7IC8qIG92ZXJyaWRlIGRlZmF1bHQgPGJ1dHRvbiAvPiBzdHlsZXMgKi9cbiAgICAgICAgd29yZC1icmVhazoga2VlcC1hbGw7IC8qIHByZXZlbnQgYnV0dG9uIHRleHQgaW4gQ2hpbmVzZS9KYXBhbmVzZS9Lb3JlYW4gKENKSykgZnJvbSBiZWluZyBjb2xsYXBzZWQgKi9cbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5X3NtLFxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9kYW5nZXJfc20sXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfc20ge1xuICAgICAgICAgICAgcGFkZGluZzogNXB4IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5X3NtIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1vbi1zb2xpZC1wcmltYXJ5KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1yZXN0KTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1yZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9zbSB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtb24tc29saWQtcHJpbWFyeSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYmctY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rX3NtIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9pY29uLFxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9pY29uX3ByaW1hcnksXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2ljb25fcHJpbWFyeV9vdXRsaW5lIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgICAgICB3aWR0aDogMzJweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2ljb25fcHJpbWFyeSxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9pY29uX3ByaW1hcnlfb3V0bGluZSxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5LFxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnlfb3V0bGluZSxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9zZWNvbmRhcnkge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9pY29uX3ByaW1hcnksXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1yZXN0KTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LW9uLXNvbGlkLXByaW1hcnkpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktcmVzdCk7XG4gICAgfVxuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfaWNvbl9wcmltYXJ5X291dGxpbmUsXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeV9vdXRsaW5lIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfc2Vjb25kYXJ5IHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9kYW5nZXIge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtb24tc29saWQtcHJpbWFyeSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJnLWNyaXRpY2FsLXByaW1hcnkpO1xuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtb24tc29saWQtcHJpbWFyeSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9kYW5nZXJfb3V0bGluZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItY3JpdGljYWwtc3VidGxlKTtcblxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWRpc2FibGVkKTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1kaXNhYmxlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9kYW5nZXJfc20ge1xuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fZGlzYWJsZWQge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWRpc2FibGVkKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtcHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rLFxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfaW5saW5lLFxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9pbmxpbmUsXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfY29udGVudF9pbmxpbmUge1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGluayxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rX2lubGluZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9kYW5nZXJfaW5saW5lIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWNyaXRpY2FsLXByaW1hcnkpO1xuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2NvbnRlbnRfaW5saW5lIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19pbmxpbmUsXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfZGFuZ2VyX2lubGluZSxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9jb250ZW50X2lubGluZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5Db3B5cmlnaHQgMjAxOSBOZXcgVmVjdG9yIEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ29weWFibGVUZXh0IHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAmLm14X0NvcHlhYmxlVGV4dF9ib3JkZXIge1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweCAkbGlnaHQtZmctY29sb3I7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgfVxuXG4gICAgLm14X0NvcHlhYmxlVGV4dF9jb3B5QnV0dG9uIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAvKiBJZiB0aGUgY29weSBidXR0b24gaXMgdXNlZCB3aXRoaW4gYSBzY3JvbGxhYmxlIGRpdiwgbWFrZSBpdCBzdGljayB0byB0aGUgcmlnaHQgd2hpbGUgc2Nyb2xsaW5nICovXG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBjb2xvcjogJG1lc3NhZ2UtYWN0aW9uLWJhci1mZy1jb2xvcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfZGVza3RvcENhcHR1cmVyU291cmNlUGlja2VyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLm14X2Rlc2t0b3BDYXB0dXJlclNvdXJjZVBpY2tlcl90YWIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgaGVpZ2h0OiA1MDBweDtcbiAgICAgICAgb3ZlcmZsb3c6IG92ZXJsYXk7XG5cbiAgICAgICAgLm14X2Rlc2t0b3BDYXB0dXJlclNvdXJjZVBpY2tlcl9zb3VyY2Uge1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAgICAubXhfZGVza3RvcENhcHR1cmVyU291cmNlUGlja2VyX3NvdXJjZV90aHVtYm5haWwge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogNHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDJweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gICAgICAgICAgICAgICAgJi5teF9kZXNrdG9wQ2FwdHVyZXJTb3VyY2VQaWNrZXJfc291cmNlX3RodW1ibmFpbF9zZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfZGVza3RvcENhcHR1cmVyU291cmNlUGlja2VyX3NvdXJjZV9uYW1lIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgNHB4O1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EaWFsUGFkQmFja3NwYWNlQnV0dG9uIHtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcblxuICAgIHN2ZyB7XG4gICAgICAgIGNvbG9yOiAjOGQ5N2E1O1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTcgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0Ryb3Bkb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9Ecm9wZG93bl9kaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC4zO1xufVxuXG4ubXhfRHJvcGRvd25faW5wdXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtc2Vjb25kYXJ5KTtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubXhfRHJvcGRvd25faW5wdXQubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLm14X0Ryb3Bkb3duX2lucHV0OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICRhY2NlbnQtYWx0O1xufVxuXG4vKiBEaXNhYmxlIGRyb3Bkb3duIGhpZ2hsaWdodCBvbiBmb2N1cyAqL1xuLm14X0Ryb3Bkb3duX2lucHV0Lm14X0FjY2Vzc2libGVCdXR0b246Zm9jdXMge1xuICAgIGZpbHRlcjogbm9uZTtcbn1cblxuc3ZnLm14X0Ryb3Bkb3duX2Fycm93IHtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAzcHg7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9Ecm9wZG93bl9vcHRpb24ge1xuICAgIGhlaWdodDogMzVweDtcbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMzVweDtcbiAgICAvKiBPdmVyd3JpdGVzIHRoZSBkZWZhdWx0IHBhZGRpbmcgZm9yIGFueSBsaSBlbGVtZW50cyAqL1xuICAgIHBhZGRpbmc6IDAgOHB4O1xufVxuXG4ubXhfRHJvcGRvd25faW5wdXQgPiAubXhfRHJvcGRvd25fb3B0aW9uIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubXhfRHJvcGRvd25fb3B0aW9uIGRpdiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ubXhfRHJvcGRvd25fb3B0aW9uIGltZyxcbi5teF9Ecm9wZG93bl9vcHRpb24gLm14X0Ryb3Bkb3duX29wdGlvbl9lbW9qaSB7XG4gICAgbWFyZ2luOiA1cHg7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm14X0Ryb3Bkb3duX29wdGlvbl9lbW9qaSB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNnB4O1xufVxuXG5pbnB1dC5teF9Ecm9wZG93bl9vcHRpb24sXG5pbnB1dC5teF9Ecm9wZG93bl9vcHRpb246Zm9jdXMge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIC8qIFhYWDogaGFjayB0byBwcmV2ZW50IHRleHQgYm94IGJlaW5nIHRvbyBiaWcgYW5kIHB1c2hpbmcgKi9cbiAgICAvKiBpdHMgcGFyZW50IG91dCAvIG92ZXJsYXBwaW5nIHRoZSBkcm9wZG93biBhcnJvdy4gT25seSByZWFsbHkgKi9cbiAgICAvKiB3b3JrcyBpbiB0aGUgQ291bnRyeSBkcm9wZG93bi4gKi9cbiAgICB3aWR0aDogNjAlO1xufVxuXG4ubXhfRHJvcGRvd25fbWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IC0xcHg7XG4gICAgcmlnaHQ6IC0xcHg7XG4gICAgdG9wOiAxMDAlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudC1hbHQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgbWF4LWhlaWdodDogMjAwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLm14X0Ryb3Bkb3duX21lbnUgLm14X0Ryb3Bkb3duX29wdGlvbiB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDM1cHg7XG59XG5cbnVsLm14X0Ryb3Bkb3duX21lbnUgbGkubXhfRHJvcGRvd25fb3B0aW9uIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4ubXhfRHJvcGRvd25fbWVudSAubXhfRHJvcGRvd25fb3B0aW9uX2hpZ2hsaWdodCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGZvY3VzLWJnLWNvbG9yO1xufVxuXG4ubXhfRHJvcGRvd25fc2VhcmNoUHJvbXB0IHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE3LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FZGl0YWJsZUl0ZW1MaXN0IHtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5teF9FZGl0YWJsZUl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuXG4ubXhfRWRpdGFibGVJdGVtX2RlbGV0ZSB7XG4gICAgQG1peGluIGN1c3RvbWlzZWRDYW5jZWxCdXR0b247XG4gICAgb3JkZXI6IDM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB3aWR0aDogMjhweDtcbiAgICBoZWlnaHQ6IDI4cHg7XG4gICAgbWFzay1zaXplOiAxMDAlO1xufVxuXG4ubXhfRWRpdGFibGVJdGVtX2VtYWlsIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubXhfRWRpdGFibGVJdGVtX3Byb21wdFRleHQge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBvcmRlcjogMjtcbn1cblxuLm14X0VkaXRhYmxlSXRlbV9jb25maXJtQnRuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLm14X0VkaXRhYmxlSXRlbV9pdGVtIHtcbiAgICBmbGV4OiBhdXRvIDEgMDtcbiAgICBvcmRlcjogMTtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMjhweCk7IC8qIGxlYXZlIHNwYWNlIGZvciB0aGUgcmVtb3ZlIGJ1dHRvbiAqL1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLm14X0VkaXRhYmxlSXRlbUxpc3RfbGFiZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FcnJvckJvdW5kYXJ5IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ubXhfRXJyb3JCb3VuZGFyeV9ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0V4dGVybmFsTGluayB7XG4gICAgY29sb3I6ICRsaW5rcztcbn1cblxuLm14X0V4dGVybmFsTGlua19pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6ICRmb250LTExcHg7XG4gICAgaGVpZ2h0OiAkZm9udC0xMXB4O1xuICAgIG1hcmdpbi1sZWZ0OiAwLjNyZW07XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9GYWNlUGlsZV9tb3JlIHtcbiAgICAvKiBOZWVkZWQgdG8gY2FsY3VsYXRlIHRoZSBvZmZzZXQgb24gdGhlIGZhY2UgcGlsZSAqL1xuICAgIC0tY3BkLWF2YXRhci1zaXplOiAyOHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHBhbmVscztcbiAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHotaW5kZXg6IDE7XG4gICAgLyogRm9yIGVuaGFuY2VkIHZpc2liaWxpdHkgdW5kZXIgY29udHJhc3QgY29udHJvbCAqL1xuICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLm14X0ZhY2VQaWxlX3N1bW1hcnkge1xuICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qIFRPRE86IENvbnNpZGVyIHVuaWZ5aW5nIHdpdGggZ2VuZXJhbCBpbnB1dCBzdHlsZXMgaW4gX2xpZ2h0LnBjc3MgKi9cblxuLm14X0ZpZWxkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4yNXM7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xufVxuXG4ubXhfRmllbGRfcHJlZml4IHtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG59XG5cbi5teF9GaWVsZF9wb3N0Zml4IHtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtc2Vjb25kYXJ5KTtcbn1cblxuLm14X0ZpZWxkIGlucHV0LFxuLm14X0ZpZWxkIHNlbGVjdCxcbi5teF9GaWVsZCB0ZXh0YXJlYSB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgLyogRXZlbiB3aXRob3V0IGEgYm9yZGVyIGhlcmUsIHdlIHN0aWxsIG5lZWQgdGhpcyBhdm9pZCBvdmVybGFwcGluZyB0aGUgcm91bmRlZCAqL1xuICAgIC8qIGNvcm5lcnMgb24gdGhlIGZpZWxkIGFib3ZlLiAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiA4cHggOXB4O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGZsZXg6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4ubXhfRmllbGQgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB9XG59XG5cbi5teF9GaWVsZCBzZWxlY3Qge1xuICAgIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5teF9GaWVsZF9zZWxlY3RfY2hldnJvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICByaWdodDogNHB4O1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICB6LWluZGV4OiAxO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubXhfRmllbGQ6Zm9jdXMtd2l0aGluIHtcbiAgICBib3JkZXItY29sb3I6ICRhY2NlbnQtYWx0O1xufVxuXG4ubXhfRmllbGQgaW5wdXQ6Zm9jdXMsXG4ubXhfRmllbGQgc2VsZWN0OmZvY3VzLFxuLm14X0ZpZWxkIHRleHRhcmVhOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xufVxuXG4ubXhfRmllbGQgaW5wdXQ6OnBsYWNlaG9sZGVyLFxuLm14X0ZpZWxkIHRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4yNXMgZWFzZS1pbiAwcztcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi5teF9GaWVsZCBpbnB1dDpwbGFjZWhvbGRlci1zaG93bjpmb2N1czo6cGxhY2Vob2xkZXIsXG4ubXhfRmllbGQgdGV4dGFyZWE6cGxhY2Vob2xkZXItc2hvd246Zm9jdXM6OnBsYWNlaG9sZGVyLFxuLm14X0ZpZWxkLm14X0ZpZWxkX3BsYWNlaG9sZGVySXNIaW50IGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4yNXMgZWFzZS1pbiAwLjFzO1xuICAgIGNvbG9yOiAkaW5mby1wbGludGgtZmctY29sb3I7XG59XG5cbi5teF9GaWVsZCBsYWJlbCB7XG4gICAgdHJhbnNpdGlvbjpcbiAgICAgICAgZm9udC1zaXplIDAuMjVzIGVhc2Utb3V0IDAuMXMsXG4gICAgICAgIGNvbG9yIDAuMjVzIGVhc2Utb3V0IDAuMXMsXG4gICAgICAgIHRyYW5zZm9ybSAwLjI1cyBlYXNlLW91dCAwLjFzLFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDAuMjVzIGVhc2Utb3V0IDAuMXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDBweDtcbiAgICBtYXJnaW46IDdweCA4cHg7XG4gICAgcGFkZGluZzogMnB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBBbGxvdyBjbGlja3MgdG8gZmFsbCB0aHJvdWdoIHRvIHRoZSBpbnB1dCAqL1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpOyAvKiAxMDAlIG9mIHBhcmVudCBtaW51cyBtYXJnaW4gYW5kIHBhZGRpbmcgKi9cbn1cblxuLm14X0ZpZWxkX2xhYmVsQWx3YXlzVG9wTGVmdCBsYWJlbCxcbi5teF9GaWVsZCBzZWxlY3QgKyBsYWJlbCAvKiBBbHdheXMgc2hvdyBhIHNlbGVjdCdzIGxhYmVsIG9uIHRvcCB0byBub3QgY29sbGlkZSB3aXRoIHRoZSB2YWx1ZSAqLyxcbi5teF9GaWVsZCBpbnB1dDpmb2N1cyArIGxhYmVsLFxuLm14X0ZpZWxkIGlucHV0Om5vdCg6cGxhY2Vob2xkZXItc2hvd24pICsgbGFiZWwsXG4ubXhfRmllbGQgdGV4dGFyZWE6Zm9jdXMgKyBsYWJlbCxcbi5teF9GaWVsZCB0ZXh0YXJlYTpub3QoOnBsYWNlaG9sZGVyLXNob3duKSArIGxhYmVsIHtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgICBmb250LXNpemUgMC4yNXMgZWFzZS1vdXQgMHMsXG4gICAgICAgIGNvbG9yIDAuMjVzIGVhc2Utb3V0IDBzLFxuICAgICAgICB0cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQgMHMsXG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQgMHM7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTNweCk7XG4gICAgcGFkZGluZzogMCAycHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7XG59XG5cbi5teF9GaWVsZCBpbnB1dDpmb2N1cyArIGxhYmVsLFxuLm14X0ZpZWxkIHNlbGVjdDpmb2N1cyArIGxhYmVsLFxuLm14X0ZpZWxkIHRleHRhcmVhOmZvY3VzICsgbGFiZWwge1xuICAgIGNvbG9yOiAkYWNjZW50LWFsdDtcbn1cblxuLm14X0ZpZWxkIHNlbGVjdDpkaXNhYmxlZCxcbi5teF9GaWVsZCBzZWxlY3Q6ZGlzYWJsZWQgKyBsYWJlbCxcbi5teF9GaWVsZCBpbnB1dDpkaXNhYmxlZCxcbi5teF9GaWVsZCBpbnB1dDpkaXNhYmxlZCArIGxhYmVsLFxuLm14X0ZpZWxkIHRleHRhcmVhOmRpc2FibGVkLFxuLm14X0ZpZWxkIHRleHRhcmVhOmRpc2FibGVkICsgbGFiZWwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkaW5mby1wbGludGgtZmctY29sb3I7XG59XG5cbi5teF9GaWVsZF92YWxpZCB7XG4gICAgJi5teF9GaWVsZCxcbiAgICAmLm14X0ZpZWxkOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGFjY2VudDtcbiAgICB9XG5cbiAgICAmLm14X0ZpZWxkIGxhYmVsLFxuICAgICYubXhfRmllbGQ6Zm9jdXMtd2l0aGluIGxhYmVsIHtcbiAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgfVxufVxuXG4ubXhfRmllbGRfaW52YWxpZCB7XG4gICAgJi5teF9GaWVsZCxcbiAgICAmLm14X0ZpZWxkOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGFsZXJ0O1xuICAgIH1cblxuICAgICYubXhfRmllbGQgbGFiZWwsXG4gICAgJi5teF9GaWVsZDpmb2N1cy13aXRoaW4gbGFiZWwge1xuICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgIH1cbn1cblxuLyogQ3VzdG9taXNlIG90aGVyIGNvbXBvbmVudHMgd2hlbiBwbGFjZWQgaW5zaWRlIGEgRmllbGQgKi9cblxuLm14X0ZpZWxkIC5teF9Ecm9wZG93bl9pbnB1dCB7XG4gICAgYm9yZGVyOiBpbml0aWFsO1xuICAgIGJvcmRlci1yYWRpdXM6IGluaXRpYWw7XG59XG5cbi5teF9GaWVsZCAubXhfQ291bnRyeURyb3Bkb3duIHtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV9hdmF0YXJzIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cblxuICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV9zcGFjZXIge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHByaW1hcnktaGFpcmxpbmUtY29sb3I7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2M3B4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMzBweDsgLyogVE9ETzogVXNlIGEgdmFyaWFibGUgKi9cblxuICAgICAgICAubXhfSVJDTGF5b3V0ICYge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV90b2dnbGUge1xuICAgICAgICAvKiBXZSByZXVzZSBhIHRpdGxlIGNhc2VkIHRyYW5zbGF0aW9uICovXG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XG4gICAgfVxuXG4gICAgJltkYXRhLWxheW91dD1cImlyY1wiXSxcbiAgICAmW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfdG9nZ2xlIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmU6IDAgMTBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZbZGF0YS1sYXlvdXQ9XCJncm91cFwiXSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgfVxuXG4gICAgJltkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgICAgIC0tbWF4V2lkdGg6IDcwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tYXZhdGFyU2l6ZSkgKyB2YXIoLS1ndXR0ZXJTaXplKSk7XG5cbiAgICAgICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3RvZ2dsZSB7XG4gICAgICAgICAgICBtYXJnaW4tYmxvY2s6IDA7XG5cbiAgICAgICAgICAgICZbYXJpYS1leHBhbmRlZD1cImZhbHNlXCJdIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogOTsgLyogVE9ETzogUmVtb3ZlICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZbYXJpYS1leHBhbmRlZD1cInRydWVcIl0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87IC8qIHJlZHVjZSBjbGlja2FibGUgYXJlYSAqL1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1FdmVudFRpbGVfYnViYmxlLW1hcmdpbi1pbmxpbmUtZW5kKTsgLyogYXMgdGhlIHBhcmVudCBoYXMgemVybyBtYXJnaW4gKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV9zcGFjZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1leHBhbmRlZD1cImZhbHNlXCJdIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBjb2x1bW4tZ2FwOiA1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBpZGVhbGx5IHdlJ2QgdXNlIGRpc3BsYXk9Y29udGVudHMgaGVyZSBmb3IgdGhlIGxheW91dCB0byBhbGwgd29yayByZWdhcmRsZXNzIG9mIHRoZSAqRUxTIGJ1dCAqL1xuICAgICAgICAvKiB0aGF0IGJyZWFrcyBTY3JvbGxQYW5lbCdzIHJlbGlhbmNlIHVwb24gb2Zmc2V0VG9wIHNvIHdlIGhhdmUgdG8gaGF2ZSBhIGJpdCBtb3JlIGZpbmVzc2UuICovXG4gICAgICAgICZbZGF0YS1leHBhbmRlZD1cInRydWVcIl0ge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXQgJiB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTNweDtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcblxuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfc3BhY2VyIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM3NTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9UZXh0dWFsRXZlbnQubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfc3VtbWFyeSB7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogTWFrZSBhbGwgc3RhdGUgZXZlbnRzIG9uZSBvcmRlciBzbWFsbGVyIHRoYW4gdGhlIG90aGVyIGV2ZW50cyAqL1xuICAgIC5teF9FdmVudFRpbGUge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cbn1cblxuLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3Vuc3R5bGVkTGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4ubXhfVGV4dHVhbEV2ZW50Lm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3N1bW1hcnkge1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV9hdmF0YXJzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTEycHg7XG5cbiAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTRweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbiRidXR0b24tc2l6ZTogMzJweDtcbiRidXR0b24tZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuXG46cm9vdCB7XG4gICAgLS1pbWFnZS12aWV3LXBhbmVsLWhlaWdodDogNjhweDtcbn1cblxuLm14X0ltYWdlVmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLm14X0ltYWdlVmlld19pbWFnZV93cmFwcGVyIHtcbiAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5teF9JbWFnZVZpZXdfaW1hZ2Uge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgJi5teF9JbWFnZVZpZXdfaW1hZ2VfYW5pbWF0aW5nIHtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIwMG1zIGVhc2UgMHM7XG4gICAgfVxuXG4gICAgJi5teF9JbWFnZVZpZXdfaW1hZ2VfYW5pbWF0aW5nTG9hZGluZyB7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAzMDBtcyBlYXNlIDBzO1xuICAgIH1cbn1cblxuLm14X0ltYWdlVmlld19wYW5lbCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiB2YXIoLS1pbWFnZS12aWV3LXBhbmVsLWhlaWdodCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBhbmltYXRpb24tbmFtZTogbXhfSW1hZ2VWaWV3X3BhbmVsX2tleWZyYW1lcztcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDMwMG1zO1xufVxuXG4ubXhfSW1hZ2VWaWV3X2luZm9fd3JhcHBlciB7XG4gICAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7XG4gICAgcGFkZGluZy1sZWZ0OiAzMnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbG9yOiAkbGlnaHRib3gtZmctY29sb3I7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtYmFzaXM6IDA7XG59XG5cbi5teF9JbWFnZVZpZXdfaW5mbyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLm14X0ltYWdlVmlld19pbmZvX3NlbmRlciB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5teF9JbWFnZVZpZXdfdGl0bGUge1xuICAgIGNvbG9yOiAkbGlnaHRib3gtZmctY29sb3I7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X0ltYWdlVmlld190b29sYmFyIHtcbiAgICAtLWljb24tc2l6ZTogMjRweDtcblxuICAgIHBhZGRpbmctcmlnaHQ6IDE2cHg7XG4gICAgcG9pbnRlci1ldmVudHM6IGluaXRpYWw7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBmbGV4LWJhc2lzOiAwO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZ2FwOiAkYnV0dG9uLWdhcDtcbn1cblxuLm14X0ltYWdlVmlld19idXR0b24ge1xuICAgIHBhZGRpbmc6IGNhbGMoKCRidXR0b24tc2l6ZSAtIHZhcigtLWljb24tc2l6ZSkpIC8gMik7XG4gICAgd2lkdGg6IHZhcigtLWljb24tc2l6ZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1pY29uLXNpemUpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbG9yOiAkaWNvbi1idXR0b24tY29sb3I7XG4gICAgfVxufVxuXG4ubXhfSW1hZ2VWaWV3X2J1dHRvbl9tb3JlIHtcbiAgICAtLWljb24tc2l6ZTogMjhweDtcbn1cblxuLm14X0ltYWdlVmlld19idXR0b25fY2xvc2Uge1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogIzIxMjYyYzsgLyogc2FtZSBvbiBhbGwgdGhlbWVzICovXG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbikge1xuICAgIC5teF9JbWFnZVZpZXdfaW1hZ2VfYW5pbWF0aW5nIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5teF9JbWFnZVZpZXdfaW1hZ2VfYW5pbWF0aW5nTG9hZGluZyB7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW5mb1Rvb2x0aXBfaWNvbiB7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIHN2ZyB7XG4gICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgfVxufVxuXG4ubXhfSW5mb1Rvb2x0aXBfaWNvbjo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxNy0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW5saW5lU3Bpbm5lciB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgbWFyZ2luOiAwcHggNnB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogLTNweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbnZpdGVSZWFzb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG5cbiAgICAubXhfSW52aXRlUmVhc29uX3JlYXNvbiB7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLm14X0ludml0ZVJlYXNvbl92aWV3IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9JbnZpdGVSZWFzb25faGlkZGVuIHtcbiAgICAubXhfSW52aXRlUmVhc29uX3JlYXNvbiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAubXhfSW52aXRlUmVhc29uX3ZpZXcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCwyMDI1IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xhYmVsbGVkQ2hlY2tib3gge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGFuZ3VhZ2VEcm9wZG93biB7XG4gICAgLm14X0Ryb3Bkb3duX29wdGlvbiA+IGRpdiB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NaW5pQXZhdGFyVXBsb2FkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogbWluLWNvbnRlbnQ7XG5cbiAgICAubXhfTWluaUF2YXRhclVwbG9hZGVyX2luZGljYXRvciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG5cbiAgICAgICAgcmlnaHQ6IC02cHg7XG4gICAgICAgIGJvdHRvbTogLTZweDtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuXG4gICAgICAgIC5teF9NaW5pQXZhdGFyVXBsb2FkZXJfY2FtZXJhSWNvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9NaW5pQXZhdGFyVXBsb2FkZXJfaW5wdXQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9QaWxsIHtcbiAgICBwYWRkaW5nOiAkZm9udC0xcHggMC40ZW0gJGZvbnQtMXB4IDAuNGVtO1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xN3B4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRmb250LTE2cHg7XG4gICAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1vbi1zb2xpZC1wcmltYXJ5KSAhaW1wb3J0YW50OyAvKiBUbyBvdmVycmlkZSAubWFya2Rvd24tYm9keSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwaWxsLWJnLWNvbG9yICFpbXBvcnRhbnQ7IC8qIFRvIG92ZXJyaWRlIC5tYXJrZG93bi1ib2R5ICovXG4gICAgLyogRm9yIGVuaGFuY2VkIHZpc2liaWxpdHkgdW5kZXIgY29udHJhc3QgY29udHJvbCAqL1xuICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgID4gKiB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgICYubXhfVXNlclBpbGxfbWUsXG4gICAgJi5teF9BdFJvb21QaWxsLFxuICAgICYubXhfS2V5d29yZFBpbGwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY3JpdGljYWwtcHJpbWFyeSkgIWltcG9ydGFudDsgLyogVG8gb3ZlcnJpZGUgLm1hcmtkb3duLWJvZHkgKi9cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBpbGwtaG92ZXItYmctY29sb3IgIWltcG9ydGFudDsgLyogVG8gb3ZlcnJpZGUgLm1hcmtkb3duLWJvZHkgKi9cbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwaWxsLXByZXNzLWJnLWNvbG9yICFpbXBvcnRhbnQ7IC8qIFRvIG92ZXJyaWRlIC5tYXJrZG93bi1ib2R5ICovXG4gICAgfVxuXG4gICAgJi5teF9Vc2VyUGlsbF9tZTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcihcbiAgICAgICAgICAgIC0tY3BkLWNvbG9yLWJnLWNyaXRpY2FsLWhvdmVyZWRcbiAgICAgICAgKSAhaW1wb3J0YW50OyAvKiBUbyBvdmVycmlkZSAubWFya2Rvd24tYm9keSB8IHNhbWUgb24gYm90aCB0aGVtZXMgKi9cbiAgICB9XG5cbiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluZGljYXRlIGNsaWNrYWJpbGl0eSAqL1xuICAgICYubXhfQXRSb29tUGlsbDpob3ZlcixcbiAgICAmLm14X0tleXdvcmRQaWxsOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNyaXRpY2FsLXByaW1hcnkpICFpbXBvcnRhbnQ7IC8qIFRvIG92ZXJyaWRlIC5tYXJrZG93bi1ib2R5ICovXG4gICAgICAgIGN1cnNvcjogdW5zZXQ7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlLFxuICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTAuM2VtOyAvKiBPdGhlcndpc2UgdGhlIGdhcCBpcyB0b28gbGFyZ2UgKi9cbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDAuMmVtO1xuICAgICAgICBtaW4td2lkdGg6ICRmb250LTE2cHg7IC8qIGVuc3VyZSB0aGUgYXZhdGFyIGlzIG5vdCBjb21wcmVzc2VkICovXG4gICAgICAgIHVzZXItc2VsZWN0OiB0ZXh0O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cblxuICAgIC5teF9QaWxsX3RleHQge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgIC5teF9QaWxsX3VzZXJTdGF0dXMge1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG5cbiAgICAvKiBQaWxscyB3aXRoIHVzZXIgc3RhdHVzIGFyZSBmbGV4IHNvIHRoZSBzdGF0dXMgZW1vamkgc3RheXMgdmlzaWJsZSBpZiB0aGVcbiAgICAgICBkaXNwbGF5IG5hbWUgZ2V0cyB0cnVuY2F0ZWQuICovXG4gICAgJi5teF9QaWxsX3dpdGhTdGF0dXMge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICBhJiB7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsgLyogVG8gb3ZlcnJpZGUgLm1hcmtkb3duLWJvZHkgKi9cbiAgICB9XG5cbiAgICAubXhfUGlsbF9MaW5rSWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaW5rLWV4dGVybmFsO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgcGFkZGluZzogMXB4O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIH1cblxuICAgIC5teF9QaWxsX1VzZXJJY29uIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICB9XG5cbiAgICAmLm14X1NwYWNlUGlsbCB7XG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDhweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogOHB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Bvd2VyU2VsZWN0b3Ige1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfUG93ZXJTZWxlY3RvciAubXhfRmllbGQgc2VsZWN0LFxuLm14X1Bvd2VyU2VsZWN0b3IgLm14X0ZpZWxkIGlucHV0IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxucHJvZ3Jlc3MubXhfUHJvZ3Jlc3NCYXIge1xuICAgIGhlaWdodDogNnB4O1xuICAgIHdpZHRoOiA2MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQgdmFyKC0tY3BkLWNvbG9yLWdyYXktNDAwKTtcblxuICAgIEBtaXhpbiBQcm9ncmVzc0JhckJvcmRlclJhZGl1cyA2cHg7XG4gICAgQG1peGluIFByb2dyZXNzQmFyQ29sb3VyIHZhcigtLWNwZC1jb2xvci1pY29uLWFjY2VudC10ZXJ0aWFyeSk7XG4gICAgQG1peGluIFByb2dyZXNzQmFyQmdDb2xvdXIgJHByb2dyZXNzYmFyLWJnLWNvbG9yO1xuICAgICY6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xuICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAxcztcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUVJDb2RlIHtcbiAgICBpbWcge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTggVmVjdG9yIENyZWF0aW9ucyBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1JlcGx5Q2hhaW4ge1xuICAgIG1hcmdpbi1ibG9jazogMCB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIG1hcmdpbi1pbmxpbmU6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgdmFyKC0tdXNlcm5hbWUtY29sb3IpO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcblxuICAgIC5teF9SZXBseUNoYWluX2NvbXBhY3QgJiB7XG4gICAgICAgIG1hcmdpbi1ibG9jay1lbmQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgfVxuXG4gICAgLm14X1JlcGx5Q2hhaW5fc2hvdyB7XG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfaW5saW5lIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8qIEVuZm9yY2UgJ0luIHJlcGx5IHRvJyB0byBiZSBhIHNpbmdsZSBsaW5lICovXG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgZWFzZSAwLjE1cztcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtcmVndWxhcik7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9SZXBseUNoYWluX2NvbG9yMSB7XG4gICAgICAgIC0tdXNlcm5hbWUtY29sb3I6ICR1c2VybmFtZS12YXJpYW50MS1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm14X1JlcGx5Q2hhaW5fY29sb3IyIHtcbiAgICAgICAgLS11c2VybmFtZS1jb2xvcjogJHVzZXJuYW1lLXZhcmlhbnQyLWNvbG9yO1xuICAgIH1cblxuICAgICYubXhfUmVwbHlDaGFpbl9jb2xvcjMge1xuICAgICAgICAtLXVzZXJuYW1lLWNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDMtY29sb3I7XG4gICAgfVxuXG4gICAgJi5teF9SZXBseUNoYWluX2NvbG9yNCB7XG4gICAgICAgIC0tdXNlcm5hbWUtY29sb3I6ICR1c2VybmFtZS12YXJpYW50NC1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm14X1JlcGx5Q2hhaW5fY29sb3I1IHtcbiAgICAgICAgLS11c2VybmFtZS1jb2xvcjogJHVzZXJuYW1lLXZhcmlhbnQ1LWNvbG9yO1xuICAgIH1cblxuICAgICYubXhfUmVwbHlDaGFpbl9jb2xvcjYge1xuICAgICAgICAtLXVzZXJuYW1lLWNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDYtY29sb3I7XG4gICAgfVxufVxuXG4vKlxuICogUmVwbHkgcHJldmlld3MgaW4gdGhlIG5ldyB0aW1lbGluZSAoYGNvbXBhY3RQcmV2aWV3YCBpbiBSZXBseUNoYWluLnRzeCkuXG4gKlxuICogVGhlIHByZXZpZXcgaXRzZWxmIGlzIHRoZSBzaGFyZWQgUmVwbHlUaWxlVmlldywgZHJhd24gYXQgaXRzIG5hdHVyYWwgc2l6ZTogYVxuICogcXVvdGUgYWxyZWFkeSBpbiB0aGUgcm9vbSByZW5kZXJzIGF0IGl0cyBmaW5hbCBoZWlnaHQgb24gdGhlIGZpcnN0IHBhc3MsIGFuZFxuICogZ3Jvd3RoIGFib3ZlIHRoZSB2aWV3cG9ydCBpcyBjb21wZW5zYXRlZCBieSB0aGUgdGltZWxpbmUuIFRoZSBydWxlcyBoZXJlIGNvdmVyXG4gKiB0aGUgdHdvIHN0YXRlcyB0aGF0IHN0YW5kIGluIGZvciBhIHByZXZpZXcgd2hpbGUgaXQgaXMgZmV0Y2hlZCwgb3IgaWYgdGhlXG4gKiBmZXRjaCBmYWlscywgc28gYSByb3cgaG9sZHMgYSBzZW5zaWJsZSBoZWlnaHQgaW5zdGVhZCBvZiBjb2xsYXBzaW5nLlxuICovXG4ubXhfTmV3VGltZWxpbmVQYW5lbCB7XG4gICAgLyogQWJvdXQgdGhlIGhlaWdodCBvZiB0aGUgc2VuZGVyIHJvdyBhbmQgb25lIGxpbmUgb2YgcXVvdGVkIHRleHQuICovXG4gICAgLS1teC1yZXBseS1yb3ctaGVpZ2h0OiAyMHB4O1xuXG4gICAgLyogVGhlIHNrZWxldG9uIHNob3duIHdoaWxlIHRoZSBxdW90ZWQgbWVzc2FnZSBpcyBiZWluZyBmZXRjaGVkOiBhIHNlbmRlciByb3dcbiAgICAgICBhbmQgYSBtZXNzYWdlIHJvdywgc3BhY2VkIGxpa2UgdGhlIHJlYWwgcHJldmlldy4gKi9cbiAgICAubXhfUmVwbHlDaGFpbl9wbGFjZWhvbGRlciB7XG4gICAgICAgIC0tdXNlcm5hbWUtY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogMnB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnB4O1xuICAgIH1cblxuICAgIC5teF9SZXBseUNoYWluX3BsYWNlaG9sZGVyUm93IHtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1teC1yZXBseS1yb3ctaGVpZ2h0KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgICAgIHdpZHRoOiAzNSU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLyogVGhlIG1lc3NhZ2UgbGluZSByZWFkcyBsb25nZXIgdGhhbiB0aGUgbmFtZSBhYm92ZSBpdC4gKi9cbiAgICAgICAgJjpsYXN0LWNoaWxkOjpiZWZvcmUge1xuICAgICAgICAgICAgd2lkdGg6IDcwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIElmIHRoZSBmZXRjaCBmYWlscyB0aGUgcHJldmlldyBiZWNvbWVzIGEgb25lLWxpbmUgZXJyb3IsIHNvIGhvbGQgaXQgYXQgdGhlXG4gICAgICAgaGVpZ2h0IG9mIHRoZSBza2VsZXRvbiBpdCByZXBsYWNlcy4gKi9cbiAgICAubXhfUmVwbHlDaGFpbl9lcnJvciB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGNhbGMoMiAqIHZhcigtLW14LXJlcGx5LXJvdy1oZWlnaHQpICsgMnB4ICsgNHB4KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTgtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jlc2l6ZUhhbmRsZSB7XG4gICAgY3Vyc29yOiByb3ctcmVzaXplO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHotaW5kZXg6IDEwMDtcblxuICAgICYubXhfUmVzaXplSGFuZGxlLS1ob3Jpem9udGFsIHtcbiAgICAgICAgbWFyZ2luOiAwIC01cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfUmVzaXplSGFuZGxlLS12ZXJ0aWNhbCB7XG4gICAgICAgIG1hcmdpbjogLTVweCAwO1xuICAgICAgICBwYWRkaW5nOiA1cHggMDtcblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi5teF9FbW9qaSB7XG4gICAgLyogU2hvdWxkIGJlIDEuOHJlbSBmb3Igb3VyIGRlZmF1bHQgbWVzc2FnZSBib2RpZXMsIGFuZCBzY2FsZSB3aXRoIHRoZSAqL1xuICAgIC8qIHN1cnJvdW5kaW5nIHRleHQgKi9cbiAgICBmb250LXNpemU6IG1heCgkZm9udC0xOHB4LCAxZW0pO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbUFsaWFzRmllbGQge1xuICAgIC8qIGlmIHBhcmVudCBpcyBhIGZsZXggY29udGFpbmVyLCB0aGlzIGFsbG93cyB0aGUgKi9cbiAgICAvKiB3aWR0aCB0byBiZSBhcyB3aWRlIGFzIG5lZWRlZCwgYW5kIG5vdCAxMDAlICovXG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgaW5wdXQge1xuICAgICAgICB3aWR0aDogMTUwcHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG5cbiAgICBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogJGluZm8tcGxpbnRoLWZnLWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIH1cblxuICAgIC5teF9GaWVsZF9wcmVmaXgsXG4gICAgLm14X0ZpZWxkX3Bvc3RmaXgge1xuICAgICAgICBjb2xvcjogJGluZm8tcGxpbnRoLWZnLWNvbG9yO1xuICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgcGFkZGluZzogOXB4IDEwcHg7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cblxuICAgIC5teF9GaWVsZF9wb3N0Zml4IHtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIC8qIHRoaXMgYWxsb3dzIHRoZSBkb21haW4gbmFtZSB0byBzaG93ICovXG4gICAgICAgIC8qIGFzIGxvbmcgYXMgaXQgZG9lc24ndCBtYWtlIHRoZSBpbnB1dCBzaHJpbmsgKi9cbiAgICAgICAgLyogaWYgaXQncyB0b28gYmlnLCBpdCBzaG93cyBhbiBlbGxpcHNpcyAqL1xuICAgICAgICAvKiAxODA6IDI4IGZvciBwcmVmaXgsIDE1MiBmb3IgaW5wdXQgKi9cbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAxODBweCk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NTT0J1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgLm14X1NTT0J1dHRvbnNfcm93ICsgLm14X1NTT0J1dHRvbnNfcm93IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICB9XG5cbiAgICAubXhfU1NPQnV0dG9uIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgIHN2ZyxcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDhweDtcbiAgICAgICAgICAgIHRvcDogNHB4O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NTT0J1dHRvbl9taW5pIHtcbiAgICAgICAgc3ZnLFxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgLyogMzBweCBwYXJlbnQsIDI0cHggc2VsZiAqL1xuICAgICAgICAgICAgcGFkZGluZzogM3B4O1xuICAgICAgICAgICAgcG9zaXRpb246IHVuc2V0O1xuICAgICAgICB9XG5cbiAgICAgICAgJiArIC5teF9TU09CdXR0b25fbWluaSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZWFyY2hXYXJuaW5nIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMCAxNnB4O1xuXG4gICAgPiAqIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICA+IGltZyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXJ2ZXJQaWNrZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYigxNDEsIDE1MSwgMTY1LCAwLjIpO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbi1jb250ZW50O1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvIGF1dG87XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcblxuICAgID4gaDIge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMjBweDtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgIGdyaWQtcm93OiAxO1xuICAgIH1cblxuICAgIC5teF9TZXJ2ZXJQaWNrZXJfaGVscCB7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTJweDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICBjb2xvcjogJGljb24tYnV0dG9uLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NlcnZlclBpY2tlcl9zZXJ2ZXIge1xuICAgICAgICBjb2xvcjogJGF1dGhwYWdlLXByaW1hcnktY29sb3I7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICBncmlkLXJvdzogMjtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cblxuICAgIC5teF9TZXJ2ZXJQaWNrZXJfY2hhbmdlIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgIGdyaWQtcm93OiAyO1xuICAgIH1cblxuICAgIC5teF9TZXJ2ZXJQaWNrZXJfZGVzYyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICBncmlkLWNvbHVtbjogMSAvIDI7XG4gICAgICAgIGdyaWQtcm93OiAzO1xuICAgIH1cbn1cblxuLm14X1NlcnZlclBpY2tlcl9oZWxwRGlhbG9nIHtcbiAgICAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICB3aWR0aDogNDU2cHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI1IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0dGluZ3NEcm9wZG93biB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5teF9TZXR0aW5nc0Ryb3Bkb3duX2xhYmVsIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTF4KSAwO1xuICAgIH1cblxuICAgIC5teF9Ecm9wZG93bl9pbnB1dCB7XG4gICAgICAgIHdpZHRoOiAzNjBweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0dGluZ3NGbGFnIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5teF9Ub2dnbGVTd2l0Y2gge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG5cbiAgICAmLm14X1NldHRpbmdzRmxhZ190b2dnbGVJbkZyb250IHtcbiAgICAgICAgLm14X1RvZ2dsZVN3aXRjaCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU2V0dGluZ3NGbGFnX2xhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9TZXR0aW5nc0ZsYWdfbGFiZWwge1xuICAgIGZsZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgcGFkZGluZy10b3A6IDRweDtcbn1cblxuLm14X1NldHRpbmdzRmxhZ19taWNyb2NvcHkge1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAvKiBTdXBwb3J0IGNvZGUvcHJlIGVsZW1lbnRzIGluIHNldHRpbmdzIGZsYWcgZGVzY3JpcHRpb25zICovXG4gICAgcHJlLFxuICAgIGNvZGUge1xuICAgICAgICBmb250LWZhbWlseTogJG1vbm9zcGFjZS1mb250LWZhbWlseSAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcnRlLWNvZGUtYmctY29sb3I7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzVGFiX21pY3JvY29weV93YXJuaW5nOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIuKaoO+4jyBcIjtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3Bpbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBmbGV4OiAxO1xufVxuXG4ubXhfTWF0cml4Q2hhdF9taWRkbGVQYW5lbCAubXhfU3Bpbm5lciB7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyoqXG4qIFRoaXMgY29tcG9uZW50IGV4cGVjdHMgdGhlIHBhcmVudCB0byBzcGVjaWZ5IGEgcG9zaXRpdmUgcGFkZGluZyBhbmRcbiogd2lkdGhcbiovXG5cbi5teF9TdHlsZWRSYWRpb0J1dHRvbiB7XG4gICAgJHJhZGlvLWNpcmNsZS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1wcmltYXJ5KTtcbiAgICAkYWN0aXZlLXJhZGlvLWNpcmNsZS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjY2VudC1yZXN0KTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICA+IC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50IHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgfVxuXG4gICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uX3NwYWNlciB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBmbGV4LWdyb3c6IDA7XG5cbiAgICAgICAgaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgICAgICB3aWR0aDogJGZvbnQtMTZweDtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICAvKiBSZW1vdmUgdGhlIE9TJ3MgcmVwcmVzZW50YXRpb24gKi9cbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICsgZGl2IHtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgd2lkdGg6ICRmb250LTE2cHg7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMnB4OyAvKiBGb3IgdGhlIGhpZ2hsaWdodCBvbiBmb2N1cyAqL1xuXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcmFkaW8tY2lyY2xlLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGZvbnQtMTZweDtcblxuICAgICAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRmb250LThweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogJGZvbnQtOHB4O1xuXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGZvbnQtOHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgICYgKyBkaXYge1xuICAgICAgICAgICAgICAgIEBtaXhpbiB1bnJlYWwtZm9jdXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgJiArIGRpdiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWN0aXZlLXJhZGlvLWNpcmNsZS1jb2xvcjtcblxuICAgICAgICAgICAgICAgICYgPiBkaXYge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLXJhZGlvLWNpcmNsZS1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgLyogRm9yIGVuaGFuY2VkIHZpc2liaWxpdHkgdW5kZXIgY29udHJhc3QgY29udHJvbCAqL1xuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgICAgICAmICsgZGl2LFxuICAgICAgICAgICAgJiArIGRpdiArIHNwYW4ge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmICsgZGl2IHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRyYWRpby1jaXJjbGUtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmNoZWNrZWQ6ZGlzYWJsZWQge1xuICAgICAgICAgICAgJiArIGRpdiA+IGRpdiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJhZGlvLWNpcmNsZS1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9pbm5lckxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IDRweDtcbiAgICB9XG59XG5cbi5teF9TdHlsZWRSYWRpb0J1dHRvbl9vdXRsaW5lZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGlucHV0LWRhcmtlci1iZy1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi5teF9TdHlsZWRSYWRpb0J1dHRvbl9jaGVja2VkIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY2NlbnQtcmVzdCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNyBNaWNoYWVsIFRlbGF0eW5za2kgPDd0M2NoZ3V5QGdtYWlsLmNvbT5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1N5bnRheEhpZ2hsaWdodCB7XG4gICAgLyogaW5oaWJpdCBobGpzIHN0eWxpbmcgKi9cbiAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICRsaWdodC1mZy1jb2xvciAhaW1wb3J0YW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1RhZ0NvbXBvc2VyIHtcbiAgICAubXhfVGFnQ29tcG9zZXJfaW5wdXQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogNzBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgOHB4OyAvKiBvdmVycmlkZSBmcm9tIGJ1dHRvbiBzdHlsZXMgKi9cbiAgICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7IC8qIG92ZXJyaWRlIGRlZmF1bHQgc2V0dGluZ3N0YWIgc3R5bGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9GaWVsZCxcbiAgICAgICAgLm14X0ZpZWxkIGlucHV0LFxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAvKiBTbyB0aGV5IGxvb2sgcmVsYXRlZCB0byBlYWNoIG90aGVyIGJ5IGZlZWxpbmcgdGhlIHNhbWUgKi9cbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9UYWdDb21wb3Nlcl90YWdzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OyAvKiB0aGlzIHBsdXMgMTJweCBmcm9tIHRoZSB0YWdzIG1ha2VzIDI0cHggZnJvbSB0aGUgaW5wdXQgKi9cbiAgICB9XG5cbiAgICAubXhfVGFnIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIH1cbn1cblxuLm14X1RhZyB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBiYWNrZ3JvdW5kOiAkcXVpbmFyeS1jb250ZW50O1xuXG4gICAgPiBzdmc6Zmlyc3QtY2hpbGQge1xuICAgICAgICB3aWR0aDogMWVtO1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMjUpO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm14X1RhZ19kZWxldGUge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEuMDY2NjY2ZW07IC8qIDE2cHg7ICovXG4gICAgICAgIGhlaWdodDogMS4wNjY2NjZlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgYmFja2dyb3VuZDogJHN5c3RlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuLm14X1RleHRXaXRoVG9vbHRpcF90YXJnZXQge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLm14X1RleHRXaXRoVG9vbHRpcF90b29sdGlwIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Ub2dnbGVTd2l0Y2gge1xuICAgIC0tVG9nZ2xlU3dpdGNoLW1pbi13aWR0aDogJGZvbnQtNDRweDtcblxuICAgIHRyYW5zaXRpb246XG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlLW91dCAwLjFzLFxuICAgICAgICBib3JkZXItY29sb3IgMC4ycyBlYXNlLW91dCAwLjFzO1xuXG4gICAgd2lkdGg6ICRmb250LTQ0cHg7XG4gICAgaGVpZ2h0OiAkZm9udC0yMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEuNXJlbTtcbiAgICBwYWRkaW5nOiAycHg7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRpc2FibGVkKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWRpc2FibGVkKTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgJi5teF9Ub2dnbGVTd2l0Y2hfZW5hYmxlZCB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTEpIHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtcHJpbWFyeSk7XG5cbiAgICAgICAgJi5teF9Ub2dnbGVTd2l0Y2hfb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjY2VudC1yZXN0KTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjY2VudC1yZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLm14X1RvZ2dsZVN3aXRjaF9iYWxsIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXNlY29uZGFyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X1RvZ2dsZVN3aXRjaF9vbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1kaXNhYmxlZCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LWRpc2FibGVkKTtcblxuICAgICAgICA+IC5teF9Ub2dnbGVTd2l0Y2hfYmFsbCB7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDEwMCUgLSAkZm9udC0yMHB4KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLW9uLXNvbGlkLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfVG9nZ2xlU3dpdGNoX2JhbGwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogJGZvbnQtMjBweDtcbiAgICBoZWlnaHQ6ICRmb250LTIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGZvbnQtMjBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktZGlzYWJsZWQpO1xuICAgIHRyYW5zaXRpb246XG4gICAgICAgIGxlZnQgMC4xNXMgZWFzZS1vdXQgMC4xcyxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlLW91dCAwLjFzO1xuICAgIGxlZnQ6IDA7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1ZhbGlkYXRpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtd2lkdGg6IDIwMHB4O1xufVxuXG4ubXhfVmFsaWRhdGlvbl9kZXRhaWxzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4ubXhfVmFsaWRhdGlvbl9kZXNjcmlwdGlvbiArIC5teF9WYWxpZGF0aW9uX2RldGFpbHMge1xuICAgIG1hcmdpbjogMWVtIDAgMDtcbn1cblxuLm14X1ZhbGlkYXRpb25fZGV0YWlsIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxNHB4O1xuICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICAgIH1cblxuICAgICYubXhfVmFsaWRhdGlvbl92YWxpZCB7XG4gICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgIH1cblxuICAgICYubXhfVmFsaWRhdGlvbl9pbnZhbGlkIHtcbiAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Mb2NhdGlvblBpY2tlciB7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAvKiB3aGVuIHRoZXJlIGFyZSBlcnJvcnMgbG9hZGluZyB0aGUgbWFwICovXG4gICAgLyogdGhlIGNhbnZhcyBpcyBzdGlsbCBpbnNlcnRlZCAqL1xuICAgIC8qIGFuZCBjYW4gb3ZlcmxhcCBlcnJvciBtZXNzYWdlL2Nsb3NlIGJ1dHRvbnMgKi9cbiAgICAvKiBoaWRlIGl0ICovXG4gICAgJi5teF9Mb2NhdGlvblBpY2tlcl9oYXNFcnJvciB7XG4gICAgICAgIC5tYXBsaWJyZWdsLWNhbnZhcy1jb250YWluZXIsXG4gICAgICAgIC5tYXBsaWJyZWdsLWNvbnRyb2wtY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjbXhfTG9jYXRpb25QaWNrZXJfbWFwIHtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogaW5oZXJpdDtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICAgIGZsZXg6IDE7XG5cbiAgICAgICAgLm1hcGxpYnJlZ2wtY3RybC5tYXBsaWJyZWdsLWN0cmwtZ3JvdXAsXG4gICAgICAgIC5tYXBsaWJyZWdsLWN0cmwubWFwbGlicmVnbC1jdHJsLWF0dHJpYiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIH1cblxuICAgICAgICAubWFwbGlicmVnbC1jdHJsLm1hcGxpYnJlZ2wtY3RybC1ncm91cCB7XG4gICAgICAgICAgICAvKiBwbGFjZSBiZWxvdyB0aGUgY2xvc2UgYnV0dG9uICovXG4gICAgICAgICAgICAvKiBwYWRkaW5nLTE2ICsgMjRweCBjbG9zZSBidXR0b24gKyBwYWRkaW5nLTEwICovXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hcGxpYnJlZ2wtdXNlci1sb2NhdGlvbi1hY2N1cmFjeS1jaXJjbGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXBsaWJyZWdsLXVzZXItbG9jYXRpb24tZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTG9jYXRpb25QaWNrZXJfZm9vdGVyIHtcbiAgICAgICAgZmxleDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcblxuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuICAgIH1cbn1cblxuLm14X0xvY2F0aW9uUGlja2VyX3BpblRleHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgc3BhbiB7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCA0cHggMTVweCByZ2IoMCwgMCwgMCwgMC4xNSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICB9XG59XG5cbi5teF9Mb2NhdGlvblBpY2tlcl9zdWJtaXRCdXR0b24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDhweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DYWxsRXZlbnRfd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLm14X0NhbGxFdmVudCB7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1pbi1oZWlnaHQ6IDYwcHg7XG4gICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3lzdGVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgPiAubXhfQmFzZUF2YXRhcixcbiAgICA+IC5teF9JY29uIHtcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICB9XG5cbiAgICA+IC5teF9JY29uIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMXgpIDA7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0xpdmVDb250ZW50U3VtbWFyeSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICB9XG5cbiAgICAtLWZhY2VwaWxlLWJhY2tncm91bmQ6ICRzeXN0ZW07XG59XG5cbi5teF9DYWxsRXZlbnRfdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICBsaW5lLWhlaWdodDogMjRweDsgLyogaW4gcHggdG8gbWF0Y2ggdGhlIGF2YXRhciAqL1xufVxuXG4ubXhfQ2FsbEV2ZW50X2luYWN0aXZlIC5teF9DYWxsRXZlbnRfdGl0bGUgc3ZnIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9DYWxsRXZlbnRfYWN0aXZlIC5teF9DYWxsRXZlbnRfdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xufVxuXG4ubXhfQ2FsbEV2ZW50X2NvbHVtbnMge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLm14X1RpbWVsaW5lQ2FyZCAubXhfQ2FsbEV2ZW50X2NvbHVtbnMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfQ2FsbEV2ZW50X2RldGFpbHMge1xuICAgIGZsZXgtZ3JvdzogMTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbn1cblxuLm14X0NhbGxFdmVudF9idXR0b24ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLXdpZHRoOiAxMjBweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE4LTIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0V2ZW50VGlsZUJ1YmJsZS5teF9DcmVhdGVFdmVudCB7XG4gICAgbWFyZ2luOiB2YXIoLS1FdmVudFRpbGVCdWJibGVfbWFyZ2luLWJsb2NrKSBhdXRvO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgY29sb3I6ICRoZWFkZXItcGFuZWwtdGV4dC1wcmltYXJ5LWNvbG9yO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qKiBEaXNhbWJpZ3VhdGVkIHByb2ZpbGUgbmVlZHMgdG8gaGF2ZSBhIGRpZmZlcmVudCBsYXlvdXQgaW4gdGhlIG1lbWJlciB0aWxlICovXG4ubXhfTWVtYmVyVGlsZVZpZXcgLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlIHtcbiAgICAvKiBOYW1lIGFuZCB0aGUgdXNlciBzdGF0dXMgZW1vamkgc2hhcmUgdGhlIGZpcnN0IHJvdyAod2l0aCB0aGUgbmFtZSB0cnVuY2F0aW5nIGFuZCB0aGUgZW1vamkgYWx3YXlzIHZpc2libGUpXG4gICAgICAgRGlzYW1iaWd1YXRlZCBNWElEIGdldHMgYSBmdWxsIHJvdyBiZWxvdy4gKi9cbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgMWZyO1xuXG4gICAgLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlX3VzZXJTdGF0dXMge1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG4gICAgfVxuXG4gICAgLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlX214aWQge1xuICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICBzcGFuOm5vdCgubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGVfbXhpZCkge1xuICAgICAgICAvKipcbiAgICAgICAgSW4gYSBtZW1iZXIgdGlsZSwgdGhpcyBzcGFuIGVsZW1lbnQgaXMgYSBncmlkIGNoaWxkIGFuZCBzb1xuICAgICAgICB3ZSBuZWVkIHRoZSBmb2xsb3dpbmcgZm9yIHRleHQgb3ZlcmZsb3cgdG8gd29yay5cbiAgICAgICAgKiovXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xlZ2FjeUNhbGxFdmVudF93cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLm14X0xlZ2FjeUNhbGxFdmVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xeCkgMDtcblxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTF4KSAwO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLXBhbmVsLWJnLWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIHdpZHRoOiA2NSU7XG4gICAgICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG5cbiAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9pY29uQnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9pbmZvIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9pbmZvX2Jhc2ljIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyAvKiBUbyBtYXRjaCBteF9MZWdhY3lDYWxsRXZlbnQgKi9cbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuXG4gICAgICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9zZW5kZXIge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcblxuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X3R5cGUge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7IC8qIFNlZSBteF9JbmNvbWluZ0xlZ2FjeUNhbGxUb2FzdF9idXR0b25zICovXG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA0MnB4OyAvKiBhdmF0YXIgKDMycHgpICsgbXhfTGVnYWN5Q2FsbEV2ZW50X2luZm9fYmFzaWMgbWFyZ2luICgxMHB4KSAqL1xuICAgICAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICAgICAgICAgIG1heC13aWR0aDogZml0LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfY29udGVudF9idXR0b24ge1xuICAgICAgICAgICAgICAgIEBtaXhpbiBMZWdhY3lDYWxsQnV0dG9uO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfY29udGVudF90b29sdGlwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfTGVnYWN5Q2FsbEV2ZW50X25hcnJvdyB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IHVuc2V0O1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgICAgICBoZWlnaHQ6IHVuc2V0O1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyOTBweDtcblxuICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9pY29uQnV0dG9uIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMTJweDtcbiAgICAgICAgICAgICAgICByaWdodDogMTJweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9pbmZvIHtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfTGVnYWN5Q2FsbEV2ZW50X3R5cGVfaWNvbiB7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogLTJweDtcblxuICAgIHN2ZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZTpoYXMoPiBbZGF0YS10ZXN0aWQ9XCJldmVudC10aWxlLWxpbmVcIl0gPiBbZGF0YS10ZXN0aWQ9XCJldmVudC10aWxlLXNsb3QtYm9keVwiXSAubXhfTGVnYWN5Q2FsbEV2ZW50KSB7XG4gICAgLm14X0xlZ2FjeUNhbGxFdmVudF93cmFwcGVyIHtcbiAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudCB7XG4gICAgICAgICAgICAmLm14X0xlZ2FjeUNhbGxFdmVudF9uYXJyb3cge1xuICAgICAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfSVJDTGF5b3V0IHtcbiAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X3dyYXBwZXIge1xuICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50IHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7IC8qIGRpc3BsYXkgZ3JlZW4gbGluZSAqL1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVHVsaXIgQXNva2FuIDx0dWxpckBtYXVuaXVtLm5ldD5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01JbWFnZVJlcGx5Qm9keSxcbi5teF9NU3RpY2tlckJvZHlfd3JhcHBlciB7XG4gICAgLm14X01JbWFnZUJvZHlfYmFubmVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIGxlZnQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLU1Cb2R5LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgbWF4LXdpZHRoOiBtaW4oMTAwJSwgMzUwcHgpO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDAsIDAsIDAuNik7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIH1cblxuICAgIC5teF9NSW1hZ2VCb2R5X3BsYWNlaG9sZGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gICAgICAgIC5teF9CbHVyaGFzaCA+IGNhbnZhcyB7XG4gICAgICAgICAgICBhbmltYXRpb246IG14LS1hbmltLXB1bHNlIDEuNzVzIGluZmluaXRlIGN1YmljLWJlemllcigwLjQsIDAsIDAuNiwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTUltYWdlQm9keV90aHVtYm5haWxfY29udGFpbmVyIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tTUJvZHktYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGNvbnRhaW46IHBhaW50O1xuICAgIH1cblxuICAgIC5teF9NSW1hZ2VCb2R5X3RodW1ibmFpbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5teF9NSW1hZ2VCb2R5X2dpZkxhYmVsIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIGxlZnQ6IDE0cHg7XG4gICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkaW1hZ2Vib2R5LWdpZmxhYmVsO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkaW1hZ2Vib2R5LWdpZmxhYmVsLWJvcmRlcjtcbiAgICAgICAgY29sb3I6ICRpbWFnZWJvZHktZ2lmbGFiZWwtY29sb3I7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbn1cblxuLm14X01JbWFnZVJlcGx5Qm9keSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBjb2x1bW4tZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuXG4gICAgLm14X01JbWFnZUJvZHlfdGh1bWJuYWlsX2NvbnRhaW5lciB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMDsgLyogUHJldmVudCBhIGJsb3dvdXQgKi9cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTUxvY2F0aW9uQm9keSB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgLm14X01Mb2NhdGlvbkJvZHlfbWFwIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB3aWR0aDogNDUwcHg7XG4gICAgICAgIGhlaWdodDogMzAwcHg7XG4gICAgICAgIHotaW5kZXg6IDA7IC8qIGtlZXBzIHRoZSBlbnRpcmUgbWFwIHVuZGVyIHRoZSBtZXNzYWdlIGFjdGlvbiBiYXIgKi9cblxuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1NQm9keS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbn1cblxuLyogTG9jYXRpb24gbWFwcyB1c2UgdGhlIGZ1bGwgZXZlbnQtbGluZSB3aWR0aCBpbnN0ZWFkIG9mIHRoZSB0ZXh0LWJvZHkgZ3V0dGVyLiAqL1xuLm14X0V2ZW50VGlsZV9saW5lIC5teF9NTG9jYXRpb25Cb2R5IHtcbiAgICAtLWV2ZW50LXRpbGUtY29udGVudC1pbmxpbmUtZW5kOiAwO1xufVxuXG4vKiBJbiB0aGUgdGltZWxpbmUsIHdlIGZpdCB0aGUgd2lkdGggb2YgdGhlIGNvbnRhaW5lciAqL1xuLm14X0V2ZW50VGlsZV9saW5lIC5teF9NTG9jYXRpb25Cb2R5IC5teF9NTG9jYXRpb25Cb2R5X21hcCB7XG4gICAgbWF4LXdpZHRoOiA0NTBweDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLyogQnViYmxlIGxpbmVzIHVzZSBzaHJpbmstdG8tZml0IHNpemluZy4gR2l2ZSB0aGUgbWFwIGFuIGludHJpbnNpYyB3aWR0aFxuICAgYmVmb3JlIGNvbnN0cmFpbmluZyBpdCB0byB0aGUgYXZhaWxhYmxlIGJ1YmJsZSB3aWR0aC4gKi9cbi5teF9FdmVudFRpbGVfbGluZSAubXhfTUxvY2F0aW9uQm9keV9idWJibGUgLm14X01Mb2NhdGlvbkJvZHlfbWFwIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgd2lkdGg6IDQ1MHB4O1xufVxuXG4vKiBFdmVudFRpbGVWaWV3IHBsYWNlcyB0aGUgc2VuZGVyIGFuZCBib2R5IGluIHNlcGFyYXRlIHNsb3QgYm91bmRhcmllcy4gKi9cbi5teF9FdmVudFRpbGUgPiA6aGFzKD4gLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlKSB+IC5teF9FdmVudFRpbGVfbGluZSAubXhfTUxvY2F0aW9uQm9keSB7XG4gICAgbWFyZ2luLXRvcDogNnB4OyAvKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXRyaXgtb3JnL21hdHJpeC1yZWFjdC1zZGsvcHVsbC84NDQyICovXG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4kcG9sbC1tYXgtd2lkdGg6IDU1MHB4O1xuXG4ubXhfTVBvbGxCb2R5IHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIG1pbi13aWR0aDogMDsgLyogT3ZlcnJpZGUgZmllbGRzZXQgZGVmYXVsdCBtaW4td2lkdGg6IG1pbi1jb250ZW50ICovXG4gICAgd2lkdGg6IDEwMCU7IC8qIEVuc3VyZSBmaWVsZHNldCB0YWtlcyBmdWxsIGF2YWlsYWJsZSB3aWR0aCAqL1xuICAgIGJvcmRlcjogbm9uZTsgLyogUmVtb3ZlIGRlZmF1bHQgZmllbGRzZXQgYm9yZGVyICovXG4gICAgcGFkZGluZzogMDsgLyogUmVtb3ZlIGRlZmF1bHQgZmllbGRzZXQgcGFkZGluZyAqL1xuICAgIG1hcmdpbi1pbmxpbmU6IHVuc2V0OyAvKiBSZW1vdmUgZGVmYXVsdCBmaWVsZHNldCBtYXJnaW4gKi9cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIFByZXNlcnZlIHRoZSBmaWVsZHNldCBkaXNwbGF5IHZhbHVlIHdlIHVzZWQgdG8gc2V0IGdsb2JhbGx5ICovXG5cbiAgICBsZWdlbmQge1xuICAgICAgICBwYWRkaW5nLWlubGluZTogdW5zZXQ7IC8qIFJlbW92ZSBkZWZhdWx0IGxlZ2VuZCBwYWRkaW5nICovXG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogdmFyKC0tY3BkLWZvbnQtbGV0dGVyLXNwYWNpbmctaGVhZGluZy1sZyk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTVBvbGxCb2R5X2VkaXRlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHJvb210b3BpYy1jb2xvcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9NUG9sbEJvZHlfdG90YWxWb3RlcyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBpbmxpbmU7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcblxuICAgICAgICAubXhfU3Bpbm5lciB7XG4gICAgICAgICAgICBmbGV4OiAwO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X01Qb2xsQm9keV9idWJibGUge1xuICAgICAgICB3aWR0aDogNTUwcHg7IC8qIHRvIHByZXZlbnQgdGltZXN0YW1wIG92ZXJsYXBwaW5nIHN1bW1hcnkgdGV4dCAqL1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IC8qIHByZXZlbnQgb3ZlcmZsb3dpbmcgYSByZXBseSB0aWxlICovXG5cbiAgICAgICAgLm14X01Qb2xsQm9keV90b3RhbFZvdGVzIHtcbiAgICAgICAgICAgIC8qIGFsaWduIHN1bW1hcnkgdGV4dCB3aXRoIGNvcm5lciB0aW1lc3RhbXAgKi9cbiAgICAgICAgICAgIHBhZGRpbmc6IDRweCAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfTVBvbGxCb2R5X2FsbE9wdGlvbnMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgbWF4LXdpZHRoOiAkcG9sbC1tYXgtd2lkdGg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTgtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01TdGlja2VyQm9keV93cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAxMnB4IDBweDtcbn1cblxuLm14X01TdGlja2VyQm9keV9oaWRkZW4ge1xuICAgIG1heC13aWR0aDogMjIwcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC8qIFRvIGNlbnRlciB0aGUgdGV4dCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBmcmFtZSAqL1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm14X01TdGlja2VyQm9keV9wbGFjZWhvbGRlciB7XG4gICAgLyogY2VudGVyaW5nICovXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IGNhbGMoNTAlIC0gNDBweCk7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDQwcHgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI2IEVsZW1lbnQgQ3JlYXRpb25zIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyogRXZlbnRUaWxlVmlldyBvd25zIHRoZSBnZW5lcmljIGFjdGlvbi1iYXIgZ2VvbWV0cnkuIFRoZXNlIGFyZSBhcHBsaWNhdGlvblxuICAgY29udGV4dCBleGNlcHRpb25zIGFuZCBpbnRlbnRpb25hbGx5IHRhcmdldCBvbmx5IHRoZSBvdXRlciBzbG90IHdyYXBwZXIuICovXG4ubXhfRXZlbnRUaWxlX2xpbmUgPiA6aGFzKD4gLm14X01lc3NhZ2VBY3Rpb25CYXIpOjpiZWZvcmUge1xuICAgIC8qIEltcHJvdmUgY2xpY2thYmlsaXR5IG9mIHRoZSBmaXJzdCBldmVudCBiZWxvdyBhIGNvbGxhcHNlZCBidWJibGUgc3VtbWFyeS4gKi9cbiAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl1cbiAgICAgICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3RvZ2dsZVxuICAgICAgICB+IC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV91bnN0eWxlZExpc3RcbiAgICAgICAgLm14X0V2ZW50VGlsZTpmaXJzdC1vZi10eXBlXG4gICAgICAgICYge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBpbnNldDogMDtcbiAgICB9XG5cbiAgICAvKiBSZW1vdmUgdGhlIHZlcnRpY2FsIHNhZmUgYXJlYSBmb3Igdmlldy1zb3VyY2UgZXZlbnRzLiAqL1xuICAgIC5teF9FdmVudFRpbGU6aGFzKD4gLm14X0V2ZW50VGlsZV9saW5lIC5teF9WaWV3U291cmNlRXZlbnQpICYge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBpbnNldDogMDtcbiAgICB9XG59XG5cbi8qIEFsaWduIGV2ZW50IGFjdGlvbiBiYXJzIHdpdGggcmlnaHQtY29sdW1uIGJ1YmJsZXMgaW4gYW4gZXhwYW5kZWQgYnViYmxlXG4gICBzdW1tYXJ5LiAqL1xuLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5W2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdW2RhdGEtZXhwYW5kZWQ9XCJ0cnVlXCJdXG4gICAgPiAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfdW5zdHlsZWRMaXN0XG4gICAgPiAubXhfRXZlbnRUaWxlXG4gICAgPiAubXhfRXZlbnRUaWxlX2xpbmVcbiAgICA+IDpoYXMoPiAubXhfTWVzc2FnZUFjdGlvbkJhcikge1xuICAgIGluc2V0LWlubGluZS1zdGFydDogaW5pdGlhbDtcbiAgICBpbnNldC1pbmxpbmUtZW5kOiA0OHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1RleHR1YWxCb2R5X3VybFByZXZpZXdzIHtcbiAgICAvKiBTZXBhcmF0ZSB0aGUgcHJldmlldyBncm91cCBmcm9tIHRoZSBtZXNzYWdlIHRleHQgYWJvdmUgaXQuICovXG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgIC8qIExldCBzaGFyZWQtY29tcG9uZW50cyBvd24gcHJldmlldyBsaW5rIGNvbG91cnMgaW5zdGVhZCBvZiB0aGUgYXBwLXdpZGUgYW5jaG9yIGNvbG91ci4gKi9cbiAgICBhOndoZXJlKDpub3QoW2RhdGEta2luZF0pKTpob3ZlcixcbiAgICBhOndoZXJlKDpub3QoW2RhdGEta2luZF0pKTpsaW5rLFxuICAgIGE6d2hlcmUoOm5vdChbZGF0YS1raW5kXSkpOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogcmV2ZXJ0LWxheWVyO1xuICAgIH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNiBFbGVtZW50IENyZWF0aW9ucyBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9UaHJlYWRBY3Rpb25CYXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgdG9wOiBjYWxjKC0xICogKDI4cHggKyAyICogKDNweCArIHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkpKSk7XG4gICAgcmlnaHQ6IDhweDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAvKiBFbnN1cmUgdGhlIGFjdGlvbiBiYXIgYXBwZWFycyBhYm92ZSBvdGhlciB0aGluZ3MgbGlrZSB0aGUgcmVhZCBtYXJrZXIgKi9cbiAgICAvKiBhbmQgc2VuZGVyIGF2YXRhciAoZm9yIHNtYWxsIHNjcmVlbnMpICovXG4gICAgei1pbmRleDogMTA7XG5cbiAgICAvKiBBZGRzIGEgcHJldmlvdXMgZXZlbnQgc2FmZSBhcmVhIHNvIHRoYXQgeW91IGNhbid0IGFjY2lkZW50YWxseSBob3ZlciB0aGUgKi9cbiAgICAvKiBwcmV2aW91cyBldmVudCB3aGlsZSB0cnlpbmcgdG8gbW91c2UgaW50byB0aGUgYWN0aW9uIGJhciBvciBmcm9tIHRoZSAqL1xuICAgIC8qIHJlYWN0IGJ1dHRvbiB0byBpdHMgdG9vbHRpcC4gKi9cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIC8qIHRvb2x0aXAgc2FmZSBtb3VzaW5nIGFyZWEgKyB0b29sdGlwIG92ZXJoYW5nICsgKi9cbiAgICAgICAgLyogYWN0aW9uIGJhciArIGFjdGlvbiBiYXIgb2Zmc2V0IGZyb20gZXZlbnQgKi9cbiAgICAgICAgd2lkdGg6IGNhbGMoMTBweCArIDQ4cHggKyAxMDAlICsgOHB4KTtcbiAgICAgICAgLyogc2FmZSBhcmVhICsgYWN0aW9uIGJhciAqL1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMjBweCArIDEwMCUpO1xuICAgICAgICB0b3A6IC0xMnB4O1xuICAgICAgICBsZWZ0OiAtNThweDtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIGN1cnNvcjogaW5pdGlhbDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSwgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRXZlbnRUaWxlQnViYmxlLm14X2NyeXB0b0V2ZW50IHtcbiAgICBtYXJnaW46IHZhcigtLUV2ZW50VGlsZUJ1YmJsZV9tYXJnaW4tYmxvY2spIGF1dG87XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUG9sbEhpc3RvcnlfY29udGVudCB7XG4gICAgaGVpZ2h0OiA2MDBweDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLm14X1BvbGxIaXN0b3J5X2hlYWRlci5teF9IZWFkaW5nX2gyIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1BvbGxIaXN0b3J5TGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG59XG5cbi5teF9Qb2xsSGlzdG9yeUxpc3RfbGlzdCB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW4tYmxvY2s6IDA7XG4gICAgcGFkZGluZy1pbmxpbmU6IDA7XG4gICAgZmxleDogMSAxIDA7XG4gICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMTZ4KTtcbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS04eCkgMDtcblxuICAgICYubXhfUG9sbEhpc3RvcnlMaXN0X2xpc3RfRU5ERUQge1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgfVxufVxuXG4ubXhfUG9sbEhpc3RvcnlMaXN0X25vUmVzdWx0cyB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtMTZ4KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgLm14X1BvbGxIaXN0b3J5TGlzdF9sb2FkTW9yZVBvbGxzIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG59XG5cbi5teF9Qb2xsSGlzdG9yeUxpc3RfbG9hZGluZyB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAvKiBjZW50ZXIgaW4gYWxsIGZyZWUgc3BhY2VcbiAgICB3aGVuIHRoZXJlIGFyZSBubyByZXN1bHRzICovXG4gICAgJi5teF9Qb2xsSGlzdG9yeUxpc3Rfbm9SZXN1bHRzWWV0IHtcbiAgICAgICAgbWFyZ2luOiBhdXRvIGF1dG87XG4gICAgfVxufVxuXG4ubXhfUG9sbEhpc3RvcnlMaXN0X2xvYWRNb3JlUG9sbHMge1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9CYXNlQ2FyZCB7XG4gICAgLS1CYXNlQ2FyZF9FdmVudFRpbGVfbGluZS1wYWRkaW5nLWJsb2NrOiAycHg7XG4gICAgLS1CYXNlQ2FyZF9FdmVudFRpbGUtc3BhY2luZy1pbmxpbmU6IDM2cHg7XG4gICAgLS1CYXNlQ2FyZF9oZWFkZXItYnV0dG9uLXNpemU6IDI4cHg7XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tY3BkLWZvbnQtc2l6ZS1ib2R5LW1kKTtcblxuICAgIC5teF9CYXNlQ2FyZF9oZWFkZXIge1xuICAgICAgICBoZWlnaHQ6IDY0cHg7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIC8qIGNoYW5naW5nIHRoZSBjb2xvciBmcm9tICRzZXBhcmF0b3IgdG8gdHJhbnNwYXJlbnQgYXMgaXQgaXNcbiAgICAgICAgICAgdGhlIGJlc3QgdmlzdWFsIG91dHB1dCBkdXJpbmcgdGhlIHRyYW5zaXRpb24gcGVyaW9kLiBUaGlzIHdpbGwgYmVcbiAgICAgICAgICAgcmVpbnRyb2R1Y2VkIGF0IGEgbGF0ZXIgc3RhZ2UuICovXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBib3JkZXItYmxvY2stZW5kOiB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTEpIHNvbGlkICRzZXBhcmF0b3I7XG5cbiAgICAgICAgLm14X0Jhc2VDYXJkX2hlYWRlcl9zcGFjZXIge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gaDIge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDQ0cHg7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXNlbWlib2xkKTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQmFzZUNhcmRfaGVhZGVyX3RpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcblxuICAgICAgICAgICAgLm14X0Jhc2VDYXJkX2hlYWRlcl90aXRsZV9oZWFkaW5nIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1tZWRpdW0pO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfQmFzZUNhcmRfaGVhZGVyX3RpdGxlX2J1dHRvbi0tb3B0aW9uIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGModmFyKC0tQmFzZUNhcmRfaGVhZGVyLWJ1dHRvbi1zaXplKSAtIDRweCk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLUJhc2VDYXJkX2hlYWRlci1idXR0b24tc2l6ZSkgLSA0cHgpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJweDtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0F1dG9IaWRlU2Nyb2xsYmFyIHtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlO1xuICAgIH1cblxuICAgIC5teF9CYXNlQ2FyZF9mb290ZXIge1xuICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3NlY29uZGFyeSB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE0MSwgMTUxLCAxNjUsIDAuMik7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXNlbWlib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2Rpc2FibGVkIHtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV93cmFwcGVyLm14X0Jhc2VDYXJkX2hlYWRlcl90aXRsZSB7XG4gICAgLm14X0NvbnRleHR1YWxNZW51IHtcbiAgICAgICAgcG9zaXRpb246IGluaXRpYWw7XG5cbiAgICAgICAgc3BhbjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXG4gICAgICAgIGJvcmRlcjogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCA0cHggMjRweCByZ2IoMCwgMCwgMCwgMC4xKTtcbiAgICB9XG5cbiAgICAubXhfQ29udGV4dHVhbE1lbnVfY2hldnJvbl90b3Age1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICByaWdodDogMjJweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBib3JkZXI6IGluaGVyaXQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxcHg7XG4gICAgICAgICAgICBsZWZ0OiAtOHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjQgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0VtcHR5U3RhdGUge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDU2cHg7XG4gICAgICAgIGhlaWdodDogNTZweDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWwtYWN0aW9ucztcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICAvKiBCbG9vbSB1c2luZyBtYWdpYyBudW1iZXJzIGRpcmVjdGx5IG91dCBvZiBGaWdtYSAqL1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICB3aWR0aDogNjQycHg7XG4gICAgICAgIGhlaWdodDogNzc1cHg7XG4gICAgICAgIHJpZ2h0OiAtMjUzLjc3cHg7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KDQ5Ljk1JSA0OS45NSUgYXQgNTAlIDUwJSwgcmdiKDEzLCAxODksIDEzOSwgMC4xMikgMCUsIHJnYigxOCwgMTE1LCAyMzUsIDApIDEwMCUpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtODkuNjlkZWcpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FbmNyeXB0aW9uSW5mb19zcGlubmVyIHtcbiAgICAubXhfU3Bpbm5lciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgfVxuXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjQgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0V4dGVuc2lvbnNDYXJkIHtcbiAgICAtLWNwZC1zZXBhcmF0b3Itc3BhY2luZzogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAtLUFkZEV4dGVuc2lvbi1vdmVybGFwOiAtNzZweDtcbiAgICAubXhfQXV0b0hpZGVTY3JvbGxiYXIge1xuICAgICAgICBwYWRkaW5nOiAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgLyogU3R5bGluZyBmb3IgdGhlIFwiQWRkIGV4dGVuc2lvbnNcIiBidXR0b24gKi9cbiAgICAgICAgJiA+IGJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9FeHRlbnNpb25zQ2FyZF9jb250YWluZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTV4KSB2YXIoLS1jcGQtc3BhY2UtNHgpIDA7XG4gICAgfVxuXG4gICAgLm14X0V4dGVuc2lvbnNDYXJkX0J1dHRvbiB7XG4gICAgICAgIC8qIHRoaXMgYnV0dG9uIGlzIHNwZWNpYWwgc28gd2UgaGF2ZSB0byBvdmVycmlkZSBzb21lIG9mIHRoZSBvcmlnaW5hbCBzdHlsaW5nICovXG4gICAgICAgIC8qIGFzIHdlIHdpbGwgYmUgYXBwbHlpbmcgaXQgaW4gaXRzIGNoaWxkcmVuICovXG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLm14X1dpZGdldEF2YXRhciB7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FeHRlbnNpb25zQ2FyZF9pY29uX2FwcCB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0xMngpIHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FeHRlbnNpb25zQ2FyZF9hcHBfcGluVG9nZ2xlLFxuICAgICAgICAubXhfRXh0ZW5zaW9uc0NhcmRfYXBwX29wdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOyAvKiB0byBnaXZlIGJpZ2dlciBpbnRlcmFjdGl2ZSB6b25lICovXG4gICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRpY29uLWJ1dHRvbi1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTsgLyogZXF1YWwgdG8gcGFkZGluZy10b3Agb2YgcGFyZW50ICovXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxNDEsIDE1MSwgMTY1LCAwLjEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FeHRlbnNpb25zQ2FyZF9hcHBfcGluVG9nZ2xlIHtcbiAgICAgICAgICAgIHJpZ2h0OiA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXh0ZW5zaW9uc0NhcmRfYXBwX29wdGlvbnMge1xuICAgICAgICAgICAgcmlnaHQ6IDMycHg7IC8qIDI0ICsgOCAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9FeHRlbnNpb25zQ2FyZF9CdXR0b25fcGlubmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9FeHRlbnNpb25zQ2FyZF9hcHBfcGluVG9nZ2xlIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogdW5zZXQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7IC8qIHJlLWFsaWduIGJhc2VkIG9uIHRoZSBoZWlnaHQgY2hhbmdlICovXG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogcGFzcyB0aHJvdWdoIHRvIHRoZSByZWFsIGJ1dHRvbiAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogU2V0IGxheW91dCBmb3IgZXZlcnlvbmUgYnV0dG9uICovXG4gICAgYVtkYXRhLWtpbmQ9XCJwcmltYXJ5XCJdIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTEweCk7XG4gICAgfVxuXG4gICAgLm14X0VtcHR5U3RhdGU6OmJlZm9yZSB7XG4gICAgICAgIC8qIE92ZXJsYXAgdGhlIEFkZCBleHRlbnNpb25zIGJ1dHRvbiAqL1xuICAgICAgICB0b3A6IHZhcigtLUFkZEV4dGVuc2lvbi1vdmVybGFwKTtcbiAgICB9XG5cbiAgICAubXhfRW1wdHlTdGF0ZSB7XG4gICAgICAgIC8qIFN0b3AgZW1wdHkgc3RhdGUgc2Nyb2xsaW5nICovXG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlICsgdmFyKC0tQWRkRXh0ZW5zaW9uLW92ZXJsYXApKTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjYgRWxlbWVudCBDcmVhdGlvbnMgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKiBUaGUgdXNlcmNvbnRlbnQgaWZyYW1lIHRoZSBkb2N1bWVudCBpcyByZW5kZXJlZCBpbi4gKi9cbi5teF9QZGZWaWV3ZXJfaWZyYW1lIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXI6IDA7XG4gICAgLyogTGV0cyB0aGUgcGFuZWwncyBiYWNrZ3JvdW5kIHNob3cgdGhyb3VnaCBhcm91bmQgdGhlIHBhZ2VzLiAqL1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Bpbm5lZE1lc3NhZ2VzQ2FyZCB7XG4gICAgLS11bnBpbi1oZWlnaHQ6IDc2cHg7XG5cbiAgICAubXhfUGlubmVkTWVzc2FnZXNDYXJkX3dyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VzQ2FyZF9TZXBhcmF0b3Ige1xuICAgICAgICAgICAgbWluLWhlaWdodDogMXB4O1xuICAgICAgICAgICAgLyogT3ZlcnJpZGUgZGVmYXVsdCBjb21wb3VuZCB2YWx1ZSAqL1xuICAgICAgICAgICAgbWFyZ2luLWJsb2NrOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Bpbm5lZE1lc3NhZ2VzQ2FyZF93cmFwcGVyX3VucGluX2FsbCB7XG4gICAgICAgIC8qIFJlbW92ZSB0aGUgdW5waW4gYWxsIGJ1dHRvbiBoZWlnaHQgYW5kIHRoZSB0b3AgYW5kIGJvdHRvbSBwYWRkaW5nICAqL1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIHZhcigtLXVucGluLWhlaWdodCkgLSBjYWxjKHZhcigtLWNwZC1zcGFjZS00eCkgKiAyKSk7XG4gICAgfVxuXG4gICAgLm14X1Bpbm5lZE1lc3NhZ2VzQ2FyZF91bnBpbiB7XG4gICAgICAgIC8qIE1ha2UgaXQgZmxvYXQgYXQgdGhlIGJvdHRvbSBvZiB0aGUgdW5waW4gcGFuZWwgKi9cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IHZhcigtLXVucGluLWhlaWdodCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBib3gtc2hhZG93OiAwIDRweCAyNHB4IDAgcmdiKDI3LCAyOSwgMzQsIDAuMSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQsIDIwMjUgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbVN1bW1hcnlDYXJkIHtcbiAgICAtLWNwZC1zZXBhcmF0b3ItaW5zZXQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgLS1jcGQtc2VwYXJhdG9yLXNwYWNpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICAubXhfUm9vbVN1bW1hcnlDYXJkX2NvbnRhaW5lciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNXgpIHZhcigtLWNwZC1zcGFjZS00eCkgMDtcbiAgICB9XG5cbiAgICAubXhfUm9vbVN1bW1hcnlDYXJkX3Jvb21OYW1lLFxuICAgIC5teF9Sb29tU3VtbWFyeUNhcmRfYWxpYXMge1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLm14X1Jvb21TdW1tYXJ5Q2FyZF9hbGlhcyB7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cblxuICAgIC5teF9Sb29tU3VtbWFyeUNhcmRfdG9waWMge1xuICAgICAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuXG4gICAgICAgIC5teF9Sb29tU3VtbWFyeUNhcmRfdG9waWNfYm94IHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Jvb21TdW1tYXJ5Q2FyZF90b3BpY19jb250YWluZXIge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Jvb21TdW1tYXJ5Q2FyZF90b3BpY19lZGl0IHtcbiAgICAgICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Sb29tU3VtbWFyeUNhcmRfdG9waWNfY2hldnJvbiB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfUm9vbVN1bW1hcnlDYXJkX3RvcGljX2NvbGxhcHNlZCB7XG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Sb29tU3VtbWFyeUNhcmRfdG9waWNfY2hldnJvbiB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGluayB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTNweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxufVxuXG4ubXhfUm9vbVN1bW1hcnlDYXJkX2JhZGdlcyB7XG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNHgpIDA7XG59XG5cbi5teF9Sb29tU3VtbWFyeUNhcmRfc2VhcmNoIHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWluLXdpZHRoOiAwO1xuXG4gICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IHVuc2V0OyAvKiBvdmVycmlkZSBfY29tbW9uLnBjc3Mgd2hpY2ggaW5oaWJpdHMgdGhpcyAqL1xuICAgIH1cbn1cblxuLm14X1Jvb21TdW1tYXJ5Q2FyZF9yb29tTmFtZSB7XG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtM3gpIDAgdmFyKC0tY3BkLXNwYWNlLTF4KTtcbn1cblxuLm14X1Jvb21TdW1tYXJ5Q2FyZF9ib3R0b21PcHRpb25zIHtcbiAgICBtYXJnaW46IDAgMCB2YXIoLS1jcGQtc3BhY2UtOHgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEtMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVGhyZWFkUGFuZWwge1xuICAgIGhlaWdodDogMTAwcHg7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgICAubXhfVGhyZWFkUGFuZWxIZWFkZXIge1xuICAgICAgICBoZWlnaHQ6IDY0cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItZ3JheS00MDApO1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVGhyZWFkUGFuZWxfdmVydGljYWxfc2VwYXJhdG9yIHtcbiAgICAgICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItZ3JheS00MDApO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RocmVhZFBhbmVsX2Ryb3Bkb3duIHtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgICAgICAgICBwYWRkaW5nOiAzcHggdmFyKC0tY3BkLXNwYWNlLTF4KSAzcHggdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICZbYXJpYS1leHBhbmRlZD1cInRydWVcIl0ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQXV0b0hpZGVTY3JvbGxiYXIsXG4gICAgLm14X1Jvb21WaWV3X21lc3NhZ2VQYW5lbFNwaW5uZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IDA7XG4gICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDsgLyogc2V0IGdhcCBiZXR3ZWVuIHRoZSB0aHJlYWQgdGlsZSBhbmQgdGhlIHJpZ2h0IGJvcmRlciAqL1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgLyogRm9yIHN0eWxlIHJ1bGVzIG9mIEV2ZW50VGlsZSBpbiBhIHRocmVhZCwgc2VlIF9FdmVudFRpbGUucGNzcyAqL1xuICAgICYubXhfVGhyZWFkVmlldyB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgLm14X1RocmVhZFZpZXdfdGltZWxpbmVQYW5lbFdyYXBwZXIge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMDsgLyogZG9uJ3QgZGlzcGxhY2UgdGhlIGNvbXBvc2VyICovXG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAgICAgICAgIC5teF9GaWxlRHJvcFRhcmdldCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X01lc3NhZ2VDb21wb3Nlcl9zZW5kTWVzc2FnZSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBNYWtlIHVzZSBvZiB0aGUgc3BhY2UgYWJvdmUgdGhlIGNvbXBvc2VyIGJ1dHRvbnMgdG9vICovXG4gICAgICAgIC5teF9BdXRvY29tcGxldGUge1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDE0MHB4KTtcbiAgICAgICAgfVxuICAgICAgICAmLm14X1RocmVhZFZpZXdfbmFycm93IC5teF9BdXRvY29tcGxldGUge1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDEwOHB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Sb29tVmlld19tZXNzYWdlUGFuZWwge1xuICAgICAgICAmLm14X1Jvb21WaWV3X21lc3NhZ2VMaXN0V3JhcHBlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Sb29tVmlld19tZXNzYWdlTGlzdFdyYXBwZXIge1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDZweCk7IC8qIDhweCAtIDJweCAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Jvb21WaWV3X2VtcHR5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Jvb21WaWV3X01lc3NhZ2VMaXN0IHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgY29udGVudC12aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeSB7XG4gICAgICAgIC8qIEFjY291bnQgZm9yIHNjcm9sbGJhciB3aGVuIGhvdmVyaW5nICovXG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuXG4gICAgICAgIC5teF9UaW1lbGluZVNlcGFyYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X01lc3NhZ2VDb21wb3NlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgcGFkZGluZzogMCA4cHg7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuXG4gICAgLm14X0Jhc2VDYXJkX2Zvb3RlciB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAycHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDhweDtcblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfaW5saW5lIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV93cmFwcGVyIHtcbiAgICAubXhfVGhyZWFkUGFuZWxfSGVhZGVyX0ZpbHRlck9wdGlvbkl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcGFkZGluZzogMTBweCAyMHB4IDEwcHggMzBweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGV2ZW50LXNlbGVjdGVkLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJlthcmlhLWNoZWNrZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICAgIHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMTRweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc3BhbjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSwgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVGltZWxpbmVDYXJkIHtcbiAgICAubXhfVGltZWxpbmVDYXJkX3RpbWVsaW5lIHtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBvZmZzZXQgcGFyZW50IGZvciBqdW1wIHRvIGJvdHRvbSBidXR0b24gKi9cbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIH1cblxuICAgIC5teF9OZXdSb29tSW50cm8ge1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1CYXNlQ2FyZF9FdmVudFRpbGUtc3BhY2luZy1pbmxpbmUpO1xuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tQmFzZUNhcmRfRXZlbnRUaWxlLXNwYWNpbmctaW5saW5lKTtcbiAgICB9XG5cbiAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X3dyYXBwZXIge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiBhdXRvIDVweDtcbiAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudCB7XG4gICAgICAgICAgICBtYXJnaW46IDRweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeSB7XG4gICAgICAgICZbZGF0YS1sYXlvdXQ9XCJpcmNcIl0sXG4gICAgICAgICZbZGF0YS1sYXlvdXQ9XCJncm91cFwiXSB7XG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUsXG4gICAgICAgICAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfdW5zdHlsZWRMaXN0ID4gLm14X0V2ZW50VGlsZSA+IDpoYXMoPiAubXhfQmFzZUF2YXRhcikgfiAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1CYXNlQ2FyZF9FdmVudFRpbGUtc3BhY2luZy1pbmxpbmUpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tTWVzc2FnZVRpbWVzdGFtcC13aWR0aCk7IC8qIGVuc3VyZSB0aW1lc3RhbXAgaXMgbm90IGhpZGRlbiAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1dob0lzVHlwaW5nVGlsZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTJweDsgLyogdW5kbyBwYWRkaW5nIG9uIHRoZSBtZXNzYWdlIGxpc3QgKi9cbiAgICB9XG5cbiAgICAubXhfV2hvSXNUeXBpbmdUaWxlX2F2YXRhcnMge1xuICAgICAgICBmbGV4LWJhc2lzOiA0OHB4OyAvKiAxMiAocGFkZGluZyBvbiBtZXNzYWdlIGxpc3QpICsgMzYgKHBhZGRpbmcgb24gZXZlbnQgbGluZXMpICovXG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Vc2VySW5mby5teF9CYXNlQ2FyZCB7XG4gICAgLyogVXNlckluZm8gaGFzIGEgY2lyY3VsYXIgaW1hZ2UgYXQgdGhlIHRvcCBzbyBpdCBmaXRzIGJldHdlZW4gdGhlIGJhY2sgJiBjbG9zZSBidXR0b25zICovXG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBmb250LXNpemU6IHZhcigtLWNwZC1mb250LXNpemUtYm9keS1zbSk7XG5cbiAgICAubXhfVXNlckluZm9fY29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KSAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIG1hcmdpbjogMCB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuXG4gICAgICAgICYgKyAubXhfVXNlckluZm9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkc2VwYXJhdG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1VzZXJJbmZvX2F2YXRhciB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTEyeCkgdmFyKC0tY3BkLXNwYWNlLTR4KSAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICAgICAgLm14X1VzZXJJbmZvX2F2YXRhcl90cmFuc2l0aW9uIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTIwcHg7XG4gICAgICAgICAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAwLjVzO1xuXG4gICAgICAgICAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICAgICAgLyogT3ZlcnJpZGUgdGhlIGNhbGN1bGF0ZWQgZm9udC1zaXplIHNvIHRoYXQgdGhlIGxldHRlciBpc24ndCB0aW55ICovXG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiA0cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfQmFzZUF2YXRhcixcbiAgICAgICAgICAgIC5teF9CYXNlQXZhdGFyIGltZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMXgpIDA7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIG1hcmdpbjogNXB4IDA7XG4gICAgfVxuXG4gICAgLm14X1VzZXJJbmZvX2hlYWRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5teF9Vc2VySW5mb19wcm9maWxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuXG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMjBweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1VzZXJJbmZvX3Byb2ZpbGVfbmFtZSB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAzMHB4O1xuXG4gICAgICAgICAgICAvKiBsaW1pdCB0byAyIGxpbmVzLCBzaG93IGFuIGVsbGlwc2lzIGlmIGl0IG92ZXJmbG93cyAqL1xuICAgICAgICAgICAgLyogdGhpcyBsb29rcyB3ZWJraXQgc3BlY2lmaWMgYnV0IGlzIHN1cHBvcnRlZCBieSBGaXJlZm94IDY4KyAqL1xuICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVXNlckluZm9fcHJvZmlsZV9teGlkIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1VzZXJJbmZvX3Byb2ZpbGVTdGF0dXMge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1VzZXJJbmZvX3RpbWV6b25lIHtcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqIE92ZXJyaWRlcyBmb3IgdGhlIGNvcHkgdG8gY2xpcGJvYXJkIGJ1dHRvbiAqKi9cbiAgICAgICAgLm14X0NvcHlhYmxlVGV4dCB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0NvcHlhYmxlVGV4dF9jb3B5QnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBwb3NpdGlvbjogdW5zZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfVXNlckluZm9fdGltZXpvbmUge1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0xeCkgMDtcbiAgICB9XG5cbiAgICAubXhfUHJlc2VuY2VMYWJlbCB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgLm14X1VzZXJJbmZvX3ZlcmlmaWNhdGlvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGhlaWdodDogMzZweDtcblxuICAgICAgICAubXhfVXNlckluZm9fdmVyaWZpZWRfYmFkZ2Uge1xuICAgICAgICAgICAgbWluLXdpZHRoOiA2OHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuXG4gICAgICAgICAgICAubXhfVXNlckluZm9fdmVyaWZpZWRfaWNvbiB7XG4gICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Vc2VySW5mb192ZXJpZmllZF9sYWJlbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1VzZXJJbmZvX3ZlcmlmaWNhdGlvbl91bmF2YWlsYWJsZSB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Vc2VySW5mb19maWVsZCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgIH1cblxuICAgIC5teF9Vc2VySW5mb19zdGF0dXNNZXNzYWdlIHtcbiAgICAgICAgJHN0YXR1c051bWJlck9mTGluZXM6IDM7XG5cbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMXJlbTtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMXJlbSAqICRzdGF0dXNOdW1iZXJPZkxpbmVzKTtcbiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAkc3RhdHVzTnVtYmVyT2ZMaW5lcztcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICB9XG5cbiAgICAubXhfQXV0b0hpZGVTY3JvbGxiYXIge1xuICAgICAgICBmbGV4OiAxIDEgMDtcbiAgICB9XG5cbiAgICAmLm14X1VzZXJJbmZvX3NtYWxsQXZhdGFyIHtcbiAgICAgICAgLm14X1VzZXJJbmZvX2F2YXRhciB7XG4gICAgICAgICAgICAubXhfVXNlckluZm9fYXZhdGFyX3RyYW5zaXRpb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNzJweDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICAgICAgICAgIC8qIE92ZXJyaWRlIHRoZSBjYWxjdWxhdGVkIGZvbnQtc2l6ZSBzbyB0aGF0IHRoZSBsZXR0ZXIgaXNuJ3QgdGlueSAqL1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9WZXJpZmljYXRpb25QYW5lbF92ZXJpZmllZF9zZWN0aW9uLFxuLm14X1ZlcmlmaWNhdGlvblBhbmVsX3JlY2lwcm9jYXRlX3NlY3Rpb24ge1xuICAgIC8qIGNlbnRlciB0aGUgYmlnIHNoaWVsZCBpY29uICovXG4gICAgLm14X0UyRUljb24ge1xuICAgICAgICAvKiBPdmVycmlkZSBnZW5lcmFsIHVzZXIgaW5mbyBtYXJnaW4gKi9cbiAgICAgICAgbWFyZ2luOiAyMHB4IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5teF9Vc2VySW5mby5teF9CYXNlQ2FyZCB7XG4gICAgLm14X1VzZXJJbmZvX2NvbnRhaW5lcjpub3QoLm14X1VzZXJJbmZvX3NlcGFyYXRvcikge1xuICAgICAgICA+IGRpdiA+IHAge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVmVyaWZpY2F0aW9uUGFuZWxfdmVyaWZ5QnlFbW9qaUJ1dHRvbixcbiAgICAgICAgLm14X1VzZXJJbmZvX3dpZGVCdXR0b24ge1xuICAgICAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0VuY3J5cHRpb25JbmZvX3NwaW5uZXIsXG4gICAgICAgIC5teF9WZXJpZmljYXRpb25TaG93U2FzIHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGlubmVyLFxuICAgICAgICAubXhfVmVyaWZpY2F0aW9uU2hvd1NhcyB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1ZlcmlmaWNhdGlvblBhbmVsX3FyQ29kZSB7XG4gICAgICAgIHBhZGRpbmc6IDRweCA0cHggMCA0cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAvKiBPdmVycmlkZSBnZW5lcmFsIHVzZXIgaW5mbyBtYXJnaW4gKi9cbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDtcblxuICAgICAgICBjYW52YXMge1xuICAgICAgICAgICAgLyogb3ZlcnJpZGUgaGVpZ2h0IGFuZCB3aWR0aCB3aGljaCBhcmUgc2V0IG9uIHRoZSBlbGVtZW50IGRpcmVjdGx5ICovXG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDI0MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1ZlcmlmaWNhdGlvblBhbmVsX3JlY2lwcm9jYXRlX3NlY3Rpb24ge1xuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDEwcHggMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogU3BlY2lhbCBjYXNlIHN0eWxpbmcgZm9yIEVuY3J5cHRpb25QYW5lbCBpbiBhIE1vZGFsIGRpYWxvZyAqL1xuLm14X0RpYWxvZyxcbi5teF9Db21wbGV0ZVNlY3VyaXR5X2JvZHkge1xuICAgIC5teF9WZXJpZmljYXRpb25QYW5lbF9RUlBoYXNlX3N0YXJ0T3B0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICA+IC5teF9WZXJpZmljYXRpb25QYW5lbF9RUlBoYXNlX2JldHdlZW5UZXh0IHtcbiAgICAgICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVmVyaWZpY2F0aW9uUGFuZWxfUVJQaGFzZV9zdGFydE9wdGlvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMTBweDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgICAgICAgY2FudmFzLFxuICAgICAgICAgICAgLm14X1ZlcmlmaWNhdGlvblBhbmVsX1FSUGhhc2Vfbm9RUiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIyMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMjBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gcCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfVmVyaWZpY2F0aW9uUGFuZWxfUVJQaGFzZV9oZWxwVGV4dCB7XG4gICAgICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDMwcHggMDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBFbmNyeXB0aW9uUGFuZWwgd2hlbiB2ZXJpZmljYXRpb24gaXMgZG9uZSAqL1xuICAgIC5teF9WZXJpZmljYXRpb25QYW5lbF92ZXJpZmllZF9zZWN0aW9uIHtcbiAgICAgICAgLyogcmlnaHQgYWxpZ24gdGhlIFwiR290IGl0XCIgYnV0dG9uICovXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9WZXJpZmljYXRpb25QYW5lbF9yZWNpcHJvY2F0ZV9zZWN0aW9uIHtcbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA3cHggNDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9WZXJpZmljYXRpb25QYW5lbF9yZWNpcHJvY2F0ZUJ1dHRvbnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1dpZGdldENhcmQge1xuICAgIC5teF9BcHBUaWxlRnVsbFdpZHRoIHtcbiAgICAgICAgbWF4LXdpZHRoOiB1bnNldDtcbiAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BbGlhc1NldHRpbmdzX2xvY2FsQWRkcmVzc2VzIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuXG4gICAgLyogbGlzdC1zdHlsZSBkb2Vzbid0IGRvIGl0IGZvciB3ZWJraXQgKi9cbiAgICAmOjotd2Via2l0LWRldGFpbHMtbWFya2VyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjUgTmV3IFZlY3RvciBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9Sb29tTGlzdFBhbmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgIGhlaWdodDogMTAwJTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQXBwc0RyYXdlciB7XG4gICAgLS1taW5XaWR0aDogMjQwcHg7IC8qIFRPRE8gdGhpcyBzaG91bGQgYmUgMzAwcHggYnV0IHRoYXQncyB0b28gbGFyZ2UgKi9cblxuICAgIG1hcmdpbjogdmFyKC0tY29udGFpbmVyLWdhcC13aWR0aCk7XG4gICAgLyogVGhlIGxlZnQgc2lkZSBnYXAgaXMgZnVsbHkgaGFuZGxlZCBieSB0aGlzIG1hcmdpbi4gVG8gcHJvaGliaXQgYmxlZWRpbmcgb24gd2Via2l0IGJyb3dzZXIuICovXG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvbnRhaW5lci1nYXAtd2lkdGgpIC8gMik7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgLyogTm8gYm90dG9tIG1hcmdpbiBmb3IgdGhlIGNvcnJlY3QgZ2FwIHRvIHRoZSBDYWxsVmlldyBiZWxvdy4gKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZmxleC1ncm93OiAxO1xuXG4gICAgLm14X0FwcHNEcmF3ZXJfcmVzaXplciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNvbnRhaW5lci1nYXAtd2lkdGgpO1xuICAgIH1cblxuICAgIC5teF9BcHBzRHJhd2VyX3Jlc2l6ZXJfY29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAubXhfQXBwc0RyYXdlcl9yZXNpemVyX2NvbnRhaW5lcl9oYW5kbGUge1xuICAgICAgICAgICAgY3Vyc29yOiBucy1yZXNpemU7XG5cbiAgICAgICAgICAgIC8qIE92ZXJyaWRlIHN0eWxlcyBmcm9tIGxpYnJhcnksIG1ha2luZyB0aGUgd2hvbGUgYXJlYSB0aGUgdGFyZ2V0IGFyZWEgKi9cbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgLyogVGhpcyBpcyBwb3NpdGlvbmVkIGRpcmVjdGx5IGJlbG93IGZyYW1lICovXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDUwJSAhaW1wb3J0YW50OyAvKiBvdmVycmlkZSBmcm9tIGxpYnJhcnkgKi9cblxuICAgICAgICAgICAgLyogV2UgdGhlbiByZW5kZXIgdGhlIHBpbGwgaGFuZGxlIGluIGFuIDo6YWZ0ZXIgdG8ga2VlcCBpdCBpbiB0aGUgaGFuZGxlJ3MgKi9cbiAgICAgICAgICAgIC8qIGFyZWEgd2l0aG91dCBiZWluZyBhIG1hc3NpdmUgbGluZSBhY3Jvc3MgdGhlIHNjcmVlbiAqL1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcblxuICAgICAgICAgICAgICAgIGhlaWdodDogNHB4O1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcblxuICAgICAgICAgICAgICAgIC8qIFRvZ2V0aGVyLCB0aGVzZSBtYWtlIHRoZSBiYXIgNjRweCB3aWRlICovXG4gICAgICAgICAgICAgICAgLyogVGhlc2UgYXJlIGFsc28gb3ZlcnJpZGRlbiBmcm9tIHRoZSBsaWJyYXJ5ICovXG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAzMnB4KTtcbiAgICAgICAgICAgICAgICByaWdodDogY2FsYyg1MCUgLSAzMnB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICAubXhfQXBwc0RyYXdlcl9yZXNpemVyX2NvbnRhaW5lcl9oYW5kbGU6OmFmdGVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUmVzaXplSGFuZGxlLS1ob3Jpem9udGFsOjpiZWZvcmUge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogM3B4O1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcblxuICAgICAgICAgICAgaGVpZ2h0OiA2NHB4OyAvKiB0byBtYXRjaCB3aWR0aCBvZiB0aGUgb25lcyBvbiByb29tbGlzdCAqL1xuICAgICAgICAgICAgd2lkdGg6IDRweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcblxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9BcHBUaWxlIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1taW5XaWR0aCk7XG4gICAgfVxuXG4gICAgJi5teF9BcHBzRHJhd2VyLS1tYXhpbWlzZWQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jb250YWluZXItZ2FwLXdpZHRoKTtcbiAgICB9XG5cbiAgICAmLm14X0FwcHNEcmF3ZXItLXJlc2l6aW5nIC5teF9BcHBUaWxlX3BlcnNpc3RlZFdyYXBwZXIge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgIH1cblxuICAgICYubXhfQXBwc0RyYXdlci0tMmFwcHMgLm14X0FwcFRpbGUge1xuICAgICAgICB3aWR0aDogNTAlO1xuXG4gICAgICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtaW4td2lkdGg6IHZhcigtLW1pbldpZHRoKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuICAgICYubXhfQXBwc0RyYXdlci0tM2FwcHMgLm14X0FwcFRpbGUge1xuICAgICAgICB3aWR0aDogMzMlO1xuXG4gICAgICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtaW4td2lkdGg6IHZhcigtLW1pbldpZHRoKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfQXBwc0NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG5cbiAgICAubXhfQXBwVGlsZTpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IHZhcigtLWNvbnRhaW5lci1ib3JkZXItd2lkdGgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4IDAgMCAxMHB4O1xuICAgIH1cbiAgICAubXhfQXBwVGlsZTpsYXN0LW9mLXR5cGUge1xuICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IHZhcigtLWNvbnRhaW5lci1ib3JkZXItd2lkdGgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDEwcHggMTBweCAwO1xuICAgIH1cblxuICAgIC5teF9SZXNpemVIYW5kbGUtLWhvcml6b250YWwge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9BcHBUaWxlIHtcbiAgICBib3JkZXI6IHZhcigtLWNvbnRhaW5lci1ib3JkZXItd2lkdGgpIHNvbGlkICR3aWRnZXQtbWVudS1iYXItYmctY29sb3I7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdpZGdldC1tZW51LWJhci1iZy1jb2xvcjtcbn1cblxuLm14X0FwcFRpbGVGdWxsV2lkdGgge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IC8qIHRvIG92ZXJyaWRlIHRoZSBpbmxpbmUgc3R5bGUgc2V0IGJ5IHRoZSByZXNpemVyICovXG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiB2YXIoLS1jb250YWluZXItYm9yZGVyLXdpZHRoKSBzb2xpZCAkd2lkZ2V0LW1lbnUtYmFyLWJnLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdpZGdldC1tZW51LWJhci1iZy1jb2xvcjtcbn1cblxuLm14X0FwcFRpbGVfbWluaSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLm14X0FwcFRpbGUgLm14X0FwcFRpbGVfcGVyc2lzdGVkV3JhcHBlcixcbi5teF9BcHBUaWxlRnVsbFdpZHRoIC5teF9BcHBUaWxlX3BlcnNpc3RlZFdyYXBwZXIsXG4ubXhfQXBwVGlsZV9taW5pIC5teF9BcHBUaWxlX3BlcnNpc3RlZFdyYXBwZXIge1xuICAgIGZsZXg6IDE7XG59XG5cbi5teF9BcHBUaWxlX3BlcnNpc3RlZFdyYXBwZXIgZGl2IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5teF9BcHBUaWxlTWVudUJhciB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2lkZ2V0LW1lbnUtYmFyLWJnLWNvbG9yO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xuICAgIHBhZGRpbmctYm90dG9tOiA2cHg7XG5cbiAgICAubXhfQXBwVGlsZU1lbnVCYXJfdGl0bGUge1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbiAgICAgICAgLm14X1dpZGdldEF2YXRhciB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICBoMSB7XG4gICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA5cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0FwcFRpbGVNZW51QmFyX3dpZGdldHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIC5teF9BcHBUaWxlTWVudUJhcl93aWRnZXRzX2J1dHRvbiB7XG4gICAgICAgICAgICAtLXNpemU6IDI0cHg7IC8qIFNpemUgb2YgdGhlIGJ1dHRvbi4gSXRzIGhlaWdodCBhbmQgd2lkdGggdmFsdWVzIHNob3VsZCBiZSBzYW1lICovXG5cbiAgICAgICAgICAgIG1hcmdpbjogMCA0cHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUpO1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUpO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwYW5lbC1hY3Rpb25zO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0ljb24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIFJ1bGVzIGFkZGVkIHRvIHRoaXMgc2VsZWN0b3Igc3R5bGUgYXBwVGlsZUJvZHkgZ2VuZXJhbGx5ICovXG4ubXhfQXBwVGlsZUJvZHkge1xuICAgIC8qIEFwcGx5IHRvIGV2ZXJ5IHZhcmlhbnQgb2YgYXBwVGlsZUJvZHkgKi9cbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICAvKiBjb25zdCBsb2FkaW5nRWxlbWVudCAqL1xuICAgIC8qIE5vdGUgdGhlIGxvYWRpbmcgc3Bpbm5lciBhbmQgdGhlIG1lc3NhZ2UgbmV4dCB0byBpdCBhcmUgbm90IGFsd2F5cyBpbmNsdWRlZCBpbiBteF9BcHBUaWxlQm9keS0tbG9hZGluZyAqL1xuICAgIC5teF9BcHBUaWxlQm9keV9mYWRlSW5TcGlubmVyIHtcbiAgICAgICAgLyogcGxhY2Ugc3Bpbm5lciBhbmQgdGhlIG1lc3NhZ2UgYXQgdGhlIGNlbnRlciBvZiBteF9BcHBUaWxlQm9keSAqL1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyAvKiBtZXNzYWdlIG5leHQgdG8gdGhlIHNwaW5uZXIgKi9cbiAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYmFja3dhcmRzO1xuICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDIwMG1zO1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDUwMG1zO1xuICAgICAgICBhbmltYXRpb24tbmFtZTogbXhfQXBwVGlsZUJvZHlfZmFkZUluU3Bpbm5lckFuaW1hdGlvbjtcbiAgICB9XG5cbiAgICAmLm14X0FwcFRpbGVCb2R5LS1sYXJnZSxcbiAgICAmLm14X0FwcFRpbGVCb2R5LS1taW5pIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBpZnJhbWUge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0FwcFRpbGVCb2R5LS1sYXJnZSB7XG4gICAgICAgIC0tQXBwVGlsZUJvZHktaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aWRnZXQtYm9keS1iZy1jb2xvcjtcblxuICAgICAgICBpZnJhbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfQXBwVGlsZUJvZHktLWxvYWRpbmcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgLyogbWF0Y2ggYmcgb2YgYm9yZGVyIHNvIHRoYXQgdGhlIGN1dCBjb3JuZXJzIGhhdmUgdGhlIHJpZ2h0IGZpbGwgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdpZGdldC1ib2R5LWJnLWNvbG9yICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgaWZyYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0FwcFRpbGVCb2R5LS1jYWxsIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIH1cbiAgICAmLm14X0FwcFRpbGVCb2R5LS1jYWxsLm14X0FwcFRpbGVCb2R5LS1taW5pIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIH1cbn1cblxuLyogYXBwVGlsZUJvZHkgaXMgZW1iZWRkZWQgdG8gUGVyc2lzdGVkRWxlbWVudCBvdXRzaWRlIG9mIG14X0FwcFRpbGUsXG4gICBzbyBydWxlcyB0byBzdHlsZSBhcHBUaWxlQm9keSBnZW5lcmFsbHkgc2hvdWxkIG5vdCBiZSBpbmNsdWRlZCBoZXJlLiAqL1xuLm14X0FwcFRpbGUgLm14X0FwcFRpbGVCb2R5LS1sYXJnZSxcbi5teF9BcHBUaWxlRnVsbFdpZHRoIC5teF9BcHBUaWxlQm9keS0tbGFyZ2UsXG4ubXhfQXBwVGlsZV9taW5pIC5teF9BcHBUaWxlQm9keS0tbWluaSB7XG4gICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgIGZsZXg6IDE7XG59XG5cbkBrZXlmcmFtZXMgbXhfQXBwVGlsZUJvZHlfZmFkZUluU3Bpbm5lckFuaW1hdGlvbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG4iLCIubXhfQXV0b2NvbXBsZXRlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIHotaW5kZXg6IDEwMDE7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHByaW1hcnktaGFpcmxpbmUtY29sb3I7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHggOHB4IDAgMDtcbiAgICBvdmVyZmxvdzogY2xpcDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYm94LXNoYWRvdzogMHB4IC0xNnB4IDMycHggJGNvbXBvc2VyLXNoYWRvdy1jb2xvcjtcbn1cblxuLm14X0F1dG9jb21wbGV0ZV9Qcm92aWRlclNlY3Rpb24ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLyogYSBcImJsb2NrXCIgY29tcGxldGlvbiB0YWtlcyB1cCBhIHdob2xlIGxpbmUgKi9cbi5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9ibG9jayB7XG4gICAgbWluLWhlaWdodDogMzRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9ibG9jayAqIHtcbiAgICBtYXJnaW46IDAgM3B4O1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlX0NvbXBsZXRpb25fcGlsbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3JkZXItcmFkaXVzOiAycmVtO1xuICAgIGhlaWdodDogJGZvbnQtMzRweDtcbiAgICBwYWRkaW5nOiAwLjRyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uX3BpbGwgPiAqIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuM3JlbTtcbn1cblxuLyogc3R5bGluZyBmb3IgY29tbW9uIGNvbXBsZXRpb24gZWxlbWVudHMgKi9cbi5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9zdWJ0aXRsZSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZsZXg6IDE7XG59XG5cbi5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9kZXNjcmlwdGlvbiB7XG4gICAgY29sb3I6IGdyYXk7XG4gICAgbWluLXdpZHRoOiAxNTBweDtcbn1cblxuLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uX2NvbnRhaW5lcl9waWxsIHtcbiAgICBtYXJnaW46IDEycHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuQGNvbnRhaW5lciByb29tdmlldyAoaGVpZ2h0ID49IDBweCkge1xuICAgIC5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9jb250YWluZXJfcGlsbCB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDQwY3FoO1xuICAgIH1cbn1cblxuLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uX2NvbnRhaW5lcl90cnVuY2F0ZSB7XG4gICAgLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uX3RpdGxlLFxuICAgIC5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9zdWJ0aXRsZSxcbiAgICAubXhfQXV0b2NvbXBsZXRlX0NvbXBsZXRpb25fZGVzY3JpcHRpb24ge1xuICAgICAgICAvKiBFbGxpcHNpcyBmb3IgbG9uZyBuYW1lcy9zdWJ0aXRsZXMvZGVzY3JpcHRpb25zICovXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cbn1cblxuLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uLnNlbGVjdGVkLFxuLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkc2VsZWN0ZWQtY29sb3I7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cblxuLm14X0F1dG9jb21wbGV0ZV9wcm92aWRlcl9uYW1lIHtcbiAgICBtYXJnaW46IDEycHg7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBvcGFjaXR5OiAwLjQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTgtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0F1eFBhbmVsIHtcbiAgICBtaW4td2lkdGg6IDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDBweCBhdXRvO1xuXG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9CYXNpY01lc3NhZ2VDb21wb3NlciB7XG4gICAgLyogVGhlc2UgYXJlIHNldCBpbiBKYXZhc2NyaXB0ICovXG4gICAgLS1hdmF0YXItbGV0dGVyOiBcIlwiO1xuICAgIC0tYXZhdGFyLWJhY2tncm91bmQ6IHVuc2V0O1xuICAgIC0tYXZhdGFyLWNvbG9yOiB1bnNldDtcbiAgICAtLXBsYWNlaG9sZGVyOiBcIlwiO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLm14X0Jhc2ljTWVzc2FnZUNvbXBvc2VyX2lucHV0RW1wdHkgPiA6Zmlyc3QtY2hpbGQ6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IHZhcigtLXBsYWNlaG9sZGVyKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgIEBrZXlmcmFtZXMgdmlzdWFsYmVsbCB7XG4gICAgICAgIGZyb20ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHZpc3VhbC1iZWxsLWJnLWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgIHRvIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9CYXNpY01lc3NhZ2VDb21wb3Nlcl9pbnB1dF9lcnJvciB7XG4gICAgICAgIGFuaW1hdGlvbjogMC4ycyB2aXN1YWxiZWxsO1xuICAgIH1cblxuICAgIC5teF9CYXNpY01lc3NhZ2VDb21wb3Nlcl9pbnB1dCB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgLyogRm9yY2UgY2FyZXQgbm9kZXMgdG8gYmUgc2VsZWN0ZWQgaW4gZnVsbCBzbyB0aGF0IHRoZXkgY2FuIGJlICovXG4gICAgICAgIC8qIG5hdmlnYXRlZCB0aHJvdWdoIGluIGEgc2luZ2xlIGtleXByZXNzICovXG4gICAgICAgIC5jYXJldE5vZGUge1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IGFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfQmFzaWNNZXNzYWdlQ29tcG9zZXJfaW5wdXRfc2hvdWxkU2hvd1BpbGxBdmF0YXIge1xuICAgICAgICAgICAgc3Bhbi5teF9Vc2VyUGlsbCxcbiAgICAgICAgICAgIHNwYW4ubXhfUm9vbVBpbGwsXG4gICAgICAgICAgICBzcGFuLm14X1NwYWNlUGlsbCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogYWxsO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHVuc2V0OyAvKiBXZSBkb24ndCB3YW50IGluZGljYXRlIGNsaWNrYWJpbGl0eSAqL1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAvKiBXZSBkb24ndCB3YW50IGluZGljYXRlIGNsaWNrYWJpbGl0eSB8IFRvIG92ZXJyaWRlIHRoZSBvdmVycmlkaW5nIG9mIC5tYXJrZG93bi1ib2R5ICovXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwaWxsLWJnLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLyogYXZhdGFyIHBzdWVkbyBlbGVtZW50ICovXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB2YXIoLS1hdmF0YXItbGV0dGVyKTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICRmb250LTE2cHg7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogJGZvbnQtMTZweDsgLyogZW5zdXJlIHRoZSBhdmF0YXIgaXMgbm90IGNvbXByZXNzZWQgKi9cbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMC4yNHJlbTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYXZhdGFyLWJhY2tncm91bmQpLCAkYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWF2YXRhci1jb2xvciwgJGF2YXRhci1pbml0aWFsLWNvbG9yKTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEwLTRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0Jhc2ljTWVzc2FnZUNvbXBvc2VyX2lucHV0X2Rpc2FibGVkIHtcbiAgICAgICAgICAgIC8qIElnbm9yZSBhbGwgdXNlciBpbnB1dCB0byBhdm9pZCBhY2NpZGVudGFsbHkgdHJpZ2dlcmluZyB0aGUgY29tcG9zZXIgKi9cbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0Jhc2ljTWVzc2FnZUNvbXBvc2VyX0F1dG9Db21wbGV0ZVdyYXBwZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICB9XG59XG4iLCIubXhfSm9pblJ1bGVEaWFsb2cge1xuICAgIC5teF9Kb2luUnVsZURpYWxvZ0J1dHRvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjb2x1bW4tZ2FwOiA1cHg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRTJFSWNvbiB7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIG1hcmdpbjogMCA5cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG5cbi5teF9FMkVJY29uLm14X0UyRUljb25faW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FMkVJY29uVmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubXhfRTJFSWNvblZpZXdfd2FybmluZyB7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLWNyaXRpY2FsLXByaW1hcnkpO1xufVxuXG4ubXhfRTJFSWNvblZpZXdfdmVyaWZpZWQge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1zdWNjZXNzLXByaW1hcnkpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRWRpdE1lc3NhZ2VDb21wb3NlciB7XG4gICAgLS1FZGl0TWVzc2FnZUNvbXBvc2VyLXBhZGRpbmctaW5saW5lOiAzcHg7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWF4LXdpZHRoOiAxMDAlOyAvKiBkaXNhYmxlIG92ZXJmbG93ICovXG4gICAgd2lkdGg6IGF1dG87XG4gICAgZ2FwOiA1cHg7XG4gICAgcGFkZGluZzogM3B4IHZhcigtLUVkaXRNZXNzYWdlQ29tcG9zZXItcGFkZGluZy1pbmxpbmUpO1xuXG4gICAgLm14X0Jhc2ljTWVzc2FnZUNvbXBvc2VyX2lucHV0IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICAgICAgICBwYWRkaW5nOiAzcHggNnB4O1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0VkaXRNZXNzYWdlQ29tcG9zZXJfYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXAtcmV2ZXJzZTsgLyogZGlzcGxheSBcIlNhdmVcIiBvdmVyIFwiQ2FuY2VsXCIgKi9cbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgZ2FwOiA1cHg7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEwMHB4OyAvKiBtYWdpYyBudW1iZXIgdG8gYWxpZ24gdGhlIGVkZ2Ugb2YgdGhlIGJ1dHRvbiB3aXRoIHRoZSBpbnB1dCBhcmVhICovXG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRW1vamlCdXR0b24ge1xuICAgIEBtaXhpbiBjb21wb3NlckJ1dHRvbiA1MCUsIHZhcigtLWNwZC1jb2xvci1pY29uLXNlY29uZGFyeSksIHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtc2Vjb25kYXJ5KTtcbn1cblxuLm14X0Vtb2ppQnV0dG9uX2hpZ2hsaWdodCB7XG4gICAgQG1peGluIGNvbXBvc2VyQnV0dG9uSGlnaExpZ2h0O1xufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX3d5c2l3eWcge1xuICAgIC5teF9FbW9qaUJ1dHRvbiB7XG4gICAgICAgIEBtaXhpbiBjb21wb3NlckJ1dHRvbiA1cHgsICR0ZXJ0aWFyeS1jb250ZW50LCAkcGFuZWxzO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tVmlld19ib2R5W2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAubXhfUm9vbVZpZXdfdGltZWxpbmUsXG4gICAgLm14X1Jvb21WaWV3X3N0YXR1c0FyZWEsXG4gICAgLm14X01lc3NhZ2VDb21wb3NlciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxufVxuXG4ubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl0ge1xuICAgIC0tYXZhdGFyU2l6ZTogMzJweDtcbiAgICAtLWd1dHRlclNpemU6IDExcHg7XG4gICAgLS1jb3JuZXJSYWRpdXM6IDEycHg7XG4gICAgLS1tYXhXaWR0aDogNzAlO1xuXG4gICAgLyogR2VuZXJpYyBldmVudCBsaXN0IHN1bW1hcmllcyBzdGlsbCB1c2UgdGhlIGxlZ2FjeSBidWJibGUgdmFyaWFibGVzLiAqL1xuICAgIC0tRXZlbnRUaWxlX2J1YmJsZS1tYXJnaW4taW5saW5lLXN0YXJ0OiA0OXB4O1xuICAgIC0tRXZlbnRUaWxlX2J1YmJsZS1tYXJnaW4taW5saW5lLWVuZDogNjBweDtcblxuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLUV2ZW50VGlsZV9idWJibGUtbWFyZ2luLWlubGluZS1zdGFydCk7XG4gICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLUV2ZW50VGlsZV9idWJibGUtbWFyZ2luLWlubGluZS1lbmQpO1xuXG4gICAgLyogS2VlcCB0aGUgZm9sbG93aW5nIGV2ZW50IGNsZWFyIG9mIHRoZSBleHBhbmQvY29sbGFwc2UgY29udHJvbCB3aGVuIHRoZVxuICAgICAgIHN1bW1hcnkgaXMgY29sbGFwc2VkLiAqL1xuICAgICZbZGF0YS1leHBhbmRlZD1cImZhbHNlXCJdICsgLm14X0V2ZW50VGlsZSB7XG4gICAgICAgIG1hcmdpbi1ibG9jay1zdGFydDogMjBweDtcbiAgICB9XG5cbiAgICAvKiBLZWVwIGV4cGFuZGVkIGluZm9ybWF0aW9uYWwgcm93cyBhbGlnbmVkIHdpdGggdGhlIGxlZ2FjeSBzdW1tYXJ5IGxheW91dC4gKi9cbiAgICAmW2RhdGEtZXhwYW5kZWQ9XCJ0cnVlXCJdIC5teF9FdmVudFRpbGU6aGFzKD4gLm14X0V2ZW50VGlsZV9saW5lIDppcygubXhfVGV4dHVhbEV2ZW50LCAubXhfVmlld1NvdXJjZUV2ZW50KSkge1xuICAgICAgICBwYWRkaW5nLWJsb2NrOiAycHg7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwO1xuXG4gICAgICAgIC8qIEV2ZW50VGlsZVZpZXcgb3ducyB0aGUgbGluZS1oZWlnaHQgZm9yIGluZm9ybWF0aW9uYWwgcm93cy4gKi9cbiAgICAgICAgPiAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgLyogRXZlbnRUaWxlVmlldyBrZWVwcyB0aGUgc3RhdGUtaW5mbyBsaW5lIGF0IG1pbi13aWR0aDogMTAwJSBmb3JcbiAgICAgICAgICAgICAgIG9yZGluYXJ5IGJ1YmJsZSByb3dzLiBFeHBhbmRlZCBzdW1tYXJpZXMgbXVzdCBiZSBhbGxvd2VkIHRvXG4gICAgICAgICAgICAgICBzaHJpbmsgYXJvdW5kIHRoZSBzZW5kZXIgYXZhdGFyLCBhcyBpbiB0aGUgbGVnYWN5IHRpbGUuICovXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwIHtcbiAgICAgICAgICAgIC8qIG1hdGNoIGFsaWdubWVudCB0byBSUnMgb2YgY2hhdCBidWJibGVzICovXG4gICAgICAgICAgICBpbnNldC1pbmxpbmUtZW5kOiBjYWxjKC0xICogdmFyKC0tUmVhZFJlY2VpcHRHcm91cF9FdmVudEJ1YmJsZVRpbGUtc3BhY2luZy1lbmQpICsgNjBweCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgaW5zZXQtaW5saW5lLWVuZDogMDsgLyogbWF0Y2ggYWxpZ25tZW50IG9mIHRoZSBob3ZlciBiYWNrZ3JvdW5kIHRvIHRoYXQgb2YgY2hhdCBidWJibGVzICovXG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIFByZXNlcnZlIHRoZSBsZWdhY3kgZXhwYW5kZWQtc3VtbWFyeSBtZXRyaWNzIGluIFJvb21WaWV3LiBUaHJlYWRWaWV3IG93bnNcbiAgIGl0cyBpbmZvcm1hdGlvbmFsIHJvdyBtZXRyaWNzIHRocm91Z2ggRXZlbnRUaWxlVmlldy4gKi9cbi5teF9Sb29tVmlld190aW1lbGluZSAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl0ge1xuICAgICZbZGF0YS1leHBhbmRlZD1cInRydWVcIl0gLm14X0V2ZW50VGlsZTpoYXMoPiAubXhfRXZlbnRUaWxlX2xpbmUgOmlzKC5teF9UZXh0dWFsRXZlbnQsIC5teF9WaWV3U291cmNlRXZlbnQpKSB7XG4gICAgICAgID4gLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG4gICAgICAgIH1cblxuICAgICAgICA+IC5teF9FdmVudFRpbGVfbGluZSA6aXMoLm14X1RleHR1YWxFdmVudCwgLm14X1ZpZXdTb3VyY2VFdmVudCkge1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jazogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwLCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4kbGVmdC1ndXR0ZXI6IDY0cHg7XG5cbi5teF9FdmVudFRpbGUge1xuICAgIC8qIFBhc3MgdGhlIGFwcGxpY2F0aW9uL3RoZW1lLXNwZWNpZmljIGhpZ2hsaWdodCBjb2xvdXIgdG8gdGhlIHNoYXJlZFxuICAgICAgIEV2ZW50VGlsZVZpZXcgaW50ZXJhY3Rpb24gc3R5bGVzLiAqL1xuICAgIC0tZXZlbnQtdGlsZS1zdGF0ZS1oaWdobGlnaHQtYmFja2dyb3VuZDogJGV2ZW50LWhpZ2hsaWdodC1iZy1jb2xvcjtcbiAgICAtLWV2ZW50LXRpbGUtc3RhdGUtaG92ZXItYmFja2dyb3VuZDogJGV2ZW50LXNlbGVjdGVkLWNvbG9yO1xuICAgIC0tZXZlbnQtdGlsZS1zdGF0ZS1zZWxlY3RlZC1iYWNrZ3JvdW5kOiAkZXZlbnQtc2VsZWN0ZWQtY29sb3I7XG4gICAgLS1ldmVudC10aWxlLWJ1YmJsZS1ob3Zlci1iYWNrZ3JvdW5kOiAkZXZlbnRidWJibGUtYmctaG92ZXI7XG4gICAgLS1ldmVudC10aWxlLWJ1YmJsZS1vdGhlci1iYWNrZ3JvdW5kOiAkZXZlbnRidWJibGUtb3RoZXJzLWJnO1xuICAgIC0tZXZlbnQtdGlsZS1idWJibGUtc2VsZi1iYWNrZ3JvdW5kOiAkZXZlbnRidWJibGUtc2VsZi1iZztcbiAgICAtLWV2ZW50LXRpbGUtcHJldmlldy1ob3Zlci1iYWNrZ3JvdW5kOiAkcGFuZWxzO1xuICAgIC0tZXZlbnQtdGlsZS1wcmV2aWV3LXNlcGFyYXRvci1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICAtLUV2ZW50VGlsZV9ncm91cF9saW5lLXNwYWNpbmctYmxvY2stc3RhcnQ6IDFweDtcbiAgICAtLUV2ZW50VGlsZV9ncm91cF9saW5lLXNwYWNpbmctYmxvY2stZW5kOiAzcHg7XG4gICAgLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWlubGluZS1zdGFydDogJGxlZnQtZ3V0dGVyO1xuICAgIC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtbGluZS1oZWlnaHQ6ICRmb250LTIycHg7XG4gICAgLS1FdmVudFRpbGVfVGhyZWFkU3VtbWFyeS1saW5lLWhlaWdodDogY2FsYygyICogJGZvbnQtMTJweCk7XG5cbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgY2xlYXI6IGJvdGg7IC8qIFRPRE86IGNoZWNrIGlmIHRoaXMgaXMgbmVjZXNzYXJ5ICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLyogUmV0YWluZWQgZm9yIGxlZ2FjeSBlcnJvci9mYWxsYmFjayBtYXJrdXAgdGhhdCBkb2VzIG5vdCB1c2UgRXZlbnRUaWxlVmlldy4gKi9cbiAgICAmLm14X0V2ZW50VGlsZV9pbmZvIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1jcGQtZm9udC1zaXplLWJvZHktc20pO1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9FdmVudFRpbGVfY29udGVudCB7XG4gICAgICAgICYubXhfRWRpdE1lc3NhZ2VDb21wb3NlcixcbiAgICAgICAgJi5teF9FZGl0V3lzaXd5Z0NvbXBvc2VyIHtcbiAgICAgICAgICAgIC8qIE1ha2Ugc3VyZSB0aGUgZm9ybWF0dGluZyBiYXIgaXMgdmlzaWJsZSAqL1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRWRpdE1lc3NhZ2VDb21wb3NlcldyYXBwZXIge1xuICAgICAgICAvKiBUaGlzIGtlZXBzIHRoZSBhdXRvY29tcGxldGUgLyBmb3JtYXQgYmFyIHZpc2libGUgYWJvdmUgdGhlIGVkaXQgY29tcG9zZXIuICovXG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIC5teF9FdmVudFRpbGVfc2VhcmNoSGlnaGxpZ2h0IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcbiAgICAgICAgY29sb3I6ICRhY2NlbnQtZmctY29sb3I7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IDJweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50LWZnLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZUJ1YmJsZSB7XG4gICAgICAgIG1hcmdpbi1ibG9jazogdmFyKC0tRXZlbnRUaWxlQnViYmxlX21hcmdpbi1ibG9jayk7XG4gICAgICAgIG1pbi13aWR0aDogMTAwcHg7XG4gICAgfVxuXG4gICAgLm14X0ltYWdlQm9keSB7XG4gICAgICAgIC5teF9JbWFnZUJvZHlfY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyAvKiBvbiBldmVyeSBsYXlvdXQgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9SZWFjdGlvbnNSb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWZsb3c6IHdyYXA7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICB9XG5cbiAgICAubXhfUmVwbHlDaGFpbi0tZXhwYW5kZWQge1xuICAgICAgICAubXhfRXZlbnRUaWxlX2NvbnRlbnQgLm14X0V2ZW50VGlsZV9ib2R5IHtcbiAgICAgICAgICAgIC8qICFpbXBvcnRhbnQgbmVlZGVkIHRvIG92ZXJyaWRlIHRoZSByZXBseS10aWxlIGNvbnRlbnQgY2xhbXAuICovXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9jb2xsYXBzZWRDb2RlQmxvY2sge1xuICAgICAgICAgICAgLyogIWltcG9ydGFudCBuZWVkZWQgZHVlIHRvIC5teF9SZXBseVRpbGUgLm14X0V2ZW50VGlsZV9jb250ZW50IC5teF9FdmVudFRpbGVfcHJlX2NvbnRhaW5lciA+IHByZSAqL1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogVGhlYWRzIGRvIG5vdCBzZXQgYSBiYWNrZ3JvdW5kIG9uIG1lbnRpb25lZCBldmVudHMgYXMgdGhleSB1c2UgYW4gaW5kaWNhdG9yIGRvdCAqL1xuLm14X1RocmVhZFBhbmVsIC5teF9FdmVudFRpbGUge1xuICAgIC0tZXZlbnQtdGlsZS1wcmV2aWV3LWhpZ2hsaWdodC1iYWNrZ3JvdW5kOiBub25lO1xufVxuXG4ubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnkge1xuICAgICZbZGF0YS1sYXlvdXQ9XCJpcmNcIl0sXG4gICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIC5teF9SZWRhY3RlZEJvZHkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7IC8qIHJlbW92ZSBzcGFjaW5nIGJldHdlZW4gbGluZXMgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZbZGF0YS1sYXlvdXQ9XCJpcmNcIl0ge1xuICAgICAgICAvKiBBcHBseSBvbmx5IGNvbGxhcHNlZCBldmVudHMgYmxvY2sgKi9cbiAgICAgICAgPiAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgLyogYWRkIC0tcmlnaHQtcGFkZGluZyB2YWx1ZSBvZiBNZXNzYWdlVGltZXN0YW1wIGFuZCBhdmF0YXIgb25seSAqL1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlY2xhcmF0aW9uLWNvbG9uLXNwYWNlLWFmdGVyICovXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoXG4gICAgICAgICAgICAgICAgdmFyKC0tbmFtZS13aWR0aCkgKyB2YXIoLS1pY29uLXdpZHRoKSArIHZhcigtLU1lc3NhZ2VUaW1lc3RhbXAtd2lkdGgpICsgMiAqIHZhcigtLXJpZ2h0LXBhZGRpbmcpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgLyogVGhlIGNvbGxhcHNlZCBzdW1tYXJ5IGhhcyBhIGxlZ2FjeSBsaW5lIG91dHNpZGUgRXZlbnRUaWxlVmlldy4gKi9cbiAgICAgICAgPiAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6ICRsZWZ0LWd1dHRlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZV9jb250ZW50IHtcbiAgICAvKlxuICAgIGFsbCB0aGUgb3ZlcmZsb3cteTogaGlkZGVuOyBhcmUgdG8gdHJhcCBaYWxnb3MgLVxuICAgIGJ1dCB0aGV5IGludHJvZHVjZSBhbiBpbXBsaWNpdCBvdmVyZmxvdy14OiBhdXRvLlxuICAgIHNvIG1ha2UgdGhhdCBleHBsaWNpdGx5IGhpZGRlbiB0b28gdG8gYXZvaWQgcmFuZG9tXG4gICAgaG9yaXpvbnRhbCBzY3JvbGxiYXJzIG9jY2FzaW9uYWxseSBhcHBlYXJpbmcsIGxpa2UgaW5cbiAgICBodHRwczovL2dpdGh1Yi5jb20vdmVjdG9yLWltL3ZlY3Rvci13ZWIvaXNzdWVzLzExNTRcbiAgICAqL1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgLm1hcmtkb3duLWJvZHkge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpICFpbXBvcnRhbnQ7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiB2YXIoLS1jcGQtZm9udC1sZXR0ZXItc3BhY2luZy1ib2R5LW1kKTtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xuICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgICAgICBjb2xvcjogaW5oZXJpdDsgLyogaW5oZXJpdCB0aGUgY29sb3VyIGZyb20gdGhlIGRhcmsgb3IgbGlnaHQgdGhlbWUgYnkgZGVmYXVsdCAoYnV0IG5vdCBmb3IgY29kZSBibG9ja3MpICovXG4gICAgICAgIGZsZXg6IDE7XG5cbiAgICAgICAgcHJlLFxuICAgICAgICBjb2RlIHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkbW9ub3NwYWNlLWZvbnQtZmFtaWx5ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3lzdGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgY29kZTpub3QocHJlICopIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbmxpbmVjb2RlLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5saW5lY29kZS1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICAvKiBUaGUgaG9yaXpvbnRhbCBwYWRkaW5nIGlzIGFkZGVkIGJ5IGdpdGh1Yi1tYXJrZG93bi1jc3MgLm1hcmtkb3duLWJvZHkgKi9cbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0wLTV4KSAwO1xuICAgICAgICAgICAgLyogQXZvaWQgaW5saW5lIGNvZGUgYmxvY2tzIHRvIGJlIHN0aWNrZWQgd2hlbiBvbiBtdWx0aXBsZSBsaW5lcyAqL1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTIycHg7XG4gICAgICAgICAgICAvKiBBdm9pZCB0aGUgYm9yZGVyIHRvIGJlIGdsdWVkIHRvIHRoZSBvdGhlciB3b3JkcyAqL1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb2RlIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgLyogZG9uJ3QgY29sbGFwc2Ugc3BhY2VzIGluIGlubGluZSBjb2RlIGJsb2NrcyAqL1xuICAgICAgICB9XG5cbiAgICAgICAgcHJlIHtcbiAgICAgICAgICAgIC8qIGhhdmUgdG8gdXNlIG92ZXJsYXkgcmF0aGVyIHRoYW4gYXV0byBvdGhlcndpc2UgTGludXggYW5kIFdpbmRvd3MgKi9cbiAgICAgICAgICAgIC8qIENocm9tZSBnZXRzIHZlcnkgY29uZnVzZWQgYWJvdXQgdmVydGljYWwgc3BhY2luZzogKi9cbiAgICAgICAgICAgIC8qIGh0dHBzOi8vZ2l0aHViLmNvbS92ZWN0b3ItaW0vdmVjdG9yLXdlYi9pc3N1ZXMvNzU0ICovXG4gICAgICAgICAgICBvdmVyZmxvdy14OiBvdmVybGF5O1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcblxuICAgICAgICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItY29ybmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcblxuICAgICAgICAgICAgY29kZSB7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IHByZTsgLyogd2Ugd2FudCBjb2RlIGJsb2NrcyB0byBiZSBzY3JvbGxhYmxlIGFuZCBub3Qgd3JhcCAqL1xuXG4gICAgICAgICAgICAgICAgPiAqIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGgxLFxuICAgICAgICBoMixcbiAgICAgICAgaDMsXG4gICAgICAgIGg0LFxuICAgICAgICBoNSxcbiAgICAgICAgaDYge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB9XG5cbiAgICAgICAgLyogTWFrZSBoMSBhbmQgaDIgdGhlIHNhbWUgc2l6ZSBhcyBoMy4gKi9cbiAgICAgICAgaDEsXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lICFpbXBvcnRhbnQ7IC8qIG92ZXJyaWRlIEdGTSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogJGFjY2VudC1hbHQ7XG4gICAgICAgIH1cblxuICAgICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAycHggc29saWQgJGJsb2NrcXVvdGUtYmFyLWNvbG9yO1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qXG4gICAgICAgIC8vIGFjdHVhbGx5LCByZW1vdmluZyB0aGUgSXRhbGljIFRURiBwcm92aWRlc1xuICAgICAgICAvLyBiZXR0ZXIgcmVzdWx0cyBzZWVtaW5nbHlcblxuICAgICAgICAvLyBjb21wZW5zYXRlIGZvciBOdW5pdG8gaXRhbGljcyBiZWluZyB0ZXJyaWJsZVxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2ZvbnRzL2lzc3Vlcy8xNzI2XG4gICAgICAgIGVtIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2tld1goLTE0ZGVnKTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuICAgICAgICAqL1xuXG4gICAgICAgIC8qIFN1cHBvcnQgYXJiaXRyYXJpbHkgbGFyZ2UgbWFya2VyIG51bWJlcnMgKi9cbiAgICAgICAgb2wge1xuICAgICAgICAgICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDAuNWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogT3ZlcnJpZGUgbmVzdGVkIGxpc3RzIGJlaW5nIGxvd2VyLXJvbWFuICovXG4gICAgICAgIG9sIG9sLFxuICAgICAgICB1bCBvbCB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IHJldmVydDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIE1ha2UgbGlzdCB0eXBlIGRpc2MgdG8gbWF0Y2ggcmljaCB0ZXh0IGVkaXRvciAqL1xuICAgICAgICB1bCB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBvdmVycmlkZSBzdHlsZXMgZnJvbSB0aGUgYmFzZSBtYXJrZG93biBDU1MgdGhhdCBwdXQgbWFya2Rvd24gY29udGVudCBvbiBpdHMgb3duIGxpbmUsXG4gICAgICAgICAgIGFzIHRoaXMgaXNuJ3Qgd2hhdCB3ZSB3YW50IGZvciByaWNodGV4dCBlbW90ZSBjb250ZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBTcG9pbGVyIHN0dWZmICovXG4ubXhfRXZlbnRUaWxlX3Nwb2lsZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIC8qIGNsZWFyIGJ1dHRvbiBzdHlsZXMgKi9cbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuXG4gICAgLm14X0V2ZW50VGlsZV9zcG9pbGVyX3JlYXNvbiB7XG4gICAgICAgIGNvbG9yOiAkZXZlbnQtdGltZXN0YW1wLWNvbG9yO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTExcHg7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9zcG9pbGVyX2NvbnRlbnQge1xuICAgICAgICBmaWx0ZXI6IGJsdXIoNXB4KSBzYXR1cmF0ZSgwLjEpIHNlcGlhKDEpO1xuICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAmLnZpc2libGUgPiAubXhfRXZlbnRUaWxlX3Nwb2lsZXJfY29udGVudCB7XG4gICAgICAgIGZpbHRlcjogbm9uZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IGF1dG87XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZV9iaWdFbW9qaSB7XG4gICAgZm9udC1zaXplOiA0OHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA1N3B4O1xuXG4gICAgLm14X0Vtb2ppIHtcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlX2JvZHkge1xuICAgIHByZSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICAgICAgIC5teF9FdmVudFRpbGU6aG92ZXIgJixcbiAgICAgICAgLm14X0V2ZW50VGlsZTpmb2N1cy12aXNpYmxlOmZvY3VzLXdpdGhpbiAmIHtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogc2VsZWN0b3Igd3JvbmdseSBhcHBsaWVzIHRvIHBpbGwgYXZhdGFycyBidXQgdGhvc2UgaGF2ZSBleHBsaWNpdCB3aWR0aC9oZWlnaHQgcGFzc2VkIGF0IGEgaGlnaGVyIHNwZWNpZmljaXR5ICovXG4gICAgJi5tYXJrZG93bi1ib2R5IGltZyB7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgIG9iamVjdC1wb3NpdGlvbjogbGVmdCB0b3A7XG5cbiAgICAgICAgLyogT3ZlcnJpZGUgdGhlIGRlZmF1bHQgY29sb3JzIG9mIHRoZSAnZ2l0aHViLW1hcmtkb3duLWNzcycgbGlicmFyeVxuICAgICAgICAoI2ZmZiBmb3IgbGlnaHQgdGhlbWUsICMwMDAgZm9yIGRhcmsgdGhlbWUpIHRvIG1hdGNoIHRoZSBpbmhlcml0ZWQgdGhlbWUgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5teF9FdmVudFRpbGVfcHJlX2NvbnRhaW5lciB7XG4gICAgICAgIC8qIEZvciBjb3JyZWN0IHBvc2l0aW9uaW5nIG9mIF9jb3B5QnV0dG9uIChTZWUgVGV4dHVhbEJvZHkpICovXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAvKiBFbW9qaSBhcmUgZW5sYXJnZWQgaW4gcHJvc2UsIGJ1dCBhIGNvZGUgYmxvY2sncyBsaW5lIG51bWJlcnMgYXJlIG9uZSBmaXhlZC1oZWlnaHQgYmxvY2tcbiAgICAgICAgICAgcGVyIGxpbmUgYW5kIGNhbm5vdCBmb2xsb3cgYSBsaW5lIHRoYXQgYW4gZW5sYXJnZWQgZW1vamkgaGFzIG1hZGUgdGFsbGVyLiAqL1xuICAgICAgICAubXhfRW1vamkge1xuICAgICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy13aXRoaW4sXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9idXR0b24ge1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2NvbGxhcHNlZENvZGVCbG9jayB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMHZoO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIEluc2VydGVkIGFkamFjZW50IHRvIDxwcmU+IGJsb2NrcywgKFNlZSBUZXh0dWFsQm9keSkgKi9cbiAgICAgICAgLm14X0V2ZW50VGlsZV9idXR0b24ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICAgICAgICAgICYubXhfRXZlbnRUaWxlX2J1dHRvbkJvdHRvbSB7XG4gICAgICAgICAgICAgICAgdG9wOiAzM3B4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJG1lc3NhZ2UtYWN0aW9uLWJhci1mZy1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZV9saW5lTnVtYmVycyB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAwIDAuNWVtIDAgLTEuNWVtO1xuICAgIGNvbG9yOiBncmF5O1xuXG4gICAgJiBzcGFuIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgICB9XG59XG5cbi5teF9FdmVudFRpbGVfYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfRXZlbnRUaWxlX3RpbGVFcnJvciB7XG4gICAgY29sb3I6IHJlZDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAvKiBSZW1vdmUgc29tZSBvZiB0aGUgZGVmYXVsdCB0aWxlIHBhZGRpbmcgc28gdGhhdCB0aGUgZXJyb3IgaXMgY2VudGVyZWQgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG5cbiAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCkgdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgICBtYXJnaW4tbGVmdDogMWVtO1xuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZTpob3ZlciAubXhfVGhyZWFkQWN0aW9uQmFyLFxuW2RhdGEtd2hhdGlucHV0PVwia2V5Ym9hcmRcIl0gLm14X0V2ZW50VGlsZTpmb2N1cy13aXRoaW4gLm14X1RocmVhZEFjdGlvbkJhcixcbi5teF9FdmVudFRpbGU6Zm9jdXMtdmlzaWJsZTpmb2N1cy13aXRoaW4gLm14X1RocmVhZEFjdGlvbkJhciB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLyogVGhyZWFkLWxpc3QgcmVwbHkgc3VtbWFyaWVzIHJldGFpbiB0aGUgbGVnYWN5IGFwcGxpY2F0aW9uIHN0eWxpbmcgd2hpbGVcbiAgIHJlbWFpbmluZyBpbmRlcGVuZGVudCBvZiB0aGUgRXZlbnRUaWxlVmlldyByb290IERPTSBjb250cmFjdC4gKi9cbi5teF9FdmVudFRpbGUgLm14X1RocmVhZFBhbmVsX3JlcGxpZXMge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuXG4gICAgPiBzdmcge1xuICAgICAgICBAbWl4aW4gVGhyZWFkU3VtbWFyeUljb247XG4gICAgfVxuXG4gICAgLm14X1RocmVhZFBhbmVsX3JlcGxpZXNfYW1vdW50IHtcbiAgICAgICAgQG1peGluIFRocmVhZFJlcGxpZXNBbW91bnQ7XG4gICAgfVxufVxuXG4ubXhfVGhyZWFkU3VtbWFyeV9pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgPiBzdmcge1xuICAgICAgICBAbWl4aW4gVGhyZWFkU3VtbWFyeUljb247XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgIH1cblxuICAgIGEmIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG59XG5cbi8qIEZvciBzdHlsZSBydWxlcyBvZiBUaHJlYWRWaWV3LCBzZWUgX1RocmVhZFBhbmVsLnBjc3MgKi9cbi5teF9UaHJlYWRWaWV3IHtcbiAgICAtLVRocmVhZFZpZXdfZ3JvdXBfc3BhY2luZy1zdGFydDogNTZweDsgLyogNTZweDogNjRweCAtIDhweCAocGFkZGluZykgKi9cbiAgICAtLVRocmVhZFZpZXdfZ3JvdXBfc3BhY2luZy1lbmQ6IDhweDsgLyogc2FtZSBhcyBwYWRkaW5nICovXG5cbiAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnkge1xuICAgICAgICAmW2RhdGEtbGF5b3V0PVwiaXJjXCJdLFxuICAgICAgICAmW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAgICAgPiAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1UaHJlYWRWaWV3X2dyb3VwX3NwYWNpbmctc3RhcnQpOyAvKiBhbGlnbiBzdW1tYXJ5IHRleHQgd2l0aCBtZXNzYWdlIHRleHQgKi9cbiAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLVRocmVhZFZpZXdfZ3JvdXBfc3BhY2luZy1lbmQpOyAvKiBhbGlnbiBzdW1tYXJ5IHRleHQgd2l0aCBtZXNzYWdlIHRleHQgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIFZpZXdTb3VyY2VFdmVudCBleHBsaWNpdGx5IHVzZXMgQ29tcG91bmQncyAxMXB4IGJvZHkteHMgdG9rZW4uIExlZ2FjeVxuICAgICAgIHRocmVhZCBpbmZvIHRpbGVzIGFwcGxpZWQgdGhlaXIgMTJweCBzaXplIGRpcmVjdGx5IHRvIGV2ZW50IGNvbnRlbnQ7XG4gICAgICAga2VlcCB0aGF0IG92ZXJyaWRlIG9uIHRoZSBib2R5IGNvbXBvbmVudCBhZnRlciBpdHMgc2xvdCBib3VuZGFyeS4gKi9cbiAgICAubXhfRXZlbnRUaWxlIC5teF9FdmVudFRpbGVfbGluZSAubXhfVmlld1NvdXJjZUV2ZW50IHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIH1cbn1cblxuLyogQm9keS1vbmx5IGNvbXBhY3QgbWFya2Rvd24gc3BhY2luZyByZW1haW5zIGFwcGxpY2F0aW9uLW93bmVkLiAqL1xuLm14X01hdHJpeENoYXRfdXNlQ29tcGFjdExheW91dCB7XG4gICAgLm14X0V2ZW50VGlsZSB7XG4gICAgICAgIC5teF9FdmVudFRpbGVfY29udGVudCAubWFya2Rvd24tYm9keSB7XG4gICAgICAgICAgICBwLFxuICAgICAgICAgICAgdWwsXG4gICAgICAgICAgICBvbCxcbiAgICAgICAgICAgIGRsLFxuICAgICAgICAgICAgYmxvY2txdW90ZSxcbiAgICAgICAgICAgIHByZSxcbiAgICAgICAgICAgIHRhYmxlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMXgpOyAvKiAxLzQgb2YgdGhlIG5vbi1jb21wYWN0IG1hcmdpbi1ib3R0b20gKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogTWVkaWEgcXVlcnkgZm9yIG1vYmlsZSBVSSAqL1xuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuICAgIC5teF9FdmVudFRpbGVfY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBSb2JpbiBUb3duc2VuZCA8cm9iaW5Acm9iaW4udG93bj5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0V2ZW50VGlsZUJ1YmJsZS5teF9IaXN0b3J5VGlsZSB7XG4gICAgbWFyZ2luOiB2YXIoLS1FdmVudFRpbGVCdWJibGVfbWFyZ2luLWJsb2NrKSBhdXRvO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgY29sb3I6ICRoZWFkZXItcGFuZWwtdGV4dC1wcmltYXJ5LWNvbG9yO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbjpyb290IHtcbiAgICAtLWlyYy1saW5lLWhlaWdodDogJGZvbnQtMThweDtcbn1cblxuLm14X0lSQ0xheW91dCB7XG4gICAgLS1uYW1lLXdpZHRoOiA4MHB4OyAvKiBjZi4gaXJjRGlzcGxheU5hbWVXaWR0aCBvbiBTZXR0aW5ncy50c3ggKi9cbiAgICAtLWljb24td2lkdGg6IDE0cHg7XG4gICAgLS1saW5lLWhlaWdodDogdmFyKC0taXJjLWxpbmUtaGVpZ2h0KTtcbiAgICAtLXJpZ2h0LXBhZGRpbmc6IDVweDtcbiAgICAvKiBNYXAgYXBwbGljYXRpb24gSVJDIGdlb21ldHJ5IG9udG8gdGhlIHNoYXJlZCBFdmVudFRpbGVWaWV3IEFQSS4gKi9cbiAgICAtLWV2ZW50LXRpbGUtaXJjLW5hbWUtd2lkdGg6IHZhcigtLW5hbWUtd2lkdGgpO1xuICAgIC0tZXZlbnQtdGlsZS1pcmMtdGltZXN0YW1wLXdpZHRoOiB2YXIoLS1NZXNzYWdlVGltZXN0YW1wLXdpZHRoKTtcblxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodCkgIWltcG9ydGFudDtcblxuICAgIGJsb2NrcXVvdGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLm14X05ld1Jvb21JbnRybyB7XG4gICAgICAgID4gaDIge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IGluaXRpYWw7IC8qIENhbmNlbCB2YXIoLS1pcmMtbGluZS1oZWlnaHQpICovXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUmVwbHlDaGFpbiB7XG4gICAgICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZSB7XG4gICAgICAgICAgICB3aWR0aDogdW5zZXQ7XG4gICAgICAgICAgICBvcmRlcjogdW5zZXQ7XG4gICAgICAgICAgICBmbGV4LXNocmluazogdW5zZXQ7IC8qIFVuc2V0IGZsZXgtc2hyaW5rIHRvIHByZXZlbnQgbG9uZyBkaXNwbGF5IG5hbWUgYmxvd291dCAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Byb2ZpbGVSZXNpemVyIHtcbiAgICAgICAgLS1yZXNpemVyLXdpZHRoOiAxNXB4O1xuICAgICAgICAtLXJlc2l6ZXItYTExeTogM3B4OyAvKiBNYWdpYyBudW1iZXIsIHRvIGJlIHJlcGxhY2VkIHdpdGggc29tZXRoaW5nIG1vcmUgcHJvcGVyIGZyb20gdGhlIHBlcnNwZWN0aXZlIG9mIGExMXkgKi9cblxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IHZhcigtLXJlc2l6ZXItd2lkdGgpO1xuICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG4gICAgICAgIHotaW5kZXg6IDEwMDtcblxuICAgICAgICAvKiBBZGQgd2lkdGggb2YgZXZlcnkgZWxlbWVudCByZW5kZXJlZCBiZWZvcmUgdGhlIHJlc2l6ZXIgKGluY2x1ZGluZyBwYWRkaW5nIGZvciB0aGUgYXZhdGFyIGFuZCB0aGUgZGlzcGxheVxuICAgICAgICAgICBuYW1lKSwgc3VidHJhY3RpbmcgdGhlIHJlc2l6ZXIgd2lkdGggaXRzZWxmIHRvIHByZXZlbnQgdGhlIHJlc2l6ZXIgZnJvbSBvdmVybGFwcGluZyB0aGUgdGV4dCBhbmQgbW92aW5nXG4gICAgICAgICAgIHRoZSByZXNpemVyIGEgYml0IHRvIHRoZSBsZWZ0IHRvIG1ha2UgaXQgZWFzaWVyIHRvIGF2b2lkIHNlbGVjdGluZyB0aGUgcmVzaXplciB3aGVuIGhpZ2hsaWdodGluZyB0ZXh0LlxuICAgICAgICAgICBQbGVhc2Ugbm90ZSB0aGF0IE1lc3NhZ2VUaW1lc3RhbXAgZG9lcyBub3QgaGF2ZSBpbmxpbmUgcGFkZGluZy4gKi9cbiAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiBjYWxjKFxuICAgICAgICAgICAgdmFyKC0tUm9vbVZpZXdfTWVzc2FnZUxpc3QtcGFkZGluZykgKyB2YXIoLS1NZXNzYWdlVGltZXN0YW1wLXdpZHRoKSArIHZhcigtLWljb24td2lkdGgpICtcbiAgICAgICAgICAgICAgICB2YXIoLS1yaWdodC1wYWRkaW5nKSArIHZhcigtLW5hbWUtd2lkdGgpICsgdmFyKC0tcmlnaHQtcGFkZGluZykgLSB2YXIoLS1yZXNpemVyLXdpZHRoKSAtXG4gICAgICAgICAgICAgICAgdmFyKC0tcmVzaXplci1hMTF5KVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ludml0ZWRJY29uVmlldyB7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXRlcnRpYXJ5KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSnVtcFRvQm90dG9tQnV0dG9uIHtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAvKiAxMiBiZWNhdXNlIGhlaWdodCBpcyA1MCBidXQgYnV0dG9uIGlzIG9ubHkgMzggPSAxMisoNTAtMzgpID0gMjQgKi9cbiAgICBib3R0b206IDEycHg7XG4gICAgcmlnaHQ6IDI0cHg7XG4gICAgd2lkdGg6IDM4cHg7XG4gICAgLyogZ2l2ZSBpdCBhIGZpeGVkIGhlaWdodCBzbyB0aGUgYmFkZ2UgZG9lc24ndCBtYWtlICovXG4gICAgLyogaXQgdGFsbGVyIGFuZCBwb3AgdXB3YXJkcyB3aGVuIHZpc2libGUgKi9cbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubXhfSnVtcFRvQm90dG9tQnV0dG9uX2JhZGdlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMTRweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgLyogdG8gYmUgYWJsZSB0byBnZXQgaXQgY2VudGVyZWQgKi9cbiAgICAvKiB3aXRoIHRleHQtYWxpZ24gaW4gcGFyZW50ICovXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDAgNHB4O1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1vbi1zb2xpZC1wcmltYXJ5KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1zZWNvbmRhcnkpO1xufVxuXG4ubXhfSnVtcFRvQm90dG9tQnV0dG9uX2hpZ2hsaWdodCAubXhfSnVtcFRvQm90dG9tQnV0dG9uX2JhZGdlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1jcml0aWNhbC1wcmltYXJ5KTtcbn1cblxuLm14X0p1bXBUb0JvdHRvbUJ1dHRvbl9zY3JvbGxEb3duIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogMS4zcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIHN2ZyB7XG4gICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHBhZGRpbmc6IDdweCA4cHggN3B4IDZweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXRlcnRpYXJ5KTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGl2ZUNvbnRlbnRTdW1tYXJ5IHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgLm14X0xpdmVDb250ZW50U3VtbWFyeV90ZXh0IHtcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9MaXZlQ29udGVudFN1bW1hcnlfdGV4dF9hY3RpdmUge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTGl2ZUNvbnRlbnRTdW1tYXJ5X3BhcnRpY2lwYW50cyBzdmcge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMnB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01lbWJlckxpc3RIZWFkZXJWaWV3IHtcbiAgICBib3JkZXItYm90dG9tOiB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTEpIHNvbGlkIHZhcigtLWNwZC1jb2xvci1ncmF5LTQwMCk7XG5cbiAgICAubXhfTWVtYmVyTGlzdEhlYWRlclZpZXdfY29udGFpbmVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIH1cblxuICAgIC5teF9NZW1iZXJMaXN0SGVhZGVyVmlld19pbnZpdGVCdXR0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA0MjhweDtcbiAgICB9XG5cbiAgICAubXhfTWVtYmVyTGlzdEhlYWRlclZpZXdfbGFiZWwge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtNngpIDAgdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tc2VtaWJvbGQpO1xuICAgIH1cblxuICAgIC5teF9NZW1iZXJMaXN0SGVhZGVyVmlld19zZWFyY2gge1xuICAgICAgICB3aWR0aDogMjQwcHg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NZW1iZXJMaXN0VmlldyB7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWluLWhlaWdodDogMDtcblxuICAgIC5teF9NZW1iZXJMaXN0Vmlld19jb250YWluZXIge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgLm14X01lbWJlckxpc3RWaWV3X3NlcGFyYXRvciB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItdG9wOiAycHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1wcmltYXJ5KTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NZW1iZXJUaWxlVmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiA1NnB4O1xuICAgIGJvcmRlci1ib3R0b206IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQgdmFyKC0tY3BkLWNvbG9yLWdyYXktMzAwKTtcblxuICAgIC5teF9NZW1iZXJUaWxlVmlld19sZWZ0LFxuICAgIC5teF9NZW1iZXJUaWxlVmlld19yaWdodCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICB9XG5cbiAgICAubXhfTWVtYmVyVGlsZVZpZXdfbGVmdCB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDIwOXB4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICB9XG5cbiAgICAubXhfTWVtYmVyVGlsZVZpZXdfbmFtZSB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtbWVkaXVtKTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuXG4gICAgICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZSB7XG4gICAgICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X01lbWJlclRpbGVWaWV3X3VzZXJMYWJlbCB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG5cbiAgICAubXhfTWVtYmVyVGlsZVZpZXdfYXZhdGFyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIHdpZHRoOiAzMnB4O1xuICAgIH1cblxuICAgIC5teF9NZW1iZXJUaWxlVmlld19wcmVzZW5jZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IC0ycHg7XG4gICAgICAgIGJvdHRvbTogMnB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOC0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01lc3NhZ2VDb21wb3Nlcl93cmFwcGVyIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHByaW1hcnktaGFpcmxpbmUtY29sb3I7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogNDJweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX3JlcGxhY2VkX3dyYXBwZXIge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9yZXBsYWNlZF92YWxpZ24ge1xuICAgIGhlaWdodDogNjBweDtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfcm9vbVJlcGxhY2VkX2ljb24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgd2lkdGg6IDMxcHg7XG4gICAgaGVpZ2h0OiAzMXB4O1xufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX3Jvb21SZXBsYWNlZF9oZWFkZXIge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX3JvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyIHtcbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX2F2YXRhciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMjZweDtcblxuICAgICAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9lMmVJY29uV3JhcHBlciB7XG4gICAgaGVpZ2h0OiAxMnB4OyAvKiBNYXRjaCB0aGUgaGVpZ2h0IG9mIHRoZSBFMkUgaWNvbiBmb3IgYWxpZ25tZW50ICovXG4gICAgd2lkdGg6IDEycHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDIwcHg7XG4gICAgdG9wOiAyMnB4O1xuICAgIG1hcmdpbi1yaWdodDogMDsgLyogQ291bnRlcmFjdCB0aGUgRTJFSWNvbiBjbGFzcyAqL1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7IC8qIENvdW50ZXJhY3QgdGhlIEUyRUljb24gY2xhc3MgKi9cblxuICAgIC5teF9NZXNzYWdlQ29tcG9zZXJfZTJlSWNvbiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICB9XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfbm9wZXJtX2Vycm9yIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGNvbG9yOiAkaW5mby1wbGludGgtZmctY29sb3I7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX2lucHV0IHtcbiAgICBmbGV4OiAxO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1pbi1oZWlnaHQ6IDYwcHg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG5cbiAgICBwcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcnRlLWNvZGUtYmctY29sb3I7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICB9XG5cbiAgICB0ZXh0YXJlYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiA2cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICAgICAgYm9yZGVyOiAwcHg7XG4gICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMjBweDtcbiAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgICAgICAgLyogaGFjayBmb3IgRkYgYXMgdmVydGljYWwgYWxpZ25tZW50IG9mIGN1c3RvbSBwbGFjZWhvbGRlciB0ZXh0IGlzIGJyb2tlbiAqL1xuICAgICAgICAmOjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9idXR0b25faGlnaGxpZ2h0IHtcbiAgICBAbWl4aW4gY29tcG9zZXJCdXR0b25IaWdoTGlnaHQ7XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfYnV0dG9uIHtcbiAgICBAbWl4aW4gY29tcG9zZXJCdXR0b24gNTAlLCB2YXIoLS1jcGQtY29sb3ItaWNvbi1wcmltYXJ5KSwgdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1wcmltYXJ5KTtcbiAgICBwYWRkaW5nOiAzcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHdpZHRoOiAyMHB4O1xuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgICYubXhfTWVzc2FnZUNvbXBvc2VyX2Nsb3NlQnV0dG9uTWVudSB7XG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtcHJpbWFyeSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICB9XG59XG4ubXhfTWVzc2FnZUNvbXBvc2VyX3d5c2l3eWcge1xuICAgIC5teF9NZXNzYWdlQ29tcG9zZXJfd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIH1cblxuICAgIC5teF9NZXNzYWdlQ29tcG9zZXJfcm93IHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIH1cblxuICAgIC5teF9NZXNzYWdlQ29tcG9zZXJfYWN0aW9ucyB7XG4gICAgICAgIC8qIEhlaWdodCBvZiB0aGUgY29tcG9zZXIgZWRpdG9yICovXG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICB9XG5cbiAgICAubXhfTWVkaWFCb2R5IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDRweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX2J1dHRvbiB7XG4gICAgICAgIEBtaXhpbiBjb21wb3NlckJ1dHRvbiA1cHgsICR0ZXJ0aWFyeS1jb250ZW50LCAkcGFuZWxzO1xuXG4gICAgICAgICYubXhfTWVzc2FnZUNvbXBvc2VyX2Nsb3NlQnV0dG9uTWVudSB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGFjY2VudC0zMDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX2J1dHRvbk1lbnUge1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBwYWRkaW5nOiAxcHg7XG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgIH1cbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9zZW5kTWVzc2FnZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tYWNjZW50LXRlcnRpYXJ5KTtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgd2lkdGg6IDE2cHg7XG5cbiAgICBzdmcge1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuXG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1vbi1zb2xpZC1wcmltYXJ5KTtcbiAgICB9XG59XG5cbi5teF9NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXQge1xuICAgIC5teF9NZXNzYWdlQ29tcG9zZXJfaW5wdXQge1xuICAgICAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIH1cblxuICAgIC5teF9NZXNzYWdlQ29tcG9zZXJfbm9wZXJtX2Vycm9yIHtcbiAgICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgIH1cbn1cblxuLyoqXG4gKiBVbnN0YWJsZSBjb21wYWN0IG1vZGVcbiAqL1xuXG4ubXhfTWVzc2FnZUNvbXBvc2VyLm14X01lc3NhZ2VDb21wb3Nlci0tY29tcGFjdCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuXG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl93cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZzogMCAwIDAgMjVweDtcbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX2UyZUljb25XcmFwcGVyIHtcbiAgICAgICAgbGVmdDogMDtcbiAgICB9XG5cbiAgICAmOm5vdCgubXhfTWVzc2FnZUNvbXBvc2VyX2UyZVN0YXR1cykge1xuICAgICAgICAubXhfTWVzc2FnZUNvbXBvc2VyX3dyYXBwZXIge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9NZXNzYWdlQ29tcG9zZXJfYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl9lMmVJY29uIHtcbiAgICAgICAgbGVmdDogMDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWVzc2FnZUNvbXBvc2VyRm9ybWF0QmFyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHdpZHRoOiBjYWxjKDMycHggKiA2KTtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTEpIHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItZGlzYWJsZWQpO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC8qIGVxdWFsIHRvIHotaW5kZXggb2YgbXhfUmVwbHlQcmV2aWV3IGFuZCBteF9Sb29tVmlld19zdGF0dXNBcmVhICgxMDAwKSAqL1xuICAgIC8qIGJ1dCBhcyBpdCBhcHBlYXJzIGFmdGVyIHRoZW0gaW4gdGhlIERPTSwgd2lsbCBhcHBlYXIgb24gdG9wLiAqL1xuICAgIHotaW5kZXg6IDEwMDA7XG5cbiAgICAmLm14X01lc3NhZ2VDb21wb3NlckZvcm1hdEJhcl9zaG93biB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgID4gKiB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IDJweDtcbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyRm9ybWF0QmFyX2J1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAyOHB4O1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1zZWNvbmRhcnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXNlY29uZGFyeSk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1wcmltYXJ5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X01lc3NhZ2VDb21wb3NlckZvcm1hdEJhcl9idXR0b25Ub29sdGlwIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTNweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBtaW4td2lkdGg6IDU0cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X05ld1Jvb21JbnRybyB7XG4gICAgbWFyZ2luOiA0MHB4IDAgNDhweCA2NHB4O1xuXG4gICAgLm14X01pbmlBdmF0YXJVcGxvYWRlcl9oYXNBdmF0YXI6bm90KC5teF9NaW5pQXZhdGFyVXBsb2FkZXJfYnVzeSk6bm90KDpob3Zlcikge1xuICAgICAgICAubXhfTWluaUF2YXRhclVwbG9hZGVyX2luZGljYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X05ld1Jvb21JbnRyb19idXR0b25zIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjhweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiB3cmFwO1xuICAgICAgICBnYXA6IDE0cHggMTJweDtcblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgID4gaDIge1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS02eCkgMCB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1oZWFkaW5nLW1kLXNlbWlib2xkKTtcbiAgICB9XG5cbiAgICA+IHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X092ZXJmbG93VGlsZVZpZXcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5teF9PdmVyZmxvd1RpbGVWaWV3X3RleHQge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLm14X092ZXJmbG93VGlsZVZpZXc6aG92ZXIge1xuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiB0byBrZWVwIHRoZSBjaGV2cm9uIGFsaWduZWQgKi9cblxuICAgIC5teF9PdmVyZmxvd1RpbGVWaWV3X2NoZXZyb24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxufVxuXG4ubXhfT3ZlcmZsb3dUaWxlVmlld19jaGV2cm9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiBjYWxjKDUwJSAtIDEycHgpOyAvKiBjZW50ZXIgKi9cbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgY29sb3I6ICRoZWFkZXItcGFuZWwtdGV4dC1wcmltYXJ5LWNvbG9yO1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5teF9PdmVyZmxvd1RpbGVWaWV3X2ljb24ge1xuICAgIHBhZGRpbmctbGVmdDogM3B4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEycHg7XG4gICAgcGFkZGluZy10b3A6IDRweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE3IFRyYXZpcyBSYWxzdG9uXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9QaW5uZWRFdmVudFRpbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICAgLm14X1Bpbm5lZEV2ZW50VGlsZV93cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAvKiBSZW1vdmUgYXZhdGFyIHdpZHRoIGFuZCBzcGFjZSBiZXR3ZWVuIHRoZSBhdmF0YXIgYW5kIHRoZSB3cmFwcGVyICovXG4gICAgICAgIC8qIFdlIG5lZWQgaXQgdG8gbWFrZSB0aGUgbG9jYXRpb24gZml0ICovXG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1jcGQtc3BhY2UtNHgpIC0gMzJweCk7XG4gICAgICAgIC8qIFByZXZlbnQgYSBsb25nIHNlbmRlciBuYW1lIHRvIG92ZXJmbG93IHRoZSB0aWxlICovXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgLm14X1Bpbm5lZEV2ZW50VGlsZV90b3Age1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIC5teF9QaW5uZWRFdmVudFRpbGVfc2VuZGVyIHtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1zZW1pYm9sZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUGlubmVkRXZlbnRUaWxlX3RocmVhZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBmaWxsOiB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbiAqIENvcHlyaWdodCAyMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9QaW5uZWRNZXNzYWdlQmFubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAvKiA2NHB4ID0gNjNweCArIDFweCBmcm9tIHRoZSBib3R0b20gYm9yZGVyICovXG4gICAgaGVpZ2h0OiA2M3B4O1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ncmF5LTQwMCk7XG5cbiAgICAvKiBGcm9tIGZpZ21hICovXG4gICAgYm94LXNoYWRvdzogMCB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS02eCkgY2FsYyh2YXIoLS1jcGQtc3BhY2UtMngpICogLTEpIHJnYigyNywgMjksIDM0LCAwLjEpO1xuXG4gICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfbWFpbiB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIC5teF9QaW5uZWRNZXNzYWdlQmFubmVyX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGU6XG4gICAgICAgICAgICAgICAgXCJpbmRpY2F0b3JzIHBpbkljb24gdGl0bGVcIiBhdXRvXG4gICAgICAgICAgICAgICAgXCJpbmRpY2F0b3JzIHBpbkljb24gbWVzc2FnZVwiIGF1dG87XG4gICAgICAgICAgICBjb2x1bW4tZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfSW5kaWNhdG9ycyB7XG4gICAgICAgICAgICBncmlkLWFyZWE6IGluZGljYXRvcnM7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9JbmRpY2F0b3Ige1xuICAgICAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWdyYXktNjAwKTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9QaW5uZWRNZXNzYWdlQmFubmVyX0luZGljYXRvci0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1hY2NlbnQtcHJpbWFyeSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9QaW5uZWRNZXNzYWdlQmFubmVyX0luZGljYXRvci0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9QaW5uZWRNZXNzYWdlQmFubmVyX1Bpbkljb24ge1xuICAgICAgICAgICAgZ3JpZC1hcmVhOiBwaW5JY29uO1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgZmlsbDogdmFyKC0tY3BkLWNvbG9yLWljb24tc2Vjb25kYXJ5LWFscGhhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9QaW5uZWRNZXNzYWdlQmFubmVyX3RpdGxlIHtcbiAgICAgICAgICAgIGdyaWQtYXJlYTogdGl0bGU7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWFjdGlvbi1hY2NlbnQpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG5cbiAgICAgICAgICAgIC5teF9QaW5uZWRNZXNzYWdlQmFubmVyX3RpdGxlX2NvdW50ZXIge1xuICAgICAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tc2VtaWJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfbWVzc2FnZSB7XG4gICAgICAgICAgICBncmlkLWFyZWE6IG1lc3NhZ2U7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9QaW5uZWRNZXNzYWdlQmFubmVyX3JlZGFjdGVkTWVzc2FnZSB7XG4gICAgICAgICAgICBncmlkLWFyZWE6IG1lc3NhZ2U7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9QaW5uZWRNZXNzYWdlQmFubmVyX2FjdGlvbnMge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbn1cblxuLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJbZGF0YS1zaW5nbGUtbWVzc2FnZT1cInRydWVcIl0ge1xuICAgIC5teF9QaW5uZWRNZXNzYWdlQmFubmVyX2NvbnRlbnQge1xuICAgICAgICBncmlkLXRlbXBsYXRlOiBcImluZGljYXRvcnMgcGluSWNvbiBtZXNzYWdlXCIgYXV0bztcblxuICAgICAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9tZXNzYWdlIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUHJlc2VuY2VJY29uVmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcblxuICAgIC5teF9QcmVzZW5jZUljb25WaWV3X29ubGluZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1hY2NlbnQtcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgLm14X1ByZXNlbmNlSWNvblZpZXdfb2ZmbGluZSxcbiAgICAubXhfUHJlc2VuY2VJY29uVmlld19kbmQge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xuICAgIH1cblxuICAgIC5teF9QcmVzZW5jZUljb25WaWV3X3VuYXZhaWxhYmxlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXF1YXRlcm5hcnkpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9QcmVzZW5jZUxhYmVsIHtcbiAgICBmb250LXNpemU6ICRmb250LTExcHg7XG4gICAgb3BhY2l0eTogMC41O1xufVxuXG4ubXhfUHJlc2VuY2VMYWJlbF9vbmxpbmUge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zdWNjZXNzLXByaW1hcnkpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1JlYWRSZWNlaXB0R3JvdXAge1xuICAgIC0tUmVhZFJlY2VpcHRHcm91cF9FdmVudEJ1YmJsZVRpbGUtc3BhY2luZy1lbmQ6IDc4cHg7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaW5zZXQtaW5saW5lLWVuZDogdmFyKC0tZXZlbnQtdGlsZS1yZWFkLXJlY2VpcHQtaW5zZXQtaW5saW5lLWVuZCwgYXV0byk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIHotaW5kZXg6IDE7XG5cbiAgICAubXhfUmVhZFJlY2VpcHRHcm91cF9idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcblxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGV2ZW50LXNlbGVjdGVkLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1JlYWRSZWNlaXB0R3JvdXBfcmVtYWluZGVyIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTZweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgfVxuXG4gICAgLm14X1JlYWRSZWNlaXB0R3JvdXBfY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICAvKiBDb21wb3VuZCB1c2VzIGEgYm9yZGVyIG9uIGRlZmF1bHQgYXZhdGFycyBidXQgbm8gYm9yZGVyIG9uIGFjdHVhbCBpbWFnZXMsIHdlIHdhbnQgYSBib3JkZXIgaW4gYWxsIGNhc2VzICovXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAvKiBSZXNldCB0aGUgbGluZSBoZWlnaHQgYXMgd2UgYXJlIG5vIGxvbmdlciBib3gtc2l6aW5nIGJvcmRlci1ib3guIDE0cHggYmVjYXVzZSBhdmF0YXIgaXMgc2V0IGF0IDE0cHggaW4gY29tcG9uZW50ICovXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpbGwtY2hhbmdlOiBsZWZ0LCB0b3A7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgICAgICAgIGxlZnQgdmFyKC0tdHJhbnNpdGlvbi1zaG9ydCkgZWFzZS1vdXQsXG4gICAgICAgICAgICAgICAgdG9wIHZhcigtLXRyYW5zaXRpb24tc3RhbmRhcmQpIGVhc2Utb3V0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfUmVhZFJlY2VpcHRHcm91cF9wb3B1cCB7XG4gICAgbWF4LWhlaWdodDogMzAwcHg7XG4gICAgd2lkdGg6IDIyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE1cHg7XG5cbiAgICByaWdodDogMDtcblxuICAgICYubXhfQ29udGV4dHVhbE1lbnVfdG9wIHtcbiAgICAgICAgdG9wOiA4cHg7XG4gICAgfVxuXG4gICAgJi5teF9Db250ZXh0dWFsTWVudV9ib3R0b20ge1xuICAgICAgICBib3R0b206IDhweDtcbiAgICB9XG5cbiAgICAubXhfUmVhZFJlY2VpcHRHcm91cF90aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gICAgICAgIG1hcmdpbjogMTZweCAxNnB4IDhweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIC8qIHNob3VsZG7igJl0IGJlIGFjdHVhbGx5IGZvY3VzYWJsZSAqL1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgIC5teF9BdXRvSGlkZVNjcm9sbGJhciB7XG4gICAgICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwX3BlcnNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgICAgIG1hcmdpbjogMCAxMnB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWVudS1zZWxlY3RlZC1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDZweCA4cHg7XG4gICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOyAvKiBMb25nIG5hbWVzIHNob3VsZCBub3Qgc2hyaW5rIHRoZSBwaWN0dXJlICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwX25hbWUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDJweCAwO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfUmVhZFJlY2VpcHRHcm91cF9zZWNvbmRhcnkge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1JlYWRSZWNlaXB0R3JvdXBfcGVyc29uLS10b29sdGlwIHtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE4IFZlY3RvciBDcmVhdGlvbnMgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9SZXBseVByZXZpZXcge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRwcmltYXJ5LWhhaXJsaW5lLWNvbG9yO1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgbWF4LWhlaWdodDogNTB2aDtcbiAgICBvdmVyZmxvdzogYXV0bztcblxuICAgIC5teF9SZXBseVByZXZpZXdfc2VjdGlvbiB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW47XG4gICAgICAgIHJvdy1nYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTJ4KSAwIDA7XG5cbiAgICAgICAgLm14X1JlcGx5UHJldmlld19oZWFkZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6IDhweDtcblxuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuXG4gICAgICAgICAgICAubXhfUmVwbHlQcmV2aWV3X2hlYWRlcl9jYW5jZWwgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9Sb29tVmlld19ib2R5IHtcbiAgICAubXhfUmVwbHlQcmV2aWV3IHtcbiAgICAgICAgLyogQWRkIGJveC1zaGFkb3cgdG8gdGhlIHJlcGx5IHByZXZpZXcgb24gdGhlIG1haW4gKGxlZnQpIHBhbmVsIG9ubHkuICovXG4gICAgICAgIC8qIEl0IGlzIG5vdCBhZGRlZCB0byB0aGUgcHJldmlldyBvbiB0aGUgKHJpZ2h0KSBwYW5lbCBmb3IgdGhyZWFkcyBhbmQgYSBjaGF0IHdpdGggYSBtYXhpbWl6ZWQgd2lkZ2V0LiAqL1xuICAgICAgICBib3gtc2hhZG93OiAwcHggLTE2cHggMzJweCAkY29tcG9zZXItc2hhZG93LWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHggOHB4IDAgMDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbUhlYWRlciB7XG4gICAgaGVpZ2h0OiA2NHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtM3gpIDAgY2FsYyh2YXIoLS1jcGQtc3BhY2UtM3gpICsgdmFyKC0tY3BkLXNwYWNlLTEtNXgpKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNlcGFyYXRvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuXG4gICAgYnV0dG9uOmhhcyhzdmcubXhfUm9vbUhlYWRlcl90b2dnbGVkKSB7XG4gICAgICAgIC8qIEZvciBlbmhhbmNlZCB2aXNpYmlsaXR5IHVuZGVyIGNvbnRyYXN0IGNvbnRyb2wgKi9cbiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuLm14X1Jvb21IZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItcGFuZWwtYmctaG92ZXI7XG59XG5cbi5teF9Sb29tSGVhZGVyX2luZm9XcmFwcGVyIHtcbiAgICAvKiB1bnNldCBidXR0b24gc3R5bGVzICovXG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgYmFja2dyb3VuZDogdW5zZXQ7XG4gICAgYm9yZGVyOiB1bnNldDtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgLyogV2l0aG91dCB0aGlzLCB0aGlzIGZsZXggaXRlbSByZXBvcnRzIGl0cyB1bnNocnVuayBjb250ZW50IHdpZHRoIHRvXG4gICAgICAgbXhfUm9vbUhlYWRlciB3aGljaCBicmVha3MgaXRzIG1heC13aWR0aC4gKi9cbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5teF9Sb29tSGVhZGVyX2luZm8ge1xuICAgIC8qIFdlIHdhbnQgdGhlIHNwYWNpbmcgdG8gYmUgNjRweCwgMTN4ID0gNTJweCBidXQgd2UgaGF2ZSBhIGZsZXggZ2FwIG9mXG4gICAgICAgMTJweCBzZXQgb24gdGhlIGZsZXggY29udGFpbmVyLCB3aGljaCBzdW1zIHVwIHRvIDY0ICovXG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTEzeCk7XG4gICAgLyogU2VlIG14X1Jvb21IZWFkZXJfaW5mb1dyYXBwZXIgbWluLXdpZHRoIGNvbW1lbnQgYWJvdmUuICovXG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4ubXhfUm9vbUhlYWRlcl90cnVuY2F0ZWQge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgLXdlYmtpdC1saW5lLWNsYW1wOiAxO1xuXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5teF9Sb29tSGVhZGVyX2hlYWRpbmcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMS01eCk7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5teF9Sb29tSGVhZGVyX3VzZXJTdGF0dXMge1xuICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLm14X1Jvb21IZWFkZXJfaWNvbiB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5teF9Sb29tSGVhZGVyIC5teF9GYWNlUGlsZSB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OTlweDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMS01eCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tbWVkaXVtKTtcblxuICAgIC8qIFJvb21BdmF0YXIgZG9lc24ndCBwYXNzIGNsYXNzZXMgZG93biB0byBhdmF0YXJcbiAgICBTbyBzZXQgc3R5bGUgaGVyZVxuICAgIHVzaW5nIGRpdiBiZWNhdXNlIGNvbXBvdW5kIGNsYXNzZXMgYXJlIG5vdCBzdGFibGUgKi9cbiAgICA+IGRpdiB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1wcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm14X0ZhY2VQaWxlX3RvZ2dsZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jcGQtY29sb3ItYmctc3VjY2Vzcy1zdWJ0bGUpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtYWN0aW9uLWFjY2VudCk7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tc2VtaWJvbGQpO1xuICAgICAgICAvKiBGb3IgZW5oYW5jZWQgdmlzaWJpbGl0eSB1bmRlciBjb250cmFzdCBjb250cm9sICovXG4gICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG59XG5cbi5teF9Sb29tSGVhZGVyIC5teF9CYXNlQXZhdGFyIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLm14X1Jvb21IZWFkZXJfdmlkZW9DYWxsT3B0aW9uIHtcbiAgICAvKiBXb3JrYXJvdW5kIGZvciBodHRwczovL2dpdGh1Yi5jb20vZWxlbWVudC1ocS9jb21wb3VuZC9pc3N1ZXMvMzMxICovXG4gICAgbWluLXdpZHRoOiAyNDBweDtcbn1cblxuLm14X1Jvb21IZWFkZXIgLm14X1Jvb21IZWFkZXJfdG9nZ2xlZCB7XG4gICAgZmlsbDogdmFyKC0tY3BkLWNvbG9yLWljb24tYWNjZW50LXByaW1hcnkpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jvb21JbmZvTGluZSB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICBzdmcge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IC0ycHg7XG4gICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfUm9vbUluZm9MaW5lX21lbWJlcnMge1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAgICAgICBmb250LXdlaWdodDogaW5oZXJpdDtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogXCLCt1wiOyAvKiB2aXN1YWwgc2VwYXJhdG9yICovXG4gICAgICAgICAgICBtYXJnaW46IDAgNnB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgTm9yZGVjayBJVCArIENvbnN1bHRpbmcgR21iSFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbUtub2Nrc0JhciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1zZWNvbmRhcnkpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuXG4ubXhfUm9vbUtub2Nrc0Jhcl9jb250ZW50IHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWFyZ2luOiAwIHZhcigtLWNwZC1zcGFjZS0zeCk7XG59XG5cbi5teF9Sb29tS25vY2tzQmFyX3BhcmFncmFwaCB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBmb250LXNpemU6IHZhcigtLWNwZC1mb250LXNpemUtYm9keS1zbSk7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4ubXhfUm9vbUtub2Nrc0Jhcl9saW5rIHtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbn1cblxuLm14X1Jvb21Lbm9ja3NCYXJfYWN0aW9uLFxuLm14X1Jvb21Lbm9ja3NCYXJfYXZhdGFyIHtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5teF9Sb29tS25vY2tzQmFyX2FjdGlvbiArIC5teF9Sb29tS25vY2tzQmFyX2FjdGlvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG59XG5cbi5teF9Sb29tS25vY2tzQmFyX2F2YXRhciArIC5teF9Sb29tS25vY2tzQmFyX2F2YXRhciB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tY3BkLXNwYWNlLTR4KSAqIC0xKTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LTIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jvb21QcmV2aWV3QmFyIHtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBoMyB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMThweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG5cbiAgICAgICAgJi5teF9Sb29tUHJldmlld0Jhcl9zcGlubmVyVGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaDMsXG4gICAgLm14X1Jvb21QcmV2aWV3QmFyX21lc3NhZ2UgcCB7XG4gICAgICAgIC8qIGJyZWFrLXdvcmQsIHdpdGggZmFsbGJhY2sgdG8gYnJlYWstYWxsLCB3aGljaCBpcyB3aWRlciBzdXBwb3J0ZWQgKi9cbiAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIH1cblxuICAgIC5teF9TcGlubmVyIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luOiAxMHB4IDEwcHggMTBweCAwO1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG5cbiAgICAubXhfUm9vbVByZXZpZXdCYXJfZm9vdGVyIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjBweDtcblxuICAgICAgICAubXhfU3Bpbm5lciB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfUm9vbVByZXZpZXdCYXJfYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLm14X1Jvb21QcmV2aWV3QmFyX21lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cbiAgICBwIHtcbiAgICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgICB9XG59XG5cbi5teF9Sb29tUHJldmlld0Jhcl9wYW5lbCB7XG4gICAgcGFkZGluZzogOHB4IDhweCA4cHggMjBweDtcblxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICAubXhfUm9vbVByZXZpZXdCYXJfYWN0aW9ucyB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBwYWRkaW5nOiAzcHggOHB4O1xuXG4gICAgICAgICYgPiAqIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Jvb21QcmV2aWV3QmFyX21lc3NhZ2Uge1xuICAgICAgICBmbGV4OiAxIDAgMDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICYgPiAqIHtcbiAgICAgICAgICAgIG1hcmdpbjogNHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBXaXRoIG1heGltaXNlZCB3aWRnZXRzLCB0aGUgcGFuZWwgZml0cyBpbiBiZXR0ZXIgd2hlbiByb3VuZGVkICovXG4ubXhfTWFpblNwbGl0X21heGltaXNlZFdpZGdldCAubXhfUm9vbVByZXZpZXdCYXJfcGFuZWwge1xuICAgIG1hcmdpbjogdmFyKC0tY29udGFpbmVyLWdhcC13aWR0aCk7XG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvbnRhaW5lci1nYXAtd2lkdGgpIC8gMik7IC8qIFNoYXJlZCB3aXRoIHJpZ2h0IHBhbmVsICovXG4gICAgbWFyZ2luLXRvcDogMDsgLyogQWxyZWFkeSBjb3ZlcmVkIGJ5IGFwcHMgZHJhd2VyICovXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4ubXhfUm9vbVByZXZpZXdCYXJfZGlhbG9nIHtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgYm94LXNpemluZzogY29udGVudDtcbiAgICB3aWR0aDogNDAwcHg7XG4gICAgLyogTWF0Y2hlcyB0aGUgcm9vbSBwcmV2aWV3IGNhcmQgdGhpcyBzdGFuZHMgaW4gcGxhY2Ugb2YsIGFuZCB0aGUgcGFuZWwgZm9ybSBvZiB0aGlzIHNhbWUgYmFyICovXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogMjBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAubXhfUm9vbVByZXZpZXdCYXJfbWVzc2FnZSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJiA+ICoge1xuICAgICAgICAgICAgbWFyZ2luOiA1cHggMCAyMHB4IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUm9vbVByZXZpZXdCYXJfYWN0aW9ucyB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDdweCA1MHB4OyAvKiBleHRyYSB3aWRlICovXG4gICAgICAgIH1cblxuICAgICAgICAmID4gKiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgICB9XG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5IHtcbiAgICAgICAgICAgIC8qIHRvIGFjY291bnQgZm9yIHRoZSBwYWRkaW5nIG9mIHRoZSBwcmltYXJ5IGJ1dHRvbiB3aGljaCBjYXVzZXMgaW5jb25zaXN0ZW50IGxvb2sgYmV0d2VlbiAqL1xuICAgICAgICAgICAgLyogc3Vic2VxdWVudCBzZWNvbmRhcnkgKHRleHQpIGJ1dHRvbnMgKi9cbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDdweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbi5teF9Sb29tUHJldmlld0Jhcl9JbnZpdGUge1xuICAgIG1heC1oZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG4ubXhfUm9vbVByZXZpZXdCYXJfSW52aXRlIGgzIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14X1Jvb21QcmV2aWV3QmFyX2ludml0ZXIge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xufVxuXG5hLm14X1Jvb21QcmV2aWV3QmFyX2ludml0ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm14X1Jvb21QcmV2aWV3QmFyX2ludml0ZXJfbXhpZCB7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG59XG5cbi5teF9Sb29tUHJldmlld0Jhcl9pY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG59XG5cbi5teF9Sb29tUHJldmlld0Jhcl9mdWxsV2lkdGgge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jvb21QcmV2aWV3Q2FyZCB7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTh4KSB2YXIoLS1jcGQtc3BhY2UtNngpICFpbXBvcnRhbnQ7IC8qIE92ZXJyaWRlIFNwYWNlUm9vbVZpZXcncyBkZWZhdWx0IHBhZGRpbmcgKi9cbiAgICBtYXJnaW46IGF1dG87XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG1heC13aWR0aDogNDgwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3lzdGVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcblxuICAgIC5teF9Sb29tUHJldmlld0NhcmRfbm90aWNlIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgaGVpZ2h0OiAxZW07XG4gICAgICAgICAgICB3aWR0aDogMWVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiAtMnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Jvb21QcmV2aWV3Q2FyZF9pbnZpdGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgICAgICAgICAubXhfUm9vbVByZXZpZXdDYXJkX2ludml0ZXJfbmFtZSB7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Sb29tUHJldmlld0NhcmRfaW52aXRlcl9teGlkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Jvb21QcmV2aWV3Q2FyZF9hdmF0YXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIC5teF9Sb29tUHJldmlld0NhcmRfdmlkZW8ge1xuICAgICAgICAgICAgd2lkdGg6IDIycHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAxNHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogY2FsYygoNTBweCArIDIgKiAzcHgpIC8gMik7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgYm9yZGVyOiAzcHggc29saWQgJHN5c3RlbTtcblxuICAgICAgICAgICAgbGVmdDogY2FsYygtNTBweCAvIDQgLSAzcHgpO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbi1wcmltYXJ5LWZnLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogWFhYIFJlbW92ZSB0aGlzIHdoZW4gdmlkZW8gcm9vbXMgbGVhdmUgYmV0YSAqL1xuICAgICAgICAubXhfQmV0YUNhcmRfYmV0YVBpbGwge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgaW5zZXQtYmxvY2stc3RhcnQ6IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgICAgICAgICBpbnNldC1pbmxpbmUtZW5kOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaDEubXhfUm9vbVByZXZpZXdDYXJkX25hbWUge1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS00eCkgMCAhaW1wb3J0YW50OyAvKiBPdmVycmlkZSBTcGFjZVJvb21WaWV3J3MgZGVmYXVsdCBtYXJnaW5zICovXG4gICAgfVxuXG4gICAgLm14X1Jvb21QcmV2aWV3Q2FyZF90b3BpYyB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMnB4O1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxNjBweDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB9XG5cbiAgICAubXhfRmFjZVBpbGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICAvKiBGb3IgZW5oYW5jZWQgdmlzaWJpbGl0eSB1bmRlciBjb250cmFzdCBjb250cm9sICovXG4gICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgICAgICA6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUm9vbVByZXZpZXdDYXJkX2pvaW5CdXR0b25zIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAxNHB4IDA7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbVNlYXJjaEF1eFBhbmVsIHtcbiAgICAvKiB1c2UgYG1pbi1oZWlnaHRgIHJhdGhlciB0aGFuIGhlaWdodCwgdG8gYWxsb3cgcm9vbSBmb3IgdGhlIHRleHQgdG8gd3JhcCBpZiB0aGUgd2luZG93IGlzIG5hcnJvdyAqL1xuICAgIG1pbi1oZWlnaHQ6IDg0cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMXB4IDA7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgIC5teF9Sb29tU2VhcmNoQXV4UGFuZWxfc3VtbWFyeSB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgZGlzcGxheTogaW5oZXJpdDsgLyogZmxleCAqL1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgPiBzdmcge1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXNlY29uZGFyeSk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Jvb21TZWFyY2hBdXhQYW5lbF9zdW1tYXJ5X3RleHQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjJweDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TZWFyY2hXYXJuaW5nIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xM3B4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTIwcHg7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Sb29tU2VhcmNoQXV4UGFuZWxfYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGluaGVyaXQ7IC8qIGZsZXggKi9cbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTgtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jvb21VcGdyYWRlV2FybmluZ0JhciB7XG4gICAgbWF4LWhlaWdodDogMjM1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGluZm8tcGxpbnRoLWJnLWNvbG9yO1xuICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xuICAgIG92ZXJmbG93OiBzY3JvbGw7XG59XG5cbi5teF9Sb29tVXBncmFkZVdhcm5pbmdCYXJfd3JhcHBlZCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAtd2Via2l0LWFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5teF9Sb29tVXBncmFkZVdhcm5pbmdCYXJfaGVhZGVyIHtcbiAgICBjb2xvcjogJGFsZXJ0O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ubXhfUm9vbVVwZ3JhZGVXYXJuaW5nQmFyX2JvZHkge1xuICAgIGNvbG9yOiAkYWxlcnQ7XG59XG5cbi5teF9Sb29tVXBncmFkZVdhcm5pbmdCYXJfdXBncmFkZWxpbmsge1xuICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5teF9Sb29tVXBncmFkZVdhcm5pbmdCYXJfc21hbGwge1xuICAgIGNvbG9yOiAkaW5mby1wbGludGgtZmctY29sb3I7XG4gICAgZm9udC1zaXplOiA3MCU7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2VuZE1lc3NhZ2VDb21wb3NlciB7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAvKiBmaXhlZCBsaW5lIGhlaWdodCB0byBwcmV2ZW50IGVtb2ppIGZyb20gYmVpbmcgdGFsbGVyIHRoYW4gdGV4dCAqL1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgIC8qIGRvbid0IGdyb3cgd2lkZXIgdGhhbiBhdmFpbGFibGUgc3BhY2UgKi9cbiAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAubXhfQmFzaWNNZXNzYWdlQ29tcG9zZXIge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAvKiBtaW4taGVpZ2h0IGF0IHRoaXMgbGV2ZWwgc28gdGhlIG14X0Jhc2ljTWVzc2FnZUNvbXBvc2VyX2lucHV0ICovXG4gICAgICAgIC8qIHN0aWxsIHN0YXlzIHZlcnRpY2FsbHkgY2VudGVyZWQgd2hlbiBsZXNzIHRoYW4gNTVweC4gKi9cbiAgICAgICAgLyogV2UgYWxzbyBzZXQgdGhpcyB0byBlbnN1cmUgdGhlIHZvaWNlIG1lc3NhZ2UgcmVjb3JkaW5nIHdpZGdldCAqL1xuICAgICAgICAvKiBkb2Vzbid0IGNhdXNlIGEganVtcC4gKi9cbiAgICAgICAgbWluLWhlaWdodDogNTVweDtcblxuICAgICAgICAubXhfQmFzaWNNZXNzYWdlQ29tcG9zZXJfaW5wdXQge1xuICAgICAgICAgICAgcGFkZGluZzogM3B4IDA7XG4gICAgICAgICAgICAvKiB0aGlzIHdpbGwgY2VudGVyIHRoZSBjb250ZW50ZWRpdGFibGUgKi9cbiAgICAgICAgICAgIC8qIGluIGl0J3MgcGFyZW50IHZlcnRpY2FsbHkgKi9cbiAgICAgICAgICAgIC8qIHdoaWxlIGtlZXBpbmcgdGhlIGF1dG9jb21wbGV0ZSBhdCB0aGUgdG9wICovXG4gICAgICAgICAgICAvKiBvZiB0aGUgY29tcG9zZXIuIFRoZSBwYXJlbnQgbmVlZHMgdG8gYmUgYSBmbGV4IGNvbnRhaW5lciBmb3IgdGhpcyB0byB3b3JrLiAqL1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvIDA7XG4gICAgICAgICAgICAvKiBtYXgtaGVpZ2h0IGF0IHRoaXMgbGV2ZWwgc28gYXV0b2NvbXBsZXRlIGRvZXNuJ3QgZ2V0IHNjcm9sbGVkIHRvbyAqL1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMTQwcHg7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLm14X1N0aWNrZXJzX2NvbnRlbnQge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5teF9TdGlja2Vyc19jb250ZW50X2NvbnRhaW5lciB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBoZWlnaHQ6IDMwMHB4O1xufVxuXG4jbXhfcGVyc2lzdGVkRWxlbWVudF9zdGlja2VyUGlja2VyIHtcbiAgICAubXhfQXBwVGlsZUZ1bGxXaWR0aCB7XG4gICAgICAgIGhlaWdodDogdW5zZXQ7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgfVxuXG4gICAgLm14X0FwcFRpbGVNZW51QmFyIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICBpZnJhbWUge1xuICAgICAgICAvKiBTdGlja2VyIHBpY2tlciBkZXBlbmRzIG9uIHRoZSBmaXhlZCBoZWlnaHQgcHJldmlvdXNseSB1c2VkIGZvciBhbGwgdGlsZXMgKi9cbiAgICAgICAgaGVpZ2h0OiAyODNweDsgLyogaGVpZ2h0IG9mIHRoZSBwb3BvdXQgbWludXMgdGhlIEFwcFRpbGUgbWVudSBiYXIgKi9cbiAgICB9XG59XG5cbi5teF9TdGlja2Vyc19jb250ZW50UGxhY2Vob2xkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teF9TdGlja2Vyc19jb250ZW50UGxhY2Vob2xkZXIgcCB7XG4gICAgbWF4LXdpZHRoOiAyMDBweDtcbn1cblxuLm14X1N0aWNrZXJzX2FkZExpbmsge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICRhY2NlbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVGhpcmRQYXJ0eU1lbWJlckluZm8ge1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVG9wVW5yZWFkTWVzc2FnZXNCYXIge1xuICAgIHotaW5kZXg6IDEwMDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMjRweDtcbiAgICByaWdodDogMjRweDtcbiAgICB3aWR0aDogMzhweDtcbn1cblxuLm14X1RvcFVucmVhZE1lc3NhZ2VzQmFyOjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtOHB4O1xuICAgIGxlZnQ6IDExcHg7XG4gICAgd2lkdGg6IDRweDtcbiAgICBoZWlnaHQ6IDRweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgYm9yZGVyOiA2cHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWljb24tYWNjZW50LXRlcnRpYXJ5KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLm14X1RvcFVucmVhZE1lc3NhZ2VzQmFyX3Njcm9sbFVwIHtcbiAgICBoZWlnaHQ6IDM4cHg7XG4gICAgd2lkdGg6IDM4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTlweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogMS4zcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIHBhZGRpbmc6IDZweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXRlcnRpYXJ5KTtcbiAgICB9XG59XG5cbi5teF9Ub3BVbnJlYWRNZXNzYWdlc0Jhcl9tYXJrQXNSZWFkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAxLjNweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBtYXJnaW46IDVweCBhdXRvO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgcGFkZGluZzogMXB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1VzZXJJZGVudGl0eVdhcm5pbmcge1xuICAgIC8qIDQycHggaXMgdGhlIHBhZGRpbmctbGVmdCBvZiAubXhfTWVzc2FnZUNvbXBvc2VyX3dyYXBwZXIgaW4gcmVzL2Nzcy92aWV3cy9yb29tcy9fTWVzc2FnZUNvbXBvc2VyLnBjc3MgKi9cbiAgICBtYXJnaW4tbGVmdDogY2FsYygtNDJweCArIHZhcigtLVJvb21WaWV3X01lc3NhZ2VMaXN0LXBhZGRpbmcpKTtcblxuICAgIC5teF9Vc2VySWRlbnRpdHlXYXJuaW5nX3JvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIH1cbiAgICAgICAgLm14X1VzZXJJZGVudGl0eVdhcm5pbmdfbWFpbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuICAgICAgICAubXhfVXNlcklkZW50aXR5V2FybmluZ19tYWluLmNyaXRpY2FsIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi5teF9Vc2VySWRlbnRpdHlXYXJuaW5nLmNyaXRpY2FsIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCB2YXIoLS1jcGQtY29sb3ItcmVkLTEwMCkgMCUsIHZhcigtLWNwZC1jb2xvci10aGVtZS1iZykgMTAwJSk7XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXIubXhfTWVzc2FnZUNvbXBvc2VyLS1jb21wYWN0ID4gLm14X1VzZXJJZGVudGl0eVdhcm5pbmcge1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKC0yNXB4ICsgdmFyKC0tUm9vbVZpZXdfTWVzc2FnZUxpc3QtcGFkZGluZykpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1ZvaWNlUmVjb3JkQ29tcG9zZXJUaWxlX3N0b3Age1xuICAgIC8qIDIwcHggKyA0cHggcGFkZGluZyArIDJweCBib3JkZXIgbWFrZXMgdGhpcyBhIDMycHggc3F1YXJlIChhcyBpbnRlbmRlZCkgKi9cbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkdm9pY2UtcmVjb3JkLXN0b3AtYm9yZGVyLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDMycHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAycHg7IC8qIGJldHdlZW4gdXMgYW5kIHRoZSB3YXZlZm9ybSBjb21wb25lbnQgKi9cblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIGNvbG9yOiAkdm9pY2UtcmVjb3JkLXN0b3Atc3ltYm9sLWNvbG9yO1xuICAgIH1cbn1cblxuLm14X1ZvaWNlUmVjb3JkQ29tcG9zZXJUaWxlX2RlbGV0ZSB7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWFyZ2luLXJpZ2h0OiAycHg7IC8qIGRpc3RhbmNlIGZyb20gbGVmdCBlZGdlIG9mIHdhdmVmb3JtIGNvbnRhaW5lciAoY29udGFpbmVyIGhhcyBzb21lIG1hcmdpbiB0b28pICovXG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBjb2xvcjogJHZvaWNlLXJlY29yZC1pY29uLWNvbG9yO1xuICAgIH1cbn1cblxuLm14X1ZvaWNlUmVjb3JkQ29tcG9zZXJUaWxlX3VwbG9hZGluZ1N0YXRlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbn1cblxuLm14X1ZvaWNlUmVjb3JkQ29tcG9zZXJUaWxlX2ZhaWxlZFN0YXRlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDIxcHg7XG5cbiAgICAubXhfVm9pY2VSZWNvcmRDb21wb3NlclRpbGVfdXBsb2FkU3RhdGVfYmFkZ2Uge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9yb3cgLm14X1ZvaWNlTWVzc2FnZVByaW1hcnlDb250YWluZXIge1xuICAgIC8qIE5vdGU6IHJlbWFpbmluZyBjbGFzcyBwcm9wZXJ0aWVzIGFyZSBpbiB0aGUgUGxheWVyQ29udGFpbmVyIENTUy4gKi9cblxuICAgIC8qIGZpeGVkIGhlaWdodCB0byByZWR1Y2UgbGF5b3V0IGp1bXBzIHdpdGggdGhlIHBsYXkgYnV0dG9uIGFwcGVhcmluZyAqL1xuICAgIC8qIGh0dHBzOi8vZ2l0aHViLmNvbS92ZWN0b3ItaW0vZWxlbWVudC13ZWIvaXNzdWVzLzE4NDMxICovXG4gICAgaGVpZ2h0OiAzMnB4O1xuXG4gICAgbWFyZ2luOiA2cHg7IC8qIGZvcmNlIHRoZSBjb21wb3NlciBhcmVhIHRvIHB1dCBhIGd1dHRlciBhcm91bmQgdXMgKi9cbiAgICBtYXJnaW4tcmlnaHQ6IDZweDsgLyogaXNvbGF0ZSBmcm9tIHN0b3Avc2VuZCBidXR0b24gKi9cblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogaW1wb3J0YW50IGZvciB0aGUgbGl2ZSBjaXJjbGUgKi9cblxuICAgICYubXhfVm9pY2VSZWNvcmRDb21wb3NlclRpbGVfcmVjb3JkaW5nIHtcbiAgICAgICAgLyogV2UgYXJlIHB1dHRpbmcgdGhlIGNpcmNsZSBpbiB0aGlzIHBhZGRpbmcsIHNvIHdlIG5lZWQgKzEwcHggZnJvbSB0aGUgcmVndWxhciAqL1xuICAgICAgICAvKiBwYWRkaW5nIG9uIHRoZSBsZWZ0IHNpZGUuICovXG4gICAgICAgIHBhZGRpbmctbGVmdDogMjJweDtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiByZWNvcmRpbmctcHVsc2UgMnMgaW5maW5pdGU7XG5cbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdm9pY2UtcmVjb3JkLWxpdmUtY2lyY2xlLWNvbG9yO1xuICAgICAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAxMnB4OyAvKiAxMnB4IGZyb20gdGhlIGxlZnQgZWRnZSBmb3IgY29udGFpbmVyIHBhZGRpbmcgKi9cbiAgICAgICAgICAgIHRvcDogMTdweDsgLyogdmVydGljYWxseSBjZW50ZXIgKG1pZGRsZSBhbGlnbiB3aXRoIGNsb2NrKSAqL1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl93eXNpd3lnIC5teF9Wb2ljZU1lc3NhZ2VQcmltYXJ5Q29udGFpbmVyIHtcbiAgICAmLm14X1ZvaWNlUmVjb3JkQ29tcG9zZXJUaWxlX3JlY29yZGluZyB7XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICB0b3A6IDE1cHg7IC8qIHZlcnRpY2FsbHkgY2VudGVyIChtaWRkbGUgYWxpZ24gd2l0aCBjbG9jaykgKi9cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogVGhlIGtleWZyYW1lcyBhcmUgc2xpZ2h0bHkgd2VpcmQgaGVyZSB0byBoZWxwIG1ha2UgYSByYW1waW5nL3B1bmNoIGVmZmVjdCAqL1xuLyogZm9yIHRoZSByZWNvcmRpbmcgZG90LiBXZSBzdGFydCBhbmQgZW5kIGF0IDEwMCUgb3BhY2l0eSB0byBoZWxwIG1ha2UgdGhlICovXG4vKiBkb3QgZmVlbCBhIGJpdCBsaWtlIGEgcmVhbCBsYW1wIHRoYXQgaXMgYmxpbmtpbmc6IHRoZSBhbmltYXRpb24gZW5kcyB1cCAqL1xuLyogc3BlbmRpbmcgYSBsb3Qgb2YgaXRzIHRpbWUgc2hvd2luZyBhIHN0ZWFkeSBzdGF0ZSB3aXRob3V0IGEgZmFkZSBlZmZlY3QuICovXG4vKiBUaGlzIGxhbXAgZWZmZWN0IGV4dGVuZHMgaW50byB3aHkgdGhlIDAlIG9wYWNpdHkga2V5ZnJhbWUgaXMgbm90IGluIHRoZSAqL1xuLyogbWlkcG9pbnQ6IGxhbXBzIHRha2UgbG9uZ2VyIHRvIHR1cm4gb2ZmIHRoYW4gdGhleSBkbyB0byB0dXJuIG9uLCBhbmQgdGhlICovXG4vKiBleHRyYSBmcmFtZXMgZ2l2ZSBpdCBhIGJpdCBvZiBhIHJlYWxpc3RpYyBwdW5jaCBmb3Igd2hlbiB0aGUgYW5pbWF0aW9uIGlzICovXG4vKiByYW1waW5nIGJhY2sgdXAgdG8gMTAwJSBvcGFjaXR5LiAqL1xuXG4vKiBUYXJnZXQgYW5pbWF0aW9uIHRpbWluZ3M6IHN0ZWFkeSBmb3IgMS41cywgZmFkZSBvdXQgZm9yIDAuM3MsIGZhZGUgaW4gZm9yIDAuMnMgKi9cbi8qIChpbnRlbmRlZCB0byBiZSB1c2VkIGluIGEgbG9vcCBmb3IgMnMgYW5pbWF0aW9uIHNwZWVkKSAqL1xuQGtleWZyYW1lcyByZWNvcmRpbmctcHVsc2Uge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgMzUlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgNjUlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbkBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgLm14X1ZvaWNlTWVzc2FnZVByaW1hcnlDb250YWluZXIge1xuICAgICAgICBvdXRsaW5lOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE4LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9XaG9Jc1R5cGluZ1RpbGUge1xuICAgIG1hcmdpbi1sZWZ0OiAtMThweDsgLyogb2Zmc2V0IHBhZGRpbmcgZnJvbSBteF9Sb29tVmlld19NZXNzYWdlTGlzdCB0byBjZW50ZXIgYXZhdGFycyAqL1xuICAgIHBhZGRpbmctdG9wOiAxOHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLyogcG9zaXRpb24gdGhlIGluZGljYXRvciBpbiB0aGUgc2FtZSBwbGFjZSBob3Jpem9udGFsbHkgYXMgdGhlIGV2ZW50LXRpbGUgYXZhdGFyIHNsb3QuICovXG4ubXhfV2hvSXNUeXBpbmdUaWxlX2F2YXRhcnMge1xuICAgIGZsZXg6IDAgMCA4MnB4OyAvKiAxOCAocGFkZGluZyBvbiBtZXNzYWdlIGxpc3QpICsgNjQgKHBhZGRpbmcgb24gZXZlbnQgbGluZXMpICovXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubXhfV2hvSXNUeXBpbmdUaWxlX2F2YXRhcnMgPiA6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1sZWZ0OiAtMTJweDtcbn1cblxuLm14X1dob0lzVHlwaW5nVGlsZV9hdmF0YXJzIC5teF9CYXNlQXZhdGFyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xufVxuXG4ubXhfV2hvSXNUeXBpbmdUaWxlX3JlbWFpbmluZ0F2YXRhclBsYWNlaG9sZGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X1dob0lzVHlwaW5nVGlsZV9sYWJlbCB7XG4gICAgZmxleDogMTtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXNlbWlib2xkKTtcbiAgICBjb2xvcjogJHJvb210b3BpYy1jb2xvcjtcbn1cblxuLm14X1dob0lzVHlwaW5nVGlsZV9sYWJlbCA+IHNwYW4ge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9yZXMvaW1nL3R5cGluZy1pbmRpY2F0b3ItMnguZ2lmXCIpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMjVweDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGJvdHRvbTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHBhZGRpbmctYm90dG9tOiAxNXB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubXhfTWF0cml4Q2hhdF91c2VDb21wYWN0TGF5b3V0IHtcbiAgICAubXhfV2hvSXNUeXBpbmdUaWxlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDRweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRWRpdFd5c2l3eWdDb21wb3NlciB7XG4gICAgLS1FZGl0V3lzaXd5Z0NvbXBvc2VyLXBhZGRpbmctaW5saW5lOiAzcHg7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWF4LXdpZHRoOiAxMDAlOyAvKiBkaXNhYmxlIG92ZXJmbG93ICovXG4gICAgd2lkdGg6IGF1dG87XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogOHB4IHZhcigtLUVkaXRXeXNpd3lnQ29tcG9zZXItcGFkZGluZy1pbmxpbmUpO1xuXG4gICAgLm14X1d5c2l3eWdDb21wb3Nlcl9FZGl0b3JfY29udGVudCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHggJHByaW1hcnktaGFpcmxpbmUtY29sb3I7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgcGFkZGluZzogM3B4IDZweDtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGFjY2VudC00MDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRWRpdFd5c2l3eWdDb21wb3Nlcl9idXR0b25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcC1yZXZlcnNlOyAvKiBkaXNwbGF5IFwiU2F2ZVwiIG92ZXIgXCJDYW5jZWxcIiAqL1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBnYXA6IDVweDtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTAwcHg7IC8qIG1hZ2ljIG51bWJlciB0byBhbGlnbiB0aGUgZWRnZSBvZiB0aGUgYnV0dG9uIHdpdGggdGhlIGlucHV0IGFyZWEgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Gb3JtYXR0aW5nQnV0dG9uc19CdXR0b24ge1xuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2VuZFd5c2l3eWdDb21wb3NlciB7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAvKiBmaXhlZCBsaW5lIGhlaWdodCB0byBwcmV2ZW50IGVtb2ppIGZyb20gYmVpbmcgdGFsbGVyIHRoYW4gdGV4dCAqL1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbi1yaWdodDogMTNweDtcbiAgICBnYXA6IDhweDtcblxuICAgIC5teF9Gb3JtYXR0aW5nQnV0dG9ucyB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgIH1cblxuICAgIC5teF9XeXNpd3lnQ29tcG9zZXJfRWRpdG9yIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgcGFkZGluZzogNnB4IDExcHggNnB4IDEycHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgZ2FwOiAxMHB4O1xuXG4gICAgICAgIC5teF9FMkVJY29uIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDdweCAwO1xuICAgICAgICAgICAgd2lkdGg6IDEycHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICAmW2RhdGEtaXMtZXhwYW5kZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG5cbiAgICAgICAgICAgIC5teF9XeXNpd3lnQ29tcG9zZXJfRWRpdG9yX2NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogM3B4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDNweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1pcy1leHBhbmRlZD1cImZhbHNlXCJdIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfV3lzaXd5Z0NvbXBvc2VyX0VkaXRvcl9jb250YWluZXIge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMjJweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJweDtcbiAgICAgICAgICAgIC8qIGRvbid0IGdyb3cgd2lkZXIgdGhhbiBhdmFpbGFibGUgc3BhY2UgKi9cbiAgICAgICAgICAgIHdpZHRoOiAwO1xuXG4gICAgICAgICAgICAubXhfV3lzaXd5Z0NvbXBvc2VyX0VkaXRvcl9jb250ZW50IHtcbiAgICAgICAgICAgICAgICAvKiB0aGlzIHdpbGwgY2VudGVyIHRoZSBjb250ZW50ZWRpdGFibGUgKi9cbiAgICAgICAgICAgICAgICAvKiBpbiBpdCdzIHBhcmVudCB2ZXJ0aWNhbGx5ICovXG4gICAgICAgICAgICAgICAgLyogd2hpbGUga2VlcGluZyB0aGUgYXV0b2NvbXBsZXRlIGF0IHRoZSB0b3AgKi9cbiAgICAgICAgICAgICAgICAvKiBvZiB0aGUgY29tcG9zZXIuIFRoZSBwYXJlbnQgbmVlZHMgdG8gYmUgYSBmbGV4IGNvbnRhaW5lciBmb3IgdGhpcyB0byB3b3JrLiAqL1xuICAgICAgICAgICAgICAgIG1hcmdpbjogYXV0byAwO1xuICAgICAgICAgICAgICAgIC8qIHRoZSBsaW5lIGhlaWdodCBpcyAkZm9udC0yMnB4IChzZXQgaW4gX0VkaXRvci5wY3NzKSBhbmQgd2Ugd2FudCB0byBkaXNwbGF5IDE2IGxpbmVzICovXG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxNiAqICRmb250LTIycHgpO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9TZW5kV3lzaXd5Z0NvbXBvc2VyLWZvY3VzZWQge1xuICAgIC5teF9XeXNpd3lnQ29tcG9zZXJfRWRpdG9yIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkcXVhdGVybmFyeS1jb250ZW50O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9XeXNpd3lnQ29tcG9zZXJfRWRpdG9yX2NvbnRhaW5lciB7XG4gICAgLyogVGhlc2UgYXJlIHNldCBpbiBKYXZhc2NyaXB0ICovXG4gICAgLS1hdmF0YXItbGV0dGVyOiBcIlwiO1xuICAgIC0tYXZhdGFyLWJhY2tncm91bmQ6IHVuc2V0O1xuICAgIC0tdXNlci1zdGF0dXM6IG5vbmU7XG4gICAgLS1wbGFjZWhvbGRlcjogXCJcIjtcblxuICAgIEBrZXlmcmFtZXMgdmlzdWFsYmVsbCB7XG4gICAgICAgIGZyb20ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHZpc3VhbC1iZWxsLWJnLWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgIHRvIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1d5c2l3eWdDb21wb3Nlcl9FZGl0b3JfY29udGVudCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMnB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgIC8qIEZvcmNlIGNhcmV0IG5vZGVzIHRvIGJlIHNlbGVjdGVkIGluIGZ1bGwgc28gdGhhdCB0aGV5IGNhbiBiZSAqL1xuICAgICAgICAvKiBuYXZpZ2F0ZWQgdGhyb3VnaCBpbiBhIHNpbmdsZSBrZXlwcmVzcyAqL1xuICAgICAgICAuY2FyZXROb2RlIHtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBhbGw7XG4gICAgICAgIH1cblxuICAgICAgICAvKiB3ZSBhbHdheXMgaGF2ZSBhIDxici8+IHRhZyBhdCB0aGUgZW5kIG9mIHRoZSBodG1sLCB3ZSBuZWVkIGl0IHRvIGJlIHByZXNlbnQgYXQgZmlyc3QgdGhlbiBoaWRlIGl0IGFzIHNvb24gYXNcbiAgICAgICAgd2UgaGF2ZSBhbnkgb3RoZXIgZWxlbWVudHMgKi9cbiAgICAgICAgYnI6bm90KDpvbmx5LWNoaWxkKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIC8qIHRoaXMgbWF5IHNlZW0gcmVkdW5kYW50LCBidXQgd2UgbmVlZCB0byBoYW5kbGUgemVybyBjb250ZW50IGZvcm1hdHRpbmcgdGFncywgd2hpY2ggb2NjdXIgd2hlbiB3ZSBzcGxpdCBhXG4gICAgICAgICAgICAgICBmb3JtYXR0aW5nIHRhZyBpbnRvIHBhcmFncmFwaHMgKi9cbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRmb250LTIycHg7XG4gICAgICAgIH1cblxuICAgICAgICB1bCxcbiAgICAgICAgb2wge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tY3BkLXNwYWNlLTd4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIE1ha2UgbGlzdCB0eXBlIGRpc2MgdG8gbWF0Y2ggcmljaCB0ZXh0IGVkaXRvciAqL1xuICAgICAgICB1bCB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4gICAgICAgIH1cblxuICAgICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNzc3O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAkYmxvY2txdW90ZS1iYXItY29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG5cbiAgICAgICAgICAgIG1hcmdpbi1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jay1lbmQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICA+IHByZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcblxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0zeCk7XG5cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbmxpbmVjb2RlLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5saW5lY29kZS1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgIH1cblxuICAgICAgICBjb2RlOm5vdChwcmUgKikge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRtb25vc3BhY2UtZm9udC1mYW1pbHkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbmxpbmVjb2RlLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5saW5lY29kZS1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdW5zZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKiB0aGlzIHNlbGVjdG9yIHJlcHJlc2VudHMgd2hhdCB3aWxsIGJlY29tZSBhIHBpbGxcbiAgICAgICAgbmIgZGVzcGl0ZSB0aGVyZSBiZWluZyBteF9Vc2VyUGlsbCBhbmQgbXhfUm9vbVBpbGwgY2xhc3NlcyBhcHBlbmRlZCB0byB0aGVzZSBwaWxsc1xuICAgICAgICBpbiB0aGUgY3VycmVudCBjb21wb3NlciwgdGhlcmUgZG9uJ3QgYXBwZWFyIHRvIGJlIGFueSBzdHlsZXMgYXNzb2NpYXRlZCB3aXRoIHRob3NlIGNsYXNzZXNcbiAgICAgICAgaW4gdGhpcyByZXBvICovXG4gICAgICAgIGFbZGF0YS1tZW50aW9uLXR5cGVdIHtcbiAgICAgICAgICAgIC8qIGNvbWJpbmUgbXhfUGlsbCBmcm9tIF9QaWxsLnBjc3MgKi9cbiAgICAgICAgICAgIHBhZGRpbmc6ICRmb250LTFweCAwLjRlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xN3B4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGZvbnQtMTZweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtb24tc29saWQtcHJpbWFyeSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGlsbC1iZy1jb2xvcjtcblxuICAgICAgICAgICAgLyogLi4ud2l0aCB0aGUgb3ZlcnJpZGVzIGZyb20gX0Jhc2ljTWVzc2FnZUNvbXBvc2VyLnBjc3MgKi9cbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBhbGw7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHVuc2V0OyAvKiBXZSBkb24ndCB3YW50IGluZGljYXRlIGNsaWNrYWJpbGl0eSAqL1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgICAgICAvKiBhdmF0YXIgcHNldWRvIGVsZW1lbnQgKi9cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgLyogQWZ0ZXIgY29uc29saWRhdGlvbiwgYWxsIG9mIHRoZSBzdHlsaW5nIGZyb20gX1BpbGwuc2NzcyB3YXMgYmVpbmcgb3ZlcnJpZGRlbixcbiAgICAgICAgICAgICAgICBzbyB0YWtlIHdoYXQgaXMgaW4gX0Jhc2ljTWVzc2FnZUNvbXBvc2VyLnBjc3MgYXMgdGhlIHN0YXJ0aW5nIHBvaW50ICovXG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHZhcigtLWF2YXRhci1sZXR0ZXIpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWF2YXRhci1iYWNrZ3JvdW5kKSwgJGJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICAgICB3aWR0aDogJGZvbnQtMTZweDtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6ICRmb250LTE2cHg7IC8qIGVuc3VyZSB0aGUgYXZhdGFyIGlzIG5vdCBjb21wcmVzc2VkICovXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgIC8qIEdldCB0aGUgcG9zaXRpb25pbmcgb2YgdGhlIGF2YXRhciBqdXN0IHJpZ2h0IGZvciBjb25zaXN0ZW5jeSB3aXRoIHRpbWVsaW5lICovXG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTAuNHJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMC4yNHJlbTtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogMC4xMnJlbTtcblxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRmb250LTE2cHg7XG5cbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYXZhdGFyLWNvbG9yLCAkYXZhdGFyLWluaXRpYWwtY29sb3IpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTAtNHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBQc2V1ZG8gZWxlbWVudCBmb3IgcmVuZGVyaW5nIHRoZSB1c2VyIHN0YXR1cyBlbW9qaSBvbiBtZW50aW9uIHBpbGxzLiBJdCBpcyBhXG4gICAgICAgICAgICBwc2V1ZG8gZWxlbWVudCByYXRoZXIgdGhhbiBhIGNoaWxkIG5vZGUgYmVjYXVzZSB0aGUgcGlsbCdzIHRleHQgY29udGVudCBpcyB1c2VkXG4gICAgICAgICAgICB2ZXJiYXRpbSB3aGVuIHRoZSBtZXNzYWdlIGlzIHNlcmlhbGlzZWQsIHNvIGEgcmVhbCBub2RlIHdvdWxkIHB1dCB0aGUgZW1vamkgaW4gdGhlXG4gICAgICAgICAgICBzZW50IG1lc3NhZ2UuICovXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogdmFyKC0tdXNlci1zdGF0dXMpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfV3lzaXd5Z0NvbXBvc2VyX0VkaXRvcl9jb250ZW50X3BsYWNlaG9sZGVyOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiB2YXIoLS1wbGFjZWhvbGRlcik7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICB9XG59XG5cbi5teF9XeXNpd3lnQ29tcG9zZXJfQXV0b0NvbXBsZXRlV3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLyogRHVlIHRvIHRoZSBmYWN0IHRoYXQgZWRpdGluZyBhIG1lc3NhZ2Ugbm93IGhhcyBhIGxhcmdlciBhbW91bnQgb2YgZ3JleVxuICAgIGNvbG91ciBhYm92ZSBpdCAoZHVlIHRvIHRoZSByaWNoIHRleHQgYnV0dG9ucyBhYm92ZSB0aGUgY29tcG9zZXIpLCB3ZSBuZWVkXG4gICAgdG8gZ2l2ZSB0aGUgYXV0b2NvbXBsZXRlIGEgYml0IG1vcmUgdmlzdWFsIHNlcGFyYXRpb24gYnkgdXNpbmcgYSBib3JkZXIuXG4gICAgKi9cbiAgICA+IC5teF9BdXRvY29tcGxldGUge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0Zvcm1hdHRpbmdCdXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBnYXA6IDhweDtcblxuICAgIC5teF9Gb3JtYXR0aW5nQnV0dG9uc19CdXR0b24ge1xuICAgICAgICAtLXNpemU6IDI4cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplKTtcbiAgICAgICAgd2lkdGg6IHZhcigtLXNpemUpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIH1cblxuICAgIC5teF9Gb3JtYXR0aW5nQnV0dG9uc19CdXR0b25faG92ZXIge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwYW5lbHM7XG5cbiAgICAgICAgICAgIC5teF9Gb3JtYXR0aW5nQnV0dG9uc19JY29uIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0Zvcm1hdHRpbmdCdXR0b25zX2FjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhY2NlbnQtMzAwO1xuXG4gICAgICAgIC5teF9Gb3JtYXR0aW5nQnV0dG9uc19JY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0Zvcm1hdHRpbmdCdXR0b25zX2Rpc2FibGVkIHtcbiAgICAgICAgLm14X0Zvcm1hdHRpbmdCdXR0b25zX0ljb24ge1xuICAgICAgICAgICAgY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRm9ybWF0dGluZ0J1dHRvbnNfSWNvbiB7XG4gICAgICAgIC0tc2l6ZTogMTZweDtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1zaXplKTtcbiAgICAgICAgd2lkdGg6IHZhcigtLXNpemUpO1xuICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubXhfRm9ybWF0dGluZ0J1dHRvbnNfVG9vbHRpcF9LZXlib2FyZFNob3J0Y3V0IHtcbiAgICBrYmQge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBJbnRlciwgc2Fucy1zZXJpZjtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGlua01vZGFsIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgaGVpZ2h0OiAzNDFweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC5teF9MaW5rTW9kYWxfY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgbWFyZ2luLXRvcDogN3B4O1xuXG4gICAgICAgIC5teF9MaW5rTW9kYWxfRmllbGQge1xuICAgICAgICAgICAgZmxleDogaW5pdGlhbDtcbiAgICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9MaW5rTW9kYWxfYnV0dG9ucyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgLm14X0RpYWxvZ19idXR0b25zIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSwgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQXZhdGFyU2V0dGluZ19hdmF0YXIge1xuICAgIHdpZHRoOiAxMjBweDtcbiAgICBtaW4td2lkdGg6IDEyMHB4OyAvKiBzbyBpdCBkb2Vzbid0IGdldCBjcnVzaGVkIGJ5IHRoZSBmbGV4Ym94IGluIGxhbmd1YWdlcyB3aXRoIGxvbmdlciB3b3JkcyAqL1xuICAgIGhlaWdodDogMTIwcHg7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICYubXhfQXZhdGFyU2V0dGluZ19hdmF0YXJEaXNwbGF5OmhvdmVyIC5teF9BdmF0YXJTZXR0aW5nX2hvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmID4gKiB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b24ubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnkge1xuICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b24ubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfc20ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmID4gaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTIwcHg7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMjBweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICB9XG5cbiAgICAubXhfQXZhdGFyU2V0dGluZ191cGxvYWRCdXR0b24ge1xuICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzMnB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHRvcDogM3B4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0F2YXRhclNldHRpbmdfdXBsb2FkQnV0dG9uOmhvdmVyLFxuICAgIC5teF9BdmF0YXJTZXR0aW5nX3VwbG9hZEJ1dHRvbl9hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXByaW1hcnkpO1xuICAgIH1cbn1cblxuLm14X0F2YXRhclNldHRpbmdfcmVtb3ZlTWVudUl0ZW0gc3ZnLFxuLm14X0F2YXRhclNldHRpbmdfcmVtb3ZlTWVudUl0ZW0gc3BhbiB7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWNyaXRpY2FsLXByaW1hcnkpICFpbXBvcnRhbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRm9udFNjYWxpbmdQYW5lbF9wcmV2aWV3IHtcbiAgICAtLUZvbnRTY2FsaW5nUGFuZWxfcHJldmlldy1wYWRkaW5nLWJsb2NrOiA5cHg7XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtNHgpIHZhcigtLUZvbnRTY2FsaW5nUGFuZWxfcHJldmlldy1wYWRkaW5nLWJsb2NrKSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGRpc3BsYXk6IGZsb3ctcm9vdDtcblxuICAgICYubXhfSVJDTGF5b3V0IHtcbiAgICAgICAgcGFkZGluZy10b3A6IDlweDtcbiAgICB9XG5cbiAgICAubXhfUmVhZFJlY2VpcHRHcm91cCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4ubXhfRm9udFNjYWxpbmdQYW5lbF9Ecm9wZG93biB7XG4gICAgd2lkdGg6IDEyMHB4O1xuICAgIC8qIE92ZXJyaWRlIGRlZmF1bHQgbXhfRmllbGQgbWFyZ2luICovXG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KSAhaW1wb3J0YW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ltYWdlU2l6ZVBhbmVsX3JhZGlvcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgID4gbGFiZWwge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDY4cHg7IC8qIGtlZXAgdGhlIGJveGVzIHNlcGFyYXRlICovXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAubXhfSW1hZ2VTaXplUGFuZWxfc2l6ZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgd2lkdGg6IDIyMXB4O1xuICAgICAgICBoZWlnaHQ6IDE0OHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNHB4OyAvKiBtb3ZlIHJhZGlvIGJ1dHRvbiBhd2F5IGZyb20gYm90dG9tIGVkZ2UgYSBiaXQgKi9cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW50ZWdyYXRpb25NYW5hZ2VyIHtcbiAgICAubXhfRGlhbG9nX2JvcmRlciB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHdpZHRoOiA2MCU7XG4gICAgICAgIGhlaWdodDogNzAlO1xuICAgICAgICBtYXgtd2lkdGg6IGluaXRpYWw7XG4gICAgICAgIG1heC1oZWlnaHQ6IGluaXRpYWw7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZyB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgaWZyYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIGgzIHtcbiAgICAgICAgbWFyZ2luLWJsb2NrOiB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuICAgIH1cblxuICAgIC5teF9JbnRlZ3JhdGlvbk1hbmFnZXJfbG9hZGluZyxcbiAgICAubXhfSW50ZWdyYXRpb25NYW5hZ2VyX2Vycm9yIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgIC5teF9JbnRlZ3JhdGlvbk1hbmFnZXJfZXJyb3IgaDMge1xuICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Kb2luUnVsZVNldHRpbmdzX3VwZ3JhZGVSZXF1aXJlZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgcGFkZGluZzogNHB4IDE2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xufVxuXG4ubXhfSm9pblJ1bGVTZXR0aW5nc19zcGFjZXNXaXRoQWNjZXNzIHtcbiAgICA+IGg0IHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgPiBzcGFuIHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1tZWRpdW0pO1xuICAgICAgICBsaW5lLWhlaWdodDogMzJweDsgLyogbWF0Y2hlcyBoZWlnaHQgb2YgYXZhdGFyIGZvciB2LWFsaWduICovXG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYgKyBzcGFuIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfSm9pblJ1bGVTZXR0aW5nc19yYWRpb0J1dHRvbiB7XG4gICAgcGFkZGluZy10b3A6IDE2cHg7XG5cbiAgICAubXhfU3R5bGVkUmFkaW9CdXR0b25fY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNHB4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICYubXhfU3R5bGVkUmFkaW9CdXR0b25fZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxuXG4gICAgJi5teF9TdHlsZWRSYWRpb0J1dHRvbl9kaXNhYmxlZCArIHNwYW4ge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxuXG4gICAgJiArIHNwYW4ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAzNHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgICAgICYgKyAubXhfU3R5bGVkUmFkaW9CdXR0b24ge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9Kb2luUnVsZVNldHRpbmdzX2xhYmVsbGVkQ2hlY2tib3gge1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X0pvaW5SdWxlU2V0dGluZ3NfcmVjb21tZW5kZWQge1xuICAgIGNvbG9yOiAkYWNjZW50LTEwMDA7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfS2V5Ym9hcmRTaG9ydGN1dCB7XG4gICAga2JkIHtcbiAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICBtaW4td2lkdGg6IDIwcHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAka2JkLWJvcmRlci1jb2xvcjtcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggJGtiZC1ib3JkZXItY29sb3I7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDIwLCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MYXlvdXRTd2l0Y2hlcl9MYXlvdXRTZWxlY3RvciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIC8qKlxuICAgICAqIFRoZSBzZXR0aW5ncyBmb3JtIGhhcyBhIGRlZmF1bHQgZ2FwIG9mIDEwcHhcbiAgICAgKiBXZSB3YW50IHRvIGhhdmUgYSBiaWdnZXIgZ2FwIGJldHdlZW4gdGhlIGxheW91dCBvcHRpb25zXG4gICAgICovXG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpICFpbXBvcnRhbnQ7XG5cbiAgICAubXhMYXlvdXRTd2l0Y2hlcl9MYXlvdXRTZWxlY3Rvcl9MYXlvdXRSYWRpbyB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtcHJpbWFyeSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgLm14TGF5b3V0U3dpdGNoZXJfTGF5b3V0U2VsZWN0b3JfTGF5b3V0UmFkaW9faW5saW5lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAvKlxuICAgICAgICAgICAgICogMTBweFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBnYXA6IGNhbGModmFyKC0tY3BkLXNwYWNlLTJ4KSArIHZhcigtLWNwZC1zcGFjZS0wLTV4KSk7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14TGF5b3V0U3dpdGNoZXJfTGF5b3V0U2VsZWN0b3JfTGF5b3V0UmFkaW9faW5saW5lLFxuICAgICAgICAubXhMYXlvdXRTd2l0Y2hlcl9MYXlvdXRTZWxlY3Rvcl9MYXlvdXRSYWRpb19FdmVudFRpbGVQcmV2aWV3IHtcbiAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBPdmVycmlkZSB0aGUgZXZlbnQgdGlsZSBzdHlsZSB0byBtYWtlIGl0IGZpdCBpbiB0aGUgc2VsZWN0b3JcbiAgICAgICAgICogVHdlYWsgYWxzbyBob3ZlciBzdHlsZSBhbmQgcmVtb3ZlIGFjdGlvbiBiYXJcbiAgICAgICAgICovXG4gICAgICAgIC5teExheW91dFN3aXRjaGVyX0xheW91dFNlbGVjdG9yX0xheW91dFJhZGlvX0V2ZW50VGlsZVByZXZpZXcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICogRXZlbnRUaWxlVmlldyBhcHBsaWVzIHRoZSBjb250ZW50IGd1dHRlciB0aHJvdWdoIHRoaXNcbiAgICAgICAgICAgICAgICAgKiB2YXJpYWJsZSBvbiB0aGUgc2hlbGwuIEtlZXAgdGhlIHByZXZpZXcncyBjb250ZW50IHdpZHRoXG4gICAgICAgICAgICAgICAgICogY29uc2lzdGVudCB3aXRoIHRoZSBsZWdhY3kgcHJldmlldyBvdmVycmlkZSBiZWxvdy5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAtLWV2ZW50LXRpbGUtY29udGVudC1pbmxpbmUtZW5kOiAwO1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogSGlkZSB0aGUgbWVzc2FnZSBvcHRpb25zIGFuZCBtZXNzYWdlIGFjdGlvbiBiYXIgaW4gdGhlIHByZXZpZXdcbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAubXhfUmVhZFJlY2VpcHRHcm91cCxcbiAgICAgICAgICAgICAgICAubXhfTWVzc2FnZUFjdGlvbkJhciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhhcyhbZGF0YS1ldmVudC1sYXlvdXQ9XCJncm91cFwiXSkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLWNwZC1zcGFjZS0zeCkgKiAtMSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogQWRkIG1hcmdpbiB0byBjZW50ZXIgdGhlIGJ1YmJsZVxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICY6aGFzKFtkYXRhLWV2ZW50LWxheW91dD1cImJ1YmJsZVwiXSkge1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogQWRkIHRoZSBsYXlvdXQgbWFyZ2luIGFuZCB0aGUgbWFyZ2luIHRvIHZlcnRpY2FsbHkgY2VudGVyIHRoZSBidWJibGVcbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMzRweDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjpoYXMoW2RhdGEtZXZlbnQtbGF5b3V0PVwiaXJjXCJdKSB7XG4gICAgICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICAgICAqIFRoZSBtaWdyYXRlZCB0aWxlIGtlZXBzIGFuIGVtcHR5IHRpbWVzdGFtcCBzbG90IGZvclxuICAgICAgICAgICAgICAgICAgICAgKiBJUkMgYWxpZ25tZW50LiBUaGUgcHJldmlldyBtdXN0IGhpZGUgdGhhdCBzbG90IGFzIHRoZVxuICAgICAgICAgICAgICAgICAgICAgKiBsZWdhY3kgcHJldmlldyBoaWQgaXRzIHRpbWVzdGFtcCBlbGVtZW50LlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgLm14X01lc3NhZ2VUaW1lc3RhbXAsXG4gICAgICAgICAgICAgICAgICAgIFtkYXRhLXRlc3RpZD1cImV2ZW50LXRpbGUtc2xvdC10aW1lc3RhbXBcIl0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhMYXlvdXRTd2l0Y2hlcl9MYXlvdXRTZWxlY3Rvcl9MYXlvdXRSYWRpb19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTm90aWZpY2F0aW9uUHVzaGVyU2V0dGluZ3Mge1xuICAgIC5teF9Ob3RpZmljYXRpb25QdXNoZXJTZXR0aW5nc19kZXNjcmlwdGlvbiB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9Ob3RpZmljYXRpb25QdXNoZXJTZXR0aW5nc19kZXRhaWwge1xuICAgICAgICBtYXJnaW4tdG9wOiAtNHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR0aW5nc1RhYiAubXhfTm90aWZpY2F0aW9uU2V0dGluZ3MyIHtcbiAgICAvKiBUaGUgbGFicyBub3RpY2UgYmFubmVyIHJlbmRlcnMgZGlyZWN0bHkgYmVsb3cgdGhpcywgc28ga2VlcCB0aGVtIGFwYXJ0LiBXaGVuIGl0IGlzIGFic2VudFxuICAgICAgIHRoZSBtYXJnaW4gY29sbGFwc2VzIHdpdGggdGhlIHNlY3Rpb24ncyBvd24sIGxlYXZpbmcgdGhlIHNwYWNpbmcgYmVsb3cgdW5jaGFuZ2VkLiAqL1xuICAgIC5teF9Ob3RpZmljYXRpb25TZXR0aW5nczJfZXJyb3Ige1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuXG4gICAgICAgIC8qIFRoZSBhbGVydCBsYXlzIGl0cyBhY3Rpb25zIG91dCBhdCBmbGV4LWJhc2lzIDAsIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBicmVhayB0aGUgbGFiZWxcbiAgICAgICAgICAgYWNyb3NzIGxpbmVzIHJhdGhlciB0aGFuIHdyYXBwaW5nIGl0IGJlbG93IHRoZSBtZXNzYWdlLiAqL1xuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogQ29tcG91bmQgZHJvcHMgdGhlIGFjdGlvbiBvbnRvIGl0cyBvd24gcm93IGZvciBhbnkgYWxlcnQgdW5kZXIgNjAwcHgsIHdoaWNoIGxlYXZlcyB0aGlzXG4gICAgICAgICAgIHNob3J0IG1lc3NhZ2Ugc2l0dGluZyBiZXNpZGUgYSBtb3N0bHkgZW1wdHkgc2Vjb25kIHJvdy4gV3JhcCBvbiBkZW1hbmQgaW5zdGVhZCwgc28gdGhlXG4gICAgICAgICAgIGFjdGlvbiBvbmx5IG1vdmVzIGJlbG93IHRoZSBtZXNzYWdlIG9uY2UgdGhlIHR3byBnZW51aW5lbHkgc3RvcCBmaXR0aW5nIHNpZGUgYnkgc2lkZS5cbiAgICAgICAgICAgVGhlIGNoaWxkcmVuIGFyZSB0aGUgYWxlcnQncyBjb250ZW50IHJvdyBhbmQgdGhlIG1lc3NhZ2Ugd2l0aGluIGl0LiAqL1xuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICAgICAgID4gZGl2OmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcblxuICAgICAgICAgICAgICAgIC8qIENvbXBvdW5kIHRpbnRzIG9ubHkgdGhlIGljb24gb24gYSBjcml0aWNhbCBhbGVydCBhbmQgbGVhdmVzIHRoZSBtZXNzYWdlIGluIHRoZVxuICAgICAgICAgICAgICAgICAgIGRlZmF1bHQgdGV4dCBjb2xvdXIsIHNvIHN0YXRlIGl0IGhlcmUgdG8gcmVhZCBsaWtlIHdhcm5pbmdzIGVsc2V3aGVyZS4gVGhlIGFjdGlvblxuICAgICAgICAgICAgICAgICAgIGlzIGEgc2libGluZyBvZiB0aGlzIGVsZW1lbnQgYW5kIHNvIGtlZXBzIGl0cyBvd24gY29sb3VyLiAqL1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc1NlY3Rpb25fc3ViU2VjdGlvbnMge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgZ2FwOiAzMnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc1N1YnNlY3Rpb25fZGVzY3JpcHRpb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICAgICAgIC5teF9TZXR0aW5nc1N1YnNlY3Rpb25fdGV4dCB7XG4gICAgICAgICAgICAubXhfTm90aWZpY2F0aW9uU2V0dGluZ3MyX25vdGlmaWNhdGlvbkJhZGdlIHtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc1N1YnNlY3Rpb25fY29udGVudCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAganVzdGlmeS1pdGVtczogc3RyZXRjaDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzdHJldGNoO1xuICAgIH1cblxuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICB9XG5cbiAgICAubXhfVGFnQ29tcG9zZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuXG4gICAgICAgICYubXhfVGFnQ29tcG9zZXJfZGlzYWJsZWQge1xuICAgICAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RhZ0NvbXBvc2VyX3RhZ3Mge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgICAgIGdhcDogOHB4O1xuXG4gICAgICAgICAgICAubXhfVGFnIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwYW5lbC1hY3Rpb25zO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgICAgIC5teF9UYWdfZGVsZXRlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LTIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1VzZXJOb3RpZlNldHRpbmdzX2dyaWQge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxMnB4KTsgLyogKzEycHggdG8gbGluZSB1cCBjZW50ZXIgb2YgJ05vaXN5JyBjb2x1bW4gd2l0aCB0b2dnbGUgc3dpdGNoZXMgKi9cbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byByZXBlYXQoMywgNjJweCk7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlciBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG5cbiAgICAvKiBPdmVycmlkZSBTdHlsZWRSYWRpb0J1dHRvbiBkZWZhdWx0IHN0eWxlcyAqL1xuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbiB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3R5bGVkUmFkaW9CdXR0b25fc3BhY2VyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBsZWZ0IGFsaWduIHNlY3Rpb24gaGVhZGluZyAqL1xuICAgIC5teF9TZXR0aW5nc1N1YnNlY3Rpb25IZWFkaW5nIHtcbiAgICAgICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICB9XG59XG5cbi5teF9Vc2VyTm90aWZTZXR0aW5nc19ncmlkUm93Q29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBjb250ZW50cztcbn1cblxuLm14X1VzZXJOb3RpZlNldHRpbmdzX2dyaWRSb3cge1xuICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xufVxuXG4ubXhfVXNlck5vdGlmU2V0dGluZ3NfZ3JpZFJvd0xhYmVsIHtcbiAgICBwYWRkaW5nLWlubGluZTogdW5zZXQ7IC8qIFJlbW92ZSBkZWZhdWx0IGxlZ2VuZCBwYWRkaW5nICovXG4gICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICAvKiA8bGVnZW5kPiBkb2VzIG5vdCBhY2NlcHQgKi9cbiAgICAvKiBkaXNwbGF5OiBpbmxpbmUgfCBpbmxpbmUtYmxvY2sgKi9cbiAgICAvKiBmb3JjZSBpdCBpbmxpbmUgdXNpbmcgZmxvYXQgKi9cbiAgICBmbG9hdDogbGVmdDtcbn1cblxuLm14X1VzZXJOb3RpZlNldHRpbmdzX2dyaWRDb2x1bW5MYWJlbCB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXNlbWlib2xkKTtcbn1cbi5teF9Vc2VyTm90aWZTZXR0aW5nc19ncmlkUm93RXJyb3Ige1xuICAgIC8qIG9jY3VweSBmdWxsIHJvdyAqL1xuICAgIGdyaWQtY29sdW1uOiAxLy0xO1xuICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gICAgcGFkZGluZy1yaWdodDogMzAlO1xuICAgIC8qIGNvbGxhcHNlIGhhbGYgb2YgdGhlIGdyaWQtZ2FwICovXG4gICAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLWNwZC1zcGFjZS0xeCkpO1xufVxuXG4ubXhfVXNlck5vdGlmU2V0dGluZ3NfZmxvYXRpbmdTZWN0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xuXG4gICAgJiA+IGRpdjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIC8qIHNlY3Rpb24gaGVhZGVyICovXG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMThweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxuXG4gICAgPiB0YWJsZSB7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG5cbiAgICAgICAgdHIgPiB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAvKiBKdXN0IGZvciBhIGJpdCBvZiBzcGFjaW5nICovXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9Vc2VyTm90aWZTZXR0aW5nc19jbGVhck5vdGlmc0J1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xufVxuXG4ubXhfVGFnQ29tcG9zZXIge1xuICAgIG1hcmdpbi10b3A6IDM1cHg7IC8qIGxvdHMgb2YgZGlzdGFuY2UgZnJvbSB0aGUgbGFzdCBsaW5lIG9mIHRoZSB0YWJsZSAqL1xufVxuXG4ubXhfQWNjZXNzaWJsZUJ1dHRvbi5teF9Ob3RpZmljYXRpb25Tb3VuZF9icm93c2Uge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0dlbmVyYWxVc2VyU2V0dGluZ3NUYWJfc2VjdGlvbi0tZGlzY292ZXJ5X2V4aXN0aW5nX3ZlcmlmaWNhdGlvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIC5teF9GaWVsZCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgMWVtO1xuICAgIH1cbn1cblxuLm14X1Bob25lTnVtYmVyc19pbnB1dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubXhfUGhvbmVOdW1iZXJzX2lucHV0ID4gLm14X0ZpZWxkIHtcbiAgICBmbGV4LWdyb3c6IDE7XG59XG5cbi5teF9QaG9uZU51bWJlcnNfY291bnRyeSB7XG4gICAgd2lkdGg6IDgwcHg7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKiBDb3B5cmlnaHQgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfUG93ZXJMZXZlbFNlbGVjdG9yX0J1dHRvbiB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5LCAyMDIwICwgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbVByb2ZpbGVTZXR0aW5ncyB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG5cbiAgICAubXhfUm9vbVByb2ZpbGVTZXR0aW5nc19wcm9maWxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAubXhfUm9vbVByb2ZpbGVTZXR0aW5nc19wcm9maWxlX2NvbnRyb2xzIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA1NHB4O1xuXG4gICAgICAgICAgICAubXhfRmllbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Sb29tUHJvZmlsZVNldHRpbmdzX3Byb2ZpbGVfY29udHJvbHNfdG9waWMge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgICAgICAgICAmID4gdGV4dGFyZWEge1xuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLm14X1Jvb21Qcm9maWxlU2V0dGluZ3NfcHJvZmlsZV9jb250cm9sc190b3BpYy0tcm9vbSB0ZXh0YXJlYSB7XG4gICAgICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDRlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Sb29tUHJvZmlsZVNldHRpbmdzX3Byb2ZpbGVfY29udHJvbHNfdXNlcklkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Sb29tUHJvZmlsZVNldHRpbmdzX2J1dHRvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7IC8qIDE4cHggaXMgYWxyZWFkeSBhY2NvdW50ZWQgZm9yIGJ5IHRoZSA8cD4gYWJvdmUgdGhlIGJ1dHRvbnMgKi9cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTd4KTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0SW50ZWdyYXRpb25NYW5hZ2VyIHtcbiAgICAubXhfU2V0SW50ZWdyYXRpb25NYW5hZ2VyX2hlYWRpbmdfbWFuYWdlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgY29sdW1uLWdhcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICB9XG4gICAgZm9ybSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NldHRpbmdzRmllbGRzZXQge1xuICAgIC8qIFJlc2V0IHRoZSBicm93c2VyIGRlZmF1bHQgPGZpZWxkc2V0PiBzdHlsaW5nICovXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1pbmxpbmU6IHVuc2V0O1xuICAgIHBhZGRpbmctYmxvY2s6IHVuc2V0O1xuICAgIHBhZGRpbmctaW5saW5lOiB1bnNldDtcbiAgICBtaW4taW5saW5lLXNpemU6IHVuc2V0O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLm14X1NldHRpbmdzRmllbGRzZXRfbGVnZW5kIHtcbiAgICAvKiBSZXNldCB0aGUgYnJvd3NlciBkZWZhdWx0IDxsZWdlbmQ+IHN0eWxpbmcgKi9cbiAgICBwYWRkaW5nLWlubGluZTogdW5zZXQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctbWQtc2VtaWJvbGQpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbn1cblxuLm14X1NldHRpbmdzRmllbGRzZXRfZGVzY3JpcHRpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcblxuICAgIHAge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfU2V0dGluZ3NGaWVsZHNldF9jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfU2V0dGluZ3NIZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgIC8qIE92ZXJyaWRlIG1hcmdpbiBmcm9tIGNvbW1vbi5wY3NzICovXG4gICAgbWFyZ2luOiAwO1xuXG4gICAgPiBzcGFuIHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1tZWRpdW0pO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtYWN0aW9uLWFjY2VudCk7XG4gICAgfVxuXG4gICAgJi5teF9TZXR0aW5nc0hlYWRlcl9yZWNvbW1lbmRlZDo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgY2xpcC1wYXRoOiBjaXJjbGUoNHB4KTtcbiAgICB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9TZXR0aW5nc1N1YmhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgID4gc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1tZWRpdW0pO1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc1N1YmhlYWRlcl9zdWNjZXNzIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXN1Y2Nlc3MtcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzU3ViaGVhZGVyX2Vycm9yIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWNyaXRpY2FsLXByaW1hcnkpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0V4aXN0aW5nU3BlbGxDaGVja0xhbmd1YWdlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5teF9FeGlzdGluZ1NwZWxsQ2hlY2tMYW5ndWFnZV9sYW5ndWFnZSB7XG4gICAgZmxleDogMTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG59XG5cbi5teF9HZW5lcmFsVXNlclNldHRpbmdzVGFiX3NwZWxsQ2hlY2tMYW5ndWFnZUlucHV0IHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1RoZW1lQ2hvaWNlUGFuZWxfVGhlbWVTZWxlY3RvcnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIC8qIE92ZXJyaWRlIGZvcm0gZGVmYXVsdCBzdHlsZSAqL1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3cgIWltcG9ydGFudDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCkgIWltcG9ydGFudDtcblxuICAgIC5teF9UaGVtZUNob2ljZVBhbmVsX3RoZW1lU2VsZWN0b3Ige1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNwZC1zcGFjZS0xLTV4KTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtNXgpIHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuXG4gICAgICAgICYubXhfVGhlbWVDaG9pY2VQYW5lbF90aGVtZVNlbGVjdG9yX2VuYWJsZWQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXByaW1hcnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9UaGVtZUNob2ljZVBhbmVsX3RoZW1lU2VsZWN0b3JfZGlzYWJsZWQge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWRpc2FibGVkKTtcblxuICAgICAgICAgICAgLm14X1RoZW1lQ2hvaWNlUGFuZWxfdGhlbWVTZWxlY3Rvcl9MYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWRpc2FibGVkKTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RoZW1lQ2hvaWNlUGFuZWxfdGhlbWVTZWxlY3Rvcl9MYWJlbCB7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXNlbWlib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KC5teF9UaGVtZUNob2ljZVBhbmVsX3RoZW1lU2VsZWN0b3JfZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIC5teF9UaGVtZUNob2ljZVBhbmVsX3RoZW1lU2VsZWN0b3JfTGFiZWwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9VcGRhdGVDaGVja0J1dHRvbl9zdW1tYXJ5IHtcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNiBFbGVtZW50IENyZWF0aW9ucyBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Vc2VyUGVyc29uYWxJbmZvU2V0dGluZ3Mge1xuICAgIGgyIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNHgpIDA7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTksIDIwMjAgLCAyMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Vc2VyUHJvZmlsZVNldHRpbmdzIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcblxuICAgIGgyIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNHgpIDA7XG4gICAgfVxuXG4gICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3NfcHJvZmlsZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIGdhcDogMTZweDtcblxuICAgICAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5nc19wcm9maWxlX2Rpc3BsYXlOYW1lIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZ2FwOiAwO1xuICAgICAgICB9XG4gICAgICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzX3Byb2ZpbGVfbmFtZUFuZFN0YXR1cyB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIC8qIE92ZXJyaWRlIHRoZSBkZWZhdWx0IG9mIG1pbi13aWR0aDogYXV0byB0byBhbGxvdyBtYXgtd2lkdGg6IDEwMCUgdG8gYm91bmQgY29ycmVjdGx5ICovXG4gICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICBnYXA6IDE2cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5nc19uaWNrbmFtZUNvbG9yIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgIGxlZ2VuZCB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3Nfbmlja25hbWVDb2xvcl9oZWxwLFxuICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzX25pY2tuYW1lQ29sb3JfcHJldmlldyB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTJ4KSAwO1xuICAgIH1cblxuICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzX25pY2tuYW1lQ29sb3Jfb3B0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTN4KSAwO1xuXG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzX25pY2tuYW1lQ29sb3Jfc3dhdGNoIHtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIH1cblxuICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzX25pY2tuYW1lQ29sb3JfdW5hdmFpbGFibGUge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIH1cblxuICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzX3Byb2ZpbGVfY29udHJvbHMge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgfVxuXG4gICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3NfcHJvZmlsZV9jb250cm9sc191c2VySWQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgLm14X0NvcHlhYmxlVGV4dCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3NfcHJvZmlsZV9jb250cm9sc191c2VySWRfbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDE1cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgfVxuXG4gICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3NfcHJvZmlsZV9idXR0b25zIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICB9XG5cbiAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5nc19hY2NvdW50bWFuYWdlSWNvbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzX3Byb2ZpbGUge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDMwcHg7XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfRW5jcnlwdGlvbkRldGFpbHMsXG4ubXhfT3RoZXJTZXR0aW5ncyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIC8qICFpbXBvcnRhbnQgb3ZlcnJpZGUgY29tcG91bmQgZm9ybSAqL1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTZ4KSAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGFsaWduLWl0ZW1zOiBzdGFydDtcblxuICAgIC5teF9FbmNyeXB0aW9uRGV0YWlsc19zZXNzaW9uX3RpdGxlLFxuICAgIC5teF9PdGhlclNldHRpbmdzX3RpdGxlIHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1sZy1zZW1pYm9sZCk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWdyYXktNDAwKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG5cbi5teF9FbmNyeXB0aW9uRGV0YWlscyB7XG4gICAgLm14X0VuY3J5cHRpb25EZXRhaWxzX3Nlc3Npb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA+IGRpdjpudGgtY2hpbGQob2RkKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItZ3JheS0yMDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0VuY3J5cHRpb25EZXRhaWxzX2J1dHRvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfQ2hhbmdlUmVjb3ZlcnlLZXkge1xuICAgIC5teF9DaGFuZ2VSZWNvdmVyeUtleV9Gb3JtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuXG4gICAgICAgIC5teF9DaGFuZ2VSZWNvdmVyeUtleV9mb290ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9LZXlQYW5lbCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGU6XG4gICAgICAgICAgICBcImhlYWRlciBidXR0b25cIiBhdXRvXG4gICAgICAgICAgICBcImNvbnRlbnQgYnV0dG9uXCIgYXV0byAvIDFmcjtcblxuICAgICAgICBjb2x1bW4tZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICByb3ctZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICBncmlkLWFyZWE6IGhlYWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIGdyaWQtYXJlYTogY29udGVudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG5cbiAgICAgICAgICAgIC5teF9LZXlQYW5lbF9rZXkge1xuICAgICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBcIkZpcmEgQ29kZVwiLCBtb25vc3BhY2U7XG4gICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgKiBGcm9tIGZpZ21hIGh0dHBzOi8vd3d3LmZpZ21hLmNvbS9kZXNpZ24vcVRXUmZJdHBPM1JkQ2puVEtQdTRtTC9TZXR0aW5ncz9ub2RlLWlkPTM3NS03NzQ3MSZ0PXQ3bG96WXJTSTFBVlpaM1UtNFxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGhlaWdodDogNzBweDtcbiAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgZ3JpZC1hcmVhOiBidXR0b247XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tc2Vjb25kYXJ5LWFscGhhKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogVXNlZCBieSBDaGFuZ2VSZWNvdmVyeUtleUJvZHkgYW5kIENoZWNrUmVjb3ZlcnlLZXksIHdoaWNoIGJvdGggcmVuZGVyIHRoZSBmb3JtIGluIGFuXG4gICBFbmNyeXB0aW9uQ2FyZC4gKi9cbi5teF9FbmNyeXB0aW9uQ2FyZCAubXhfS2V5Rm9ybSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTh4KTtcblxuICAgIC5teF9LZXlGb3JtX3Bhc3N3b3JkIHtcbiAgICAgICAgPiBpbnB1dFtuYW1lPVwicmVjb3ZlcnlLZXlcIl0ge1xuICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAqIEZyb20gZmlnbWEgaHR0cHM6Ly93d3cuZmlnbWEuY29tL2Rlc2lnbi9xVFdSZkl0cE8zUmRDam5US1B1NG1ML1NldHRpbmdzP25vZGUtaWQ9Mzc1LTc3NTA2JnQ9ZDgyTmRSQkRvS3NVZTFDOS00XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGhlaWdodDogNzBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgICAgICBib3JkZXI6IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gYnV0dG9uIHtcbiAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgKiBTZWUgZmlnbWEgaHR0cHM6Ly93d3cuZmlnbWEuY29tL2Rlc2lnbi9xVFdSZkl0cE8zUmRDam5US1B1NG1ML1NldHRpbmdzP25vZGUtaWQ9Mzc1LTc3NTA2JnQ9ZDgyTmRSQkRvS3NVZTFDOS00XG4gICAgICAgICAgICAgKiBBdm9pZCBzdHJldGNoaW5nIHRoZSBoaWRlL3Nob3cgc3ltYm9sIHRvIHRoZSBoZWlnaHQgb2YgdGhlIGlucHV0LCBhbmQgY2VudHJlIGl0IHZlcnRpY2FsbHkuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGhlaWdodDogMjQuNXB4O1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X0VuY3J5cHRpb25DYXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xMHgpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgLyogRnJvbSBmaWdtYSAqL1xuICAgIGJveC1zaGFkb3c6IDAgMS4ycHggMi40cHggMCByZ2IoMjcsIDI5LCAzNCwgMC4xNSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWdyYXktNDAwKTtcblxuICAgIC5teF9FbmNyeXB0aW9uQ2FyZF9oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgPiBoMiB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBleHRyYSBjbGFzcyBmb3Igc3BlY2lmeWluZyB0aGF0IHdlIGRvbid0IG5lZWQgYSBib3JkZXIgKi9cbiAgICAmLm14X0VuY3J5cHRpb25DYXJkX25vQm9yZGVyIHtcbiAgICAgICAgYm9yZGVyOiAwcHggbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgIH1cblxuICAgIC5teF9BbGVydE5vSWNvbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgbWFyZ2luLXRvcDogLXZhcihjcGQtc3BhY2UtMngpO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfRW5jcnlwdGlvbkNhcmRfYnV0dG9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X0VuY3J5cHRpb25DYXJkX2VtcGhhc2lzZWRDb250ZW50IHtcbiAgICBzcGFuIHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1tZWRpdW0pO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI1IE5ldyBWZWN0b3IgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfUmVjb3ZlcnlQYW5lbE91dE9mU3luYyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi8qIFJlZCB0ZXh0IGZvciB0aGUgXCJEbyBub3QgY2xvc2UgdGhpcyB3aW5kb3dcIiB3YXJuaW5nICovXG4ubXhfUmVzZXRJZGVudGl0eVBhbmVsX3dhcm5pbmcge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1jcml0aWNhbC1wcmltYXJ5KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR0aW5nc0Jhbm5lciB7XG4gICAgYmFja2dyb3VuZDogJHN5c3RlbTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgIGdhcDogMTJweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIC5teF9TZXR0aW5nc0Jhbm5lcl9jb250ZW50IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0dGluZ3NJbmRlbnQge1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDIzLCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0dGluZ3NTZWN0aW9uIHtcbiAgICAtLVNldHRpbmdzVGFiX3NlY3Rpb24tbWFyZ2luLWJvdHRvbS1wcmVmZXJlbmNlcy1sYWJzOiAzMHB4O1xuICAgIC0tU2V0dGluZ3NUYWJfaGVhZGluZ19udGhfY2hpbGQtbWFyZ2luLXRvcDogMzBweDtcbiAgICAtLVNldHRpbmdzVGFiX3Rvb2x0aXAtbWF4LXdpZHRoOiAyMHB4OyAvKiBTbyBpdCBmaXRzIGluIHRoZSBzcGFjZSBwcm92aWRlZCBieSB0aGUgcGFnZSAqL1xuXG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG5cbiAgICAvKiBDb21wb3VuZCBsaW5rcyBjYXJyeSBkYXRhLWtpbmQgYW5kIHByb3ZpZGUgdGhlaXIgb3duIGNvbG91ci4gKi9cbiAgICBhOm5vdChbZGF0YS1raW5kXSkge1xuICAgICAgICBjb2xvcjogJGxpbmtzO1xuICAgIH1cblxuICAgICYubXhfU2V0dGluZ3NTZWN0aW9uX25ld1VpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICBhbGlnbi1pdGVtczogc3RhcnQ7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzU2VjdGlvbl9oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgIH1cbn1cblxuLm14X1NldHRpbmdzU2VjdGlvbl9zdWJTZWN0aW9ucyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTh4KTtcblxuICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTR4KSAwO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR0aW5nc1RhYiB7XG4gICAgLS1TZXR0aW5nc1RhYl90b29sdGlwLW1heC13aWR0aDogMTIwcHg7IC8qIFNvIGl0IGZpdHMgaW4gdGhlIHNwYWNlIHByb3ZpZGVkIGJ5IHRoZSBwYWdlICovXG5cbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcblxuICAgIC8qIENvbXBvdW5kIGxpbmtzIGNhcnJ5IGRhdGEta2luZCBhbmQgcHJvdmlkZSB0aGVpciBvd24gY29sb3VyLiAqL1xuICAgIGE6bm90KFtkYXRhLWtpbmRdKSB7XG4gICAgICAgIGNvbG9yOiAkbGlua3M7XG4gICAgfVxuXG4gICAgZm9ybSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgIH1cblxuICAgIC8qIG5ldmVyIHdhbnQgZnVsbCB3aWR0aCBidXR0b25zXG4gICAgZXZlbnQgd2hlbiBvdGhlciBjb250ZW50IGlzIDEwMCUgd2lkdGggKi9cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGp1c3RpZnktc2VsZjogZmxleC1zdGFydDtcbiAgICB9XG5cbiAgICAubXhfRmllbGQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgfVxufVxuXG4ubXhfU2V0dGluZ3NUYWJfd2FybmluZ1RleHQge1xuICAgIGNvbG9yOiAkYWxlcnQ7XG59XG5cbi5teF9TZXR0aW5nc1RhYl9zdWJzZWN0aW9uVGV4dCB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgbWFyZ2luLWlubGluZS1lbmQ6IDgwcHg7IC8qIEFsaWduIHdpdGggdGhlIHJlc3Qgb2YgdGhlIHZpZXcgKi9cbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDA7XG59XG5cbi5teF9TZXR0aW5nc1RhYl9zZWN0aW9uIHtcbiAgICAkZW5kLWd1dHRlcjogODBweDtcblxuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS02eCk7XG5cbiAgICAubXhfU2V0dGluZ3NGbGFnIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6ICRlbmQtZ3V0dGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuXG4gICAgICAgIC5teF9TZXR0aW5nc0ZsYWdfbGFiZWwge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gJGZvbnQtNDhweCk7IC8qIEZvcmNlIHdvcmQgd3JhcCBpbnN0ZWFkIG9mIGNvbGxpZGluZyB3aXRoIHRoZSBzd2l0Y2ggKi9cbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVG9nZ2xlU3dpdGNoIHtcbiAgICAgICAgICAgIGZsb2F0OiBpbmxpbmUtZW5kO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiBwIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6ICRlbmQtZ3V0dGVyO1xuICAgIH1cblxuICAgICYubXhfU2V0dGluZ3NUYWJfc3Vic2VjdGlvblRleHQgLm14X1NldHRpbmdzRmxhZyB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4ubXhfU2V0dGluZ3NUYWJfc2VjdGlvbnMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuXG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTm90aWZpY2F0aW9uU2V0dGluZ3NUYWJfbm90aWZpY2F0aW9uc1NlY3Rpb24ge1xuICAgIHdpZHRoOiAzNjBweDtcblxuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbiB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgaW5wdXQgKyBkaXYge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X05vdGlmaWNhdGlvblNldHRpbmdzVGFiX21pY3JvQ29weSB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAzMnB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5pbnB1dFt0eXBlPVwiZmlsZVwiXS5teF9Ob3RpZmljYXRpb25Tb3VuZF9zb3VuZFVwbG9hZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIE5vcmRlY2sgSVQgKyBDb25zdWx0aW5nIEdtYkhcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Blb3BsZVJvb21TZXR0aW5nc1RhYl9rbm9jayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfUGVvcGxlUm9vbVNldHRpbmdzVGFiX2NvbnRlbnQge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtYXJnaW46IDAgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cblxuLm14X1Blb3BsZVJvb21TZXR0aW5nc1RhYl9hdmF0YXIge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5teF9QZW9wbGVSb29tU2V0dGluZ3NUYWJfbmFtZSB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG59XG5cbi5teF9QZW9wbGVSb29tU2V0dGluZ3NUYWJfdGltZXN0YW1wIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xufVxuXG4ubXhfUGVvcGxlUm9vbVNldHRpbmdzVGFiX3VzZXJJZCB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IHZhcigtLWNwZC1mb250LXNpemUtYm9keS1zbSk7XG59XG5cbi5teF9QZW9wbGVSb29tU2V0dGluZ3NUYWJfc2VlTW9yZU9yTGVzcyB7XG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtM3gpIDAgMDtcbn1cblxuLm14X1Blb3BsZVJvb21TZXR0aW5nc1RhYl9hY3Rpb24ge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgKyAubXhfUGVvcGxlUm9vbVNldHRpbmdzVGFiX2FjdGlvbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgIH1cbn1cblxuLm14X1Blb3BsZVJvb21TZXR0aW5nc1RhYl9wYXJhZ3JhcGgge1xuICAgIG1hcmdpbjogMDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9sZXNSb29tU2V0dGluZ3NUYWJfYmFubmVkTGlzdCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm14X1JvbGVzUm9vbVNldHRpbmdzVGFiX3VuYmFuQnRuIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZWN1cml0eVJvb21TZXR0aW5nc1RhYl9hZHZhbmNlZFNlY3Rpb24ge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG5cbi5teF9TZWN1cml0eVJvb21TZXR0aW5nc1RhYl93YXJuaW5nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sdW1uLWdhcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcblxuICAgIHN2ZyB7XG4gICAgICAgIGNvbG9yOiAjZmYwMDY0OyAvKiBNYXRjaCBsZWdhY3kgaWNvbiBjb2xvdXIgdW50aWwgcmVkZXNpZ24gKi9cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCwgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRmllbGQubXhfQXBwZWFyYW5jZVVzZXJTZXR0aW5nc1RhYl9jaGVja2JveENvbnRyb2xsZWRGaWVsZCB7XG4gICAgd2lkdGg6IDI1NnB4O1xuICAgIC8qIExpbmUgdXAgd2l0aCBTZXR0aW5ncyBmaWVsZCB0b2dnbGUgYnV0dG9uICovXG4gICAgbWFyZ2luLWlubGluZS1zdGFydDogMDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDE5IE5ldyBWZWN0b3IgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9IZWxwVXNlclNldHRpbmdzVGFiX2FjY2Vzc1Rva2VuRGV0YWlscyB7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0tleWJvYXJkU2hvcnRjdXRfc2hvcnRjdXRMaXN0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbn1cblxuLm14X0tleWJvYXJkU2hvcnRjdXRfc2hvcnRjdXRSb3csXG4ubXhfS2V5Ym9hcmRTaG9ydGN1dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm14X0tleWJvYXJkU2hvcnRjdXRfc2hvcnRjdXRSb3cge1xuICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9LZXlib2FyZFNob3J0Y3V0IHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBjb2x1bW4tZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI1IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWVkaWFQcmV2aWV3QWNjb3VudFNldHRpbmdfUmFkaW8ge1xuICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTF4KSAwO1xufVxuXG4ubXhfTWVkaWFQcmV2aWV3QWNjb3VudFNldHRpbmcge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG59XG5cbi5teF9NZWRpYVByZXZpZXdBY2NvdW50U2V0dGluZ19SYWRpb0hlbHAge1xuICAgIC8qICFpbXBvcnRhbnQgYmVjYXVzZSBpdCdzIG92ZXJyaWRpbmcgY29tcG91bmQgaGVscCBtZXNzYWdlICovXG4gICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7XG59XG5cbi5teF9NZWRpYVByZXZpZXdBY2NvdW50U2V0dGluZ19Gb3JtIHtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLm14X01lZGlhUHJldmlld0FjY291bnRTZXR0aW5nX1RvZ2dsZVN3aXRjaCB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1tZWRpdW0pO1xuICAgIGxldHRlci1zcGFjaW5nOiB2YXIoLS1jcGQtZm9udC1sZXR0ZXItc3BhY2luZy1ib2R5LW1kKTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Nam9sbmlyVXNlclNldHRpbmdzVGFiX2xpc3RJdGVtIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTkgTmV3IFZlY3RvciBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1ByZWZlcmVuY2VzVXNlclNldHRpbmdzVGFiX3NlY3Rpb25faGludCB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2VjdXJpdHlVc2VyU2V0dGluZ3NUYWJfYnVsa09wdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBjb2x1bW4tZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfU2VjdXJpdHlVc2VyU2V0dGluZ3NUYWJfaWdub3JlZFVzZXJzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5teF9TZWN1cml0eVVzZXJTZXR0aW5nc1RhYl9pZ25vcmVkVXNlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbn1cblxuLm14X1NlY3VyaXR5VXNlclNldHRpbmdzVGFiX2lnbm9yZWRVc2VyIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9TZWN1cml0eVVzZXJTZXR0aW5nc1RhYl93YXJuaW5nIHtcbiAgICBjb2xvcjogJGFsZXJ0O1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgIH1cbn1cblxuZm9ybS5teF9TZWN1cml0eVVzZXJTZXR0aW5nc1RhYl9wb3N0aG9nU2VjdGlvbiB7XG4gICAgLyogSW5oaWJpdCBjb21wb3VuZCBzcGFjaW5nIGhlcmUgYXMgaXQgY2xhc2hlcyB3aXRoIHByZS1jb21wb3VuZCBVSSAqL1xuICAgIGRpc3BsYXk6IGNvbnRlbnRzICFpbXBvcnRhbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQsMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TaWRlYmFyVXNlclNldHRpbmdzVGFiX2hvbWVBbGxSb29tc0NoZWNrYm94IHtcbiAgICBtYXJnaW4tbGVmdDogMjRweDtcblxuICAgICYgKyBkaXYge1xuICAgICAgICBtYXJnaW4tbGVmdDogNDhweDtcbiAgICB9XG59XG5cbi5teF9TaWRlYmFyVXNlclNldHRpbmdzVGFiX2ljb24ge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG59XG5cbi5teF9TaWRlYmFyVXNlclNldHRpbmdzVGFiX2NoZWNrYm94IGxhYmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NwYWNlQmFzaWNTZXR0aW5ncyB7XG4gICAgLm14X0ZpZWxkIHtcbiAgICAgICAgbWFyZ2luOiAyNHB4IDA7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlQmFzaWNTZXR0aW5nc19hdmF0YXJDb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuXG4gICAgICAgIC5teF9TcGFjZUJhc2ljU2V0dGluZ3NfYXZhdGFyIHtcbiAgICAgICAgICAgIGhlaWdodDogODBweDtcbiAgICAgICAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICNmZmZmZmY7IC8qIHdoaXRlIGljb24gZmlsbCAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPiBpbnB1dFt0eXBlPVwiZmlsZVwiXSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgPiAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvIDE4cHg7XG4gICAgICAgICAgICBjb2xvcjogJGxpbmtzO1xuICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLm14X1NwYWNlQmFzaWNTZXR0aW5nc19hdmF0YXJfcmVtb3ZlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9oYXNLaW5kIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogbWluLWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25fZGlzYWJsZWQge1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcGFjZUNoaWxkcmVuUGlja2VyIHtcbiAgICBtYXJnaW46IDE2cHggMDtcblxuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbiArIC5teF9TdHlsZWRSYWRpb0J1dHRvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgfVxuXG4gICAgLm14X1NlYXJjaEJveCB7XG4gICAgICAgIC8qIFRvIG1hdGNoIHRoZSBzcGFjZSBhcm91bmQgdGhlIHRpdGxlICovXG4gICAgICAgIG1hcmdpbjogMCAwIDE1cHggMDtcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlQ2hpbGRyZW5QaWNrZXJfbm9SZXN1bHRzIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NwYWNlQ3JlYXRlTWVudV93cmFwcGVyIHtcbiAgICAvKiBiYWNrZ3JvdW5kIGJsdXIgZXZlcnl0aGluZyBleGNlcHQgU3BhY2VQYW5lbCAqL1xuICAgIC5teF9Db250ZXh0dWFsTWVudV9iYWNrZ3JvdW5kIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRpYWxvZy1iYWNrZHJvcC1jb2xvcjtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICBsZWZ0OiA2OHB4O1xuICAgIH1cblxuICAgIC5teF9Db250ZXh0dWFsTWVudSB7XG4gICAgICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgICAgIHdpZHRoOiA0ODBweDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICA+IGgyIHtcbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1oZWFkaW5nLXNtLXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE4cHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+IHAge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NwYWNlQ3JlYXRlTWVudV9iYWNrIHtcbiAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBhbmVsLWFjdGlvbnM7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnkge1xuICAgICAgICAgICAgcGFkZGluZzogOHB4IDIycHg7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IG1pbi1jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fZGlzYWJsZWQge1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbmxpbmVUZXJtc0FncmVlbWVudF9jYkNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAubXhfSW5saW5lVGVybXNBZ3JlZW1lbnRfY2hlY2tib3gge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BbmFseXRpY3NUb2FzdCB7XG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9kYW5nZXJfb3V0bGluZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0luY29taW5nQ2FsbFRvYXN0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBvaW50ZXItZXZlbnRzOiBpbml0aWFsOyAvKiByZXN0b3JlIHBvaW50ZXIgZXZlbnRzIHNvIHRoZSB1c2VyIGNhbiBhY2NlcHQvZGVjbGluZSAqL1xuXG4gICAgLm14X0luY29taW5nQ2FsbFRvYXN0X2NvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIC5teF9JbmNvbWluZ0NhbGxUb2FzdF90aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmciBhdXRvO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgICAgICAgICAgaDIge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0luY29taW5nQ2FsbFRvYXN0X2V4cGFuZEJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmID4gc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0luY29taW5nQ2FsbFRvYXN0X2F2YXRhcnMge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9JbmNvbWluZ0NhbGxUb2FzdF9idXR0b25zIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrLXN0YXJ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0luY29taW5nQ2FsbFRvYXN0X2FjdGlvbkJ1dHRvbiB7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMzFweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbmNvbWluZ0xlZ2FjeUNhbGxUb2FzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHBvaW50ZXItZXZlbnRzOiBpbml0aWFsOyAvKiByZXN0b3JlIHBvaW50ZXIgZXZlbnRzIHNvIHRoZSB1c2VyIGNhbiBhY2NlcHQvZGVjbGluZSAqL1xuXG4gICAgLm14X0luY29taW5nTGVnYWN5Q2FsbFRvYXN0X2NvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuXG4gICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfY2FsbGVyIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG5cbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF90eXBlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG5cbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9JbmNvbWluZ0xlZ2FjeUNhbGxUb2FzdF9idXR0b25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgZ2FwOiAxMnB4O1xuXG4gICAgICAgICAgICAubXhfSW5jb21pbmdMZWdhY3lDYWxsVG9hc3RfYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBAbWl4aW4gTGVnYWN5Q2FsbEJ1dHRvbjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9JbmNvbWluZ0xlZ2FjeUNhbGxUb2FzdF9pY29uQnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICB3aWR0aDogMjBweDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTm9uVXJnZW50RWNob0ZhaWx1cmVUb2FzdCB7XG4gICAgc3ZnIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogJGZvbnQtMThweDtcbiAgICAgICAgaGVpZ2h0OiAkZm9udC0xOHB4O1xuICAgICAgICBjb2xvcjogI2ZmZjsgLyogd2Uga25vdyB0aGF0IG5vbi11cmdlbnQgdG9hc3RzIGFyZSBhbHdheXMgc3R5bGVkIHRoZSBzYW1lICovXG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgICAvKiBpbmNsdWRlcyB0aGUgaTE4biBibG9jayAqL1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxLTIwMjMgeCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSGVhZGluZ19oMSxcbi5teF9IZWFkaW5nX2gyLFxuLm14X0hlYWRpbmdfaDMsXG4ubXhfSGVhZGluZ19oNCB7XG4gICAgbWFyZ2luLWlubGluZTogdW5zZXQ7XG4gICAgbWFyZ2luLWJsb2NrOiB1bnNldDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuLm14X0hlYWRpbmdfaDEge1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmcteGwtc2VtaWJvbGQpO1xufVxuXG4ubXhfSGVhZGluZ19oMiB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy1sZy1zZW1pYm9sZCk7XG59XG5cbi5teF9IZWFkaW5nX2gzIHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1oZWFkaW5nLW1kLXNlbWlib2xkKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbn1cblxuLm14X0hlYWRpbmdfaDQge1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctc20tc2VtaWJvbGQpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE5IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVmVyaWZpY2F0aW9uU2hvd1Nhc19kZWNpbWFsU2FzIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgcGFkZGluZy1sZWZ0OiAzcHg7XG4gICAgcGFkZGluZy1yaWdodDogM3B4O1xufVxuXG4ubXhfVmVyaWZpY2F0aW9uU2hvd1Nhc19kZWNpbWFsU2FzIHNwYW4ge1xuICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG59XG5cbi5teF9WZXJpZmljYXRpb25TaG93U2FzX2Vtb2ppU2FzIHtcbiAgICBtYXJnaW46IDI1cHggMDtcbn1cblxuLm14X1ZlcmlmaWNhdGlvblNob3dTYXNfYnV0dG9uUm93IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA5cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSwgMjAyMiDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5Db3B5cmlnaHQgMjAyMCwgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyogZGF0YS13aGF0aW50ZW50IG1ha2VzIG1vcmUgc2Vuc2UgaGVyZSBzZW1hbnRpY2FsbHkgYnV0IHRoZW4gdGhlIHRvb2x0aXAgd291bGQgc3RheSB2aXNpYmxlIHdpdGhvdXQgdGhlIGJ1dHRvbiAqL1xuLyogd2hpY2ggbG9va3MgYnJva2VuLCBzbyB3ZSBtYXRjaCB0aGUgYmVoYXZpb3VyIG9mIHRvb2x0aXBzIHdoaWNoIGlzIGZpbmUgdG9vLiAqL1xuW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0gLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9ucy5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnNfaGlkZGVuIHtcbiAgICBvcGFjaXR5OiAwLjAwMTsgLyogb3BhY2l0eSAwIGNhbiBjYXVzZSBhIHJlLWxheW91dCAqL1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zIHtcbiAgICAtLUxlZ2FjeUNhbGxWaWV3QnV0dG9uc19kcm9wZG93bkJ1dHRvbi1zaXplOiAxNnB4O1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm90dG9tOiAzMnB4O1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzO1xuICAgIHotaW5kZXg6IDIwMDsgLyogVG8gYmUgYWJvdmUgX2FsbF8gZmVlZHMgKi9cbiAgICBnYXA6IDE4cHg7XG5cbiAgICAubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2J1dHRvbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FsbC12aWV3LWJ1dHRvbi1vbi1iYWNrZ3JvdW5kO1xuXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIGJveC1zaGFkb3c6IDBweCA0cHggNHB4IDBweCAjMDAwMDAwMjY7IC8qIFNhbWUgb24gYm90aCB0aGVtZXMgKi9cblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICBjb2xvcjogJGNhbGwtdmlldy1idXR0b24tb24tZm9yZWdyb3VuZDtcblxuICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9uc19kcm9wZG93bkJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2Ryb3Bkb3duQnV0dG9uLXNpemUpO1xuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1MZWdhY3lDYWxsVmlld0J1dHRvbnNfZHJvcGRvd25CdXR0b24tc2l6ZSk7XG5cbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2J1dHRvbl9taWMgc3ZnIHtcbiAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLyogU3RhdGUgYnV0dG9ucyAqL1xuICAgICAgICAmLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9uc19idXR0b25fb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNhbGwtdmlldy1idXR0b24tb24tYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNhbGwtdmlldy1idXR0b24tb24tZm9yZWdyb3VuZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnNfYnV0dG9uX3NjcmVlbnNoYXJpbmcge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG5cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7IC8qIFNhbWUgb24gYm90aCB0aGVtZXMgKi9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9uc19idXR0b25fb2ZmIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjYWxsLXZpZXctYnV0dG9uLW9mZi1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY2FsbC12aWV3LWJ1dHRvbi1vZmYtZm9yZWdyb3VuZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnNfYnV0dG9uX3NjcmVlbnNoYXJpbmcsXG4gICAgICAgICAgICAmLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9uc19idXR0b25fc2lkZWJhciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNhbGwtdmlldy1idXR0b24tb24tYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY2FsbC12aWV3LWJ1dHRvbi1vbi1mb3JlZ3JvdW5kO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKiBTdGF0ZSBidXR0b25zICovXG5cbiAgICAgICAgLyogU3RhdGVsZXNzIGJ1dHRvbnMgKi9cbiAgICAgICAgJi5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnNfYnV0dG9uX2hhbmd1cCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWxlcnQ7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlOyAvKiBTYW1lIG9uIGJvdGggdGhlbWVzICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyogU3RhdGVsZXNzIGJ1dHRvbnMgKi9cblxuICAgICAgICAvKiBJbnZpc2libGUgc3RhdGUgKi9cbiAgICAgICAgJi5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnNfYnV0dG9uX2ludmlzaWJsZSB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgfVxuICAgICAgICAvKiBJbnZpc2libGUgc3RhdGUgKi9cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ2FsbER1cmF0aW9uIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NhbGxWaWV3IHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWluLWhlaWdodDogMDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG5cbiAgICAubXhfQXBwVGlsZSB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNhbGwtYmFja2dyb3VuZDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGlhbFBhZCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICByb3ctZ2FwOiAxNnB4O1xuICAgIGNvbHVtbi1nYXA6IDBweDtcbiAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcblxuICAgIC8qIHNxdWVlemUgdGhlIGRpYWwgcGFkIGJ1dHRvbnMgdG9nZXRoZXIgaG9yaXpvbnRhbGx5ICovXG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbn1cblxuLm14X0RpYWxQYWRfYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5teF9EaWFsUGFkX2J1dHRvbiAubXhfRGlhbFBhZF9idXR0b25TdWJUZXh0IHtcbiAgICBmb250LXNpemU6IDhweDtcbn1cblxuLm14X0RpYWxQYWRfZGlhbEJ1dHRvbiB7XG4gICAgLyogQWx3YXlzIHNob3cgdGhlIGRpYWwgYnV0dG9uIGluIHRoZSBjZW50ZXIgZ3JpZCBjb2x1bW4gKi9cbiAgICBncmlkLWNvbHVtbjogMjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuXG4gICAgc3ZnIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICBjb2xvcjogI2ZmZjsgLyogb24gYWxsIHRoZW1lcyAqL1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EaWFsUGFkQ29udGV4dE1lbnVfZGlhbFBhZCAubXhfRGlhbFBhZCB7XG4gICAgcm93LWdhcDogMTZweDtcbiAgICBjb2x1bW4tZ2FwOiAzMnB4O1xufVxuXG4ubXhfRGlhbFBhZENvbnRleHRNZW51V3JhcHBlciB7XG4gICAgcGFkZGluZzogMTVweDtcbn1cblxuLm14X0RpYWxQYWRDb250ZXh0TWVudV9oZWFkZXIge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBtYXJnaW4tdG9wOiAzMnB4O1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcblxuICAgIC8qIGEgc2VwYXJhdG9yIGJldHdlZW4gdGhlIGlucHV0IGxpbmUgYW5kIHRoZSBkaWFsIGJ1dHRvbnMgKi9cbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHF1YXRlcm5hcnktY29udGVudDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItYm90dG9tIDAuMjVzO1xufVxuXG4ubXhfRGlhbFBhZENvbnRleHRNZW51X2NhbmNlbCB7XG4gICAgQG1peGluIGN1c3RvbWlzZWRDYW5jZWxCdXR0b247XG4gICAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4ubXhfRGlhbFBhZENvbnRleHRNZW51X2hlYWRlcjpmb2N1cy13aXRoaW4ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYWNjZW50O1xufVxuXG4ubXhfRGlhbFBhZENvbnRleHRNZW51X3RpdGxlIHtcbiAgICBjb2xvcjogJG11dGVkLWZnLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbn1cblxuLm14X0RpYWxQYWRDb250ZXh0TWVudV9kaWFsbGVkIHtcbiAgICBoZWlnaHQ6IDEuNWVtO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgbWFyZ2luOiAwcHg7XG59XG4ubXhfRGlhbFBhZENvbnRleHRNZW51X2RpYWxsZWQgaW5wdXQge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1heC13aWR0aDogMTg1cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nOiA4cHggMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigwLCAwLCAwLCAwKTtcbn1cblxuLm14X0RpYWxQYWRDb250ZXh0TWVudV9kaWFsUGFkIHtcbiAgICBtYXJnaW46IDE2cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGlhbG9nX2RpYWxQYWRXcmFwcGVyIC5teF9EaWFsb2cge1xuICAgIHBhZGRpbmc6IDBweDtcbn1cblxuLm14X0RpYWxQYWRNb2RhbCB7XG4gICAgd2lkdGg6IDI5MnB4O1xuICAgIGhlaWdodDogMzcwcHg7XG4gICAgcGFkZGluZzogMTZweCAwcHggMHB4IDBweDtcbn1cblxuLm14X0RpYWxQYWRNb2RhbF9oZWFkZXIge1xuICAgIG1hcmdpbi10b3A6IDMycHg7XG4gICAgbWFyZ2luLWxlZnQ6IDQwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA0MHB4O1xuXG4gICAgLyogYSBzZXBhcmF0b3IgYmV0d2VlbiB0aGUgaW5wdXQgbGluZSBhbmQgdGhlIGRpYWwgYnV0dG9ucyAqL1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkcXVhdGVybmFyeS1jb250ZW50O1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1ib3R0b20gMC4yNXM7XG59XG5cbi5teF9EaWFsUGFkTW9kYWxfaGVhZGVyOmZvY3VzLXdpdGhpbiB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRhY2NlbnQ7XG59XG5cbi5teF9EaWFsUGFkTW9kYWxfdGl0bGUge1xuICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xufVxuXG4ubXhfRGlhbFBhZE1vZGFsX2NhbmNlbCB7XG4gICAgQG1peGluIGN1c3RvbWlzZWRDYW5jZWxCdXR0b247XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIG1hcmdpbi1yaWdodDogMTZweDtcbn1cblxuLm14X0RpYWxQYWRNb2RhbF9maWVsZCB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG1hcmdpbjogMHB4O1xuICAgIGhlaWdodDogMzBweDtcbn1cblxuLm14X0RpYWxQYWRNb2RhbF9maWVsZCAubXhfRmllbGRfcG9zdGZpeCB7XG4gICAgLyogUmVtb3ZlIGJvcmRlciBzZXBhcmF0b3IgYmV0d2VlbiBwb3N0Zml4IGFuZCBmaWVsZCBjb250ZW50ICovXG4gICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG59XG5cbi5teF9EaWFsUGFkTW9kYWxfZmllbGQgaW5wdXQge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbn1cblxuLm14X0RpYWxQYWRNb2RhbF9kaWFsUGFkIHtcbiAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxLCAyMDIyIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDIwLCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGVnYWN5Q2FsbFZpZXcge1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1wYW5lbC1iZy1jb2xvcjtcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gICAgLyogWFhYOiBQaVBDb250YWluZXIgc2V0cyBwb2ludGVyLWV2ZW50czogbm9uZSAtIHNob3VsZCBwcm9iYWJseSBiZSBzZXQgYmFjayBpbiBhIGJldHRlciBwbGFjZSAqL1xuICAgIHBvaW50ZXItZXZlbnRzOiBpbml0aWFsO1xuXG4gICAgLm14X0xlZ2FjeUNhbGxWaWV3X3RvYXN0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDc0cHg7XG5cbiAgICAgICAgcGFkZGluZzogNHB4IDhweDtcblxuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIHotaW5kZXg6IDUwO1xuXG4gICAgICAgIC8qIFNhbWUgb24gYm90aCB0aGVtZXMgKi9cbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTcxOTFjO1xuICAgIH1cblxuICAgIC5teF9MZWdhY3lDYWxsVmlld19jb250ZW50X3dyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgLm14X0xlZ2FjeUNhbGxWaWV3X2NvbnRlbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKDIwJSArIDIwcHgpOyAvKiBTcGFjZSBmb3IgdGhlIHNpZGViYXIgKi9cblxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNhbGwtdmlldy1jb250ZW50LWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgIC5teF9MZWdhY3lDYWxsVmlld19zdGF0dXMge1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDUwO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50LWZnLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfTGVnYWN5Q2FsbFZpZXdfYXZhdGFyc0NvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICBkaXYge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxWaWV3X2hvbGRCYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcblxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZmlsdGVyOiBibHVyKDIwcHgpO1xuXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDAsIDAsIDAuNik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X0xlZ2FjeUNhbGxWaWV3X2NvbnRlbnRfaG9sZCAubXhfTGVnYWN5Q2FsbFZpZXdfc3RhdHVzIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL3Jlcy9pbWcvdm9pcC9wYXVzZWQuc3ZnXCIpO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxWaWV3X3BpcCAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5teF9MZWdhY3lDYWxsVmlld19zaWRlYmFyKSAubXhfTGVnYWN5Q2FsbFZpZXdfY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgLm14X1ZpZGVvRmVlZF9wcmltYXJ5IHtcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogdW5zZXQ7XG4gICAgICAgICAgICBib3JkZXI6IDA7XG5cbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9MZWdhY3lDYWxsVmlld19waXAge1xuICAgICAgICB3aWR0aDogMzIwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG5cbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzeXN0ZW07XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCA0cHggMjBweCByZ2IoMCwgMCwgMCwgMC4yKTtcblxuICAgICAgICAubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zIHtcbiAgICAgICAgICAgIGJvdHRvbTogMTNweDtcblxuICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9uc19idXR0b24ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAzNHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMzRweDtcblxuICAgICAgICAgICAgICAgICYubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2Ryb3Bkb3duQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLUxlZ2FjeUNhbGxWaWV3QnV0dG9uc19kcm9wZG93bkJ1dHRvbi1zaXplKTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1MZWdhY3lDYWxsVmlld0J1dHRvbnNfZHJvcGRvd25CdXR0b24tc2l6ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIycHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjJweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTGVnYWN5Q2FsbFZpZXdfY29udGVudCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxODBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfTGVnYWN5Q2FsbFZpZXdfbGFyZ2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIGZsZXg6IDE7XG5cbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG5cbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jb250YWluZXItZ2FwLXdpZHRoKTtcbiAgICAgICAgLyogVGhlIGxlZnQgc2lkZSBnYXAgaXMgZnVsbHkgaGFuZGxlZCBieSB0aGlzIG1hcmdpbi4gVG8gcHJvaGliaXQgYmxlZWRpbmcgb24gd2Via2l0IGJyb3dzZXIuICovXG4gICAgICAgIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1jb250YWluZXItZ2FwLXdpZHRoKSAvIDIpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cblxuICAgICYubXhfTGVnYWN5Q2FsbFZpZXdfYmVsb3dXaWRnZXQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xlZ2FjeUNhbGxWaWV3Rm9yUm9vbSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC5teF9MZWdhY3lDYWxsVmlld0ZvclJvb21fUmVzaXplV3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgJjpob3ZlciAubXhfTGVnYWN5Q2FsbFZpZXdGb3JSb29tX1Jlc2l6ZUhhbmRsZSB7XG4gICAgICAgICAgICAvKiBOZWVkIHRvIHVzZSBpbXBvcnRhbnQgdG8gb3ZlcnJpZGUgZWxlbWVudCBzdHlsZSBhdHRyaWJ1dGVzICovXG4gICAgICAgICAgICAvKiBzZXQgYnkgcmUtcmVzaXphYmxlICovXG4gICAgICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblxuICAgICAgICAgICAgICAgIGhlaWdodDogNHB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNjRweDtcblxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSwgMjAyMiDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGVnYWN5Q2FsbFZpZXdIZWFkZXIge1xuICAgIGhlaWdodDogNDRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmLm14X0xlZ2FjeUNhbGxWaWV3SGVhZGVyX3BpcCB7XG4gICAgICAgIGN1cnNvcjogZ3JhYjtcbiAgICB9XG59XG5cbi5teF9MZWdhY3lDYWxsVmlld0hlYWRlcl90ZXh0IHtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubXhfTGVnYWN5Q2FsbFZpZXdIZWFkZXJfc2Vjb25kYXJ5Q2FsbEluZm8ge1xuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiwrdcIjtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgfVxufVxuXG4ubXhfTGVnYWN5Q2FsbFZpZXdIZWFkZXJfY29udHJvbHMge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiA1cHg7XG59XG5cbi5teF9MZWdhY3lDYWxsVmlld0hlYWRlcl9idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIHN2ZyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG59XG5cbi5teF9MZWdhY3lDYWxsVmlld0hlYWRlcl9jYWxsSW5mbyB7XG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5teF9MZWdhY3lDYWxsVmlld0hlYWRlcl9yb29tTmFtZSB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiBpbml0aWFsO1xuICAgIGhlaWdodDogMTVweDtcblxuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm14X0xlZ2FjeUNhbGxWaWV3X3NlY29uZGFyeUNhbGxfcm9vbU5hbWUge1xuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG59XG5cbi5teF9MZWdhY3lDYWxsVmlld0hlYWRlcl9pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICBzdmcge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSwgMjAyMiDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MZWdhY3lDYWxsVmlld1NpZGViYXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMTBweDtcblxuICAgIHdpZHRoOiAyMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBnYXA6IDEycHg7XG5cbiAgICA+IC5teF9WaWRlb0ZlZWQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgICAgICYubXhfVmlkZW9GZWVkX3ZvaWNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR2aWRlby1mZWVkLXNlY29uZGFyeS1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9MZWdhY3lDYWxsVmlld1NpZGViYXJfcGlwTW9kZSB7XG4gICAgICAgIHRvcDogMTZweDtcbiAgICAgICAgYm90dG9tOiB1bnNldDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEsIDIwMjIgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgLCAyMDIwLCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9WaWRlb0ZlZWQge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm9yZGVyOiB0cmFuc3BhcmVudCAycHggc29saWQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICAmLm14X1ZpZGVvRmVlZF9zZWNvbmRhcnkge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAyNHB4O1xuICAgICAgICBib3R0b206IDcycHg7XG4gICAgICAgIHdpZHRoOiAyMCU7XG4gICAgfVxuXG4gICAgJi5teF9WaWRlb0ZlZWRfdm9pY2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW52ZXJ0ZWQtYmctY29sb3I7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgJjpub3QoLm14X1ZpZGVvRmVlZF9wcmltYXJ5KSB7XG4gICAgICAgICAgICBhc3BlY3QtcmF0aW86IDE2IC8gOTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9WaWRlb0ZlZWRfdmlkZW8ge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG5cbiAgICAgICAgJi5teF9WaWRlb0ZlZWRfdmlkZW9fbWlycm9yIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1ZpZGVvRmVlZF9taWMge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDZweDtcbiAgICAgICAgYm90dG9tOiA2cHg7XG4gICAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMCwgMCwgMC41KTsgLyogU2FtZSBvbiBib3RoIHRoZW1lcyAqL1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsgLyogU2FtZSBvbiBib3RoIHRoZW1lcyAqL1xuICAgICAgICB9XG4gICAgfVxufVxuIiwicHJlIGNvZGUuaGxqc3tkaXNwbGF5OmJsb2NrO292ZXJmbG93LXg6YXV0bztwYWRkaW5nOjFlbX1jb2RlLmhsanN7cGFkZGluZzozcHggNXB4fS5obGpze2NvbG9yOiMzODNhNDI7YmFja2dyb3VuZDojZmFmYWZhfS5obGpzLWNvbW1lbnQsLmhsanMtcXVvdGV7Y29sb3I6I2EwYTFhNztmb250LXN0eWxlOml0YWxpY30uaGxqcy1kb2N0YWcsLmhsanMtZm9ybXVsYSwuaGxqcy1rZXl3b3Jke2NvbG9yOiNhNjI2YTR9LmhsanMtZGVsZXRpb24sLmhsanMtbmFtZSwuaGxqcy1zZWN0aW9uLC5obGpzLXNlbGVjdG9yLXRhZywuaGxqcy1zdWJzdHtjb2xvcjojZTQ1NjQ5fS5obGpzLWxpdGVyYWx7Y29sb3I6IzAxODRiYn0uaGxqcy1hZGRpdGlvbiwuaGxqcy1hdHRyaWJ1dGUsLmhsanMtbWV0YSAuaGxqcy1zdHJpbmcsLmhsanMtcmVnZXhwLC5obGpzLXN0cmluZ3tjb2xvcjojNTBhMTRmfS5obGpzLWF0dHIsLmhsanMtbnVtYmVyLC5obGpzLXNlbGVjdG9yLWF0dHIsLmhsanMtc2VsZWN0b3ItY2xhc3MsLmhsanMtc2VsZWN0b3ItcHNldWRvLC5obGpzLXRlbXBsYXRlLXZhcmlhYmxlLC5obGpzLXR5cGUsLmhsanMtdmFyaWFibGV7Y29sb3I6Izk4NjgwMX0uaGxqcy1idWxsZXQsLmhsanMtbGluaywuaGxqcy1tZXRhLC5obGpzLXNlbGVjdG9yLWlkLC5obGpzLXN5bWJvbCwuaGxqcy10aXRsZXtjb2xvcjojNDA3OGYyfS5obGpzLWJ1aWx0X2luLC5obGpzLWNsYXNzIC5obGpzLXRpdGxlLC5obGpzLXRpdGxlLmNsYXNzX3tjb2xvcjojYzE4NDAxfS5obGpzLWVtcGhhc2lze2ZvbnQtc3R5bGU6aXRhbGljfS5obGpzLXN0cm9uZ3tmb250LXdlaWdodDo3MDB9LmhsanMtbGlua3t0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfSIsIi8qbGlnaHQgKi9cbi5tYXJrZG93bi1ib2R5IHtcbiAgY29sb3Itc2NoZW1lOiBsaWdodDtcbiAgLyoqIENTUyBkZWZhdWx0IGVhc2luZy4gVXNlIGZvciBob3ZlciBzdGF0ZSBjaGFuZ2VzIGFuZCBtaWNyby1pbnRlcmFjdGlvbnMuICovXG4gIC8qKiBBY2NlbGVyYXRpbmcgbW90aW9uLiBVc2UgZm9yIGVsZW1lbnRzIGV4aXRpbmcgdGhlIHZpZXdwb3J0IChtb3Zpbmcgb2ZmLXNjcmVlbikuICovXG4gIC8qKiBTbW9vdGggYWNjZWxlcmF0aW9uIGFuZCBkZWNlbGVyYXRpb24uIFVzZSBmb3IgZWxlbWVudHMgbW92aW5nIG9yIG1vcnBoaW5nIHdpdGhpbiB0aGUgdmlld3BvcnQuICovXG4gIC8qKiBEZWNlbGVyYXRpbmcgbW90aW9uLiBVc2UgZm9yIGVsZW1lbnRzIGVudGVyaW5nIHRoZSB2aWV3cG9ydCBvciBhcHBlYXJpbmcgb24gc2NyZWVuLiAqL1xuICAvKiogQ29uc3RhbnQgbW90aW9uIHdpdGggbm8gYWNjZWxlcmF0aW9uLiBVc2UgZm9yIGNvbnRpbnVvdXMgYW5pbWF0aW9ucyBsaWtlIHByb2dyZXNzIGJhcnMgb3IgbG9hZGVycy4gKi9cbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogIzFmMjMyODtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBcIk5vdG8gU2Fuc1wiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IGEge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdGV4dC11bmRlcmxpbmUtb2Zmc2V0OiAuMnJlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm9jdGljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xufVxuXG4ubWFya2Rvd24tYm9keSBoMTpob3ZlciAuYW5jaG9yIC5vY3RpY29uLWxpbms6YmVmb3JlLFxuLm1hcmtkb3duLWJvZHkgaDI6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rOmJlZm9yZSxcbi5tYXJrZG93bi1ib2R5IGgzOmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluazpiZWZvcmUsXG4ubWFya2Rvd24tYm9keSBoNDpob3ZlciAuYW5jaG9yIC5vY3RpY29uLWxpbms6YmVmb3JlLFxuLm1hcmtkb3duLWJvZHkgaDU6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rOmJlZm9yZSxcbi5tYXJrZG93bi1ib2R5IGg2OmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluazpiZWZvcmUge1xuICB3aWR0aDogMTZweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBjb250ZW50OiAnICc7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudENvbG9yO1xuICAtd2Via2l0LW1hc2staW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDE2JyB2ZXJzaW9uPScxLjEnIGFyaWEtaGlkZGVuPSd0cnVlJz48cGF0aCBmaWxsLXJ1bGU9J2V2ZW5vZGQnIGQ9J003Ljc3NSAzLjI3NWEuNzUuNzUgMCAwMDEuMDYgMS4wNmwxLjI1LTEuMjVhMiAyIDAgMTEyLjgzIDIuODNsLTIuNSAyLjVhMiAyIDAgMDEtMi44MyAwIC43NS43NSAwIDAwLTEuMDYgMS4wNiAzLjUgMy41IDAgMDA0Ljk1IDBsMi41LTIuNWEzLjUgMy41IDAgMDAtNC45NS00Ljk1bC0xLjI1IDEuMjV6bS00LjY5IDkuNjRhMiAyIDAgMDEwLTIuODNsMi41LTIuNWEyIDIgMCAwMTIuODMgMCAuNzUuNzUgMCAwMDEuMDYtMS4wNiAzLjUgMy41IDAgMDAtNC45NSAwbC0yLjUgMi41YTMuNSAzLjUgMCAwMDQuOTUgNC45NWwxLjI1LTEuMjVhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2bC0xLjI1IDEuMjVhMiAyIDAgMDEtMi44MyAweic+PC9wYXRoPjwvc3ZnPlwiKTtcbiAgbWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnIHZlcnNpb249JzEuMScgYXJpYS1oaWRkZW49J3RydWUnPjxwYXRoIGZpbGwtcnVsZT0nZXZlbm9kZCcgZD0nTTcuNzc1IDMuMjc1YS43NS43NSAwIDAwMS4wNiAxLjA2bDEuMjUtMS4yNWEyIDIgMCAxMTIuODMgMi44M2wtMi41IDIuNWEyIDIgMCAwMS0yLjgzIDAgLjc1Ljc1IDAgMDAtMS4wNiAxLjA2IDMuNSAzLjUgMCAwMDQuOTUgMGwyLjUtMi41YTMuNSAzLjUgMCAwMC00Ljk1LTQuOTVsLTEuMjUgMS4yNXptLTQuNjkgOS42NGEyIDIgMCAwMTAtMi44M2wyLjUtMi41YTIgMiAwIDAxMi44MyAwIC43NS43NSAwIDAwMS4wNi0xLjA2IDMuNSAzLjUgMCAwMC00Ljk1IDBsLTIuNSAyLjVhMy41IDMuNSAwIDAwNC45NSA0Ljk1bDEuMjUtMS4yNWEuNzUuNzUgMCAwMC0xLjA2LTEuMDZsLTEuMjUgMS4yNWEyIDIgMCAwMS0yLjgzIDB6Jz48L3BhdGg+PC9zdmc+XCIpO1xufVxuXG4ubWFya2Rvd24tYm9keSBkZXRhaWxzLFxuLm1hcmtkb3duLWJvZHkgZmlnY2FwdGlvbixcbi5tYXJrZG93bi1ib2R5IGZpZ3VyZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBbaGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLm1hcmtkb3duLWJvZHkgYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG4gIGNvbG9yOiAjMDk2OWRhO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IGFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbn1cblxuLm1hcmtkb3duLWJvZHkgYixcbi5tYXJrZG93bi1ib2R5IHN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IGRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLm1hcmtkb3duLWJvZHkgaDEge1xuICBtYXJnaW46IC42N2VtIDA7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHBhZGRpbmctYm90dG9tOiAuM2VtO1xuICBmb250LXNpemU6IDJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkMWQ5ZTBiMztcbn1cblxuLm1hcmtkb3duLWJvZHkgbWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY4YzU7XG4gIGNvbG9yOiAjMWYyMzI4O1xufVxuXG4ubWFya2Rvd24tYm9keSBzbWFsbCB7XG4gIGZvbnQtc2l6ZTogOTAlO1xufVxuXG4ubWFya2Rvd24tYm9keSBzdWIsXG4ubWFya2Rvd24tYm9keSBzdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4ubWFya2Rvd24tYm9keSBzdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IHN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBpbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi5tYXJrZG93bi1ib2R5IGNvZGUsXG4ubWFya2Rvd24tYm9keSBrYmQsXG4ubWFya2Rvd24tYm9keSBwcmUsXG4ubWFya2Rvd24tYm9keSBzYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IGZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDIuNXJlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkMWQ5ZTBiMztcbiAgaGVpZ2h0OiAuMjVlbTtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAxLjVyZW0gMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2QxZDllMDtcbiAgYm9yZGVyOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSBpbnB1dCB7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4ubWFya2Rvd24tYm9keSBbdHlwZT1idXR0b25dLFxuLm1hcmtkb3duLWJvZHkgW3R5cGU9cmVzZXRdLFxuLm1hcmtkb3duLWJvZHkgW3R5cGU9c3VibWl0XSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICBhcHBlYXJhbmNlOiBidXR0b247XG59XG5cbi5tYXJrZG93bi1ib2R5IFt0eXBlPWNoZWNrYm94XSxcbi5tYXJrZG93bi1ib2R5IFt0eXBlPXJhZGlvXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IFt0eXBlPW51bWJlcl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4ubWFya2Rvd24tYm9keSBbdHlwZT1udW1iZXJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4ubWFya2Rvd24tYm9keSBbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuLm1hcmtkb3duLWJvZHkgW3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIG9wYWNpdHk6IC41NDtcbn1cblxuLm1hcmtkb3duLWJvZHkgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uO1xuICBhcHBlYXJhbmNlOiBidXR0b247XG4gIGZvbnQ6IGluaGVyaXQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IGE6aG92ZXIge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjNTk2MzZlO1xuICBvcGFjaXR5OiAxO1xufVxuXG4ubWFya2Rvd24tYm9keSBocjo6YmVmb3JlIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbi5tYXJrZG93bi1ib2R5IGhyOjphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDtcbiAgY29udGVudDogXCJcIjtcbn1cblxuLm1hcmtkb3duLWJvZHkgdGFibGUge1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiBtYXgtY29udGVudDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogYXV0bztcbiAgZm9udC12YXJpYW50OiB0YWJ1bGFyLW51bXM7XG59XG5cbi5tYXJrZG93bi1ib2R5IHRkLFxuLm1hcmtkb3duLWJvZHkgdGgge1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSBkZXRhaWxzIHN1bW1hcnkge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5tYXJrZG93bi1ib2R5IGE6Zm9jdXMsXG4ubWFya2Rvd24tYm9keSBbcm9sZT1idXR0b25dOmZvY3VzLFxuLm1hcmtkb3duLWJvZHkgaW5wdXRbdHlwZT1yYWRpb106Zm9jdXMsXG4ubWFya2Rvd24tYm9keSBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1cyB7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1ib3JkZXJDb2xvci1hY2NlbnQtZW1waGFzaXMpO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgYTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpLFxuLm1hcmtkb3duLWJvZHkgW3JvbGU9YnV0dG9uXTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpLFxuLm1hcmtkb3duLWJvZHkgaW5wdXRbdHlwZT1yYWRpb106Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSxcbi5tYXJrZG93bi1ib2R5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICBvdXRsaW5lOiBzb2xpZCAxcHggcmdiYSgwLDAsMCwwKTtcbn1cblxuLm1hcmtkb3duLWJvZHkgYTpmb2N1cy12aXNpYmxlLFxuLm1hcmtkb3duLWJvZHkgW3JvbGU9YnV0dG9uXTpmb2N1cy12aXNpYmxlLFxuLm1hcmtkb3duLWJvZHkgaW5wdXRbdHlwZT1yYWRpb106Zm9jdXMtdmlzaWJsZSxcbi5tYXJrZG93bi1ib2R5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYm9yZGVyQ29sb3ItYWNjZW50LWVtcGhhc2lzKTtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IGE6bm90KFtjbGFzc10pOmZvY3VzLFxuLm1hcmtkb3duLWJvZHkgYTpub3QoW2NsYXNzXSk6Zm9jdXMtdmlzaWJsZSxcbi5tYXJrZG93bi1ib2R5IGlucHV0W3R5cGU9cmFkaW9dOmZvY3VzLFxuLm1hcmtkb3duLWJvZHkgaW5wdXRbdHlwZT1yYWRpb106Zm9jdXMtdmlzaWJsZSxcbi5tYXJrZG93bi1ib2R5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmZvY3VzLFxuLm1hcmtkb3duLWJvZHkgaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMtdmlzaWJsZSB7XG4gIG91dGxpbmUtb2Zmc2V0OiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSBrYmQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuMjVyZW07XG4gIGZvbnQ6IDExcHggdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgU0YgTW9ubywgTWVubG8sIENvbnNvbGFzLCBMaWJlcmF0aW9uIE1vbm8sIG1vbm9zcGFjZTtcbiAgbGluZS1oZWlnaHQ6IDEwcHg7XG4gIGNvbG9yOiAjMWYyMzI4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmOGZhO1xuICBib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1ib3JkZXJDb2xvci1tdXRlZCk7XG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWJvcmRlckNvbG9yLW11dGVkKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggMCB2YXIoLS1ib3JkZXJDb2xvci1tdXRlZCk7XG59XG5cbi5tYXJrZG93bi1ib2R5IGgxLFxuLm1hcmtkb3duLWJvZHkgaDIsXG4ubWFya2Rvd24tYm9keSBoMyxcbi5tYXJrZG93bi1ib2R5IGg0LFxuLm1hcmtkb3duLWJvZHkgaDUsXG4ubWFya2Rvd24tYm9keSBoNiB7XG4gIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XG59XG5cbi5tYXJrZG93bi1ib2R5IGgyIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgcGFkZGluZy1ib3R0b206IC4zZW07XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDFkOWUwYjM7XG59XG5cbi5tYXJrZG93bi1ib2R5IGgzIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxLjI1ZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IGg0IHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IGg1IHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAuODc1ZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IGg2IHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgZm9udC1zaXplOiAuODVlbTtcbiAgY29sb3I6ICM1OTYzNmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IHAge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4ubWFya2Rvd24tYm9keSBibG9ja3F1b3RlIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDFlbTtcbiAgY29sb3I6ICM1OTYzNmU7XG4gIGJvcmRlci1sZWZ0OiAuMjVlbSBzb2xpZCAjZDFkOWUwO1xufVxuXG4ubWFya2Rvd24tYm9keSB1bCxcbi5tYXJrZG93bi1ib2R5IG9sIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZy1sZWZ0OiAyZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IG9sIG9sLFxuLm1hcmtkb3duLWJvZHkgdWwgb2wge1xuICBsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLXJvbWFuO1xufVxuXG4ubWFya2Rvd24tYm9keSB1bCB1bCBvbCxcbi5tYXJrZG93bi1ib2R5IHVsIG9sIG9sLFxuLm1hcmtkb3duLWJvZHkgb2wgdWwgb2wsXG4ubWFya2Rvd24tYm9keSBvbCBvbCBvbCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItYWxwaGE7XG59XG5cbi5tYXJrZG93bi1ib2R5IGRkIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IHR0LFxuLm1hcmtkb3duLWJvZHkgY29kZSxcbi5tYXJrZG93bi1ib2R5IHNhbXAge1xuICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgU0YgTW9ubywgTWVubG8sIENvbnNvbGFzLCBMaWJlcmF0aW9uIE1vbm8sIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ubWFya2Rvd24tYm9keSBwcmUge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBmb250LWZhbWlseTogdWktbW9ub3NwYWNlLCBTRk1vbm8tUmVndWxhciwgU0YgTW9ubywgTWVubG8sIENvbnNvbGFzLCBMaWJlcmF0aW9uIE1vbm8sIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm9jdGljb24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTtcbiAgZmlsbDogY3VycmVudENvbG9yO1xufVxuXG4ubWFya2Rvd24tYm9keSBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbi5tYXJrZG93bi1ib2R5IGlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcbiAgbWFyZ2luOiAwO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSAubXItMiB7XG4gIG1hcmdpbi1yaWdodDogMC41cmVtICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJrZG93bi1ib2R5OjpiZWZvcmUge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY29udGVudDogXCJcIjtcbn1cblxuLm1hcmtkb3duLWJvZHk6OmFmdGVyIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoO1xuICBjb250ZW50OiBcIlwiO1xufVxuXG4ubWFya2Rvd24tYm9keT4qOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xufVxuXG4ubWFya2Rvd24tYm9keT4qOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IGE6bm90KFtocmVmXSkge1xuICBjb2xvcjogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSAuYWJzZW50IHtcbiAgY29sb3I6ICNkMTI0MmY7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5hbmNob3Ige1xuICBmbG9hdDogbGVmdDtcbiAgcGFkZGluZy1yaWdodDogMC4yNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IC0yMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmFuY2hvcjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IHAsXG4ubWFya2Rvd24tYm9keSBibG9ja3F1b3RlLFxuLm1hcmtkb3duLWJvZHkgdWwsXG4ubWFya2Rvd24tYm9keSBvbCxcbi5tYXJrZG93bi1ib2R5IGRsLFxuLm1hcmtkb3duLWJvZHkgdGFibGUsXG4ubWFya2Rvd24tYm9keSBwcmUsXG4ubWFya2Rvd24tYm9keSBkZXRhaWxzIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgYmxvY2txdW90ZT46Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSBibG9ja3F1b3RlPjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgaDEgLm9jdGljb24tbGluayxcbi5tYXJrZG93bi1ib2R5IGgyIC5vY3RpY29uLWxpbmssXG4ubWFya2Rvd24tYm9keSBoMyAub2N0aWNvbi1saW5rLFxuLm1hcmtkb3duLWJvZHkgaDQgLm9jdGljb24tbGluayxcbi5tYXJrZG93bi1ib2R5IGg1IC5vY3RpY29uLWxpbmssXG4ubWFya2Rvd24tYm9keSBoNiAub2N0aWNvbi1saW5rIHtcbiAgY29sb3I6ICMxZjIzMjg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLm1hcmtkb3duLWJvZHkgaDE6aG92ZXIgLmFuY2hvcixcbi5tYXJrZG93bi1ib2R5IGgyOmhvdmVyIC5hbmNob3IsXG4ubWFya2Rvd24tYm9keSBoMzpob3ZlciAuYW5jaG9yLFxuLm1hcmtkb3duLWJvZHkgaDQ6aG92ZXIgLmFuY2hvcixcbi5tYXJrZG93bi1ib2R5IGg1OmhvdmVyIC5hbmNob3IsXG4ubWFya2Rvd24tYm9keSBoNjpob3ZlciAuYW5jaG9yIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSBoMTpob3ZlciAuYW5jaG9yIC5vY3RpY29uLWxpbmssXG4ubWFya2Rvd24tYm9keSBoMjpob3ZlciAuYW5jaG9yIC5vY3RpY29uLWxpbmssXG4ubWFya2Rvd24tYm9keSBoMzpob3ZlciAuYW5jaG9yIC5vY3RpY29uLWxpbmssXG4ubWFya2Rvd24tYm9keSBoNDpob3ZlciAuYW5jaG9yIC5vY3RpY29uLWxpbmssXG4ubWFya2Rvd24tYm9keSBoNTpob3ZlciAuYW5jaG9yIC5vY3RpY29uLWxpbmssXG4ubWFya2Rvd24tYm9keSBoNjpob3ZlciAuYW5jaG9yIC5vY3RpY29uLWxpbmsge1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xufVxuXG4ubWFya2Rvd24tYm9keSBoMSB0dCxcbi5tYXJrZG93bi1ib2R5IGgxIGNvZGUsXG4ubWFya2Rvd24tYm9keSBoMiB0dCxcbi5tYXJrZG93bi1ib2R5IGgyIGNvZGUsXG4ubWFya2Rvd24tYm9keSBoMyB0dCxcbi5tYXJrZG93bi1ib2R5IGgzIGNvZGUsXG4ubWFya2Rvd24tYm9keSBoNCB0dCxcbi5tYXJrZG93bi1ib2R5IGg0IGNvZGUsXG4ubWFya2Rvd24tYm9keSBoNSB0dCxcbi5tYXJrZG93bi1ib2R5IGg1IGNvZGUsXG4ubWFya2Rvd24tYm9keSBoNiB0dCxcbi5tYXJrZG93bi1ib2R5IGg2IGNvZGUge1xuICBwYWRkaW5nOiAwIC4yZW07XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoMSxcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDIsXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IGgzLFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoNCxcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDUsXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IGg2IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IGgxIC5hbmNob3IsXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IGgyIC5hbmNob3IsXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IGgzIC5hbmNob3IsXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IGg0IC5hbmNob3IsXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IGg1IC5hbmNob3IsXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IGg2IC5hbmNob3Ige1xuICBtYXJnaW4tbGVmdDogLTQwcHg7XG59XG5cbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDEsXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IGgyIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIGJvcmRlci1ib3R0b206IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IHVsLm5vLWxpc3QsXG4ubWFya2Rvd24tYm9keSBvbC5uby1saXN0IHtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSBvbFt0eXBlPVwiYSBzXCJdIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBsb3dlci1hbHBoYTtcbn1cblxuLm1hcmtkb3duLWJvZHkgb2xbdHlwZT1cIkEgc1wiXSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogdXBwZXItYWxwaGE7XG59XG5cbi5tYXJrZG93bi1ib2R5IG9sW3R5cGU9XCJpIHNcIl0ge1xuICBsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLXJvbWFuO1xufVxuXG4ubWFya2Rvd24tYm9keSBvbFt0eXBlPVwiSSBzXCJdIHtcbiAgbGlzdC1zdHlsZS10eXBlOiB1cHBlci1yb21hbjtcbn1cblxuLm1hcmtkb3duLWJvZHkgb2xbdHlwZT1cIjFcIl0ge1xuICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7XG59XG5cbi5tYXJrZG93bi1ib2R5IGRpdj5vbDpub3QoW3R5cGVdKSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbn1cblxuLm1hcmtkb3duLWJvZHkgdWwgdWwsXG4ubWFya2Rvd24tYm9keSB1bCBvbCxcbi5tYXJrZG93bi1ib2R5IG9sIG9sLFxuLm1hcmtkb3duLWJvZHkgb2wgdWwge1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSBsaT5wIHtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgbGkrbGkge1xuICBtYXJnaW4tdG9wOiAuMjVlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgZGwge1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSBkbCBkdCB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi10b3A6IDFyZW07XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IGRsIGRkIHtcbiAgcGFkZGluZzogMCAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSB0YWJsZSB0aCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IHRhYmxlIHRoLFxuLm1hcmtkb3duLWJvZHkgdGFibGUgdGQge1xuICBwYWRkaW5nOiA2cHggMTNweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2QxZDllMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgdGFibGUgdGQ+Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSB0YWJsZSB0ciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZDFkOWUwYjM7XG59XG5cbi5tYXJrZG93bi1ib2R5IHRhYmxlIHRyOm50aC1jaGlsZCgybikge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjZmOGZhO1xufVxuXG4ubWFya2Rvd24tYm9keSB0YWJsZSBpbWcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLDApO1xufVxuXG4ubWFya2Rvd24tYm9keSBpbWdbYWxpZ249cmlnaHRdIHtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xufVxuXG4ubWFya2Rvd24tYm9keSBpbWdbYWxpZ249bGVmdF0ge1xuICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xufVxuXG4ubWFya2Rvd24tYm9keSAuZW1vamkge1xuICBtYXgtd2lkdGg6IG5vbmU7XG4gIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5mcmFtZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmZyYW1lPnNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiBhdXRvO1xuICBwYWRkaW5nOiA3cHg7XG4gIG1hcmdpbjogMTNweCAwIDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkMWQ5ZTA7XG59XG5cbi5tYXJrZG93bi1ib2R5IHNwYW4uZnJhbWUgc3BhbiBpbWcge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IHNwYW4uZnJhbWUgc3BhbiBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDVweCAwIDA7XG4gIGNsZWFyOiBib3RoO1xuICBjb2xvcjogIzFmMjMyODtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5hbGlnbi1jZW50ZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5tYXJrZG93bi1ib2R5IHNwYW4uYWxpZ24tY2VudGVyPnNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAxM3B4IGF1dG8gMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmFsaWduLWNlbnRlciBzcGFuIGltZyB7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tYXJrZG93bi1ib2R5IHNwYW4uYWxpZ24tcmlnaHQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5tYXJrZG93bi1ib2R5IHNwYW4uYWxpZ24tcmlnaHQ+c3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDEzcHggMCAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5hbGlnbi1yaWdodCBzcGFuIGltZyB7XG4gIG1hcmdpbjogMDtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IHNwYW4uZmxvYXQtbGVmdCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAxM3B4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmZsb2F0LWxlZnQgc3BhbiB7XG4gIG1hcmdpbjogMTNweCAwIDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IHNwYW4uZmxvYXQtcmlnaHQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW4tbGVmdDogMTNweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5mbG9hdC1yaWdodD5zcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMTNweCBhdXRvIDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ubWFya2Rvd24tYm9keSBjb2RlLFxuLm1hcmtkb3duLWJvZHkgdHQge1xuICBwYWRkaW5nOiAuMmVtIC40ZW07XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiA4NSU7XG4gIHdoaXRlLXNwYWNlOiBicmVhay1zcGFjZXM7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4MThiOTgxZjtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuXG4ubWFya2Rvd24tYm9keSBjb2RlIGJyLFxuLm1hcmtkb3duLWJvZHkgdHQgYnIge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSBkZWwgY29kZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbn1cblxuLm1hcmtkb3duLWJvZHkgc2FtcCB7XG4gIGZvbnQtc2l6ZTogODUlO1xufVxuXG4ubWFya2Rvd24tYm9keSBwcmUgY29kZSB7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbn1cblxuLm1hcmtkb3duLWJvZHkgcHJlPmNvZGUge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwKTtcbiAgYm9yZGVyOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSAuaGlnaGxpZ2h0IHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmhpZ2hsaWdodCBwcmUge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5oaWdobGlnaHQgcHJlLFxuLm1hcmtkb3duLWJvZHkgcHJlIHtcbiAgcGFkZGluZzogMXJlbTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGZvbnQtc2l6ZTogODUlO1xuICBsaW5lLWhlaWdodDogMS40NTtcbiAgY29sb3I6ICMxZjIzMjg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmNmY4ZmE7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cblxuLm1hcmtkb3duLWJvZHkgcHJlIGNvZGUsXG4ubWFya2Rvd24tYm9keSBwcmUgdHQge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbiAgYm9yZGVyOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSAuY3N2LWRhdGEgdGQsXG4ubWFya2Rvd24tYm9keSAuY3N2LWRhdGEgdGgge1xuICBwYWRkaW5nOiA1cHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5jc3YtZGF0YSAuYmxvYi1udW0ge1xuICBwYWRkaW5nOiAxMHB4IDAuNXJlbSA5cHg7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBib3JkZXI6IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5jc3YtZGF0YSB0ciB7XG4gIGJvcmRlci10b3A6IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5jc3YtZGF0YSB0aCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGJhY2tncm91bmQ6ICNmNmY4ZmE7XG4gIGJvcmRlci10b3A6IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IFtkYXRhLWZvb3Rub3RlLXJlZl06OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiW1wiO1xufVxuXG4ubWFya2Rvd24tYm9keSBbZGF0YS1mb290bm90ZS1yZWZdOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXVwiO1xufVxuXG4ubWFya2Rvd24tYm9keSAuZm9vdG5vdGVzIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogIzU5NjM2ZTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkMWQ5ZTA7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5mb290bm90ZXMgb2wge1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IC5mb290bm90ZXMgb2wgdWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgbWFyZ2luLXRvcDogMXJlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmZvb3Rub3RlcyBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmZvb3Rub3RlcyBsaTp0YXJnZXQ6OmJlZm9yZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiBjYWxjKDAuNXJlbSotMSk7XG4gIHJpZ2h0OiBjYWxjKDAuNXJlbSotMSk7XG4gIGJvdHRvbTogY2FsYygwLjVyZW0qLTEpO1xuICBsZWZ0OiBjYWxjKDEuNXJlbSotMSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBjb250ZW50OiBcIlwiO1xuICBib3JkZXI6IDJweCBzb2xpZCAjMDk2OWRhO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5mb290bm90ZXMgbGk6dGFyZ2V0IHtcbiAgY29sb3I6ICMxZjIzMjg7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5mb290bm90ZXMgLmRhdGEtZm9vdG5vdGUtYmFja3JlZiBnLWVtb2ppIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLWMge1xuICBjb2xvcjogIzU5NjM2ZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLWMxLFxuLm1hcmtkb3duLWJvZHkgLnBsLXMgLnBsLXYge1xuICBjb2xvcjogIzA1NTBhZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLWUsXG4ubWFya2Rvd24tYm9keSAucGwtZW4ge1xuICBjb2xvcjogIzY2MzliYTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLXNtaSxcbi5tYXJrZG93bi1ib2R5IC5wbC1zIC5wbC1zMSB7XG4gIGNvbG9yOiAjMWYyMzI4O1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtZW50IHtcbiAgY29sb3I6ICMwNTUwYWU7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1rIHtcbiAgY29sb3I6ICNjZjIyMmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1zLFxuLm1hcmtkb3duLWJvZHkgLnBsLXBkcyxcbi5tYXJrZG93bi1ib2R5IC5wbC1zIC5wbC1wc2UgLnBsLXMxLFxuLm1hcmtkb3duLWJvZHkgLnBsLXNyLFxuLm1hcmtkb3duLWJvZHkgLnBsLXNyIC5wbC1jY2UsXG4ubWFya2Rvd24tYm9keSAucGwtc3IgLnBsLXNyZSxcbi5tYXJrZG93bi1ib2R5IC5wbC1zciAucGwtc3JhIHtcbiAgY29sb3I6ICMwYTMwNjk7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC12LFxuLm1hcmtkb3duLWJvZHkgLnBsLXNtdyB7XG4gIGNvbG9yOiAjOTUzODAwO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtYnUge1xuICBjb2xvcjogIzgyMDcxZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLWlpIHtcbiAgY29sb3I6IHZhcigtLWZnQ29sb3ItZGFuZ2VyKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmdDb2xvci1kYW5nZXItbXV0ZWQpO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtYzIge1xuICBjb2xvcjogI2Y2ZjhmYTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NmMjIyZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLXNyIC5wbC1jY2Uge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICMxMTYzMjk7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1tbCB7XG4gIGNvbG9yOiAjM2IyMzAwO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtbWgsXG4ubWFya2Rvd24tYm9keSAucGwtbWggLnBsLWVuLFxuLm1hcmtkb3duLWJvZHkgLnBsLW1zIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjMDU1MGFlO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtbWkge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGNvbG9yOiAjMWYyMzI4O1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtbWIge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICMxZjIzMjg7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1tZCB7XG4gIGNvbG9yOiAjODIwNzFlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZlYmU5O1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtbWkxIHtcbiAgY29sb3I6ICMxMTYzMjk7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkYWZiZTE7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1tYyB7XG4gIGNvbG9yOiAjOTUzODAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkOGI1O1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtbWkyIHtcbiAgY29sb3I6ICNkMWQ5ZTA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwNTUwYWU7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1tZHIge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICM4MjUwZGY7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1iYSB7XG4gIGNvbG9yOiAjNTk2MzZlO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtc2cge1xuICBjb2xvcjogIzgxOGI5ODtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLWNvcmwge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgY29sb3I6ICMwYTMwNjk7XG59XG5cbi5tYXJrZG93bi1ib2R5IFtyb2xlPWJ1dHRvbl06Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSxcbi5tYXJrZG93bi1ib2R5IFtyb2xlPXRhYnBhbmVsXVt0YWJpbmRleD1cIjBcIl06Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSxcbi5tYXJrZG93bi1ib2R5IGJ1dHRvbjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpLFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpLFxuLm1hcmtkb3duLWJvZHkgYTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgb3V0bGluZTogbm9uZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgW3RhYmluZGV4PVwiMFwiXTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpLFxuLm1hcmtkb3duLWJvZHkgZGV0YWlscy1kaWFsb2c6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IGctZW1vamkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1pbi13aWR0aDogMWNoO1xuICBmb250LWZhbWlseTogXCJBcHBsZSBDb2xvciBFbW9qaVwiLFwiU2Vnb2UgVUkgRW1vamlcIixcIlNlZ29lIFVJIFN5bWJvbFwiO1xuICBmb250LXNpemU6IDFlbTtcbiAgZm9udC1zdHlsZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB2ZXJ0aWNhbC1hbGlnbjogLTAuMDc1ZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IGctZW1vamkgaW1nIHtcbiAgd2lkdGg6IDFlbTtcbiAgaGVpZ2h0OiAxZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IGE6aGFzKD5wLD5kaXYsPnByZSw+YmxvY2txdW90ZSkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLm1hcmtkb3duLWJvZHkgYTpoYXMoPnAsPmRpdiw+cHJlLD5ibG9ja3F1b3RlKTpub3QoOmhhcyguc25pcHBldC1jbGlwYm9hcmQtY29udGVudCw+cHJlKSkge1xuICB3aWR0aDogZml0LWNvbnRlbnQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IGE6aGFzKD5wLD5kaXYsPnByZSw+YmxvY2txdW90ZSk6aGFzKC5zbmlwcGV0LWNsaXBib2FyZC1jb250ZW50LD5wcmUpOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYm9yZGVyQ29sb3ItYWNjZW50LWVtcGhhc2lzKTtcbiAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnRhc2stbGlzdC1pdGVtIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSAudGFzay1saXN0LWl0ZW0gbGFiZWwge1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4ubWFya2Rvd24tYm9keSAudGFzay1saXN0LWl0ZW0uZW5hYmxlZCBsYWJlbCB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnRhc2stbGlzdC1pdGVtKy50YXNrLWxpc3QtaXRlbSB7XG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IC50YXNrLWxpc3QtaXRlbSAuaGFuZGxlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnRhc2stbGlzdC1pdGVtLWNoZWNrYm94IHtcbiAgbWFyZ2luOiAwIC4yZW0gLjI1ZW0gLTEuNGVtO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubWFya2Rvd24tYm9keSB1bDpkaXIocnRsKSAudGFzay1saXN0LWl0ZW0tY2hlY2tib3gge1xuICBtYXJnaW46IDAgLTEuNmVtIC4yNWVtIC4yZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IG9sOmRpcihydGwpIC50YXNrLWxpc3QtaXRlbS1jaGVja2JveCB7XG4gIG1hcmdpbjogMCAtMS42ZW0gLjI1ZW0gLjJlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmNvbnRhaW5zLXRhc2stbGlzdDpob3ZlciAudGFzay1saXN0LWl0ZW0tY29udmVydC1jb250YWluZXIsXG4ubWFya2Rvd24tYm9keSAuY29udGFpbnMtdGFzay1saXN0OmZvY3VzLXdpdGhpbiAudGFzay1saXN0LWl0ZW0tY29udmVydC1jb250YWluZXIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IGF1dG87XG4gIGhlaWdodDogMjRweDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIGNsaXAtcGF0aDogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgOjotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3Ige1xuICBmaWx0ZXI6IGludmVydCg1MCUpO1xufVxuXG4ubWFya2Rvd24tYm9keSAubWFya2Rvd24tYWxlcnQge1xuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGJvcmRlci1sZWZ0OiAuMjVlbSBzb2xpZCAjZDFkOWUwO1xufVxuXG4ubWFya2Rvd24tYm9keSAubWFya2Rvd24tYWxlcnQ+OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0PjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0IC5tYXJrZG93bi1hbGVydC10aXRsZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG4ubWFya2Rvd24tYm9keSAubWFya2Rvd24tYWxlcnQubWFya2Rvd24tYWxlcnQtbm90ZSB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjMDk2OWRhO1xufVxuXG4ubWFya2Rvd24tYm9keSAubWFya2Rvd24tYWxlcnQubWFya2Rvd24tYWxlcnQtbm90ZSAubWFya2Rvd24tYWxlcnQtdGl0bGUge1xuICBjb2xvcjogIzA5NjlkYTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0Lm1hcmtkb3duLWFsZXJ0LWltcG9ydGFudCB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjODI1MGRmO1xufVxuXG4ubWFya2Rvd24tYm9keSAubWFya2Rvd24tYWxlcnQubWFya2Rvd24tYWxlcnQtaW1wb3J0YW50IC5tYXJrZG93bi1hbGVydC10aXRsZSB7XG4gIGNvbG9yOiAjODI1MGRmO1xufVxuXG4ubWFya2Rvd24tYm9keSAubWFya2Rvd24tYWxlcnQubWFya2Rvd24tYWxlcnQtd2FybmluZyB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjOWE2NzAwO1xufVxuXG4ubWFya2Rvd24tYm9keSAubWFya2Rvd24tYWxlcnQubWFya2Rvd24tYWxlcnQtd2FybmluZyAubWFya2Rvd24tYWxlcnQtdGl0bGUge1xuICBjb2xvcjogIzlhNjcwMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0Lm1hcmtkb3duLWFsZXJ0LXRpcCB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjMWE3ZjM3O1xufVxuXG4ubWFya2Rvd24tYm9keSAubWFya2Rvd24tYWxlcnQubWFya2Rvd24tYWxlcnQtdGlwIC5tYXJrZG93bi1hbGVydC10aXRsZSB7XG4gIGNvbG9yOiAjMWE3ZjM3O1xufVxuXG4ubWFya2Rvd24tYm9keSAubWFya2Rvd24tYWxlcnQubWFya2Rvd24tYWxlcnQtY2F1dGlvbiB7XG4gIGJvcmRlci1sZWZ0LWNvbG9yOiAjY2YyMjJlO1xufVxuXG4ubWFya2Rvd24tYm9keSAubWFya2Rvd24tYWxlcnQubWFya2Rvd24tYWxlcnQtY2F1dGlvbiAubWFya2Rvd24tYWxlcnQtdGl0bGUge1xuICBjb2xvcjogI2QxMjQyZjtcbn1cblxuLm1hcmtkb3duLWJvZHk+KjpmaXJzdC1jaGlsZD4uaGVhZGluZy1lbGVtZW50OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xufVxuXG4ubWFya2Rvd24tYm9keSAuaGlnaGxpZ2h0IHByZTpoYXMoKy56ZXJvY2xpcGJvYXJkLWNvbnRhaW5lcikge1xuICBtaW4taGVpZ2h0OiA1MnB4O1xufVxuXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=*/