/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/.pnpm/css-loader@7.1.4_webpack@5.109.2/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../node_modules/.pnpm/postcss-loader@8.2.1_@typescript+typescript6@6.0.2_postcss@8.5.26_webpack@5.109.2/node_modules/postcss-loader/dist/cjs.js??postcss!./res/themes/dark/css/dark.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{

/* 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{

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

/* Nunito and Inter 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. */

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

/**
 * 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
 */

/* Reused Figma non-compound colors */
/* ******************** */
/* ******************** */

/* Theme specific colors */
/* ******************** */
/* ******************** */

/* Colors that aren't in Figma and are theme specific - we need to get rid of these */
/* ******************** */
/* ******************** */

/* Colors that aren't in Figma - we need to get rid of these */
/* ******************** */
/* ******************** */

/* Blockquote */
/* ******************** */
/* ******************** */

/* Tooltip */
/* ******************** */
/* ******************** */

/* Widget */
/* ******************** */
/* ******************** */

/* Menu */
/* ******************** */
/* ******************** */

/* Settings */
/* ******************** */
/* ******************** */

/* Room */
/* ******************** */
/* ******************** */

/* RoomHeader */
/* ******************** */
/* ******************** */

/* Rich-text-editor */
/* ******************** */
/* ******************** */

/* Presence */
/* ******************** */
/* not using a compound color here for now as we want to have the same color in
   light and dark theme. Until we have a non-symetrical token for it, let's keep
   it hardcoded to the following value */
/* ******************** */

/* Inputs */
/* ******************** */
/* ******************** */

/* Dialog */
/* ******************** */
/* ******************** */

/* ImageBody */
/* ******************** */
/* ******************** */

/* e2e */
/* ******************** */
/* ******************** */

/* Tabbed views */
/* ******************** */
/* ******************** */

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

/* Toggle switch */
/* ******************** */
/* ******************** */

/* Authpage */
/* ******************** */
/* background colour of the modal, when the background is blurred */
/* ******************** */

/* Message action bar */
/* ******************** */
/* ******************** */

/* Reaction row */
/* ******************** */
/* ******************** */

/* Voice messages */
/* ******************** */
/* These two don't change between themes. They are the $alert, but we don't want */
/* custom themes to affect them by accident. */
/* ******************** */

/* Bubble tiles */
/* ******************** */
/* ******************** */

/* Lightbox */
/* ******************** */
/* not using a compound color here for now as we want to have the same color in
   light and dark theme. Until we have a non-symetrical token for it, let's keep
   it hardcoded to the following value */
/* ******************** */

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

/* All of these are from dark theme */
/* This one is from light theme */
/* ******************** */

/* One-off colors */
/* ******************** */
/* ******************** */

/* One-off global colors - these apply to both themes */
/* ******************** */
/* ******************** */

/* blur amounts for left left panel (only for element theme) */
/* ******************** */
:root {
    --lp-background-blur: 40px;
}

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

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

body {
    color-scheme: light;
}

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

/* diff highlight colors */
/* ******************** */
.hljs-addition {
    background: var(--cpd-color-green-500);
}

.hljs-deletion {
    background: var(--cpd-color-red-500);
}

/* ******************** */
}
@layer app-web{
/* Colors from Figma Compound https://www.figma.com/file/X4XTH9iS2KGJ2wFKDqkyed/Compound?node-id=559%3A741 */
/* ******************** */

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

/**
 * 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
 */

/* Reused Figma non-compound colors */
/* ******************** */
/* ******************** */

/* Theme specific colors */
/* ******************** */
/* ******************** */

/* Colors that aren't in Figma and are theme specific - we need to get rid of these */
/* ******************** */
/* ******************** */

/* Colors that aren't in Figma - we need to get rid of these */
/* ******************** */
/* ******************** */

/* Tooltip */
/* ******************** */
/* ******************** */

/* Widget */
/* ******************** */
/* ******************** */

/* Menu */
/* ******************** */
/* ******************** */

/* Settings */
/* ******************** */
/* ******************** */

/* Room */
/* ******************** */
/* ******************** */

/* RoomHeader */
/* ******************** */
/* ******************** */

/* Rich-text-editor */
/* ******************** */
/* ******************** */

/* Inputs */
/* ******************** */
/* ******************** */

/* Dialog */
/* ******************** */
/* ******************** */

/* Tabbed views */
/* ******************** */
/* ******************** */

/* Buttons */
/* ******************** */
/* ******************** */

/* Toggle switch */
/* ******************** */
/* ******************** */

/* Authpage */
/* ******************** */
/* background colour of the modal, when the background is blurred */
/* ******************** */

/* Message action bar */
/* ******************** */
/* ******************** */

/* Reaction row */
/* ******************** */
/* ******************** */

/* Voice messages */
/* ******************** */
/* ******************** */

/* Bubble tiles */
/* ******************** */
/* ******************** */

/* Lightbox */
/* ******************** */
/* ******************** */

/* VoIP */
/* ******************** */
/* ******************** */

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

/* Location sharing */
/* ******************** */
.maplibregl-ctrl-attrib-button {
    color: var(--cpd-color-bg-canvas-default);
}
/* ******************** */

/* One-off colors */
/* ******************** */
/* ******************** */

/* blur amounts for left left panel (only for element theme) */
/* ******************** */
:root {
    --lp-background-blur: 45px;
}
/* ******************** */

body {
    color-scheme: dark;
}

/* Nasty hacks to apply a filter to arbitrary monochrome artwork to make it */
/* better match the theme.  Typically applied to dark grey 'off' buttons or */
/* light grey 'on' buttons. */
/* ******************** */
.mx_filterFlipColor {
    -webkit-filter: invert(1);
            filter: invert(1);
}
/* ******************** */

/* markdown overrides */
/* ******************** */
        .mx_EventTile_content .markdown-body table tr {
            background-color: #000000;
        }

        .mx_EventTile_content .markdown-body table tr:nth-child(2n) {
            background-color: #080808;
        }
/* ******************** */

/* diff highlight colors */
/* ******************** */
.hljs-tag {
    color: inherit; /* Without this they'd be weirdly blue which doesn't match the theme */
}

.hljs-addition {
    background: #1a4b59;
}

.hljs-deletion {
    background: #53232a;
}
/* ******************** */

/* Splash Page Gradient */
.mx_SplashPage::before {
    background-image:
        radial-gradient(53.85% 66.75% at 87.55% 0%, hsla(0deg, 0%, 11%, 0.15) 0%, hsla(250deg, 100%, 88%, 0) 100%),
        radial-gradient(41.93% 41.93% at 0% 0%, hsla(0deg, 0%, 38%, 0.28) 0%, hsla(250deg, 100%, 88%, 0) 100%),
        radial-gradient(100% 100% at 0% 0%, hsla(250deg, 100%, 88%, 0.3) 0%, hsla(0deg, 100%, 86%, 0) 100%),
        radial-gradient(106.35% 96.26% at 100% 0%, hsla(25deg, 100%, 88%, 0.4) 0%, hsla(167deg, 76%, 82%, 0) 100%) !important;
}
}
@layer app-web{

/* sidebar blurred avatar background */

/* if backdrop-filter is supported, */
/* set the user avatar (if any) as a background so */
/* it can be blurred by the tag panel and room list */

.mx_RoomSublist_showNButton {
    background-color: transparent !important;
}

/*
    data-kind is used by the Compound <Link> component and therefore does not override them.
    This is horrible, but will get less horrible when links in the app are replaced with
    <Link>.
*/
    a:not([data-kind]):hover,
    a:not([data-kind]):link,
    a:not([data-kind]):visited {
        text-decoration: none;
    }
}
@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.85;
    }
}

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

@-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 */

    /* 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: "Inter", 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(--cpd-color-bg-canvas-default);
    color: var(--cpd-color-text-primary);
    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: "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: var(--cpd-color-text-critical-primary);
}

.text-success {
    color: var(--cpd-color-text-action-accent);
}

.text-muted {
    color: #91a1c0;
}

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

.text-secondary {
    color: var(--cpd-color-text-secondary);
}

.mx_Verified {
    color: var(--cpd-color-icon-success-primary);
}

.mx_Untrusted {
    color: var(--cpd-color-icon-critical-primary);
}

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(--cpd-color-text-link-external);
}

: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(--cpd-color-text-primary);
}

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

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(--cpd-color-text-primary);
    }

    .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: #61708b;
        border-radius: 4px;
        border: 1px solid var(--cpd-color-gray-300);
        /* 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: var(--cpd-color-text-action-accent);
}

#mx_theme_secondaryAccentColor {
    color: #f2f5f8;
}

.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(--cpd-color-bg-canvas-default);
    color: #c8c8cd;
    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: "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji" !important;
            background-color: #2a3039;
        }

        /* 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(--cpd-color-text-link-external);
        }

        .mx_Dialog .markdown-body blockquote {
            border-left: 2px solid var(--cpd-color-border-interactive-primary);
            color: var(--cpd-color-text-secondary);
            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: #00000080;
    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.85;
        background-color: #000000;
        -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(--cpd-color-text-primary);
    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: var(--cpd-color-text-critical-primary);
    }

.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(--cpd-color-text-primary);
    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 style are a mess: buttons that happen to appear in dialogs get special styles applied
 * to them that no button anywhere else in the app gets by default. In practice, buttons in other places
 * in the app look the same by being AccessibleButtons, or possibly by having explict button classes.
 * We should go through and have one consistent set of styles for buttons throughout the app.
 * For now, I am duplicating the selectors here for mx_Dialog and mx_DialogButtons.
 */
.mx_Dialog
    button:not(
        .mx_EncryptionUserSettingsTab button,
        .mx_EncryptionCard button,
        .mx_UserProfileSettings button,
        .mx_ShareDialog button,
        .mx_UnpinAllDialog button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_Dialog_nonDialogButton,
        .mx_AccessibleButton,
        .mx_IdentityServerPicker button,
        .mx_AccessSecretStorageDialog button,
        .mx_InviteDialog_section button,
        .mx_InviteDialog_editor button,
        .mx_UnknownIdentityUsersWarningDialog button,
        .mx_ThreadActionBar button,
        .mx_HistoryActionBar button,
        [data-kind],
        [class|="maplibregl"]
    ),
.mx_Dialog_buttons button:not(.mx_Dialog_nonDialogButton, .mx_AccessibleButton, [data-kind]),
.mx_Dialog input[type="submit"],
.mx_Dialog_buttons input[type="submit"] {
    /* align images in buttons (eg spinners) */
    vertical-align: middle;
    border: 0px;
    border-radius: 24px;
    font: var(--cpd-font-body-md-regular);
    color: var(--cpd-color-bg-canvas-default);
    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:not(
        .mx_EncryptionUserSettingsTab button,
        .mx_EncryptionCard button,
        .mx_UserProfileSettings button,
        .mx_ShareDialog button,
        .mx_UnpinAllDialog button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_Dialog_nonDialogButton,
        .mx_AccessibleButton,
        .mx_IdentityServerPicker button,
        .mx_AccessSecretStorageDialog button,
        .mx_InviteDialog_section button,
        .mx_InviteDialog_editor button,
        .mx_UnknownIdentityUsersWarningDialog button,
        .mx_ThreadActionBar button,
        .mx_HistoryActionBar button,
        [data-kind],
        [class|="maplibregl"]
    ):not(:focus-visible), .mx_Dialog_buttons button:not(.mx_Dialog_nonDialogButton, .mx_AccessibleButton, [data-kind]):not(:focus-visible), .mx_Dialog input[type="submit"]:not(:focus-visible), .mx_Dialog_buttons input[type="submit"]:not(:focus-visible) {
        outline: none;
    }
    .mx_Dialog
    button:not(
        .mx_EncryptionUserSettingsTab button,
        .mx_EncryptionCard button,
        .mx_UserProfileSettings button,
        .mx_ShareDialog button,
        .mx_UnpinAllDialog button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_Dialog_nonDialogButton,
        .mx_AccessibleButton,
        .mx_IdentityServerPicker button,
        .mx_AccessSecretStorageDialog button,
        .mx_InviteDialog_section button,
        .mx_InviteDialog_editor button,
        .mx_UnknownIdentityUsersWarningDialog button,
        .mx_ThreadActionBar button,
        .mx_HistoryActionBar button,
        [data-kind],
        [class|="maplibregl"]
    ),
.mx_Dialog_buttons button:not(.mx_Dialog_nonDialogButton, .mx_AccessibleButton, [data-kind]),
.mx_Dialog input[type="submit"],
.mx_Dialog_buttons input[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:not(
        .mx_Dialog_nonDialogButton,
        [class|="maplibregl"],
        .mx_AccessibleButton,
        .mx_UserProfileSettings button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_UnpinAllDialog button,
        .mx_ShareDialog button,
        .mx_EncryptionUserSettingsTab button,
        .mx_UnknownIdentityUsersWarningDialog button,
        [data-kind]
    ):last-child {
    margin-right: 0px;
}

.mx_Dialog
    button:not(
        .mx_Dialog_nonDialogButton,
        [class|="maplibregl"],
        .mx_AccessibleButton,
        .mx_UserProfileSettings button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_UnpinAllDialog button,
        .mx_ShareDialog button,
        .mx_EncryptionUserSettingsTab button,
        .mx_InviteDialog_section button,
        .mx_InviteDialog_editor button,
        .mx_UnknownIdentityUsersWarningDialog button,
        [data-kind]
    ):focus,
.mx_Dialog input[type="submit"]:focus,
.mx_Dialog_buttons button:not(.mx_Dialog_nonDialogButton, .mx_AccessibleButton, [data-kind]):focus,
.mx_Dialog_buttons input[type="submit"]:focus {
    -webkit-filter: brightness(105%);
            filter: brightness(105%);
}

.mx_Dialog button.mx_Dialog_primary:not(.mx_Dialog_nonDialogButton, [class|="maplibregl"], [data-kind]),
.mx_Dialog input[type="submit"].mx_Dialog_primary,
.mx_Dialog_buttons
    button:not(
        .mx_Dialog_nonDialogButton,
        .mx_AccessibleButton,
        .cancel,
        .mx_UserProfileSettings button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_UnpinAllDialog button,
        .mx_ShareDialog button,
        .mx_EncryptionUserSettingsTab button,
        .mx_UnknownIdentityUsersWarningDialog button,
        [data-kind]
    ),
.mx_Dialog_buttons input[type="submit"].mx_Dialog_primary {
    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.danger:not(.mx_Dialog_nonDialogButton, [class|="maplibregl"]),
.mx_Dialog input[type="submit"].danger,
.mx_Dialog_buttons
    button.danger:not(
        .mx_Dialog_nonDialogButton,
        .mx_AccessibleButton,
        .mx_UserProfileSettings button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_UnpinAllDialog button,
        .mx_ShareDialog button,
        .mx_EncryptionUserSettingsTab button,
        .mx_UnknownIdentityUsersWarningDialog button
    ),
.mx_Dialog_buttons input[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.warning:not(.mx_Dialog_nonDialogButton, [class|="maplibregl"]),
.mx_Dialog input[type="submit"].warning {
    border: solid 1px var(--cpd-color-border-critical-subtle);
    color: var(--cpd-color-text-critical-primary);
}

.mx_Dialog
    button:not(
        .mx_Dialog_nonDialogButton,
        [class|="maplibregl"],
        .mx_AccessibleButton,
        .mx_UserProfileSettings button,
        .mx_ThemeChoicePanel_CustomTheme button,
        .mx_UnpinAllDialog button,
        .mx_ShareDialog button,
        .mx_EncryptionUserSettingsTab button,
        .mx_UnknownIdentityUsersWarningDialog button,
        [data-kind]
    ):disabled,
.mx_Dialog input[type="submit"]:disabled,
.mx_Dialog_buttons button:not(.mx_Dialog_nonDialogButton, .mx_AccessibleButton):disabled,
.mx_Dialog_buttons input[type="submit"]:disabled {
    background-color: #c8c8cd;
    border: solid 1px #c8c8cd;
    opacity: 0.7;
}

.mx_Dialog_buttons button.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;
}

/* 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: var(--cpd-color-bg-canvas-default);
    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 rgba(231, 231, 231, 0.2);
    padding: 9px;
    color: var(--cpd-color-text-primary);
    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; /* enable the width setting below */
    width: 46px;
    width: var(--MessageTimestamp-width);
}
}
@layer app-web{
/* Auto-generated by scripts/extract-brand-colors.py from /root/metmet/hydrogen-html/logo.png — do not edit by hand. */
:root {
    --metmet-brand-primary: #028e91;
    --metmet-brand-secondary: #3ac6cb;
}
}
@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 var(--cpd-color-bg-subtle-secondary);

    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: var(--cpd-color-gray-800);
    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(--cpd-color-gray-800);
}

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

.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: var(--cpd-color-text-secondary);
}

.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(--cpd-color-bg-subtle-secondary);
    -webkit-box-shadow: 4px 4px 12px 0 var(--cpd-color-bg-canvas-default);
            box-shadow: 4px 4px 12px 0 var(--cpd-color-bg-canvas-default);
}
}
@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: var(--cpd-color-text-primary);
        }

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

.mx_BeaconViewDialog_mapFallbackMessage {
    color: var(--cpd-color-text-secondary);
    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(--cpd-color-bg-canvas-default);
    border-radius: 8px;
    -webkit-box-shadow: 4px 4px 12px 0 var(--cpd-color-bg-canvas-default);
            box-shadow: 4px 4px 12px 0 var(--cpd-color-bg-canvas-default);

    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(--cpd-color-bg-canvas-default);
    -webkit-box-shadow: 0px 4px 4px var(--cpd-color-bg-canvas-default);
            box-shadow: 0px 4px 4px var(--cpd-color-bg-canvas-default);
}

    .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(--cpd-color-text-primary);
    }

        .mx_DialogSidebar .mx_DialogSidebar_header .mx_DialogSidebar_closeButtonIcon {
            color: var(--cpd-color-gray-800);
        }

    .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: 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_LeftPanelLiveShareWarning {
    width: 100%;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;

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

    background-color: var(--cpd-color-text-action-accent);
    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: var(--cpd-color-text-critical-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_LiveTimeRemaining {
    color: var(--cpd-color-text-secondary);
    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_EventTile[data-layout="bubble"] .mx_OwnBeaconStatus_button {
    /* align to top to make room for timestamp */
    /* in bubble view */
    -ms-flex-item-align: start;
        align-self: start;
}

.mx_OwnBeaconStatus_destructiveButton {
    /* override button link_inline styles */
    color: var(--cpd-color-text-critical-primary) !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: var(--cpd-color-text-secondary);
}

/* 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: var(--cpd-color-text-secondary);
            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: var(--cpd-color-text-critical-primary);
    border-color: var(--cpd-color-text-critical-primary);
}

.mx_StyledLiveBeaconIcon.mx_StyledLiveBeaconIcon_idle {
    background-color: var(--cpd-color-gray-600);
    border-color: var(--cpd-color-gray-600);
}
}
@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(--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(--cpd-color-text-primary);
}

.mx_PollListItem_icon {
    height: 14px;
    width: 14px;
    color: var(--cpd-color-gray-600);
    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(--cpd-color-text-primary);
    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: var(--cpd-color-gray-600);
    padding-left: var(--cpd-space-2x);
}

.mx_PollListItemEnded_date {
    font-size: 0.75rem;
    color: var(--cpd-color-text-secondary);
}

.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: var(--cpd-color-text-action-accent);
            }
}
@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 var(--cpd-color-gray-400);
        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: var(--cpd-color-bg-subtle-secondary);
    }

        .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: var(--cpd-color-text-secondary);
        border-radius: 4px;
    }

        .mx_FilterDropdown .mx_Dropdown_input:focus,
        .mx_FilterDropdown .mx_Dropdown_input:hover {
            background-color: var(--cpd-color-gray-400);
            border-color: var(--cpd-color-gray-400);
        }

    .mx_FilterDropdown .mx_Dropdown_arrow {
        color: var(--cpd-color-text-secondary);
    }

.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(--cpd-color-text-primary);
}

.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: var(--cpd-color-text-secondary);
    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(--cpd-color-text-primary);
}
    .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: var(--cpd-color-text-secondary);
            }

        .mx_FilterTabGroup input[type="radio"]:checked + span {
            color: var(--cpd-color-text-action-accent);
            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(--cpd-color-text-secondary);
    --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(--cpd-color-bg-subtle-secondary);
    font-size: 0.75rem;
    line-height: 1rem;

    --mx-map-error-icon-color: var(--cpd-color-text-critical-primary);
    --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: var(--cpd-color-bg-subtle-secondary);
}

.mx_MapFallback_bg {
    position: absolute;
    top: 0;
    left: 0;
    min-height: 100%;
    min-width: 100%;
    color: var(--cpd-color-gray-400);
    z-index: -1;

    pointer-events: none;
}

.mx_MapFallback_icon {
    width: 65px;
    margin-bottom: var(--cpd-space-4x);
    color: var(--cpd-color-gray-600);
}
}
@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: var(--cpd-color-text-action-accent);
}

.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: var(--cpd-color-gray-400);
    opacity: 0.8;
    text-align: center;
    color: var(--cpd-color-text-secondary);
    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(--cpd-color-text-primary);
}

    .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 var(--cpd-color-gray-400);
            border-radius: 8px;

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

            .mx_ShareType .mx_ShareType_wrapper_options .mx_ShareType_option:hover,
            .mx_ShareType .mx_ShareType_wrapper_options .mx_ShareType_option:focus {
                border-color: var(--cpd-color-text-action-accent);
            }

.mx_ShareType_badge {
    height: 60px;
    width: 60px;
    margin-bottom: var(--cpd-space-5x);
    background-color: var(--cpd-color-text-action-accent);
    border-radius: 50%;
    border: 14px solid var(--cpd-color-text-action-accent);
    /* 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: var(--cpd-color-text-action-accent);
    }

    .mx_ShareType_option-icon.Pin {
        border-color: var(--cpd-color-text-action-accent);
        background-color: var(--cpd-color-text-action-accent);
        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(--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(--cpd-color-text-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_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(--cpd-color-bg-subtle-secondary);
    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: var(--cpd-color-gray-800);
    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;
}

.mx_ReplyTile .mx_MBeaconBody {
    /* Prevent clicking a beacon within a reply */
    pointer-events: none;
}
}
@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 var(--cpd-color-gray-400);
    border-radius: 8px;
    padding: 6px 12px;
    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: var(--cpd-color-text-secondary);
    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: var(--cpd-color-bg-subtle-secondary);
    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: var(--cpd-color-text-critical-primary);
    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 var(--cpd-color-gray-400);
}

.mx_DeviceDetails_section {
    padding-bottom: var(--cpd-space-5x);
    margin-bottom: var(--cpd-space-5x);
    border-bottom: 1px solid var(--cpd-color-gray-400);

    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: var(--cpd-color-text-secondary);
        line-height: 0.875rem;
        margin-top: var(--cpd-space-1x);
    }

.mx_DeviceDetails_metadataTable {
    font: var(--cpd-font-body-sm-regular);
    color: var(--cpd-color-text-secondary);

    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(--cpd-color-text-primary);
    }

.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(--cpd-color-icon-tertiary);

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

    .mx_DeviceExpandDetailsButton:hover {
        background: var(--cpd-color-gray-400);
    }

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

    background: var(--cpd-color-bg-subtle-secondary);
}

    .mx_DeviceExpandDetailsButton.mx_DeviceExpandDetailsButton_expanded:hover {
        background: var(--cpd-color-gray-400);
    }

.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 var(--cpd-color-gray-400);
    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: var(--cpd-color-icon-success-primary);
        --background-color: var(--cpd-color-green-300);
    }

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

    .mx_DeviceSecurityCard_icon.Inactive {
        --icon-color: var(--cpd-color-text-secondary);
        --background-color: var(--cpd-color-bg-subtle-secondary);
    }

.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: var(--cpd-color-text-secondary);
}

.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: var(--cpd-color-text-secondary);
}

.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(--cpd-color-bg-subtle-secondary);
    --icon-color: var(--cpd-color-text-secondary);

    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: var(--cpd-color-text-secondary);
    color: var(--icon-color);
    background-color: var(--background-color);
}

.mx_DeviceTypeIcon_selected .mx_DeviceTypeIcon_deviceIconWrapper {
    --background-color: var(--cpd-color-text-primary);
    --icon-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 var(--cpd-color-gray-400);
    border-radius: 50%;
    background-color: var(--cpd-color-bg-canvas-default);

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

    .mx_DeviceTypeIcon_verificationIcon.verified {
        --v-icon-color: var(--cpd-color-icon-success-primary);
    }

    .mx_DeviceTypeIcon_verificationIcon.unverified {
        --v-icon-color: var(--cpd-color-icon-critical-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_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(--cpd-color-bg-subtle-secondary);
    border-radius: 8px;
    color: var(--cpd-color-text-secondary);
}

    /* 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: var(--cpd-color-text-secondary);
}

.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: var(--cpd-color-text-action-accent);
    }
        .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: var(--cpd-color-text-secondary);
    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: var(--cpd-color-text-secondary);
}

    .mx_Caption.mx_Caption_error {
        color: var(--cpd-color-text-critical-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.
*/

/*
 * Compound icon

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

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

.mx_Icon_accent {
    color: var(--cpd-color-text-action-accent);
}

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

.mx_Icon_alert {
    color: var(--cpd-color-text-critical-primary);
}

.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: var(--cpd-color-text-secondary);
        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: rgba(255, 255, 255, 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: rgba(255, 255, 255, 0.2);
}

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

    .mx_AutoHideScrollbar:hover::-webkit-scrollbar-thumb {
        background-color: rgba(255, 255, 255, 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: var(--cpd-color-text-secondary);
}

.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 rgba(231, 231, 231, 0.2);
    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(--cpd-color-text-primary) !important;
        font-weight: normal !important;
    }

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

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

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

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

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

.mx_AutocompleteInput_editor--focused {
    border-color: var(--cpd-color-text-link-external);
}

.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(--cpd-color-bg-canvas-default);
    border: 1px solid var(--cpd-color-text-link-external);
    border-top-color: rgba(231, 231, 231, 0.2);
    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: var(--cpd-color-gray-400);
        border-bottom-left-radius: 4px;
        border-bottom-right-radius: 4px;
    }

.mx_AutocompleteInput_suggestion--selected {
    background-color: var(--cpd-color-gray-400);
}

    .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: var(--cpd-color-text-secondary);
    font-size: 0.75rem;
}
}
@layer app-web{

.mx_CompatibilityPage {
    width: 100%;
    height: 100%;
    background-color: #e55;
}

.mx_CompatibilityPage_box {
    position: absolute;
    inset: 0;
    margin: auto;
    width: 500px;
    height: 300px;
    border: 1px solid;
    padding: 10px;
    background-color: #fcc;
}
}
@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(--cpd-color-text-primary);
    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(--cpd-color-bg-subtle-secondary);
    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(--cpd-color-bg-subtle-secondary);
    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(--cpd-color-bg-subtle-secondary);
    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(--cpd-color-bg-subtle-secondary);
    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: var(--cpd-color-text-critical-primary);
    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(--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;

    /* FIXME: rather than having EventTile's default CSS be for MessagePanel,
   we should make EventTile a base CSS class and customise it specifically
   for usage in {Message,File,Notification}Panel. */
}

    .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);
    }

    /* Overrides for the attachment body tiles */
    .mx_FilePanel .mx_EventTile {
        word-break: break-word;
        padding-top: 0;
    }

        .mx_FilePanel .mx_EventTile + .mx_EventTile {
            border-top: 1px solid var(--cpd-color-gray-400);
            padding-top: var(--cpd-space-6x);
        }

        .mx_FilePanel .mx_EventTile .mx_EventTile_line {
            -webkit-padding-start: 0;
                    padding-inline-start: 0;
        }

        .mx_FilePanel .mx_EventTile .mx_MFileBody [data-type="download"] {
            margin-top: var(--cpd-space-4x);
        }

        .mx_FilePanel .mx_EventTile .mx_ImageBody {
            gap: 0;
        }

        /* anchor link as wrapper */
        .mx_FilePanel .mx_EventTile .mx_EventTile_senderDetailsLink {
            text-decoration: none;
            margin-bottom: var(--cpd-space-1x);
            display: block;
        }

            .mx_FilePanel .mx_EventTile .mx_EventTile_senderDetailsLink .mx_EventTile_senderDetails {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                margin-top: -2px;
                gap: var(--cpd-space-2x);
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
            }

                .mx_FilePanel .mx_EventTile .mx_EventTile_senderDetailsLink .mx_EventTile_senderDetails .mx_DisambiguatedProfile {
                    color: var(--cpd-color-text-secondary); /* for ellipsis. Color of displayName and mxid is inherited */
                }

                .mx_FilePanel .mx_EventTile .mx_EventTile_senderDetailsLink .mx_EventTile_senderDetails .mx_MessageTimestamp {
                    margin-left: auto;
                }

    .mx_FilePanel .mx_EventTile_line {
        -webkit-margin-end: 0;
                margin-inline-end: 0;
        -webkit-padding-start: 0;
                padding-inline-start: 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_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: var(--cpd-color-text-secondary);
}

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

.mx_GenericDropdownMenu_button:hover,
.mx_GenericDropdownMenu_button[aria-expanded="true"] {
    background: var(--cpd-color-gray-400);
}
    .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_ContextualMenu {
        position: static;
        position: initial;

        font-size: 0.75rem;
        color: var(--cpd-color-text-secondary);
        padding-top: 10px;
        padding-bottom: 10px;

        border: 1px solid var(--cpd-color-gray-400);
        -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: var(--cpd-color-gray-400);
    }

        .mx_ContextualMenu_wrapper.mx_GenericDropdownMenu_wrapper .mx_ContextualMenu_chevron_top::after {
            content: "";
            border: inherit;
            border-bottom-color: var(--cpd-color-bg-subtle-secondary);
            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 var(--cpd-color-gray-400);
    }

    .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(--cpd-color-text-primary);
                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: #343a46;
            }

            .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(--cpd-color-text-primary);
                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: #91a1c0;
    }

    .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: var(--cpd-color-text-action-accent);
        }

            .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(--cpd-color-text-primary);
        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_MatrixToolbar {
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;

    height: 40px;
}

.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(--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(--cpd-color-text-primary);
        opacity: 0.8;
    }
}
@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;
    /* Display above any widget elements */
    z-index: 102;
}

.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: var(--cpd-color-text-secondary);
    }

    .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: var(--cpd-color-gray-600) !important;
        color: var(--cpd-color-text-primary);
    }

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

    .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: var(--cpd-color-text-secondary) !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: var(--cpd-color-text-secondary);
    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 transparent;
    padding: 10px 26px;
    color: var(--cpd-color-text-critical-primary);
    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(--cpd-color-gray-900);
        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;
    }

    .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(--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 transparent;
    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: var(--cpd-color-text-secondary);
        }

    .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(--cpd-color-text-primary);
        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: var(--cpd-color-text-critical-primary);
        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(--cpd-color-text-primary);
        }

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_roomCount > span {
            margin-left: 8px;
            font-size: 0.9375rem;
            line-height: 1.5rem;
            color: var(--cpd-color-text-secondary);
        }

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

        .mx_SpaceRoomView_landing .mx_SpaceHierarchy_subspace_toggle svg {
            width: inherit;
            height: inherit;
            color: var(--cpd-color-gray-800);
            -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: var(--cpd-color-gray-800);
                            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: var(--cpd-color-text-action-accent);
                            }

                    .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: var(--cpd-color-text-secondary);
                        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: rgba(38, 39, 43, 0.82);
                }

                    .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: rgba(38, 39, 43, 0.82);
            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: var(--cpd-color-text-secondary);
        }

    .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(--cpd-color-alpha-gray-300);
    --activeBorder-color: var(--cpd-color-text-primary);
    --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: var(--cpd-color-gray-800);
        top: 19px; /* v-align with avatar */
        right: -8px;
    }

        .mx_SpacePanel .mx_SpacePanel_toggleCollapse svg {
            height: inherit;
            width: inherit;
            display: inline-block;
            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: var(--cpd-color-gray-800);
                /* 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(--cpd-color-alpha-gray-300);
        }

            .mx_SpacePanel .mx_SpaceButton .mx_SpaceButton_icon svg {
                width: inherit;
                height: inherit;
                display: block;
                color: var(--cpd-color-text-secondary);
            }

        .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(--cpd-color-text-primary);
                -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(--cpd-color-text-primary);
            }

    .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 rgba(38, 39, 43, 0.82);
        }

        .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 rgba(38, 39, 43, 0.82);
        }
        .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: var(--cpd-color-gray-800);
        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 rgba(231, 231, 231, 0.2);
    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: var(--cpd-color-text-secondary);
    }

    .mx_SpacePillButton svg {
        position: absolute;
        content: "";
        width: 28px;
        height: 28px;
        top: 50%;
        -webkit-transform: translateY(-50%);
                transform: translateY(-50%);
        left: 22px;
        color: var(--cpd-color-gray-800);
    }

    .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(--cpd-color-text-primary);
        }
}
@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(--cpd-color-text-primary);
            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: var(--cpd-color-text-secondary);
            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: var(--cpd-color-text-critical-primary);
            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: var(--cpd-color-text-secondary);
        }

            .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: var(--cpd-color-gray-800);
                    }

        .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: var(--cpd-color-text-secondary);
            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: var(--cpd-color-text-primary);
    }

    .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: var(--cpd-color-gray-800);
        }

    .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: var(--cpd-color-text-action-accent);
    }
        .mx_TabbedView_tabsOnTop .mx_TabbedView_tabLabel_active .mx_TabbedView_tabLabel_text {
            color: var(--cpd-color-text-action-accent);
        }

.mx_TabbedView_tabLabels {
    color: var(--cpd-color-text-secondary);
}

.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: var(--cpd-color-text-secondary) !important;
        }
        .mx_ThreadsActivityCentreButton:not(.expanded):hover,
        .mx_ThreadsActivityCentreButton:not(.expanded):hover .mx_ThreadsActivityCentreButton_Icon {
            /* !important override compound */
            background-color: var(--cpd-color-gray-600) !important;
            fill: var(--cpd-color-text-primary);
        }

    .mx_ThreadsActivityCentreButton .mx_ThreadsActivityCentreButton_Icon {
        fill: var(--cpd-color-text-secondary);
    }

.mx_ThreadsActivityCentre_rows {
    overflow-y: scroll;
    /* Let some space at the top and the bottom of the pop-up */
    max-height: calc(100vh - 200px);
}

    .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreRow {
        height: 48px;
    }

        /* Make the label of the MenuItem stay on one line and truncate with ellipsis if needed */
        .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreRow > span {
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            /* Arbitrary size, keep the TAC as the wanted width */
            width: 202px;
        }

        /* Hide the notification badge on hover — compound's `nav-hint ~ *` rule would normally
         * do this, but the app-web CSS layer overrides compound-web regardless of specificity. */
        .mx_ThreadsActivityCentre_rows .mx_ThreadsActivityCentreRow:hover .mx_ThreadsActivityCentre_notificationBadge {
            display: none;
        }

.mx_ThreadsActivityCentre_emptyCaption {
    padding-left: 16px;
    padding-right: 16px;
    font-size: 13px;
}
}
@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: var(--cpd-color-bg-subtle-secondary);
        -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(--cpd-color-text-primary);
        -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;
        }

        .mx_ToastContainer .mx_Toast_toast .mx_Toast_buttons {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-pack: end;
                -ms-flex-pack: end;
                    justify-content: flex-end;
            -webkit-column-gap: var(--cpd-space-2x);
               -moz-column-gap: var(--cpd-space-2x);
                    column-gap: var(--cpd-space-2x);
        }

            .mx_ToastContainer .mx_Toast_toast .mx_Toast_buttons .mx_AccessibleButton {
                min-width: 96px;
                -webkit-box-sizing: border-box;
                        box-sizing: border-box;
            }

        .mx_ToastContainer .mx_Toast_toast .mx_Toast_description {
            max-width: 272px;
            overflow: hidden;
            text-overflow: ellipsis;
            margin: var(--cpd-space-1x) 0 11px 0;
            color: var(--cpd-color-text-secondary);
            font: var(--cpd-font-body-sm-regular);
        }

            .mx_ToastContainer .mx_Toast_toast .mx_Toast_description a {
                text-decoration: none;
            }

        .mx_ToastContainer .mx_Toast_toast .mx_Toast_deviceID {
            font-size: 0.625rem;
        }
}
@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: #91a1c0;
        align-self: center;
    }

    .mx_UploadBar .mx_UploadBar_filename {
        grid-area: filename;
        color: #91a1c0;
        position: relative;
        font-size: 0.9375rem;
        vertical-align: middle;
    }

    .mx_UploadBar .mx_UploadBar_cancel {
        grid-area: cancel;
        height: 16px;
        width: 16px;
        color: #91a1c0;
        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 var(--cpd-color-gray-400);
        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(--cpd-color-text-primary);
        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: var(--cpd-color-gray-800);
}

.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: var(--cpd-color-text-critical-primary);
        }
}
@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: var(--cpd-color-text-critical-primary);
    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(--cpd-color-text-primary);
}

    .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 var(--cpd-color-text-action-accent);
}

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_migrationProgress {
    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;
    width: 100%;
    height: 100%;
}

    .mx_LoginSplashView_migrationProgress .mx_ProgressBar {
        height: 8px;
        width: 600px;

        border-radius: 8px;
    }

        .mx_LoginSplashView_migrationProgress .mx_ProgressBar::-moz-progress-bar {
        border-radius: 8px;
    }

        .mx_LoginSplashView_migrationProgress .mx_ProgressBar::-webkit-progress-bar,
    .mx_LoginSplashView_migrationProgress .mx_ProgressBar::-webkit-progress-value {
        border-radius: 8px;
    }

.mx_LoginSplashView_splashButtons {
    text-align: center;
    width: 100%;
    position: absolute;
    bottom: 30px;
}

.mx_LoginSplashView_syncError {
    color: #f4f6fa;
    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(--cpd-color-text-primary);
    }

        .mx_Register_mainContent p.secondary {
            color: var(--cpd-color-text-secondary);
        }

    .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 (C) 2026 MetMet

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

.mx_GuestOnboarding {
    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: 100%;
    width: 100%;
    background-color: #fff;
    padding: 16px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

.mx_GuestOnboarding_card {
    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;
    text-align: center;
    max-width: 360px;
    width: 100%;
}

.mx_GuestOnboarding_logo {
    width: 88px;
    height: 88px;
    margin-bottom: 24px;
}

.mx_GuestOnboarding_title {
    font-size: 22px;
    font-weight: 700;
    color: #1a1a1a;
    margin: 0 0 8px 0;
}

.mx_GuestOnboarding_description {
    font-size: 15px;
    color: #6f6f6f;
    margin: 0 0 28px 0;
    line-height: 1.4;
}

.mx_GuestOnboarding_actions {
    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;
    gap: 12px;
}

.mx_GuestOnboarding_primaryButton {
    width: 100%;
    padding: 14px 24px;
    border-radius: 8px;
    border: none;
    background-color: #028e91;
    background-color: var(--metmet-brand-primary);
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
}

.mx_GuestOnboarding_primaryButton:hover {
    background-color: #3ac6cb;
    background-color: var(--metmet-brand-secondary);
}

.mx_GuestOnboarding_skip {
    margin-top: 20px;
    background: none;
    border: none;
    color: #9a9a9a;
    font-size: 14px;
    cursor: pointer;
    text-decoration: underline;
}

.mx_GuestOnboarding_fallback {
    margin-top: 16px;
    padding: 12px 16px;
    background-color: #f5f5f5;
    border-radius: 8px;
    font-size: 14px;
    color: #444;
    text-align: left;
}

.mx_GuestOnboardingOverlay {
    position: fixed;
    inset: 0;
    background-color: rgb(0 0 0 / 55%);
    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: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    padding-bottom: 15vh;
    z-index: 5000;
}

.mx_GuestOnboardingOverlay_text {
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 12px;
    text-align: center;
}

.mx_GuestOnboardingOverlay_arrow {
    font-size: 40px;
    -webkit-animation: mx_GuestOnboardingOverlay_bounce 1s infinite;
            animation: mx_GuestOnboardingOverlay_bounce 1s infinite;
}

@-webkit-keyframes mx_GuestOnboardingOverlay_bounce {
    0%,
    100% {
        -webkit-transform: translateY(0);
                transform: translateY(0);
    }

    50% {
        -webkit-transform: translateY(10px);
                transform: translateY(10px);
    }
}

@keyframes mx_GuestOnboardingOverlay_bounce {
    0%,
    100% {
        -webkit-transform: translateY(0);
                transform: translateY(0);
    }

    50% {
        -webkit-transform: translateY(10px);
                transform: translateY(10px);
    }
}

.mx_GuestConnecting_spinner {
    width: 32px;
    height: 32px;
    border: 3px solid #3ac6cb;
    border: 3px solid var(--metmet-brand-secondary);
    border-top-color: #028e91;
    border-top-color: var(--metmet-brand-primary);
    border-radius: 50%;
    -webkit-animation: mx_GuestConnecting_spin 0.8s linear infinite;
            animation: mx_GuestConnecting_spin 0.8s linear infinite;
    margin-bottom: 16px;
}

@-webkit-keyframes mx_GuestConnecting_spin {
    to {
        -webkit-transform: rotate(360deg);
                transform: rotate(360deg);
    }
}

@keyframes mx_GuestConnecting_spin {
    to {
        -webkit-transform: rotate(360deg);
                transform: rotate(360deg);
    }
}
}
@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: var(--cpd-color-gray-600);
            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: var(--cpd-color-text-secondary);
            }

    .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: var(--cpd-color-gray-600);
    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: var(--cpd-color-gray-800);
        cursor: pointer;
    }

    .mx_SeekBar::-moz-range-thumb {
        width: 8px;
        height: 8px;
        border-radius: 8px;
        background-color: var(--cpd-color-gray-800);
        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: var(--cpd-color-gray-800);

        /* 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: var(--cpd-color-gray-800);
        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(--cpd-color-text-secondary);
    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(--cpd-color-text-primary);
    }

    .mx_AuthBody h2 {
        font: var(--cpd-font-body-md-semibold);
        color: var(--cpd-color-text-secondary);
    }

    .mx_AuthBody h2.mx_AuthBody_centered {
        text-align: center;
    }

    .mx_AuthBody a:link,
    .mx_AuthBody a:hover,
    .mx_AuthBody a:visited {
        color: var(--cpd-color-text-action-accent);
        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: var(--cpd-color-text-secondary);
        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(--cpd-color-text-primary);
    }

    .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(--cpd-color-text-secondary);
    }

    .mx_AuthBody .mx_Field input,
    .mx_AuthBody .mx_Field select {
        color: var(--cpd-color-text-primary);
        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(--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(--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(--cpd-color-bg-canvas-default);
    }

    .mx_AuthBody input.error {
        color: var(--cpd-color-text-critical-primary);
    }

    .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(--cpd-color-text-primary);
    }

    .mx_AuthBody .mx_Dropdown {
        color: var(--cpd-color-text-primary);
    }

    .mx_AuthBody .mx_Dropdown_arrow {
        color: var(--cpd-color-text-primary);
    }

    .mx_AuthBody .mx_Dropdown_menu {
        background-color: var(--cpd-color-bg-canvas-default);
    }

        .mx_AuthBody .mx_Dropdown_menu .mx_Dropdown_option_highlight {
            background-color: var(--cpd-color-bg-subtle-primary);
        }

/* specialisation for password reset views */
.mx_AuthBody.mx_AuthBody_forgot-password {
    font: var(--cpd-font-body-md-regular);
    color: var(--cpd-color-text-primary);
    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: var(--cpd-color-text-secondary);
    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: var(--cpd-color-text-action-accent);
    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: var(--cpd-color-bg-subtle-secondary);
    }

.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: #f4f6fa;
    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: rgb(245, 245, 245, 0.9);
}

    @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(0, 0, 0, 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(--cpd-color-text-primary);
    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: var(--cpd-color-text-action-accent);
        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 var(--cpd-color-border-interactive-primary);
    border-radius: 3px;
    width: 6em;
}

.mx_InteractiveAuthEntryComponents_msisdnEntry:focus {
    border: 1px solid var(--cpd-color-text-action-accent);
}

.mx_InteractiveAuthEntryComponents_msisdnSubmit {
    margin-top: 4px;
    margin-bottom: 5px;
}

/* XXX: This should be a common button class */
.mx_InteractiveAuthEntryComponents_msisdnSubmit:disabled {
    background-color: #c8c8cd;
    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(--cpd-color-text-secondary);
    width: auto;
}

.mx_AuthBody_language .mx_Dropdown_arrow {
    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_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(--cpd-color-text-primary);
    }

    .mx_LoginWithQR .mx_LoginWithQR_confirmationAlert {
        border: 1px solid var(--cpd-color-gray-600);
        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: var(--cpd-color-text-secondary);
    }

    .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(--cpd-color-text-primary);
        text-align: center;
    }

        .mx_LoginWithQR .mx_LoginWithQR_main p {
            color: var(--cpd-color-text-secondary);
            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: var(--cpd-color-text-critical-primary);
}
    progress.mx_PassphraseField_progress::-moz-progress-bar {
        background-color: var(--cpd-color-text-critical-primary);
    }
    progress.mx_PassphraseField_progress::-webkit-progress-value {
        background-color: var(--cpd-color-text-critical-primary);
    }
    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: var(--cpd-color-text-action-accent);
    }
        progress.mx_PassphraseField_progress[value="4"]::-moz-progress-bar {
        background-color: var(--cpd-color-text-action-accent);
    }
        progress.mx_PassphraseField_progress[value="4"]::-webkit-progress-value {
        background-color: var(--cpd-color-text-action-accent);
    }
}
@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: var(--cpd-color-text-secondary);
    }

    .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: var(--cpd-color-text-action-accent);
    }

    .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: var(--cpd-color-text-critical-primary);
    }

    .mx_DecoratedRoomAvatar .mx_DecoratedRoomAvatar_notificationBadge,
    .mx_DecoratedRoomAvatar .mx_RoomTile_badgeContainer,
    .mx_ExtraTile .mx_DecoratedRoomAvatar_notificationBadge,
    .mx_ExtraTile .mx_RoomTile_badgeContainer {
        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(--cpd-color-bg-subtle-secondary);
    border-radius: 8px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    color: var(--cpd-color-text-secondary);
}

    .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(--cpd-color-text-primary);
                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(--cpd-color-text-primary);
        }

            .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(--cpd-color-text-link-external);
    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: var(--cpd-color-text-primary);
    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(--cpd-color-text-primary);
            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: var(--cpd-color-text-critical-primary) !important;
        }

        .mx_IconizedContextMenu .mx_IconizedContextMenu_optionList_red svg {
            color: var(--cpd-color-icon-critical-primary);
        }

    .mx_IconizedContextMenu .mx_IconizedContextMenu_option_red {
        color: var(--cpd-color-text-critical-primary) !important;
    }

        .mx_IconizedContextMenu .mx_IconizedContextMenu_option_red svg {
            color: var(--cpd-color-text-critical-primary);
        }
        .mx_IconizedContextMenu .mx_IconizedContextMenu_active.mx_IconizedContextMenu_item,
        .mx_IconizedContextMenu .mx_IconizedContextMenu_active .mx_IconizedContextMenu_item {
            color: var(--cpd-color-text-action-accent) !important;
        }

            .mx_IconizedContextMenu .mx_IconizedContextMenu_active.mx_IconizedContextMenu_item svg, .mx_IconizedContextMenu .mx_IconizedContextMenu_active .mx_IconizedContextMenu_item svg {
                color: var(--cpd-color-text-action-accent);
            }
        .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: var(--cpd-color-gray-800);
    }

.mx_IconizedContextMenu_item.mx_IconizedContextMenu_itemDestructive {
    color: var(--cpd-color-text-critical-primary) !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: var(--cpd-color-text-secondary);
            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: var(--cpd-color-text-secondary);
        }

            .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(--cpd-color-text-primary);
            }

            .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: var(--cpd-color-text-critical-primary);
            }

            .mx_AddExistingToSpace .mx_AddExistingToSpace_footer .mx_AddExistingToSpace_error .mx_AddExistingToSpace_errorCaption {
                margin-top: 4px;
                font-size: 0.75rem;
                line-height: 0.9375rem;
                color: var(--cpd-color-text-primary);
            }

        .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(--cpd-color-text-primary);
            width: 18px;
            height: 18px;
            margin-right: var(--cpd-space-2x);
        }

.mx_AddExistingToSpaceDialog {
    width: 480px;
    color: var(--cpd-color-text-primary);
    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: var(--cpd-color-text-secondary);
            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: var(--cpd-color-text-action-accent);
            padding-right: 24px;
            position: relative;
        }

            .mx_SubspaceSelector .mx_Dropdown_input .mx_SubspaceSelector_dropdownOptionActive svg {
                width: 20px;
                height: 20px;
                right: 0;
                position: absolute;
                color: var(--cpd-color-text-action-accent);
            }

    .mx_SubspaceSelector .mx_SubspaceSelector_onlySpace {
        color: var(--cpd-color-text-secondary);
        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 #000000;
        padding-bottom: 20px;
        margin-bottom: 20px;
    }

    .mx_AnalyticsLearnMoreDialog a {
        color: var(--cpd-color-text-action-accent);
        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(--cpd-color-text-primary);
}
    .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;
        text-align: right;
    }

        .mx_CompoundDialog .mx_CompoundDialog_footer .mx_AccessibleButton {
            margin-left: 24px;
        }

.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(--cpd-color-bg-subtle-secondary);

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

        .mx_ConfirmSpaceUserActionDialog .mx_ConfirmSpaceUserActionDialog_warning svg {
            height: 16px;
            width: 16px;
            vertical-align: -4px;
            margin-right: var(--cpd-space-1-5x);
            color: var(--cpd-color-text-secondary);
        }
}
@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(--cpd-color-text-primary);
    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 rgba(231, 231, 231, 0.2);
    padding: 9px;
    color: var(--cpd-color-text-primary);
    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: #91a1c0;
    }

    .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: #91a1c0;
    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(--cpd-color-text-primary);
    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(--cpd-color-bg-subtle-secondary);
        }

            .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: #91a1c0;
            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: var(--cpd-color-text-secondary);
        }

            .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: "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 var(--cpd-color-text-action-accent);
            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: var(--cpd-color-text-action-accent);
        }

    .mx_DevTools_SettingsExplorer .mx_DevTools_SettingsExplorer_mutable {
        background-color: var(--cpd-color-text-action-accent);
    }

    .mx_DevTools_SettingsExplorer .mx_DevTools_SettingsExplorer_immutable {
        background-color: var(--cpd-color-text-critical-primary);
    }

    .mx_DevTools_SettingsExplorer .mx_DevTools_SettingsExplorer_edit {
        float: right;
        margin-right: 16px;
    }

    .mx_DevTools_SettingsExplorer .mx_DevTools_SettingsExplorer_warning {
        border: 2px solid var(--cpd-color-text-critical-primary);
        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: var(--cpd-color-text-link-external) !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 (C) 2026 MetMet

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

/* "HAPANA" (stay) is the prominent, default option; "NDIYO" (leave) stays small and outlined —
   a deliberate retention nudge, matching the guest-onboarding brand colors. */
.mx_ExitRoomConfirmDialog_stayButton.mx_Dialog_primary {
    background-color: #028e91;
    background-color: var(--metmet-brand-primary);
    border-color: #028e91;
    border-color: var(--metmet-brand-primary);
    color: #fff;
    font-size: 1rem;
    padding: 10px 24px;
}

.mx_ExitRoomConfirmDialog_exitButton {
    background-color: transparent;
    border: 1px solid #3ac6cb;
    border: 1px solid var(--metmet-brand-secondary);
    color: #3ac6cb;
    color: var(--metmet-brand-secondary);
    font-size: 0.8125rem;
    padding: 4px 12px;
}
}
@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: "Inter", "", "Apple Color Emoji", "Segoe UI Emoji", "Arial", "Helvetica", sans-serif,
    "Noto Color Emoji";
        font-family: "Inter", 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(--cpd-color-text-primary);
        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(--cpd-color-gray-900);
        }

        .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: rgba(231, 231, 231, 0.2);
        }
        .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: rgba(231, 231, 231, 0.2);
    }

    .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 var(--cpd-color-gray-400);
    }

        .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: var(--cpd-color-text-secondary);
            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(--cpd-color-icon-tertiary);
            color: var(--cpd-color-bg-canvas-default);
            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(--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(--cpd-color-text-primary);
    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: var(--cpd-color-text-secondary);
        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 */
    }

        .mx_ForwardDialog > .mx_ForwardDialog_preview .mx_EventTile[data-layout="bubble"] {
            margin-top: 20px;
        }

        .mx_ForwardDialog > .mx_ForwardDialog_preview div {
            pointer-events: none;
        }
        .mx_ForwardDialog > .mx_ForwardDialog_preview .mx_EventTile_msgOption,
        .mx_ForwardDialog > .mx_ForwardDialog_preview .mx_EventTile_e2eIcon,
        .mx_ForwardDialog > .mx_ForwardDialog_preview .mx_MFileBody [data-type="download"] {
            display: none;
        }

    .mx_ForwardDialog > hr {
        width: 100%;
        border: none;
        border-top: 1px solid rgba(231, 231, 231, 0.2);
        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: rgba(38, 39, 43, 0.82);
                    background-color: var(--mx_ForwardList_entry_selectedBgColor, rgba(38, 39, 43, 0.82));
                }

                .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: var(--cpd-color-gray-800);
                    }

                .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: var(--cpd-color-text-action-accent);
                    }

                    .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: var(--cpd-color-text-primary);
                    }
}
@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(--cpd-color-text-primary);
        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(--cpd-color-text-primary);
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_InviteDialog_section_hidden_suggestions_disclaimer > p {
        margin: 0;
    }

.mx_InviteDialog_footer {
    border-top: 1px solid rgba(231, 231, 231, 0.2);
}

    .mx_InviteDialog_footer > h3 {
        margin: var(--cpd-space-3x) 0;
        font-size: 0.75rem;
        color: #91a1c0;
        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: var(--cpd-color-gray-600);
    }

        .mx_InviteDialog_dialPad .mx_InviteDialog_dialPadField:focus-within {
            border-color: var(--cpd-color-text-action-accent);
        }

        .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 var(--cpd-color-gray-400);

    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(--cpd-color-text-primary);
        }

        .mx_InviteDialog_tile .mx_InviteDialog_tile_nameStack .mx_InviteDialog_tile_nameStack_userId {
            font-size: 0.75rem;
            color: #91a1c0;
        }

.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(--cpd-color-text-primary);
}

    .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: var(--cpd-color-text-secondary);
                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: var(--cpd-color-text-secondary);
        position: absolute;
        left: 6px;
        top: 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_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(--cpd-color-bg-subtle-secondary);

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

                    .mx_LeaveSpaceDialog_wrapper .mx_Dialog .mx_LeaveSpaceDialog .mx_Dialog_content .mx_LeaveSpaceDialog_section_warning svg {
                        height: 16px;
                        width: 16px;
                        color: var(--cpd-color-text-secondary);
                        vertical-align: middle;
                        margin: 0 var(--cpd-space-1x);
                    }

                .mx_LeaveSpaceDialog_wrapper .mx_Dialog .mx_LeaveSpaceDialog .mx_Dialog_content > p {
                    color: var(--cpd-color-text-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_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;
}

    .mx_LogoutDialog .mx_EncryptionCard {
        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(--cpd-color-text-primary);
    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: var(--cpd-color-text-secondary);
            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: var(--cpd-color-gray-800);
            }
        .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(--cpd-color-bg-subtle-secondary);

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

        .mx_ManageRestrictedJoinRuleDialog .mx_ManageRestrictedJoinRuleDialog_section_info svg {
            height: 16px;
            width: 16px;
            color: var(--cpd-color-text-secondary);
            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: var(--cpd-color-text-critical-primary);
    text-align: center;
}

.mx_MessageEditHistoryDialog_edits {
    list-style-type: none;
    font: var(--cpd-font-body-md-regular);
    padding: 0;
    color: var(--cpd-color-text-primary);
}

    .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: var(--cpd-color-bg-subtle-secondary);
            }

    .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 .mx_PollCreateDialog_busy {
        position: absolute;
        inset: 0;
        background-color: var(--cpd-color-alpha-gray-1300);
        z-index: 1;
    }

    .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: var(--cpd-color-text-secondary);
    }

    .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: var(--cpd-color-gray-400);
            cursor: pointer;
        }

            .mx_PollCreateDialog .mx_PollCreateDialog_option .mx_PollCreateDialog_removeOption svg {
                width: inherit;
                height: inherit;
                color: var(--cpd-color-text-secondary);
            }

    .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: var(--cpd-color-gray-800);
    }

    .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: transparent;
            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 #181b21;
                }

                .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: #181b21;
                }
                    .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_icon .mx_RoomSettingsDialog_protocolIcon img {
                        border-width: 1px 1px;
                        border-color: transparent;
                    }

                    .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(--cpd-color-text-primary);
                }

                .mx_RoomSettingsDialog_BridgeList li.mx_RoomSettingsDialog_BridgeList_listItem .mx_RoomSettingsDialog_column_data .mx_RoomSettingsDialog_workspace_channel_details {
                    color: var(--cpd-color-text-primary);
                    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: #91a1c0;
                    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(--cpd-color-text-primary);
        }

.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(--cpd-color-text-primary);
    }

        .mx_ServerOfflineDialog .mx_ServerOfflineDialog_content hr {
            border-color: var(--cpd-color-text-primary);
            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: #91a1c0;
                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: var(--cpd-color-text-secondary);
            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: var(--cpd-color-text-secondary);
            margin: 16px 0 16px 8px;
        }

        .mx_ServerPickerDialog .mx_Dialog_content > a {
            color: var(--cpd-color-text-action-accent);
            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 rgba(231, 231, 231, 0.2);
    padding: 9px;
    color: rgba(74, 74, 74, 0.9);
    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 var(--cpd-color-text-action-accent);
}
}
@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: var(--cpd-color-text-secondary);
    }

    .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(--cpd-color-text-primary);
}

    .mx_SpaceSettingsDialog .mx_SpaceSettings_errorText {
        font-weight: var(--cpd-font-weight-semibold);
        font-size: 0.75rem;
        line-height: 0.9375rem;
        color: var(--cpd-color-text-critical-primary);
        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(--cpd-color-text-primary);
            }

            .mx_SpaceSettingsDialog .mx_SettingsTab_section .mx_StyledRadioButton + span {
                font-size: 0.9375rem;
                line-height: 1.125rem;
                color: var(--cpd-color-text-secondary);
                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(--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: var(--cpd-color-text-secondary);
        }

            .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: var(--cpd-color-gray-400);
                vertical-align: middle;
                color: var(--cpd-color-gray-800);
                /* 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 var(--cpd-color-bg-subtle-secondary);
    }

        .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: var(--cpd-color-gray-400);
            vertical-align: middle;
            color: var(--cpd-color-text-primary);
            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: var(--cpd-color-text-secondary);
                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: var(--cpd-color-bg-subtle-secondary);
                border-radius: 8px;
                margin-left: var(--cpd-space-2x);
                text-align: center;
                line-height: 16px;
                color: var(--cpd-color-text-secondary);
            }

                .mx_SpotlightDialog .mx_SpotlightDialog_searchBox > .mx_SpotlightDialog_filter .mx_SpotlightDialog_filter--close svg {
                    color: var(--cpd-color-text-secondary);
                    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: var(--cpd-color-gray-800);
            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: var(--cpd-color-text-secondary);
                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: var(--mx_SpotlightDialog_option_selectedBgColor, var(--cpd-color-gray-400));
            }
            .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(--cpd-color-text-primary);
                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(--cpd-color-bg-subtle-secondary);

                padding: 6px var(--cpd-space-1x);
                font-size: 0.9375rem;
                line-height: 1.5rem;
                color: var(--cpd-color-text-primary);
                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(--cpd-color-text-primary);
                            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 {
                            color: var(--cpd-color-gray-800);
                            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: var(--cpd-color-text-secondary);
                        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: var(--cpd-color-gray-800);
                    }

                    .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: var(--cpd-color-text-secondary);
                    }
                    .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/$tertiary-content do not have enough contrast against
                       the hover background ($quinary-content) to meet WCAG AA (4.5:1). */
                        .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(--cpd-color-text-primary);
                        }

                .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: var(--cpd-color-text-secondary);
                    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);
            color: var(--cpd-color-gray-800);
            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: var(--cpd-color-text-secondary);
        }

        .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: var(--cpd-color-gray-800);
            border-radius: 6px;
            background-color: var(--cpd-color-gray-400);
            margin-right: var(--cpd-space-1x);
            display: none;
        }

        .mx_SpotlightDialog #mx_SpotlightDialog_content .mx_SpotlightDialog_metaspaceResult svg {
            color: var(--cpd-color-text-secondary);
            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;
}

.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(--cpd-color-text-primary);
        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: var(--cpd-color-text-secondary);
            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: #91a1c0;
        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(--cpd-color-text-primary);
                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: var(--cpd-color-text-critical-primary);
            }

                .mx_AccessSecretStorageDialog .mx_AccessSecretStorageDialog_primaryContainer .mx_AccessSecretStorageDialog_recoveryKeyFeedback.mx_AccessSecretStorageDialog_recoveryKeyFeedback--invalid svg {
                    color: var(--cpd-color-text-critical-primary);
                }

    .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(--cpd-color-text-primary);
    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(--cpd-color-gray-900);
    background-color: var(--cpd-color-bg-subtle-secondary);
    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(--cpd-color-text-primary);
    }

.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(--cpd-color-text-primary);
    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 var(--cpd-color-text-action-accent);
    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(--cpd-color-text-primary);
        }

            .mx_NetworkDropdown_wrapper .mx_ContextualMenu .mx_GenericDropdownMenu_Option > .mx_GenericDropdownMenu_Option--label span:not(:first-child) {
                margin-left: var(--cpd-space-1x);
                color: var(--cpd-color-text-secondary);
            }

    .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: var(--cpd-color-gray-400);
    border-radius: 8px;
    text-align: center;
    line-height: 16px;
    color: var(--cpd-color-text-secondary);
    margin-left: auto;
}

    .mx_NetworkDropdown_removeServer svg {
        color: var(--cpd-color-text-secondary);
        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(--cpd-color-text-primary);
    }

    .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 #c8c8cd;
        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: #b9bec6;
            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: var(--cpd-color-text-action-accent);
                }

            .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(--cpd-color-text-primary);
}

.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(--cpd-color-text-link-external);
}

/* 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(--cpd-color-text-primary);
}

.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(--cpd-color-text-link-external);
    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: #343a46;
}

.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: var(--cpd-color-text-link-external);
}

.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(--cpd-color-bg-subtle-secondary);
    color: var(--cpd-color-gray-800);
    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: var(--cpd-color-gray-800);
}
}
@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(--cpd-color-text-primary);
    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(--cpd-color-text-primary);
}
    .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(--cpd-color-text-primary);
    z-index: 1;
    pointer-events: none;
}

.mx_Field:focus-within {
    border-color: var(--cpd-color-text-link-external);
}

.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(--cpd-color-gray-900);
}

.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(--cpd-color-gray-900);
}

.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(--cpd-color-gray-900);
}

.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(--cpd-color-gray-900);
}

.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(--cpd-color-gray-900);
}

.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(--cpd-color-gray-900);
}

.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(--cpd-color-gray-900);
}

.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(--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(--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(--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(--cpd-color-text-link-external);
}

.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(--cpd-color-bg-canvas-default);
    color: var(--cpd-color-gray-900);
}
    .mx_Field_valid.mx_Field,
    .mx_Field_valid.mx_Field:focus-within {
        border-color: var(--cpd-color-text-action-accent);
    }

    .mx_Field_valid.mx_Field label,
    .mx_Field_valid.mx_Field:focus-within label {
        color: var(--cpd-color-text-action-accent);
    }
    .mx_Field_invalid.mx_Field,
    .mx_Field_invalid.mx_Field:focus-within {
        border-color: var(--cpd-color-text-critical-primary);
    }

    .mx_Field_invalid.mx_Field label,
    .mx_Field_invalid.mx_Field:focus-within label {
        color: var(--cpd-color-text-critical-primary);
    }

/* 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 transparent;
        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: var(--cpd-color-text-secondary);
    }

.mx_GenericEventListSummary_unstyledList {
    list-style: none;
    padding: 0;
}

.mx_TextualEvent.mx_GenericEventListSummary_summary {
    font: var(--cpd-font-body-sm-regular);
    display: inline;
    color: var(--cpd-color-text-secondary);
}

.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: #fff;
    -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: #fff;
    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(--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: #91a1c0;
    }

.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 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_InteractiveTooltip_wrapper {
    position: fixed;
    z-index: 3999;
}

.mx_InteractiveTooltip {
    border-radius: 8px;
    background-color: var(--cpd-color-bg-canvas-default);
    color: var(--cpd-color-text-primary);
    position: absolute;
    z-index: 5001;
    -webkit-box-shadow:
        0 24px 8px rgb(17 17 26 / 4%),
        0 8px 32px rgb(17 17 26 / 4%);
            box-shadow:
        0 24px 8px rgb(17 17 26 / 4%),
        0 8px 32px rgb(17 17 26 / 4%);
}

.mx_InteractiveTooltip.mx_InteractiveTooltip_withChevron_top {
    top: 10px; /* 8px chevron + 2px spacing */
}

.mx_InteractiveTooltip.mx_InteractiveTooltip_withChevron_left {
    left: 10px; /* 8px chevron + 2px spacing */
}

.mx_InteractiveTooltip.mx_InteractiveTooltip_withChevron_right {
    right: 10px; /* 8px chevron + 2px spacing */
}

.mx_InteractiveTooltip.mx_InteractiveTooltip_withChevron_bottom {
    bottom: 10px; /* 8px chevron + 2px spacing */
}

.mx_InteractiveTooltip_chevron_top {
    position: absolute;
    left: calc(50% - 8px);
    top: -8px;
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-bottom: 8px solid var(--cpd-color-bg-canvas-default);
    border-right: 8px solid transparent;
}

/* Adapted from https://codyhouse.co/blog/post/css-rounded-triangles-with-clip-path */
/* by Sebastiano Guerriero (@guerriero_se) */
@supports (clip-path: polygon(0% 0%, 100% 100%, 0% 100%)) {
    .mx_InteractiveTooltip_chevron_top {
        height: 16px;
        width: 16px;
        background-color: inherit;
        border: none;
        clip-path: polygon(0% 0%, 100% 100%, 0% 100%);
        -webkit-transform: rotate(135deg);
                transform: rotate(135deg);
        border-radius: 0 0 0 3px;
        top: calc(-8px / 1.414); /* sqrt(2) because of rotation */
    }
}

.mx_InteractiveTooltip_chevron_bottom {
    position: absolute;
    left: calc(50% - 8px);
    bottom: -8px;
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-top: 8px solid var(--cpd-color-bg-canvas-default);
    border-right: 8px solid transparent;
}

/* Adapted from https://codyhouse.co/blog/post/css-rounded-triangles-with-clip-path */
/* by Sebastiano Guerriero (@guerriero_se) */
@supports (clip-path: polygon(0% 0%, 100% 100%, 0% 100%)) {
    .mx_InteractiveTooltip_chevron_bottom {
        height: 16px;
        width: 16px;
        background-color: inherit;
        border: none;
        clip-path: polygon(0% 0%, 100% 100%, 0% 100%);
        -webkit-transform: rotate(-45deg);
                transform: rotate(-45deg);
        border-radius: 0 0 0 3px;
        bottom: calc(-8px / 1.414); /* sqrt(2) because of rotation */
    }
}
}
@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: var(--cpd-color-text-secondary);
    }

        .mx_InviteReason .mx_InviteReason_view svg {
            width: 16px;
            height: 16px;
            color: var(--cpd-color-text-secondary);
            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(--cpd-color-bg-canvas-default);
        border-radius: 50%;

        line-height: 0;
    }

        .mx_MiniAvatarUploader .mx_MiniAvatarUploader_indicator .mx_MiniAvatarUploader_cameraIcon {
            height: inherit;
            width: inherit;
            color: var(--cpd-color-text-secondary);
        }

.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(--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(--cpd-color-bg-action-primary-hovered) !important; /* To override .markdown-body */
    }

    .mx_Pill:active {
        background-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: var(--cpd-color-text-link-external);
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        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: var(--cpd-color-text-secondary);
        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: var(--cpd-color-gray-200);
}
    progress.mx_ProgressBar::-webkit-progress-bar {
        background-color: var(--cpd-color-gray-200);
    }
    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: 0; /* Reset default blockquote margin */
    padding-left: 10px;
    border-left: 2px solid var(--username-color);
    border-radius: 2px;
}
        .mx_ReplyChain .mx_ReplyChain_show.mx_AccessibleButton_kind_link_inline {
            white-space: nowrap; /* Enforce 'In reply to' to be a single line */
            color: var(--cpd-color-text-secondary);
            -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(--cpd-color-text-primary);
            }

    .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);
    }
}
@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{
/* XXX: bleurgh, what is this? These classes totally break the component */
/* naming scheme; it's completely unclear where or how they're being used */
/* --Matthew */

.mx_Markdown_BOLD {
    font-weight: bold;
}

.mx_Markdown_ITALIC {
    font-style: italic;
    /*
    // interestingly, *not* using the explicit italic font
    // variant seems yield better results.

    // compensate for Nunito italics being terrible
    // https://github.com/google/fonts/issues/172
    transform: skewX(-14deg);
    display: inline-block;
    */
}

.mx_Markdown_CODE {
    padding: 0.2em 0;
    margin: 0;
    font-size: 85%;
    background-color: rgba(0, 0, 0, 0.04);
    border-radius: 3px;
}

.mx_Markdown_HR {
    display: block;
    background: #e9e9e9;
}

.mx_Markdown_STRIKETHROUGH {
    text-decoration: line-through;
}

.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(--cpd-color-gray-900);
        font-weight: normal;
    }

    .mx_RoomAliasField input::-moz-placeholder {
        color: var(--cpd-color-gray-900);
        font-weight: normal;
    }

    .mx_RoomAliasField input:-ms-input-placeholder {
        color: var(--cpd-color-gray-900);
        font-weight: normal;
    }

    .mx_RoomAliasField input::-ms-input-placeholder {
        color: var(--cpd-color-gray-900);
        font-weight: normal;
    }

    .mx_RoomAliasField input::placeholder {
        color: var(--cpd-color-gray-900);
        font-weight: normal;
    }

    .mx_RoomAliasField .mx_Field_prefix,
    .mx_RoomAliasField .mx_Field_postfix {
        color: var(--cpd-color-gray-900);
        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(--cpd-color-icon-tertiary);
        }

    .mx_ServerPicker .mx_ServerPicker_server {
        color: var(--cpd-color-text-primary);
        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: var(--cpd-color-gray-800);
        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(--cpd-color-text-primary);
        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(--cpd-color-text-primary);
    padding-right: 10px;
    padding-top: 4px;
}

.mx_SettingsFlag_microcopy {
    margin-top: 4px;
    font: var(--cpd-font-body-sm-regular);
    color: var(--cpd-color-text-secondary);

    /* 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: "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji" !important;
        background-color: rgba(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 #181b21;
    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: #c8c8cd !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(--cpd-color-text-primary);
    background: var(--cpd-color-gray-400);
}

    .mx_Tag > svg:first-child {
        width: 1em;
        color: var(--cpd-color-text-secondary);
        -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: var(--cpd-color-text-secondary);
        background: var(--cpd-color-bg-subtle-secondary);
        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: var(--cpd-color-text-action-accent);
    }

    .mx_Validation_detail.mx_Validation_invalid {
        color: var(--cpd-color-text-critical-primary);
    }
}
@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(--cpd-color-bg-subtle-secondary);
    }

.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(--cpd-color-bg-canvas-default);
        color: var(--cpd-color-text-primary);

        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: var(--cpd-color-bg-subtle-secondary);
    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: var(--cpd-color-text-secondary);
    }

    .mx_CallEvent .mx_LiveContentSummary {
        font-size: 0.75rem;
    }

    .mx_CallEvent{

    --facepile-background: var(--cpd-color-bg-subtle-secondary);
}

.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: var(--cpd-color-text-secondary);
    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: #b9bec6;
    }
}
@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(--cpd-color-bg-subtle-secondary);
        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: var(--cpd-color-text-secondary);
            }

        .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: var(--cpd-color-text-secondary);
                }

        .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: var(--cpd-color-text-secondary);
            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: var(--cpd-color-bg-canvas-default);
        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: var(--cpd-color-gray-800);
    }
        .mx_EventTile[data-layout="bubble"] .mx_EventTile_e2eIcon + .mx_LegacyCallEvent_wrapper .mx_LegacyCallEvent {
            position: relative;

            /* 5px (gap) + 14px (e2e icon size * mask-size) + 9px (margin-left of e2e icon) */
            right: calc(5px + 14px + 9px);
        }
            .mx_EventTile_leftAlignedBubble .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(--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: rgba(0, 0, 0, 0.7);
        border: 2px solid rgba(0, 0, 0, 0.2);
        color: #f4f6fa;
        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;
    }

/* In the timeline, we fit the width of the container */
.mx_EventTile_line .mx_MLocationBody .mx_MLocationBody_map {
    max-width: 450px;
    width: 100%;
}

.mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_MLocationBody .mx_MLocationBody_map {
    max-width: 100%;
    width: 450px;
}

.mx_DisambiguatedProfile ~ .mx_MLocationBody {
    margin-top: 6px; /* See: https://github.com/matrix-org/matrix-react-sdk/pull/8442 */
}

.mx_ReplyTile .mx_MLocationBody {
    /* Prevent clicking a location within a reply */
    pointer-events: none;
}
}
@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: #b9bec6;
            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: var(--cpd-color-text-secondary);
        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);
        }

/* Prevent clicking a poll within a reply */
.mx_ReplyTile .mx_MPollBody {
    pointer-events: none;
}

.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 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_MessageActionBar {
    --MessageActionBar-size-button: 28px;
    --MessageActionBar-size-margin: 3px;

    position: absolute;
    top: calc(
        -1 *
            (28px + 2 * (3px + var(--cpd-border-width-1)))
    );
    top: calc(
        -1 *
            (var(--MessageActionBar-size-button) + 2 * (var(--MessageActionBar-size-margin) + 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_MessageActionBar::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;

        /* stylelint-disable-next-line max-line-length */
    }
        .mx_GenericEventListSummary[data-layout="bubble"]
            .mx_GenericEventListSummary_toggle
            ~ .mx_GenericEventListSummary_unstyledList
            .mx_EventTile_info:first-of-type
            .mx_MessageActionBar::before {
            /* improve clickability of "collapse" link button on bubble layout by reducing width and height values */
            /* mx_GenericEventListSummary_toggle ~: to apply rules to action bar when "collapse" button is available */
            /* mx_EventTile_info:first-of-type: to apply rules to the info event tile just under "collapse" button */
            /* TODO: use a new class name instead */
            width: 100%;
            height: 100%;
            top: 0;
            left: 0;
        }

        .mx_EventTile_info .mx_ViewSourceEvent ~ .mx_MessageActionBar::before {
            /* improve clickability of view source event toggle button by removing vertical safe area */
            width: 100%;
            height: 100%;
            top: 0;
            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_TextualBody_urlPreviews {
    /* 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;

        /* stylelint-disable-next-line max-line-length */
    }
        .mx_GenericEventListSummary[data-layout="bubble"]
            .mx_GenericEventListSummary_toggle
            ~ .mx_GenericEventListSummary_unstyledList
            .mx_EventTile_info:first-of-type
            .mx_ThreadActionBar::before {
            /* improve clickability of "collapse" link button on bubble layout by reducing width and height values */
            /* mx_GenericEventListSummary_toggle ~: to apply rules to action bar when "collapse" button is available */
            /* mx_EventTile_info:first-of-type: to apply rules to the info event tile just under "collapse" button */
            /* TODO: use a new class name instead */
            width: 100%;
            height: 100%;
            top: 0;
            left: 0;
        }

        .mx_EventTile_info .mx_ViewSourceEvent ~ .mx_ThreadActionBar::before {
            /* improve clickability of view source event toggle button by removing vertical safe area */
            width: 100%;
            height: 100%;
            top: 0;
            left: 0;
        }
}
@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: var(--cpd-color-text-secondary);
}

    .mx_PollHistoryList_noResults .mx_PollHistoryList_loadMorePolls {
        margin-top: var(--cpd-space-4x);
    }

.mx_PollHistoryList_loading {
    color: var(--cpd-color-text-secondary);
    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;
        }

            .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: var(--cpd-color-text-secondary);
                }

                .mx_BaseCard .mx_BaseCard_header .mx_BaseCard_header_title .mx_BaseCard_header_title_button--option:hover svg {
                    color: var(--cpd-color-text-primary);
                }

    .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: var(--cpd-color-text-secondary);
            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(--cpd-color-text-primary);
        }

        .mx_ContextualMenu_wrapper.mx_BaseCard_header_title .mx_ContextualMenu{

        font: var(--cpd-font-body-sm-regular);
        color: var(--cpd-color-text-primary);
        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(--cpd-color-alpha-gray-300);
    }

    .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: var(--cpd-color-gray-800);
        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(--cpd-color-text-primary);
            }

        .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(--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: var(--cpd-color-text-action-accent);
            }

        .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 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_body {
        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: var(--cpd-color-text-secondary);
        }

        .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: var(--cpd-color-gray-400);
            }

            .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(--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%;
    }
        .mx_ThreadPanel .mx_EventTile[data-layout="group"] .mx_MessageActionBar {
            right: 0;
            top: -36px; /* 2px above EventTile */
            z-index: 10; /* See _EventTile.pcss */
        }

    /* 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_EventTile,
    .mx_ThreadPanel .mx_GenericEventListSummary {
        /* Account for scrollbar when hovering */
        padding-top: 0;
    }

        .mx_ThreadPanel .mx_EventTile .mx_TimelineSeparator, .mx_ThreadPanel .mx_GenericEventListSummary .mx_TimelineSeparator {
            display: none;
        }

        .mx_ThreadPanel .mx_EventTile.mx_EventTile_clamp:hover, .mx_ThreadPanel .mx_GenericEventListSummary.mx_EventTile_clamp:hover {
            cursor: pointer;
        }

    .mx_ThreadPanel .mx_MessageComposer {
        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: var(--cpd-color-text-secondary);
        }
    .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(--cpd-color-bg-subtle-secondary);
        }
            .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(--cpd-color-text-primary);
                display: inline-block;
                vertical-align: middle;
                position: absolute;
                top: 14px;
                left: 10px;
            }

        .mx_ContextualMenu_wrapper .mx_ThreadPanel_Header_FilterOptionItem span:last-child {
            color: var(--cpd-color-text-secondary);
        }
}
@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_EventTile_content {
        margin-right: 0;
    }
        .mx_TimelineCard .mx_EventTile .mx_ThreadSummary {
            position: relative;
            padding-right: 11px;
        }

            .mx_TimelineCard .mx_EventTile .mx_ThreadSummary::after {
                content: "";
                display: block;
                position: absolute;
                left: 0;
                bottom: -16px;
                height: 1px;
                width: 100%;
                border-bottom: 1px solid #616b7f;
            }

        .mx_TimelineCard .mx_EventTile[data-layout="irc"],
        .mx_TimelineCard .mx_EventTile[data-layout="group"] {
            --TimelineCard_ReadReceiptGroup-inset-block-start: -6px;
            --EventTile_group_line-spacing-inline-start: var(--BaseCard_EventTile-spacing-inline);
        }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"].mx_EventTile_info .mx_EventTile_line,
            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_EventTile_line,
            .mx_TimelineCard .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_line,
            .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_EventTile_line {
                padding: var(--BaseCard_EventTile_line-padding-block) 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_EventTile[data-layout="irc"].mx_EventTile_info .mx_EventTile_line .mx_EventTile_e2eIcon, .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_EventTile_line .mx_EventTile_e2eIcon, .mx_TimelineCard .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_line .mx_EventTile_e2eIcon, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_EventTile_line .mx_EventTile_e2eIcon {
                    inset-inline-start: var(--cpd-space-2x);
                }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"].mx_EventTile_info, .mx_TimelineCard .mx_EventTile[data-layout="group"].mx_EventTile_info {

                /* Info events should have the same size as state events, those
                 * are usually wrapped in a generic event list summary */
            }
                .mx_TimelineCard .mx_EventTile[data-layout="irc"].mx_EventTile_info .mx_EventTile_avatar, .mx_TimelineCard .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_avatar {
                    inset-inline-start: 18px;
                }
                .mx_TimelineCard .mx_EventTile[data-layout="irc"].mx_EventTile_info, .mx_TimelineCard .mx_EventTile[data-layout="group"].mx_EventTile_info{
                font: var(--cpd-font-body-sm-regular);
}

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_EventTile_avatar, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_EventTile_avatar {
                inset-inline-start: -3px;
            }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_EventTile_msgOption, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_EventTile_msgOption {
                -webkit-margin-end: 0;
                        margin-inline-end: 0;
            }

                .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_EventTile_msgOption .mx_ReadReceiptGroup, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_EventTile_msgOption .mx_ReadReceiptGroup {
                    top: var(--TimelineCard_ReadReceiptGroup-inset-block-start);
                }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_DisambiguatedProfile,
            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_ThreadSummary,
            .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_DisambiguatedProfile,
            .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_ThreadSummary {
                -webkit-margin-start: var(--BaseCard_EventTile-spacing-inline);
                        margin-inline-start: var(--BaseCard_EventTile-spacing-inline);
            }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_DisambiguatedProfile, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_DisambiguatedProfile {
                max-width: calc(100% - var(--BaseCard_EventTile-spacing-inline)); /* instead of $left-gutter */
            }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_ReplyTile .mx_DisambiguatedProfile, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_ReplyTile .mx_DisambiguatedProfile {
                -webkit-margin-start: 0;
                        margin-inline-start: 0;
                max-width: none;
                max-width: initial;
            }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_MessageTimestamp, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_MessageTimestamp {
                inset-inline: auto 0;
                font-size: 0.75rem;
            }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_ReactionsRow, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_ReactionsRow {
                /* See: var(--ThreadView_group_spacing-end) for ReactionsRow on _EventTile.pcss */
                -webkit-margin-end: var(--cpd-space-2x);
                        margin-inline-end: var(--cpd-space-2x);
            }

            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_ThreadSummary, .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_ThreadSummary {
                -webkit-margin-end: 0;
                        margin-inline-end: 0;
                max-width: min(calc(100% - 36px), 600px);
            }
            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_EventTile_avatar,
            .mx_TimelineCard .mx_EventTile[data-layout="irc"] .mx_MessageTimestamp {
                position: absolute;
            }

        .mx_TimelineCard .mx_EventTile[data-layout="group"] {
            /* Read receipt group on compact modern layout */
            /* This is required because mx_TimelineCard is a child element wrapped by mx_MatrixChat_useCompactLayout, */
        }
            /* which specifies the default position of mx_ReadReceiptGroup on compact modern layout. */
            .mx_MatrixChat_useCompactLayout .mx_TimelineCard .mx_EventTile[data-layout="group"] .mx_ReadReceiptGroup {
                top: var(--TimelineCard_ReadReceiptGroup-inset-block-start);
            }
            .mx_TimelineCard .mx_EventTile[data-layout="bubble"]::before {
                z-index: auto; /* enable background color on hover */
            }

            .mx_TimelineCard .mx_EventTile[data-layout="bubble"].mx_EventTile_info .mx_MessageActionBar {
                /* 1px: border width */
                inset-inline-end: calc(8px + 1px);
                inset-inline-end: calc(var(--container-gap-width) + 1px);
            }

            .mx_TimelineCard .mx_EventTile[data-layout="bubble"] .mx_ReactionsRow {
                position: relative; /* display on hover */
            }

    .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_info .mx_EventTile_avatar ~ .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_info .mx_EventTile_avatar ~ .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) */
    }
        /* RR next to a message on the messsge list */
            .mx_TimelineCard .mx_GenericEventListSummary_unstyledList .mx_EventTile[data-layout="bubble"] .mx_ReadReceiptGroup, .mx_TimelineCard .mx_RoomView_MessageList .mx_EventTile[data-layout="bubble"] .mx_ReadReceiptGroup {
                /* 6px: scroll bar width (magic number) */
                /* stylelint-disable-next-line declaration-colon-space-after */
                inset-inline-end: calc(
                    -1 * var(--ReadReceiptGroup_EventBubbleTile-spacing-end) + 8px + 6px
                );
                inset-inline-end: calc(
                    -1 * var(--ReadReceiptGroup_EventBubbleTile-spacing-end) + var(--container-gap-width) + 6px
                );
            }
                .mx_TimelineCard .mx_GenericEventListSummary_unstyledList .mx_EventTile[data-layout="bubble"].mx_EventTile_info .mx_ReadReceiptGroup, .mx_TimelineCard .mx_RoomView_MessageList .mx_EventTile[data-layout="bubble"].mx_EventTile_info .mx_ReadReceiptGroup {
                    inset-inline-end: -4px; /* align with RR outside of info tile */
                }
}
@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_memberDetailsContainer {
        padding-top: 0;
        padding-bottom: 0;
        margin-bottom: var(--cpd-space-2x);
    }

    .mx_UserInfo.mx_BaseCard .mx_RoomTile_titleContainer {
        width: 154px;
    }

    .mx_UserInfo.mx_BaseCard .mx_RoomTile_badge {
        display: none;
    }

    .mx_UserInfo.mx_BaseCard .mx_RoomTile_title {
        width: 160px;
    }

    .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: var(--cpd-color-gray-800);
        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_memberDetails .mx_UserInfo_profileField {
            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;

            margin: 6px 0;
        }

            .mx_UserInfo.mx_BaseCard .mx_UserInfo_memberDetails .mx_UserInfo_profileField .mx_UserInfo_roleDescription {
                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;
                /* try to make it the same height as the dropdown */
                margin: 11px 0 12px 0;
            }

            .mx_UserInfo.mx_BaseCard .mx_UserInfo_memberDetails .mx_UserInfo_profileField .mx_Field {
                margin: 0;
            }

    .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(--cpd-color-bg-subtle-secondary);
            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(--cpd-color-text-primary);
        }

        .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(--cpd-color-text-primary);
            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(--cpd-color-bg-subtle-secondary);
    border: var(--container-border-width) solid var(--cpd-color-bg-subtle-secondary);
    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(--cpd-color-bg-subtle-secondary);
}

.mx_AppTileFullWidth {
    width: 100% !important; /* to override the inline style set by the resizer */
    margin: 0;
    padding: 0;
    border: 8px solid var(--cpd-color-bg-subtle-secondary);
    border: var(--container-border-width) solid var(--cpd-color-bg-subtle-secondary);
    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(--cpd-color-bg-subtle-secondary);
}

.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(--cpd-color-bg-subtle-secondary);
    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(--cpd-color-alpha-gray-300);
                border-radius: 50%;
                left: 0;
                top: 0;
            }

            .mx_AppTileMenuBar .mx_AppTileMenuBar_widgets .mx_AppTileMenuBar_widgets_button .mx_Icon {
                color: #91a1c0;
            }

/* 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: var(--cpd-color-alpha-gray-300);
    }

        .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: var(--cpd-color-alpha-gray-300) !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 transparent;
    background: 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 rgba(0, 0, 0, 0.28);
            box-shadow: 0px -16px 32px rgba(0, 0, 0, 0.28);
}

.mx_Autocomplete_ProviderSection {
    border-bottom: 1px solid transparent;
    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(--cpd-color-text-primary);
}

.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(--cpd-color-text-primary);
}

.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: #343a46;
    outline: none;
}

.mx_Autocomplete_provider_name {
    margin: 12px;
    color: var(--cpd-color-text-primary);
    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: #800;
        }
        to {
            background-color: var(--cpd-color-bg-canvas-default);
        }
    }

    @keyframes visualbell {
        from {
            background-color: #800;
        }
        to {
            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(--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(--cpd-color-bg-canvas-default);
                    color: var(--avatar-color, var(--cpd-color-bg-canvas-default));
                    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 transparent;
        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(--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(--cpd-color-icon-tertiary);
    }
        .mx_MessageComposer_wysiwyg .mx_EmojiButton:hover {
        background-color: var(--cpd-color-bg-subtle-secondary);
    }

        .mx_MessageComposer_wysiwyg .mx_EmojiButton:hover svg {
            color: var(--cpd-color-gray-800);
        }
}
@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_EventTile[data-layout="bubble"],
.mx_GenericEventListSummary[data-layout="bubble"] {
    --avatarSize: 32px;
    --gutterSize: 11px;
    --cornerRadius: 12px;
    --maxWidth: 70%;

    /* For both event tile and event list summary */
    --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);
}

.mx_EventTile[data-layout="bubble"] {
    --EventTile_bubble_line-margin-inline-start: -9px;
    --EventTile_bubble_line-margin-inline-end: -12px;
    --EventTile_bubble_gap-inline: 5px;
}

    .mx_EventTile[data-layout="bubble"] .mx_MessageTimestamp {
        width: auto;
        width: initial; /* Cancel the default width */
        max-width: 80px;
    }

    .mx_EventTile[data-layout="bubble"] .mx_ThreadSummary {
        clear: both;
        width: -webkit-fit-content;
        width: -moz-fit-content;
        width: fit-content;
    }

    .mx_EventTile[data-layout="bubble"] .mx_EventTile_content {
        margin-right: 0;
    }

    .mx_EventTile[data-layout="bubble"]:not(.mx_EventTile_info) .mx_EventTile_avatar {
        line-height: 0;
        border: 4px solid var(--cpd-color-bg-canvas-default);
        border-radius: 50%;
        position: absolute;
        top: 6px;
        z-index: 9;
    }
        .mx_EventTile[data-layout="bubble"]:not(.mx_EventTile_info) .mx_EventTile_avatar img {
            -webkit-box-shadow: 0 0 0 3px var(--cpd-color-bg-canvas-default);
                    box-shadow: 0 0 0 3px var(--cpd-color-bg-canvas-default);
            border-radius: 50%;
        }
        .mx_EventTile[data-layout="bubble"].mx_EventTile_highlight .mx_EventTile_avatar {
            border-color: #25271f;
        }
        .mx_EventTile[data-layout="bubble"].mx_EventTile_highlight::before {
            background-color: #25271f;
        }
        .mx_EventTile[data-layout="bubble"]:hover .mx_EventTile_avatar {
            border-color: var(--cpd-color-bg-subtle-secondary);
        }

    /* For replies */
    .mx_EventTile[data-layout="bubble"] .mx_EventTile {
        padding-top: 0;
    }

    .mx_EventTile[data-layout="bubble"]::before {
        content: "";
        position: absolute;
        top: -1px;
        bottom: -1px;
        left: calc(-1 * var(--EventTile_bubble-margin-inline-start));
        right: calc(-1 * var(--EventTile_bubble-margin-inline-end));
        z-index: -1;
        border-radius: 4px;
    }
        .mx_EventTile[data-layout="bubble"]:hover::before, .mx_EventTile[data-layout="bubble"].mx_EventTile_selected::before {
            background: var(--cpd-color-bg-subtle-secondary);
        }
            .mx_EventTile[data-layout="bubble"]:hover .mx_EventTile_avatar img, .mx_EventTile[data-layout="bubble"].mx_EventTile_selected .mx_EventTile_avatar img {
                -webkit-box-shadow: 0 0 0 3px var(--cpd-color-bg-subtle-secondary);
                        box-shadow: 0 0 0 3px var(--cpd-color-bg-subtle-secondary);
            }

    /* Position the main event sender; reply senders own their alignment. */
    .mx_EventTile[data-layout="bubble"] > .mx_DisambiguatedProfile,
    .mx_EventTile[data-layout="bubble"] .mx_EventTile_senderDetails > .mx_DisambiguatedProfile {
        position: relative;
        inset-block-start: -2px;
        inset-inline-start: 2px;
        font-size: 0.9375rem;
    }

    .mx_EventTile[data-layout="bubble"] .mx_MessageActionBar {
        top: -28px;
        z-index: 9; /* above the avatar */
    }

    .mx_EventTile[data-layout="bubble"] .mx_MediaBody {
        /* leave space for the timestamp */
        padding-right: 48px !important;
    }
        .mx_EventTile[data-layout="bubble"] .mx_ImageBody .mx_ImageBody_container {
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
            min-height: calc(1.8rem + var(--gutterSize) + var(--gutterSize));
            min-width: calc(1.8rem + var(--gutterSize) + var(--gutterSize));
        }

    .mx_EventTile[data-layout="bubble"] .mx_LegacyCallEvent {
        background-color: transparent;
        background-color: initial;

        border-style: solid;
        border-width: 1px;
        border-color: var(--cpd-color-gray-400);
    }

    .mx_EventTile[data-layout="bubble"] .mx_EventTile_footer {
        margin: var(--cpd-space-1-5x) 0;
        margin-inline: var(--EventTile_bubble_line-margin-inline-start) var(--EventTile_bubble_line-margin-inline-end);
    }
        .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_line {
            border-bottom-right-radius: var(--cornerRadius);
        }

            .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_line .mx_ImageBody .mx_ImageBody_container,
            .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_line .mx_ImageBody::before,
            .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_line .mx_MVideoBody .mx_MVideoBody_container,
            .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_line .mx_MediaBody,
            .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_line .mx_MLocationBody_map,
            .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_line .mx_MBeaconBody {
                border-bottom-right-radius: var(--cornerRadius) !important;
            }

        .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_avatar {
            left: -36px;
        }

        .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_MessageActionBar {
            inset-inline-start: calc(
                100% - var(--MessageActionBar-size-button) - 2 * var(--MessageActionBar-size-margin)
            );
            right: auto;
            right: initial; /* Reset the default value */
        }

        .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_ThreadSummary {
            -webkit-margin-start: calc(-1 * var(--gutterSize));
                    margin-inline-start: calc(-1 * var(--gutterSize));
            -webkit-margin-end: auto;
                    margin-inline-end: auto;
        }

        .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_ReactionsRow,
        .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_EventTile_footer {
            -webkit-box-pack: start;
                -ms-flex-pack: start;
                    justify-content: flex-start;
        }

        .mx_EventTile[data-layout="bubble"][data-self="false"]{

        --backgroundColor: var(--cpd-color-gray-300);
}
        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line {
            -webkit-margin-start: auto;
                    margin-inline-start: auto;
            border-bottom-left-radius: var(--cornerRadius);
        }

            .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line .mx_ImageBody .mx_ImageBody_container,
            .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line .mx_ImageBody::before,
            .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line .mx_MVideoBody .mx_MVideoBody_container,
            .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line .mx_MediaBody,
            .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line .mx_MLocationBody_map,
            .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line .mx_MBeaconBody {
                border-bottom-left-radius: var(--cornerRadius) !important;
            }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_sticker {
            /* align timestamp with those inside bubbles */
            margin-right: 32px;
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_ThreadSummary {
            -webkit-margin-start: auto;
                    margin-inline-start: auto;
            -webkit-margin-end: calc(-1 * var(--gutterSize));
                    margin-inline-end: calc(-1 * var(--gutterSize));
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_DisambiguatedProfile {
            display: none;
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_ReplyTile .mx_DisambiguatedProfile {
            display: block;
            max-width: 100%;
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_footer {
            -webkit-box-pack: end;
                -ms-flex-pack: end;
                    justify-content: flex-end;
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_ReactionsRow {
            -webkit-box-pack: end;
                -ms-flex-pack: end;
                    justify-content: flex-end;
        }

            .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_ReactionsRow > :last-child {
                -webkit-box-ordinal-group: 0;
                    -ms-flex-order: -1;
                        order: -1; /* Moving the "add reaction button" before the reactions */
            }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_avatar {
            top: -19px; /* height of the sender block */
            right: -38px;
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_MediaBody {
            background: var(--cpd-color-green-300);
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_MessageActionBar {
            inset-inline-end: 0;
        }

        .mx_EventTile[data-layout="bubble"][data-self="true"]{

        --backgroundColor: var(--cpd-color-green-300);
}

    .mx_EventTile[data-layout="bubble"] .mx_EventTile_line {
        --EventBubbleTile_line-max-width: 70%;

        width: -webkit-fit-content;

        width: -moz-fit-content;

        width: fit-content;
        max-width: 70%;
        max-width: var(--EventBubbleTile_line-max-width); /* Align message bubble and displayName */
        line-height: 1.125rem; /* fixed line height to prevent emoji from being taller than text */
        position: relative;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        gap: 5px var(--EventTile_bubble_gap-inline);
        margin-block: 0;
        margin-inline: var(--EventTile_bubble_line-margin-inline-start) var(--EventTile_bubble_line-margin-inline-end);
        border-top-left-radius: var(--cornerRadius);
        border-top-right-radius: var(--cornerRadius);

        /* noinspection CssReplaceWithShorthandSafely */
    }
        /* in the DOM depending on the specific rendering context */
        .mx_EventTile[data-layout="bubble"] .mx_EventTile_line > a, 
        .mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp {
            position: absolute;
            padding: 4px 8px;
            bottom: 0;
            right: 0;
            z-index: 3; /* above media and location share maps */
        }

        /* the selector here is quite weird because timestamps can appear linked & unlinked and in different places */
            /* TODO: Use a common class name instead */
            .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_mediaLine .mx_MFileBody,
            .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_mediaLine .mx_MAudioBody {
                max-width: 100%; /* avoid overflow */
            }

            .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_mediaLine .mx_MVoiceMessageBody {
                /* allow the event to be collapsed, this causes the waveform to get cropped */
                min-width: 0;
            }

            /* we put the timestamps for media (other than stickers) atop the media */
                .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_mediaLine.mx_EventTile_image .mx_MessageTimestamp {
                    border-radius: 8px;
                    border-radius: var(--MBody-border-radius);
                    /* Hardcoded colours because it's the same on all themes */
                    background-color: rgb(0, 0, 0, 0.6);
                    color: #ffffff;
                    padding: 0px 4px 0px 4px;
                }
            .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_sticker > a, 
            .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_sticker .mx_MessageActionBar + .mx_MessageTimestamp {
                /* position timestamps for stickers to the right of the un-bubbled sticker */
                right: auto;
                right: initial;
                left: 100%;
            }

            .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_sticker .mx_MStickerBody_wrapper {
                padding: 0;
            }

        .mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_ImageBody {
            width: 100%;
        }
        .mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_ImageBody .mx_ImageBody_container,
        .mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_MVideoBody .mx_MVideoBody_container,
        .mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_MediaBody {
            border-radius: 0;
            border-radius: initial;
            border-top-left-radius: var(--cornerRadius);
            border-top-right-radius: var(--cornerRadius);
        }

        .mx_EventTile[data-layout="bubble"] .mx_EventTile_line .mx_EventTile_e2eIcon {
            -ms-flex-negative: 0;
                flex-shrink: 0; /* keep it at full size */

            /* Keep height equal to text for shield alignment, additional 2px because of 1px padding on text */
            height: calc(1.125rem + 2px);
        }

    .mx_EventTile[data-layout="bubble"]:not(.mx_EventTile_noBubble):not(.mx_EventTile_alignedBetweenBubbles)
        .mx_EventTile_line:not(.mx_EventTile_mediaLine) {
        /* make the top and bottom padding 1px smaller so that we can pad
            .mx_EventTile_content by 1px */
        /* to avoid anti-zalgo cutting off our larger than text emojis. */
        padding: calc(var(--gutterSize) - 1px);
        padding-right: 60px; /* space for the timestamp */
        background: var(--backgroundColor);
    }

        .mx_EventTile[data-layout="bubble"]:not(.mx_EventTile_noBubble):not(.mx_EventTile_alignedBetweenBubbles)
        .mx_EventTile_line:not(.mx_EventTile_mediaLine) .mx_EventTile_content {
            padding: 1px;
        }

    .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="false"] .mx_EventTile_line {
        border-top-left-radius: 0;
    }

        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="false"] .mx_EventTile_line .mx_ImageBody .mx_ImageBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="false"] .mx_EventTile_line .mx_MVideoBody .mx_MVideoBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="false"] .mx_EventTile_line .mx_ImageBody::before,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="false"] .mx_EventTile_line .mx_MediaBody,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="false"] .mx_EventTile_line .mx_MLocationBody_map,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="false"] .mx_EventTile_line .mx_MBeaconBody {
            border-top-left-radius: 0;
        }
    .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line {
        border-bottom-left-radius: var(--cornerRadius);
    }

        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line .mx_ImageBody .mx_ImageBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line .mx_MVideoBody .mx_MVideoBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line .mx_ImageBody::before,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line .mx_MediaBody,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line .mx_MLocationBody_map,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="false"] .mx_EventTile_line .mx_MBeaconBody {
            border-bottom-left-radius: var(--cornerRadius);
        }

    .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="true"] .mx_EventTile_line {
        border-top-right-radius: 0;
    }

        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="true"] .mx_EventTile_line .mx_ImageBody .mx_ImageBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="true"] .mx_EventTile_line .mx_MVideoBody .mx_MVideoBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="true"] .mx_EventTile_line .mx_ImageBody::before,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="true"] .mx_EventTile_line .mx_MediaBody,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="true"] .mx_EventTile_line .mx_MLocationBody_map,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation[data-self="true"] .mx_EventTile_line .mx_MBeaconBody {
            border-top-right-radius: 0;
        }
    .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line {
        border-bottom-right-radius: var(--cornerRadius);
    }

        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line .mx_ImageBody .mx_ImageBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line .mx_MVideoBody .mx_MVideoBody_container,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line .mx_ImageBody::before,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line .mx_MediaBody,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line .mx_MLocationBody_map,
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection[data-self="true"] .mx_EventTile_line .mx_MBeaconBody {
            border-bottom-right-radius: var(--cornerRadius);
        }
        .mx_EventTile[data-layout="bubble"].mx_EventTile_noSender .mx_EventTile_avatar {
            top: -19px;
        }
        .mx_EventTile[data-layout="bubble"][data-has-reply="true"] > .mx_EventTile_line {
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
        }
            .mx_EventTile[data-layout="bubble"][data-has-reply="true"] .mx_ReplyChain .mx_EventTile_reply {
                max-width: 90%;
                padding: 0;
            }
                .mx_EventTile[data-layout="bubble"][data-has-reply="true"] .mx_ReplyChain .mx_EventTile_reply > a, 
                .mx_EventTile[data-layout="bubble"][data-has-reply="true"] .mx_ReplyChain .mx_EventTile_reply .mx_MessageActionBar + .mx_MessageTimestamp {
                    display: none !important;
                }

            .mx_EventTile[data-layout="bubble"][data-has-reply="true"] .mx_ReplyChain .mx_EventTile {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                gap: var(--gutterSize);
            }
                .mx_EventTile[data-layout="bubble"][data-has-reply="true"] .mx_ReplyChain .mx_EventTile .mx_EventTile_avatar {
                    position: static;
                }
                .mx_EventTile[data-layout="bubble"][data-has-reply="true"] .mx_ReplyChain .mx_EventTile .mx_DisambiguatedProfile {
                    display: none;
                }

    .mx_EventTile[data-layout="bubble"] .mx_MPollBody {
        width: 550px; /* to prevent timestamp overlapping summary text */
        max-width: 100%; /* prevent overflowing a reply tile */
    }

        .mx_EventTile[data-layout="bubble"] .mx_MPollBody .mx_MPollBody_totalVotes {
            /* align summary text with corner timestamp */
            padding: 4px 0;
        }
            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad:hover::before {
                background: transparent;
            }

        /* Special layout scenario for "Unable To Decrypt (UTD)" events */
        .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line {
            display: grid;
            grid-template:
                "reply reply" auto
                "shield body" auto
                / auto 1fr;
        }

            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line .mx_UnknownBody,
            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line .mx_ReplyChain_wrapper,
            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line .mx_ViewSourceEvent {
                min-width: 0; /* Prevent a grid blowout */
            }

            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line .mx_EventTile_e2eIcon {
                grid-area: shield;
                margin-top: auto;
                margin-bottom: auto;
            }

            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line .mx_UnknownBody,
            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line .mx_DecryptionFailureBody {
                grid-area: body;
            }

            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad .mx_EventTile_line .mx_ReplyChain_wrapper {
                grid-area: reply;
            }
            /* "Unable To Decrypt" layout for hidden events */
            .mx_EventTile[data-layout="bubble"].mx_EventTile_bad.mx_EventTile_info .mx_EventTile_line {
                gap: 0 9px; /* 9px: margin value of E2E icon */
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                grid-template:
                    "shield source" auto
                    / auto 1fr;
            }

                .mx_EventTile[data-layout="bubble"].mx_EventTile_bad.mx_EventTile_info .mx_EventTile_line .mx_ViewSourceEvent {
                    grid-area: source;
                }

    .mx_EventTile[data-layout="bubble"] .mx_LegacyCallEvent_wrapper,
    .mx_EventTile[data-layout="bubble"] .mx_CallEvent_wrapper {
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
    }

    .mx_EventTile[data-layout="bubble"].mx_EventTile_alignedBetweenBubbles {
        -webkit-margin-start: calc(
            var(--EventTile_bubble-margin-inline-start) + var(--EventTile_bubble_line-margin-inline-start)
        );
                margin-inline-start: calc(
            var(--EventTile_bubble-margin-inline-start) + var(--EventTile_bubble_line-margin-inline-start)
        );
        -webkit-margin-end: calc(
            var(--EventTile_bubble-margin-inline-end) + var(--EventTile_bubble_line-margin-inline-end)
        );
                margin-inline-end: calc(
            var(--EventTile_bubble-margin-inline-end) + var(--EventTile_bubble_line-margin-inline-end)
        );
    }

        .mx_EventTile[data-layout="bubble"].mx_EventTile_alignedBetweenBubbles .mx_EventTile_line {
            max-width: 100%;
            width: 100%;
            margin: 0;
        }

.mx_EventTile.mx_EventTile_noBubble[data-layout="bubble"] {
    --backgroundColor: transparent;
}

    .mx_EventTile.mx_EventTile_noBubble[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_emote {
        padding-right: 60px; /* align with bubbles text */
        font-style: italic;
    }

        .mx_EventTile.mx_EventTile_noBubble[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_emote > a {
            /* linked timestamp element */
            -ms-flex-item-align: center;
                align-self: center;
            bottom: auto;
            bottom: initial;
            top: auto;
            top: initial;
            font-style: normal; /* undo italic above */
        }

        .mx_EventTile.mx_EventTile_noBubble[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_emote .mx_MEmoteBody {
            padding: 4px 0;
        }
    .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line > a, .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line > a {
        /* hide this timestamp as the tile will render its own */
        display: none;
    }

.mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"],
.mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"],
.mx_EventTile.mx_EventTile_info[data-layout="bubble"] {
    padding: 5px 0;
    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;
}

    .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line,
    .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_info,
    .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line,
    .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_info,
    .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line,
    .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_info {
        min-width: 100%;
        /* Preserve alignment with left edge of text in bubbles */
        margin: 0;
    }

.mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"],
.mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"],
.mx_EventTile.mx_EventTile_info[data-layout="bubble"],
.mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] {
    --backgroundColor: transparent;
    --gutterSize: 0;
}

    .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_avatar, .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_avatar, .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_avatar, .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_avatar {
        position: static;
        -webkit-box-ordinal-group: 0;
            -ms-flex-order: -1;
                order: -1;
        -webkit-margin-end: var(--EventTile_bubble_gap-inline);
                margin-inline-end: var(--EventTile_bubble_gap-inline); /* Same spacing between E2E icon and a hidden event */
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex;
    }

    .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_e2eIcon, .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_e2eIcon, .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_e2eIcon, .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_e2eIcon {
        -webkit-margin-start: 0;
                margin-inline-start: 0; /* mx_EventTile_avatar has margin-inline-end, so margin is not needed here */
        -ms-flex-item-align: center;
            align-self: center;
    }
        .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line > a, 
        .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp, 
        .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line > a, 
        .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp, 
        .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line > a, 
        .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp, 
        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_line > a, 
        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp {
            right: auto;
            left: -77px;
            bottom: auto;
            bottom: initial;
            -ms-flex-item-align: center;
                align-self: center;
        }

            .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line > a .mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line > a.mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp .mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_bubbleContainer[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp.mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line > a .mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line > a.mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp .mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_leftAlignedBubble[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp.mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line > a .mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line > a.mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp .mx_MessageTimestamp,
            .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp.mx_MessageTimestamp,
            .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_line > a .mx_MessageTimestamp,
            .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_line > a.mx_MessageTimestamp,
            .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp .mx_MessageTimestamp,
            .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] .mx_EventTile_line .mx_MessageActionBar + .mx_MessageTimestamp.mx_MessageTimestamp {
                vertical-align: middle;
            }
    .mx_GenericEventListSummary[data-layout="bubble"] .mx_EventTile.mx_EventTile_info .mx_EventTile_line {
        /* Avoid overflow of event info by cancelling width settings */
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    /* increase margin between ELS and the next Event to not have our user avatar overlap the expand/collapse button */
    .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="false"] + .mx_EventTile[data-layout="bubble"][data-self="true"] {
        margin-top: 20px;
    }

    .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile_info {
        padding: 2px 0;
        margin-right: 0;
    }

        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile_info .mx_MessageActionBar {
            /* Reset .mx_EventTile[data-layout="bubble"][data-self="false"] .mx_MessageActionBar */
            inset-inline-start: initial;
            inset-inline-end: 48px; /* align with that of right-column bubbles */
        }

        .mx_GenericEventListSummary[data-layout="bubble"][data-expanded="true"] .mx_EventTile_info .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_info::before {
            inset-inline-end: 0; /* match alignment of the hover background to that of chat bubbles */
        }

.mx_EventTile_tileError[data-layout="bubble"] .mx_EventTile_line {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column; /* restore the centering */
}
}
@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 {
    --EventTile_content-margin-inline-end: 34px;
    --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 */
    padding-top: 18px;
    position: relative;
}

    .mx_EventTile.mx_EventTile_info {
        font-size: var(--cpd-font-size-body-sm);
        color: var(--cpd-color-text-secondary);
    }

    .mx_EventTile .mx_EventTile_avatar {
        cursor: pointer;
        -webkit-user-select: none;
           -moz-user-select: none;
            -ms-user-select: none;
                user-select: none;
    }

    .mx_EventTile .mx_EventTile_body {
        overflow-y: hidden;
        text-align: start;
    }

    .mx_EventTile .mx_ReadReceiptGroup_container svg {
        display: inline-block;
        width: 16px;
        height: 16px;
        color: var(--cpd-color-icon-tertiary);
    }
        .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_EventTile_searchHighlight {
        background-color: var(--cpd-color-text-action-accent);
        color: #f4f6fa;
        border-radius: 5px;
        padding-inline: 2px;
        cursor: pointer;
    }

        .mx_EventTile .mx_EventTile_searchHighlight a {
            background-color: var(--cpd-color-text-action-accent);
            color: #f4f6fa;
        }

    .mx_EventTile .mx_MessageTimestamp_lateIcon {
        position: absolute;
        right: 100%;
        top: var(--cpd-space-1x);
        color: var(--cpd-color-text-secondary);
    }

    .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_body {
            /* !important needed to override .mx_ReplyTile .mx_EventTile_content .mx_EventTile_body */
            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;
        }
        .mx_RoomView_searchResultsPanel .mx_EventTile.mx_EventTile_contextual {
            opacity: 0.4;
        }

    .mx_EventTile.mx_EventTile_bubbleContainer {
        display: grid;
        grid-template-columns: 1fr 100px;
    }

        .mx_EventTile.mx_EventTile_bubbleContainer .mx_EventTile_line {
            margin-right: 0;
            grid-column: 1 / 3;
            padding: 0 !important; /* override default padding of mx_EventTile_line so that we can be centered */
        }

        .mx_EventTile.mx_EventTile_bubbleContainer .mx_EventTile_msgOption {
            grid-column: 2;
        }
            .mx_EventTile.mx_EventTile_bubbleContainer:hover .mx_EventTile_line {
                /* To avoid bubble events being highlighted */
                background-color: inherit !important;
            }

    .mx_EventTile.mx_EventTile_isEditing .mx_MessageTimestamp {
        visibility: hidden;
    }

    .mx_EventTile[data-layout="irc"],
    .mx_EventTile[data-layout="group"] {
        --selected-message-border-width: 4px;

        /* TODO: adjust the values for IRC layout */
        --EventTile-box-shadow-offset-x: calc(50px + var(--selected-message-border-width));
        --EventTile-box-shadow-spread-radius: -50px;

        /* this is used for the tile for the event which is selected via the URL. */
    }
        .mx_EventTile[data-layout="irc"] .mx_EventTile_e2eIcon, .mx_EventTile[data-layout="group"] .mx_EventTile_e2eIcon {
            position: absolute;
        }
            .mx_EventTile[data-layout="irc"] .mx_ImageBody .mx_ImageBody_container, .mx_EventTile[data-layout="group"] .mx_ImageBody .mx_ImageBody_container {
                -webkit-box-pack: start;
                    -ms-flex-pack: start;
                        justify-content: flex-start;
                min-height: 2.75rem;
                min-width: 2.75rem;
            }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_line,
        .mx_EventTile[data-layout="irc"] .mx_EventTile_reply,
        .mx_EventTile[data-layout="group"] .mx_EventTile_line,
        .mx_EventTile[data-layout="group"] .mx_EventTile_reply {
            position: relative;
            border-radius: 8px;
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_reply, .mx_EventTile[data-layout="group"] .mx_EventTile_reply {
            margin-right: 10px;
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_msgOption, .mx_EventTile[data-layout="group"] .mx_EventTile_msgOption {
            float: right;
            text-align: right;
            position: relative;
            width: 90px;

            /* Hack to stop the height of this pushing the messages apart.
               Replaces margin-top: -6px. This interacts better with a read
               marker being in between. Content overflows. */
            height: 1px;
        }
            .mx_EventTile[data-layout="irc"].mx_EventTile_highlight .mx_EventTile_line, .mx_EventTile[data-layout="irc"].mx_EventTile_highlight .markdown-body .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_highlight .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_highlight .markdown-body .mx_EventTile_line {
                background-color: #25271f;
            }
            .mx_EventTile[data-layout="irc"]:focus-visible:focus-within .mx_EventTile_line, .mx_EventTile[data-layout="irc"].mx_EventTile_actionBarFocused .mx_EventTile_line, .mx_EventTile[data-layout="irc"].mx_EventTile_isEditing .mx_EventTile_line, .mx_EventTile[data-layout="irc"].mx_EventTile_selected .mx_EventTile_line, .mx_EventTile[data-layout="group"]:focus-visible:focus-within .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_actionBarFocused .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_isEditing .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_selected .mx_EventTile_line {
                background-color: var(--cpd-color-bg-subtle-secondary);
            }
            .mx_EventTile[data-layout="irc"].mx_EventTile_isEditing > .mx_EventTile_line, .mx_EventTile[data-layout="irc"].mx_EventTile_selected > .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_isEditing > .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_selected > .mx_EventTile_line {
                /* TODO: ultimately we probably want some transition on here. */
                -webkit-box-shadow: inset var(--EventTile-box-shadow-offset-x) 0 0 var(--EventTile-box-shadow-spread-radius)
                    var(--cpd-color-bg-action-primary-rest);
                        box-shadow: inset var(--EventTile-box-shadow-offset-x) 0 0 var(--EventTile-box-shadow-spread-radius)
                    var(--cpd-color-bg-action-primary-rest);
            }
            .mx_EventTile[data-layout="irc"].mx_EventTile_info .mx_EventTile_e2eIcon, .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_e2eIcon {
                top: 0;
            }

        .mx_EventTile[data-layout="irc"].mx_EventTile_continuation .mx_EventTile_line, .mx_EventTile[data-layout="group"].mx_EventTile_continuation .mx_EventTile_line {
            clear: both;
        }
            .mx_EventTile[data-layout="irc"]:hover .mx_EventTile_line, .mx_EventTile[data-layout="group"]:hover .mx_EventTile_line {
                background-color: var(--cpd-color-bg-subtle-secondary);
            }
        .mx_EventTile[data-layout="bubble"] .mx_EventTileBubble, .mx_EventTile[data-layout="group"] .mx_EventTileBubble {
            margin-inline: auto;
        }

        .mx_EventTile[data-layout="bubble"] .mx_ReplyChain, .mx_EventTile[data-layout="group"] .mx_ReplyChain {
            margin-bottom: var(--cpd-space-2x);
        }

    .mx_EventTile[data-layout="irc"] {
        --EventTile_irc_line-padding-block: 1px;

        /* add --right-padding value of MessageTimestamp only */
        /* stylelint-disable-next-line declaration-colon-space-after */
        --EventTile_irc_line_info-margin-inline-start: calc(
            var(--name-width) + var(--icon-width) + 1 * var(--right-padding)
        );

        display: -webkit-box;

        display: -ms-flexbox;

        display: flex;
        -webkit-box-align: start;
            -ms-flex-align: start;
                align-items: flex-start;
        padding-top: 0;
    }

        .mx_EventTile[data-layout="irc"] .mx_MessageTimestamp {
            min-width: 46px;
            min-width: var(--MessageTimestamp-width); /* ensure space for EventTile without timestamp */
            text-align: right;
        }

        .mx_EventTile[data-layout="irc"] > *:not(.mx_DisambiguatedProfile) {
            -webkit-margin-end: var(--right-padding);
                    margin-inline-end: var(--right-padding);
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_avatar,
        .mx_EventTile[data-layout="irc"] .mx_EventTile_e2eIcon {
            height: 1.125rem;
            height: var(--irc-line-height);
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_avatar,
        .mx_EventTile[data-layout="irc"] .mx_EventTile_e2eIcon,
        .mx_EventTile[data-layout="irc"] .mx_EventTile_msgOption {
            -ms-flex-negative: 0;
                flex-shrink: 0;
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_avatar {
            -webkit-box-ordinal-group: 2;
                -ms-flex-order: 1;
                    order: 1;
            position: relative;
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-align: center;
                -ms-flex-align: center;
                    align-items: center;

            /* Need to use important to override the js calculated values. */
        }
            .mx_EventTile[data-layout="irc"] .mx_EventTile_avatar > .mx_BaseAvatar,
            .mx_EventTile[data-layout="irc"] .mx_EventTile_avatar > .mx_BaseAvatar > * {
                font-size: 0.625rem !important;
                line-height: calc(0.9375rem - 2px) !important;
            }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_e2eIcon {
            padding: 0;
            -webkit-box-flex: 0;
                -ms-flex-positive: 0;
                    flex-grow: 0;
            background-position: center;
        }
            .mx_EventTile[data-layout="irc"] .mx_EventTile_line .mx_EventTile_e2eIcon {
                /* add a 1px padding top and bottom because our larger
                emoji font otherwise gets cropped by anti-zalgo */
                padding: var(--EventTile_irc_line-padding-block) 0;
                display: inline-block;
            }
                .mx_EventTile[data-layout="irc"] .mx_EventTile_line .mx_ReplyTile .mx_MTextBody {
                    display: -webkit-box; /* Enable -webkit-line-clamp */
                }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_line,
        .mx_EventTile[data-layout="irc"] .mx_EventTile_reply {
            -webkit-box-ordinal-group: 4;
                -ms-flex-order: 3;
                    order: 3;
            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;
            min-width: 0;
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_reply {
            -webkit-box-ordinal-group: 5;
                -ms-flex-order: 4;
                    order: 4;
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_msgOption {
            -webkit-box-ordinal-group: 6;
                -ms-flex-order: 5;
                    order: 5;
        }

            .mx_EventTile[data-layout="irc"] .mx_EventTile_msgOption .mx_ReadReceiptGroup {
                inset-block-start: -0.3rem; /* (var(--irc-line-height) - avatar height) / 2 */
            }

        .mx_EventTile[data-layout="irc"] .mx_ReplyChain {
            margin: 0;
        }

        .mx_EventTile[data-layout="irc"] .mx_EditMessageComposer_buttons {
            position: relative;
        }

        .mx_EventTile[data-layout="irc"] .mx_EventTileBubble {
            position: relative;
            left: var(--EventTile_irc_line_info-margin-inline-start);
        }

            .mx_EventTile[data-layout="irc"] .mx_EventTileBubble.mx_cryptoEvent {
                left: auto;
                left: initial;
            }

        .mx_EventTile[data-layout="irc"] .mx_ReplyTile .mx_EventTileBubble {
            left: auto;
            left: initial; /* Cancel the value specified above for the tile inside ReplyTile */
        }
            .mx_EventTile[data-layout="irc"].mx_EventTile_isEditing > .mx_EventTile_line .mx_EditMessageComposer {
                /* add space for the stroke on box-shadow */
                -webkit-padding-start: calc(
                    var(--selected-message-border-width) + var(--EditMessageComposer-padding-inline)
                );
                        padding-inline-start: calc(
                    var(--selected-message-border-width) + var(--EditMessageComposer-padding-inline)
                );
            }
            .mx_EventTile[data-layout="irc"].mx_EventTile_info .mx_EventTile_avatar {
                left: var(--EventTile_irc_line_info-margin-inline-start);
                top: 0;
                margin-right: var(--right-padding);
                padding-block: var(--EventTile_irc_line-padding-block);
            }

            .mx_EventTile[data-layout="irc"].mx_EventTile_info .mx_EventTile_line {
                -webkit-margin-start: var(--EventTile_irc_line_info-margin-inline-start);
                        margin-inline-start: var(--EventTile_irc_line_info-margin-inline-start);
            }
            .mx_EventTile[data-layout="irc"].mx_EventTile_emote .mx_EventTile_avatar {
                /* add --right-padding value of MessageTimestamp only */
                margin-left: calc(var(--name-width) + var(--icon-width) + 1 * var(--right-padding));
            }

        .mx_EventTile[data-layout="irc"] .mx_EventTile_footer {
            margin: var(--cpd-space-1-5x) 0;
        }
        .mx_EventTile[data-layout="group"] .mx_EventTile_avatar {
            top: 14px;
            left: var(--cpd-space-2x);
        }

        .mx_EventTile[data-layout="group"] .mx_EventTile_line,
        .mx_EventTile[data-layout="group"] .mx_EventTile_reply {
            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_EventTile[data-layout="group"] .mx_EventTile_e2eIcon {
            inset: 0 0 0 44px;

            /* Keep height equal to text for alignment */
            height: var(--EventTile_group_line-line-height);
            margin: 1px;
        }

        .mx_EventTile[data-layout="group"] .mx_EventTile_msgOption {
            -webkit-margin-end: 10px;
                    margin-inline-end: 10px;
        }

            .mx_EventTile[data-layout="group"] .mx_EventTile_msgOption .mx_ReadReceiptGroup {
                /* This aligns the avatar with the last line of the */
                /* message. We want to move it one line up */
                /* See .mx_EventTile[data-layout=group] .mx_EventTile_line in _EventTile.scss */
                inset-block-start: calc(-1.375rem - 3px);
            }

        .mx_EventTile[data-layout="group"] .mx_MessageTimestamp {
            position: absolute;
            left: 0;
            text-align: center;
        }

        .mx_EventTile[data-layout="group"] .mx_ThreadSummary,
        .mx_EventTile[data-layout="group"] .mx_ThreadSummary_icon {
            margin-left: 64px;
        }

        .mx_EventTile[data-layout="group"] .mx_EventTile_footer {
            margin: var(--cpd-space-1x) var(--EventTile_group_line-spacing-inline-start);
        }

        .mx_EventTile[data-layout="group"] > .mx_DisambiguatedProfile {
            line-height: 1.25rem;
            -webkit-margin-start: 64px;
                    margin-inline-start: 64px;
            max-width: calc(100% - 64px);
        }

        .mx_EventTile[data-layout="group"] > .mx_EventTile_avatar {
            position: absolute;
            z-index: 9;
        }

        .mx_RoomView_timeline_rr_enabled .mx_EventTile[data-layout="group"] {

            /* on ELS we need the margin to allow interaction with the expand/collapse button */
            /* which is normally in the RR gutter */
        }

            .mx_RoomView_timeline_rr_enabled .mx_EventTile[data-layout="group"] .mx_ThreadSummary,
            .mx_RoomView_timeline_rr_enabled .mx_EventTile[data-layout="group"] .mx_ThreadSummary_icon,
            .mx_RoomView_timeline_rr_enabled .mx_EventTile[data-layout="group"] .mx_EventTile_line {
                margin-right: 80px;
                min-height: 0.875rem;
            }

            .mx_RoomView_timeline_rr_enabled .mx_EventTile[data-layout="group"] .mx_ThreadSummary {
                /* leave space on both left & right gutters */
                max-width: min(calc(100% - 64px - 80px), 600px);
            }

        .mx_EventTile[data-layout="group"].mx_EventTile_continuation {
            padding-top: 0;
        }

        .mx_EventTile[data-layout="group"].mx_EventTile_info {

            padding-top: 0;
        }

            .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_avatar,
            .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_e2eIcon {
                line-height: 1;
                margin: 3px 0 2px;
            }

            .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_avatar {
                top: auto;
                top: initial;
                inset-inline-start: 64px;
                height: 14px;
            }

            .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_line {
                padding-block: 3px 2px;
                /* 20px: avatar area */
                -webkit-padding-start: calc(var(--EventTile_group_line-spacing-inline-start) + 20px);
                        padding-inline-start: calc(var(--EventTile_group_line-spacing-inline-start) + 20px);
            }

                .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_line .mx_MessageTimestamp {
                    top: 0;
                }

            .mx_EventTile[data-layout="group"].mx_EventTile_info.mx_EventTile_selected .mx_EventTile_line {
                /* TODO: check if this would be necessary; */
                -webkit-padding-start: calc(var(--EventTile_group_line-spacing-inline-start) + 20px);
                        padding-inline-start: calc(var(--EventTile_group_line-spacing-inline-start) + 20px);
            }

    .mx_EventTile[data-layout="bubble"] {
        /* Other half of the gutter is provided by margin-bottom on the last tile
        of the section */
        margin-top: calc(var(--gutterSize) / 2);
        margin-left: var(--EventTile_bubble-margin-inline-start);

        /* Reset default values. TODO: remove */
        max-width: none;
        max-width: initial;
        padding-top: 0;
    }
            .mx_EventTile[data-layout="bubble"] .mx_EventTile_msgOption .mx_ReadReceiptGroup {
                position: absolute;
                inset-block-start: auto;

                /* as close to right gutter without clipping as possible */
                inset-inline-end: calc(-1 * var(--ReadReceiptGroup_EventBubbleTile-spacing-end));

                /* (EventTileLine.line-height - ReadReceiptGroup.height) / 2 */
                /* this centers the ReadReceiptGroup if we’ve got a single line */
                inset-block-end: calc((1.125rem - 24px) / 2);
            }
        .mx_EventTile[data-layout="bubble"] .mx_EventTileBubble {
            /* Timestamps are inside the tile, so the width can be less constrained */
            max-width: 600px;
        }

        .mx_EventTile[data-layout="bubble"].mx_EventTile_continuation {
            margin-top: 2px;
        }
        .mx_EventTile[data-layout="bubble"].mx_EventTile_lastInSection {
            /* Other half of the gutter is provided by margin-top on the first
            tile of the section */
            margin-bottom: calc(var(--gutterSize) / 2);
        }
        .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)
            );
        }
        .mx_GenericEventListSummary[data-layout="group"] .mx_EventTile_line {
            padding-left: 64px;
        }

        .mx_GenericEventListSummary[data-layout="group"] .mx_GenericEventListSummary_unstyledList > .mx_EventTile_info .mx_EventTile_avatar ~ .mx_EventTile_line {
            /* override padding-left $left-gutter */
            -webkit-padding-start: calc(var(--EventTile_group_line-spacing-inline-start) + 20px);
                    padding-inline-start: calc(var(--EventTile_group_line-spacing-inline-start) + 20px);
        }

.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;
    margin-right: var(--EventTile_content-margin-inline-end);
}

    .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: "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji" !important;
            background-color: var(--cpd-color-bg-subtle-secondary);
        }

        .mx_EventTile_content .markdown-body code:not(pre *) {
            background-color: var(--cpd-color-bg-subtle-secondary);
            border: 1px solid var(--cpd-color-gray-400);
            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 var(--cpd-color-gray-400);
}

            .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(--cpd-color-text-link-external);
        }

        .mx_EventTile_content .markdown-body blockquote {
            border-left: 2px solid var(--cpd-color-border-interactive-primary);
            color: var(--cpd-color-text-secondary);
            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: var(--cpd-color-text-secondary);
        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_e2eIcon {
    position: relative;
    width: 14px;
    height: 14px;
    display: block;
}

    .mx_EventTile_e2eIcon svg {
        height: inherit;
        width: inherit;
        display: block;
    }
    .mx_EventTile_body a:hover {
        text-decoration: underline;
    }

    .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 var(--cpd-color-gray-800);
        }

    /* 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_clamp .mx_EventTile_body {
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        text-overflow: ellipsis;
        display: -webkit-box;
    }

    .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: #b9bec6;
            }

.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,
.mx_EventTile.mx_EventTile_actionBarFocused .mx_ThreadActionBar,
[data-whatinput="keyboard"] .mx_EventTile:focus-within .mx_ThreadActionBar,
.mx_EventTile:focus-visible:focus-within .mx_ThreadActionBar {
    visibility: visible;
}

.mx_EventTile[data-shape="ThreadsList"],
.mx_EventTile[data-shape="Notification"] {
    --topOffset: var(--cpd-space-3x);
    --leftOffset: 48px; /* notification dot next to the timestamp */

    margin: calc(var(--topOffset) + 1px) 0 var(--topOffset); /* include the height of horizontal line */
    padding: var(--cpd-space-2x);
    border-radius: 8px;

    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;
}

    .mx_EventTile[data-shape="ThreadsList"]::after,
    .mx_EventTile[data-shape="ThreadsList"]::before,
    .mx_EventTile[data-shape="Notification"]::after,
    .mx_EventTile[data-shape="Notification"]::before {
        content: "";
        position: absolute;
    }

    .mx_EventTile[data-shape="ThreadsList"]::after, .mx_EventTile[data-shape="Notification"]::after { /* exclude the height of horizontal line */
        inset: auto calc(-1 * var(--cpd-space-2x)) calc(-1 * var(--topOffset) - 1px) calc(var(--leftOffset) + var(--cpd-space-2x));

        height: 1px;
        background-color: var(--cpd-color-gray-400);
        pointer-events: none; /* disable the message action bar on hover */
    }

    .mx_EventTile[data-shape="ThreadsList"]::before, .mx_EventTile[data-shape="Notification"]::before {
        inset: 0;
        pointer-events: none; /* ensures the title for the sender name can be correctly displayed */
    }

    .mx_EventTile[data-shape="ThreadsList"][data-notification="total"]::before, .mx_EventTile[data-shape="Notification"][data-notification="total"]::before {
        background-color: var(--cpd-color-icon-tertiary);
    }

    .mx_EventTile[data-shape="ThreadsList"][data-notification="highlight"]::before, .mx_EventTile[data-shape="Notification"][data-notification="highlight"]::before {
        background-color: var(--cpd-color-text-critical-primary);
    }
        .mx_EventTile[data-shape="ThreadsList"]:last-child::after, .mx_EventTile[data-shape="Notification"]:last-child::after {
            content: normal;
            content: initial;
        }
        .mx_EventTile[data-shape="ThreadsList"]:last-child, .mx_EventTile[data-shape="Notification"]:last-child{

        margin-bottom: 0;
}

    .mx_EventTile[data-shape="ThreadsList"]:first-child, .mx_EventTile[data-shape="Notification"]:first-child {
        margin-top: 0;
    }

    .mx_EventTile[data-shape="ThreadsList"] .mx_EventTile_avatar, .mx_EventTile[data-shape="Notification"] .mx_EventTile_avatar {
        inset: var(--cpd-space-2x) auto auto var(--cpd-space-2x);
    }

    .mx_EventTile[data-shape="ThreadsList"] .mx_EventTile_details, .mx_EventTile[data-shape="Notification"] .mx_EventTile_details {
        overflow: hidden;
    }

    .mx_EventTile[data-shape="ThreadsList"] .mx_DisambiguatedProfile, .mx_EventTile[data-shape="Notification"] .mx_DisambiguatedProfile {
        display: -webkit-inline-box;
        display: -ms-inline-flexbox;
        display: inline-flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
    }

        .mx_EventTile[data-shape="ThreadsList"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_displayName,
        .mx_EventTile[data-shape="ThreadsList"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_mxid,
        .mx_EventTile[data-shape="Notification"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_displayName,
        .mx_EventTile[data-shape="Notification"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_mxid {
            display: block;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .mx_EventTile[data-shape="ThreadsList"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_displayName, .mx_EventTile[data-shape="Notification"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_displayName {
            -webkit-box-flex: 0;
                -ms-flex: none;
                    flex: none;
            max-width: 100%;
        }

        .mx_EventTile[data-shape="ThreadsList"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_mxid, .mx_EventTile[data-shape="Notification"] .mx_DisambiguatedProfile .mx_DisambiguatedProfile_mxid {
            -webkit-box-flex: 1;
                -ms-flex: 1;
                    flex: 1;
        }

    .mx_EventTile[data-shape="ThreadsList"] .mx_EventTile_line, .mx_EventTile[data-shape="Notification"] .mx_EventTile_line {
        width: 100%;
        -webkit-box-sizing: border-box;
                box-sizing: border-box;
        padding-bottom: 0;
        -webkit-padding-start: var(--leftOffset);
                padding-inline-start: var(--leftOffset);
    }

    .mx_EventTile[data-shape="ThreadsList"] .mx_MessageTimestamp, .mx_EventTile[data-shape="Notification"] .mx_MessageTimestamp {
        font-size: 0.75rem;
        width: auto;
        width: initial; /* Cancel the default width */
        overflow: hidden; /* ensure correct overflow behavior */
        text-overflow: ellipsis;
        position: static;
        position: initial;
        margin-left: auto; /* to ensure it's end-aligned even if it's the only element of its parent */
    }

    .mx_EventTile[data-shape="ThreadsList"]:hover, .mx_EventTile[data-shape="Notification"]:hover {
        background-color: var(--cpd-color-bg-subtle-secondary);
    }

    /* ThreadsList has always group layout */
        .mx_EventTile[data-shape="ThreadsList"][data-layout="group"]:hover .mx_EventTile_line, .mx_EventTile[data-shape="Notification"][data-layout="group"]:hover .mx_EventTile_line {
            background-color: inherit;
            -webkit-box-shadow: none;
                    box-shadow: none; /* don't show the verification left stroke in the thread list */
        }
    .mx_EventTile[data-shape="ThreadsList"] .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[data-shape="ThreadsList"] .mx_ThreadPanel_replies > svg {
            display: inline-block;
            height: 18px;
            width: 18px;
            -ms-flex-negative: 0;
                flex-shrink: 0;
            color: var(--cpd-color-icon-tertiary);
        }

        .mx_EventTile[data-shape="ThreadsList"] .mx_ThreadPanel_replies .mx_ThreadPanel_replies_amount {
            color: var(--cpd-color-text-secondary);
            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(--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: var(--cpd-color-text-secondary);
    }

/* 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_EventTile {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }

        .mx_ThreadView .mx_EventTile .mx_EventTile_roomName {
            display: none;
        }

        /* handling for hidden events (e.g reactions) in the thread view */
            .mx_ThreadView .mx_EventTile.mx_EventTile_info .mx_EventTile_avatar {
                position: absolute;
                /* Align with hidden event content */
                top: 50%;
                -webkit-transform: translateY(-50%);
                        transform: translateY(-50%);
                margin-top: -2px;
                margin-bottom: 0;
            }

            .mx_ThreadView .mx_EventTile.mx_EventTile_info.mx_EventTile_selected .mx_EventTile_line,
            .mx_ThreadView .mx_EventTile.mx_EventTile_info .mx_EventTile_line {

                -webkit-padding-start: 0;

                        padding-inline-start: 0;
                line-height: 0.75rem;
            }

                .mx_ThreadView .mx_EventTile.mx_EventTile_info.mx_EventTile_selected .mx_EventTile_line .mx_EventTile_content,
                .mx_ThreadView .mx_EventTile.mx_EventTile_info.mx_EventTile_selected .mx_EventTile_line .mx_RedactedBody,
                .mx_ThreadView .mx_EventTile.mx_EventTile_info .mx_EventTile_line .mx_EventTile_content,
                .mx_ThreadView .mx_EventTile.mx_EventTile_info .mx_EventTile_line .mx_RedactedBody {
                    width: auto;
                    font-size: 0.75rem;
                }

            .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="irc"],
            .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="group"] {
                padding-top: 0;
            }

                .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="irc"] .mx_EventTile_avatar, .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="group"] .mx_EventTile_avatar {
                    /* 14px: avatar width, 4px: align with text */
                    left: calc(46px + 14px - 4px);
                    left: calc(var(--MessageTimestamp-width) + 14px - 4px);
                    z-index: 9; /* position above the hover styling */
                }

                .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="irc"] .mx_MessageTimestamp, .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="group"] .mx_MessageTimestamp {
                    top: 2px; /* Align with avatar */
                }
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="irc"].mx_EventTile_selected .mx_EventTile_line .mx_EventTile_content,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="irc"].mx_EventTile_selected .mx_EventTile_line .mx_RedactedBody,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="irc"] .mx_EventTile_line .mx_EventTile_content,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="irc"] .mx_EventTile_line .mx_RedactedBody,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="group"].mx_EventTile_selected .mx_EventTile_line .mx_EventTile_content,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="group"].mx_EventTile_selected .mx_EventTile_line .mx_RedactedBody,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="group"] .mx_EventTile_line .mx_EventTile_content,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="group"] .mx_EventTile_line .mx_RedactedBody {
                        /* 14px: avatar width, 6px: 20px - 14px */
                        -webkit-margin-start: calc(14px + 6px);
                                margin-inline-start: calc(14px + 6px);
                    }
                .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_avatar {
                    inset-inline-start: 0;
                }
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="bubble"].mx_EventTile_selected .mx_EventTile_line .mx_EventTile_content,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="bubble"].mx_EventTile_selected .mx_EventTile_line .mx_RedactedBody,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line .mx_EventTile_content,
                    .mx_ThreadView .mx_EventTile.mx_EventTile_info[data-layout="bubble"] .mx_EventTile_line .mx_RedactedBody {
                        -webkit-margin-start: calc(var(--ThreadView_group_spacing-start) + 14px + 6px);
                                margin-inline-start: calc(var(--ThreadView_group_spacing-start) + 14px + 6px);
                    }

        .mx_ThreadView .mx_EventTile[data-layout="irc"],
        .mx_ThreadView .mx_EventTile[data-layout="group"] {
            -webkit-padding-before: var(--cpd-space-4x);
                    padding-block-start: var(--cpd-space-4x);
        }

            .mx_ThreadView .mx_EventTile[data-layout="irc"] .mx_EventTile_line,
            .mx_ThreadView .mx_EventTile[data-layout="irc"] .mx_EventTile_footer,
            .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_line,
            .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_footer {
                -webkit-margin-end: var(--ThreadView_group_spacing-end);
                        margin-inline-end: var(--ThreadView_group_spacing-end);
            }

            .mx_ThreadView .mx_EventTile[data-layout="irc"] .mx_EventTile_line, .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_line {
                padding-block: var(--BaseCard_EventTile_line-padding-block);

                /* Add padding to align message text with summary text */
                /* See: .mx_EventTile[data-layout="group"] .mx_EventTile_line */
                -webkit-padding-start: var(--ThreadView_group_spacing-start);
                        padding-inline-start: var(--ThreadView_group_spacing-start);
            }
                    .mx_ThreadView .mx_EventTile[data-layout="irc"] .mx_EventTile_line .mx_EventTile_content.mx_EditMessageComposer, .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_line .mx_EventTile_content.mx_EditMessageComposer {
                        -webkit-padding-start: 0;
                                padding-inline-start: 0; /* align start of first letter with that of the event body */
                    }

            .mx_ThreadView .mx_EventTile[data-layout="irc"] .mx_EventTile_footer, .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_footer {
                /* Align with message text and summary text */
                -webkit-margin-start: var(--ThreadView_group_spacing-start);
                        margin-inline-start: var(--ThreadView_group_spacing-start);
            }

            .mx_ThreadView .mx_EventTile[data-layout="irc"].mx_EventTile_continuation, .mx_ThreadView .mx_EventTile[data-layout="group"].mx_EventTile_continuation {
                -webkit-padding-before: 0;
                        padding-block-start: 0; /* Cancel padding-block-start */
            }

        .mx_ThreadView .mx_EventTile[data-layout="group"] {
            width: 100%;
        }

            .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_senderDetails {
                display: -webkit-box;
                display: -ms-flexbox;
                display: flex;
                -webkit-box-align: center;
                    -ms-flex-align: center;
                        align-items: center;
                gap: var(--cpd-space-4x); /* gap between the avatar and the sender ID */
                -webkit-padding-start: var(--cpd-space-2x);
                        padding-inline-start: var(--cpd-space-2x);
            }

                .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_senderDetails a {
                    -webkit-box-flex: 1;
                        -ms-flex: 1;
                            flex: 1;
                    min-width: 0;
                    min-width: initial;
                    max-width: 100%;
                    display: -webkit-box;
                    display: -ms-flexbox;
                    display: flex;
                    -webkit-box-align: center;
                        -ms-flex-align: center;
                            align-items: center;
                }

                    .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_EventTile_senderDetails a .mx_DisambiguatedProfile {
                        -webkit-margin-start: 8px;
                                margin-inline-start: 8px;
                        -webkit-box-flex: 1;
                            -ms-flex: 1;
                                flex: 1;
                    }

            .mx_ThreadView .mx_EventTile[data-layout="group"] .mx_MessageTimestamp {
                position: absolute; /* for IRC layout */
                top: 2px; /* Align with mx_EventTile_content */
            }

        .mx_ThreadView .mx_EventTile[data-layout="bubble"] {
            margin-inline: var(--BaseCard_EventTile-spacing-inline);
        }

            .mx_ThreadView .mx_EventTile[data-layout="bubble"]::before {
                inset-inline: calc(-1 * var(--BaseCard_EventTile-spacing-inline));
                z-index: auto; /* enable background color on hover */
            }

            .mx_ThreadView .mx_EventTile[data-layout="bubble"] .mx_ReactionsRow {
                position: relative; /* display on hover */
            }

            .mx_ThreadView .mx_EventTile[data-layout="bubble"] .mx_EventTile_line.mx_EventTile_mediaLine {
                padding-block: 0;
                -webkit-padding-start: 0;
                        padding-inline-start: 0;
                max-width: var(--EventBubbleTile_line-max-width);
            }

            .mx_ThreadView .mx_EventTile[data-layout="bubble"][data-self="true"] {
                -webkit-box-align: end;
                    -ms-flex-align: end;
                        align-items: flex-end;
            }

                .mx_ThreadView .mx_EventTile[data-layout="bubble"][data-self="true"] .mx_EventTile_line.mx_EventTile_mediaLine {
                    margin: 0 var(--EventTile_bubble_line-margin-inline-end) 0 0; /* align with normal messages */
                }
            .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 */
            }

/* Cascading - compact modern layout on the main timeline and the right panel */
    .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] {
        --MatrixChat_useCompactLayout_group-padding-top: var(--cpd-space-1x);
        --MatrixChat_useCompactLayout-top-avatar: 2px;
        --MatrixChat_useCompactLayout_line-spacing-block: 0px;

        padding-top: var(--MatrixChat_useCompactLayout_group-padding-top);
    }

        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_line,
        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_reply {
            padding-block: var(--MatrixChat_useCompactLayout_line-spacing-block);
        }

        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_ReplyChain {
            margin-bottom: var(--cpd-space-1x);
        }

        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_info {
            padding-top: 0; /* same as the padding for non-compact .mx_EventTile.mx_EventTile_info */
            font-size: 0.8125rem;
        }

            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_e2eIcon,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_avatar {
                top: 0;
                margin-block: var(--MatrixChat_useCompactLayout_line-spacing-block);
            }

            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_line,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_info .mx_EventTile_reply {
                line-height: 1.25rem;
            }

        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_emote {
            padding-top: var(--cpd-space-2x); /* add a bit more space for emotes so that avatars don't collide */
        }

            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_emote .mx_EventTile_avatar {
                top: var(--MatrixChat_useCompactLayout-top-avatar);
            }

            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_emote .mx_EventTile_line,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_emote .mx_EventTile_reply {
                padding-bottom: 1px;
            }
                .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_emote.mx_EventTile_continuation .mx_EventTile_line,
                .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_emote.mx_EventTile_continuation .mx_EventTile_reply {
                    padding-bottom: var(--MatrixChat_useCompactLayout_line-spacing-block);
                }

        /* Cascading - apply zero padding to every element including mx_EventTile_emote */
        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"].mx_EventTile_continuation {
            padding-top: var(--MatrixChat_useCompactLayout_line-spacing-block);
        }

        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_avatar {
            top: var(--MatrixChat_useCompactLayout-top-avatar);
        }

        .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_e2eIcon {
            margin: 0px;
        }
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_msgOption .mx_ReadReceiptGroup {
                /* This aligns the avatar with the last line of the */
                /* message. We want to move it one line up - 2rem */
                inset-block-start: -2rem;
            }
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_content .markdown-body p,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_content .markdown-body ul,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_content .markdown-body ol,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_content .markdown-body dl,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_content .markdown-body blockquote,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_content .markdown-body pre,
            .mx_MatrixChat_useCompactLayout .mx_EventTile[data-layout="group"] .mx_EventTile_content .markdown-body table {
                margin-bottom: var(--cpd-space-1x); /* 1/4 of the non-compact margin-bottom */
            }

.mx_EventTile_details {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: -webkit-fill-available;
    width: -moz-available;
    width: stretch;
    -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-2x);
    margin-left: var(--leftOffset);
}
    .mx_EventTile_details .mx_EventTile_truncated {
        -webkit-box-flex: 1;
            -ms-flex: 1;
                flex: 1;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

.mx_EventTile_footer {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: var(--cpd-space-2x);
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
}

/* 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: #b9bec6;
    }
}
@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 */
    --event-tile-irc-name-width: var(--name-width);
    --icon-width: 14px;
    --line-height: var(--irc-line-height);
    --right-padding: 5px;

    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_ReplyChain .mx_EventTile_emote > .mx_EventTile_avatar {
                margin-left: 0;
                margin-left: initial;
            }

        .mx_IRCLayout .mx_ReplyChain .mx_MessageTimestamp {
            width: auto;
            width: initial;
        }

        /**
         * adding the icon back in the document flow
         * if it's not present, there's no unwanted wasted space
         */
        .mx_IRCLayout .mx_ReplyChain .mx_EventTile_e2eIcon {
            position: relative;
            -webkit-box-ordinal-group: 0;
                -ms-flex-order: -1;
                    order: -1;
        }

    .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(--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: var(--cpd-color-text-secondary);
}
        .mx_LiveContentSummary .mx_LiveContentSummary_text svg {
            display: inline-block;
            vertical-align: text-bottom;
            color: var(--cpd-color-text-secondary);
            width: 16px;
            height: 16px;
            margin-right: 4px;
        }

        .mx_LiveContentSummary .mx_LiveContentSummary_text.mx_LiveContentSummary_text_active {
            color: var(--cpd-color-text-action-accent);
        }

            .mx_LiveContentSummary .mx_LiveContentSummary_text.mx_LiveContentSummary_text_active svg {
                color: var(--cpd-color-text-action-accent);
            }

    .mx_LiveContentSummary .mx_LiveContentSummary_participants svg {
        display: inline-block;
        vertical-align: middle;
        color: var(--cpd-color-text-secondary);
        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);
    max-height: 112px;
}

    .mx_MemberListHeaderView .mx_MemberListHeaderView_container {
        margin-top: var(--cpd-space-6x);
        width: 100%;
    }

    .mx_MemberListHeaderView .mx_MemberListHeaderView_invite_small {
        margin-left: var(--cpd-space-3x);
        margin-right: var(--cpd-space-4x);
    }

    .mx_MemberListHeaderView .mx_MemberListHeaderView_invite_large {
        width: 288px;
        height: 36px;
    }

    .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;
        margin-left: 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_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 transparent;
    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(--cpd-color-gray-900);
    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: rgba(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(--cpd-color-text-primary);
        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: var(--cpd-color-text-action-accent);
            opacity: 1;
        }

        .mx_MessageComposer_input textarea::-webkit-input-placeholder {
            color: var(--cpd-color-text-action-accent);
        }

.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(--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(--cpd-color-icon-tertiary);
    }
        .mx_MessageComposer_wysiwyg .mx_MessageComposer_button:hover {
        background-color: var(--cpd-color-bg-subtle-secondary);
    }

        .mx_MessageComposer_wysiwyg .mx_MessageComposer_button:hover svg {
            color: var(--cpd-color-gray-800);
        }
            .mx_MessageComposer_wysiwyg .mx_MessageComposer_button.mx_MessageComposer_closeButtonMenu::after {
                background: var(--cpd-color-green-300);
            }

            .mx_MessageComposer_wysiwyg .mx_MessageComposer_button.mx_MessageComposer_closeButtonMenu::before {
                background-color: var(--cpd-color-text-action-accent);
                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(--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;
                color: var(--cpd-color-bg-canvas-default);
                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: var(--cpd-color-text-secondary);
    }
}
@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(--cpd-color-text-primary);
    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: #b9bec6;
    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;
    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(--cpd-color-bg-subtle-secondary);
            }

    .mx_ReadReceiptGroup .mx_ReadReceiptGroup_remainder {
        color: var(--cpd-color-text-secondary);
        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 .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(--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: #343a46;
            }

            .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: var(--cpd-color-text-secondary);
                }

.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 transparent;
    border-bottom: none;
    background: var(--cpd-color-bg-canvas-default);
    max-height: 50vh;
    overflow: auto;
}

    .mx_ReplyPreview .mx_ReplyPreview_section {
        border-bottom: 1px solid transparent;
        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(--cpd-color-text-primary);
            font-weight: 400;
            opacity: 0.4;
        }

            .mx_ReplyPreview .mx_ReplyPreview_section .mx_ReplyPreview_header .mx_ReplyPreview_header_cancel svg {
                color: var(--cpd-color-text-primary);
                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 rgba(0, 0, 0, 0.28);
                box-shadow: 0px -16px 32px rgba(0, 0, 0, 0.28);
        border-radius: 8px 8px 0 0;
    }
}
@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_ReplyTile {
    position: relative;
    padding: 2px 0;
    font: var(--cpd-font-body-md-regular);
}

    .mx_ReplyTile > a {
        display: grid;
        grid-template:
            "sender" auto
            "message" auto
            / 100%;
        text-decoration: none;
        color: var(--cpd-color-text-secondary);
        -webkit-transition: color ease 0.15s;
        transition: color ease 0.15s;
        grid-gap: 2px;
        gap: 2px;
        max-width: 100%; /* avoid overflow with wide content */
    }

        .mx_ReplyTile > a:hover {
            color: var(--cpd-color-text-primary);
        }

    .mx_ReplyTile .mx_RedactedBody {
        line-height: 1.125rem;
    }

    .mx_ReplyTile .mx_RedactedBody,
    .mx_ReplyTile .mx_HiddenBody {
        padding: 4px 0 2px 20px;
    }

        .mx_ReplyTile .mx_RedactedBody::before, .mx_ReplyTile .mx_HiddenBody::before {
            height: 13px;
            width: 13px;
            top: 3px;
        }

    /* We do reply size limiting with CSS to avoid duplicating the TextualBody component. */
    .mx_ReplyTile .mx_EventTile_content {
        grid-area: message;

        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

        .mx_ReplyTile .mx_EventTile_content .mx_EventTile_body.mx_EventTile_bigEmoji {
            line-height: 1.375rem !important; /* Same as var(--EventTile_group_line-line-height) */
            font-size: 0.875rem !important; /* Override the big emoji override */
        }

        /* in order to keep the message on two lines, we need to make the body inline */
        .mx_ReplyTile .mx_EventTile_content .mx_EventTile_body {
            display: inline;
        }

        /* The annotation wrapper is flex in normal timeline messages, but that stops
        -webkit-line-clamp from trimming long edited quotes down to two lines. */
        .mx_ReplyTile .mx_EventTile_content [data-textual-body-annotation-wrapper] {
            display: contents;
        }

        /* Hide line numbers and edited indicator */
        .mx_ReplyTile .mx_EventTile_content .mx_EventTile_lineNumbers,
        .mx_ReplyTile .mx_EventTile_content [data-textual-body-edited-marker] {
            display: none;
        }

        /* Hack to cut content in <pre> tags too */
        .mx_ReplyTile .mx_EventTile_content .mx_EventTile_pre_container > pre {
            overflow-x: scroll;
            overflow-y: hidden;
            text-overflow: ellipsis;
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 2;
            padding: 4px;
        }

        .mx_ReplyTile .mx_EventTile_content .markdown-body blockquote,
        .mx_ReplyTile .mx_EventTile_content .markdown-body dl,
        .mx_ReplyTile .mx_EventTile_content .markdown-body ol,
        .mx_ReplyTile .mx_EventTile_content .markdown-body p,
        .mx_ReplyTile .mx_EventTile_content .markdown-body pre,
        .mx_ReplyTile .mx_EventTile_content .markdown-body table,
        .mx_ReplyTile .mx_EventTile_content .markdown-body ul {
            margin-bottom: 4px;
        }

    .mx_ReplyTile.mx_ReplyTile_info {
        padding-top: 0;
    }

    .mx_ReplyTile.mx_ReplyTile_inline > a {
        /* Render replies to emotes inline with the sender avatar */
        grid-template:
            "sender        message" auto
            / -webkit-max-content auto;
        grid-template:
            "sender        message" auto
            / max-content auto;
        gap: 4px; /* increase spacing */
    }

    .mx_ReplyTile .mx_ReplyTile_sender {
        grid-area: sender;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        gap: 4px;
    }

        .mx_ReplyTile .mx_ReplyTile_sender .mx_DisambiguatedProfile {
            margin: 0;
        }

        .mx_ReplyTile .mx_ReplyTile_sender .mx_BaseAvatar {
            /* Prevent crushing by the flexbox */
            -ms-flex-negative: 0;
                flex-shrink: 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(--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;
}

.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);
}

.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;
}

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

.mx_RoomHeader .mx_FacePile {
    color: var(--cpd-color-text-secondary);
    background: 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(--cpd-color-text-primary);
        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: var(--cpd-color-text-secondary);
    display: inline-block;
}

    .mx_RoomInfoLine svg {
        margin-right: 6px;
        vertical-align: -2px;
        color: var(--cpd-color-gray-800);
    }

    .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: var(--cpd-color-text-secondary);
    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: var(--cpd-color-bg-subtle-secondary);
    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(--cpd-color-text-primary);
        margin-top: var(--cpd-space-6x);
    }

        .mx_RoomPreviewCard .mx_RoomPreviewCard_notice svg {
            height: 1em;
            width: 1em;
            margin-right: var(--cpd-space-2x);
            color: var(--cpd-color-text-secondary);
            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: var(--cpd-color-text-secondary);
            }

    .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: var(--cpd-color-text-action-accent);
            border: 3px solid var(--cpd-color-bg-subtle-secondary);

            left: calc(-50px / 4 - 3px);
        }

            .mx_RoomPreviewCard .mx_RoomPreviewCard_avatar .mx_RoomPreviewCard_video svg {
                width: inherit;
                height: inherit;
                color: var(--cpd-color-text-primary);
            }

        /* 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: var(--cpd-color-bg-subtle-secondary);
    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: var(--cpd-color-text-critical-primary);
    font-weight: bold;
}

.mx_RoomUpgradeWarningBar_body {
    color: var(--cpd-color-text-critical-primary);
}

.mx_RoomUpgradeWarningBar_upgradelink {
    color: var(--cpd-color-text-critical-primary);
    text-decoration: underline;
}

.mx_RoomUpgradeWarningBar_small {
    color: var(--cpd-color-gray-900);
    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: var(--cpd-color-text-action-accent);
}
}
@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(--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(--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 var(--cpd-color-gray-600);
    border-radius: 32px;
    margin-right: 2px; /* between us and the waveform component */
}

    .mx_VoiceRecordComposerTile_stop svg {
        width: inherit;
        height: inherit;
        color: #ff5b55;
    }

.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: var(--cpd-color-gray-600);
    }

.mx_VoiceRecordComposerTile_uploadingState {
    margin-right: 10px;
    color: var(--cpd-color-text-secondary);
}

.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: #ff5b55;
            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 .mx_EventTile_avatar. */
.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(--cpd-color-bg-canvas-default);
    border-radius: 40px;
}

.mx_WhoIsTypingTile_remainingAvatarPlaceholder {
    position: relative;
    display: inline-block;
    color: var(--cpd-color-text-primary);
    background-color: var(--cpd-color-gray-400);
    border: 1px solid 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: #b9bec6;
}

.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 transparent;
        background-color: var(--cpd-color-bg-canvas-default);
        max-height: 200px;
        padding: 3px 6px;
    }

        .mx_EditWysiwygComposer .mx_WysiwygComposer_Editor_content:focus {
            border-color: var(--cpd-color-green-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: var(--cpd-color-gray-400);
        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: var(--cpd-color-gray-600);
    }
}
@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;
    --placeholder: "";
}

    @-webkit-keyframes visualbell {
        from {
            background-color: #800;
        }
        to {
            background-color: var(--cpd-color-bg-canvas-default);
        }
    }

    @keyframes visualbell {
        from {
            background-color: #800;
        }
        to {
            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: var(--cpd-color-bg-subtle-secondary);
            border: 1px solid var(--cpd-color-gray-400);
            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: "Fira Code", var(--emoji-font-family), "Apple Color Emoji", "Segoe UI Emoji", "Courier", monospace,
    "Noto Color Emoji" !important;
            background-color: var(--cpd-color-bg-subtle-secondary);
            border: 1px solid var(--cpd-color-gray-400);
            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(--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(--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: var(--avatar-color, var(--cpd-color-bg-canvas-default));
                font-weight: bold;
                font-size: 0.6275rem;
            }

    .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 var(--cpd-color-gray-400);
        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(--cpd-color-bg-subtle-secondary);
        }

            .mx_FormattingButtons .mx_FormattingButtons_Button_hover:hover .mx_FormattingButtons_Icon {
                color: var(--cpd-color-text-secondary);
            }

    .mx_FormattingButtons .mx_FormattingButtons_active {
        background: var(--cpd-color-green-300);
    }

        .mx_FormattingButtons .mx_FormattingButtons_active .mx_FormattingButtons_Icon {
            color: var(--cpd-color-text-action-accent);
        }
        .mx_FormattingButtons .mx_FormattingButtons_disabled .mx_FormattingButtons_Icon {
            color: var(--cpd-color-gray-400);
        }

    .mx_FormattingButtons .mx_FormattingButtons_Icon {
        --size: 16px;
        height: 16px;
        height: var(--size);
        width: 16px;
        width: var(--size);
        color: var(--cpd-color-gray-800);
    }
    .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 var(--cpd-color-gray-400);
    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_EventTile[data-layout="bubble"] {
        margin-top: 30px;
    }

    .mx_FontScalingPanel_preview .mx_EventTile_msgOption {
        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: var(--cpd-color-gray-400);
        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: var(--cpd-color-text-critical-primary);
    }
}
@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 var(--cpd-color-text-action-accent);
    border-radius: 8px;
    color: var(--cpd-color-text-action-accent);
    font-size: 0.75rem;
    line-height: 0.9375rem;
}
    .mx_JoinRuleSettings_spacesWithAccess > h4 {
        color: var(--cpd-color-text-secondary);
        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: var(--cpd-color-text-secondary);
        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(--cpd-color-text-primary);
        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: var(--cpd-color-text-secondary);
    }

        .mx_JoinRuleSettings_radioButton + span + .mx_StyledRadioButton {
            border-top: 1px solid var(--cpd-color-gray-400);
        }

.mx_JoinRuleSettings_labelledCheckbox {
    font: var(--cpd-font-body-md-regular);
    margin-top: var(--cpd-space-2x);
}

.mx_JoinRuleSettings_recommended {
    color: var(--cpd-color-green-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(--cpd-color-bg-canvas-default);
        min-width: 20px;
        text-align: center;
        display: inline-block;
        border: 1px solid var(--cpd-color-border-interactive-primary);
        -webkit-box-shadow: 0 2px var(--cpd-color-border-interactive-primary);
                box-shadow: 0 2px var(--cpd-color-border-interactive-primary);
        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;
            }

                /**
                 * Hide the message options and message action bar in the preview
                 */
                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile .mx_EventTile_msgOption,
                .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;
                }

                .mx_LayoutSwitcher_LayoutSelector .mxLayoutSwitcher_LayoutSelector_LayoutRadio .mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview .mx_EventTile[data-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[data-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[data-layout="irc"] .mx_MessageTimestamp {
                    display: none; /* hide the container used for spacing consistency */
                }

                .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(--cpd-color-text-primary);
    }

    .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(--cpd-color-text-primary);
        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(--cpd-color-alpha-gray-300);
                margin: 0;
            }

                .mx_SettingsTab .mx_NotificationSettings2 .mx_TagComposer .mx_TagComposer_tags .mx_Tag .mx_Tag_delete {
                    background: var(--cpd-color-gray-800);
                    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: var(--cpd-color-text-secondary);
    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 var(--cpd-color-gray-400);
}

    .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(--cpd-color-text-primary);
    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);
    /* 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 var(--cpd-color-gray-400);
}

    .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%;
            gap: 16px;
        }

    .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_InformationPanel_description {
        text-align: center;
    }

    .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);
        }

    .mx_ChangeRecoveryKey .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_ChangeRecoveryKey .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_ChangeRecoveryKey .mx_KeyForm .mx_KeyForm_password > input[name="recoveryKey"]:focus {
                    outline: none;
                    -webkit-box-shadow: none;
                            box-shadow: none;
                }

            .mx_ChangeRecoveryKey .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 {
            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_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: var(--cpd-color-bg-subtle-secondary);
    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(--cpd-color-text-primary);
}

    /* Compound links carry data-kind and provide their own colour. */
    .mx_SettingsSection a:not([data-kind]) {
        color: var(--cpd-color-text-link-external);
    }

    .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(--cpd-color-text-primary);
}

    /* Compound links carry data-kind and provide their own colour. */
    .mx_SettingsTab a:not([data-kind]) {
        color: var(--cpd-color-text-link-external);
    }

    .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: var(--cpd-color-text-critical-primary);
}

.mx_SettingsTab_subsectionText {
    color: var(--cpd-color-text-secondary);
    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(--cpd-color-text-primary);
        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: var(--cpd-color-text-secondary);
            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: var(--cpd-color-text-secondary);
    margin-left: var(--cpd-space-1x);
}

.mx_PeopleRoomSettingsTab_userId {
    color: var(--cpd-color-text-secondary);
    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: var(--cpd-color-text-critical-primary);
}

    .mx_SecurityUserSettingsTab_warning svg {
        width: 24px;
        height: 24px;
        margin-right: var(--cpd-space-4x);
        color: var(--cpd-color-text-critical-primary);
    }

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: var(--cpd-color-gray-800);
            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: var(--cpd-color-text-link-external);
            font: var(--cpd-font-body-md-regular);
        }

        .mx_SpaceBasicSettings .mx_SpaceBasicSettings_avatarContainer > .mx_SpaceBasicSettings_avatar_remove {
            color: var(--cpd-color-text-critical-primary);
        }

    .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: #00000080;
        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(--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: var(--cpd-color-text-secondary);
            }

        .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu .mx_SpaceCreateMenu_back {
            width: 24px;
            height: 24px;
            padding: var(--cpd-space-0-5x);
            background-color: var(--cpd-color-alpha-gray-300);
            border-radius: 14px;
            margin-bottom: 12px;
        }

            .mx_SpaceCreateMenu_wrapper .mx_ContextualMenu .mx_SpaceCreateMenu_back svg {
                color: var(--cpd-color-gray-800);
            }

        .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: var(--cpd-color-text-action-accent);
        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: var(--cpd-color-text-action-accent);
        color: #ffffff;
        border: 1px solid var(--cpd-color-text-action-accent);
        font-weight: var(--cpd-font-weight-semibold);
    }

    .mx_AnalyticsToast .mx_AccessibleButton_kind_primary {
        background-color: var(--cpd-color-text-action-accent);
        color: #ffffff;
        border: 1px solid var(--cpd-color-text-action-accent);
        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: var(--cpd-color-gray-800);

            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: var(--cpd-color-bg-canvas-default);
        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: var(--cpd-color-gray-800);
        }
}
@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(--cpd-color-text-primary);
}

.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: var(--cpd-color-bg-subtle-secondary);

        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: var(--cpd-color-text-primary);

            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: var(--cpd-color-bg-subtle-secondary);
        }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_on svg {
                color: var(--cpd-color-text-primary);
            }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_on.mx_LegacyCallViewButtons_button_screensharing {
                background-color: var(--cpd-color-text-action-accent);
            }

                .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: var(--cpd-color-text-primary);
        }

            .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_off svg {
                color: var(--cpd-color-bg-subtle-secondary);
            }

            .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: var(--cpd-color-bg-subtle-secondary);
            }

                .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: var(--cpd-color-text-primary);
                }

        /* Stateless buttons */
        .mx_LegacyCallViewButtons .mx_LegacyCallViewButtons_button.mx_LegacyCallViewButtons_button_hangup {
            background-color: var(--cpd-color-text-critical-primary);
        }

            .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: var(--cpd-color-text-secondary);
    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(--cpd-color-bg-subtle-secondary);
}

    .mx_CallView .mx_AppTile {
        width: auto;
        height: 100%;
        border: none;
        border-radius: inherit;
        background-color: var(--cpd-color-bg-canvas-default);
    }
}
@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: var(--cpd-color-gray-400);
    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: var(--cpd-color-text-action-accent);
}

    .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 var(--cpd-color-gray-600);
    -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 var(--cpd-color-text-action-accent);
}

.mx_DialPadContextMenu_title {
    color: #91a1c0;
    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 var(--cpd-color-gray-600);
    -webkit-transition: border-bottom 0.25s;
    transition: border-bottom 0.25s;
}

.mx_DialPadModal_header:focus-within {
    border-bottom: 1px solid var(--cpd-color-text-action-accent);
}

.mx_DialPadModal_title {
    color: #91a1c0;
    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(--cpd-color-bg-subtle-secondary);
    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: var(--cpd-color-gray-400);
        }

            .mx_LegacyCallView .mx_LegacyCallView_content_wrapper .mx_LegacyCallView_content .mx_LegacyCallView_status {
                z-index: 50;
                color: #f4f6fa;
            }

            .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: var(--cpd-color-bg-subtle-secondary);
        -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(--cpd-color-text-primary);
            }
}
@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: var(--cpd-color-text-secondary);
    }

.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: var(--cpd-color-text-secondary);
    }
}
@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: var(--cpd-color-bg-subtle-secondary);
        }

    .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: var(--cpd-color-bg-action-primary-rest);

        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:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#c678dd}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#98c379}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#d19a66}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline}
}
@layer app-web{
/*dark */
.markdown-body {
  color-scheme: dark;
  /** 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: #f0f6fc;
  background-color: #0d1117;
  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: #4493f8;
  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 #3d444db3;
}

.markdown-body mark {
  background-color: #bb800926;
  color: #f0f6fc;
}

.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 #3d444db3;
  height: .25em;
  padding: 0;
  margin: 1.5rem 0;
  background-color: #3d444d;
  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: #9198a1;
  opacity: 1;
}

.markdown-body ::-moz-placeholder {
  color: #9198a1;
  opacity: 1;
}

.markdown-body :-ms-input-placeholder {
  color: #9198a1;
  opacity: 1;
}

.markdown-body ::-ms-input-placeholder {
  color: #9198a1;
  opacity: 1;
}

.markdown-body ::placeholder {
  color: #9198a1;
  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: #f0f6fc;
  vertical-align: middle;
  background-color: #151b23;
  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 #3d444db3;
}

.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: #9198a1;
}

.markdown-body p {
  margin-top: 0;
  margin-bottom: 10px;
}

.markdown-body blockquote {
  margin: 0;
  padding: 0 1em;
  color: #9198a1;
  border-left: .25em solid #3d444d;
}

.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: #f85149;
}

.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: #f0f6fc;
  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 #3d444d;
}

.markdown-body table td>:last-child {
  margin-bottom: 0;
}

.markdown-body table tr {
  background-color: #0d1117;
  border-top: 1px solid #3d444db3;
}

.markdown-body table tr:nth-child(2n) {
  background-color: #151b23;
}

.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 #3d444d;
}

.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: #f0f6fc;
}

.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: #656c7633;
  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: #f0f6fc;
  background-color: #151b23;
  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: #0d1117;
  border: 0;
}

.markdown-body .csv-data tr {
  border-top: 0;
}

.markdown-body .csv-data th {
  font-weight: 600;
  background: #151b23;
  border-top: 0;
}

.markdown-body [data-footnote-ref]::before {
  content: "[";
}

.markdown-body [data-footnote-ref]::after {
  content: "]";
}

.markdown-body .footnotes {
  font-size: 12px;
  color: #9198a1;
  border-top: 1px solid #3d444d;
}

.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 #1f6feb;
  border-radius: 6px;
}

.markdown-body .footnotes li:target {
  color: #f0f6fc;
}

.markdown-body .footnotes .data-footnote-backref g-emoji {
  font-family: monospace;
}

.markdown-body .pl-c {
  color: #9198a1;
}

.markdown-body .pl-c1,
.markdown-body .pl-s .pl-v {
  color: #79c0ff;
}

.markdown-body .pl-e,
.markdown-body .pl-en {
  color: #d2a8ff;
}

.markdown-body .pl-smi,
.markdown-body .pl-s .pl-s1 {
  color: #f0f6fc;
}

.markdown-body .pl-ent {
  color: #7ee787;
}

.markdown-body .pl-k {
  color: #ff7b72;
}

.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: #a5d6ff;
}

.markdown-body .pl-v,
.markdown-body .pl-smw {
  color: #ffa657;
}

.markdown-body .pl-bu {
  color: #f85149;
}

.markdown-body .pl-ii {
  color: var(--fgColor-danger);
  background-color: var(--bgColor-danger-muted);
}

.markdown-body .pl-c2 {
  color: #f0f6fc;
  background-color: #b62324;
}

.markdown-body .pl-sr .pl-cce {
  font-weight: bold;
  color: #7ee787;
}

.markdown-body .pl-ml {
  color: #f2cc60;
}

.markdown-body .pl-mh,
.markdown-body .pl-mh .pl-en,
.markdown-body .pl-ms {
  font-weight: bold;
  color: #1f6feb;
}

.markdown-body .pl-mi {
  font-style: italic;
  color: #f0f6fc;
}

.markdown-body .pl-mb {
  font-weight: bold;
  color: #f0f6fc;
}

.markdown-body .pl-md {
  color: #ffdcd7;
  background-color: #67060c;
}

.markdown-body .pl-mi1 {
  color: #aff5b4;
  background-color: #033a16;
}

.markdown-body .pl-mc {
  color: #ffdfb6;
  background-color: #5a1e02;
}

.markdown-body .pl-mi2 {
  color: #f0f6fc;
  background-color: #1158c7;
}

.markdown-body .pl-mdr {
  font-weight: bold;
  color: #d2a8ff;
}

.markdown-body .pl-ba {
  color: #9198a1;
}

.markdown-body .pl-sg {
  color: #3d444d;
}

.markdown-body .pl-corl {
  text-decoration: underline;
  color: #a5d6ff;
}

.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 #3d444d;
}

.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: #1f6feb;
}

.markdown-body .markdown-alert.markdown-alert-note .markdown-alert-title {
  color: #4493f8;
}

.markdown-body .markdown-alert.markdown-alert-important {
  border-left-color: #8957e5;
}

.markdown-body .markdown-alert.markdown-alert-important .markdown-alert-title {
  color: #ab7df8;
}

.markdown-body .markdown-alert.markdown-alert-warning {
  border-left-color: #9e6a03;
}

.markdown-body .markdown-alert.markdown-alert-warning .markdown-alert-title {
  color: #d29922;
}

.markdown-body .markdown-alert.markdown-alert-tip {
  border-left-color: #238636;
}

.markdown-body .markdown-alert.markdown-alert-tip .markdown-alert-title {
  color: #3fb950;
}

.markdown-body .markdown-alert.markdown-alert-caution {
  border-left-color: #da3633;
}

.markdown-body .markdown-alert.markdown-alert-caution .markdown-alert-title {
  color: #f85149;
}

.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlcy82YWM2OGE2ZDI5ODQyYTAwZWUzYS90aGVtZS1kYXJrLmNzcyIsIm1hcHBpbmdzIjoiOzs7QUFBQSxnRUFBZ0U7QUNBaEU7O0FBQUE7Ozs7OztDQU1DOztBQUVEOzs7Ozs7RUFNRTs7QUFFRjs7Ozs7OztFQU9FLEVBS3FCLGlEQUFpRCxFQUVqRCxpREFBaUQsRUFFakQsaURBQWlELEVBRWpELGlEQUFpRCxFQUVuRCxvREFBb0QsRUFFckQsb0RBQW9ELEVBR25ELG9EQUFvRCxFQUV2RCxvREFBb0Q7QUFNdEU7QUNqREE7O0FBQUE7RUFDRTs7QUFFRixpQkFBaUI7QUFDakI7SUFDSSxzQkFBc0I7SUFDdEIsZ0JBQWdCO0lBQ2hCLDREQUFnRjtBQUNwRjtBQUNBLDZIQUE2SDtBQUM3SDtJQUNJLHNCQUFzQjtJQUN0QixnQkFBZ0I7SUFDaEIsNERBQWdGO0FBQ3BGO0FBQ0E7SUFDSSxzQkFBc0I7SUFDdEIsZ0JBQWdCO0lBQ2hCLDREQUFnRjtBQUNwRjtBQUNBO0FDcEJBOztBQUFBO0lBQ0ksMEVBQTBFO0lBQzFFLHVCQUF1QjtBQUMzQjs7QUFFQTs7O29FQUdvRTtBQUNwRTs7NkVBRTZFOztBQVM3RSw0R0FBNEc7QUFDNUcseUJBQXlCO0FBNEJ6Qix5QkFBeUI7O0FBRXpCOzs7Ozs7Ozs7RUFTRTs7QUFnQkYscUNBQXFDO0FBQ3JDLHlCQUF5QjtBQUl6Qix5QkFBeUI7O0FBRXpCLDBCQUEwQjtBQUMxQix5QkFBeUI7QUFFekIseUJBQXlCOztBQUV6QixxRkFBcUY7QUFDckYseUJBQXlCO0FBV3pCLHlCQUF5Qjs7QUFFekIsOERBQThEO0FBQzlELHlCQUF5QjtBQWN6Qix5QkFBeUI7O0FBRXpCLGVBQWU7QUFDZix5QkFBeUI7QUFFekIseUJBQXlCOztBQUV6QixZQUFZO0FBQ1oseUJBQXlCO0FBR3pCLHlCQUF5Qjs7QUFFekIsV0FBVztBQUNYLHlCQUF5QjtBQUd6Qix5QkFBeUI7O0FBRXpCLFNBQVM7QUFDVCx5QkFBeUI7QUFLekIseUJBQXlCOztBQUV6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cyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvX2ZvbnQtc2l6ZXMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy90aGVtZXMvbGlnaHQvY3NzL19mb250cy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL3RoZW1lcy9saWdodC9jc3MvX2xpZ2h0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvdGhlbWVzL2RhcmsvY3NzL19kYXJrLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvdGhlbWVzL2xpZ2h0L2Nzcy9fbW9kcy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9fY29tcG9uZW50cy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9fYW5pbWF0aW9ucy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9fY29tbW9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvPG5vIHNvdXJjZT4iLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL19tZXRtZXQtYnJhbmQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0JlYWNvbkxpc3RJdGVtLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19CZWFjb25TdGF0dXMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0JlYWNvblN0YXR1c1Rvb2x0aXAucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0JlYWNvblZpZXdEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0RpYWxvZ093bkJlYWNvblN0YXR1cy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fRGlhbG9nU2lkZWJhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fTGVmdFBhbmVsTGl2ZVNoYXJlV2FybmluZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fTGl2ZVRpbWVSZW1haW5pbmcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9iZWFjb24vX093bkJlYWNvblN0YXR1cy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fU2hhcmVMYXRlc3RMb2NhdGlvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fU3R5bGVkTGl2ZUJlYWNvbkljb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9jb250ZXh0X21lbnVzL19LZWJhYkNvbnRleHRNZW51LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9wb2xscy9fUG9sbERldGFpbEhlYWRlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2RpYWxvZ3MvcG9sbHMvX1BvbGxMaXN0SXRlbS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2RpYWxvZ3MvcG9sbHMvX1BvbGxMaXN0SXRlbUVuZGVkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvX0FwcFBlcm1pc3Npb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9fQXBwV2FybmluZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL19GaWx0ZXJEcm9wZG93bi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL19GaWx0ZXJUYWJHcm91cC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL19MZWFybk1vcmUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fRW5hYmxlTGl2ZVNoYXJlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX0xpdmVEdXJhdGlvbkRyb3Bkb3duLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX0xvY2F0aW9uU2hhcmVNZW51LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX01hcEVycm9yLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX01hcEZhbGxiYWNrLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX01hcmtlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19TaGFyZURpYWxvZ0J1dHRvbnMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fU2hhcmVUeXBlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX1pvb21CdXR0b25zLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvbWVzc2FnZXMvX01CZWFjb25Cb2R5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3MvbWVzc2FnZXMvc2hhcmVkL19NZWRpYVByb2Nlc3NpbmdFcnJvci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3BvbGxzL19Qb2xsT3B0aW9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvX0FkZFJlbW92ZVRocmVlcGlkcy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0N1cnJlbnREZXZpY2VTZWN0aW9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRGV2aWNlRGV0YWlsSGVhZGluZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0RldmljZURldGFpbHMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VFeHBhbmREZXRhaWxzQnV0dG9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRGV2aWNlU2VjdXJpdHlDYXJkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRGV2aWNlVGlsZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0RldmljZVR5cGVJY29uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRmlsdGVyZWREZXZpY2VMaXN0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRmlsdGVyZWREZXZpY2VMaXN0SGVhZGVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fU2VjdXJpdHlSZWNvbW1lbmRhdGlvbnMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19TZWxlY3RhYmxlRGV2aWNlVGlsZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2VuY3J5cHRpb24vX0tleVN0b3JhZ2VQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL3NoYXJlZC9fU2V0dGluZ3NTdWJzZWN0aW9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3Mvc2hhcmVkL19TZXR0aW5nc1N1YnNlY3Rpb25IZWFkaW5nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvbmVudHMvdmlld3Mvc3BhY2VzL19RdWlja1RoZW1lU3dpdGNoZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3MvY29tcG9uZW50cy92aWV3cy90eXBvZ3JhcGh5L19DYXB0aW9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvdW5kL19JY29uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL2NvbXBvdW5kL19TdWNjZXNzRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX0F1dG9IaWRlU2Nyb2xsYmFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX0F1dG9jb21wbGV0ZUlucHV0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX0NvbXBhdGliaWxpdHlQYWdlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX0NvbnRleHR1YWxNZW51LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX0Vycm9yTWVzc2FnZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19GaWxlRHJvcFRhcmdldC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19GaWxlUGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fR2VuZXJpY0Ryb3Bkb3duTWVudS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19Ib21lUGFnZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19MYXJnZUxvYWRlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19MZWZ0UGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fTWFpblNwbGl0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX01hdHJpeENoYXQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fTm9uVXJnZW50VG9hc3RDb250YWluZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fUGljdHVyZUluUGljdHVyZURyYWdnZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fUXVpY2tTZXR0aW5nc0J1dHRvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19SaWdodFBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1Jvb21WaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1NlYXJjaEJveC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19TcGFjZUhpZXJhcmNoeS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19TcGFjZVBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1NwYWNlUGlsbEJ1dHRvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19TcGFjZVJvb21WaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1NwbGFzaFBhZ2UucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fVGFiYmVkVmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy9zdHJ1Y3R1cmVzL19UaHJlYWRzQWN0aXZpdHlDZW50cmUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fVG9hc3RDb250YWluZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9fVXBsb2FkQmFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvX1ZpZXdTb3VyY2UucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9hdXRoL19Db21wbGV0ZVNlY3VyaXR5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvYXV0aC9fQ29uZmlybVNlc3Npb25Mb2NrVGhlZnRWaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvYXV0aC9fTG9naW4ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9hdXRoL19Mb2dpblNwbGFzaFZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9hdXRoL19Nb2JpbGVSZWdpc3RyYXRpb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9hdXRoL19SZWdpc3RyYXRpb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9hdXRoL19TZXNzaW9uTG9ja1N0b2xlblZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvc3RydWN0dXJlcy9hdXRoL19TZXR1cEVuY3J5cHRpb25Cb2R5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3N0cnVjdHVyZXMvZ3Vlc3QvX0d1ZXN0T25ib2FyZGluZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdWRpb19tZXNzYWdlcy9fUGxheWJhY2tDb250YWluZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXVkaW9fbWVzc2FnZXMvX1NlZWtCYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXVkaW9fbWVzc2FnZXMvX1dhdmVmb3JtLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1dGgvX0F1dGhCb2R5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1dGgvX0F1dGhGb290ZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fQXV0aEhlYWRlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19BdXRoSGVhZGVyTG9nby5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19BdXRoUGFnZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19Db21wbGV0ZVNlY3VyaXR5Qm9keS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdXRoL19Db3VudHJ5RHJvcGRvd24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fRGVmYXVsdFdlbGNvbWUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1dGgvX0xhbmd1YWdlU2VsZWN0b3IucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fTG9naW5XaXRoUVIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXV0aC9fUGFzc3BocmFzZUZpZWxkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F1dGgvX1dlbGNvbWUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYXZhdGFycy9fQmFzZUF2YXRhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdmF0YXJzL19EZWNvcmF0ZWRSb29tQXZhdGFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F2YXRhcnMvX1Jvb21BdmF0YXJWaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2F2YXRhcnMvX1dpZGdldEF2YXRhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9hdmF0YXJzL19XaXRoUHJlc2VuY2VJbmRpY2F0b3IucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvYmV0YS9fQmV0YUNhcmQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvY29udGV4dF9tZW51cy9fRGV2aWNlQ29udGV4dE1lbnUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvY29udGV4dF9tZW51cy9fSWNvbml6ZWRDb250ZXh0TWVudS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9jb250ZXh0X21lbnVzL19MZWdhY3lDYWxsQ29udGV4dE1lbnUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQWRkRXhpc3RpbmdUb1NwYWNlRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0FuYWx5dGljc0xlYXJuTW9yZURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19CdWdSZXBvcnREaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQ2hhbmdlbG9nRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0NvbXBvdW5kRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0NvbmZpcm1LZXlTdG9yYWdlT2ZmRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0NvbmZpcm1TcGFjZVVzZXJBY3Rpb25EaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQ29uZmlybVVzZXJBY3Rpb25EaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fQ3JlYXRlUm9vbURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19DcmVhdGVTZWN0aW9uRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0NyZWF0ZVN1YnNwYWNlRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0NyeXB0by5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19EZWFjdGl2YXRlQWNjb3VudERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19EZXZ0b29sc0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19FeGl0Um9vbUNvbmZpcm1EaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fRXhwb3J0RGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0ZlZWRiYWNrRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0ZvcndhcmREaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fR2VuZXJpY0ZlYXR1cmVGZWVkYmFja0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19JbmNvbWluZ1Nhc0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19JbnZpdGVEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fSW52aXRlUHJvZ3Jlc3NCb2R5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX0pvaW5SdWxlRHJvcGRvd24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fTGVhdmVTcGFjZURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19Mb2NhdGlvblZpZXdEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fTG9nb3V0RGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX01hbmFnZVJlc3RyaWN0ZWRKb2luUnVsZURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19NZXNzYWdlRWRpdEhpc3RvcnlEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fTW9kYWxXaWRnZXREaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fUG9sbENyZWF0ZURpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19SZWdpc3RyYXRpb25FbWFpbFByb21wdERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19SZW1vdmVTZWN0aW9uRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1JlcG9ydFJvb21EaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fUm9vbVNldHRpbmdzRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1Jvb21TZXR0aW5nc0RpYWxvZ0JyaWRnZXMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fUm9vbVVwZ3JhZGVEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fUm9vbVVwZ3JhZGVXYXJuaW5nRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1NlcnZlck9mZmxpbmVEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fU2VydmVyUGlja2VyRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1NldEVtYWlsRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1NldHRpbmdzRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1NoYXJlRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1NsYXNoQ29tbWFuZEhlbHBEaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9fU3BhY2VQcmVmZXJlbmNlc0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19TcGFjZVNldHRpbmdzRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1Nwb3RsaWdodERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19UZXJtc0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19VbnBpbkFsbERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19VcGxvYWRDb25maXJtRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3MvX1VzZXJTZXR0aW5nc0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19WZXJpZnlFTWFpbERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL19XaWRnZXRDYXBhYmlsaXRpZXNQcm9tcHREaWFsb2cucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZGlhbG9ncy9pbnZpdGUvX1Vua25vd25JZGVudGl0eVVzZXJzV2FybmluZ0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL3NlY3VyaXR5L19BY2Nlc3NTZWNyZXRTdG9yYWdlRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3Mvc2VjdXJpdHkvX0NyZWF0ZUNyb3NzU2lnbmluZ0RpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL3NlY3VyaXR5L19DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpYWxvZ3Mvc2VjdXJpdHkvX0tleUJhY2t1cEZhaWxlZERpYWxvZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9kaWFsb2dzL3NlY3VyaXR5L19SZXN0b3JlS2V5QmFja3VwRGlhbG9nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2RpcmVjdG9yeS9fTmV0d29ya0Ryb3Bkb3duLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19BY2Nlc3NpYmxlQnV0dG9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19Db3B5YWJsZVRleHQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0Rlc2t0b3BDYXB0dXJlclNvdXJjZVBpY2tlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fRGlhbFBhZEJhY2tzcGFjZUJ1dHRvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fRHJvcGRvd24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0VkaXRhYmxlSXRlbUxpc3QucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0Vycm9yQm91bmRhcnkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0V4dGVybmFsTGluay5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fRmFjZVBpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0ZpZWxkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19HZW5lcmljRXZlbnRMaXN0U3VtbWFyeS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fSW1hZ2VWaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19JbmZvVG9vbHRpcC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fSW5saW5lU3Bpbm5lci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fSW50ZXJhY3RpdmVUb29sdGlwLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19JbnZpdGVSZWFzb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0xhYmVsbGVkQ2hlY2tib3gucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX0xhbmd1YWdlRHJvcGRvd24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX01pbmlBdmF0YXJVcGxvYWRlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fUGlsbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fUG93ZXJTZWxlY3Rvci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fUHJvZ3Jlc3NCYXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1FSQ29kZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fUmVwbHlDaGFpbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fUmVzaXplSGFuZGxlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19SaWNoVGV4dC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fUm9vbUFsaWFzRmllbGQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1NTT0J1dHRvbnMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1NlYXJjaFdhcm5pbmcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1NlcnZlclBpY2tlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fU2V0dGluZ3NEcm9wZG93bi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fU2V0dGluZ3NGbGFnLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19TcGlubmVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19TdHlsZWRSYWRpb0J1dHRvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fU3ludGF4SGlnaGxpZ2h0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19UYWdDb21wb3Nlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9lbGVtZW50cy9fVGV4dFdpdGhUb29sdGlwLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL2VsZW1lbnRzL19Ub2dnbGVTd2l0Y2gucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvZWxlbWVudHMvX1ZhbGlkYXRpb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvbG9jYXRpb24vX0xvY2F0aW9uUGlja2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL21lc3NhZ2VzL19DYWxsRXZlbnQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvbWVzc2FnZXMvX0NyZWF0ZUV2ZW50LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL21lc3NhZ2VzL19EaXNhbWJpZ3VhdGVkUHJvZmlsZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9tZXNzYWdlcy9fTGVnYWN5Q2FsbEV2ZW50LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL21lc3NhZ2VzL19NSW1hZ2VSZXBseUJvZHkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvbWVzc2FnZXMvX01Mb2NhdGlvbkJvZHkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvbWVzc2FnZXMvX01Qb2xsQm9keS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9tZXNzYWdlcy9fTVN0aWNrZXJCb2R5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL21lc3NhZ2VzL19NZXNzYWdlQWN0aW9uQmFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL21lc3NhZ2VzL19UZXh0dWFsRXZlbnQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvbWVzc2FnZXMvX1RocmVhZEFjdGlvbkJhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9tZXNzYWdlcy9fY29tbW9uX0NyeXB0b0V2ZW50LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3BvbGxzL3BvbGxIaXN0b3J5L19Qb2xsSGlzdG9yeS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9wb2xscy9wb2xsSGlzdG9yeS9fUG9sbEhpc3RvcnlMaXN0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3JpZ2h0X3BhbmVsL19CYXNlQ2FyZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yaWdodF9wYW5lbC9fRW1wdHlTdGF0ZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yaWdodF9wYW5lbC9fRW5jcnlwdGlvbkluZm8ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcmlnaHRfcGFuZWwvX0V4dGVuc2lvbnNDYXJkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3JpZ2h0X3BhbmVsL19QaW5uZWRNZXNzYWdlc0NhcmQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcmlnaHRfcGFuZWwvX1Jvb21TdW1tYXJ5Q2FyZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yaWdodF9wYW5lbC9fVGhyZWFkUGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcmlnaHRfcGFuZWwvX1RpbWVsaW5lQ2FyZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yaWdodF9wYW5lbC9fVXNlckluZm8ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvcmlnaHRfcGFuZWwvX1ZlcmlmaWNhdGlvblBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3JpZ2h0X3BhbmVsL19XaWRnZXRDYXJkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21fc2V0dGluZ3MvX0FsaWFzU2V0dGluZ3MucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvUm9vbUxpc3RQYW5lbC9fUm9vbUxpc3RQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fQXBwc0RyYXdlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fQXV0b2NvbXBsZXRlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19BdXhQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fQmFzaWNNZXNzYWdlQ29tcG9zZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0NhbGxHdWVzdExpbmtCdXR0b24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0UyRUljb24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0UyRUljb25WaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19FZGl0TWVzc2FnZUNvbXBvc2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19FbW9qaUJ1dHRvbi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fRXZlbnRCdWJibGVUaWxlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19FdmVudFRpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0hpc3RvcnlUaWxlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19JUkNMYXlvdXQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX0ludml0ZWRJY29uVmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fSnVtcFRvQm90dG9tQnV0dG9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19MaXZlQ29udGVudFN1bW1hcnkucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX01lbWJlckxpc3RIZWFkZXJWaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19NZW1iZXJMaXN0Vmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fTWVtYmVyVGlsZVZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX01lc3NhZ2VDb21wb3Nlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fTWVzc2FnZUNvbXBvc2VyRm9ybWF0QmFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19OZXdSb29tSW50cm8ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX092ZXJmbG93VGlsZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fUGlubmVkRXZlbnRUaWxlLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19QaW5uZWRNZXNzYWdlQmFubmVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19QcmVzZW5jZUljb25WaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19QcmVzZW5jZUxhYmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19SZWFkUmVjZWlwdEdyb3VwLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19SZXBseVByZXZpZXcucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1JlcGx5VGlsZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fUm9vbUhlYWRlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fUm9vbUluZm9MaW5lLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19Sb29tS25vY2tzQmFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19Sb29tUHJldmlld0Jhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fUm9vbVByZXZpZXdDYXJkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19Sb29tU2VhcmNoQXV4UGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1Jvb21VcGdyYWRlV2FybmluZ0Jhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fU2VuZE1lc3NhZ2VDb21wb3Nlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fU3RpY2tlcnMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1RoaXJkUGFydHlNZW1iZXJJbmZvLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL19Ub3BVbnJlYWRNZXNzYWdlc0Jhci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fVXNlcklkZW50aXR5V2FybmluZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy9fVm9pY2VSZWNvcmRDb21wb3NlclRpbGUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvX1dob0lzVHlwaW5nVGlsZS5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy93eXNpd3lnX2NvbXBvc2VyL19FZGl0V3lzaXd5Z0NvbXBvc2VyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3Jvb21zL3d5c2l3eWdfY29tcG9zZXIvX1NlbmRXeXNpd3lnQ29tcG9zZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvd3lzaXd5Z19jb21wb3Nlci9jb21wb25lbnRzL19FZGl0b3IucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvcm9vbXMvd3lzaXd5Z19jb21wb3Nlci9jb21wb25lbnRzL19Gb3JtYXR0aW5nQnV0dG9ucy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9yb29tcy93eXNpd3lnX2NvbXBvc2VyL2NvbXBvbmVudHMvX0xpbmtNb2RhbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fQXZhdGFyU2V0dGluZy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fRm9udFNjYWxpbmdQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fSW1hZ2VTaXplUGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX0ludGVncmF0aW9uTWFuYWdlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fSm9pblJ1bGVTZXR0aW5ncy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fS2V5Ym9hcmRTaG9ydGN1dC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fTGF5b3V0U3dpdGNoZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX05vdGlmaWNhdGlvblB1c2hlclNldHRpbmdzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19Ob3RpZmljYXRpb25TZXR0aW5nczIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX05vdGlmaWNhdGlvbnMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX1Bob25lTnVtYmVycy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fUG93ZXJMZXZlbFNlbGVjdG9yLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19Sb29tUHJvZmlsZVNldHRpbmdzLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19TZXRJbnRlZ3JhdGlvbk1hbmFnZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX1NldHRpbmdzRmllbGRzZXQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX1NldHRpbmdzSGVhZGVyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL19TZXR0aW5nc1N1YmhlYWRlci5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fU3BlbGxDaGVja0xhbmd1YWdlcy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fVGhlbWVDaG9pY2VQYW5lbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fVXBkYXRlQ2hlY2tCdXR0b24ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvX1VzZXJQZXJzb25hbEluZm9TZXR0aW5ncy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9fVXNlclByb2ZpbGVTZXR0aW5ncy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19BZHZhbmNlZFBhbmVsLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL2VuY3J5cHRpb24vX0NoYW5nZVJlY292ZXJ5S2V5LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL2VuY3J5cHRpb24vX0VuY3J5cHRpb25DYXJkLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL2VuY3J5cHRpb24vX0VuY3J5cHRpb25DYXJkRW1waGFzaXNlZENvbnRlbnQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fUmVjb3ZlcnlQYW5lbE91dE9mU3luYy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19SZXNldElkZW50aXR5UGFuZWwucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy9fU2V0dGluZ3NCYW5uZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy9fU2V0dGluZ3NJbmRlbnQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy9fU2V0dGluZ3NTZWN0aW9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvX1NldHRpbmdzVGFiLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvcm9vbS9fTm90aWZpY2F0aW9uU2V0dGluZ3NUYWIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy9yb29tL19QZW9wbGVSb29tU2V0dGluZ3NUYWIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy9yb29tL19Sb2xlc1Jvb21TZXR0aW5nc1RhYi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL3Jvb20vX1NlY3VyaXR5Um9vbVNldHRpbmdzVGFiLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fQXBwZWFyYW5jZVVzZXJTZXR0aW5nc1RhYi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX0hlbHBVc2VyU2V0dGluZ3NUYWIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19LZXlib2FyZFVzZXJTZXR0aW5nc1RhYi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX01lZGlhUHJldmlld0FjY291bnRTZXR0aW5ncy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX01qb2xuaXJVc2VyU2V0dGluZ3NUYWIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19QcmVmZXJlbmNlc1VzZXJTZXR0aW5nc1RhYi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX1NlY3VyaXR5VXNlclNldHRpbmdzVGFiLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fU2lkZWJhclVzZXJTZXR0aW5nc1RhYi5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zcGFjZXMvX1NwYWNlQmFzaWNTZXR0aW5ncy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy9zcGFjZXMvX1NwYWNlQ2hpbGRyZW5QaWNrZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvc3BhY2VzL19TcGFjZUNyZWF0ZU1lbnUucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvdGVybXMvX0lubGluZVRlcm1zQWdyZWVtZW50LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3RvYXN0cy9fQW5hbHl0aWNzVG9hc3QucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3MvdG9hc3RzL19JbmNvbWluZ0NhbGxUb2FzdC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy90b2FzdHMvX0luY29taW5nTGVnYWN5Q2FsbFRvYXN0LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3RvYXN0cy9fTm9uVXJnZW50RWNob0ZhaWx1cmVUb2FzdC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy90eXBvZ3JhcGh5L19IZWFkaW5nLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3ZlcmlmaWNhdGlvbi9fVmVyaWZpY2F0aW9uU2hvd1Nhcy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy92b2lwL0xlZ2FjeUNhbGxWaWV3L19MZWdhY3lDYWxsVmlld0J1dHRvbnMucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvdm9pcC9fQ2FsbER1cmF0aW9uLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3ZvaXAvX0NhbGxWaWV3LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3ZvaXAvX0RpYWxQYWQucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvdm9pcC9fRGlhbFBhZENvbnRleHRNZW51LnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3ZvaXAvX0RpYWxQYWRNb2RhbC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy92b2lwL19MZWdhY3lDYWxsVmlldy5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4vcmVzL2Nzcy92aWV3cy92b2lwL19MZWdhY3lDYWxsVmlld0ZvclJvb20ucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvdm9pcC9fTGVnYWN5Q2FsbFZpZXdIZWFkZXIucGNzcyIsIndlYnBhY2s6Ly9lbGVtZW50LXdlYi8uL3Jlcy9jc3Mvdmlld3Mvdm9pcC9fTGVnYWN5Q2FsbFZpZXdTaWRlYmFyLnBjc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi9yZXMvY3NzL3ZpZXdzL3ZvaXAvX1ZpZGVvRmVlZC5wY3NzIiwid2VicGFjazovL2VsZW1lbnQtd2ViLy4uLy4uL25vZGVfbW9kdWxlcy8ucG5wbS9oaWdobGlnaHQuanNAMTEuMTIuMC9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL3N0eWxlcy9hdG9tLW9uZS1kYXJrLm1pbi5jc3MiLCJ3ZWJwYWNrOi8vZWxlbWVudC13ZWIvLi4vLi4vbm9kZV9tb2R1bGVzLy5wbnBtL2dpdGh1Yi1tYXJrZG93bi1jc3NANS45LjAvbm9kZV9tb2R1bGVzL2dpdGh1Yi1tYXJrZG93bi1jc3MvZ2l0aHViLW1hcmtkb3duLWRhcmsuY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIkBsYXllciBjb21wb3VuZC10b2tlbnMsIGNvbXBvdW5kLXdlYiwgc2hhcmVkLWNvbXBvbmVudHMsIGFwcC13ZWI7XG5cbkBpbXBvcnQgXCIuLi8uLi8uLi8uLi9yZXMvY3NzL19mb250LXNpemVzLnBjc3NcIiBsYXllcihhcHAtd2ViKTtcbkBpbXBvcnQgXCIuLi8uLi9saWdodC9jc3MvX2ZvbnRzLnBjc3NcIiBsYXllcihhcHAtd2ViKTtcbkBpbXBvcnQgXCIuLi8uLi9saWdodC9jc3MvX2xpZ2h0LnBjc3NcIiBsYXllcihhcHAtd2ViKTtcbkBpbXBvcnQgXCJfZGFyay5wY3NzXCIgbGF5ZXIoYXBwLXdlYik7XG5AaW1wb3J0IFwiLi4vLi4vbGlnaHQvY3NzL19tb2RzLnBjc3NcIiBsYXllcihhcHAtd2ViKTtcbkBpbXBvcnQgXCIuLi8uLi8uLi8uLi9yZXMvY3NzL19jb21wb25lbnRzLnBjc3NcIiBsYXllcihhcHAtd2ViKTtcbkBpbXBvcnQgdXJsKFwiaGlnaGxpZ2h0LmpzL3N0eWxlcy9hdG9tLW9uZS1kYXJrLm1pbi5jc3NcIikgbGF5ZXIoYXBwLXdlYik7XG5AaW1wb3J0IHVybChcImdpdGh1Yi1tYXJrZG93bi1jc3MvZ2l0aHViLW1hcmtkb3duLWRhcmsuY3NzXCIpIGxheWVyKGFwcC13ZWIpO1xuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLypcbiAqIFNDU1MgdmFyaWFibGVzIGRlZmluaW5nIGEgcmFuZ2Ugb2YgZm9udCBzaXplcy5cbiAqXG4gKiBUaGVzZSBhcmUgZGVmaW5lZCBpbiBgcmVtYCBzbyB0aGF0IHRoZXkgc2NhbGUgd2l0aCB0aGUgYGZvbnQtc2l6ZWAgb2YgdGhlIHJvb3QgZWxlbWVudCAod2hpY2ggaXMgYWRqdXN0YWJsZSB2aWEgdGhlXG4gKiBcIkZvbnQgc2l6ZVwiIHNldHRpbmcpLiBUaGV5IGV4aXN0IHRvIG1ha2UgdGhlIGpvYiBvZiBjb252ZXJ0aW5nIGRlc2lnbnMgKHdoaWNoIHRlbmQgdG8gYmUgYmFzZWQgaW4gcGl4ZWxzKSBpbnRvIENTU1xuICogZWFzaWVyLlxuICovXG5cbi8qXG4gKiBUaGVzZSB2YXJpYWJsZXMgYXJlIG5vdyAqZGVwcmVjYXRlZCogYW5kIHNob3VsZCBub3QgYmUgdXNlZCBpbiBuZXcgY29kZTsgaW5zdGVhZCBDb21wb3VuZCB0eXBvZ3JhcGhpYyB0b2tlbnNcbiAqIHNob3VsZCBiZSB1c2VkLiBEaXJlY3QgZXF1aXZhbGVudHMgZm9yIHRoZXNlIG9sZCBmb250IHNpemUgdG9rZW5zIGFyZSBsaXN0ZWQgYmVsb3c7IHdoZXJlIG5vIGVxdWl2YWxlbnQgZXhpc3RzLFxuICogdGhhdCBzdWdnZXN0cyB0aGF0IHRoZSBkZXNpZ24gaXMgdXNpbmcgYSBub24tc3RhbmRhcmQgZm9udCBzaXplIGFuZCBzaG91bGQgYmUgdXBkYXRlZC5cbiAqXG4gKiBJbiBmYWN0LCBtb2Rlcm4gRmlnbWEgZGVzaWducyBzaG91bGQgYWN0dWFsbHkgdXNlIGEgbmFtZWQgVHlwb2dyYXBoeSBzdHlsZSBzdWNoIGFzIFwiV2ViL2ZvbnQvaGVhZGluZy9zbS9zZW1pYm9sZFwiLFxuICogdHJhbnNsYXRlcyBkaXJlY3RseSB0byBgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy1zbS1zZW1pYm9sZClgLlxuICovXG4kZm9udC0xcHg6IDAuMDYyNXJlbTtcbiRmb250LThweDogMC41cmVtO1xuJGZvbnQtMTBweDogMC42MjVyZW07XG4kZm9udC0xMC00cHg6IDAuNjI3NXJlbTtcbiRmb250LTExcHg6IDAuNjg3NXJlbTsgLyogQ29tcG91bmQgZXF1aXZhbGVudDogLS1jcGQtZm9udC1zaXplLWJvZHkteHMgKi9cbiRmb250LTEycHg6IDAuNzVyZW07XG4kZm9udC0xM3B4OiAwLjgxMjVyZW07IC8qIENvbXBvdW5kIGVxdWl2YWxlbnQ6IC0tY3BkLWZvbnQtc2l6ZS1ib2R5LXNtICovXG4kZm9udC0xNHB4OiAwLjg3NXJlbTtcbiRmb250LTE1cHg6IDAuOTM3NXJlbTsgLyogQ29tcG91bmQgZXF1aXZhbGVudDogLS1jcGQtZm9udC1zaXplLWJvZHktbWQgKi9cbiRmb250LTE2cHg6IDFyZW07XG4kZm9udC0xN3B4OiAxLjA2MjVyZW07IC8qIENvbXBvdW5kIGVxdWl2YWxlbnQ6IC0tY3BkLWZvbnQtc2l6ZS1ib2R5LWxnICovXG4kZm9udC0xOHB4OiAxLjEyNXJlbTtcbiRmb250LTIwcHg6IDEuMjVyZW07IC8qIENvbXBvdW5kIGVxdWl2YWxlbnQ6IC0tY3BkLWZvbnQtc2l6ZS1oZWFkaW5nLXNtICovXG4kZm9udC0yMnB4OiAxLjM3NXJlbTtcbiRmb250LTI0cHg6IDEuNXJlbTsgLyogQ29tcG91bmQgZXF1aXZhbGVudDogLS1jcGQtZm9udC1zaXplLWhlYWRpbmctbWQgKi9cbiRmb250LTI1cHg6IDEuNTYyNXJlbTtcbiRmb250LTI2cHg6IDEuNjI1cmVtO1xuJGZvbnQtMjhweDogMS43NXJlbTsgLyogQ29tcG91bmQgZXF1aXZhbGVudDogLS1jcGQtZm9udC1zaXplLWhlYWRpbmctbGcgKi9cbiRmb250LTMwcHg6IDEuODc1cmVtO1xuJGZvbnQtMzJweDogMnJlbTsgLyogQ29tcG91bmQgZXF1aXZhbGVudDogLS1jcGQtZm9udC1zaXplLWhlYWRpbmcteGwgKi9cbiRmb250LTM0cHg6IDIuMTI1cmVtO1xuJGZvbnQtMzVweDogMi4xODc1cmVtO1xuJGZvbnQtNDJweDogMi42MjVyZW07XG4kZm9udC00NHB4OiAyLjc1cmVtO1xuJGZvbnQtNDhweDogM3JlbTtcbiIsIi8qIHRoZSAnc3JjJyBsaW5rcyBhcmUgcmVsYXRpdmUgdG8gdGhlIGJ1bmRsZS5jc3MsIHdoaWNoIGlzIGluIGEgc3ViZGlyZWN0b3J5LlxuICovXG5cbi8qIFR3ZW1vamkgQ09MUiAqL1xuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IFwiVHdlbW9qaVwiO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgc3JjOiB1cmwoXCIvcmVzL2ZvbnRzL1R3ZW1vamlfTW96aWxsYS9Ud2Vtb2ppTW96aWxsYS1jb2xyLndvZmYyXCIpIGZvcm1hdChcIndvZmYyXCIpO1xufVxuLyogRm9yIGF0IGxlYXN0IENocm9tZSBvbiBXaW5kb3dzIDEwLCB3ZSBoYXZlIHRvIGV4cGxpY3RseSBhZGQgZXh0cmEgd2VpZ2h0cyBmb3IgdGhlIGVtb2ppIHRvIGFwcGVhciBpbiBib2xkIG1lc3NhZ2VzLCBldGMuICovXG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJUd2Vtb2ppXCI7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBzcmM6IHVybChcIi9yZXMvZm9udHMvVHdlbW9qaV9Nb3ppbGxhL1R3ZW1vamlNb3ppbGxhLWNvbHIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG59XG5AZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogXCJUd2Vtb2ppXCI7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBzcmM6IHVybChcIi9yZXMvZm9udHMvVHdlbW9qaV9Nb3ppbGxhL1R3ZW1vamlNb3ppbGxhLWNvbHIud29mZjJcIikgZm9ybWF0KFwid29mZjJcIik7XG59XG4iLCI6cm9vdCB7XG4gICAgLyogVGhpcyBpcyBzZXQgdG8gVHdlbW9qaSB3aGVuIHRoZSB1c2VyIG9wdHMgaW50byB0aGUgYnVuZGxlZCBlbW9qaSBmb250ICovXG4gICAgLS1lbW9qaS1mb250LWZhbWlseTogXCJcIjtcbn1cblxuLyogTnVuaXRvIGFuZCBJbnRlciBsYWNrcyBjb21iaW5pbmcgZGlhY3JpdGljcywgc28gdGhlc2Ugd2lsbCBmYWxsIHRocm91Z2hcbiAgIHRvIHRoZSBuZXh0IGZvbnQuIEhlbGV2ZXRpY2EncyBkaWFjcml0aWNzIHNvbWV0aW1lcyBkbyBub3QgY29tYmluZVxuICAgbmljZWx5IChvbiBPU1gsIGF0IGxlYXN0KSBhbmQgcmVzdWx0IGluIGEgaHVnZSBob3Jpem9udGFsIG1lc3MuXG4gICBBcmlhbCBlbXBpcmljYWxseSBnZXRzIGl0IHJpZ2h0LCBoZW5jZSBwcmlvcml0aXNpbmcgQXJpYWwgaGVyZS4gKi9cbi8qIE5vdG8gQ29sb3IgRW1vamkgY29udGFpbnMgZGlnaXRzLCBpbiBmaXhlZC13aWR0aCwgdGhlcmVmb3JlIGNhdXNpbmdcbiAgIGRpZ2l0cyBpbiBmbG93ZWQgdGV4dCB0byBzdGFuZCBvdXQuXG4gICBUT0RPOiBDb25zaWRlciBwdXR0aW5nIGFsbCBlbW9qaSBmb250cyB0byB0aGUgZW5kIHJhdGhlciB0aGFuIHRoZSBmcm9udC4gKi9cbiRmb250LWZhbWlseTpcbiAgICBcIkludGVyXCIsIHZhcigtLWVtb2ppLWZvbnQtZmFtaWx5KSwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiQXJpYWxcIiwgXCJIZWx2ZXRpY2FcIiwgc2Fucy1zZXJpZixcbiAgICBcIk5vdG8gQ29sb3IgRW1vamlcIjtcblxuJG1vbm9zcGFjZS1mb250LWZhbWlseTpcbiAgICBcIkZpcmEgQ29kZVwiLCB2YXIoLS1lbW9qaS1mb250LWZhbWlseSksIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIkNvdXJpZXJcIiwgbW9ub3NwYWNlLFxuICAgIFwiTm90byBDb2xvciBFbW9qaVwiO1xuXG4vKiBDb2xvcnMgZnJvbSBGaWdtYSBDb21wb3VuZCBodHRwczovL3d3dy5maWdtYS5jb20vZmlsZS9YNFhUSDlpUzJLR0oyd0ZLRHFreWVkL0NvbXBvdW5kP25vZGUtaWQ9NTU5JTNBMTIwICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJHByaW1hcnktY29udGVudDogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4kc2Vjb25kYXJ5LWNvbnRlbnQ6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4kdGVydGlhcnktY29udGVudDogdmFyKC0tY3BkLWNvbG9yLWdyYXktODAwKTtcbiRxdWF0ZXJuYXJ5LWNvbnRlbnQ6IHZhcigtLWNwZC1jb2xvci1ncmF5LTYwMCk7XG4kcXVpbmFyeS1jb250ZW50OiB2YXIoLS1jcGQtY29sb3ItZ3JheS00MDApO1xuXG4kc3lzdGVtOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXByaW1hcnkpO1xuJHN5c3RlbS10cmFuc3BhcmVudDogI2UxZTZlYzAwO1xuJGJhY2tncm91bmQ6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4kb3ZlcmxheS1iYWNrZ3JvdW5kOiB2YXIoLS1jcGQtY29sb3ItYWxwaGEtZ3JheS0xMzAwKTtcblxuJHBhbmVsczogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1zZWNvbmRhcnkpO1xuJHBhbmVsLWFjdGlvbnM6IHZhcigtLWNwZC1jb2xvci1hbHBoYS1ncmF5LTMwMCk7XG5cbiRzZXBhcmF0b3I6IHZhcigtLWNwZC1jb2xvci1ncmF5LTQwMCk7XG5cbiRhY2NlbnQ6IHZhcigtLWNwZC1jb2xvci10ZXh0LWFjdGlvbi1hY2NlbnQpO1xuJGFsZXJ0OiB2YXIoLS1jcGQtY29sb3ItdGV4dC1jcml0aWNhbC1wcmltYXJ5KTtcbiRsaW5rczogdmFyKC0tY3BkLWNvbG9yLXRleHQtbGluay1leHRlcm5hbCk7XG4kbGluay1leHRlcm5hbDogdmFyKC0tY3BkLWNvbG9yLXRleHQtbGluay1leHRlcm5hbCk7XG5cbiR1c2VybmFtZS12YXJpYW50MS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS0xKTtcbiR1c2VybmFtZS12YXJpYW50Mi1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS0yKTtcbiR1c2VybmFtZS12YXJpYW50My1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS0zKTtcbiR1c2VybmFtZS12YXJpYW50NC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS00KTtcbiR1c2VybmFtZS12YXJpYW50NS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS01KTtcbiR1c2VybmFtZS12YXJpYW50Ni1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGVjb3JhdGl2ZS02KTtcbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbi8qKlxuICogQ3JlYXRpbmcgYSBgc2VtYW50aWNgIGNvbG9yIHNjYWxlLiBUaGlzIHdpbGwgbm90IGJlIG5lZWRlZCB3aXRoIHRoZSBuZXdcbiAqIHZpc3VhbCBsYW5ndWFnZSwgYnV0IG5lY2Vzc2FyeSBkdXJpbmcgdGhlIHRyYW5zaXRpb24gcGVyaW9kXG4gKiBUaGlzIGFic3RyYWN0IHRoZSBgZ3JlZW5gIGF3YXkgZnJvbSB3aGVyZSBhY2NlbnQgc2hhZGVzIGFyZSB1c2VkXG4gKiBUYWtlOiBgYmFja2dyb3VuZDogcmdiYSgkYWNjZW50LCAwLjEpO2BcbiAqIHdvdWxkIGJlIHRyYW5zZm9ybWVkIHRvOiBgYmFja2dyb3VuZDogJGFjY2VudC0zMDA7YFxuICpcbiAqIFRvIHVzZSB1bmRlciB2ZXJ5IHJhcmUgY2lyY3Vtc3RhbmNlcywgYWx3YXlzIHByZWZlciB0aGUgc2VtYW50aWNzIGRlZmluZWRcbiAqIGluIGh0dHBzOi8vY29tcG91bmQuZWxlbWVudC5pby8/cGF0aD0vZG9jcy90b2tlbnMtc2VtYW50aWMtY29sb3JzLS1kb2NzXG4gKi9cbiRhY2NlbnQtMTAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMTAwKTtcbiRhY2NlbnQtMjAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMjAwKTtcbiRhY2NlbnQtMzAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMzAwKTtcbiRhY2NlbnQtNDAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tNDAwKTtcbiRhY2NlbnQtNTAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tNTAwKTtcbiRhY2NlbnQtNjAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tNjAwKTtcbiRhY2NlbnQtNzAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tNzAwKTtcbiRhY2NlbnQtODAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tODAwKTtcbiRhY2NlbnQtOTAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tOTAwKTtcbiRhY2NlbnQtMTAwMDogdmFyKC0tY3BkLWNvbG9yLWdyZWVuLTEwMDApO1xuJGFjY2VudC0xMTAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMTEwMCk7XG4kYWNjZW50LTEyMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0xMjAwKTtcbiRhY2NlbnQtMTMwMDogdmFyKC0tY3BkLWNvbG9yLWdyZWVuLTEzMDApO1xuJGFjY2VudC0xNDAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMTQwMCk7XG5cbi8qIFJldXNlZCBGaWdtYSBub24tY29tcG91bmQgY29sb3JzICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJGludmVydGVkLWJnLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktcmVzdCk7XG4kaGVhZGVyLXBhbmVsLWJnLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXByaW1hcnkpO1xuJGhlYWRlci1wYW5lbC1iZy1ob3ZlcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1zZWNvbmRhcnktaG92ZXJlZCk7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBUaGVtZSBzcGVjaWZpYyBjb2xvcnMgKi9cbi8qICoqKioqKioqKioqKioqKioqKioqICovXG4kaWNvbi1idXR0b24tY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXRlcnRpYXJ5KTtcbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbi8qIENvbG9ycyB0aGF0IGFyZW4ndCBpbiBGaWdtYSBhbmQgYXJlIHRoZW1lIHNwZWNpZmljIC0gd2UgbmVlZCB0byBnZXQgcmlkIG9mIHRoZXNlICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJHNlbGVjdGlvbi1mZy1jb2xvcjogJGJhY2tncm91bmQ7XG4keWVsbG93LWJhY2tncm91bmQ6IHZhcigtLWNwZC1jb2xvci15ZWxsb3ctMjAwKTtcbiRzZWNvbmRhcnktYWNjZW50LWNvbG9yOiAjZjJmNWY4O1xuJGJ1dHRvbi1mZy1jb2xvcjogJGJhY2tncm91bmQ7XG4kbmV1dHJhbC1iYWRnZS1jb2xvcjogI2RiZGJkYjtcbiRzdHJvbmctaW5wdXQtYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXByaW1hcnkpO1xuJHByZXZpZXctd2lkZ2V0LWJhci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1wcmltYXJ5KTtcbiRhY2NlbnQtZmctY29sb3I6ICNmNGY2ZmE7XG4kYWNjZW50LWFsdDogdmFyKC0tY3BkLWNvbG9yLXRleHQtbGluay1leHRlcm5hbCk7XG4kaW5mby1wbGludGgtZmctY29sb3I6IHZhcigtLWNwZC1jb2xvci1ncmF5LTkwMCk7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBDb2xvcnMgdGhhdCBhcmVuJ3QgaW4gRmlnbWEgLSB3ZSBuZWVkIHRvIGdldCByaWQgb2YgdGhlc2UgKi9cbi8qICoqKioqKioqKioqKioqKioqKioqICovXG4kZGFyay1wYW5lbC1iZy1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1zZWNvbmRhcnkpO1xuJG11dGVkLWZnLWNvbG9yOiAjNjE3MDhiO1xuJGxpZ2h0LWZnLWNvbG9yOiAjNzQ3NDc0O1xuJGZvY3VzLWJnLWNvbG9yOiAkcHJldmlldy13aWRnZXQtYmFyLWNvbG9yO1xuJGluZm8tcGxpbnRoLWJnLWNvbG9yOiAjZjdmN2Y3O1xuJGV2ZW50LXNlbGVjdGVkLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXNlY29uZGFyeSk7XG4kdG9wbGVmdG1lbnUtY29sb3I6ICMyMTIxMjE7XG4kcm9vbXRvcGljLWNvbG9yOiAjOWU5ZTllO1xuJHNwYWNlUGFuZWwtYmctY29sb3I6IHJnYmEoMjMyLCAyMzIsIDIzMiwgMC43Nyk7XG4kcGFuZWwtZ3JhZGllbnQ6IHJnYmEoMjQyLCAyNDUsIDI0OCwgMCksIHJnYmEoMjQyLCAyNDUsIDI0OCwgMSk7XG4kaDMtY29sb3I6ICMzZDNiMzk7XG4kZXZlbnQtaGlnaGxpZ2h0LWJnLWNvbG9yOiAkeWVsbG93LWJhY2tncm91bmQ7XG4kaGVhZGVyLXBhbmVsLXRleHQtcHJpbWFyeS1jb2xvcjogIzkxYTFjMDtcbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbi8qIEJsb2NrcXVvdGUgKi9cbi8qICoqKioqKioqKioqKioqKioqKioqICovXG4kYmxvY2txdW90ZS1iYXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtcHJpbWFyeSk7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBUb29sdGlwICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJHRvb2x0aXAtdGltZWxpbmUtYmctY29sb3I6ICRpbnZlcnRlZC1iZy1jb2xvcjtcbiR0b29sdGlwLXRpbWVsaW5lLWZnLWNvbG9yOiAkYmFja2dyb3VuZDtcbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbi8qIFdpZGdldCAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiR3aWRnZXQtbWVudS1iYXItYmctY29sb3I6ICRzZWNvbmRhcnktYWNjZW50LWNvbG9yO1xuJHdpZGdldC1ib2R5LWJnLWNvbG9yOiAkYmFja2dyb3VuZDtcbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbi8qIE1lbnUgKi9cbi8qICoqKioqKioqKioqKioqKioqKioqICovXG4kbWVudS1ib3JkZXItY29sb3I6ICNlN2U3ZTc7XG4kbWVudS1iZy1jb2xvcjogJGJhY2tncm91bmQ7XG4kbWVudS1ib3gtc2hhZG93LWNvbG9yOiByZ2JhKDExOCwgMTMxLCAxNTYsIDAuNik7XG4kbWVudS1zZWxlY3RlZC1jb2xvcjogI2Y1ZjhmYTtcbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbi8qIFNldHRpbmdzICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJHNldHRpbmdzLWdyZXktZmctY29sb3I6ICNhMmEyYTI7XG4kc2V0dGluZ3Mtc3Vic2VjdGlvbi1mZy1jb2xvcjogJG11dGVkLWZnLWNvbG9yO1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyogUm9vbSAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRyb29tLWljb24tdW5yZWFkLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBSb29tSGVhZGVyICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJHJvb21oZWFkZXItYWRkcm9vbS1iZy1jb2xvcjogcmdiYSg5MiwgMTAwLCAxMTIsIDAuMik7XG4kcm9vbWhlYWRlci1hZGRyb29tLWZnLWNvbG9yOiAjNWM2NDcwO1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyogUmljaC10ZXh0LWVkaXRvciAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRwaWxsLWJnLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktcmVzdCk7XG4kcGlsbC1ob3Zlci1iZy1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LWhvdmVyZWQpO1xuJHBpbGwtcHJlc3MtYmctY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1wcmVzc2VkKTtcbiRydGUtYmctY29sb3I6ICNlOWU5ZTk7XG4kcnRlLWNvZGUtYmctY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBQcmVzZW5jZSAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRwcmVzZW5jZS1hd2F5OiAjZDliMDcyO1xuLyogbm90IHVzaW5nIGEgY29tcG91bmQgY29sb3IgaGVyZSBmb3Igbm93IGFzIHdlIHdhbnQgdG8gaGF2ZSB0aGUgc2FtZSBjb2xvciBpblxuICAgbGlnaHQgYW5kIGRhcmsgdGhlbWUuIFVudGlsIHdlIGhhdmUgYSBub24tc3ltZXRyaWNhbCB0b2tlbiBmb3IgaXQsIGxldCdzIGtlZXBcbiAgIGl0IGhhcmRjb2RlZCB0byB0aGUgZm9sbG93aW5nIHZhbHVlICovXG4kcHJlc2VuY2Utb2ZmbGluZTogI2UzZThmMDtcbiRwcmVzZW5jZS1idXN5OiAkYWxlcnQ7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBJbnB1dHMgKi9cbi8qICoqKioqKioqKioqKioqKioqKioqICovXG4kaW5wdXQtYm9yZGVyLWNvbG9yOiAkbWVudS1ib3JkZXItY29sb3I7XG4kaW5wdXQtZGFya2VyLWJnLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuJGlucHV0LWRhcmtlci1mZy1jb2xvcjogIzlmYTliYTtcbiRpbnB1dC1saWdodGVyLWJnLWNvbG9yOiAkc2Vjb25kYXJ5LWFjY2VudC1jb2xvcjtcbiRpbnB1dC11bmRlcmxpbmUtY29sb3I6IHJnYmEoMTUxLCAxNTEsIDE1MSwgMC41KTtcbiRpbnB1dC1mZy1jb2xvcjogcmdiYSg3NCwgNzQsIDc0LCAwLjkpO1xuJGlucHV0LXBsYWNlaG9sZGVyOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyogRGlhbG9nICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJGRpYWxvZy10aXRsZS1mZy1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4kZGlhbG9nLWJhY2tkcm9wLWNvbG9yOiAjMDMwYzFiNGQ7XG4kZGlhbG9nLWNsb3NlLWZnLWNvbG9yOiAkaWNvbi1idXR0b24tY29sb3I7XG4kZGlhbG9nLWNsb3NlLWV4dGVybmFsLWNvbG9yOiAkYmFja2dyb3VuZDtcbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbi8qIEltYWdlQm9keSAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRpbWFnZWJvZHktZ2lmbGFiZWw6IHJnYmEoMCwgMCwgMCwgMC43KTtcbiRpbWFnZWJvZHktZ2lmbGFiZWwtYm9yZGVyOiByZ2JhKDAsIDAsIDAsIDAuMik7XG4kaW1hZ2Vib2R5LWdpZmxhYmVsLWNvbG9yOiAkYWNjZW50LWZnLWNvbG9yO1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyogZTJlICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJGUyZS12ZXJpZmllZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tc3VjY2Vzcy1wcmltYXJ5KTtcbiRlMmUtd2FybmluZy1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tY3JpdGljYWwtcHJpbWFyeSk7XG4kZTJlLXZlcmlmaWVkLWNvbG9yLWxpZ2h0OiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMzAwKTtcbiRlMmUtd2FybmluZy1jb2xvci1saWdodDogdmFyKC0tY3BkLWNvbG9yLXJlZC0zMDApO1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyogVGFiYmVkIHZpZXdzICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJHRhYi1sYWJlbC1mZy1jb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuJHRhYi1sYWJlbC1hY3RpdmUtZmctY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBCdXR0b25zICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJGJ1dHRvbi1wcmltYXJ5LWZnLWNvbG9yOiAkYmFja2dyb3VuZDtcbiRidXR0b24tc2Vjb25kYXJ5LWJnLWNvbG9yOiAkYWNjZW50LWZnLWNvbG9yO1xuJGJ1dHRvbi1kYW5nZXItZmctY29sb3I6ICRiYWNrZ3JvdW5kO1xuJGJ1dHRvbi1kYW5nZXItZGlzYWJsZWQtZmctY29sb3I6ICRiYWNrZ3JvdW5kO1xuJGJ1dHRvbi1kYW5nZXItZGlzYWJsZWQtYmctY29sb3I6ICNmNWI2YmI7IC8qIFRPRE86IFZlcmlmeSBjb2xvciAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyogVG9nZ2xlIHN3aXRjaCAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiR0b2dnbGVzdy1vZmYtY29sb3I6ICNjMWM5ZDY7XG4kdG9nZ2xlc3ctYmFsbC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyogQXV0aHBhZ2UgKi9cbi8qICoqKioqKioqKioqKioqKioqKioqICovXG4kYXV0aHBhZ2UtcHJpbWFyeS1jb2xvcjogIzIzMmYzMjtcbiRhdXRocGFnZS1iZy1jb2xvcjogIzJlMzY0OTtcbiRhdXRocGFnZS1tb2RhbC1iZy1jb2xvcjogcmdiKDI0NSwgMjQ1LCAyNDUsIDAuOSk7XG4vKiBiYWNrZ3JvdW5kIGNvbG91ciBvZiB0aGUgbW9kYWwsIHdoZW4gdGhlIGJhY2tncm91bmQgaXMgYmx1cnJlZCAqL1xuJGF1dGhwYWdlLW1vZGFsLWNvbnRlbnQtd2l0aC1ibHVyLWJnLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSwgMC41OSk7XG4kYXV0aHBhZ2UtZm9jdXMtYmctY29sb3I6ICRmb2N1cy1iZy1jb2xvcjtcbiRhdXRocGFnZS1sYW5nLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4kYXV0aHBhZ2UtcHJpbWFyeS1jb2xvcjogJHByaW1hcnktY29udGVudDtcbiRhdXRocGFnZS1zZWNvbmRhcnktY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbi8qIE1lc3NhZ2UgYWN0aW9uIGJhciAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRtZXNzYWdlLWFjdGlvbi1iYXItYmctY29sb3I6ICRiYWNrZ3JvdW5kO1xuJG1lc3NhZ2UtYWN0aW9uLWJhci1mZy1jb2xvcjogJHByaW1hcnktY29udGVudDtcbiRtZXNzYWdlLWFjdGlvbi1iYXItYm9yZGVyLWNvbG9yOiAjZTllZGYxO1xuJG1lc3NhZ2UtYWN0aW9uLWJhci1ob3Zlci1ib3JkZXItY29sb3I6ICRmb2N1cy1iZy1jb2xvcjtcbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbi8qIFJlYWN0aW9uIHJvdyAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRyZWFjdGlvbi1yb3ctYnV0dG9uLWhvdmVyLWJvcmRlci1jb2xvcjogJGZvY3VzLWJnLWNvbG9yO1xuJHJlYWN0aW9uLXJvdy1idXR0b24tc2VsZWN0ZWQtYmctY29sb3I6ICNlOWZmZjk7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBWb2ljZSBtZXNzYWdlcyAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbi8qIFRoZXNlIHR3byBkb24ndCBjaGFuZ2UgYmV0d2VlbiB0aGVtZXMuIFRoZXkgYXJlIHRoZSAkYWxlcnQsIGJ1dCB3ZSBkb24ndCB3YW50ICovXG4vKiBjdXN0b20gdGhlbWVzIHRvIGFmZmVjdCB0aGVtIGJ5IGFjY2lkZW50LiAqL1xuJHZvaWNlLXJlY29yZC1zdG9wLXN5bWJvbC1jb2xvcjogI2ZmNWI1NTtcbiR2b2ljZS1yZWNvcmQtbGl2ZS1jaXJjbGUtY29sb3I6ICNmZjViNTU7XG4kdm9pY2UtcmVjb3JkLXN0b3AtYm9yZGVyLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuJHZvaWNlLXJlY29yZC1pY29uLWNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbi8qIEJ1YmJsZSB0aWxlcyAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRldmVudGJ1YmJsZS1zZWxmLWJnOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMzAwKTtcbiRldmVudGJ1YmJsZS1vdGhlcnMtYmc6IHZhcigtLWNwZC1jb2xvci1ncmF5LTMwMCk7XG4kZXZlbnRidWJibGUtYmctaG92ZXI6IHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtc2Vjb25kYXJ5KTtcbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbi8qIExpZ2h0Ym94ICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuLyogbm90IHVzaW5nIGEgY29tcG91bmQgY29sb3IgaGVyZSBmb3Igbm93IGFzIHdlIHdhbnQgdG8gaGF2ZSB0aGUgc2FtZSBjb2xvciBpblxuICAgbGlnaHQgYW5kIGRhcmsgdGhlbWUuIFVudGlsIHdlIGhhdmUgYSBub24tc3ltZXRyaWNhbCB0b2tlbiBmb3IgaXQsIGxldCdzIGtlZXBcbiAgIGl0IGhhcmRjb2RlZCB0byB0aGUgZm9sbG93aW5nIHZhbHVlICovXG4kbGlnaHRib3gtZmctY29sb3I6ICNmZmY7XG4kbGlnaHRib3gtYmFja2dyb3VuZC1iZy1jb2xvcjogIzAwMDtcbiRsaWdodGJveC1iYWNrZ3JvdW5kLWJnLW9wYWNpdHk6IDAuOTU7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBWb0lQICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJGNhbGwtdmlldy1idXR0b24tb24tZm9yZWdyb3VuZDogJHNlY29uZGFyeS1jb250ZW50O1xuJGNhbGwtdmlldy1idXR0b24tb24tYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4kY2FsbC12aWV3LWJ1dHRvbi1vZmYtZm9yZWdyb3VuZDogJGJhY2tncm91bmQ7XG4kY2FsbC12aWV3LWJ1dHRvbi1vZmYtYmFja2dyb3VuZDogJHNlY29uZGFyeS1jb250ZW50O1xuJGNhbGwtdmlldy1jb250ZW50LWJhY2tncm91bmQ6ICMyMTI2MmM7XG5cbiR2aWRlby1mZWVkLXNlY29uZGFyeS1iYWNrZ3JvdW5kOiAjMzk0MDQ5OyAvKiBYWFg6IENvbG9yIGZyb20gZGFyayB0aGVtZSAqL1xuJHZvaXBjYWxsLXBsaW50aC1jb2xvcjogJHN5c3RlbTtcblxuLyogQWxsIG9mIHRoZXNlIGFyZSBmcm9tIGRhcmsgdGhlbWUgKi9cbiRjYWxsLXN5c3RlbTogIzIxMjYyYztcbiRjYWxsLWJhY2tncm91bmQ6ICMxNTE5MWU7XG4kY2FsbC1wcmltYXJ5LWNvbnRlbnQ6ICNmZmZmZmY7XG4vKiBUaGlzIG9uZSBpcyBmcm9tIGxpZ2h0IHRoZW1lICovXG4kY2FsbC1saWdodC1xdWF0ZXJuYXJ5LWNvbnRlbnQ6ICNjMWM2Y2Q7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBPbmUtb2ZmIGNvbG9ycyAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRwcm9ncmVzc2Jhci1iZy1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWdyYXktMjAwKTtcbiRrYmQtYm9yZGVyLWNvbG9yOiAkc3Ryb25nLWlucHV0LWJvcmRlci1jb2xvcjtcbiR2aXN1YWwtYmVsbC1iZy1jb2xvcjogI2ZhYTtcbiRldmVudC10aW1lc3RhbXAtY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4kY29tcG9zZXItc2hhZG93LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMDQpO1xuJGJyZWFkY3J1bWItcGxhY2Vob2xkZXItYmctY29sb3I6ICNlOGVlZjU7XG4kcmVzZW5kLWJ1dHRvbi1kaXZpZGVyLWNvbG9yOiAkaW5wdXQtZGFya2VyLWJnLWNvbG9yO1xuJGlubGluZWNvZGUtYm9yZGVyLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuJGlubGluZWNvZGUtYmFja2dyb3VuZC1jb2xvcjogJHN5c3RlbTtcbiRjb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci1wYW5lbC1iZy1jb2xvcjtcbiRzY3JvbGxiYXItdGh1bWItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiRzZWxlY3RlZC1jb2xvcjogJHNlY29uZGFyeS1hY2NlbnQtY29sb3I7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBPbmUtb2ZmIGdsb2JhbCBjb2xvcnMgLSB0aGVzZSBhcHBseSB0byBib3RoIHRoZW1lcyAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRwaW5uZWQtY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuJGF2YXRhci1pbml0aWFsLWNvbG9yOiAkYmFja2dyb3VuZDtcbiRwcmltYXJ5LWhhaXJsaW5lLWNvbG9yOiB0cmFuc3BhcmVudDtcbiRzZWNvbmRhcnktaGFpcmxpbmUtY29sb3I6IHZhcigtLWNwZC1jb2xvci1ncmF5LTMwMCk7XG4kZm9jdXMtYnJpZ2h0bmVzczogMTA1JTtcbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbi8qIGJsdXIgYW1vdW50cyBmb3IgbGVmdCBsZWZ0IHBhbmVsIChvbmx5IGZvciBlbGVtZW50IHRoZW1lKSAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbjpyb290IHtcbiAgICAtLWxwLWJhY2tncm91bmQtYmx1cjogNDBweDtcbn1cblxuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyogTG9jYXRpb24gc2hhcmluZyAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRsb2NhdGlvbi1tYXJrZXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLW9uLXNvbGlkLXByaW1hcnkpO1xuJGxvY2F0aW9uLWxpdmUtY29sb3I6IHZhcigtLWNwZC1jb2xvci1wdXJwbGUtOTAwKTtcbiRsb2NhdGlvbi1saXZlLXNlY29uZGFyeS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLXB1cnBsZS02MDApO1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuYm9keSB7XG4gICAgY29sb3Itc2NoZW1lOiBsaWdodDtcbn1cblxuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyogZGlmZiBoaWdobGlnaHQgY29sb3JzICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuLmhsanMtYWRkaXRpb24ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNwZC1jb2xvci1ncmVlbi01MDApO1xufVxuXG4uaGxqcy1kZWxldGlvbiB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY3BkLWNvbG9yLXJlZC01MDApO1xufVxuXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuIiwiLyogQ29sb3JzIGZyb20gRmlnbWEgQ29tcG91bmQgaHR0cHM6Ly93d3cuZmlnbWEuY29tL2ZpbGUvWDRYVEg5aVMyS0dKMndGS0Rxa3llZC9Db21wb3VuZD9ub2RlLWlkPTU1OSUzQTc0MSAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRwcmltYXJ5LWNvbnRlbnQ6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuJHNlY29uZGFyeS1jb250ZW50OiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuJHRlcnRpYXJ5LWNvbnRlbnQ6IHZhcigtLWNwZC1jb2xvci1ncmF5LTgwMCk7XG4kcXVhdGVybmFyeS1jb250ZW50OiB2YXIoLS1jcGQtY29sb3ItZ3JheS02MDApO1xuJHF1aW5hcnktY29udGVudDogdmFyKC0tY3BkLWNvbG9yLWdyYXktNDAwKTtcblxuJHN5c3RlbTogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1wcmltYXJ5KTtcbiRzeXN0ZW0tdHJhbnNwYXJlbnQ6ICNlMWU2ZWMwMDtcbiRiYWNrZ3JvdW5kOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuJG92ZXJsYXktYmFja2dyb3VuZDogdmFyKC0tY3BkLWNvbG9yLWFscGhhLWdyYXktMTMwMCk7XG5cbiRwYW5lbHM6IHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtc2Vjb25kYXJ5KTtcbiRwYW5lbC1hY3Rpb25zOiB2YXIoLS1jcGQtY29sb3ItYWxwaGEtZ3JheS0zMDApO1xuXG4kc2VwYXJhdG9yOiB2YXIoLS1jcGQtY29sb3ItZ3JheS00MDApO1xuJHN5c3RlbTogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1zZWNvbmRhcnkpO1xuXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKipcbiAqIENyZWF0aW5nIGEgYHNlbWFudGljYCBjb2xvciBzY2FsZS4gVGhpcyB3aWxsIG5vdCBiZSBuZWVkZWQgd2l0aCB0aGUgbmV3XG4gKiB2aXN1YWwgbGFuZ3VhZ2UsIGJ1dCBuZWNlc3NhcnkgZHVyaW5nIHRoZSB0cmFuc2l0aW9uIHBlcmlvZFxuICogVGhpcyBhYnN0cmFjdCB0aGUgYGdyZWVuYCBhd2F5IGZyb20gd2hlcmUgYWNjZW50IHNoYWRlcyBhcmUgdXNlZFxuICogVGFrZTogYGJhY2tncm91bmQ6IHJnYmEoJGFjY2VudCwgMC4xKTtgXG4gKiB3b3VsZCBiZSB0cmFuc2Zvcm1lZCB0bzogYGJhY2tncm91bmQ6ICRhY2NlbnQtMzAwO2BcbiAqXG4gKiBUbyB1c2UgdW5kZXIgdmVyeSByYXJlIGNpcmN1bXN0YW5jZXMsIGFsd2F5cyBwcmVmZXIgdGhlIHNlbWFudGljcyBkZWZpbmVkXG4gKiBpbiBodHRwczovL2NvbXBvdW5kLmVsZW1lbnQuaW8vP3BhdGg9L2RvY3MgL3Rva2Vucy1zZW1hbnRpYy1jb2xvcnMtLWRvY3NcbiAqL1xuJGFjY2VudC0xMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0xMDApO1xuJGFjY2VudC0yMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0yMDApO1xuJGFjY2VudC0zMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0zMDApO1xuJGFjY2VudC00MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi00MDApO1xuJGFjY2VudC01MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi01MDApO1xuJGFjY2VudC02MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi02MDApO1xuJGFjY2VudC03MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi03MDApO1xuJGFjY2VudC04MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi04MDApO1xuJGFjY2VudC05MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi05MDApO1xuJGFjY2VudC0xMDAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMTAwMCk7XG4kYWNjZW50LTExMDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0xMTAwKTtcbiRhY2NlbnQtMTIwMDogdmFyKC0tY3BkLWNvbG9yLWdyZWVuLTEyMDApO1xuJGFjY2VudC0xMzAwOiB2YXIoLS1jcGQtY29sb3ItZ3JlZW4tMTMwMCk7XG4kYWNjZW50LTE0MDA6IHZhcigtLWNwZC1jb2xvci1ncmVlbi0xNDAwKTtcblxuLyogUmV1c2VkIEZpZ21hIG5vbi1jb21wb3VuZCBjb2xvcnMgKi9cbi8qICoqKioqKioqKioqKioqKioqKioqICovXG4kaW52ZXJ0ZWQtYmctY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1yZXN0KTtcbiRoZWFkZXItcGFuZWwtYmctY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtc2Vjb25kYXJ5KTtcbiRoZWFkZXItcGFuZWwtYmctaG92ZXI6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tc2Vjb25kYXJ5LWhvdmVyZWQpO1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyogVGhlbWUgc3BlY2lmaWMgY29sb3JzICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJGljb24tYnV0dG9uLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBDb2xvcnMgdGhhdCBhcmVuJ3QgaW4gRmlnbWEgYW5kIGFyZSB0aGVtZSBzcGVjaWZpYyAtIHdlIG5lZWQgdG8gZ2V0IHJpZCBvZiB0aGVzZSAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRoZWFkZXItcGFuZWwtdGV4dC1zZWNvbmRhcnktY29sb3I6ICNjOGM4Y2Q7XG4kcm9vbS1oaWdobGlnaHQtY29sb3I6ICMzNDNhNDY7XG4kdGV4dC1zZWNvbmRhcnktY29sb3I6ICNiOWJlYzY7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBDb2xvcnMgdGhhdCBhcmVuJ3QgaW4gRmlnbWEgLSB3ZSBuZWVkIHRvIGdldCByaWQgb2YgdGhlc2UgKi9cbi8qICoqKioqKioqKioqKioqKioqKioqICovXG4kZGFyay1wYW5lbC1iZy1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1zZWNvbmRhcnkpO1xuJG11dGVkLWZnLWNvbG9yOiAkaGVhZGVyLXBhbmVsLXRleHQtcHJpbWFyeS1jb2xvcjtcbiRsaWdodC1mZy1jb2xvcjogJGhlYWRlci1wYW5lbC10ZXh0LXNlY29uZGFyeS1jb2xvcjtcbiRmb2N1cy1iZy1jb2xvcjogJHJvb20taGlnaGxpZ2h0LWNvbG9yO1xuJGluZm8tcGxpbnRoLWJnLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuJGV2ZW50LXNlbGVjdGVkLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXNlY29uZGFyeSk7XG4kdG9wbGVmdG1lbnUtY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4kcm9vbXRvcGljLWNvbG9yOiAkdGV4dC1zZWNvbmRhcnktY29sb3I7XG4kc3BhY2VQYW5lbC1iZy1jb2xvcjogcmdiYSgzOCwgMzksIDQzLCAwLjgyKTtcbiRwYW5lbC1ncmFkaWVudDogcmdiYSgzNCwgMzgsIDQ2LCAwKSwgcmdiYSgzNCwgMzgsIDQ2LCAxKTtcbiRoMy1jb2xvcjogJHByaW1hcnktY29udGVudDtcbiRldmVudC1oaWdobGlnaHQtYmctY29sb3I6ICMyNTI3MWY7XG4kaGVhZGVyLXBhbmVsLXRleHQtcHJpbWFyeS1jb2xvcjogJHRleHQtc2Vjb25kYXJ5LWNvbG9yO1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyogVG9vbHRpcCAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiR0b29sdGlwLXRpbWVsaW5lLWJnLWNvbG9yOiAkc3BhY2VQYW5lbC1iZy1jb2xvcjtcbiR0b29sdGlwLXRpbWVsaW5lLWZnLWNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyogV2lkZ2V0ICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJHdpZGdldC1tZW51LWJhci1iZy1jb2xvcjogJGhlYWRlci1wYW5lbC1iZy1jb2xvcjtcbiR3aWRnZXQtYm9keS1iZy1jb2xvcjogJHBhbmVsLWFjdGlvbnM7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBNZW51ICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJG1lbnUtYm9yZGVyLWNvbG9yOiAjMDAwMDAwO1xuJG1lbnUtYmctY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG4kbWVudS1ib3gtc2hhZG93LWNvbG9yOiAkYmFja2dyb3VuZDtcbiRtZW51LXNlbGVjdGVkLWNvbG9yOiAkcm9vbS1oaWdobGlnaHQtY29sb3I7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBTZXR0aW5ncyAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRzZXR0aW5ncy1wcm9maWxlLWJ1dHRvbi1iZy1jb2xvcjogI2U3ZTdlNztcbiRzZXR0aW5ncy1zdWJzZWN0aW9uLWZnLWNvbG9yOiAkdGV4dC1zZWNvbmRhcnktY29sb3I7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBSb29tICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJHJvb20taWNvbi11bnJlYWQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXRlcnRpYXJ5KTtcbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbi8qIFJvb21IZWFkZXIgKi9cbi8qICoqKioqKioqKioqKioqKioqKioqICovXG4kcm9vbWhlYWRlci1hZGRyb29tLWJnLWNvbG9yOiByZ2JhKDkyLCAxMDAsIDExMiwgMC4zKTtcbiRyb29taGVhZGVyLWFkZHJvb20tZmctY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBSaWNoLXRleHQtZWRpdG9yICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJHBpbGwtYmctY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1yZXN0KTtcbiRwaWxsLWhvdmVyLWJnLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktaG92ZXJlZCk7XG4kcGlsbC1wcmVzcy1iZy1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXByZXNzZWQpO1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyogSW5wdXRzICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJGlucHV0LWJvcmRlci1jb2xvcjogcmdiYSgyMzEsIDIzMSwgMjMxLCAwLjIpO1xuJGlucHV0LWRhcmtlci1iZy1jb2xvcjogIzE4MWIyMTtcbiRpbnB1dC1kYXJrZXItZmctY29sb3I6ICM2MTcwOGI7XG4kaW5wdXQtbGlnaHRlci1iZy1jb2xvcjogI2YyZjVmODtcbiRpbnB1dC1wbGFjZWhvbGRlcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbi8qIERpYWxvZyAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRkaWFsb2ctdGl0bGUtZmctY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4kZGlhbG9nLWJhY2tkcm9wLWNvbG9yOiAjMDAwMDAwODA7XG4kZGlhbG9nLWNsb3NlLWZnLWNvbG9yOiAkaWNvbi1idXR0b24tY29sb3I7XG4kZGlhbG9nLWNsb3NlLWV4dGVybmFsLWNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyogVGFiYmVkIHZpZXdzICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJHRhYi1sYWJlbC1mZy1jb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuJHRhYi1sYWJlbC1hY3RpdmUtZmctY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBCdXR0b25zICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJGJ1dHRvbi1wcmltYXJ5LWZnLWNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuJGJ1dHRvbi1zZWNvbmRhcnktYmctY29sb3I6IHRyYW5zcGFyZW50O1xuJGJ1dHRvbi1kYW5nZXItZmctY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4kYnV0dG9uLWRhbmdlci1kaXNhYmxlZC1mZy1jb2xvcjogJHByaW1hcnktY29udGVudDtcbi8qICoqKioqKioqKioqKioqKioqKioqICovXG5cbi8qIFRvZ2dsZSBzd2l0Y2ggKi9cbi8qICoqKioqKioqKioqKioqKioqKioqICovXG4kdG9nZ2xlc3ctb2ZmLWNvbG9yOiAkcm9vbS1oaWdobGlnaHQtY29sb3I7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBBdXRocGFnZSAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRhdXRocGFnZS1wcmltYXJ5LWNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuLyogYmFja2dyb3VuZCBjb2xvdXIgb2YgdGhlIG1vZGFsLCB3aGVuIHRoZSBiYWNrZ3JvdW5kIGlzIGJsdXJyZWQgKi9cbiRhdXRocGFnZS1tb2RhbC1jb250ZW50LXdpdGgtYmx1ci1iZy1jb2xvcjogcmdiKDAsIDAsIDAsIDAuNTkpO1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyogTWVzc2FnZSBhY3Rpb24gYmFyICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJG1lc3NhZ2UtYWN0aW9uLWJhci1iZy1jb2xvcjogJGhlYWRlci1wYW5lbC1iZy1jb2xvcjtcbiRtZXNzYWdlLWFjdGlvbi1iYXItZmctY29sb3I6ICRoZWFkZXItcGFuZWwtdGV4dC1wcmltYXJ5LWNvbG9yO1xuJG1lc3NhZ2UtYWN0aW9uLWJhci1ib3JkZXItY29sb3I6ICM2MTZiN2Y7XG4kbWVzc2FnZS1hY3Rpb24tYmFyLWhvdmVyLWJvcmRlci1jb2xvcjogJGhlYWRlci1wYW5lbC10ZXh0LXByaW1hcnktY29sb3I7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBSZWFjdGlvbiByb3cgKi9cbi8qICoqKioqKioqKioqKioqKioqKioqICovXG4kcmVhY3Rpb24tcm93LWJ1dHRvbi1ob3Zlci1ib3JkZXItY29sb3I6ICRoZWFkZXItcGFuZWwtdGV4dC1wcmltYXJ5LWNvbG9yO1xuJHJlYWN0aW9uLXJvdy1idXR0b24tc2VsZWN0ZWQtYmctY29sb3I6ICMxZjY5NTQ7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBWb2ljZSBtZXNzYWdlcyAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiR2b2ljZS1yZWNvcmQtc3RvcC1ib3JkZXItY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG4kdm9pY2UtcmVjb3JkLWljb24tY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBCdWJibGUgdGlsZXMgKi9cbi8qICoqKioqKioqKioqKioqKioqKioqICovXG4kZXZlbnRidWJibGUtc2VsZi1iZzogdmFyKC0tY3BkLWNvbG9yLWdyZWVuLTMwMCk7XG4kZXZlbnRidWJibGUtb3RoZXJzLWJnOiB2YXIoLS1jcGQtY29sb3ItZ3JheS0zMDApO1xuJGV2ZW50YnViYmxlLWJnLWhvdmVyOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXNlY29uZGFyeSk7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBMaWdodGJveCAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRsaWdodGJveC1iYWNrZ3JvdW5kLWJnLWNvbG9yOiAkbWVudS1ib3JkZXItY29sb3I7XG4kbGlnaHRib3gtYmFja2dyb3VuZC1iZy1vcGFjaXR5OiAwLjg1O1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyogVm9JUCAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRjYWxsLXZpZXctYnV0dG9uLW9uLWZvcmVncm91bmQ6ICRwcmltYXJ5LWNvbnRlbnQ7XG4kY2FsbC12aWV3LWJ1dHRvbi1vbi1iYWNrZ3JvdW5kOiAkc3lzdGVtO1xuJGNhbGwtdmlldy1idXR0b24tb2ZmLWZvcmVncm91bmQ6ICRzeXN0ZW07XG4kY2FsbC12aWV3LWJ1dHRvbi1vZmYtYmFja2dyb3VuZDogJHByaW1hcnktY29udGVudDtcbiRjYWxsLXZpZXctY29udGVudC1iYWNrZ3JvdW5kOiAkcXVpbmFyeS1jb250ZW50O1xuXG4kdmlkZW8tZmVlZC1zZWNvbmRhcnktYmFja2dyb3VuZDogJHN5c3RlbTtcblxuJGNhbGwtc3lzdGVtOiAkc3lzdGVtO1xuJGNhbGwtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4kY2FsbC1wcmltYXJ5LWNvbnRlbnQ6ICRwcmltYXJ5LWNvbnRlbnQ7XG4kY2FsbC1saWdodC1xdWF0ZXJuYXJ5LWNvbnRlbnQ6ICNjMWM2Y2Q7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBMb2NhdGlvbiBzaGFyaW5nICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuJGxvY2F0aW9uLWxpdmUtY29sb3I6ICM1YzU2ZjU7XG4kbG9jYXRpb24tbGl2ZS1zZWNvbmRhcnktY29sb3I6ICNkZWRkZmQ7XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBMb2NhdGlvbiBzaGFyaW5nICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuLm1hcGxpYnJlZ2wtY3RybC1hdHRyaWItYnV0dG9uIHtcbiAgICBjb2xvcjogJGJhY2tncm91bmQ7XG59XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBPbmUtb2ZmIGNvbG9ycyAqL1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cbiRwcm9ncmVzc2Jhci1iZy1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWdyYXktMjAwKTtcbiRrYmQtYm9yZGVyLWNvbG9yOiAkc3Ryb25nLWlucHV0LWJvcmRlci1jb2xvcjtcbiR2aXN1YWwtYmVsbC1iZy1jb2xvcjogIzgwMDtcbiRldmVudC10aW1lc3RhbXAtY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4kY29tcG9zZXItc2hhZG93LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMjgpO1xuJGJyZWFkY3J1bWItcGxhY2Vob2xkZXItYmctY29sb3I6ICMyNzJjMzU7XG4kcmVzZW5kLWJ1dHRvbi1kaXZpZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItZ3JheS03MDApO1xuJGlubGluZWNvZGUtYm9yZGVyLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuJGlubGluZWNvZGUtYmFja2dyb3VuZC1jb2xvcjogJHN5c3RlbTtcbiRjb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvcjogIzJhMzAzOTtcbiRzY3JvbGxiYXItdGh1bWItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiRzZWxlY3RlZC1jb2xvcjogJHJvb20taGlnaGxpZ2h0LWNvbG9yO1xuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyogYmx1ciBhbW91bnRzIGZvciBsZWZ0IGxlZnQgcGFuZWwgKG9ubHkgZm9yIGVsZW1lbnQgdGhlbWUpICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuOnJvb3Qge1xuICAgIC0tbHAtYmFja2dyb3VuZC1ibHVyOiA0NXB4O1xufVxuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuYm9keSB7XG4gICAgY29sb3Itc2NoZW1lOiBkYXJrO1xufVxuXG4vKiBOYXN0eSBoYWNrcyB0byBhcHBseSBhIGZpbHRlciB0byBhcmJpdHJhcnkgbW9ub2Nocm9tZSBhcnR3b3JrIHRvIG1ha2UgaXQgKi9cbi8qIGJldHRlciBtYXRjaCB0aGUgdGhlbWUuICBUeXBpY2FsbHkgYXBwbGllZCB0byBkYXJrIGdyZXkgJ29mZicgYnV0dG9ucyBvciAqL1xuLyogbGlnaHQgZ3JleSAnb24nIGJ1dHRvbnMuICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuLm14X2ZpbHRlckZsaXBDb2xvciB7XG4gICAgZmlsdGVyOiBpbnZlcnQoMSk7XG59XG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuXG4vKiBtYXJrZG93biBvdmVycmlkZXMgKi9cbi8qICoqKioqKioqKioqKioqKioqKioqICovXG4ubXhfRXZlbnRUaWxlX2NvbnRlbnQgLm1hcmtkb3duLWJvZHkge1xuICAgIHRhYmxlIHtcbiAgICAgICAgdHIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1lbnUtYm9yZGVyLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgdHI6bnRoLWNoaWxkKDJuKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDgwODA4O1xuICAgICAgICB9XG4gICAgfVxufVxuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyogZGlmZiBoaWdobGlnaHQgY29sb3JzICovXG4vKiAqKioqKioqKioqKioqKioqKioqKiAqL1xuLmhsanMtdGFnIHtcbiAgICBjb2xvcjogaW5oZXJpdDsgLyogV2l0aG91dCB0aGlzIHRoZXknZCBiZSB3ZWlyZGx5IGJsdWUgd2hpY2ggZG9lc24ndCBtYXRjaCB0aGUgdGhlbWUgKi9cbn1cblxuLmhsanMtYWRkaXRpb24ge1xuICAgIGJhY2tncm91bmQ6ICMxYTRiNTk7XG59XG5cbi5obGpzLWRlbGV0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAjNTMyMzJhO1xufVxuLyogKioqKioqKioqKioqKioqKioqKiogKi9cblxuLyogU3BsYXNoIFBhZ2UgR3JhZGllbnQgKi9cbi5teF9TcGxhc2hQYWdlOjpiZWZvcmUge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6XG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCg1My44NSUgNjYuNzUlIGF0IDg3LjU1JSAwJSwgaHNsYSgwZGVnLCAwJSwgMTElLCAwLjE1KSAwJSwgaHNsYSgyNTBkZWcsIDEwMCUsIDg4JSwgMCkgMTAwJSksXG4gICAgICAgIHJhZGlhbC1ncmFkaWVudCg0MS45MyUgNDEuOTMlIGF0IDAlIDAlLCBoc2xhKDBkZWcsIDAlLCAzOCUsIDAuMjgpIDAlLCBoc2xhKDI1MGRlZywgMTAwJSwgODglLCAwKSAxMDAlKSxcbiAgICAgICAgcmFkaWFsLWdyYWRpZW50KDEwMCUgMTAwJSBhdCAwJSAwJSwgaHNsYSgyNTBkZWcsIDEwMCUsIDg4JSwgMC4zKSAwJSwgaHNsYSgwZGVnLCAxMDAlLCA4NiUsIDApIDEwMCUpLFxuICAgICAgICByYWRpYWwtZ3JhZGllbnQoMTA2LjM1JSA5Ni4yNiUgYXQgMTAwJSAwJSwgaHNsYSgyNWRlZywgMTAwJSwgODglLCAwLjQpIDAlLCBoc2xhKDE2N2RlZywgNzYlLCA4MiUsIDApIDEwMCUpICFpbXBvcnRhbnQ7XG59XG4iLCIvKiBzaWRlYmFyIGJsdXJyZWQgYXZhdGFyIGJhY2tncm91bmQgKi9cblxuLyogaWYgYmFja2Ryb3AtZmlsdGVyIGlzIHN1cHBvcnRlZCwgKi9cbi8qIHNldCB0aGUgdXNlciBhdmF0YXIgKGlmIGFueSkgYXMgYSBiYWNrZ3JvdW5kIHNvICovXG4vKiBpdCBjYW4gYmUgYmx1cnJlZCBieSB0aGUgdGFnIHBhbmVsIGFuZCByb29tIGxpc3QgKi9cblxuLm14X1Jvb21TdWJsaXN0X3Nob3dOQnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xufVxuXG4vKlxuICAgIGRhdGEta2luZCBpcyB1c2VkIGJ5IHRoZSBDb21wb3VuZCA8TGluaz4gY29tcG9uZW50IGFuZCB0aGVyZWZvcmUgZG9lcyBub3Qgb3ZlcnJpZGUgdGhlbS5cbiAgICBUaGlzIGlzIGhvcnJpYmxlLCBidXQgd2lsbCBnZXQgbGVzcyBob3JyaWJsZSB3aGVuIGxpbmtzIGluIHRoZSBhcHAgYXJlIHJlcGxhY2VkIHdpdGhcbiAgICA8TGluaz4uXG4qL1xuYTpub3QoW2RhdGEta2luZF0pIHtcbiAgICAmOmhvdmVyLFxuICAgICY6bGluayxcbiAgICAmOnZpc2l0ZWQge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxufVxuIiwiLyogYXV0b2dlbmVyYXRlZCBieSByZXRoZW1lbmRleC5zaCAqL1xuQGltcG9ydCBcIi4vX2FuaW1hdGlvbnMucGNzc1wiO1xuQGltcG9ydCBcIi4vX2NvbW1vbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9fZm9udC1zaXplcy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9fbWV0bWV0LWJyYW5kLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19CZWFjb25MaXN0SXRlbS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2JlYWNvbi9fQmVhY29uU3RhdHVzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19CZWFjb25TdGF0dXNUb29sdGlwLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19CZWFjb25WaWV3RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19EaWFsb2dPd25CZWFjb25TdGF0dXMucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0RpYWxvZ1NpZGViYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0xlZnRQYW5lbExpdmVTaGFyZVdhcm5pbmcucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9iZWFjb24vX0xpdmVUaW1lUmVtYWluaW5nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvYmVhY29uL19Pd25CZWFjb25TdGF0dXMucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9iZWFjb24vX1NoYXJlTGF0ZXN0TG9jYXRpb24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9iZWFjb24vX1N0eWxlZExpdmVCZWFjb25JY29uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvY29udGV4dF9tZW51cy9fS2ViYWJDb250ZXh0TWVudS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2RpYWxvZ3MvcG9sbHMvX1BvbGxEZXRhaWxIZWFkZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9kaWFsb2dzL3BvbGxzL19Qb2xsTGlzdEl0ZW0ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9kaWFsb2dzL3BvbGxzL19Qb2xsTGlzdEl0ZW1FbmRlZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2VsZW1lbnRzL19BcHBQZXJtaXNzaW9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvZWxlbWVudHMvX0FwcFdhcm5pbmcucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9fRmlsdGVyRHJvcGRvd24ucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9fRmlsdGVyVGFiR3JvdXAucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9lbGVtZW50cy9fTGVhcm5Nb3JlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX0VuYWJsZUxpdmVTaGFyZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19MaXZlRHVyYXRpb25Ecm9wZG93bi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19Mb2NhdGlvblNoYXJlTWVudS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19NYXBFcnJvci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19NYXBGYWxsYmFjay5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19NYXJrZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9sb2NhdGlvbi9fU2hhcmVEaWFsb2dCdXR0b25zLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvbG9jYXRpb24vX1NoYXJlVHlwZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL2xvY2F0aW9uL19ab29tQnV0dG9ucy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL21lc3NhZ2VzL19NQmVhY29uQm9keS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL21lc3NhZ2VzL3NoYXJlZC9fTWVkaWFQcm9jZXNzaW5nRXJyb3IucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9wb2xscy9fUG9sbE9wdGlvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL19BZGRSZW1vdmVUaHJlZXBpZHMucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19DdXJyZW50RGV2aWNlU2VjdGlvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0RldmljZURldGFpbEhlYWRpbmcucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VEZXRhaWxzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fRGV2aWNlRXhwYW5kRGV0YWlsc0J1dHRvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0RldmljZVNlY3VyaXR5Q2FyZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0RldmljZVRpbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9kZXZpY2VzL19EZXZpY2VUeXBlSWNvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0ZpbHRlcmVkRGV2aWNlTGlzdC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX0ZpbHRlcmVkRGV2aWNlTGlzdEhlYWRlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL2RldmljZXMvX1NlY3VyaXR5UmVjb21tZW5kYXRpb25zLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3Mvc2V0dGluZ3MvZGV2aWNlcy9fU2VsZWN0YWJsZURldmljZVRpbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19LZXlTdG9yYWdlUGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy9zaGFyZWQvX1NldHRpbmdzU3Vic2VjdGlvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NldHRpbmdzL3NoYXJlZC9fU2V0dGluZ3NTdWJzZWN0aW9uSGVhZGluZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb25lbnRzL3ZpZXdzL3NwYWNlcy9fUXVpY2tUaGVtZVN3aXRjaGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL2NvbXBvbmVudHMvdmlld3MvdHlwb2dyYXBoeS9fQ2FwdGlvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb3VuZC9fSWNvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi9jb21wb3VuZC9fU3VjY2Vzc0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19BdXRvSGlkZVNjcm9sbGJhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19BdXRvY29tcGxldGVJbnB1dC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19Db21wYXRpYmlsaXR5UGFnZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19Db250ZXh0dWFsTWVudS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19FcnJvck1lc3NhZ2UucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fRmlsZURyb3BUYXJnZXQucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fRmlsZVBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX0dlbmVyaWNEcm9wZG93bk1lbnUucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fSG9tZVBhZ2UucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fTGFyZ2VMb2FkZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fTGVmdFBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX01haW5TcGxpdC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19NYXRyaXhDaGF0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX05vblVyZ2VudFRvYXN0Q29udGFpbmVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1BpY3R1cmVJblBpY3R1cmVEcmFnZ2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1F1aWNrU2V0dGluZ3NCdXR0b24ucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fUmlnaHRQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19Sb29tVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19TZWFyY2hCb3gucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fU3BhY2VIaWVyYXJjaHkucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fU3BhY2VQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19TcGFjZVBpbGxCdXR0b24ucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fU3BhY2VSb29tVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19TcGxhc2hQYWdlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1RhYmJlZFZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vc3RydWN0dXJlcy9fVGhyZWFkc0FjdGl2aXR5Q2VudHJlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1RvYXN0Q29udGFpbmVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvX1VwbG9hZEJhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL19WaWV3U291cmNlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvYXV0aC9fQ29tcGxldGVTZWN1cml0eS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL2F1dGgvX0NvbmZpcm1TZXNzaW9uTG9ja1RoZWZ0Vmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL2F1dGgvX0xvZ2luLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvYXV0aC9fTG9naW5TcGxhc2hWaWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvYXV0aC9fTW9iaWxlUmVnaXN0cmF0aW9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvYXV0aC9fUmVnaXN0cmF0aW9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvYXV0aC9fU2Vzc2lvbkxvY2tTdG9sZW5WaWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3N0cnVjdHVyZXMvYXV0aC9fU2V0dXBFbmNyeXB0aW9uQm9keS5wY3NzXCI7XG5AaW1wb3J0IFwiLi9zdHJ1Y3R1cmVzL2d1ZXN0L19HdWVzdE9uYm9hcmRpbmcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXVkaW9fbWVzc2FnZXMvX1BsYXliYWNrQ29udGFpbmVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1ZGlvX21lc3NhZ2VzL19TZWVrQmFyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1ZGlvX21lc3NhZ2VzL19XYXZlZm9ybS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdXRoL19BdXRoQm9keS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdXRoL19BdXRoRm9vdGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX0F1dGhIZWFkZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXV0aC9fQXV0aEhlYWRlckxvZ28ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXV0aC9fQXV0aFBhZ2UucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXV0aC9fQ29tcGxldGVTZWN1cml0eUJvZHkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXV0aC9fQ291bnRyeURyb3Bkb3duLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX0RlZmF1bHRXZWxjb21lLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX0ludGVyYWN0aXZlQXV0aEVudHJ5Q29tcG9uZW50cy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdXRoL19MYW5ndWFnZVNlbGVjdG9yLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX0xvZ2luV2l0aFFSLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F1dGgvX1Bhc3NwaHJhc2VGaWVsZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdXRoL19XZWxjb21lLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2F2YXRhcnMvX0Jhc2VBdmF0YXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXZhdGFycy9fRGVjb3JhdGVkUm9vbUF2YXRhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdmF0YXJzL19Sb29tQXZhdGFyVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9hdmF0YXJzL19XaWRnZXRBdmF0YXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvYXZhdGFycy9fV2l0aFByZXNlbmNlSW5kaWNhdG9yLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2JldGEvX0JldGFDYXJkLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2NvbnRleHRfbWVudXMvX0RldmljZUNvbnRleHRNZW51LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2NvbnRleHRfbWVudXMvX0ljb25pemVkQ29udGV4dE1lbnUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvY29udGV4dF9tZW51cy9fTGVnYWN5Q2FsbENvbnRleHRNZW51LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0FkZEV4aXN0aW5nVG9TcGFjZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19BbmFseXRpY3NMZWFybk1vcmVEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fQnVnUmVwb3J0RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0NoYW5nZWxvZ0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Db21wb3VuZERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Db25maXJtS2V5U3RvcmFnZU9mZkRpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Db25maXJtU3BhY2VVc2VyQWN0aW9uRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0NvbmZpcm1Vc2VyQWN0aW9uRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0NyZWF0ZVJvb21EaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fQ3JlYXRlU2VjdGlvbkRpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19DcmVhdGVTdWJzcGFjZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19DcnlwdG8ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fRGVhY3RpdmF0ZUFjY291bnREaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fRGV2dG9vbHNEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fRXhpdFJvb21Db25maXJtRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0V4cG9ydERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19GZWVkYmFja0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Gb3J3YXJkRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0dlbmVyaWNGZWF0dXJlRmVlZGJhY2tEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fSW5jb21pbmdTYXNEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fSW52aXRlRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0ludml0ZVByb2dyZXNzQm9keS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Kb2luUnVsZURyb3Bkb3duLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0xlYXZlU3BhY2VEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fTG9jYXRpb25WaWV3RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX0xvZ291dERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fTWVzc2FnZUVkaXRIaXN0b3J5RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX01vZGFsV2lkZ2V0RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1BvbGxDcmVhdGVEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fUmVnaXN0cmF0aW9uRW1haWxQcm9tcHREaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fUmVtb3ZlU2VjdGlvbkRpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19SZXBvcnRSb29tRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1Jvb21TZXR0aW5nc0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Sb29tU2V0dGluZ3NEaWFsb2dCcmlkZ2VzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1Jvb21VcGdyYWRlRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1Jvb21VcGdyYWRlV2FybmluZ0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19TZXJ2ZXJPZmZsaW5lRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1NlcnZlclBpY2tlckRpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19TZXRFbWFpbERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19TZXR0aW5nc0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19TaGFyZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19TbGFzaENvbW1hbmRIZWxwRGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvX1NwYWNlUHJlZmVyZW5jZXNEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fU3BhY2VTZXR0aW5nc0RpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19TcG90bGlnaHREaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fVGVybXNEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fVW5waW5BbGxEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fVXBsb2FkQ29uZmlybURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL19Vc2VyU2V0dGluZ3NEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fVmVyaWZ5RU1haWxEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9fV2lkZ2V0Q2FwYWJpbGl0aWVzUHJvbXB0RGlhbG9nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2RpYWxvZ3MvaW52aXRlL19Vbmtub3duSWRlbnRpdHlVc2Vyc1dhcm5pbmdEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9zZWN1cml0eS9fQWNjZXNzU2VjcmV0U3RvcmFnZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL3NlY3VyaXR5L19DcmVhdGVDcm9zc1NpZ25pbmdEaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9zZWN1cml0eS9fQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaWFsb2dzL3NlY3VyaXR5L19LZXlCYWNrdXBGYWlsZWREaWFsb2cucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZGlhbG9ncy9zZWN1cml0eS9fUmVzdG9yZUtleUJhY2t1cERpYWxvZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9kaXJlY3RvcnkvX05ldHdvcmtEcm9wZG93bi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fQWNjZXNzaWJsZUJ1dHRvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fQ29weWFibGVUZXh0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19EZXNrdG9wQ2FwdHVyZXJTb3VyY2VQaWNrZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0RpYWxQYWRCYWNrc3BhY2VCdXR0b24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0Ryb3Bkb3duLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19FZGl0YWJsZUl0ZW1MaXN0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19FcnJvckJvdW5kYXJ5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19FeHRlcm5hbExpbmsucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0ZhY2VQaWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19GaWVsZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0ltYWdlVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fSW5mb1Rvb2x0aXAucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0lubGluZVNwaW5uZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX0ludGVyYWN0aXZlVG9vbHRpcC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fSW52aXRlUmVhc29uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19MYWJlbGxlZENoZWNrYm94LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19MYW5ndWFnZURyb3Bkb3duLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19NaW5pQXZhdGFyVXBsb2FkZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1BpbGwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1Bvd2VyU2VsZWN0b3IucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1Byb2dyZXNzQmFyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19RUkNvZGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1JlcGx5Q2hhaW4ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1Jlc2l6ZUhhbmRsZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fUmljaFRleHQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1Jvb21BbGlhc0ZpZWxkLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19TU09CdXR0b25zLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19TZWFyY2hXYXJuaW5nLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19TZXJ2ZXJQaWNrZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1NldHRpbmdzRHJvcGRvd24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1NldHRpbmdzRmxhZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fU3Bpbm5lci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fU3R5bGVkUmFkaW9CdXR0b24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1N5bnRheEhpZ2hsaWdodC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fVGFnQ29tcG9zZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvZWxlbWVudHMvX1RleHRXaXRoVG9vbHRpcC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9lbGVtZW50cy9fVG9nZ2xlU3dpdGNoLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2VsZW1lbnRzL19WYWxpZGF0aW9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL2xvY2F0aW9uL19Mb2NhdGlvblBpY2tlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fQ2FsbEV2ZW50LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL21lc3NhZ2VzL19DcmVhdGVFdmVudC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fRGlzYW1iaWd1YXRlZFByb2ZpbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvbWVzc2FnZXMvX0xlZ2FjeUNhbGxFdmVudC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fTUltYWdlUmVwbHlCb2R5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL21lc3NhZ2VzL19NTG9jYXRpb25Cb2R5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL21lc3NhZ2VzL19NUG9sbEJvZHkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvbWVzc2FnZXMvX01TdGlja2VyQm9keS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fTWVzc2FnZUFjdGlvbkJhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9tZXNzYWdlcy9fVGV4dHVhbEV2ZW50LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL21lc3NhZ2VzL19UaHJlYWRBY3Rpb25CYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvbWVzc2FnZXMvX2NvbW1vbl9DcnlwdG9FdmVudC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9wb2xscy9wb2xsSGlzdG9yeS9fUG9sbEhpc3RvcnkucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcG9sbHMvcG9sbEhpc3RvcnkvX1BvbGxIaXN0b3J5TGlzdC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yaWdodF9wYW5lbC9fQmFzZUNhcmQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcmlnaHRfcGFuZWwvX0VtcHR5U3RhdGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcmlnaHRfcGFuZWwvX0VuY3J5cHRpb25JbmZvLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3JpZ2h0X3BhbmVsL19FeHRlbnNpb25zQ2FyZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yaWdodF9wYW5lbC9fUGlubmVkTWVzc2FnZXNDYXJkLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3JpZ2h0X3BhbmVsL19Sb29tU3VtbWFyeUNhcmQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcmlnaHRfcGFuZWwvX1RocmVhZFBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3JpZ2h0X3BhbmVsL19UaW1lbGluZUNhcmQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvcmlnaHRfcGFuZWwvX1VzZXJJbmZvLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3JpZ2h0X3BhbmVsL19WZXJpZmljYXRpb25QYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yaWdodF9wYW5lbC9fV2lkZ2V0Q2FyZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tX3NldHRpbmdzL19BbGlhc1NldHRpbmdzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL1Jvb21MaXN0UGFuZWwvX1Jvb21MaXN0UGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0FwcHNEcmF3ZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0F1dG9jb21wbGV0ZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fQXV4UGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0Jhc2ljTWVzc2FnZUNvbXBvc2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19DYWxsR3Vlc3RMaW5rQnV0dG9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19FMkVJY29uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19FMkVJY29uVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fRWRpdE1lc3NhZ2VDb21wb3Nlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fRW1vamlCdXR0b24ucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0V2ZW50QnViYmxlVGlsZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fRXZlbnRUaWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19IaXN0b3J5VGlsZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fSVJDTGF5b3V0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19JbnZpdGVkSWNvblZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX0p1bXBUb0JvdHRvbUJ1dHRvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fTGl2ZUNvbnRlbnRTdW1tYXJ5LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19NZW1iZXJMaXN0SGVhZGVyVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fTWVtYmVyTGlzdFZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX01lbWJlclRpbGVWaWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19NZXNzYWdlQ29tcG9zZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX01lc3NhZ2VDb21wb3NlckZvcm1hdEJhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fTmV3Um9vbUludHJvLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19PdmVyZmxvd1RpbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1Bpbm5lZEV2ZW50VGlsZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUGlubmVkTWVzc2FnZUJhbm5lci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUHJlc2VuY2VJY29uVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUHJlc2VuY2VMYWJlbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUmVhZFJlY2VpcHRHcm91cC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUmVwbHlQcmV2aWV3LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19SZXBseVRpbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1Jvb21IZWFkZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1Jvb21JbmZvTGluZS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUm9vbUtub2Nrc0Jhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUm9vbVByZXZpZXdCYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1Jvb21QcmV2aWV3Q2FyZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fUm9vbVNlYXJjaEF1eFBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19Sb29tVXBncmFkZVdhcm5pbmdCYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1NlbmRNZXNzYWdlQ29tcG9zZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1N0aWNrZXJzLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19UaGlyZFBhcnR5TWVtYmVySW5mby5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy9fVG9wVW5yZWFkTWVzc2FnZXNCYXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1VzZXJJZGVudGl0eVdhcm5pbmcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvX1ZvaWNlUmVjb3JkQ29tcG9zZXJUaWxlLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL19XaG9Jc1R5cGluZ1RpbGUucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvd3lzaXd5Z19jb21wb3Nlci9fRWRpdFd5c2l3eWdDb21wb3Nlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9yb29tcy93eXNpd3lnX2NvbXBvc2VyL19TZW5kV3lzaXd5Z0NvbXBvc2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL3d5c2l3eWdfY29tcG9zZXIvY29tcG9uZW50cy9fRWRpdG9yLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Jvb21zL3d5c2l3eWdfY29tcG9zZXIvY29tcG9uZW50cy9fRm9ybWF0dGluZ0J1dHRvbnMucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvcm9vbXMvd3lzaXd5Z19jb21wb3Nlci9jb21wb25lbnRzL19MaW5rTW9kYWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX0F2YXRhclNldHRpbmcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX0ZvbnRTY2FsaW5nUGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX0ltYWdlU2l6ZVBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19JbnRlZ3JhdGlvbk1hbmFnZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX0pvaW5SdWxlU2V0dGluZ3MucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX0tleWJvYXJkU2hvcnRjdXQucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX0xheW91dFN3aXRjaGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19Ob3RpZmljYXRpb25QdXNoZXJTZXR0aW5ncy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fTm90aWZpY2F0aW9uU2V0dGluZ3MyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19Ob3RpZmljYXRpb25zLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19QaG9uZU51bWJlcnMucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX1Bvd2VyTGV2ZWxTZWxlY3Rvci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fUm9vbVByb2ZpbGVTZXR0aW5ncy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fU2V0SW50ZWdyYXRpb25NYW5hZ2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19TZXR0aW5nc0ZpZWxkc2V0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19TZXR0aW5nc0hlYWRlci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9fU2V0dGluZ3NTdWJoZWFkZXIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX1NwZWxsQ2hlY2tMYW5ndWFnZXMucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX1RoZW1lQ2hvaWNlUGFuZWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX1VwZGF0ZUNoZWNrQnV0dG9uLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL19Vc2VyUGVyc29uYWxJbmZvU2V0dGluZ3MucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvX1VzZXJQcm9maWxlU2V0dGluZ3MucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fQWR2YW5jZWRQYW5lbC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19DaGFuZ2VSZWNvdmVyeUtleS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19FbmNyeXB0aW9uQ2FyZC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy9lbmNyeXB0aW9uL19FbmNyeXB0aW9uQ2FyZEVtcGhhc2lzZWRDb250ZW50LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL2VuY3J5cHRpb24vX1JlY292ZXJ5UGFuZWxPdXRPZlN5bmMucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvZW5jcnlwdGlvbi9fUmVzZXRJZGVudGl0eVBhbmVsLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvX1NldHRpbmdzQmFubmVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvX1NldHRpbmdzSW5kZW50LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvX1NldHRpbmdzU2VjdGlvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL19TZXR0aW5nc1RhYi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL3Jvb20vX05vdGlmaWNhdGlvblNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvcm9vbS9fUGVvcGxlUm9vbVNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvcm9vbS9fUm9sZXNSb29tU2V0dGluZ3NUYWIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy9yb29tL19TZWN1cml0eVJvb21TZXR0aW5nc1RhYi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX0FwcGVhcmFuY2VVc2VyU2V0dGluZ3NUYWIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19IZWxwVXNlclNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fS2V5Ym9hcmRVc2VyU2V0dGluZ3NUYWIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19NZWRpYVByZXZpZXdBY2NvdW50U2V0dGluZ3MucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19Nam9sbmlyVXNlclNldHRpbmdzVGFiLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NldHRpbmdzL3RhYnMvdXNlci9fUHJlZmVyZW5jZXNVc2VyU2V0dGluZ3NUYWIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc2V0dGluZ3MvdGFicy91c2VyL19TZWN1cml0eVVzZXJTZXR0aW5nc1RhYi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvX1NpZGViYXJVc2VyU2V0dGluZ3NUYWIucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc3BhY2VzL19TcGFjZUJhc2ljU2V0dGluZ3MucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvc3BhY2VzL19TcGFjZUNoaWxkcmVuUGlja2VyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3NwYWNlcy9fU3BhY2VDcmVhdGVNZW51LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3Rlcm1zL19JbmxpbmVUZXJtc0FncmVlbWVudC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy90b2FzdHMvX0FuYWx5dGljc1RvYXN0LnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3RvYXN0cy9fSW5jb21pbmdDYWxsVG9hc3QucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvdG9hc3RzL19JbmNvbWluZ0xlZ2FjeUNhbGxUb2FzdC5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy90b2FzdHMvX05vblVyZ2VudEVjaG9GYWlsdXJlVG9hc3QucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3MvdHlwb2dyYXBoeS9fSGVhZGluZy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92ZXJpZmljYXRpb24vX1ZlcmlmaWNhdGlvblNob3dTYXMucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvdm9pcC9MZWdhY3lDYWxsVmlldy9fTGVnYWN5Q2FsbFZpZXdCdXR0b25zLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3ZvaXAvX0NhbGxEdXJhdGlvbi5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92b2lwL19DYWxsVmlldy5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92b2lwL19EaWFsUGFkLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3ZvaXAvX0RpYWxQYWRDb250ZXh0TWVudS5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92b2lwL19EaWFsUGFkTW9kYWwucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvdm9pcC9fTGVnYWN5Q2FsbFZpZXcucGNzc1wiO1xuQGltcG9ydCBcIi4vdmlld3Mvdm9pcC9fTGVnYWN5Q2FsbFZpZXdGb3JSb29tLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3ZvaXAvX0xlZ2FjeUNhbGxWaWV3SGVhZGVyLnBjc3NcIjtcbkBpbXBvcnQgXCIuL3ZpZXdzL3ZvaXAvX0xlZ2FjeUNhbGxWaWV3U2lkZWJhci5wY3NzXCI7XG5AaW1wb3J0IFwiLi92aWV3cy92b2lwL19WaWRlb0ZlZWQucGNzc1wiO1xuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyoqXG4gKiBSZWFjdCBUcmFuc2l0aW9uIEdyb3VwIGFuaW1hdGlvbnMgYXJlIHByZWZpeGVkIHdpdGggJ214X3J0Zy0tJyBzbyB0aGF0IHdlXG4gKiBrbm93IHRoZXkgc2hvdWxkIG5vdCBiZSB1c2VkIGFueXdoZXJlIG91dHNpZGUgb2YgUmVhY3QgVHJhbnNpdGlvbiBHcm91cHMuXG4qL1xuXG4ubXhfcnRnLS1mYWRlLWVudGVyIHtcbiAgICBvcGFjaXR5OiAwO1xufVxuLm14X3J0Zy0tZmFkZS1lbnRlci1hY3RpdmUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAzMDBtcyBlYXNlO1xufVxuLm14X3J0Zy0tZmFkZS1leGl0IHtcbiAgICBvcGFjaXR5OiAxO1xufVxuLm14X3J0Zy0tZmFkZS1leGl0LWFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIGVhc2U7XG59XG5cbjpyb290IHtcbiAgICAtLWhvdmVyLXRyYW5zaXRpb246IDAuMDhzIGN1YmljLWJlemllcigwLjQ2LCAwLjAzLCAwLjUyLCAwLjk2KTsgLyogcXVhZHJhdGljICovXG59XG5cbkBrZXlmcmFtZXMgbXgtLWFuaW0tcHVsc2Uge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgbXhfRGlhbG9nX2xpZ2h0Ym94X2JhY2tncm91bmRfa2V5ZnJhbWVzIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAkbGlnaHRib3gtYmFja2dyb3VuZC1iZy1vcGFjaXR5O1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBteF9JbWFnZVZpZXdfcGFuZWxfa2V5ZnJhbWVzIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uKSB7XG4gICAgQGtleWZyYW1lcyBteC0tYW5pbS1wdWxzZSB7XG4gICAgICAgIC8qIE92ZXJyaWRlIGFsbCBrZXlmcmFtZXMgaW4gcmVkdWNlZC1tb3Rpb24gKi9cbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIG14X0RpYWxvZ19saWdodGJveF9iYWNrZ3JvdW5kX2tleWZyYW1lcyB7XG4gICAgICAgIC8qIE92ZXJyaWRlIGFsbCBrZXlmcmFtZXMgaW4gcmVkdWNlZC1tb3Rpb24gKi9cbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIG14X0ltYWdlVmlld19wYW5lbF9rZXlmcmFtZXMge1xuICAgICAgICAvKiBPdmVycmlkZSBhbGwga2V5ZnJhbWVzIGluIHJlZHVjZWQtbW90aW9uICovXG4gICAgfVxuXG4gICAgLm14X3J0Zy0tZmFkZS1lbnRlci1hY3RpdmUge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbiAgICAubXhfcnRnLS1mYWRlLWV4aXQtYWN0aXZlIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOS0yMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkNcbkNvcHlyaWdodCAyMDE3LTIwMTkgTmV3IFZlY3RvciBMdGRcbkNvcHlyaWdodCAyMDE3IFZlY3RvciBDcmVhdGlvbnMgTHRkXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5AaW1wb3J0IFwiLi9fZm9udC1zaXplcy5wY3NzXCI7XG5AaW1wb3J0IFwiLi9fYW5pbWF0aW9ucy5wY3NzXCI7XG5cbjpyb290IHtcbiAgICAtLWNvbnRhaW5lci1ib3JkZXItd2lkdGg6IDhweDtcbiAgICAtLWNvbnRhaW5lci1nYXAtd2lkdGg6IDhweDsgLyogb25seSBldmVuIG51bWJlcnMgc2hvdWxkIGJlIHVzZWQgYmVjYXVzZSBvdGhlcndpc2Ugd2UgZ2V0IDAuNXB4IG1hcmdpbiB2YWx1ZXMuICovXG4gICAgLS10cmFuc2l0aW9uLXNob3J0OiAwLjFzO1xuICAgIC0tdHJhbnNpdGlvbi1zdGFuZGFyZDogMC4zcztcbiAgICAtLWJ1dHRvbnMtZGlhbG9nLWdhcC1yb3c6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgLS1idXR0b25zLWRpYWxvZy1nYXAtY29sdW1uOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIC0tTUJvZHktYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIC0tRXZlbnRUaWxlQnViYmxlX21hcmdpbi1ibG9jazogMTBweDtcbiAgICAtLU1lc3NhZ2VUaW1lc3RhbXAtd2lkdGg6IDQ2cHg7IC8qIDggKyAzMCAoYXZhdGFyKSArIDggKi9cblxuICAgIC8qIEV4cGVjdGVkIHotaW5kZXhlcyBmb3IgZGlhbG9nczpcbiAgICAgICAgNDAwMCAtIERlZmF1bHQgd3JhcHBlciBpbmRleFxuICAgICAgICA0MDA5IC0gU3RhdGljIGRpYWxvZyBiYWNrZ3JvdW5kXG4gICAgICAgIDQwMTAgLSBTdGF0aWMgZGlhbG9nIGl0c2VsZlxuICAgICAgICA0MDExIC0gU3RhbmRhcmQgZGlhbG9nIGJhY2tncm91bmRcbiAgICAgICAgNDAxMiAtIFN0YW5kYXJkIGRpYWxvZyBpdHNlbGZcblxuICAgICAgIFRoZXNlIGFyZSBzZXQgdXAgc3VjaCB0aGF0IHRoZSBzdGF0aWMgZGlhbG9nIGFsd2F5cyBhcHBlYXJzXG4gICAgICAgdW5kZXJuZWF0aCB0aGUgc3RhbmRhcmQgZGlhbG9ncy5cbiAgICAgKi9cbiAgICAtLWRpYWxvZy16SW5kZXgtd3JhcHBlci1kZWZhdWx0OiA0MDAwO1xuICAgIC0tZGlhbG9nLXpJbmRleC1zdGF0aWMtYmFja2dyb3VuZDogNDAwOTtcbiAgICAtLWRpYWxvZy16SW5kZXgtc3RhdGljOiBjYWxjKHZhcigtLWRpYWxvZy16SW5kZXgtc3RhdGljLWJhY2tncm91bmQpICsgMSk7IC8qIDQwMTAgKi9cbiAgICAtLWRpYWxvZy16SW5kZXgtc3RhbmRhcmQtYmFja2dyb3VuZDogY2FsYyh2YXIoLS1kaWFsb2ctekluZGV4LXN0YXRpYykgKyAxKTsgLyogNDAxMSAqL1xuICAgIC0tZGlhbG9nLXpJbmRleC1zdGFuZGFyZDogY2FsYyh2YXIoLS1kaWFsb2ctekluZGV4LXN0YW5kYXJkLWJhY2tncm91bmQpICsgMSk7IC8qIDQwMTIgKi9cbn1cblxuI21hdHJpeGNoYXQge1xuICAgIC8qIFRoaXMgaXMgcmVxdWlyZWQgdG8gZW5zdXJlIENvbXBvdW5kIHRvb2x0aXBzIGNvcnJlY3RseSBkcmF3IHdoZXJlIHRoZXkgc2hvdWxkIHdpdGggei1pbmRleDogYXV0byAqL1xuICAgIGNvbnRhaW46IHN0cmljdDtcbn1cbiNteF9Db250ZXh0dWFsTWVudV9Db250YWluZXIsXG4jbXhfUGVyc2lzdGVkRWxlbWVudF9jb250YWluZXIsXG4jbXhfRGlhbG9nX0NvbnRhaW5lcixcbiNteF9EaWFsb2dfU3RhdGljQ29udGFpbmVyIHtcbiAgICAvKiBUaGlzIGlzIHJlcXVpcmVkIHRvIGVuc3VyZSBDb21wb3VuZCB0b29sdGlwcyBjb3JyZWN0bHkgZHJhdyB3aGVyZSB0aGV5IHNob3VsZCB3aXRoIHotaW5kZXg6IGF1dG8gKi9cbiAgICBpc29sYXRpb246IGlzb2xhdGU7XG59XG5cbi8qKlxuICogRGlzYWJsZSBwb2ludGVyIGV2ZW50cyBpbnNpZGUgdGhlIHBlcnNpc3RlbnRFbGVtZW50IGNvbnRhaW5lciB3aGVuIHRoZSByb29tLWxpc3QgaXMgYmVpbmcgcmVzaXplZC5cbiAqIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIGF2b2lkIHRoZSBwb2ludGVyIGV2ZW50cyBmcm9tIGJlaW5nIGhpamFja2VkIGJ5IHRoZSBjb250ZW50IHJlbmRlcmVkIGluc2lkZVxuICogdGhhdCBkaXYuXG4gKi9cbjpyb290OmhhcygubXhfU2VwYXJhdG9yW2RhdGEtc2VwYXJhdG9yPVwiYWN0aXZlXCJdKSAjbXhfUGVyc2lzdGVkRWxlbWVudF9jb250YWluZXIge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4vKipcbiAqIFdlIG5lZWQgdG8gaW5jcmVhc2UgdGhlIHNwZWNpZmljaXR5IG9mIHRoZSBzZWxlY3RvciB0byBvdmVycmlkZSB0aGVcbiAqIGN1c3RvbSBwcm9wZXJ0eSBzZXQgYnkgdGhlIGRlc2lnbiB0b2tlbnMgcGFja2FnZVxuICovXG5bY2xhc3NePVwiY3BkLXRoZW1lXCJdW2NsYXNzXj1cImNwZC10aGVtZVwiXSB7XG4gICAgLyoqXG4gICAgICogVGhlIGRlc2lnbiB0b2tlbnMgcGFja2FnZSBjdXJyZW50bHkgZG9lcyBub3QgZXhwb3NlIHRoZSBmYWxsYmFjayBmb250c1xuICAgICAqIFdlIHdhbnQgdG8ga2VlcCBvbiByZS11c2luZyBgJGZvbnQtZmFtaWx5YCB0byBub3QgYnJlYWsgY3VzdG9tIHRoZW1lc1xuICAgICAqIGFuZCBiZWNhdXNlIHdlIGNhbiB0byB1c2UgYFR3ZW1vamlgIHRvIGRpc3BsYXkgZW1vamkgcmF0aGVyIHRoYW4gdXNpbmdcbiAgICAgKiBzeXN0ZW0gb25lc1xuICAgICAqL1xuICAgIC0tY3BkLWZvbnQtZmFtaWx5LXNhbnM6ICRmb250LWZhbWlseTtcbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uKSB7XG4gICAgOnJvb3Qge1xuICAgICAgICAtLXRyYW5zaXRpb24tc2hvcnQ6IDA7XG4gICAgICAgIC0tdHJhbnNpdGlvbi1zdGFuZGFyZDogMDtcbiAgICB9XG59XG5cbmh0bWwge1xuICAgIC8qIGhhY2sgdG8gc3RvcCBvdmVyc2Nyb2xsIGJvdW5jZSBvbiBPU1ggYW5kIGlPUy5cbiAgICAgICBOLkIuIEJyZWFrcyB0aGluZ3Mgd2hlbiB3ZSBoYXZlIGxlZ2l0aW1hdGUgaG9yaXpvbnRhbCBvdmVyc2Nyb2xsICovXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLyogU3RvcCBzaW1pbGFyIG92ZXJzY3JvbGwgYm91bmNlIGluIEZpcmVmb3ggTmlnaHRseSBmb3IgbWFjT1MgKi9cbiAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBub25lO1xufVxuXG5ib2R5IHtcbiAgICAvKiAhaW1wb3J0YW50IGJlY2F1c2UgY29tcG91bmQgb3ZlcnJpZGVzIHRoZXNlIGZvbnQgc2V0dGluZ3MgZm9yIGJvZHkgKi9cbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpICFpbXBvcnRhbnQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWNwZC1mb250LWxldHRlci1zcGFjaW5nLWJvZHktbWQpICFpbXBvcnRhbnQ7XG4gICAgLyoqXG4gICAgICogV2Ugd2FudCB0byBhcHBseSBJbnRlciBEeW5hbWljIG1ldHJpY3MgKGh0dHBzOi8vcnNtcy5tZS9pbnRlci9keW5tZXRyaWNzLylcbiAgICAgKiBXZSBuZWVkIHRvIHR3ZWFrIHRoZSBgbGV0dGVyLXNwYWNpbmdgIHByb3BlcnR5IGFuZCBkb2luZyBzbywgZGlzYWJsZXMgYnlcbiAgICAgKiBkZWZhdWx0IHRoZSBvcHRpb25hbCBsaWdhdHVyZXNcbiAgICAgKiBgZm9udC1mZWF0dXJlLXNldHRpbmdzYCBhbGxvd3MgdXMgdG8gb3ZlcnJpZGUgdGhpcyBiZWhhdmlvdXIgYW5kIGhhdmUgdGhlXG4gICAgICogY29ycmVjdCBsaWdhdHVyZXMgYW5kIHRoZSBwcm9wZXIgZHluYW1pYyBtZXRyaWMgc3BhY2luZy5cbiAgICAgKi9cbiAgICBmb250LWZlYXR1cmUtc2V0dGluZ3M6XG4gICAgICAgIFwia2VyblwiIDEsXG4gICAgICAgIFwibGlnYVwiIDEsXG4gICAgICAgIFwiY2FsdFwiIDEgIWltcG9ydGFudDtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGJvcmRlcjogMHB4O1xuICAgIG1hcmdpbjogMHB4O1xuXG4gICAgLyogbmVlZGVkIHRvIG1hdGNoIHRoZSBkZXNpZ25zIGNvcnJlY3RseSBvbiBtYWNPUyAqL1xuICAgIC8qIHNlZSBodHRwczovL2dpdGh1Yi5jb20vdmVjdG9yLWltL2VsZW1lbnQtd2ViL2lzc3Vlcy8xMTQyNSAqL1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbnByZSxcbmNvZGUge1xuICAgIGZvbnQtZmFtaWx5OiAkbW9ub3NwYWNlLWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc2l6ZTogMTAwJSAhaW1wb3J0YW50O1xufVxuXG4uZXJyb3IsXG4ud2FybmluZyxcbi50ZXh0LWVycm9yLFxuLnRleHQtd2FybmluZyB7XG4gICAgY29sb3I6ICRhbGVydDtcbn1cblxuLnRleHQtc3VjY2VzcyB7XG4gICAgY29sb3I6ICRhY2NlbnQ7XG59XG5cbi50ZXh0LW11dGVkIHtcbiAgICBjb2xvcjogJG11dGVkLWZnLWNvbG9yO1xufVxuXG4udGV4dC1wcmltYXJ5IHtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuLnRleHQtc2Vjb25kYXJ5IHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xufVxuXG4ubXhfVmVyaWZpZWQge1xuICAgIGNvbG9yOiAkZTJlLXZlcmlmaWVkLWNvbG9yO1xufVxuXG4ubXhfVW50cnVzdGVkIHtcbiAgICBjb2xvcjogJGUyZS13YXJuaW5nLWNvbG9yO1xufVxuXG5iIHtcbiAgICAvKiBPbiBGaXJlZm94LCB0aGUgZGVmYXVsdCB3ZWlnaHQgZm9yIGA8Yj5gIGlzIGBib2xkZXJgIHdoaWNoIHJlc3VsdHMgaW4gbm8gYm9sZCAqL1xuICAgIC8qIGVmZmVjdCBzaW5jZSB3ZSBvbmx5IGhhdmUgc3BlY2lmaWMgd2VpZ2h0cyBvZiBvdXIgZm9udHMgYXZhaWxhYmxlLiAqL1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4vKiBLZWVwIHRoZSBsZWdhY3kgbGluayBjb2xvdXIgd2l0aG91dCBvdmVycmlkaW5nIENvbXBvdW5kIGFuY2hvcnMgb3Igc2hhcmVkIHRpbWVzdGFtcCBzdHlsaW5nLiAqL1xuYTp3aGVyZSg6bm90KFtkYXRhLWtpbmRdKTpub3QoLm14X01lc3NhZ2VUaW1lc3RhbXApKTpob3ZlcixcbmE6d2hlcmUoOm5vdChbZGF0YS1raW5kXSk6bm90KC5teF9NZXNzYWdlVGltZXN0YW1wKSk6bGluayxcbmE6d2hlcmUoOm5vdChbZGF0YS1raW5kXSk6bm90KC5teF9NZXNzYWdlVGltZXN0YW1wKSk6dmlzaXRlZCB7XG4gICAgY29sb3I6ICRhY2NlbnQtYWx0O1xufVxuXG46bm90KC5teF9ub190ZXh0aW5wdXQpOm5vdCgubXhfdGV4dGlucHV0KTpub3QoLm14X0ZpZWxkKSA+IGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuOm5vdCgubXhfbm9fdGV4dGlucHV0KTpub3QoLm14X3RleHRpbnB1dCk6bm90KC5teF9GaWVsZCkgPiBpbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgICBwYWRkaW5nOiA5cHg7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1zZW1pYm9sZCk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG5pbnB1dFt0eXBlPVwidGV4dFwiXS5teF90ZXh0aW5wdXRfaWNvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ubXhfdGV4dGlucHV0X2ljb24ge1xuICAgIHBhZGRpbmctbGVmdDogMzZweDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwcHggY2VudGVyO1xufVxuXG4vKiBGSVhNRSBUSEVNRSAtIFRpbnQgYnkgQ1NTIHJhdGhlciB0aGFuIHJlZmVyZW5jaW5nIGEgZHVwbGljYXRlIGFzc2V0ICovXG5pbnB1dFt0eXBlPVwidGV4dFwiXS5teF90ZXh0aW5wdXRfaWNvbi5teF90ZXh0aW5wdXRfc2VhcmNoLFxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXS5teF90ZXh0aW5wdXRfaWNvbi5teF90ZXh0aW5wdXRfc2VhcmNoIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJAdmVjdG9yLWltL2NvbXBvdW5kLWRlc2lnbi10b2tlbnMvaWNvbnMvc2VhcmNoLnN2Z1wiKTtcbn1cblxuLyogZG9udCBzZWFyY2ggVUkgYXMgbm90IGFsbCBicm93c2VycyBzdXBwb3J0IGl0LCAqL1xuLyogd2UgaW1wbGVtZW50IGl0IG91cnNlbHZlcyB3aGVyZSBuZWVkZWQgaW5zdGVhZCAqL1xuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogT3ZlcnJpZGUgRmlyZWZveCdzIFVBIHN0eWxlIHNvIHdlIGdldCBhIGNvbnNpc3RlbnQgbG9vayBhY3Jvc3MgYnJvd3NlcnMgKi9cbmlucHV0OjpwbGFjZWhvbGRlcixcbnRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gICAgb3BhY2l0eTogaW5pdGlhbDtcbn1cblxuaW5wdXRbdHlwZT1cInRleHRcIl0sXG50ZXh0YXJlYSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi8qIFJlcXVpcmVkIGJ5IEZpcmVmb3ggKi9cbnRleHRhcmVhIHtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG50ZXh0YXJlYTpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG4vKiBUaGlzIGlzIHVzZWQgdG8gaGlkZSB0aGUgc3RhbmRhcmQgb3V0bGluZSBhZGRlZCBieSBicm93c2VycyBmb3IgKi9cbi8qIGFjY2Vzc2libGUgKGZvY3VzYWJsZSkgY29tcG9uZW50cy4gTm90IGludGVuZGVkIGZvciBidXR0b25zLCBidXQgKi9cbi8qIHNob3VsZCBiZSB1c2VkIG9uIHRoaW5ncyBsaWtlIGZvY3VzYWJsZSBjb250YWluZXJzIHdoZXJlIHRoZSBvdXRsaW5lICovXG4vKiBpcyB1c3VhbGx5IG5vdCBoZWxwaW5nIGFueW9uZS4gKi9cbio6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cblxuc3VtbWFyeSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4vKiAubXhfdGV4dGlucHV0IGlzIGEgY29udGFpbmVyIGZvciBhIHRleHQgaW5wdXQgKi9cbi8qICsgc29tZSBvdGhlciBjb250cm9scyBsaWtlIGJ1dHRvbnMsIC4uLiAqL1xuLyogaXQgaGFzIHRoZSBhcHBlYXJhbmNlIG9mIGEgdGV4dCBib3ggc28gdGhlIGNvbnRyb2xzICovXG4vKiBhcHBlYXIgdG8gYmUgcGFydCBvZiB0aGUgaW5wdXQgKi9cblxuLm14X0RpYWxvZyxcbi5teF9NYXRyaXhDaGF0X3dyYXBwZXIge1xuICAgIC5teF90ZXh0aW5wdXQgPiBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgICAubXhfdGV4dGlucHV0ID4gaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgOm5vdCgubXhfdGV4dGlucHV0KTpub3QoLm14X0ZpZWxkKTpub3QoLm14X25vX3RleHRpbnB1dCkgPiBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgICA6bm90KC5teF90ZXh0aW5wdXQpOm5vdCgubXhfRmllbGQpOm5vdCgubXhfbm9fdGV4dGlucHV0KSA+IGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4gICAgLm14X3RleHRpbnB1dCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY29sb3I6ICRpbnB1dC1kYXJrZXItZmctY29sb3I7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHNlY29uZGFyeS1oYWlybGluZS1jb2xvcjtcbiAgICAgICAgLyogdGhlc2UgdGhpbmdzIHNob3VsZCBwcm9iYWJseSBub3QgYmUgZGVmaW5lZCBnbG9iYWxseSAqL1xuICAgICAgICBtYXJnaW46IDlweDtcbiAgICB9XG5cbiAgICAubXhfdGV4dGlucHV0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICA6bm90KC5teF90ZXh0aW5wdXQpOm5vdCgubXhfRmllbGQpOm5vdCgubXhfbm9fdGV4dGlucHV0KSA+IGlucHV0W3R5cGU9XCJ0ZXh0XCJdOjpwbGFjZWhvbGRlcixcbiAgICA6bm90KC5teF90ZXh0aW5wdXQpOm5vdCgubXhfRmllbGQpOm5vdCgubXhfbm9fdGV4dGlucHV0KSA+IGlucHV0W3R5cGU9XCJzZWFyY2hcIl06OnBsYWNlaG9sZGVyLFxuICAgIC5teF90ZXh0aW5wdXQgaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgY29sb3I6ICRpbnB1dC1wbGFjZWhvbGRlcjtcbiAgICB9XG59XG5cbi8qIFByZXZlbnQgdWdseSBkb3R0ZWQgaGlnaGxpZ2h0IGFyb3VuZCBzZWxlY3RlZCBlbGVtZW50cyBpbiBGaXJlZm94ICovXG46Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbn1cblxuLyogVGhlc2UgYXJlIG1hZ2ljIGNvbnN0YW50cyB3aGljaCBhcmUgZXhjbHVkZWQgZnJvbSB0aW50aW5nLCB0byBsZXQgdGhlbWVzICovXG4vKiAod2hpY2ggb25seSBoYXZlIENTUykgdGVsbCB0aGUgYXBwIHdoYXQgdGhlaXIgbm9uLXRpbnRlZCAqL1xuLyogY29sb3Vyc2NoZW1lIGlzIGJ5IGluc3BlY3RpbmcgdGhlIHN0eWxlc2hlZXQgRE9NLiAqL1xuLyogVGhleSBhcmUgbm90IHVzZWQgZm9yIGxheW91dCEhICovXG4jbXhfdGhlbWVfYWNjZW50Q29sb3Ige1xuICAgIGNvbG9yOiAkYWNjZW50O1xufVxuXG4jbXhfdGhlbWVfc2Vjb25kYXJ5QWNjZW50Q29sb3Ige1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWFjY2VudC1jb2xvcjtcbn1cblxuLm14X0RpYWxvZ193cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgei1pbmRleDogdmFyKC0tZGlhbG9nLXpJbmRleC13cmFwcGVyLWRlZmF1bHQpO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm14X0RpYWxvZ19ib3JkZXIge1xuICAgIHotaW5kZXg6IHZhcigtLWRpYWxvZy16SW5kZXgtc3RhbmRhcmQpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gdmFyKC0tY3BkLXNwYWNlLTZ4KSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgLm14X0RpYWxvZ19saWdodGJveCAmIHtcbiAgICAgICAgLyogVGhlIGxpZ2h0Ym94IGlzbid0IHNvIG11Y2ggb2YgYSBkaWFsb2cgYXMgYSBmdWxsc2NyZWVuIG92ZXJsYXkuIFdlXG4gICAgICAgIGRvbid0IHdhbnQgdGhlIGdsYXNzIGJvcmRlci4gKi9cbiAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgfVxufVxuXG4ubXhfRGlhbG9nIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGxpZ2h0LWZnLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTh4KSB2YXIoLS1jcGQtc3BhY2UtMTB4KTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG5cbiAgICAubXhfRGlhbG9nX3N0YXRpY1dyYXBwZXIgJiB7XG4gICAgICAgIHotaW5kZXg6IHZhcigtLWRpYWxvZy16SW5kZXgtc3RhdGljKTtcbiAgICAgICAgY29udGFpbjogY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nX2xpZ2h0Ym94ICYge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC8qIFN0eWxlcyBjb3BpZWQvaW5zcGlyZWQgYnkgR3JvdXBMYXlvdXQsIFJlcGx5VGlsZSwgYW5kIEV2ZW50VGlsZSB2YXJpYW50cy4gKi9cbiAgICAubWFya2Rvd24tYm9keSB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcikgIWltcG9ydGFudDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWNwZC1mb250LWxldHRlci1zcGFjaW5nLWJvZHktbWQpO1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0OyAvKiBpbmhlcml0IHRoZSBjb2xvdXIgZnJvbSB0aGUgZGFyayBvciBsaWdodCB0aGVtZSBieSBkZWZhdWx0IChidXQgbm90IGZvciBjb2RlIGJsb2NrcykgKi9cblxuICAgICAgICBwcmUsXG4gICAgICAgIGNvZGUge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRtb25vc3BhY2UtZm9udC1mYW1pbHkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2RlYmxvY2stYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHRoaXMgc2VsZWN0b3Igd3JvbmdseSBhcHBsaWVzIHRvIGNvZGUgYmxvY2tzIHRvbyBidXQgd2Ugd2lsbCB1bnNldCBpdCBpbiB0aGUgbmV4dCBvbmUgKi9cbiAgICAgICAgY29kZSB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IC8qIGRvbid0IGNvbGxhcHNlIHNwYWNlcyBpbiBpbmxpbmUgY29kZSBibG9ja3MgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIHByZSB7XG4gICAgICAgICAgICAvKiBoYXZlIHRvIHVzZSBvdmVybGF5IHJhdGhlciB0aGFuIGF1dG8gb3RoZXJ3aXNlIExpbnV4IGFuZCBXaW5kb3dzICovXG4gICAgICAgICAgICAvKiBDaHJvbWUgZ2V0cyB2ZXJ5IGNvbmZ1c2VkIGFib3V0IHZlcnRpY2FsIHNwYWNpbmc6ICovXG4gICAgICAgICAgICAvKiBodHRwczovL2dpdGh1Yi5jb20vdmVjdG9yLWltL3ZlY3Rvci13ZWIvaXNzdWVzLzc1NCAqL1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogb3ZlcmxheTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG5cbiAgICAgICAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvZGUge1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7IC8qIHdlIHdhbnQgY29kZSBibG9ja3MgdG8gYmUgc2Nyb2xsYWJsZSBhbmQgbm90IHdyYXAgKi9cblxuICAgICAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBoMSxcbiAgICAgICAgaDIsXG4gICAgICAgIGgzLFxuICAgICAgICBoNCxcbiAgICAgICAgaDUsXG4gICAgICAgIGg2IHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIE1ha2UgaDEgYW5kIGgyIHRoZSBzYW1lIHNpemUgYXMgaDMuICovXG4gICAgICAgIGgxLFxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNWVtO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZSAhaW1wb3J0YW50OyAvKiBvdmVycmlkZSBHRk0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQtYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgYmxvY2txdW90ZSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICRibG9ja3F1b3RlLWJhci1jb2xvcjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9EaWFsb2dfZml4ZWRXaWR0aCB7XG4gICAgd2lkdGg6IDYwdnc7XG4gICAgbWF4LXdpZHRoOiA3MDRweDtcbn1cblxuLm14X0RpYWxvZ19iYWNrZ3JvdW5kIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkaWFsb2ctYmFja2Ryb3AtY29sb3I7XG4gICAgei1pbmRleDogdmFyKC0tZGlhbG9nLXpJbmRleC1zdGFuZGFyZC1iYWNrZ3JvdW5kKTtcblxuICAgICYubXhfRGlhbG9nX3N0YXRpY0JhY2tncm91bmQge1xuICAgICAgICB6LWluZGV4OiB2YXIoLS1kaWFsb2ctekluZGV4LXN0YXRpYy1iYWNrZ3JvdW5kKTtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nX3dyYXBwZXJXaXRoU3RhdGljVW5kZXIgJiB7XG4gICAgICAgIC8qIFJvdWdobHkgaGFsZiBvZiB3aGF0IGl0IHdvdWxkIG5vcm1hbGx5IGJlIC0gd2UgZG9uJ3Qgd2FudCB0byBibGFjayBvdXQgKi9cbiAgICAgICAgLyogdGhlIGFwcCwganVzdCBtYWtlIGl0IGNsZWFyIHRoYXQgdGhlIGRpYWxvZ3MgYXJlIHN0YWNrZWQuICovXG4gICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nX2xpZ2h0Ym94ICYge1xuICAgICAgICBvcGFjaXR5OiAkbGlnaHRib3gtYmFja2dyb3VuZC1iZy1vcGFjaXR5O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHRib3gtYmFja2dyb3VuZC1iZy1jb2xvcjtcbiAgICAgICAgYW5pbWF0aW9uLW5hbWU6IG14X0RpYWxvZ19saWdodGJveF9iYWNrZ3JvdW5kX2tleWZyYW1lcztcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAzMDBtcztcbiAgICB9XG59XG5cbi5teF9EaWFsb2dfdGl0bGVJbWFnZSB7XG4gICAgdmVydGljYWwtYWxpZ246IHN1YjtcbiAgICB3aWR0aDogMjVweDtcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgbWFyZ2luLWxlZnQ6IC0ycHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuXG4ubXhfRGlhbG9nX3RpdGxlIHtcbiAgICBjb2xvcjogJGRpYWxvZy10aXRsZS1mZy1jb2xvcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBsZXR0ZXItc3BhY2luZzogdmFyKC0tY3BkLWZvbnQtbGV0dGVyLXNwYWNpbmctaGVhZGluZy1sZyk7XG5cbiAgICAmLmRhbmdlciB7XG4gICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgfVxufVxuXG4ubXhfRGlhbG9nX2hlYWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcGFkZGluZy1pbmxpbmUtZW5kOiAyMHB4OyAvKiBSZXNlcnZlIHJvb20gZm9yIHRoZSBjbG9zZSBidXR0b24gKi9cbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgJi5teF9EaWFsb2dfaGVhZGVyV2l0aEJ1dHRvbiA+IC5teF9EaWFsb2dfdGl0bGUge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuXG5AZGVmaW5lLW1peGluIGN1c3RvbWlzZWRDYW5jZWxCdXR0b24ge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1zZWNvbmRhcnkpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXNlY29uZGFyeSk7XG4gICAgfVxufVxuXG4ubXhfRGlhbG9nX2NhbmNlbEJ1dHRvbiB7XG4gICAgQG1peGluIGN1c3RvbWlzZWRDYW5jZWxCdXR0b247XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICByaWdodDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cblxuLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICBtYXJnaW46IDI0cHggMCA2OHB4O1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4ubXhfRGlhbG9nX2J1dHRvbnMge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS01eCk7XG4gICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgIC5teF9EaWFsb2dfYnV0dG9uc19hZGRpdGl2ZSB7XG4gICAgICAgIC8qIFRoZSBjb25zdW1lciBpcyByZXNwb25zaWJsZSBmb3IgcG9zaXRpb25pbmcgdGhlaXIgZWxlbWVudHMuICovXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfYnV0dG9uc19yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIHRleHQtYWxpZ246IGluaXRpYWw7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG5cbiAgICAgICAgLyogZGVmYXVsdCBnYXAgYW1vbmcgZWxlbWVudHMgKi9cbiAgICAgICAgY29sdW1uLWdhcDogdmFyKC0tYnV0dG9ucy1kaWFsb2ctZ2FwLWNvbHVtbik7XG4gICAgICAgIHJvdy1nYXA6IHZhcigtLWJ1dHRvbnMtZGlhbG9nLWdhcC1yb3cpO1xuXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDsgLyogb3ZlcnJpZGUgdGhlIG1hcmdpbiBzZXR0aW5ncyAqL1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AZGVmaW5lLW1peGluIG14X0RpYWxvZ0J1dHRvbiB7XG4gICAgLyogYWxpZ24gaW1hZ2VzIGluIGJ1dHRvbnMgKGVnIHNwaW5uZXJzKSAqL1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYm9yZGVyOiAwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiAkYnV0dG9uLWZnLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1yZXN0KTtcbiAgICB3aWR0aDogYXV0bztcbiAgICBwYWRkaW5nOiA3cHg7XG4gICAgcGFkZGluZy1sZWZ0OiAxLjVlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjVlbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgJjpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG59XG5cbi8qIFhYWDogT3VyIGJ1dHRvbiBzdHlsZSBhcmUgYSBtZXNzOiBidXR0b25zIHRoYXQgaGFwcGVuIHRvIGFwcGVhciBpbiBkaWFsb2dzIGdldCBzcGVjaWFsIHN0eWxlcyBhcHBsaWVkXG4gKiB0byB0aGVtIHRoYXQgbm8gYnV0dG9uIGFueXdoZXJlIGVsc2UgaW4gdGhlIGFwcCBnZXRzIGJ5IGRlZmF1bHQuIEluIHByYWN0aWNlLCBidXR0b25zIGluIG90aGVyIHBsYWNlc1xuICogaW4gdGhlIGFwcCBsb29rIHRoZSBzYW1lIGJ5IGJlaW5nIEFjY2Vzc2libGVCdXR0b25zLCBvciBwb3NzaWJseSBieSBoYXZpbmcgZXhwbGljdCBidXR0b24gY2xhc3Nlcy5cbiAqIFdlIHNob3VsZCBnbyB0aHJvdWdoIGFuZCBoYXZlIG9uZSBjb25zaXN0ZW50IHNldCBvZiBzdHlsZXMgZm9yIGJ1dHRvbnMgdGhyb3VnaG91dCB0aGUgYXBwLlxuICogRm9yIG5vdywgSSBhbSBkdXBsaWNhdGluZyB0aGUgc2VsZWN0b3JzIGhlcmUgZm9yIG14X0RpYWxvZyBhbmQgbXhfRGlhbG9nQnV0dG9ucy5cbiAqL1xuLm14X0RpYWxvZ1xuICAgIGJ1dHRvbjpub3QoXG4gICAgICAgIC5teF9FbmNyeXB0aW9uVXNlclNldHRpbmdzVGFiIGJ1dHRvbixcbiAgICAgICAgLm14X0VuY3J5cHRpb25DYXJkIGJ1dHRvbixcbiAgICAgICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3MgYnV0dG9uLFxuICAgICAgICAubXhfU2hhcmVEaWFsb2cgYnV0dG9uLFxuICAgICAgICAubXhfVW5waW5BbGxEaWFsb2cgYnV0dG9uLFxuICAgICAgICAubXhfVGhlbWVDaG9pY2VQYW5lbF9DdXN0b21UaGVtZSBidXR0b24sXG4gICAgICAgIC5teF9EaWFsb2dfbm9uRGlhbG9nQnV0dG9uLFxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbixcbiAgICAgICAgLm14X0lkZW50aXR5U2VydmVyUGlja2VyIGJ1dHRvbixcbiAgICAgICAgLm14X0FjY2Vzc1NlY3JldFN0b3JhZ2VEaWFsb2cgYnV0dG9uLFxuICAgICAgICAubXhfSW52aXRlRGlhbG9nX3NlY3Rpb24gYnV0dG9uLFxuICAgICAgICAubXhfSW52aXRlRGlhbG9nX2VkaXRvciBidXR0b24sXG4gICAgICAgIC5teF9Vbmtub3duSWRlbnRpdHlVc2Vyc1dhcm5pbmdEaWFsb2cgYnV0dG9uLFxuICAgICAgICAubXhfVGhyZWFkQWN0aW9uQmFyIGJ1dHRvbixcbiAgICAgICAgLm14X0hpc3RvcnlBY3Rpb25CYXIgYnV0dG9uLFxuICAgICAgICBbZGF0YS1raW5kXSxcbiAgICAgICAgW2NsYXNzfD1cIm1hcGxpYnJlZ2xcIl1cbiAgICApLFxuLm14X0RpYWxvZ19idXR0b25zIGJ1dHRvbjpub3QoLm14X0RpYWxvZ19ub25EaWFsb2dCdXR0b24sIC5teF9BY2Nlc3NpYmxlQnV0dG9uLCBbZGF0YS1raW5kXSksXG4ubXhfRGlhbG9nIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG4ubXhfRGlhbG9nX2J1dHRvbnMgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgQG1peGluIG14X0RpYWxvZ0J1dHRvbjtcbiAgICBtYXJnaW4tbGVmdDogMHB4O1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tYnV0dG9ucy1kaWFsb2ctZ2FwLWNvbHVtbik7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuXG4gICAgLyogZmxpcCBjb2xvdXJzIGZvciB0aGUgc2Vjb25kYXJ5IG9uZXMgKi9cbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xufVxuXG4ubXhfRGlhbG9nXG4gICAgYnV0dG9uOm5vdChcbiAgICAgICAgLm14X0RpYWxvZ19ub25EaWFsb2dCdXR0b24sXG4gICAgICAgIFtjbGFzc3w9XCJtYXBsaWJyZWdsXCJdLFxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbixcbiAgICAgICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3MgYnV0dG9uLFxuICAgICAgICAubXhfVGhlbWVDaG9pY2VQYW5lbF9DdXN0b21UaGVtZSBidXR0b24sXG4gICAgICAgIC5teF9VbnBpbkFsbERpYWxvZyBidXR0b24sXG4gICAgICAgIC5teF9TaGFyZURpYWxvZyBidXR0b24sXG4gICAgICAgIC5teF9FbmNyeXB0aW9uVXNlclNldHRpbmdzVGFiIGJ1dHRvbixcbiAgICAgICAgLm14X1Vua25vd25JZGVudGl0eVVzZXJzV2FybmluZ0RpYWxvZyBidXR0b24sXG4gICAgICAgIFtkYXRhLWtpbmRdXG4gICAgKTpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDBweDtcbn1cblxuLm14X0RpYWxvZ1xuICAgIGJ1dHRvbjpub3QoXG4gICAgICAgIC5teF9EaWFsb2dfbm9uRGlhbG9nQnV0dG9uLFxuICAgICAgICBbY2xhc3N8PVwibWFwbGlicmVnbFwiXSxcbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24sXG4gICAgICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzIGJ1dHRvbixcbiAgICAgICAgLm14X1RoZW1lQ2hvaWNlUGFuZWxfQ3VzdG9tVGhlbWUgYnV0dG9uLFxuICAgICAgICAubXhfVW5waW5BbGxEaWFsb2cgYnV0dG9uLFxuICAgICAgICAubXhfU2hhcmVEaWFsb2cgYnV0dG9uLFxuICAgICAgICAubXhfRW5jcnlwdGlvblVzZXJTZXR0aW5nc1RhYiBidXR0b24sXG4gICAgICAgIC5teF9JbnZpdGVEaWFsb2dfc2VjdGlvbiBidXR0b24sXG4gICAgICAgIC5teF9JbnZpdGVEaWFsb2dfZWRpdG9yIGJ1dHRvbixcbiAgICAgICAgLm14X1Vua25vd25JZGVudGl0eVVzZXJzV2FybmluZ0RpYWxvZyBidXR0b24sXG4gICAgICAgIFtkYXRhLWtpbmRdXG4gICAgKTpmb2N1cyxcbi5teF9EaWFsb2cgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpmb2N1cyxcbi5teF9EaWFsb2dfYnV0dG9ucyBidXR0b246bm90KC5teF9EaWFsb2dfbm9uRGlhbG9nQnV0dG9uLCAubXhfQWNjZXNzaWJsZUJ1dHRvbiwgW2RhdGEta2luZF0pOmZvY3VzLFxuLm14X0RpYWxvZ19idXR0b25zIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06Zm9jdXMge1xuICAgIGZpbHRlcjogYnJpZ2h0bmVzcygkZm9jdXMtYnJpZ2h0bmVzcyk7XG59XG5cbi5teF9EaWFsb2cgYnV0dG9uLm14X0RpYWxvZ19wcmltYXJ5Om5vdCgubXhfRGlhbG9nX25vbkRpYWxvZ0J1dHRvbiwgW2NsYXNzfD1cIm1hcGxpYnJlZ2xcIl0sIFtkYXRhLWtpbmRdKSxcbi5teF9EaWFsb2cgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXS5teF9EaWFsb2dfcHJpbWFyeSxcbi5teF9EaWFsb2dfYnV0dG9uc1xuICAgIGJ1dHRvbjpub3QoXG4gICAgICAgIC5teF9EaWFsb2dfbm9uRGlhbG9nQnV0dG9uLFxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbixcbiAgICAgICAgLmNhbmNlbCxcbiAgICAgICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3MgYnV0dG9uLFxuICAgICAgICAubXhfVGhlbWVDaG9pY2VQYW5lbF9DdXN0b21UaGVtZSBidXR0b24sXG4gICAgICAgIC5teF9VbnBpbkFsbERpYWxvZyBidXR0b24sXG4gICAgICAgIC5teF9TaGFyZURpYWxvZyBidXR0b24sXG4gICAgICAgIC5teF9FbmNyeXB0aW9uVXNlclNldHRpbmdzVGFiIGJ1dHRvbixcbiAgICAgICAgLm14X1Vua25vd25JZGVudGl0eVVzZXJzV2FybmluZ0RpYWxvZyBidXR0b24sXG4gICAgICAgIFtkYXRhLWtpbmRdXG4gICAgKSxcbi5teF9EaWFsb2dfYnV0dG9ucyBpbnB1dFt0eXBlPVwic3VibWl0XCJdLm14X0RpYWxvZ19wcmltYXJ5IHtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtb24tc29saWQtcHJpbWFyeSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuICAgIG1pbi13aWR0aDogMTU2cHg7XG59XG5cbi5teF9EaWFsb2cgYnV0dG9uLmRhbmdlcjpub3QoLm14X0RpYWxvZ19ub25EaWFsb2dCdXR0b24sIFtjbGFzc3w9XCJtYXBsaWJyZWdsXCJdKSxcbi5teF9EaWFsb2cgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXS5kYW5nZXIsXG4ubXhfRGlhbG9nX2J1dHRvbnNcbiAgICBidXR0b24uZGFuZ2VyOm5vdChcbiAgICAgICAgLm14X0RpYWxvZ19ub25EaWFsb2dCdXR0b24sXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uLFxuICAgICAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5ncyBidXR0b24sXG4gICAgICAgIC5teF9UaGVtZUNob2ljZVBhbmVsX0N1c3RvbVRoZW1lIGJ1dHRvbixcbiAgICAgICAgLm14X1VucGluQWxsRGlhbG9nIGJ1dHRvbixcbiAgICAgICAgLm14X1NoYXJlRGlhbG9nIGJ1dHRvbixcbiAgICAgICAgLm14X0VuY3J5cHRpb25Vc2VyU2V0dGluZ3NUYWIgYnV0dG9uLFxuICAgICAgICAubXhfVW5rbm93bklkZW50aXR5VXNlcnNXYXJuaW5nRGlhbG9nIGJ1dHRvblxuICAgICksXG4ubXhfRGlhbG9nX2J1dHRvbnMgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXS5kYW5nZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICBib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1jcGQtY29sb3ItYmctY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LW9uLXNvbGlkLXByaW1hcnkpO1xufVxuXG4ubXhfRGlhbG9nIGJ1dHRvbi53YXJuaW5nOm5vdCgubXhfRGlhbG9nX25vbkRpYWxvZ0J1dHRvbiwgW2NsYXNzfD1cIm1hcGxpYnJlZ2xcIl0pLFxuLm14X0RpYWxvZyBpbnB1dFt0eXBlPVwic3VibWl0XCJdLndhcm5pbmcge1xuICAgIGJvcmRlcjogc29saWQgMXB4IHZhcigtLWNwZC1jb2xvci1ib3JkZXItY3JpdGljYWwtc3VidGxlKTtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtY3JpdGljYWwtcHJpbWFyeSk7XG59XG5cbi5teF9EaWFsb2dcbiAgICBidXR0b246bm90KFxuICAgICAgICAubXhfRGlhbG9nX25vbkRpYWxvZ0J1dHRvbixcbiAgICAgICAgW2NsYXNzfD1cIm1hcGxpYnJlZ2xcIl0sXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uLFxuICAgICAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5ncyBidXR0b24sXG4gICAgICAgIC5teF9UaGVtZUNob2ljZVBhbmVsX0N1c3RvbVRoZW1lIGJ1dHRvbixcbiAgICAgICAgLm14X1VucGluQWxsRGlhbG9nIGJ1dHRvbixcbiAgICAgICAgLm14X1NoYXJlRGlhbG9nIGJ1dHRvbixcbiAgICAgICAgLm14X0VuY3J5cHRpb25Vc2VyU2V0dGluZ3NUYWIgYnV0dG9uLFxuICAgICAgICAubXhfVW5rbm93bklkZW50aXR5VXNlcnNXYXJuaW5nRGlhbG9nIGJ1dHRvbixcbiAgICAgICAgW2RhdGEta2luZF1cbiAgICApOmRpc2FibGVkLFxuLm14X0RpYWxvZyBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmRpc2FibGVkLFxuLm14X0RpYWxvZ19idXR0b25zIGJ1dHRvbjpub3QoLm14X0RpYWxvZ19ub25EaWFsb2dCdXR0b24sIC5teF9BY2Nlc3NpYmxlQnV0dG9uKTpkaXNhYmxlZCxcbi5teF9EaWFsb2dfYnV0dG9ucyBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZmctY29sb3I7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggJGxpZ2h0LWZnLWNvbG9yO1xuICAgIG9wYWNpdHk6IDAuNztcbn1cblxuLm14X0RpYWxvZ19idXR0b25zIGJ1dHRvbi5jYW5jZWwge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXNlY29uZGFyeS1yZXN0KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtc2Vjb25kYXJ5KTtcbiAgICBtaW4td2lkdGg6IDE1NnB4O1xufVxuXG4vKiBTcGlubmVyIERpYWxvZyBvdmVyaWRlICovXG4ubXhfRGlhbG9nX3dyYXBwZXIubXhfRGlhbG9nX3NwaW5uZXIge1xuICAgIC8qIFRoaXMgaXMgbm90IGEgcmVhbCBkaWFsb2csIHNvIHdlIHNob3VsZG4ndCBzaG93IGEgZ2xhc3MgYm9yZGVyICovXG4gICAgLm14X0RpYWxvZ19ib3JkZXIge1xuICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nIHtcbiAgICAgICAgaW5saW5lLXNpemU6IGF1dG87XG4gICAgICAgIGJsb2NrLXNpemU6IGF1dG87XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuXG4gICAgICAgIC8qIERvbid0IHNob3cgc2Nyb2xsLWJhcnMgb24gc3Bpbm5lciBkaWFsb2dzICovXG4gICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIH1cbn1cblxuLyogVE9ETzogUmV2aWV3IG14X0dlbmVyYWxCdXR0b24gdXNhZ2UgdG8gc2VlIGlmIGl0IGNhbiB1c2UgYSBkaWZmZXJlbnQgY2xhc3MgKi9cbi8qIFRoZXNlIGNsYXNzZXMgd2VyZSBicm91Z2h0IGluIGZyb20gdGhlIG9sZCBVc2VyU2V0dGluZ3MgYW5kIGFyZSBpbmNsdWRlZCBoZXJlIHRvIGF2b2lkICovXG4vKiBicmVha2luZyB0aGUgYXBwLiAqL1xuLyogUmVmOiBodHRwczovL2dpdGh1Yi5jb20vdmVjdG9yLWltL2VsZW1lbnQtd2ViL2lzc3Vlcy84NDIwICovXG4ubXhfR2VuZXJhbEJ1dHRvbiB7XG4gICAgQG1peGluIG14X0RpYWxvZ0J1dHRvbjtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgbWFyZ2luOiBhdXRvO1xufVxuXG4ubXhfVGV4dElucHV0RGlhbG9nX2xhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xufVxuXG4ubXhfVGV4dElucHV0RGlhbG9nX2lucHV0IHtcbiAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRpbnB1dC1ib3JkZXItY29sb3I7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xufVxuXG4ubXhfYnV0dG9uX3JvdyB7XG4gICAgbWFyZ2luLXRvcDogNjlweDtcbn1cblxuLyogdXNlcm5hbWUgY29sb3JzICovXG4vKiB1c2VkIGJ5IFNlbmRlclByb2ZpbGUgJiBSb29tUHJldmlld0JhciAqL1xuLm14X1VzZXJuYW1lX2NvbG9yMSB7XG4gICAgY29sb3I6ICR1c2VybmFtZS12YXJpYW50MS1jb2xvcjtcbn1cblxuLm14X1VzZXJuYW1lX2NvbG9yMiB7XG4gICAgY29sb3I6ICR1c2VybmFtZS12YXJpYW50Mi1jb2xvcjtcbn1cblxuLm14X1VzZXJuYW1lX2NvbG9yMyB7XG4gICAgY29sb3I6ICR1c2VybmFtZS12YXJpYW50My1jb2xvcjtcbn1cblxuLm14X1VzZXJuYW1lX2NvbG9yNCB7XG4gICAgY29sb3I6ICR1c2VybmFtZS12YXJpYW50NC1jb2xvcjtcbn1cblxuLm14X1VzZXJuYW1lX2NvbG9yNSB7XG4gICAgY29sb3I6ICR1c2VybmFtZS12YXJpYW50NS1jb2xvcjtcbn1cblxuLm14X1VzZXJuYW1lX2NvbG9yNiB7XG4gICAgY29sb3I6ICR1c2VybmFtZS12YXJpYW50Ni1jb2xvcjtcbn1cblxuLm14X0FwcFdhcm5pbmcsXG4ubXhfQXBwUGVybWlzc2lvbiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuQGRlZmluZS1taXhpbiBQcm9ncmVzc0JhckNvbG91ciAkY29sb3VyIHtcbiAgICBjb2xvcjogJGNvbG91cjtcbiAgICAmOjotbW96LXByb2dyZXNzLWJhciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvdXI7XG4gICAgfVxuICAgICY6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3VyO1xuICAgIH1cbn1cblxuQGRlZmluZS1taXhpbiBQcm9ncmVzc0JhckJnQ29sb3VyICRjb2xvdXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvdXI7XG4gICAgJjo6LXdlYmtpdC1wcm9ncmVzcy1iYXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3VyO1xuICAgIH1cbn1cblxuQGRlZmluZS1taXhpbiBQcm9ncmVzc0JhckJvcmRlclJhZGl1cyAkcmFkaXVzIHtcbiAgICBib3JkZXItcmFkaXVzOiAkcmFkaXVzO1xuICAgICY6Oi1tb3otcHJvZ3Jlc3MtYmFyIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHJhZGl1cztcbiAgICB9XG4gICAgJjo6LXdlYmtpdC1wcm9ncmVzcy1iYXIsXG4gICAgJjo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRyYWRpdXM7XG4gICAgfVxufVxuXG5AZGVmaW5lLW1peGluIHVucmVhbC1mb2N1cyB7XG4gICAgb3V0bGluZS13aWR0aDogMnB4O1xuICAgIG91dGxpbmUtc3R5bGU6IHNvbGlkO1xuICAgIG91dGxpbmUtY29sb3I6IEhpZ2hsaWdodDtcblxuICAgIC8qIFdlYktpdCBnZXRzIGl0cyBuYXRpdmUgZm9jdXMgc3R5bGVzLiAqL1xuICAgIEBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAwKSB7XG4gICAgICAgIG91dGxpbmUtY29sb3I6IC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtcbiAgICAgICAgb3V0bGluZS1zdHlsZTogYXV0bztcbiAgICB9XG59XG5cbkBkZWZpbmUtbWl4aW4gTGVnYWN5Q2FsbEJ1dHRvbiB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBoZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBjb2xvcjogJGJ1dHRvbi1mZy1jb2xvcjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxufVxuXG5AZGVmaW5lLW1peGluIFRocmVhZFJlcGxpZXNBbW91bnQge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtM3gpIDAgdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuQGRlZmluZS1taXhpbiBUaHJlYWRTdW1tYXJ5SWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMThweDtcbiAgICB3aWR0aDogMThweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBjb2xvcjogJGljb24tYnV0dG9uLWNvbG9yO1xufVxuXG5AZGVmaW5lLW1peGluIGNvbXBvc2VyQnV0dG9uSGlnaExpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXByaW1hcnkpO1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1wcmltYXJ5KSAhaW1wb3J0YW50O1xufVxuXG5AZGVmaW5lLW1peGluIGNvbXBvc2VyQnV0dG9uICRib3JkZXItcmFkaXVzLCAkaG92ZXItY29sb3IsICRob3Zlci1iZyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1cztcblxuICAgIHN2ZyB7XG4gICAgICAgIGNvbG9yOiAkaWNvbi1idXR0b24tY29sb3I7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRob3Zlci1iZztcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgY29sb3I6ICRob3Zlci1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X2xpbmVDbGFtcCB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IHZhcigtLW14LWxpbmUtY2xhbXAsIDEpO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIExheW91dCBjb21wYXRpYmlsaXR5IGhvb2sgZm9yIHRpbWVzdGFtcCBwbGFjZW1lbnQgaW4gZXhpc3RpbmcgYXBwL3dlYiB0aW1lbGluZSBzdXJmYWNlcy4gKi9cbi5teF9NZXNzYWdlVGltZXN0YW1wIHtcbiAgICBkaXNwbGF5OiBibG9jazsgLyogZW5hYmxlIHRoZSB3aWR0aCBzZXR0aW5nIGJlbG93ICovXG4gICAgd2lkdGg6IHZhcigtLU1lc3NhZ2VUaW1lc3RhbXAtd2lkdGgpO1xufVxuIixudWxsLCIvKiBBdXRvLWdlbmVyYXRlZCBieSBzY3JpcHRzL2V4dHJhY3QtYnJhbmQtY29sb3JzLnB5IGZyb20gL3Jvb3QvbWV0bWV0L2h5ZHJvZ2VuLWh0bWwvbG9nby5wbmcg4oCUIGRvIG5vdCBlZGl0IGJ5IGhhbmQuICovXG46cm9vdCB7XG4gICAgLS1tZXRtZXQtYnJhbmQtcHJpbWFyeTogIzAyOGU5MTtcbiAgICAtLW1ldG1ldC1icmFuZC1zZWNvbmRhcnk6ICMzYWM2Y2I7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQmVhY29uTGlzdEl0ZW0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0zeCkgMDtcblxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkc3lzdGVtO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfQmVhY29uTGlzdEl0ZW1fYXZhdGFySWNvbiB7XG4gICAgZmxleDogMCAwO1xuICAgIGhlaWdodDogMzJweDtcbiAgICB3aWR0aDogMzJweDtcbn1cblxuLm14X0JlYWNvbkxpc3RJdGVtX2F2YXRhciB7XG4gICAgZmxleDogMCAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgYm9yZGVyOiAycHggc29saWQgJGxvY2F0aW9uLWxpdmUtY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4ubXhfQmVhY29uTGlzdEl0ZW1faW5mbyB7XG4gICAgZmxleDogMSAxIDA7XG4gICAgd2lkdGg6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG4ubXhfQmVhY29uTGlzdEl0ZW1fc3RhdHVzIHtcbiAgICAvKiBvdmVycmlkZSBiZWFjb24gc3RhdHVzIHBhZGRpbmcgKi9cbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgIC5teF9CZWFjb25TdGF0dXNfbGFiZWwge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG59XG5cbi5teF9CZWFjb25MaXN0SXRlbV9sYXN0VXBkYXRlZCB7XG4gICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTBweDtcbn1cblxuLm14X0JlYWNvbkxpc3RJdGVtX2ludGVyYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0JlYWNvblN0YXR1cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgY29sb3I6IHZhcigtLWNvbG9yKTtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG59XG5cbi5teF9CZWFjb25TdGF0dXNfTG9hZGluZyxcbi5teF9CZWFjb25TdGF0dXNfU3RvcHBlZCB7XG4gICAgLS1jb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9CZWFjb25TdGF0dXNfQWN0aXZlLFxuLm14X0JlYWNvblN0YXR1c19FcnJvciB7XG4gICAgLS1jb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuLm14X0JlYWNvblN0YXR1c19pY29uIHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgd2lkdGg6IDMycHg7XG5cbiAgICBmbGV4OiAwIDAgMzJweDtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9CZWFjb25TdGF0dXNfZGVzY3JpcHRpb24ge1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMTRweDtcblxuICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAubXhfQmVhY29uU3RhdHVzX2Rlc2NyaXB0aW9uX3N0YXR1cyB7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbn1cblxuLm14X0JlYWNvblN0YXR1c19leHBpcnlUaW1lIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xufVxuXG4ubXhfQmVhY29uU3RhdHVzX2xhYmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9CZWFjb25TdGF0dXNUb29sdGlwIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA0MnB4O1xuICAgIG1heC13aWR0aDogMTUwcHg7XG4gICAgaGVpZ2h0OiAzOHB4O1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfQmVhY29uU3RhdHVzVG9vbHRpcF9pbm5lciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgYmFja2dyb3VuZDogJG1lbnUtYmctY29sb3I7XG4gICAgYm94LXNoYWRvdzogNHB4IDRweCAxMnB4IDAgJG1lbnUtYm94LXNoYWRvdy1jb2xvcjtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9CZWFjb25WaWV3RGlhbG9nX3dyYXBwZXIgLm14X0RpYWxvZyB7XG4gICAgcGFkZGluZzogMHB4O1xuXG4gICAgLyogVW5zZXQgY29udGFpbiBhbmQgcG9zaXRpb24gdG8gYWxsb3cgdGhlIGNsb3NlIGJ1dHRvblxuICAgIHRvIGFwcGVhciBvdXRzaWRlIHRoZSBkaWFsb2cgKi9cbiAgICBjb250YWluOiB1bnNldDtcbiAgICBwb3NpdGlvbjogdW5zZXQ7XG59XG5cbi5teF9CZWFjb25WaWV3RGlhbG9nIHtcbiAgICAvKiBzdWJ0cmFjdCAwLjVweCB0byBwcmV2ZW50IHNpbmdsZS1waXhlbCBtYXJnaW4gZHVlIHRvIHJvdW5kaW5nICovXG4gICAgd2lkdGg6IGNhbGMoODB2dyAtIDAuNXB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoODB2aCAtIDAuNXB4KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLyogc2lkZWJhciBpcyBhYnNvbHV0ZWx5IHBvc2l0aW9uZWQgaW5zaWRlICovXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLm14X0RpYWxvZ19oZWFkZXIge1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICBwb3NpdGlvbjogdW5zZXQ7XG5cbiAgICAgICAgLm14X0RpYWxvZ190aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0RpYWxvZ19jYW5jZWxCdXR0b24ge1xuICAgICAgICAgICAgei1pbmRleDogNDAxMDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHJpZ2h0OiA1dnc7XG4gICAgICAgICAgICB0b3A6IDV2aDtcbiAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGRpYWxvZy1jbG9zZS1leHRlcm5hbC1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0JlYWNvblZpZXdEaWFsb2dfbWFwIHtcbiAgICB3aWR0aDogODB2dztcbiAgICBoZWlnaHQ6IDgwdmg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4ubXhfQmVhY29uVmlld0RpYWxvZ19tYXBGYWxsYmFja01lc3NhZ2Uge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cblxuLm14X0JlYWNvblZpZXdEaWFsb2dfdmlld0xpc3RCdXR0b24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgbGVmdDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EaWFsb2dPd25CZWFjb25TdGF0dXMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgd2lkdGg6IDMwMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAtMTUwcHg7XG4gICAgbGVmdDogNTAlO1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzdHJldGNoO1xuXG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaGFkb3c6IDRweCA0cHggMTJweCAwICRtZW51LWJveC1zaGFkb3ctY29sb3I7XG5cbiAgICBwYWRkaW5nOiAwIHZhcigtLWNwZC1zcGFjZS0zeCk7XG59XG5cbi5teF9EaWFsb2dPd25CZWFjb25TdGF0dXNfYXZhdGFySWNvbiB7XG4gICAgZmxleDogMCAwO1xuICAgIGhlaWdodDogMzJweDtcbiAgICB3aWR0aDogMzJweDtcbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0yeCkgMCB2YXIoLS1jcGQtc3BhY2UtMngpIDA7XG59XG5cbi5teF9EaWFsb2dPd25CZWFjb25TdGF0dXNfYXZhdGFyIHtcbiAgICBmbGV4OiAwIDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIGJvcmRlcjogMnB4IHNvbGlkICRsb2NhdGlvbi1saXZlLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0yeCkgMCB2YXIoLS1jcGQtc3BhY2UtMngpIDA7XG59XG5cbi5teF9EaWFsb2dPd25CZWFjb25TdGF0dXNfc3RhdHVzIHtcbiAgICBmbGV4OiAxIDE7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EaWFsb2dTaWRlYmFyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAyNjVweDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJveC1zaGFkb3c6IDBweCA0cHggNHB4ICRtZW51LWJveC1zaGFkb3ctY29sb3I7XG5cbiAgICAubXhfRGlhbG9nU2lkZWJhcl9oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICAgZmxleDogMCAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuXG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgICAgIC5teF9EaWFsb2dTaWRlYmFyX2Nsb3NlQnV0dG9uSWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRGlhbG9nU2lkZWJhcl9saXN0IHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmbGV4OiAxIDEgMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIH1cbn1cblxuLm14X0RpYWxvZ1NpZGViYXJfbm9SZXN1bHRzIHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGVmdFBhbmVsTGl2ZVNoYXJlV2FybmluZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6ICRmb250LTEwcHg7XG5cbiAgICAvKiBwYW5lbCBiYWNrZHJvcHMgb3ZlcmxheSB0aGUgd2hvbGUgc2lkZXBhbmVsICovXG4gICAgLyogZ28gYWJvdmUgdG8gZ2V0IGhvdmVyIGZvciB0aXRsZSAqL1xuICAgIHotaW5kZXg6IDE7XG59XG5cbi5teF9MZWZ0UGFuZWxMaXZlU2hhcmVXYXJuaW5nX19lcnJvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFsZXJ0O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xpdmVUaW1lUmVtYWluaW5nIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Pd25CZWFjb25TdGF0dXNfYnV0dG9uIHtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X0V2ZW50VGlsZVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXSAubXhfT3duQmVhY29uU3RhdHVzX2J1dHRvbiB7XG4gICAgLyogYWxpZ24gdG8gdG9wIHRvIG1ha2Ugcm9vbSBmb3IgdGltZXN0YW1wICovXG4gICAgLyogaW4gYnViYmxlIHZpZXcgKi9cbiAgICBhbGlnbi1zZWxmOiBzdGFydDtcbn1cblxuLm14X093bkJlYWNvblN0YXR1c19kZXN0cnVjdGl2ZUJ1dHRvbiB7XG4gICAgLyogb3ZlcnJpZGUgYnV0dG9uIGxpbmtfaW5saW5lIHN0eWxlcyAqL1xuICAgIGNvbG9yOiAkYWxlcnQgIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKSAhaW1wb3J0YW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NoYXJlTGF0ZXN0TG9jYXRpb25faWNvbiB7XG4gICAgaGVpZ2h0OiAxM3B4O1xuICAgIHdpZHRoOiAxM3B4O1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG59XG5cbi8qIGRvdWJsZSBjbGFzcyB0byBiZSBtb3JlIHNwZWNpZmljIHRoYW4gdGhlIGdlbmVyYWwgbXhfQ29weWFibGVUZXh0IENTUyBydWxlICovXG4ubXhfQ29weWFibGVUZXh0Lm14X1NoYXJlTGF0ZXN0TG9jYXRpb25fY29weSB7XG4gICAgLyogb3ZlcnJpZGUgY29weWFibGUgdGV4dCBzdHlsZSB0byBtYWtlIGNvbXBhY3QgKi9cbiAgICAubXhfQ29weWFibGVUZXh0X2NvcHlCdXR0b24ge1xuICAgICAgICBoZWlnaHQ6IDEzcHg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpICFpbXBvcnRhbnQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAtMXB4O1xuICAgICAgICB3aWR0aDogMTNweDtcblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgaGVpZ2h0OiAxM3B4O1xuICAgICAgICAgICAgd2lkdGg6IDEzcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3R5bGVkTGl2ZUJlYWNvbkljb24ge1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGxvY2F0aW9uLWxpdmUtY29sb3I7XG4gICAgYm9yZGVyLWNvbG9yOiAkbG9jYXRpb24tbGl2ZS1jb2xvcjtcbiAgICBwYWRkaW5nOiAycHg7XG4gICAgLyogY29sb3JzIGljb24gKi9cbiAgICBjb2xvcjogd2hpdGU7XG59XG5cbi5teF9TdHlsZWRMaXZlQmVhY29uSWNvbi5teF9TdHlsZWRMaXZlQmVhY29uSWNvbl9lcnJvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFsZXJ0O1xuICAgIGJvcmRlci1jb2xvcjogJGFsZXJ0O1xufVxuXG4ubXhfU3R5bGVkTGl2ZUJlYWNvbkljb24ubXhfU3R5bGVkTGl2ZUJlYWNvbkljb25faWRsZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHF1YXRlcm5hcnktY29udGVudDtcbiAgICBib3JkZXItY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfS2ViYWJDb250ZXh0TWVudV9pY29uIHtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgY29sb3I6ICRpY29uLWJ1dHRvbi1jb2xvcjtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Qb2xsRGV0YWlsSGVhZGVyIHtcbiAgICAvKiBvdmVycmlkZSBhY2Nlc3NpYmxlYnV0dG9uIHN0eWxlICovXG4gICAgZm9udC1zaXplOiAkZm9udC0xNXB4ICFpbXBvcnRhbnQ7XG59XG5cbi5teF9Qb2xsRGV0YWlsSGVhZGVyX2ljb24ge1xuICAgIGhlaWdodDogMTZweDtcbiAgICB3aWR0aDogMTZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Qb2xsTGlzdEl0ZW0ge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfUG9sbExpc3RJdGVtX2NvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byBhdXRvIGF1dG87XG4gICAgZ3JpZC10ZW1wbGF0ZS1yb3dzOiBhdXRvO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xufVxuXG4ubXhfUG9sbExpc3RJdGVtX2ljb24ge1xuICAgIGhlaWdodDogMTRweDtcbiAgICB3aWR0aDogMTRweDtcbiAgICBjb2xvcjogJHF1YXRlcm5hcnktY29udGVudDtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9Qb2xsTGlzdEl0ZW1fcXVlc3Rpb24ge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Qb2xsTGlzdEl0ZW1FbmRlZCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5teF9Qb2xsTGlzdEl0ZW1FbmRlZF9jb250ZW50IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfUG9sbExpc3RJdGVtRW5kZWRfdGl0bGUge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgMWZyIG1pbi1jb250ZW50O1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcbn1cblxuLm14X1BvbGxMaXN0SXRlbUVuZGVkX2ljb24ge1xuICAgIGhlaWdodDogMTRweDtcbiAgICB3aWR0aDogMTRweDtcbiAgICBjb2xvcjogJHF1YXRlcm5hcnktY29udGVudDtcbiAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9Qb2xsTGlzdEl0ZW1FbmRlZF9kYXRlIHtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbn1cblxuLm14X1BvbGxMaXN0SXRlbUVuZGVkX3F1ZXN0aW9uIHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi5teF9Qb2xsTGlzdEl0ZW1FbmRlZF9hbnN3ZXJzIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xufVxuXG4ubXhfUG9sbExpc3RJdGVtRW5kZWRfdm90ZUNvdW50IHtcbiAgICAvKiA2cHggdG8gbWF0Y2ggUG9sbE9wdGlvbiBwYWRkaW5nICovXG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMngpIDAgMCA2cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOS0yMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQXBwUGVybWlzc2lvbiB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIHdpZHRoOiAxMDAlOyAvKiBtYWtlIG14X0FwcFBlcm1pc3Npb24gZmlsbCB3aWR0aCBvZiBteF9BcHBUaWxlQm9keSBzbyB0aGF0IHNjcm9sbCBiYXIgYXBwZWFycyBvbiB0aGUgZWRnZSAqL1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICAubXhfQXBwUGVybWlzc2lvbl9ib2xkZXIsXG4gICAgLm14X0FwcFBlcm1pc3Npb25fY29udGVudF9ib2xkZXIge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG4gICAgLm14X0FwcFBlcm1pc3Npb25fY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1ibG9jazogYXV0bzsgLyogcGxhY2UgYXQgdGhlIGNlbnRlciAqL1xuXG4gICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jazogMTJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9UZXh0V2l0aFRvb2x0aXBfdGFyZ2V0LS1oZWxwSWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBoZWlnaHQ6ICRmb250LTE0cHg7IC8qIGFsaWduIHdpdGggY2hhcmFjdGVycyBvbiB0aGUgc2FtZSBsaW5lICovXG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAubXhfSWNvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBTdWd1cnUgSGlyYWhhcmFcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0FwcFdhcm5pbmcge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTZweDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIGg0IHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9GaWx0ZXJEcm9wZG93biB7XG4gICAgLm14X0Ryb3Bkb3duX21lbnUge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICBsZWZ0OiB1bnNldDtcbiAgICAgICAgcmlnaHQ6IGNhbGMoLTEgKiB2YXIoLS1jcGQtc3BhY2UtM3gpKTtcbiAgICAgICAgd2lkdGg6IDIzMnB4O1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDFweCAzcHggcmdiKDIzLCAyNSwgMjgsIDAuMDUpO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzeXN0ZW07XG5cbiAgICAgICAgLm14X0Ryb3Bkb3duX29wdGlvbl9oaWdobGlnaHQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRHJvcGRvd25faW5wdXQge1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0Ryb3Bkb3duX2Fycm93IHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG59XG5cbi5teF9GaWx0ZXJEcm9wZG93bl9vcHRpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgMCB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS01eCk7XG5cbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9GaWx0ZXJEcm9wZG93bl9vcHRpb25TZWxlY3RlZEljb24ge1xuICAgIGhlaWdodDogMTRweDtcbiAgICB3aWR0aDogMTRweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGxlZnQ6IDA7XG59XG5cbi5teF9GaWx0ZXJEcm9wZG93bl9vcHRpb25MYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5teF9GaWx0ZXJEcm9wZG93bl9vcHRpb25EZXNjcmlwdGlvbiB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ZpbHRlclRhYkdyb3VwIHtcbiAgICAvKiBSZXNldCB0aGUgYnJvd3NlciBkZWZhdWx0IDxmaWVsZHNldD4gc3R5bGluZyAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4taW5saW5lOiB1bnNldDtcbiAgICBwYWRkaW5nLWJsb2NrOiB1bnNldDtcbiAgICBwYWRkaW5nLWlubGluZTogdW5zZXQ7XG4gICAgbWluLWlubGluZS1zaXplOiB1bnNldDtcbiAgICBib3JkZXI6IG5vbmU7XG5cbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBsYWJlbCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICYgKyBzcGFuIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpjaGVja2VkICsgc3BhbiB7XG4gICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgLyogdW5kZXJsaW5lICovXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDEuNXB4IDAgMCBjdXJyZW50Q29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGVhcm5Nb3JlX2J1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRW5hYmxlTGl2ZVNoYXJlIHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTh4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubXhfRW5hYmxlTGl2ZVNoYXJlX2hlYWRpbmcge1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xufVxuXG4ubXhfRW5hYmxlTGl2ZVNoYXJlX2ljb24ge1xuICAgIGhlaWdodDogNThweDtcbiAgICB3aWR0aDogNThweDtcbn1cblxuLm14X0VuYWJsZUxpdmVTaGFyZV9kZXNjcmlwdGlvbiB7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTIwcHg7XG59XG5cbi5teF9FbmFibGVMaXZlU2hhcmVfYnV0dG9uIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgIGhlaWdodDogNDhweDtcbiAgICB3aWR0aDogMTAwJTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MaXZlRHVyYXRpb25Ecm9wZG93biB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Mb2NhdGlvblNoYXJlTWVudSB7XG4gICAgd2lkdGg6IDM3NXB4O1xuICAgIGhlaWdodDogNDYwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01hcEVycm9yIHtcbiAgICBwYWRkaW5nOiAxMDBweCB2YXIoLS1jcGQtc3BhY2UtOHgpIDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLS1teC1tYXAtZXJyb3ItaWNvbi1jb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIC0tbXgtbWFwLWVycm9yLWljb24tc2l6ZTogNThweDtcbn1cblxuLm14X01hcEVycm9yLm14X01hcEVycm9yX2lzTWluaW1pc2VkIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHBhbmVscztcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE2cHg7XG5cbiAgICAtLW14LW1hcC1lcnJvci1pY29uLWNvbG9yOiAkYWxlcnQ7XG4gICAgLS1teC1tYXAtZXJyb3ItaWNvbi1zaXplOiAyNnB4O1xuXG4gICAgLm14X01hcEVycm9yX21lc3NhZ2Uge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG1heC13aWR0aDogMjc1cHg7XG4gICAgfVxuXG4gICAgLm14X01hcEVycm9yX2hlYWRpbmcge1xuICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgLyogb3ZlcnJpZGUgaDMgaGVhZGluZyBzaXplICovXG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4ubXhfTWFwRXJyb3JfbWVzc2FnZSB7XG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNHgpIDAgdmFyKC0tY3BkLXNwYWNlLTh4KTtcbn1cblxuLm14X01hcEVycm9yX2hlYWRpbmcge1xuICAgIHBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xufVxuXG4ubXhfTWFwRXJyb3JfaWNvbiB7XG4gICAgaGVpZ2h0OiB2YXIoLS1teC1tYXAtZXJyb3ItaWNvbi1zaXplKTtcbiAgICB3aWR0aDogdmFyKC0tbXgtbWFwLWVycm9yLWljb24tc2l6ZSk7XG4gICAgY29sb3I6IHZhcigtLW14LW1hcC1lcnJvci1pY29uLWNvbG9yKTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NYXBGYWxsYmFjayB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMDtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRzeXN0ZW07XG59XG5cbi5teF9NYXBGYWxsYmFja19iZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIGNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgIHotaW5kZXg6IC0xO1xuXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5teF9NYXBGYWxsYmFja19pY29uIHtcbiAgICB3aWR0aDogNjVweDtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIGNvbG9yOiAkcXVhdGVybmFyeS1jb250ZW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01hcmtlcl9kZWZhdWx0Q29sb3Ige1xuICAgIGNvbG9yOiAkYWNjZW50O1xufVxuXG4ubXhfTWFya2VyX2JvcmRlciB7XG4gICAgd2lkdGg6IDQycHg7XG4gICAgaGVpZ2h0OiA0MnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDBweCAzcHggNXB4IHJnYigwLCAwLCAwLCAwLjIpKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAvKiBjYXJldCBkb3duICovXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci10b3A6IDVweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAtNHB4O1xuICAgIH1cbn1cblxuLm14X01hcmtlcl9pY29uIHtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgaGVpZ2h0OiAyMHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQ1xuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2hhcmVEaWFsb2dCdXR0b25zIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHRvcDogMDtcbn1cblxuYnV0dG9uLm14X1NoYXJlRGlhbG9nQnV0dG9uc19idXR0b24ge1xuICAgIGhlaWdodDogMjRweDtcbiAgICB3aWR0aDogMjRweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICBvcGFjaXR5OiAwLjg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJi5sZWZ0IHtcbiAgICAgICAgbGVmdDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG5cbiAgICAmLnJpZ2h0IHtcbiAgICAgICAgcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxufVxuXG4ubXhfU2hhcmVEaWFsb2dCdXR0b25zX2J1dHRvbi1pY29uIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luOiAycHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2hhcmVUeXBlIHtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIHBhZGRpbmc6IDYwcHggdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuXG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG5cbiAgICAubXhfU2hhcmVUeXBlX3dyYXBwZXJfb3B0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHJvdy1nYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuXG4gICAgICAgIC5teF9TaGFyZVR5cGVfb3B0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfU2hhcmVUeXBlX2JhZGdlIHtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgd2lkdGg6IDYwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDE0cHggc29saWQgJGFjY2VudDtcbiAgICAvKiBjb2xvcnMgaWNvbiAqL1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubXhfU2hhcmVUeXBlX2hlYWRpbmcge1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X1NoYXJlVHlwZV9vcHRpb24taWNvbiB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgIGZsZXg6IDAgMCA0MHB4O1xuICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgLyogTGl2ZSBpcyBzdHlsZWQgYnkgU3R5bGVkTGl2ZUJlYWNvbkljb24gKi9cblxuICAgICYuT3duIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWNjZW50O1xuICAgIH1cblxuICAgICYuUGluIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICBwYWRkaW5nOiA3cHg7XG4gICAgICAgIC8qIGNvbG9ycyBpY29uICovXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfWm9vbUJ1dHRvbnMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHJvdy1nYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAubXhfWm9vbUJ1dHRvbnNfYnV0dG9uIHtcbiAgICAgICAgJFpvb21CdXR0b25zX2J1dHRvbi1zaXplOiAyNHB4O1xuXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGhlaWdodDogJFpvb21CdXR0b25zX2J1dHRvbi1zaXplO1xuICAgICAgICB3aWR0aDogJFpvb21CdXR0b25zX2J1dHRvbi1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDRweCAxMnB4IHJnYigwLCAwLCAwLCAwLjI1KTtcblxuICAgICAgICAubXhfWm9vbUJ1dHRvbnNfaWNvbiB7XG4gICAgICAgICAgICAkWm9vbUJ1dHRvbnNfaWNvbi1zaXplOiAxMnB4O1xuXG4gICAgICAgICAgICBoZWlnaHQ6ICRab29tQnV0dG9uc19pY29uLXNpemU7XG4gICAgICAgICAgICB3aWR0aDogJFpvb21CdXR0b25zX2ljb24tc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01CZWFjb25Cb2R5IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAyMjBweDtcbiAgICBtYXgtd2lkdGg6IDMyNXB4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tTUJvZHktYm9yZGVyLXJhZGl1cyk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14X01CZWFjb25Cb2R5Lm14X01CZWFjb25Cb2R5X3dpdGhvdXRNYXAge1xuICAgIGhlaWdodDogYXV0bztcblxuICAgIC5teF9NQmVhY29uQm9keV9jaGluIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG59XG5cbi5teF9NQmVhY29uQm9keV93aXRob3V0TWFwQ29udGVudCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHBhbmVscztcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG59XG5cbi5teF9NQmVhY29uQm9keV93aXRob3V0TWFwSW5mb0xhc3RVcGRhdGVkIHtcbiAgICAvKiA0OHB4IGxpbmVzIHVwIHdpdGggaWNvbiBpbiBCZWFjb25TdGF0dXMgKi9cbiAgICBtYXJnaW4tdG9wOiBjYWxjKC0xICogdmFyKC0tY3BkLXNwYWNlLTJ4KSk7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0yeCkgNDhweDtcblxuICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICBmb250LXNpemU6ICRmb250LTEwcHg7XG59XG5cbi5teF9NQmVhY29uQm9keV9tYXAge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAwOyAvKiBrZWVwcyB0aGUgZW50aXJlIG1hcCB1bmRlciB0aGUgbWVzc2FnZSBhY3Rpb24gYmFycyAqL1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfTUJlYWNvbkJvZHlfbWFwRmFsbGJhY2ssXG4ubXhfTUJlYWNvbkJvZHlfbWFwRXJyb3Ige1xuICAgIC8qIHB1c2hlcyBzcGlubmVyL2ljb24gdXAgKi9cbiAgICAvKiB0byBhcHBlYXIgbW9yZSBjZW50ZXJlZCB3aXRoIHRoZSBmb290ZXIgKi9cbiAgICBwYWRkaW5nLWJvdHRvbTogNTBweCAhaW1wb3J0YW50O1xufVxuXG4ubXhfTUJlYWNvbkJvZHlfbWFwRXJyb3JJbnRlcmFjdGl2ZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfTUJlYWNvbkJvZHlfbWFwRmFsbGJhY2sge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLm14X01CZWFjb25Cb2R5X2NoaW4ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICBvcGFjaXR5OiAwLjg1O1xufVxuXG4ubXhfRXZlbnRUaWxlW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIC5teF9FdmVudFRpbGVfbGluZSAubXhfTUJlYWNvbkJvZHkge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB3aWR0aDogNDUwcHg7XG59XG5cbi5teF9SZXBseVRpbGUgLm14X01CZWFjb25Cb2R5IHtcbiAgICAvKiBQcmV2ZW50IGNsaWNraW5nIGEgYmVhY29uIHdpdGhpbiBhIHJlcGx5ICovXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWVkaWFQcm9jZXNzaW5nRXJyb3JfSWNvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Qb2xsT3B0aW9uIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiA2cHggMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50LFxuICAgIC5teF9Qb2xsT3B0aW9uX2VuZGVkT3B0aW9uIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDJweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwcHg7XG4gICAgfVxuXG4gICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uX3NwYWNlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4ubXhfUG9sbE9wdGlvbixcbi8qIGxhYmVsIGhhcyBjdXJzb3I6IGRlZmF1bHQgaW4gdXNlci1hZ2VudCBzdHlsZXNoZWV0ICovXG4vKiBvdmVycmlkZSAqL1xuLm14X1BvbGxPcHRpb25fbGl2ZS1vcHRpb24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm14X1BvbGxPcHRpb25fY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG59XG5cbi5teF9Qb2xsT3B0aW9uX29wdGlvblZvdGVDb3VudCB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm14X1BvbGxPcHRpb25fd2lubmVySWNvbiB7XG4gICAgaGVpZ2h0OiAxMnB4O1xuICAgIHdpZHRoOiAxMnB4O1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1hY2NlbnQtdGVydGlhcnkpO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubXhfUG9sbE9wdGlvbl9jaGVja2VkIHtcbiAgICAubXhfUG9sbE9wdGlvbl9wb3B1bGFyaXR5QmFja2dyb3VuZCB7XG4gICAgICAgIC5teF9Qb2xsT3B0aW9uX3BvcHVsYXJpdHlBbW91bnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBvdmVycmlkZSBjaGVja2VkIHJhZGlvIGJ1dHRvbiBzdHlsaW5nIHRvIHNob3cgY2hlY2ttYXJrIGluc3RlYWQgKi9cbiAgICAubXhfU3R5bGVkUmFkaW9CdXR0b25fY2hlY2tlZCB7XG4gICAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgZGl2IHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1wcmltYXJ5KTtcblxuICAgICAgICAgICAgZGl2IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLW9uLXNvbGlkLXByaW1hcnkpO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IC0ycHg7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1BvbGxPcHRpb25fZW5kZWQubXhfUG9sbE9wdGlvbl9jaGVja2VkIHtcbiAgICAubXhfUG9sbE9wdGlvbl9wb3B1bGFyaXR5QmFja2dyb3VuZCB7XG4gICAgICAgIC5teF9Qb2xsT3B0aW9uX3BvcHVsYXJpdHlBbW91bnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tYWNjZW50LXRlcnRpYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIG92ZXJyaWRlIGNoZWNrZWQgcmFkaW8gYnV0dG9uIHN0eWxpbmcgdG8gc2hvdyBjaGVja21hcmsgaW5zdGVhZCAqL1xuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jaGVja2VkIHtcbiAgICAgICAgaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBkaXYge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1hY2NlbnQtdGVydGlhcnkpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tYWNjZW50LXRlcnRpYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogb3B0aW9ucyBub3QgYWN0aW9uYWJsZSBpbiB0aGVzZSBzdGF0ZXMgKi9cbi5teF9Qb2xsT3B0aW9uX2NoZWNrZWQsXG4ubXhfUG9sbE9wdGlvbl9lbmRlZCB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5teF9Qb2xsT3B0aW9uX3BvcHVsYXJpdHlCYWNrZ3JvdW5kIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzeXN0ZW07XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgIC5teF9Qb2xsT3B0aW9uX3BvcHVsYXJpdHlBbW91bnQge1xuICAgICAgICB3aWR0aDogMCU7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxOSBOZXcgVmVjdG9yIEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKlxuICogVGhlc2UgdXNlZCB0byBsaXZlIGluIEdlbmVyYWwgVXNlciBTZXR0aW5ncy4gVGhlc2UgY29tcG9uZW50cyBhcmUgaG9ycmlibHkgZHVwbGljYXRpdmVcbiAqIGJ1dCBzaGFyZSB0aGUgc2FtZSBzdHlsZXMuIEZvciBub3cgSSdtIHB1dHRpbmcgdGhlbSBoZXJlIHNvIEkgY2FuIHJlbmFtZWQgdGhlIGdlbmVyYWxcbiAqIHRhYiBzZW5zaWJseSBhbmQgYmVmb3JlIEkgY2FuIHJlZmFjdG9yIHRoZXNlIGNvbXBvbmVudHMuXG4gKi9cblxuLm14X0FkZFJlbW92ZVRocmVlcGlkc19leGlzdGluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubXhfQWRkUmVtb3ZlVGhyZWVwaWRzX2V4aXN0aW5nX2FkZHJlc3MsXG4ubXhfQWRkUmVtb3ZlVGhyZWVwaWRzX2V4aXN0aW5nX3Byb21wdFRleHQge1xuICAgIGZsZXg6IDE7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xufVxuXG4ubXhfQWRkUmVtb3ZlVGhyZWVwaWRzX2V4aXN0aW5nX2J1dHRvbiB7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLm14X0VtYWlsQWRkcmVzc2VzUGhvbmVOdW1iZXJzX3ZlcmlmeSB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLm14X0VtYWlsQWRkcmVzc2VzUGhvbmVOdW1iZXJzX2V4aXN0aW5nX2J1dHRvbiB7XG4gICAganVzdGlmeS1jb250ZW50OiByaWdodDtcbn1cblxuLm14X0VtYWlsQWRkcmVzc2VzUGhvbmVOdW1iZXJzX3ZlcmlmeV9pbnN0cnVjdGlvbnMge1xuICAgIGZsZXg6IDE7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ3VycmVudERldmljZVNlY3Rpb25fZGV2aWNlRGV0YWlscyB7XG4gICAgLyogYWxpZ24gd2l0aCB0ZXh0IG9mIHNlc3Npb24gdGlsZSAqL1xuICAgIG1hcmdpbi1sZWZ0OiA1NnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RldmljZURldGFpbEhlYWRpbmcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm14X0RldmljZURldGFpbEhlYWRpbmdfcmVuYW1lQ3RhIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLm14X0RldmljZURldGFpbEhlYWRpbmdfcmVuYW1lRm9ybSB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAganVzdGlmeS1jb250ZW50OiBsZWZ0O1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMTAwJTtcbn1cblxuLm14X0RldmljZURldGFpbEhlYWRpbmdfcmVuYW1lRm9ybUJ1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAubXhfU3Bpbm5lciB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgfVxufVxuXG4ubXhfRGV2aWNlRGV0YWlsSGVhZGluZ19yZW5hbWVGb3JtSW5wdXQge1xuICAgIC8qIG92ZXJyaWRlIGZpZWxkIHN0eWxlcyAqL1xuICAgIG1hcmdpbjogMCAwIHZhcigtLWNwZC1zcGFjZS0xeCkgMCAhaW1wb3J0YW50O1xufVxuXG4ubXhfRGV2aWNlRGV0YWlsSGVhZGluZ19yZW5hbWVGb3JtSGVhZGluZyB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4ubXhfRGV2aWNlRGV0YWlsSGVhZGluZ19yZW5hbWVGb3JtRXJyb3Ige1xuICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZXZpY2VEZXRhaWxzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcbn1cblxuLm14X0RldmljZURldGFpbHNfc2VjdGlvbiB7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS01eCk7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcblxuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIGp1c3RpZnktY29udGVudDogbGVmdDtcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDEwMCU7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG59XG5cbi5teF9EZXZpY2VEZXRhaWxzX3NlY3Rpb25IZWFkaW5nIHtcbiAgICBtYXJnaW46IDA7XG5cbiAgICAubXhfRGV2aWNlRGV0YWlsc19zZWN0aW9uU3ViaGVhZGluZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIH1cbn1cblxuLm14X0RldmljZURldGFpbHNfbWV0YWRhdGFUYWJsZSB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBib3JkZXItc3BhY2luZzogMDtcblxuICAgIHRoIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbiAgICB0ZCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cblxuICAgIC5teERldmljZURldGFpbHNfbWV0YWRhdGFMYWJlbCB7XG4gICAgICAgIHdpZHRoOiAxNjBweDtcbiAgICB9XG5cbiAgICAubXhEZXZpY2VEZXRhaWxzX21ldGFkYXRhVmFsdWUge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICB9XG59XG5cbi5teF9EZXZpY2VEZXRhaWxzX3NpZ25PdXRCdXR0b25Db250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG59XG5cbi5teF9EZXZpY2VEZXRhaWxzX3B1c2hOb3RpZmljYXRpb25zIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAubXhfVG9nZ2xlU3dpdGNoIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZXZpY2VFeHBhbmREZXRhaWxzQnV0dG9uIHtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgY29sb3I6ICRpY29uLWJ1dHRvbi1jb2xvcjtcblxuICAgIC0taWNvbi10cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubXhfRGV2aWNlRXhwYW5kRGV0YWlsc0J1dHRvbi5teF9EZXZpY2VFeHBhbmREZXRhaWxzQnV0dG9uX2V4cGFuZGVkIHtcbiAgICAtLWljb24tdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG5cbiAgICBiYWNrZ3JvdW5kOiAkc3lzdGVtO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubXhfRGV2aWNlRXhwYW5kRGV0YWlsc0J1dHRvbl9pY29uIHtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgd2lkdGg6IDI0cHg7XG5cbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcbiAgICB0cmFuc2Zvcm06IHZhcigtLWljb24tdHJhbnNmb3JtKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGV2aWNlU2VjdXJpdHlDYXJkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuLm14X0RldmljZVNlY3VyaXR5Q2FyZF9pY29uIHtcbiAgICBmbGV4OiAwIDAgNDBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgIGhlaWdodDogNDBweDtcbiAgICB3aWR0aDogNDBweDtcblxuICAgIGNvbG9yOiB2YXIoLS1pY29uLWNvbG9yKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yKTtcblxuICAgICYuVmVyaWZpZWQge1xuICAgICAgICAtLWljb24tY29sb3I6ICRlMmUtdmVyaWZpZWQtY29sb3I7XG4gICAgICAgIC0tYmFja2dyb3VuZC1jb2xvcjogJGUyZS12ZXJpZmllZC1jb2xvci1saWdodDtcbiAgICB9XG5cbiAgICAmLlVudmVyaWZpZWQge1xuICAgICAgICAtLWljb24tY29sb3I6ICRlMmUtd2FybmluZy1jb2xvcjtcbiAgICAgICAgLS1iYWNrZ3JvdW5kLWNvbG9yOiAkZTJlLXdhcm5pbmctY29sb3ItbGlnaHQ7XG4gICAgfVxuXG4gICAgJi5JbmFjdGl2ZSB7XG4gICAgICAgIC0taWNvbi1jb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAtLWJhY2tncm91bmQtY29sb3I6ICRwYW5lbHM7XG4gICAgfVxufVxuXG4ubXhfRGV2aWNlU2VjdXJpdHlDYXJkX2NvbnRlbnQge1xuICAgIGZsZXg6IDEgMTtcbn1cbi5teF9EZXZpY2VTZWN1cml0eUNhcmRfaGVhZGluZyB7XG4gICAgbWFyZ2luOiAwIDAgdmFyKC0tY3BkLXNwYWNlLTF4KSAwO1xufVxuLm14X0RldmljZVNlY3VyaXR5Q2FyZF9kZXNjcmlwdGlvbiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbn1cblxuLm14X0RldmljZVNlY3VyaXR5Q2FyZF9hY3Rpb25zIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RldmljZVRpbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfRGV2aWNlVGlsZV9pbnRlcmFjdGl2ZSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfRGV2aWNlVGlsZV9pbmZvIHtcbiAgICBmbGV4OiAxIDEgMDtcbn1cblxuLm14X0RldmljZVRpbGVfbWV0YWRhdGEge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xufVxuXG4ubXhfRGV2aWNlVGlsZV9pbmFjdGl2ZUljb24ge1xuICAgIGhlaWdodDogMTRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm14X0RldmljZVRpbGVfYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZXZpY2VUeXBlSWNvbiB7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAvKiBjcmVhdGVzIHNwYWNlIGZvciB2ZXJpZmljYXRpb24gaWNvbiB0byBvdmVybGFwICovXG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0yeCkgMDtcbn1cblxuLm14X0RldmljZVR5cGVJY29uX2RldmljZUljb25XcmFwcGVyIHtcbiAgICAtLWJhY2tncm91bmQtY29sb3I6ICRwYW5lbHM7XG4gICAgLS1pY29uLWNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIGJvcmRlcjogdmFyKC0tY3BkLXNwYWNlLTJ4KSBzb2xpZCB2YXIoLS1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgY29sb3I6IHZhcigtLWljb24tY29sb3IpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJhY2tncm91bmQtY29sb3IpO1xufVxuXG4ubXhfRGV2aWNlVHlwZUljb25fc2VsZWN0ZWQgLm14X0RldmljZVR5cGVJY29uX2RldmljZUljb25XcmFwcGVyIHtcbiAgICAtLWJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgLS1pY29uLWNvbG9yOiAkYmFja2dyb3VuZDtcbn1cblxuLm14X0RldmljZVR5cGVJY29uX2RldmljZUljb24ge1xuICAgIGhlaWdodDogMjRweDtcbiAgICB3aWR0aDogMjRweDtcbn1cblxuLm14X0RldmljZVR5cGVJY29uX3ZlcmlmaWNhdGlvbkljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcblxuICAgIGJvcmRlcjogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gICAgY29sb3I6IHZhcigtLXYtaWNvbi1jb2xvcik7XG5cbiAgICAmLnZlcmlmaWVkIHtcbiAgICAgICAgLS12LWljb24tY29sb3I6ICRlMmUtdmVyaWZpZWQtY29sb3I7XG4gICAgfVxuXG4gICAgJi51bnZlcmlmaWVkIHtcbiAgICAgICAgLS12LWljb24tY29sb3I6ICRlMmUtd2FybmluZy1jb2xvcjtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRmlsdGVyZWREZXZpY2VMaXN0IHtcbiAgICAubXhfRHJvcGRvd24ge1xuICAgICAgICBmbGV4OiAxIDAgODBweDtcbiAgICB9XG59XG5cbi5teF9GaWx0ZXJlZERldmljZUxpc3RfbGlzdCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG5cbi5teF9GaWx0ZXJlZERldmljZUxpc3RfbGlzdEl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLm14X0ZpbHRlcmVkRGV2aWNlTGlzdF9zZWN1cml0eUNhcmQge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG59XG5cbi5teF9GaWx0ZXJlZERldmljZUxpc3Rfbm9SZXN1bHRzIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbn1cblxuLm14X0ZpbHRlcmVkRGV2aWNlTGlzdF9oZWFkZXJCdXR0b24ge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIC8qIG92ZXJyaWRlIGlubGluZSBidXR0b24gc3R5bGluZyAqL1xuICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X0ZpbHRlcmVkRGV2aWNlTGlzdF9kZXZpY2VEZXRhaWxzIHtcbiAgICAvKiBhbGlnbiB3aXRoIHRleHQgb2Ygc2Vzc2lvbiB0aWxlICovXG4gICAgbWFyZ2luLWxlZnQ6IDg4cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRmlsdGVyZWREZXZpY2VMaXN0SGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDhweDtcbiAgICBwYWRkaW5nOiAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTh4KTtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRwYW5lbHM7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAvKiBIaWdoZXIgc3BlY2lmaWNpdHkgc2VsZWN0b3IgdG8gb3ZlcnJpZGUgdGhlIGZsZXgtc3RhcnQgdmFsdWUgKi9cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbi5teF9BY2Nlc3NpYmxlQnV0dG9uX2hhc0tpbmQge1xuICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgfVxufVxuXG4ubXhfRmlsdGVyZWREZXZpY2VMaXN0SGVhZGVyX2xhYmVsIHtcbiAgICBmbGV4OiAxIDEgMTAwJTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZWN1cml0eVJlY29tbWVuZGF0aW9uc19zcGFjaW5nIHtcbiAgICBoZWlnaHQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQsMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZWxlY3RhYmxlRGV2aWNlVGlsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5teF9TZWxlY3RhYmxlRGV2aWNlVGlsZV9jaGVja2JveCB7XG4gICAgZmxleDogMSAwO1xuXG4gICAgPiBkaXYge1xuICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI1IE5ldyBWZWN0b3IgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfS2V5U3RvcmFnZVBhbmVsX3RvZ2dsZVJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR0aW5nc1N1YnNlY3Rpb24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAmLm14X1NldHRpbmdzU3Vic2VjdGlvbl9uZXdVaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICB9XG5cbiAgICAqW3JvbGU9XCJzZXBhcmF0b3JcIl0ge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGdhcCBiZXR3ZWVuIHN1YnNlY3Rpb25zIGlzIDMycHggYW5kIGluc2lkZSB0aGUgc3Vic2VjdGlvbiBpcyAyNHB4LlxuICAgICAgICAgKiBUaGUgc2VwYXJhdG9yIHNlcGFyYXRlcyB0aGUgc3Vic2VjdGlvbnMsIHNvIGl0IHNob3VsZCBoYXZlIHRoZSBzYW1lIGdhcCBhcyB0aGUgc3Vic2VjdGlvbnMuXG4gICAgICAgICAqIFdlIGFkZCAxMnB4IGFuZCB0aGUgc2VwYXJhdG9yIHNwYWNpbmcgKDhweCkgdG8gdGhlIHRvcCBtYXJnaW4gdG8gbWFrZSB0aGUgc2VwYXJhdG9yIHZpc3VhbGx5IGNlbnRlcmVkIGJldHdlZW4gdGhlIHN1YnNlY3Rpb25zLlxuICAgICAgICAgKiAhaW1wb3J0YW50IGJlY2F1c2UgaXQncyBvdmVycmlkaW5nIGNvbXBvdW5kIG1hcmdpbi5cbiAgICAgICAgICovXG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS01eCkgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5teF9TZXR0aW5nc1N1YnNlY3Rpb25fZGVzY3JpcHRpb24ge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9TZXR0aW5nc1N1YnNlY3Rpb25fdGV4dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xufVxuXG4ubXhfU2V0dGluZ3NTdWJzZWN0aW9uX2NvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIC8qIHNldHRpbmcgbWlud2lkdGggMCBtYWtlcyBjb2x1bW5zIGRlZmluaXRlbHkgc2l6ZWQgZml4aW5nIGhvcml6b250YWwgb3ZlcmZsb3cgKi9cbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnIpO1xuICAgIGp1c3RpZnktaXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcblxuICAgIHN1bW1hcnkge1xuICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICB9XG4gICAgZGV0YWlsc1tvcGVuXSB7XG4gICAgICAgIHN1bW1hcnkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfU2V0dGluZ3NTdWJzZWN0aW9uX2NvbnRlbnRTdHJldGNoIHtcbiAgICAgICAganVzdGlmeS1pdGVtczogc3RyZXRjaDtcbiAgICB9XG5cbiAgICAmLm14X1NldHRpbmdzU3Vic2VjdGlvbl9ub0hlYWRpbmcge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgICAmLm14X1NldHRpbmdzU3Vic2VjdGlvbl9jb250ZW50X25ld1VpIHtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc1N1YnNlY3Rpb25fZHJvcGRvd24ge1xuICAgICAgICBtaW4td2lkdGg6IDM2MHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR0aW5nc1N1YnNlY3Rpb25IZWFkaW5nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9TZXR0aW5nc1N1YnNlY3Rpb25IZWFkaW5nX2hlYWRpbmcge1xuICAgIGZsZXg6IDEgMSAxMDAlO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1F1aWNrVGhlbWVTd2l0Y2hlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLm14X0Ryb3Bkb3duIHtcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIGhlaWdodDogbWluLWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0Ryb3Bkb3duX21lbnUge1xuICAgICAgICAvKiBRdWljayBzZXR0aW5ncyBsaXZlcyBhdCB0aGUgYm90dG9tIG9mIHRoZSB3aW5kb3csIHNvIGEgbWVudSBkcm9wcGluZyBkb3dud2FyZHMgd291bGQgcnVuXG4gICAgICAgICAgIG9mZiB0aGUgYm90dG9tIG9mIHRoZSB2aWV3cG9ydC4gT3BlbiBpdCB1cHdhcmRzLCB3aGVyZSB0aGVyZSBpcyByb29tIGZvciBldmVyeSB0aGVtZS4gKi9cbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICBib3R0b206IDEwMCU7XG4gICAgfVxufVxuXG4ubXhfUXVpY2tUaGVtZVN3aXRjaGVyX2hlYWRpbmcge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DYXB0aW9uIHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAmLm14X0NhcHRpb25fZXJyb3Ige1xuICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qXG4gKiBDb21wb3VuZCBpY29uXG5cbiAqIHtAbGluayBodHRwczovL3d3dy5maWdtYS5jb20vZmlsZS9YNFhUSDlpUzJLR0oyd0ZLRHFreWVkfVxuICovXG5cbi5teF9JY29uIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4ubXhfSWNvbl9hY2NlbnQge1xuICAgIGNvbG9yOiAkYWNjZW50O1xufVxuXG4ubXhfSWNvbl9iZy1hY2NlbnQtbGlnaHQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQtMzAwO1xufVxuXG4ubXhfSWNvbl9hbGVydCB7XG4gICAgY29sb3I6ICRhbGVydDtcbn1cblxuLm14X0ljb25fY2lyY2xlLTQwIHtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGZsZXg6IDAgMCA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgd2lkdGg6IDQwcHg7XG59XG5cbi5teF9JY29uXzgge1xuICAgIGZsZXg6IDAgMCA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgd2lkdGg6IDhweDtcbn1cblxuLm14X0ljb25fMTAge1xuICAgIGZsZXg6IDAgMCAxMHB4O1xuICAgIGhlaWdodDogMTBweDtcbiAgICB3aWR0aDogMTBweDtcbn1cblxuLm14X0ljb25fMTIge1xuICAgIGZsZXg6IDAgMCAxMnB4O1xuICAgIGhlaWdodDogMTJweDtcbiAgICB3aWR0aDogMTJweDtcbn1cblxuLm14X0ljb25fMTYge1xuICAgIGZsZXg6IDAgMCAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICB3aWR0aDogMTZweDtcbn1cblxuLm14X0ljb25fMjQge1xuICAgIGZsZXg6IDAgMCAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICB3aWR0aDogMjRweDtcbn1cblxuLm14X0ljb25fMzIge1xuICAgIGZsZXg6IDAgMCAzMnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICB3aWR0aDogMzJweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TdWNjZXNzRGlhbG9nIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAubXhfSWNvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19oZWFkZXIge1xuICAgICAgICBtYXJnaW46IDAgMCB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIC5teF9EaWFsb2dfdGl0bGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgbWFyZ2luOiAwIDAgdmFyKC0tY3BkLXNwYWNlLTEweCk7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19idXR0b25zIHtcbiAgICAgICAgLm14X0RpYWxvZ19idXR0b25zX3JvdyB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgYnV0dG9uLm14X0RpYWxvZ19wcmltYXJ5IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAzMjhweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOC0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKiBtYWtlIGFueSBzY3JvbGxiYXIgZ3JleSBhbmQgdGhpbiAqL1xuaHRtbCB7XG4gICAgc2Nyb2xsYmFyLWNvbG9yOiAkc2Nyb2xsYmFyLXRodW1iLWNvbG9yIHRyYW5zcGFyZW50O1xufVxuLyogc2Nyb2xsYmFyLXdpZHRoIGlzIG5vdCBpbmhlcml0ZWQgKGJ1dCAtY29sb3IgaXMsIHdoeT8hKSwgKi9cbi8qIHNvIGRlY2xhcmUgaXQgb24gZXZlcnkgZWxlbWVudCAqL1xuKiB7XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogNnB4O1xuICAgIGhlaWdodDogNnB4O1xufVxuXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNjcm9sbGJhci10aHVtYi1jb2xvcjtcbn1cblxuLyogbWFrZSBhdXRvLWhpZGUgc2Nyb2xsYmFycyBub3QgdHJhbnNwYXJlbnQgYWdhaW4gb24gaG92ZXIgKi9cbi5teF9BdXRvSGlkZVNjcm9sbGJhcjpob3ZlciB7XG4gICAgc2Nyb2xsYmFyLWNvbG9yOiAkc2Nyb2xsYmFyLXRodW1iLWNvbG9yIHRyYW5zcGFyZW50O1xuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2Nyb2xsYmFyLXRodW1iLWNvbG9yO1xuICAgIH1cbn1cblxuLyogbWFrZSBzY3JvbGxiYXJzIHRyYW5zcGFyZW50IGZvciBhdXRvaGlkZSBzY3JvbGxiYXJzICovXG4ubXhfQXV0b0hpZGVTY3JvbGxiYXIge1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIG92ZXJmbG93LXk6IG92ZXJsYXk7IC8qIHdoZXJlIHN1cHBvcnRlZCAqL1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIHNjcm9sbGJhci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0X3NlYXJjaF9pY29uIHtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBmaWxsOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9BdXRvY29tcGxldGVJbnB1dF9lZGl0b3Ige1xuICAgIGZsZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4yNXM7XG5cbiAgICA+IGlucHV0IHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiA0MCU7XG4gICAgICAgIHJlc2l6ZTogbm9uZTtcbiAgICAgICAgLyogYCFpbXBvcnRhbnRgIGlzIHJlcXVpcmVkIHRvIGJ5cGFzcyBnbG9iYWwgaW5wdXQgc3R5bGVzLiAqL1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KSA5cHg7XG4gICAgICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudCAhaW1wb3J0YW50O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWwgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0X2VkaXRvci0tZm9jdXNlZCB7XG4gICAgYm9yZGVyLWNvbG9yOiAkbGlua3M7XG59XG5cbi5teF9BdXRvY29tcGxldGVJbnB1dF9lZGl0b3ItLWhhcy1zdWdnZXN0aW9ucyB7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbn1cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0X2VkaXRvcl9zZWxlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9BdXRvY29tcGxldGVJbnB1dF9lZGl0b3Jfc2VsZWN0aW9uX3BpbGwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR1c2VybmFtZS12YXJpYW50MS1jb2xvcjtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG59XG5cbi5teF9BdXRvY29tcGxldGVJbnB1dF9lZGl0b3Jfc2VsZWN0aW9uX3JlbW92ZV9idXR0b24gc3ZnIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXRfbWF0Y2hlcyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGxpbmtzO1xuICAgIGJvcmRlci10b3AtY29sb3I6ICRpbnB1dC1ib3JkZXItY29sb3I7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNHB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG4gICAgei1pbmRleDogMTAwMDtcbn1cblxuLm14X0F1dG9jb21wbGV0ZUlucHV0X3N1Z2dlc3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgID4gKiB7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG4gICAgfVxufVxuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXRfc3VnZ2VzdGlvbi0tc2VsZWN0ZWQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA0cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA0cHg7XG4gICAgfVxufVxuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXRfc3VnZ2VzdGlvbl90aXRsZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlSW5wdXRfc3VnZ2VzdGlvbl9kZXNjcmlwdGlvbiB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG59XG4iLCIubXhfQ29tcGF0aWJpbGl0eVBhZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTU1O1xufVxuXG4ubXhfQ29tcGF0aWJpbGl0eVBhZ2VfYm94IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQ6IDA7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHdpZHRoOiA1MDBweDtcbiAgICBoZWlnaHQ6IDMwMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkO1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZjYztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ29udGV4dHVhbE1lbnVfd3JhcHBlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHotaW5kZXg6IDUwMDA7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV9iYWNrZ3JvdW5kIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBib3gtc2hhZG93OiAwcHggNHB4IDI0cHggcmdiKDAsIDAsIDAsIDAuMSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICBib3JkZXI6IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiA1MDAxO1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51X3JpZ2h0IHtcbiAgICByaWdodDogMTZweDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51Lm14X0NvbnRleHR1YWxNZW51X3dpdGhDaGV2cm9uX3JpZ2h0IHtcbiAgICByaWdodDogOHB4O1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfY2hldnJvbl9yaWdodCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAtOHB4O1xuICAgIHRvcDogMHB4O1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItdG9wOiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWxlZnQ6IDhweCBzb2xpZCAkbWVudS1iZy1jb2xvcjtcbiAgICBib3JkZXItYm90dG9tOiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV9sZWZ0IHtcbiAgICBsZWZ0OiAwO1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnUubXhfQ29udGV4dHVhbE1lbnVfd2l0aENoZXZyb25fbGVmdCB7XG4gICAgbGVmdDogOHB4O1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfY2hldnJvbl9sZWZ0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLThweDtcbiAgICB0b3A6IDBweDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLXRvcDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1yaWdodDogOHB4IHNvbGlkICRtZW51LWJnLWNvbG9yO1xuICAgIGJvcmRlci1ib3R0b206IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51X3RvcCB7XG4gICAgdG9wOiAwO1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnUubXhfQ29udGV4dHVhbE1lbnVfd2l0aENoZXZyb25fdG9wIHtcbiAgICB0b3A6IDhweDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51X2NoZXZyb25fdG9wIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMHB4O1xuICAgIHRvcDogLThweDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLWxlZnQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiA4cHggc29saWQgJG1lbnUtYmctY29sb3I7XG4gICAgYm9yZGVyLXJpZ2h0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV9ib3R0b20ge1xuICAgIGJvdHRvbTogMDtcbn1cblxuLm14X0NvbnRleHR1YWxNZW51Lm14X0NvbnRleHR1YWxNZW51X3dpdGhDaGV2cm9uX2JvdHRvbSB7XG4gICAgYm90dG9tOiA4cHg7XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV9jaGV2cm9uX2JvdHRvbSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDBweDtcbiAgICBib3R0b206IC04cHg7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlci1sZWZ0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcDogOHB4IHNvbGlkICRtZW51LWJnLWNvbG9yO1xuICAgIGJvcmRlci1yaWdodDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfcmlnaHRBbGlnbmVkIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfYm90dG9tQWxpZ25lZCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FcnJvck1lc3NhZ2Uge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICRhbGVydDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgbGluZS1oZWlnaHQ6IDEuMmVtO1xuICAgIG1pbi1oZWlnaHQ6IDIuNGVtO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuQGtleWZyYW1lcyBteF9GaWxlRHJvcFRhcmdldF9hbmltYXRpb24ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDAuOTU7XG4gICAgfVxufVxuXG4ubXhfRmlsZURyb3BUYXJnZXQge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICBmb250LXNpemU6ICRmb250LTE4cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBvcGFjaXR5OiAwLjk1O1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDMwMDA7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIGFuaW1hdGlvbjogbXhfRmlsZURyb3BUYXJnZXRfYW5pbWF0aW9uO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC41cztcbn1cblxuQGtleWZyYW1lcyBteF9GaWxlRHJvcFRhcmdldF9pbWFnZV9hbmltYXRpb24ge1xuICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcbiAgICB9XG59XG5cbi5teF9GaWxlRHJvcFRhcmdldF9pbWFnZSB7XG4gICAgd2lkdGg6IDMycHg7XG4gICAgYW5pbWF0aW9uOiBteF9GaWxlRHJvcFRhcmdldF9pbWFnZV9hbmltYXRpb247XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzO1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRmlsZVBhbmVsIHtcbiAgICBvcmRlcjogMjtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAubXhfUm9vbVZpZXdfbWVzc2FnZUxpc3RXcmFwcGVyIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm14X1Jvb21WaWV3X01lc3NhZ2VMaXN0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICB9XG5cbiAgICAvKiBGSVhNRTogcmF0aGVyIHRoYW4gaGF2aW5nIEV2ZW50VGlsZSdzIGRlZmF1bHQgQ1NTIGJlIGZvciBNZXNzYWdlUGFuZWwsXG4gICB3ZSBzaG91bGQgbWFrZSBFdmVudFRpbGUgYSBiYXNlIENTUyBjbGFzcyBhbmQgY3VzdG9taXNlIGl0IHNwZWNpZmljYWxseVxuICAgZm9yIHVzYWdlIGluIHtNZXNzYWdlLEZpbGUsTm90aWZpY2F0aW9ufVBhbmVsLiAqL1xuXG4gICAgLyogT3ZlcnJpZGVzIGZvciB0aGUgYXR0YWNobWVudCBib2R5IHRpbGVzICovXG4gICAgLm14X0V2ZW50VGlsZSB7XG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuXG4gICAgICAgICYgKyAubXhfRXZlbnRUaWxlIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItZ3JheS00MDApO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTUZpbGVCb2R5IFtkYXRhLXR5cGU9XCJkb3dubG9hZFwiXSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ltYWdlQm9keSB7XG4gICAgICAgICAgICBnYXA6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBhbmNob3IgbGluayBhcyB3cmFwcGVyICovXG4gICAgICAgIC5teF9FdmVudFRpbGVfc2VuZGVyRGV0YWlsc0xpbmsge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX3NlbmRlckRldGFpbHMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICAgICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkZXZlbnQtdGltZXN0YW1wLWNvbG9yOyAvKiBmb3IgZWxsaXBzaXMuIENvbG9yIG9mIGRpc3BsYXlOYW1lIGFuZCBteGlkIGlzIGluaGVyaXRlZCAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9NZXNzYWdlVGltZXN0YW1wIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDA7XG4gICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9HZW5lcmljRHJvcGRvd25NZW51X2J1dHRvbiB7XG4gICAgcGFkZGluZzogM3B4IDRweCAzcHggOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbn1cblxuLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfYnV0dG9uOmhvdmVyLFxuLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfYnV0dG9uW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdIHtcbiAgICBiYWNrZ3JvdW5kOiAkcXVpbmFyeS1jb250ZW50O1xufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfd3JhcHBlci5teF9HZW5lcmljRHJvcGRvd25NZW51X3dyYXBwZXIge1xuICAgIC5teF9Db250ZXh0dWFsTWVudSB7XG4gICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuXG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2IoMjMsIDI1LCAyOCwgMC4wNSk7XG4gICAgfVxuXG4gICAgLm14X0NvbnRleHR1YWxNZW51X2NoZXZyb25fdG9wIHtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgcmlnaHQ6IDIycHg7XG4gICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGJvcmRlcjogaW5oZXJpdDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICRtZW51LWJnLWNvbG9yO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxcHg7XG4gICAgICAgICAgICBsZWZ0OiAtOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfZGl2aWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA0cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTlweDtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfT3B0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHggMTBweCAzMHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgPiAubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuXG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgIHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9HZW5lcmljRHJvcGRvd25NZW51X09wdGlvbi0taGVhZGVyID4gLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfT3B0aW9uLS1sYWJlbCBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWl0ZW0ge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1lbnUtc2VsZWN0ZWQtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9HZW5lcmljRHJvcGRvd25NZW51X09wdGlvbi0tY2hlY2tJY29uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0yMnB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNyBWZWN0b3IgQ3JlYXRpb25zIEx0ZFxuQ29weXJpZ2h0IDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0hvbWVQYWdlIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIHBsYWNlLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IG1pbigxMDAlIC0gNTBweCwgOTYwcHgpO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBjb250YWluZXItdHlwZTogaW5saW5lLXNpemU7XG4gICAgY29udGFpbmVyLW5hbWU6IGhvbWVwYWdlO1xufVxuXG4ubXhfSG9tZVBhZ2VfZGVmYXVsdCB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgaW1nIHtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgIH1cblxuICAgIGgxIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0zMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zNzU7XG4gICAgfVxuXG4gICAgaDIge1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE4cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNXB4O1xuICAgICAgICBjb2xvcjogJG11dGVkLWZnLWNvbG9yO1xuICAgIH1cblxuICAgIC5teF9NaW5pQXZhdGFyVXBsb2FkZXIge1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG5cbiAgICAubXhfSG9tZVBhZ2VfZGVmYXVsdF9idXR0b25zIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcbiAgICAgICAgZ2FwOiA1cHggNDBweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi10b3A6IDgwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IDEzcHg7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgd2lkdGg6IDE2MHB4O1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTMycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggMTVweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTIwcHg7XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjsgLyogb24gYWxsIHRoZW1lcyAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogI2ZmZjsgLyogb24gYWxsIHRoZW1lcyAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGNvbnRhaW5lciBob21lcGFnZSAobWF4LXdpZHRoOiA1NTlweCkge1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7XG5cbiAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG5cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGFyZ2VMb2FkZXIge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgIC5teF9TcGlubmVyIHtcbiAgICAgICAgZmxleDogdW5zZXQ7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMzJweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMzN2aDtcbiAgICB9XG5cbiAgICAubXhfTGFyZ2VMb2FkZXJfdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIHBhZGRpbmc6IDAgMTZweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01hdHJpeENoYXQtLXdpdGgtYXZhdGFyIHtcbiAgICAubXhfTGVmdFBhbmVsLFxuICAgIC5teF9MZWZ0UGFuZWwgLm14X0xlZnRQYW5lbF9yb29tTGlzdENvbnRhaW5lciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuLm14X0xlZnRQYW5lbF9vdXRlcldyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5teF9MZWZ0UGFuZWxfd3JhcHBlcixcbi5teF9MZWZ0UGFuZWwge1xuICAgIC0tY29sbGFwc2VkV2lkdGg6IDY4cHg7XG59XG5cbi5teF9MZWZ0UGFuZWxfcGFuZWwge1xuICAgIC5teF9MZWZ0UGFuZWxfb3V0ZXJXcmFwcGVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuXG4gICAgLm14X0xlZnRQYW5lbF93cmFwcGVyLS11c2VyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG4ubXhfTGVmdFBhbmVsX3dyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4OiAxO1xuICAgIGhlaWdodDogMTAwJTsgLyogZW5zdXJlIHNwYWNlIHBhbmVsIGlzIHN0aWxsIHNjcm9sbGFibGUgd2l0aCBhbiBvdXRlciB3cmFwcGVyICovXG5cbiAgICAubXhfTGVmdFBhbmVsX3dyYXBwZXItLXVzZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIC8qIEZvciBlbmhhbmNlZCB2aXNpYmlsaXR5IHVuZGVyIGNvbnRyYXN0IGNvbnRyb2wgKi9cbiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICAgICAgICZbZGF0YS1jb2xsYXBzZWRdIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogdmFyKC0tY29sbGFwc2VkV2lkdGgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfTGVmdFBhbmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgIC8qIFRoZSByb29tIGxpc3QgaXMgbm90IGRlc2lnbmVkIHRvIGJlIGNvbGxhcHNlZCB0byBqdXN0IGljb25zLiAqL1xuICAgIC8qIDIyNCArIDY4KHNwYWNlcyBiYXIpIHdhcyBkZWVtZWQgYnkgZGVzaWduIHRvIGJlIGEgZ29vZCBtaW5pbXVtIGZvciB0aGUgbGVmdCBwYW5lbC4gKi9cbiAgICAtLWNvbGxhcHNlZFdpZHRoOiAyMjRweDtcblxuICAgIC8qIENyZWF0ZSBhIHJvdy1iYXNlZCBmbGV4Ym94IGZvciB0aGUgc3BhY2UgcGFuZWwgYW5kIHRoZSByb29tIGxpc3QgKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGNvbnRhaW46IGNvbnRlbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLm14X0xlZnRQYW5lbF9yb29tTGlzdENvbnRhaW5lciB7XG4gICAgICAgIGZsZXg6IDEgMCAwO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIC8qIENyZWF0ZSBhbm90aGVyIGZsZXhib3ggKHRoaXMgdGltZSBhIGNvbHVtbikgZm9yIHRoZSByb29tIGxpc3QgY29tcG9uZW50cyAqL1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC8qIFRoZXNlIHN0eWxlcyBvdmVycmlkZSB0aGUgZGVmYXVsdHMgZm9yIHRoZSBtaW5pbWl6ZWQgKDY2cHgpIGxheW91dCAqL1xuICAgICYubXhfTGVmdFBhbmVsX21pbmltaXplZCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgbWluLXdpZHRoOiB1bnNldDtcbiAgICAgICAgd2lkdGg6IHVuc2V0ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgLm14X0xlZnRQYW5lbF9yb29tTGlzdENvbnRhaW5lciB7XG4gICAgICAgICAgICB3aWR0aDogdmFyKC0tY29sbGFwc2VkV2lkdGgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4jbGVmdC1wYW5lbCAubXhfTGVmdFBhbmVsX3dyYXBwZXItLXVzZXIge1xuICAgIC8qXG4gICAgICogRGlzYWJsZSBiYWNrZ3JvdW5kIHdoZW4gdXNpbmcgdGhlIG5ldyByb29tIGxpc3QuXG4gICAgICogVGhpcyBiYWNrZ3JvdW5kIHNvbWV0aW1lcyBzaG93cyB3aGVuIHRoZSBwYW5lbCBpcyByZXNpemVkIGFuZCBpdCBsb29rcyBsaWtlIGEgdGhpY2tlciBib3JkZXIuXG4gICAgICovXG4gICAgYmFja2dyb3VuZDogbm9uZTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWFpblNwbGl0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ubXhfTWFpblNwbGl0ID4gLm14X1JpZ2h0UGFuZWxfUmVzaXplV3JhcHBlciB7XG4gICAgJjpob3ZlciAubXhfUmVzaXplSGFuZGxlLS1ob3Jpem9udGFsOjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0xNTAlLCAtNTAlKTtcblxuICAgICAgICBoZWlnaHQ6IDY0cHg7IC8qIHRvIG1hdGNoIHdpZHRoIG9mIHRoZSBvbmVzIG9uIHJvb21saXN0ICovXG4gICAgICAgIHdpZHRoOiA0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblxuICAgICAgICBjb250ZW50OiBcIlwiO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWF0cml4Q2hhdF9zcGxhc2gge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5teF9NYXRyaXhDaGF0X3dyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5teF9NYXRyaXhUb29sYmFyIHtcbiAgICBvcmRlcjogMTtcblxuICAgIGhlaWdodDogNDBweDtcbn1cblxuLm14X01hdHJpeENoYXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgZmxleDogMTtcbiAgICBtaW4taGVpZ2h0OiAwO1xufVxuXG4vKiBub3QgdGhlIGxlZnQgcGFuZWwsIGFuZCBub3QgdGhlIHJlc2l6ZSBoYW5kbGUsIHNvIHRoZSByb29tdmlldyBhbmQgZnJpZW5kcyAqL1xuLm14X01hdHJpeENoYXQgPiA6bm90KC5teF9MZWZ0UGFuZWwpOm5vdCgubXhfU3BhY2VQYW5lbCk6bm90KC5teF9SZXNpemVIYW5kbGUpOm5vdCgubXhfTGVmdFBhbmVsX291dGVyV3JhcHBlcikge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gICAgZmxleDogMSAxIDA7XG4gICAgbWluLXdpZHRoOiAwO1xuXG4gICAgLyogVG8gZml4IGh0dHBzOi8vZ2l0aHViLmNvbS92ZWN0b3ItaW0vZWxlbWVudC13ZWIvaXNzdWVzLzMyOTggd2hlcmUgU2FmYXJpXG4gICAgICAgbmVlZGVkIGhlaWdodCAxMDAlIGFsbCB0aGUgd2F5IGRvd24gdG8gdGhlIEhvbWVQYWdlLiBIZWlnaHQgZG9lcyBub3RcbiAgICAgICBoYXZlIHRvIGJlIGF1dG8sIGVtcGlyaWNhbGx5LlxuICAgICovXG4gICAgaGVpZ2h0OiAxMDAlO1xufVxuXG4ubXhfTWF0cml4Q2hhdCA+IC5teF9SZXNpemVIYW5kbGUtLWhvcml6b250YWw6aG92ZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG5cbiAgICAgICAgaGVpZ2h0OiA2NHB4OyAvKiB0byBtYXRjaCB3aWR0aCBvZiB0aGUgb25lcyBvbiByb29tbGlzdCAqL1xuICAgICAgICB3aWR0aDogNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICAgICAgY29udGVudDogXCIgXCI7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgb3BhY2l0eTogMC44O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Ob25VcmdlbnRUb2FzdENvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMzBweDtcbiAgICBsZWZ0OiAyOHB4O1xuICAgIHotaW5kZXg6IDEwMTsgLyogc2FtZSBsZXZlbCBhcyBvdGhlciB0b2FzdHMgKi9cblxuICAgIC5teF9Ob25VcmdlbnRUb2FzdENvbnRhaW5lcl90b2FzdCB7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICB3aWR0aDogMzIwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTNweDtcbiAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuXG4gICAgICAgIC8qIFdlIGRvbid0IHVzZSB2YXJpYWJsZXMgb24gdGhlIGNvbG91cnMgYmVjYXVzZSB3ZSB3YW50IGl0IHRvIGJlIHRoZSBzYW1lICovXG4gICAgICAgIC8qIGluIGFsbCB0aGVtZXMuICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxNzE5MWM7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNiBFbGVtZW50IENyZWF0aW9ucyBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9QaWN0dXJlSW5QaWN0dXJlRHJhZ2dlciB7XG4gICAgY3Vyc29yOiBncmFiO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICAvKiBEaXNwbGF5IGFib3ZlIGFueSB3aWRnZXQgZWxlbWVudHMgKi9cbiAgICB6LWluZGV4OiAxMDI7XG59XG5cbi5teF9QaWN0dXJlSW5QaWN0dXJlRHJhZ2dlcjphY3RpdmUge1xuICAgIGN1cnNvcjogZ3JhYmJpbmc7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQsMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9RdWlja1NldHRpbmdzQnV0dG9uIHtcbiAgICAvKiAhaW1wb3J0YW50IG92ZXJyaWRlIGNvbXBvdW5kICovXG4gICAgYm9yZGVyLXJhZGl1czogOHB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAxMnB4IGF1dG8gMTJweDtcblxuICAgIHN2ZyB7XG4gICAgICAgIGZpbGw6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG5cbiAgICAmOm5vdCguZXhwYW5kZWQpOmhvdmVyIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIG92ZXJyaWRlIGNvbXBvdW5kIGRlZmF1bHQgYmFja2dyb3VuZCBjb2xvciB3aGVuIGhvdmVyZWRcbiAgICAgICAgICogc2hvdWxkIGRpc2FwcGVhciB3aGVuIHRoZSBzcGFjZSBwYW5lbCB3aWxsIGJlIG1pZ3JhdGVkIHRvIGNvbXBvdW5kXG4gICAgICAgICAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVhdGVybmFyeS1jb250ZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBmaWxsOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5leHBhbmRlZCB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBvdmVycmlkZSBjb21wb3VuZCBkZWZhdWx0IGJhY2tncm91bmQgY29sb3Igd2hlbiBob3ZlcmVkXG4gICAgICAgICAqIHNob3VsZCBkaXNhcHBlYXIgd2hlbiB0aGUgc3BhY2UgcGFuZWwgd2lsbCBiZSBtaWdyYXRlZCB0byBjb21wb3VuZFxuICAgICAgICAgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblxuICAgICAgICAvKiBhbGlnbiB3aXRoIHNldHRpbmdzIGljb24gKi9cbiAgICAgICAgbWFyZ2luLWxlZnQ6IDIxcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAvKipcbiAgICAgICAgICogbW9kaWZ5IGludGVybmFsIGNzcyBvZiB0aGUgY29tcG91bmQgY29tcG9uZW50XG4gICAgICAgICAqIGRpcnR5IGJ1dCB3ZSBuZWVkIHRvIGFkZCB0aGUgbGFiZWwgaW50byB0aGUgaW5kaWNhdG9yIGljb24gYnV0dG9uXG4gICAgICAgICAqKi9cbiAgICAgICAgJiA+IGRpdiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAvKiBhbGlnbiB3aXRoIHNldHRpbmdzIGxhYmVsICovXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDE0cHg7XG4gICAgICAgICAgICAvKiByZXF1aXJlZCB0byBzZXQgdGhlIGljb24gd2lkdGggd2hlbiBpbnRvIGEgZmxleCBjb250YWluZXIgKi9cbiAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmIC5teF9RdWlja1NldHRpbmdzQnV0dG9uX2xhYmVsIHtcbiAgICAgICAgICAgIC8qICFpbXBvcnRhbnQgb3ZlcnJpZGUgY29tcG91bmQgICovXG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9RdWlja1NldHRpbmdzQnV0dG9uX0NvbnRleHRNZW51V3JhcHBlciAubXhfQ29udGV4dHVhbE1lbnUge1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgY29udGFpbjogdW5zZXQ7IC8qIGxldCB0aGUgZHJvcGRvd24gcGFpbnQgYmV5b25kIHRoZSBjb250ZXh0IG1lbnUgKi9cblxuICAgID4gZGl2ID4gaDIge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgIG1hcmdpbjogMCAwIDE2cHg7XG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25faGFzS2luZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgfVxuXG4gICAgPiBkaXYgPiBoNCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgbWFyZ2luOiAyMHB4IDAgMTJweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIC5teF9RdWlja1NldHRpbmdzQnV0dG9uX21vcmVPcHRpb25zQnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS03eCk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIH1cblxuICAgIC5teF9RdWlja1NldHRpbmdzQnV0dG9uX29wdGlvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIC8qIENvcnJlY3RseSBsaW5lIHVwIGljb25zIGFuZCB0ZXh0LiAqL1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9RdWlja1RoZW1lU3dpdGNoZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cbn1cblxuLm14X1F1aWNrU2V0dGluZ3NCdXR0b25faWNvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUmlnaHRQYW5lbCB7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkc2VwYXJhdG9yO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGNvbnRhaW46IHN0cmljdDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuXG4gICAgLm14X1Jvb21WaWV3X01lc3NhZ2VMaXN0IHtcbiAgICAgICAgcGFkZGluZzogMTRweCAxOHB4OyAvKiB0b3AgYW5kIGJvdHRvbSBpcyA0cHggc21hbGxlciB0byBiYWxhbmNlIHdpdGggdGhlIHBhZGRpbmcgc2V0IGFib3ZlICovXG4gICAgfVxufVxuXG4ubXhfUmlnaHRQYW5lbCAubXhfTWVtYmVyTGlzdCxcbi5teF9SaWdodFBhbmVsIC5teF9NZW1iZXJJbmZvIHtcbiAgICBvcmRlcjogMjtcbiAgICBmbGV4OiAxIDEgMDtcbn1cblxuLm14X1JpZ2h0UGFuZWwgLm14X1Jvb21WaWV3X21lc3NhZ2VQYW5lbFNwaW5uZXIge1xuICAgIG9yZGVyOiAyO1xuICAgIG1hcmdpbjogYXV0bztcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbjpyb290IHtcbiAgICAtLVJvb21WaWV3X01lc3NhZ2VMaXN0LXBhZGRpbmc6IDE4cHg7XG59XG5cbi5teF9MZWZ0UGFuZWxfcGFuZWwge1xuICAgIC5teF9Sb29tVmlld193cmFwcGVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbn1cblxuLm14X1Jvb21WaWV3X3dyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAvKiBDb250YWluIHRoZSBhbW91bnQgb2YgbGF5ZXJzIHJlbmRlcmVkIGJ5IGNvbnN0cmFpbmluZyB3aGF0IGFjdHVhbGx5IG5lZWRzIHJlLWxheWVyaW5nIHZpYSBjc3MgKi9cbiAgICBjb250YWluOiBzdHJpY3Q7XG59XG5cbi5teF9Sb29tVmlldyB7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5teF9NYWluU3BsaXQge1xuICAgICAgICBmbGV4OiAxIDEgMDtcbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDFlbTtcbiAgICB9XG59XG5cbi5teF9Sb29tVmlld19hdXhQYW5lbF9oaWRkZW5IaWdobGlnaHRzIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHByaW1hcnktaGFpcmxpbmUtY29sb3I7XG4gICAgcGFkZGluZzogMTBweCAyNnB4O1xuICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfUm9vbVZpZXdfbWVzc2FnZVBhbmVsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGZsZXg6IDEgMSAwO1xuICAgIG92ZXJmbG93LWFuY2hvcjogbm9uZTtcbn1cblxuLm14X1Jvb21WaWV3X21lc3NhZ2VQYW5lbFNlYXJjaFNwaW5uZXIge1xuICAgIGZsZXg6IDE7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL3Jlcy9pbWcvdHlwaW5nLWluZGljYXRvci0yeC5naWZcIik7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIDM2N3B4O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMjVweDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIHN2ZyB7XG4gICAgICAgIGNvbG9yOiAkaW5mby1wbGludGgtZmctY29sb3I7XG4gICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICBoZWlnaHQ6IDUwcHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAyODZweDtcbiAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAyNXB4KTtcbiAgICB9XG59XG5cbi5teF9Sb29tVmlld19ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgY29udGFpbmVyLXR5cGU6IHNpemU7XG4gICAgY29udGFpbmVyLW5hbWU6IHJvb212aWV3O1xuXG4gICAgLm14X1Jvb21WaWV3X21lc3NhZ2VQYW5lbCxcbiAgICAubXhfUm9vbVZpZXdfbWVzc2FnZVBhbmVsU3Bpbm5lcixcbiAgICAubXhfUm9vbVZpZXdfbWVzc2FnZVBhbmVsU2VhcmNoU3Bpbm5lciB7XG4gICAgICAgIG9yZGVyOiAyO1xuICAgIH1cblxuICAgIC5teF9Sb29tVmlld190aW1lbGluZSB7XG4gICAgICAgIC8qIG9mZnNldCBwYXJlbnQgZm9yIG14X1Jvb21WaWV3X3RvcFVucmVhZE1lc3NhZ2VzQmFyICAqL1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxufVxuXG4vKiBSZXN0b3JlIHRoZSBnYXAgYmV0d2VlbiB0aGUgdGltZWxpbmUgYW5kIHRoZSByaWdodCBwYW5lbCBvbmx5IHdoZW4gdGhlIHBhbmVsIGlzIG9wZW4uXG4gICBXaXRob3V0IHRoaXMsIHRoZSBzY3JvbGxiYXIgb24gbXhfUm9vbVZpZXdfbWVzc2FnZVBhbmVsIHdvdWxkIHNpdCA0IHB4IGF3YXkgZnJvbSB0aGVcbiAgIHZpZXdwb3J0IGVkZ2UgaW4gRmlyZWZveCAod2hpY2ggZG9lcyBub3Qgc3VwcG9ydCBvdmVyZmxvdzpvdmVybGF5KS4gKi9cbi5teF9NYWluU3BsaXQ6aGFzKC5teF9SaWdodFBhbmVsX1Jlc2l6ZVdyYXBwZXIpIC5teF9Sb29tVmlld190aW1lbGluZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvbnRhaW5lci1nYXAtd2lkdGgpIC8gMik7XG59XG5cbi5teF9Sb29tVmlld19zdGF0dXNBcmVhIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbGV4OiAwIDAgYXV0bztcblxuICAgIG1heC1oZWlnaHQ6IDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLW91dDtcbn1cblxuLm14X1Jvb21WaWV3X3N0YXR1c0FyZWFfZXhwYW5kZWQge1xuICAgIG1heC1oZWlnaHQ6IDEwMHB4O1xufVxuXG4ubXhfUm9vbVZpZXdfc3RhdHVzQXJlYUJveCB7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG59XG5cbi5teF9Sb29tVmlld19zdGF0dXNBcmVhQm94X2xpbmUge1xuICAgIG1hcmdpbi1sZWZ0OiA2NXB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICBoZWlnaHQ6IDFweDtcbn1cblxuLm14X1Jvb21WaWV3X21lc3NhZ2VMaXN0V3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ubXhfUm9vbVZpZXdfc2VhcmNoUmVzdWx0c1BhbmVsIHtcbiAgICAubXhfUm9vbVZpZXdfbWVzc2FnZUxpc3RXcmFwcGVyIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuXG4gICAgICAgID4gLm14X1Jvb21WaWV3X01lc3NhZ2VMaXN0ID4gbGkgPiBvbCB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB9XG59XG5cbi5teF9Sb29tVmlld19lbXB0eSB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xM3B4O1xuICAgIHBhZGRpbmc6IDAgMjRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDMwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDgwcHg7IC8qIHZpc3VhbGx5IGNlbnRlciB0aGUgY29udGVudCAoaW50ZW50aW9uYWwgb2Zmc2V0KSAqL1xufVxuXG4ubXhfUm9vbVZpZXdfTWVzc2FnZUxpc3Qge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBwYWRkaW5nOiB2YXIoLS1Sb29tVmlld19NZXNzYWdlTGlzdC1wYWRkaW5nKTsgLyogbXhfUHJvZmlsZVJlc2l6ZXIgZGVwZW5kcyBvbiB0aGlzIHZhbHVlICovXG4gICAgbWFyZ2luOiAwO1xuICAgIC8qIG5lZWRlZCBhcyBtaW4taGVpZ2h0IGlzIHNldCB0byBjbGllbnRIZWlnaHQgaW4gU2Nyb2xsUGFuZWxcbiAgICB0byBwcmV2ZW50IHNocmlua2luZyB3aGVuIFdob0lzVHlwaW5nVGlsZSBpcyBoaWRkZW4gKi9cbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgbGkge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICB9XG5cbiAgICAubXhfU2Nyb2xsUGFuZWwgJiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICBjb250ZW50LXZpc2liaWxpdHk6IGF1dG87XG4gICAgICAgIGNvbnRhaW4taW50cmluc2ljLXNpemU6IDUwcHg7XG4gICAgfVxuXG4gICAgLm14X1Jvb21WaWV3LS1sb2NhbCAubXhfU2Nyb2xsUGFuZWwgJiB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbn1cblxuLm14X1Jvb21WaWV3X2luQ2FsbCB7XG4gICAgLm14X1Jvb21WaWV3X3N0YXR1c0FyZWFCb3hfbGluZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDJweDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBoZWlnaHQ6IDBweDtcbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX3dyYXBwZXIge1xuICAgICAgICBib3JkZXItdG9wOiAycHggaGlkZGVuO1xuICAgICAgICBwYWRkaW5nLXRvcDogMXB4O1xuICAgIH1cbn1cblxuLm14X01hdHJpeENoYXRfdXNlQ29tcGFjdExheW91dCB7XG4gICAgLm14X1Jvb21WaWV3X01lc3NhZ2VMaXN0IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuXG4gICAgICAgIGgyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Sb29tVmlld19zdGF0dXNBcmVhQm94IHtcbiAgICAgICAgbWluLWhlaWdodDogNDJweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2VhcmNoQm94IHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWluLWhlaWdodDogMzZweDsgLyogdG8gYXZvaWQganVtcGluZyB3aGVuIHRoZSBYIHRvIGNsZWFyIHNob3dzL2hpZGVzICovXG5cbiAgICAmLm14X1NlYXJjaEJveF9ibHVycmVkOm5vdCg6aG92ZXIpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLm14X1NlYXJjaEJveF9jbG9zZUJ1dHRvbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgcGFkZGluZzogOXB4O1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1zZWNvbmRhcnkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0LDIwMjUgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3BhY2VSb29tVmlld19sYW5kaW5nIHtcbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmsge1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgLm14X1NlYXJjaEJveCB7XG4gICAgICAgIG1hcmdpbjogMjRweCAwIDE2cHg7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X25vUmVzdWx0cyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VIaWVyYXJjaHlfbGlzdEhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuXG4gICAgICAgIC5teF9TcGFjZUhpZXJhcmNoeV9saXN0SGVhZGVyX2hlYWRlciB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbi1zdGFydDogMTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NwYWNlSGllcmFyY2h5X2xpc3RIZWFkZXJfYnV0dG9ucyB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbi1zdGFydDogMjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWZsb3c6IHdyYXA7XG4gICAgICAgICAgICBnYXA6IDEycHg7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAzMnB4O1xuXG4gICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNHB4IDEycHg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfZGFuZ2VyX291dGxpbmUsXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeV9vdXRsaW5lIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDNweCAxMnB4OyAvKiB0byBhY2NvdW50IGZvciB0aGUgMXB4IGJvcmRlciAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X2Vycm9yIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMThweDtcbiAgICAgICAgbWFyZ2luOiAyMHB4IGF1dG8gMTJweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJAdmVjdG9yLWltL2NvbXBvdW5kLWRlc2lnbi10b2tlbnMvaWNvbnMvZXJyb3Itc29saWQuc3ZnXCIpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VIaWVyYXJjaHlfcm9vbUNvdW50IHtcbiAgICAgICAgPiBoMyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMThweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMnB4O1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZUhpZXJhcmNoeV9zdWJzcGFjZV90b2dnbGUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IC0xcHg7XG4gICAgICAgIHRvcDogMTBweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9TcGFjZUhpZXJhcmNoeV9zdWJzcGFjZV90b2dnbGVfc2hvd24gc3ZnIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X3N1YnNwYWNlX2NoaWxkcmVuIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X2xpc3Qge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgbGkubXhfU3BhY2VIaWVyYXJjaHlfcm9vbVRpbGVXcmFwcGVyIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICAgICAgICAgIC5teF9TcGFjZUhpZXJhcmNoeV9yb29tVGlsZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAgICAgZ2FwOiA2cHggMTJweDtcblxuICAgICAgICAgICAgICAgIC5teF9TcGFjZUhpZXJhcmNoeV9yb29tVGlsZV9pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjBweCBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBnYXA6IDZweCA4cHg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDE7IC8qIHdyYXAgYWN0aW9uIGJ1dHRvbnMgKi9cblxuICAgICAgICAgICAgICAgICAgICAubXhfU3BhY2VIaWVyYXJjaHlfcm9vbVRpbGVfYXZhdGFyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubXhfU3BhY2VIaWVyYXJjaHlfcm9vbVRpbGVfbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAubXhfSW5mb1Rvb2x0aXAsXG4gICAgICAgICAgICAgICAgICAgICAgICAubXhfU3BhY2VIaWVyYXJjaHlfcm9vbVRpbGVfam9pbmVkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAubXhfSW5mb1Rvb2x0aXAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLm14X1NwYWNlSGllcmFyY2h5X3Jvb21UaWxlX2pvaW5lZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X1NwYWNlSGllcmFyY2h5X3Jvb21UaWxlX2luZm8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbjogMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfU3BhY2VIaWVyYXJjaHlfYWN0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbi1nYXA6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNHB4IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9vdXRsaW5lLFxuICAgICAgICAgICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnlfb3V0bGluZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAzcHggMTZweDsgLyogdG8gYWNjb3VudCBmb3IgdGhlIDFweCBib3JkZXIgKi9cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cy13aXRoaW4ge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3BhY2VQYW5lbC1iZy1jb2xvcjtcblxuICAgICAgICAgICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJi5teF9TcGFjZUhpZXJhcmNoeV9qb2luaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDRweCAxOHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X3Jvb21UaWxlLFxuICAgIC5teF9TcGFjZUhpZXJhcmNoeV9zdWJzcGFjZV9jaGlsZHJlbiB7XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHNwYWNlUGFuZWwtYmctY29sb3I7XG4gICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgbGVmdDogNnB4O1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X2FjdGlvbnMge1xuICAgICAgICAubXhfU3BhY2VIaWVyYXJjaHlfYWN0aW9uc1RleHQge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgID4gaHIge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTQxLCAxNTEsIDE2NSwgMC4yKTtcbiAgICAgICAgbWFyZ2luOiAyMHB4IDA7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSGllcmFyY2h5X2NyZWF0ZVJvb20ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAxNnB4IGF1dG8gMDtcbiAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcGFjZVBhbmVsIHtcbiAgICAtLWFjdGl2ZUJhY2tncm91bmQtY29sb3I6ICRwYW5lbC1hY3Rpb25zO1xuICAgIC0tYWN0aXZlQm9yZGVyLWNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIC0tYWN0aXZlQm9yZGVyLXRyYW5zcGFyZW50LWdhcDogMXB4O1xuICAgIC0tZ3V0dGVyU2l6ZTogMTRweDtcbiAgICAtLWhlaWdodC1uZXN0ZWQ6IDI0cHg7XG4gICAgLS1oZWlnaHQtdG9wTGV2ZWw6IDMycHg7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtcHJpbWFyeSk7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8qIEZpeCBmb3IgdGhlIGJsdXJyZWQgYXZhdGFyLWJhY2tncm91bmQgKi9cbiAgICB6LWluZGV4OiAxO1xuXG4gICAgLyogRm9yIGVuaGFuY2VkIHZpc2liaWxpdHkgdW5kZXIgY29udHJhc3QgY29udHJvbCAqL1xuICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgIC8qIENyZWF0ZSBhbm90aGVyIGZsZXhib3ggc28gdGhlIFBhbmVsIGZpbGxzIHRoZSBjb250YWluZXIgKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAmLmNvbGxhcHNlZCB7XG4gICAgICAgIHdpZHRoOiA2OHB4O1xuICAgIH1cblxuICAgIC5teF9TcGFjZVBhbmVsX3RvZ2dsZUNvbGxhcHNlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICB0b3A6IDE5cHg7IC8qIHYtYWxpZ24gd2l0aCBhdmF0YXIgKi9cbiAgICAgICAgcmlnaHQ6IC04cHg7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAgICAgLyogU2xpZ2h0IGFsaWdubWVudCB0d2VhayB0byBjZW50ZXIgdGhlIGFzc2V0ICovXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5leHBhbmRlZCBzdmcge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICAgIC8qIFNsaWdodCBhbGlnbm1lbnQgdHdlYWsgdG8gY2VudGVyIHRoZSBhc3NldCAqL1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIC5teF9TcGFjZVBhbmVsX3RvZ2dsZUNvbGxhcHNlLFxuICAgIC5teF9TcGFjZVBhbmVsX3RvZ2dsZUNvbGxhcHNlOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAvKiBGb3IgZW5oYW5jZWQgdmlzaWJpbGl0eSB1bmRlciBjb250cmFzdCBjb250cm9sICovXG4gICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICB1bCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAubXhfU3BhY2VCdXR0b25fdG9nZ2xlQ29sbGFwc2Uge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSXRlbV9kcmFnZ2luZyB7XG4gICAgICAgIC5teF9TcGFjZUJ1dHRvbl90b2dnbGVDb2xsYXBzZSB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VJdGVtIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogd3JhcDtcblxuICAgICAgICAmLm14X1NwYWNlSXRlbV9uYXJyb3cge1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogYmFzZWxpbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VJdGVtLmNvbGxhcHNlZCB7XG4gICAgICAgICYgPiAubXhfU3BhY2VCdXR0b24gPiAubXhfU3BhY2VCdXR0b25fdG9nZ2xlQ29sbGFwc2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAwIC0xMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJiA+IC5teF9TcGFjZVRyZWVMZXZlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSXRlbV9uZXcge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlSXRlbTpub3QoLmhhc1N1YlNwYWNlcykgPiAubXhfU3BhY2VCdXR0b24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tZ3V0dGVyU2l6ZSk7XG4gICAgICAgIG1pbi13aWR0aDogNDBweDtcbiAgICB9XG5cbiAgICAubXhfU3BhY2VCdXR0b24ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDRweCA0cHggNHB4IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAvKiBPdmVycmlkZSB0aGUgdW5sYXllcmVkIGN1cnNvcjogZ3JhYjsgcnVsZSBmcm9tIHJlYWN0LWJlYXV0aWZ1bC1kbmQgKi9cbiAgICAgICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgJi5teF9TcGFjZUJ1dHRvbl9hY3RpdmUge1xuICAgICAgICAgICAgJjpub3QoLm14X1NwYWNlQnV0dG9uX25hcnJvdykgLm14X1NwYWNlQnV0dG9uX3NlbGVjdGlvbldyYXBwZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjdGl2ZUJhY2tncm91bmQtY29sb3IpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X1NwYWNlQnV0dG9uX25hcnJvdyAubXhfU3BhY2VCdXR0b25fc2VsZWN0aW9uV3JhcHBlciB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tYWN0aXZlQm9yZGVyLXRyYW5zcGFyZW50LWdhcCk7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAzcHggdmFyKC0tYWN0aXZlQm9yZGVyLWNvbG9yKSBzb2xpZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZUJ1dHRvbl9zZWxlY3Rpb25XcmFwcGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMzJweCk7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X1NwYWNlQnV0dG9uX25hcnJvdyAubXhfU3BhY2VCdXR0b25fc2VsZWN0aW9uV3JhcHBlciB7XG4gICAgICAgICAgICBmbGV4OiBpbml0aWFsO1xuICAgICAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VCdXR0b25fbmFtZSB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VCdXR0b25fdG9nZ2xlQ29sbGFwc2Uge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLWd1dHRlclNpemUpO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgLyogUmUtYWxpZ24gd2l0aCBwYXJlbnQgKi9cbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTNweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZUJ1dHRvbl9pY29uIHtcbiAgICAgICAgICAgIC8qIENhbGN1bGF0ZSBoZWlnaHQgZXhjbHVkaW5nIHBhZGRpbmcgdG8gYWxsb3cgc3ZnIHRvIGluaGVyaXQgKi9cbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLWhlaWdodC10b3BMZXZlbCkgLSAxNHB4KTtcbiAgICAgICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1oZWlnaHQtdG9wTGV2ZWwpIC0gMTRweCk7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDdweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwYW5lbC1hY3Rpb25zO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9TcGFjZUJ1dHRvbl9uZXcgLm14X1NwYWNlQnV0dG9uX2ljb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7IC8qIFRPRE8gdHJhbnNpdGlvbiAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9TcGFjZUJ1dHRvbl9uZXdDYW5jZWwgLm14X1NwYWNlQnV0dG9uX2ljb24gc3ZnIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZUJ1dHRvbl9tZW51QnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogNHB4O1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZVRyZWVMZXZlbCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1heC13aWR0aDogMjUwcHg7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuXG4gICAgICAgIC5teF9TcGFjZVRyZWVMZXZlbCB7XG4gICAgICAgICAgICAvKiBJbmRlbnQgc3Vic3BhY2VzICovXG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VCdXR0b25fYXZhdGFyV3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgLm14X1NwYWNlUGFuZWxfYmFkZ2VDb250YWluZXIge1xuICAgICAgICAvKiBDcmVhdGUgYSBmbGV4Ym94IHRvIG1ha2UgYWxpZ25pbmcgZG90IGJhZGdlcyBlYXNpZXIgKi9cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLTNweDtcbiAgICAgICAgdG9wOiAtM3B4O1xuXG4gICAgICAgIC5teF9TcGFjZVBhbmVsX25vdGlmaWNhdGlvbkJhZGdlIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAycHg7IC8qIGNlbnRlcmluZyAqL1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICAgICAgfVxuXG4gICAgICAgIFtkYXRhLWJhZGdlLXR5cGU9XCJkb3RcIl0ge1xuICAgICAgICAgICAgLyogbWFrZSB0aGUgc21hbGxlciBkb3Qgb2NjdXB5IHRoZSBzYW1lIHdpZHRoIGZvciBjZW50ZXJpbmcgKi9cbiAgICAgICAgICAgIG1hcmdpbjogMCAtMXB4IDAgMDtcbiAgICAgICAgICAgIGJvcmRlcjogM3B4IHNvbGlkICRzcGFjZVBhbmVsLWJnLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgW2RhdGEtYmFkZ2UtdHlwZT1cImJhZGdlXzJjaGFyXCJdLFxuICAgICAgICBbZGF0YS1iYWRnZS10eXBlPVwiYmFkZ2VfM2NoYXJcIl0ge1xuICAgICAgICAgICAgbWFyZ2luOiAtNXB4IC01cHggMCAwO1xuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJHNwYWNlUGFuZWwtYmctY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VCdXR0b246aG92ZXIsXG4gICAgLm14X1NwYWNlQnV0dG9uOmZvY3VzLXdpdGhpbixcbiAgICAubXhfU3BhY2VCdXR0b25faGFzTWVudU9wZW4ge1xuICAgICAgICAmOm5vdCgubXhfU3BhY2VCdXR0b25fbmFycm93KTpub3QoLm14X1NwYWNlQnV0dG9uX2ludml0ZSkgLm14X1NwYWNlQnV0dG9uX21lbnVCdXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU3BhY2VJdGVtOm5vdCgubXhfU3BhY2VJdGVtX25ldykge1xuICAgICAgICAubXhfU3BhY2VCdXR0b246aG92ZXIsXG4gICAgICAgIC5teF9TcGFjZUJ1dHRvbjpmb2N1cy13aXRoaW4sXG4gICAgICAgIC5teF9TcGFjZUJ1dHRvbl9oYXNNZW51T3BlbiB7XG4gICAgICAgICAgICAmOm5vdCgubXhfU3BhY2VCdXR0b25fbmFycm93KTpub3QoLm14X1NwYWNlQnV0dG9uX2ludml0ZSkgLm14X1NwYWNlQnV0dG9uX25hbWUge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gNTZweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiByb290IHNwYWNlIGJ1dHRvbnMgYXJlIGJpZ2dlciBhbmQgbm90IGluZGVudGVkICovXG4gICAgJiA+IC5teF9BdXRvSGlkZVNjcm9sbGJhciB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAxNnB4IDA7XG4gICAgICAgIHNjcm9sbGJhci1ndXR0ZXI6IHN0YWJsZTtcblxuICAgICAgICAmLm14X0luZGljYXRvclNjcm9sbGJhcl90b3BPdmVyZmxvdyB7XG4gICAgICAgICAgICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCB0cmFuc3BhcmVudCwgYmxhY2sgMTZweCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0luZGljYXRvclNjcm9sbGJhcl9ib3R0b21PdmVyZmxvdyB7XG4gICAgICAgICAgICBtYXNrLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgdG8gdG9wLFxuICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50LFxuICAgICAgICAgICAgICAgIHJnYigyNTUsIDI1NSwgMjU1LCAzMCUpIDRweCxcbiAgICAgICAgICAgICAgICByZ2IoMjU1LCAyNTUsIDI1NSwgNTUlKSA4cHgsXG4gICAgICAgICAgICAgICAgcmdiKDI1NSwgMjU1LCAyNTUsIDc1JSkgMTJweCxcbiAgICAgICAgICAgICAgICBibGFjayAxNnB4XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9JbmRpY2F0b3JTY3JvbGxiYXJfdG9wT3ZlcmZsb3cubXhfSW5kaWNhdG9yU2Nyb2xsYmFyX2JvdHRvbU92ZXJmbG93IHtcbiAgICAgICAgICAgIC8qIFRoaXMgc3RhY2tzIHR3byBncmFkaWVudHMgb24gdG9wIG9mIG9uZSBhbm90aGVyLCB3aGljaCBsZXRzIHVzXG4gICAgICAgICAgICAgICBoYXZlIGEgZml4ZWQgcGl4ZWwgb2Zmc2V0IGZyb20gYm90aCB0b3AgYW5kIGJvdHRvbSBmb3IgdGhlIGNvbG91ciBzdG9wcy5cbiAgICAgICAgICAgICAgIE5vdGUgdGhlIHRvcCBmYWRlIGlzIG11Y2ggc21hbGxlciBiZWNhdXNlIHRoZSBzcGFjZXMgc3RhcnQgY2xvc2UgdG8gdGhlIHRvcCxcbiAgICAgICAgICAgICAgIHNvIG90aGVyd2lzZSBhIGxhcmdlIGdyYWRpZW50IHN1ZGRlbmx5IGFwcGVhcnMgd2hlbiB5b3Ugc2Nyb2xsIGRvd24uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIG1hc2staW1hZ2U6XG4gICAgICAgICAgICAgICAgbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgdHJhbnNwYXJlbnQsIGJsYWNrIDE2cHgpLFxuICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAgICAgdG8gdG9wLFxuICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCxcbiAgICAgICAgICAgICAgICAgICAgcmdiKDI1NSwgMjU1LCAyNTUsIDMwJSkgNHB4LFxuICAgICAgICAgICAgICAgICAgICByZ2IoMjU1LCAyNTUsIDI1NSwgNTUlKSA4cHgsXG4gICAgICAgICAgICAgICAgICAgIHJnYigyNTUsIDI1NSwgMjU1LCA3NSUpIDEycHgsXG4gICAgICAgICAgICAgICAgICAgIGJsYWNrIDE2cHhcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgbWFzay1wb3NpdGlvbjpcbiAgICAgICAgICAgICAgICAwJSAwJSxcbiAgICAgICAgICAgICAgICAwJSAxMDAlO1xuICAgICAgICAgICAgbWFzay1zaXplOlxuICAgICAgICAgICAgICAgIGNhbGMoMTAwJSAtIDEwcHgpIDUwJSxcbiAgICAgICAgICAgICAgICBjYWxjKDEwMCUgLSAxMHB4KSA1MCU7XG4gICAgICAgICAgICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfU3BhY2VQYW5lbF9jb250ZXh0TWVudSB7XG4gICAgbWF4LXdpZHRoOiAzNjBweDtcblxuICAgIC5teF9TcGFjZVBhbmVsX2NvbnRleHRNZW51X2hlYWRlciB7XG4gICAgICAgIG1hcmdpbjogMTJweCAxNnB4IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAubXhfU3BhY2VQYW5lbF9jb250ZXh0TWVudV9zZXBhcmF0b3JMYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxufVxuXG4ubXhfU3BhY2VQYW5lbF9zaGFyZVB1YmxpY1NwYWNlIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5teF9TcGFjZVBhbmVsX1Rvb2x0aXBfS2V5Ym9hcmRTaG9ydGN1dCB7XG4gICAga2JkIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNSBFbGVtZW50IENyZWF0aW9ucyBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcGFjZVBpbGxCdXR0b24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAxNnB4IDMycHggMTZweCA3MnB4O1xuICAgIHdpZHRoOiA0MzJweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTdweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBtYXJnaW46IDIwcHggMDtcblxuICAgID4gZGl2IHtcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgc3ZnIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICBsZWZ0OiAyMnB4O1xuICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgIH1cblxuICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3BhY2VSb29tVmlldyB7XG4gICAgLS1pbm5lcldpZHRoOiA0MjhweDtcblxuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgZmxleDogMTtcblxuICAgIC5teF9NYWluU3BsaXQgPiBkaXY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nOiA4MHB4IDYwcHg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgICAgICBoMSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTI0cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NwYWNlUm9vbVZpZXdfZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1pbm5lcldpZHRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2Uge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1pbm5lcldpZHRoKTtcblxuICAgICAgICAgICAgLm14X0FkZEV4aXN0aW5nVG9TcGFjZV9jb250ZW50IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAzNjBweCk7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VSb29tVmlld19idXR0b25zIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNDRweDtcbiAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1pbm5lcldpZHRoKTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyAvKiBidXR0b24gYWxpZ25tZW50IHJpZ2h0ICovXG5cbiAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2hhc0tpbmQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDhweCAyMnB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbnB1dC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7IC8qIG92ZXJyaWRlIGRlZmF1bHQgc3R5bGVzICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRmllbGQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1pbm5lcldpZHRoKTtcblxuICAgICAgICAgICAgJiArIC5teF9GaWVsZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMjhweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2Vycm9yVGV4dCB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlUm9vbVZpZXdfbGFuZGluZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1pbi13aWR0aDogMDtcblxuICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX2hlYWRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgICAgICAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDgwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX25hbWUge1xuICAgICAgICAgICAgbWFyZ2luOiAyNHB4IDAgMTZweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgID4gc3BhbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWZsb3c6IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBnYXA6IDEycHggMDtcblxuICAgICAgICAgICAgICAgIGgxIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX2ludml0ZXIge1xuICAgICAgICAgICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NwYWNlUm9vbVZpZXdfbGFuZGluZ19pbmZvQmFyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG5cbiAgICAgICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2xhbmRpbmdfaW5mb0Jhcl9pbnRlcmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBnYXA6IDEycHggMTJweDtcblxuICAgICAgICAgICAgICAgIC5teF9GYWNlUGlsZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICAvKiBGb3IgZW5oYW5jZWQgdmlzaWJpbGl0eSB1bmRlciBjb250cmFzdCBjb250cm9sICovXG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX2ludml0ZUJ1dHRvbixcbiAgICAgICAgICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX3NldHRpbmdzQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX2ludml0ZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDRweCAxOHB4IDRweCA0MHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IG1pbi1jb250ZW50O1xuXG4gICAgICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiA4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1vbi1zb2xpZC1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2xhbmRpbmdfc2V0dGluZ3NCdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuXG4gICAgICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BhY2VSb29tVmlld19sYW5kaW5nX3RvcGljIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NlYXJjaEJveCB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAyMHB4O1xuICAgICAgICAgICAgZmxleDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TcGFjZVJvb21WaWV3X2ludml0ZVRlYW1tYXRlcyB7XG4gICAgICAgIC5teF9TcGFjZVJvb21WaWV3X2ludml0ZVRlYW1tYXRlc19idXR0b25zIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyOHB4O1xuXG4gICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7IC8qIHRvIGNlbnRlciBpY29ucyAqL1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiArIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDMycHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NwbGFzaFBhZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOlxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgIDUzLjg1JSA2Ni43NSUgYXQgODcuNTUlIDAlLFxuICAgICAgICAgICAgICAgIGhzbCgyNTBkZWcsIDc2JSwgNzElLCAwLjI2MSkgMCUsXG4gICAgICAgICAgICAgICAgaHNsKDI1MGRlZywgMTAwJSwgODglLCAwKSAxMDAlXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgcmFkaWFsLWdyYWRpZW50KDQxLjkzJSA0MS45MyUgYXQgMCUgMCUsIGhzbCgyMjJkZWcsIDI5JSwgMjAlLCAwLjI4KSAwJSwgaHNsKDI1MGRlZywgMTAwJSwgODglLCAwKSAxMDAlKSxcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudCgxMDAlIDEwMCUgYXQgMCUgMCUsIGhzbCgyNTBkZWcsIDEwMCUsIDg4JSwgMC4xNzQpIDAlLCBoc2woMGRlZywgMTAwJSwgODYlLCAwKSAxMDAlKSxcbiAgICAgICAgICAgIHJhZGlhbC1ncmFkaWVudCgxMDYuMzUlIDk2LjI2JSBhdCAxMDAlIDAlLCBoc2woMjUwZGVnLCAxMDAlLCA4OCUsIDAuNCkgMCUsIGhzbCgxNjdkZWcsIDc2JSwgODIlLCAwKSAxMDAlKTtcbiAgICAgICAgLyogYmx1ciB0byByZWR1Y2UgY29sb3IgYmFuZGluZyBpc3N1ZXMgZHVlIHRvIGFscGhhLWJsZW5kaW5nIG11bHRpcGxlIGdyYWRpZW50cyAqL1xuICAgICAgICBmaWx0ZXI6IGJsdXIoOHB4KTtcbiAgICAgICAgaW5zZXQ6IC05cHg7XG4gICAgICAgIG1hc2s6XG4gICAgICAgICAgICAvKiBtYXNrIHRvIGRpdGhlciByZXN1bHRpbmcgY29tYmluZWQgZ3JhZGllbnQgKi9cbiAgICAgICAgICAgIHVybChcIi9yZXMvaW1nL25vaXNlLnBuZ1wiKSxcbiAgICAgICAgICAgIC8qIGdyYWRpZW50IHRvIGFwcGx5IGRpZmZlcmVudCBhbW91bnRzIG9mIGRpdGhlcmluZyB0byBkaWZmZXJlbnQgcGFydHMgb2YgdGhlIGdyYWRpZW50ICovXG4gICAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgdG8gYm90dG9tLFxuICAgICAgICAgICAgICAgIC8qIDEwJSBkaXRoZXJpbmcgYXQgdGhlIHRvcCAqLyByZ2IoMCwgMCwgMCwgMC45KSAyMCUsXG4gICAgICAgICAgICAgICAgLyogODAlIGRpdGhlcmluZyBhdCB0aGUgYm90dG9tICovIHJnYigwLCAwLCAwLCAwLjIpIDEwMCVcbiAgICAgICAgICAgICk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE5IE5ldyBWZWN0b3IgTHRkXG5Db3B5cmlnaHQgMjAxNyBUcmF2aXMgUmFsc3RvblxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVGFiYmVkVmlldyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMCAwIHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGluc2V0OiAwO1xuICAgIG1hcmdpbi10b3A6IDhweDtcbn1cblxuLm14X1RhYmJlZFZpZXdfdGFic09uTGVmdCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbHMge1xuICAgICAgICB3aWR0aDogMjIwcHg7XG4gICAgICAgIG1heC13aWR0aDogMjIwcHg7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgbWFyZ2luOiAwOyAvKiBSZW1vdmUgdGhlIGRlZmF1bHQgdmFsdWUgKi9cbiAgICAgICAgcGFkZGluZzogMDsgLyogUmVtb3ZlIHRoZSBkZWZhdWx0IHZhbHVlICovXG4gICAgfVxuXG4gICAgLm14X1RhYmJlZFZpZXdfdGFiUGFuZWwge1xuICAgICAgICBtYXJnaW4tbGVmdDogMjgwcHg7IC8qIDIyMHB4IHNpZGViYXIgKyA2MHB4IHBhZGRpbmcgKi9cbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbDpob3ZlcixcbiAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbF9hY3RpdmUge1xuICAgICAgICBjb2xvcjogJHRhYi1sYWJlbC1hY3RpdmUtZmctY29sb3I7XG4gICAgfVxuXG4gICAgLm14X1RhYmJlZFZpZXdfdGFiTGFiZWxfYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1zZWNvbmRhcnkpO1xuICAgICAgICAvKiBGb3IgZW5oYW5jZWQgdmlzaWJpbGl0eSB1bmRlciBjb250cmFzdCBjb250cm9sICovXG4gICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG59XG5cbi5teF9UYWJiZWRWaWV3X3RhYnNPblRvcCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIC5teF9UYWJiZWRWaWV3X3RhYkxhYmVscyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICB9XG5cbiAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMHB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1MnB4O1xuXG4gICAgICAgIC5teF9UYWJiZWRWaWV3X3RhYkxhYmVsX3RleHQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1RhYmJlZFZpZXdfdGFiUGFuZWwge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIH1cblxuICAgIC5teF9UYWJiZWRWaWV3X3RhYkxhYmVsX2FjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbF90ZXh0IHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfVGFiYmVkVmlld190YWJMYWJlbHMge1xuICAgIGNvbG9yOiAkdGFiLWxhYmVsLWZnLWNvbG9yO1xufVxuXG4ubXhfVGFiYmVkVmlld190YWJMYWJlbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcGFkZGluZy1ibG9jazogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLWJsb2NrLXNpemU6IDQwcHg7XG4gICAgbWluLWlubGluZS1zaXplOiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1tZWRpdW0pO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgICBjb2xvciAwLjFzLFxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDAuMXM7XG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgfVxufVxuXG4ubXhfVGFiYmVkVmlld190YWJMYWJlbF90ZXh0IHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubXhfVGFiYmVkVmlld190YWJQYW5lbCB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWluLWhlaWdodDogMDsgLyogZmlyZWZveCAqL1xufVxuXG4ubXhfVGFiYmVkVmlld190YWJQYW5lbENvbnRlbnQge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBtaW4taGVpZ2h0OiAwOyAvKiBmaXJlZm94ICovXG59XG5cbi8qIEhpZGUgdGhlIGxhYmVscyBvbiB0YWJzLCBzaG93aW5nIG9ubHkgdGhlIGljb25zLCBvbiBuYXJyb3cgdmlld3BvcnRzLiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkge1xuICAgIC5teF9UYWJiZWRWaWV3X3RhYnNPbkxlZnQubXhfVGFiYmVkVmlld19yZXNwb25zaXZlIHtcbiAgICAgICAgLm14X1RhYmJlZFZpZXdfdGFiTGFiZWxfdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC5teF9UYWJiZWRWaWV3X3RhYlBhbmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA3MnB4OyAvKiA0MHB4IHNpZGViYXIgKyAzMnB4IHBhZGRpbmcgKi9cbiAgICAgICAgfVxuICAgICAgICAubXhfVGFiYmVkVmlld190YWJMYWJlbHMge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgLm14X1RhYmJlZFZpZXdfdGFiTGFiZWwge1xuICAgICAgICAgICAgcGFkZGluZy1pbmxpbmU6IDAgMDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKiBDb3B5cmlnaHQgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfVGhyZWFkc0FjdGl2aXR5Q2VudHJlX2NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLm14X1RocmVhZHNBY3Rpdml0eUNlbnRyZUJ1dHRvbiB7XG4gICAgLyogIWltcG9ydGFudCBvdmVycmlkZSBjb21wb3VuZCAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDhweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMThweCBhdXRvIGF1dG8gYXV0bztcblxuICAgICYuZXhwYW5kZWQge1xuICAgICAgICAvKipcbiAgICAgICAgICogb3ZlcnJpZGUgY29tcG91bmQgZGVmYXVsdCBiYWNrZ3JvdW5kIGNvbG9yIHdoZW4gaG92ZXJlZFxuICAgICAgICAgKiBzaG91bGQgZGlzYXBwZWFyIHdoZW4gdGhlIHNwYWNlIHBhbmVsIHdpbGwgYmUgbWlncmF0ZWQgdG8gY29tcG91bmRcbiAgICAgICAgICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgLyogYWxpZ24gd2l0aCBzZXR0aW5ncyBpY29uICovXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyMXB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIG1vZGlmeSBpbnRlcm5hbCBjc3Mgb2YgdGhlIGNvbXBvdW5kIGNvbXBvbmVudFxuICAgICAgICAgKiBkaXJ0eSBidXQgd2UgbmVlZCB0byBhZGQgdGhlIGBUaHJlYWRzYCBsYWJlbCBpbnRvIHRoZSBpbmRpY2F0b3IgaWNvbiBidXR0b25cbiAgICAgICAgICoqL1xuICAgICAgICAmID4gZGl2IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGlubGluZS1zaXplOiA4cHg7XG4gICAgICAgICAgICAgICAgYmxvY2stc2l6ZTogOHB4O1xuICAgICAgICAgICAgICAgIGxlZnQ6IDE3cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmIC5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVCdXR0b25fSWNvbiB7XG4gICAgICAgICAgICAvKiBhbGlnbiB3aXRoIHNldHRpbmdzIGxhYmVsICovXG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDE0cHg7XG4gICAgICAgICAgICAvKiByZXF1aXJlZCB0byBzZXQgdGhlIGljb24gd2lkdGggd2hlbiBpbnRvIGEgZmxleCBjb250YWluZXIgKi9cbiAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmIC5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVCdXR0b25fVGV4dCB7XG4gICAgICAgICAgICAvKiAhaW1wb3J0YW50IG92ZXJyaWRlIGNvbXBvdW5kICAqL1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLmV4cGFuZGVkKSB7XG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6aG92ZXIgLm14X1RocmVhZHNBY3Rpdml0eUNlbnRyZUJ1dHRvbl9JY29uIHtcbiAgICAgICAgICAgIC8qICFpbXBvcnRhbnQgb3ZlcnJpZGUgY29tcG91bmQgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGZpbGw6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmIC5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVCdXR0b25fSWNvbiB7XG4gICAgICAgIGZpbGw6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG59XG5cbi5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVfcm93cyB7XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIC8qIExldCBzb21lIHNwYWNlIGF0IHRoZSB0b3AgYW5kIHRoZSBib3R0b20gb2YgdGhlIHBvcC11cCAqL1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAyMDBweCk7XG5cbiAgICAubXhfVGhyZWFkc0FjdGl2aXR5Q2VudHJlUm93IHtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuXG4gICAgICAgIC8qIE1ha2UgdGhlIGxhYmVsIG9mIHRoZSBNZW51SXRlbSBzdGF5IG9uIG9uZSBsaW5lIGFuZCB0cnVuY2F0ZSB3aXRoIGVsbGlwc2lzIGlmIG5lZWRlZCAqL1xuICAgICAgICAmID4gc3BhbiB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgLyogQXJiaXRyYXJ5IHNpemUsIGtlZXAgdGhlIFRBQyBhcyB0aGUgd2FudGVkIHdpZHRoICovXG4gICAgICAgICAgICB3aWR0aDogMjAycHg7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBIaWRlIHRoZSBub3RpZmljYXRpb24gYmFkZ2Ugb24gaG92ZXIg4oCUIGNvbXBvdW5kJ3MgYG5hdi1oaW50IH4gKmAgcnVsZSB3b3VsZCBub3JtYWxseVxuICAgICAgICAgKiBkbyB0aGlzLCBidXQgdGhlIGFwcC13ZWIgQ1NTIGxheWVyIG92ZXJyaWRlcyBjb21wb3VuZC13ZWIgcmVnYXJkbGVzcyBvZiBzcGVjaWZpY2l0eS4gKi9cbiAgICAgICAgJjpob3ZlciAubXhfVGhyZWFkc0FjdGl2aXR5Q2VudHJlX25vdGlmaWNhdGlvbkJhZGdlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9UaHJlYWRzQWN0aXZpdHlDZW50cmVfZW1wdHlDYXB0aW9uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgcGFkZGluZy1yaWdodDogMTZweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjYgRWxlbWVudCBDcmVhdGlvbnMgTHRkLlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOS0yMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Ub2FzdENvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTJweDtcbiAgICBsZWZ0OiA2MnB4O1xuICAgIHotaW5kZXg6IDEwMTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogMWZyIDI4cHggOHB4O1xuXG4gICAgJi5teF9Ub2FzdENvbnRhaW5lcl9zdGFja2VkOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBtYXJnaW46IDAgdmFyKC0tY3BkLXNwYWNlLTEtNXgpO1xuICAgICAgICBncmlkLXJvdzogMiAvIC0xO1xuICAgICAgICBncmlkLWNvbHVtbjogMTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHN5c3RlbTtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IDRweCAyMHB4IHJnYigwLCAwLCAwLCAwLjUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIH1cblxuICAgIC5teF9Ub2FzdF90b2FzdCB7XG4gICAgICAgIGdyaWQtcm93OiAxIC8gMztcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBib3gtc2hhZG93OiAwcHggNHB4IDI0cHggcmdiKDAsIDAsIDAsIDAuMSk7XG4gICAgICAgIGJvcmRlcjogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjBweCAxZnIgYXV0bztcbiAgICAgICAgY29sdW1uLWdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgcm93LWdhcDogNHB4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWNwZC1zcGFjZS01eCkgLSB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTEpKTtcblxuICAgICAgICAmLm14X1RvYXN0X2hhc0ljb24ge1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Ub2FzdF90aXRsZSB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Ub2FzdF9jbG9zZWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJjpub3QoLm14X1RvYXN0X2hhc0ljb24pIC5teF9Ub2FzdF90aXRsZSB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RvYXN0X3RpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgY29sdW1uLWdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICAgICAgaDIge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LWxnLXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVG9hc3RfYm9keSB7XG4gICAgICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgICAgICAgZ3JpZC1yb3c6IDI7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVG9hc3RfYnV0dG9ucyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDk2cHg7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Ub2FzdF9kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDI3MnB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMXgpIDAgMTFweCAwO1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Ub2FzdF9kZXZpY2VJRCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1VwbG9hZEJhciB7XG4gICAgLyogbGluZSB1cCB3aXRoIHRoZSBzaGllbGQgYXJlYSBpbiB0aGUgY29tcG9zZXIgKi9cbiAgICBwYWRkaW5nOiA1cHggMjFweCAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAgICAgXCJpY29uICAgICBmaWxlbmFtZSBjYW5jZWxcIiBhdXRvXG4gICAgICAgIFwicHJvZ3Jlc3MgcHJvZ3Jlc3MgcHJvZ3Jlc3NcIiBhdXRvXG4gICAgICAgIC8gbWluLWNvbnRlbnQgYXV0byBtaW4tY29udGVudDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xLTV4KTtcblxuICAgICYgPiBzdmcge1xuICAgICAgICBncmlkLWFyZWE6IGljb247XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgd2lkdGg6IDE4cHg7XG4gICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubXhfVXBsb2FkQmFyX2ZpbGVuYW1lIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBmaWxlbmFtZTtcbiAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgLm14X1VwbG9hZEJhcl9jYW5jZWwge1xuICAgICAgICBncmlkLWFyZWE6IGNhbmNlbDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIH1cblxuICAgIC5teF9Qcm9ncmVzc0JhciB7XG4gICAgICAgIGdyaWQtYXJlYTogcHJvZ3Jlc3M7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLm14X1RocmVhZFZpZXcge1xuICAgIC5teF9VcGxvYWRCYXIge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1ZpZXdTb3VyY2Uge1xuICAgIHByZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgcGFkZGluZzogMC41ZW0gMWVtO1xuICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICAgICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG4gICAgfVxuXG4gICAgLm14X1ZpZXdTb3VyY2VfaGVhZGVyIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuXG4gICAgICAgIC5teF9Db3B5YWJsZVRleHQge1xuICAgICAgICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1ZpZXdTb3VyY2VfaGVhZGluZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTdweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgfVxuXG4gICAgLm14X1ZpZXdTb3VyY2VfZGV0YWlscyB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgfVxuXG4gICAgLm14X0NvcHlhYmxlVGV4dF9ib3JkZXIge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ29tcGxldGVTZWN1cml0eV9oZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm14X0UyRUljb24ubXhfQ29tcGxldGVTZWN1cml0eV9oZWFkZXJJY29uIHtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubXhfRTJFSWNvbi5teF9Db21wbGV0ZVNlY3VyaXR5X2hlcm9JY29uIHtcbiAgICB3aWR0aDogMTI4cHg7XG4gICAgaGVpZ2h0OiAxMjhweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbn1cblxuLm14X0NvbXBsZXRlU2VjdXJpdHlfc2tpcCB7XG4gICAgQG1peGluIGN1c3RvbWlzZWRDYW5jZWxCdXR0b247XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAyNHB4O1xufVxuXG4ubXhfQ29tcGxldGVTZWN1cml0eV9ib2R5IHtcbiAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG59XG5cbi5teF9Db21wbGV0ZVNlY3VyaXR5X3dhaXRpbmcge1xuICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbn1cblxuLm14X0NvbXBsZXRlU2VjdXJpdHlfYWN0aW9uUm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgbWFyZ2luLXRvcDogJGZvbnQtMjhweDtcblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogMThweDtcblxuICAgICAgICAmLndhcm5pbmcge1xuICAgICAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5LTIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NvbmZpcm1TZXNzaW9uTG9ja1RoZWZ0VmlldyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm14X0NvbmZpcm1TZXNzaW9uTG9ja1RoZWZ0Vmlld19ib2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTG9naW5fc3VibWl0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5cbi5teF9Mb2dpbl9sb2FkZXIge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAycHg7XG4gICAgbGVmdDogOHB4O1xufVxuXG4ubXhfTG9naW5fbG9hZGVyIC5teF9TcGlubmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG59XG5cbi5teF9Mb2dpbl9sb2FkZXIgLm14X1NwaW5uZXIgaW1nIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG59XG5cbi5teF9Mb2dpbl9lcnJvciB7XG4gICAgY29sb3I6ICRhbGVydDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuXG4ubXhfTG9naW5fZXJyb3IubXhfTG9naW5fc2VydmVyRXJyb3Ige1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLm14X0xvZ2luX2Vycm9yLm14X0xvZ2luX3NlcnZlckVycm9yLm14X0xvZ2luX3NlcnZlckVycm9yTm9uRmF0YWwge1xuICAgIGNvbG9yOiAjZmY4ZDEzOyAvKiBPbmx5IHVzZWQgaGVyZSAqL1xufVxuXG4ubXhfTG9naW5fdHlwZV9jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjb2xvcjogJGF1dGhwYWdlLXByaW1hcnktY29sb3I7XG5cbiAgICAubXhfRmllbGQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufVxuXG4ubXhfTG9naW5fdHlwZV9sYWJlbCB7XG4gICAgZmxleDogMTtcbn1cblxuLm14X0xvZ2luX3VuZGVybGluZWRTZXJ2ZXJOYW1lIHtcbiAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRhc2hlZCAkYWNjZW50O1xufVxuXG5kaXYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmsubXhfTG9naW5fZm9yZ290IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAyNHB4O1xuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2Rpc2FibGVkIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG59XG5cbi5teF9Mb2dpbl9zcGlubmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDE0cHg7XG59XG5cbi5teF9Mb2dpbl9mdWxsV2lkdGhCdXR0b24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNS0yMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Mb2dpblNwbGFzaFZpZXdfbWlncmF0aW9uUHJvZ3Jlc3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgLm14X1Byb2dyZXNzQmFyIHtcbiAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgIHdpZHRoOiA2MDBweDtcblxuICAgICAgICBAbWl4aW4gUHJvZ3Jlc3NCYXJCb3JkZXJSYWRpdXMgOHB4O1xuICAgIH1cbn1cblxuLm14X0xvZ2luU3BsYXNoVmlld19zcGxhc2hCdXR0b25zIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMzBweDtcbn1cblxuLm14X0xvZ2luU3BsYXNoVmlld19zeW5jRXJyb3Ige1xuICAgIGNvbG9yOiAkYWNjZW50LWZnLWNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZjJhOGI7IC8qIE9ubHkgdXNlZCBoZXJlICovXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwcHg7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01vYmlsZVJlZ2lzdGVyX2JvZHkge1xuICAgIHBhZGRpbmc6IDMycHg7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUmVnaXN0ZXJfbWFpbkNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWluLWhlaWdodDogMjcwcHg7XG5cbiAgICBwIHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAgICAgY29sb3I6ICRhdXRocGFnZS1wcmltYXJ5LWNvbG9yO1xuXG4gICAgICAgICYuc2Vjb25kYXJ5IHtcbiAgICAgICAgICAgIGNvbG9yOiAkYXV0aHBhZ2Utc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiBpbWc6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0xvZ2luX3N1Ym1pdCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxufVxuXG4vKiBNZWRpdW0gcmF0aGVyIHRoYW4gdGhlIGJvbGQgZXZlcnkgb3RoZXIgYXV0aCBlcnJvciB1c2VzOiB0aGlzIG9uZSBzaXRzIGRpcmVjdGx5IGFib3ZlIHRoZSBidXR0b24gaXRcbiAgIGlzIGRpc2FibGluZywgYW5kIGRvZXMgbm90IG5lZWQgdG8gc2hvdXQgb3ZlciBpdC4gU2NvcGVkIHNvIHRoZSBsb2dpbiBlcnJvcnMga2VlcCB0aGVpciB3ZWlnaHQuICovXG4ubXhfTG9naW5fZXJyb3IubXhfUmVnaXN0cmF0aW9uX3JhdGVMaW1pdEVycm9yIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XG59XG5cbi5teF9SZWdpc3Rlcl9mb290ZXJBY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHBhZGRpbmctdG9wOiAxNnB4O1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYigxNDEsIDE1MSwgMTY1LCAwLjIpO1xuXG4gICAgPiAqIHtcbiAgICAgICAgZmxleC1iYXNpczogY29udGVudDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2Vzc2lvbkxvY2tTdG9sZW5WaWV3IHtcbiAgICBoMSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTMycHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0yNHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NldHVwRW5jcnlwdGlvbkJvZHkge1xuICAgIHdpZHRoOiA2MDBweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgKEMpIDIwMjYgTWV0TWV0XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9HdWVzdE9uYm9hcmRpbmcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5teF9HdWVzdE9uYm9hcmRpbmdfY2FyZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1heC13aWR0aDogMzYwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5teF9HdWVzdE9uYm9hcmRpbmdfbG9nbyB7XG4gICAgd2lkdGg6IDg4cHg7XG4gICAgaGVpZ2h0OiA4OHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5cbi5teF9HdWVzdE9uYm9hcmRpbmdfdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMWExYTFhO1xuICAgIG1hcmdpbjogMCAwIDhweCAwO1xufVxuXG4ubXhfR3Vlc3RPbmJvYXJkaW5nX2Rlc2NyaXB0aW9uIHtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgY29sb3I6ICM2ZjZmNmY7XG4gICAgbWFyZ2luOiAwIDAgMjhweCAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5cbi5teF9HdWVzdE9uYm9hcmRpbmdfYWN0aW9ucyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbn1cblxuLm14X0d1ZXN0T25ib2FyZGluZ19wcmltYXJ5QnV0dG9uIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxNHB4IDI0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZXRtZXQtYnJhbmQtcHJpbWFyeSk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfR3Vlc3RPbmJvYXJkaW5nX3ByaW1hcnlCdXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1ldG1ldC1icmFuZC1zZWNvbmRhcnkpO1xufVxuXG4ubXhfR3Vlc3RPbmJvYXJkaW5nX3NraXAge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6ICM5YTlhOWE7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLm14X0d1ZXN0T25ib2FyZGluZ19mYWxsYmFjayB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGNvbG9yOiAjNDQ0O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5teF9HdWVzdE9uYm9hcmRpbmdPdmVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgaW5zZXQ6IDA7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAgMCAwIC8gNTUlKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIHBhZGRpbmctYm90dG9tOiAxNXZoO1xuICAgIHotaW5kZXg6IDUwMDA7XG59XG5cbi5teF9HdWVzdE9uYm9hcmRpbmdPdmVybGF5X3RleHQge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubXhfR3Vlc3RPbmJvYXJkaW5nT3ZlcmxheV9hcnJvdyB7XG4gICAgZm9udC1zaXplOiA0MHB4O1xuICAgIGFuaW1hdGlvbjogbXhfR3Vlc3RPbmJvYXJkaW5nT3ZlcmxheV9ib3VuY2UgMXMgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgbXhfR3Vlc3RPbmJvYXJkaW5nT3ZlcmxheV9ib3VuY2Uge1xuICAgIDAlLFxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgfVxuXG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpO1xuICAgIH1cbn1cblxuLm14X0d1ZXN0Q29ubmVjdGluZ19zcGlubmVyIHtcbiAgICB3aWR0aDogMzJweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgYm9yZGVyOiAzcHggc29saWQgdmFyKC0tbWV0bWV0LWJyYW5kLXNlY29uZGFyeSk7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tbWV0bWV0LWJyYW5kLXByaW1hcnkpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBhbmltYXRpb246IG14X0d1ZXN0Q29ubmVjdGluZ19zcGluIDAuOHMgbGluZWFyIGluZmluaXRlO1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG59XG5cbkBrZXlmcmFtZXMgbXhfR3Vlc3RDb25uZWN0aW5nX3NwaW4ge1xuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSwgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKiBEZXYgbm90ZTogdGhlcmUncyBubyBhY3R1YWwgY29tcG9uZW50IGNhbGxlZCA8UGxheWJhY2tDb250YWluZXIgLz4uIFRoZXNlIGNsYXNzZXMgKi9cbi8qIGFyZSBzaGFyZWQgYW1vbmdzdCBtdWx0aXBsZSB2b2ljZSBtZXNzYWdlIGNvbXBvbmVudHMuICovXG5cbi8qIENvbnRhaW5lciBmb3IgbGl2ZSByZWNvcmRpbmcgYW5kIHBsYXliYWNrIGNvbnRyb2xzICovXG4ubXhfVm9pY2VNZXNzYWdlUHJpbWFyeUNvbnRhaW5lciB7XG4gICAgLyogTWF0Y2ggbXhfTWVkaWFCb2R5IHNwYWNpbmcsIG9mZnNldHRpbmcgdGhlIHdhdmVmb3JtJ3MgMXB4IGludGVybmFsIHJpZ2h0IHBhZGRpbmcuICovXG4gICAgcGFkZGluZzogNnB4IDExcHggNnB4IDEycHg7XG5cbiAgICAvKiBDaGVhdCBhdCBhbGlnbm1lbnQgYSBiaXQgKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBjb250YWluOiBjb250ZW50O1xuXG4gICAgLm14X1dhdmVmb3JtLFxuICAgIC5teF9SZWNvcmRpbmdQbGF5YmFja190aW1lbGluZUxheW91dE1pZGRsZSB7XG4gICAgICAgIG1pbi13aWR0aDogMDsgLyogUHJldmVudCBhIGJsb3dvdXQgKi9cbiAgICB9XG5cbiAgICAvKiBXYXZlZm9ybXMgYXJlIHByZXNlbnQgaW4gbGl2ZSByZWNvcmRpbmcgb25seSAqL1xuICAgIC5teF9XYXZlZm9ybSB7XG4gICAgICAgIC8qIGRlZmF1bHQsIG92ZXJyaWRkZW4gaW4gSlMgKi9cbiAgICAgICAgLS1iYXJIZWlnaHQ6IDE7XG4gICAgICAgIC5teF9XYXZlZm9ybV9iYXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF1YXRlcm5hcnktY29udGVudDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVZKG1heCgwLjA1LCB2YXIoLS1iYXJIZWlnaHQpKSk7XG5cbiAgICAgICAgICAgICYubXhfV2F2ZWZvcm1fYmFyXzEwMHBjdCB7XG4gICAgICAgICAgICAgICAgLyogU21hbGwgYW5pbWF0aW9uIHRvIHJlbW92ZSB0aGUgbWVjaGFuaWNhbCBmZWVsIG9mIHByb2dyZXNzICovXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAyNTBtcyBlYXNlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9DbG9jayB7XG4gICAgICAgIHdpZHRoOiAkZm9udC00MnB4OyAvKiB3ZSdyZSBub3QgdXNpbmcgYSBtb25vc3BhY2UgZm9udCwgc28gZmFrZSBpdCAqL1xuICAgICAgICBtaW4td2lkdGg6ICRmb250LTQycHg7IC8qIGZvcmNlIHNlbnNpYmxlIGxheW91dHMgaW4gYXdrd2FyZCBmbGV4Ym94ZXMgKGZpbGUgcGFuZWwsIGZvciBleGFtcGxlKSAqL1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7IC8qIHdpdGggdGhlIGZpeGVkIHdpZHRoIHRoaXMgZW5kcyB1cCBhcyBhIHZpc3VhbCA4cHggbW9zdCBvZiB0aGUgdGltZSwgYXMgaW50ZW5kZWQuICovXG4gICAgICAgIHBhZGRpbmctbGVmdDogOHB4OyAvKiBpc29sYXRlIGZyb20gcmVjb3JkaW5nIGNpcmNsZSAvIHBsYXkgY29udHJvbCAqL1xuICAgIH1cblxuICAgIC5teF9SZWNvcmRpbmdQbGF5YmFja190aW1lbGluZUxheW91dE1pZGRsZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgaGVpZ2h0OiAzMHB4OyAvKiBzYW1lIGhlaWdodCBhcyBteF9XYXZlZm9ybSwgbmVlZGVkIGZvciBhdXRvbWF0aWMgdmVydGljYWwgY2VudGVyaW5nICovXG5cbiAgICAgICAgLm14X1dhdmVmb3JtIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU2Vla0JhciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgdG9wOiAtMnB4OyAvKiB2aXN1YWxseSB2ZXJ0aWNhbGx5IGNlbnRlcmVkICovXG5cbiAgICAgICAgICAgIC8qIEhpZGUgdGhlIGhhaXJsaW5lIHByb2dyZXNzIGJhciBzaW5jZSB3ZSdyZSBhdCAxMDAlIGhlaWdodC4gTmVlZCB0byBoYXZlIGRpc3RpbmN0IHJ1bGVzICovXG4gICAgICAgICAgICAvKiBiZWNhdXNlIENTUyBpcyB3ZWlyZC4gKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOjotbW96LXJhbmdlLXByb2dyZXNzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBNYWtlIHRoZSB0aHVtYiBlYXNpZXIgdG8gc2VlLiBMaWtlIHRoZSBTZWVrQmFyIG9yaWdpbmFsIHN0eWxlcywgdGhlc2UgbmVlZCB0byBiZSAqL1xuICAgICAgICAgICAgLyogZGlzdGluY3QuIFdlIG1ha2UgaXQgdHJhbnNwYXJlbnQgc28gaXQgZG9lc24ndCBzaG93IHVwIG9uIHRoZSBVSSwgYnV0IGFsc28gbGFyZ2VyICovXG4gICAgICAgICAgICAvKiBzbyBpdCdzIGVhc2llciB0byBncmFiIGJ5IG1vdXNlIHVzZXJzIGluIHNvbWUgYnJvd3NlcnMuIE1vc3QgYnJvd3NlcnMgbGV0IHRoZSB1c2VyICovXG4gICAgICAgICAgICAvKiBtb3ZlIGFuZCBkcmFnIHRoZSB0aHVtYiByZWdhcmRsZXNzIG9mIGhpdHRpbmcgdGhlIHRodW1iLCBob3dldmVyLiAqL1xuICAgICAgICAgICAgJjo6LXdlYmtpdC1zbGlkZXItdGh1bWIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6Oi1tb3otcmFuZ2UtdGh1bWIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIEZvciB0aW1lbGluZS1yZW5kZXJlZCBwbGF5YmFjaywgdGhlIGNsb2NrIGlzIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSB3YXZlZm9ybS4gKi9cbiAgICAgICAgJiArIC5teF9DbG9jayB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICAgICAgICAgLyogVGFrZSB0aGUgcGFkZGluZyBvZmYgdGhlIGNsb2NrIGJlY2F1c2UgaXQncyBhY2NvdW50ZWQgZm9yIGJ5IHRoZSBgdGltZWxpbmVMYXlvdXRNaWRkbGVgICovXG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyogQ1NTIGluc3BpcmF0aW9uIGZyb206ICovXG4vKiAqIGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaG93dG8vaG93dG9fanNfcmFuZ2VzbGlkZXIuYXNwICovXG4vKiAqIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8yODI4MzgwNiAqL1xuLyogKiBodHRwczovL2Nzcy10cmlja3MuY29tL3N0eWxpbmctY3Jvc3MtYnJvd3Nlci1jb21wYXRpYmxlLXJhbmdlLWlucHV0cy1jc3MvICovXG5cbi5teF9TZWVrQmFyIHtcbiAgICAvKiBkZWZhdWx0LCBvdmVycmlkZGVuIGluIEpTICovXG4gICAgLS1maWxsVG86IDE7XG5cbiAgICAvKiBEZXYgbm90ZTogd2UgZGVsaWJlcmF0ZWx5IGRvIG5vdCBoYXZlIHRoZSAtbXMtdHJhY2sgKGFuZCBmcmllbmRzKSBzZWxlY3RvcnMgYmVjYXVzZSB3ZSBkb24ndCAqL1xuICAgIC8qIG5lZWQgdG8gc3VwcG9ydCBJRS4gKi9cblxuICAgIGFwcGVhcmFuY2U6IG5vbmU7IC8qIGRlZmF1bHQgc3R5bGUgb3ZlcnJpZGUgKi9cblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMXB4O1xuICAgIGJhY2tncm91bmQ6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG4gICAgb3V0bGluZTogbm9uZTsgLyogcmVtb3ZlIGJsdWUgc2VsZWN0aW9uIGJvcmRlciAqL1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogZm9yIGJlZm9yZSthZnRlciBwc2V1ZG8gZWxlbWVudHMgbGF0ZXIgb24gKi9cblxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6Oi13ZWJraXQtc2xpZGVyLXRodW1iIHtcbiAgICAgICAgYXBwZWFyYW5jZTogbm9uZTsgLyogZGVmYXVsdCBzdHlsZSBvdmVycmlkZSAqL1xuXG4gICAgICAgIC8qIERldiBub3RlOiBUaGlzIG5lZWRzIHRvIGJlIGR1cGxpY2F0ZWQgd2l0aCB0aGUgLW1vei1yYW5nZS10aHVtYiBzZWxlY3RvciAqL1xuICAgICAgICAvKiBiZWNhdXNlIG90aGVyd2lzZSBFZGdlICh3ZWJraXQpIHdpbGwgZmFpbCB0byBzZWUgdGhlIHN0eWxlcyBhbmQganVzdCByZWZ1c2UgKi9cbiAgICAgICAgLyogdG8gYXBwbHkgdGhlbS4gKi9cbiAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG5cbiAgICAmOjotbW96LXJhbmdlLXRodW1iIHtcbiAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAvKiBGaXJlZm94IGFkZHMgYSBib3JkZXIgb24gdGhlIHRodW1iICovXG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG5cbiAgICAvKiBUaGlzIGlzIGZvciB3ZWJraXQgc3VwcG9ydCwgYnV0IHdlIGNhbid0IGxpbWl0IHRoZSBmdW5jdGlvbmFsaXR5IG9mIGl0IHRvIGp1c3Qgd2Via2l0ICovXG4gICAgLyogYnJvd3NlcnMuIEZpcmVmb3ggcmVzcG9uZHMgdG8gd2Via2l0LXByZWZpeGVkIHZhbHVlcyBub3csIHdoaWNoIG1lYW5zIHdlIGNhbid0IHVzZSBtZWRpYSAqL1xuICAgIC8qIG9yIHN1cHBvcnQgcXVlcmllcyB0byBzZWxlY3RpdmVseSBhcHBseSB0aGUgcnVsZS4gQW4gdXBzaWRlIGlzIHRoYXQgdGhpcyBDU1MgZG9lc24ndCB3b3JrICovXG4gICAgLyogaW4gZmlyZWZveCwgc28gaXQncyBqdXN0IHdhc3RlZCBDUFUvR1BVIHRpbWUuICovXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgLyogOjpiZWZvcmUgdG8gZW5zdXJlIGl0IGVuZHMgdXAgdW5kZXIgdGhlIHRodW1iICovXG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuXG4gICAgICAgIC8qIEFic29sdXRlIHBvc2l0aW9uaW5nIHRvIGVuc3VyZSBpdCBvdmVybGFwcyB3aXRoIHRoZSBleGlzdGluZyBiYXIgKi9cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgLyogU2l6aW5nIHRvIG1hdGNoIHRoZSBiYXIgKi9cbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMXB4O1xuXG4gICAgICAgIC8qIEFuZCBmaW5hbGx5IGR5bmFtaWMgd2lkdGggd2l0aG91dCBvdmVybHkgaHVydGluZyB0aGUgcmVuZGVyaW5nIGVuZ2luZS4gKi9cbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAxMDAlO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCh2YXIoLS1maWxsVG8pKTtcbiAgICB9XG5cbiAgICAvKiBUaGlzIGlzIGZpcmVmb3gncyBidWlsdC1pbiBzdXBwb3J0IGZvciB0aGUgYWJvdmUsIHdpdGggMTAwJSBsZXNzIGhhY2tzLiAqL1xuICAgICY6Oi1tb3otcmFuZ2UtcHJvZ3Jlc3Mge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgfVxuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG5cbiAgICAvKiBJbmNyZWFzZSBjbGlja2FibGUgYXJlYSBmb3IgdGhlIHNsaWRlciAoYXBwcm94aW1hdGVseSBzYW1lIHNpemUgYXMgYnJvd3NlciBkZWZhdWx0KSAqL1xuICAgIC8qIFdlIGRvIGl0IHRoaXMgd2F5IHRvIGtlZXAgdGhlIHNhbWUgcGFkZGluZyBhbmQgbWFyZ2lucyBvZiB0aGUgZWxlbWVudCwgYXZvaWRpbmcgbWFyZ2luIG1hdGguICovXG4gICAgLyogU291cmNlOiBodHRwczovL2Zyb250LWJhY2suY29tL2V4cGFuZC1jbGlja2FibGUtYXJlYXMtZm9yLWEtYmV0dGVyLXRvdWNoLWV4cGVyaWVuY2UvICovXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTZweDtcbiAgICAgICAgYm90dG9tOiAtNnB4O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfV2F2ZWZvcm0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBoZWlnaHQ6IDMwcHg7IC8qIHRhbGxlc3QgYmFyIGNhbiBvbmx5IGJlIDMwcHggKi9cbiAgICB0b3A6IDFweDsgLyogYmVjYXVzZSBvZiBvdXIgYm9yZGVyIHRyaWNrIChzZWUgYmVsb3cpLCB3ZSdyZSBvZmYgYnkgMXB4IG9mIGFsaWdudG1lbnQgKi9cblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgLyogc28gdGhlIGJhcnMgZ3JvdyBmcm9tIHRoZSBtaWRkbGUgKi9cblxuICAgIG92ZXJmbG93OiBoaWRkZW47IC8qIHRoaXMgaXMgY2hlYXBlciB0aGFuIGEgYG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDRweClgIGluIHRoZSBiYXIncyBDU1MuICovXG5cbiAgICAvKiBBIGJhciBpcyBtZWFudCB0byBiZSBhIDJ4MiBjaXJjbGUgd2hlbiBhdCB6ZXJvIGhlaWdodCwgYW5kIG90aGVyd2lzZSBhIDJweCB3aWRlIGxpbmUgKi9cbiAgICAvKiB3aXRoIHJvdW5kZWQgY2Fwcy4gKi9cbiAgICAubXhfV2F2ZWZvcm1fYmFyIHtcbiAgICAgICAgd2lkdGg6IDA7IC8qIDBweCB3aWR0aCBtZWFucyB3ZSdsbCBlbmQgdXAgdXNpbmcgdGhlIGJvcmRlciBhcyBvdXIgd2lkdGggKi9cbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7IC8qIHRyYW5zcGFyZW50IG1lYW5zIHdlJ2xsIHVzZSB0aGUgYmFja2dyb3VuZCBjb2xvdXIgKi9cbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OyAvKiByb3VuZGVkIGVuZCBjYXBzLCBiYXNlZCBvbiB0aGUgYm9yZGVyICovXG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7IC8qIGxpa2UgdGhlIHdpZHRoLCB3ZSdsbCByZWx5IG9uIHRoZSBib3JkZXIgdG8gZ2l2ZSB1cyBoZWlnaHQgKi9cbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTsgLyogdGhpcyBtYWtlcyB0aGUgYGhlaWdodDogNDIlYCB3b3JrIG9uIHRoZSBlbGVtZW50ICovXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxcHg7IC8qIHdlIHdhbnQgMnB4IGJldHdlZW4gZWFjaCBiYXIsIHNvIDFweCBvbiBlaXRoZXIgc2lkZSBmb3IgYmFsYW5jZSAqL1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFweDtcblxuICAgICAgICAvKiBiYWNrZ3JvdW5kIGNvbG9yIGlzIGhhbmRsZWQgYnkgdGhlIHBhcmVudCBjb21wb25lbnRzICovXG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE5IE5ldyBWZWN0b3IgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BdXRoQm9keSB7XG4gICAgd2lkdGg6IDUwMHB4O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBjb2xvcjogJGF1dGhwYWdlLXNlY29uZGFyeS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAwIHZhcigtLWNwZC1zcGFjZS02eCkgdmFyKC0tY3BkLXNwYWNlLTZ4KSAwO1xuICAgIHBhZGRpbmc6IDI1cHggNjBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgc3Ryb25nIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxuXG4gICAgJi5teF9BdXRoQm9keV9mbGV4IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMjRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIGNvbG9yOiAkYXV0aHBhZ2UtcHJpbWFyeS1jb2xvcjtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgICAgICBjb2xvcjogJGF1dGhwYWdlLXNlY29uZGFyeS1jb2xvcjtcbiAgICB9XG5cbiAgICBoMi5teF9BdXRoQm9keV9jZW50ZXJlZCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICBhOmxpbmssXG4gICAgYTpob3ZlcixcbiAgICBhOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIGZpZWxkc2V0IHtcbiAgICAgICAgLyogUmVzZXQgdGhlIGJyb3dzZXIgZGVmYXVsdCA8ZmllbGRzZXQ+IHN0eWxpbmcgKi9cbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi1pbmxpbmU6IHVuc2V0O1xuICAgICAgICBwYWRkaW5nLWJsb2NrOiB1bnNldDtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IHVuc2V0O1xuICAgICAgICBtaW4taW5saW5lLXNpemU6IHVuc2V0O1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuXG4gICAgLm14X0F1dGhCb2R5X2ljb24ge1xuICAgICAgICB3aWR0aDogNDRweDtcbiAgICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgIH1cblxuICAgIC5teF9BdXRoQm9keV9sb2NrSWNvbiB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgfVxuXG4gICAgLm14X0F1dGhCb2R5X3RleHQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMTJ4KTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0ge1xuICAgICAgICBjb2xvcjogJGF1dGhwYWdlLXByaW1hcnktY29sb3I7XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRmllbGQgbGFiZWwge1xuICAgICAgICBjb2xvcjogJGF1dGhwYWdlLXNlY29uZGFyeS1jb2xvcjtcbiAgICB9XG5cbiAgICAubXhfRmllbGQgaW5wdXQsXG4gICAgLm14X0ZpZWxkIHNlbGVjdCB7XG4gICAgICAgIGNvbG9yOiAkYXV0aHBhZ2UtcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgLm14X0ZpZWxkX2xhYmVsQWx3YXlzVG9wTGVmdCBsYWJlbCxcbiAgICAubXhfRmllbGQgc2VsZWN0ICsgbGFiZWwgLyogQWx3YXlzIHNob3cgYSBzZWxlY3QncyBsYWJlbCBvbiB0b3AgdG8gbm90IGNvbGxpZGUgd2l0aCB0aGUgdmFsdWUgKi8sXG4gICAgLm14X0ZpZWxkIGlucHV0OmZvY3VzICsgbGFiZWwsXG4gICAgLm14X0ZpZWxkIGlucHV0Om5vdCg6cGxhY2Vob2xkZXItc2hvd24pICsgbGFiZWwsXG4gICAgLm14X0ZpZWxkIHRleHRhcmVhOmZvY3VzICsgbGFiZWwsXG4gICAgLm14X0ZpZWxkIHRleHRhcmVhOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pICsgbGFiZWwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICBpbnB1dC5lcnJvciB7XG4gICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgfVxuXG4gICAgLm14X0xvZ2luX3N1Ym1pdCB7XG4gICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG5cbiAgICAubXhfRXJyb3JNZXNzYWdlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIH1cblxuICAgIC5teF9GaWVsZCBpbnB1dCB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuXG4gICAgLm14X0ZpZWxkX3NlbGVjdDo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGF1dGhwYWdlLXByaW1hcnktY29sb3I7XG4gICAgfVxuXG4gICAgLm14X0Ryb3Bkb3duIHtcbiAgICAgICAgY29sb3I6ICRhdXRocGFnZS1wcmltYXJ5LWNvbG9yO1xuICAgIH1cblxuICAgIC5teF9Ecm9wZG93bl9hcnJvdyB7XG4gICAgICAgIGNvbG9yOiAkYXV0aHBhZ2UtcHJpbWFyeS1jb2xvcjtcbiAgICB9XG5cbiAgICAubXhfRHJvcGRvd25fbWVudSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gICAgICAgIC5teF9Ecm9wZG93bl9vcHRpb25faGlnaGxpZ2h0IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhdXRocGFnZS1mb2N1cy1iZy1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogc3BlY2lhbGlzYXRpb24gZm9yIHBhc3N3b3JkIHJlc2V0IHZpZXdzICovXG4ubXhfQXV0aEJvZHkubXhfQXV0aEJvZHlfZm9yZ290LXBhc3N3b3JkIHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIHBhZGRpbmc6IDUwcHggMzJweDtcbiAgICBtaW4taGVpZ2h0OiA2MDBweDtcblxuICAgIGgxIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNngpIDA7XG4gICAgfVxuXG4gICAgLm14X0F1dGhCb2R5X2J1dHRvbi1jb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubXhfTG9naW5fc3VibWl0IHtcbiAgICAgICAgbWFyZ2luOiAwIDAgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG5cbiAgICAubXhfQXV0aEJvZHlfdGV4dCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS04eCk7XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0F1dGhCb2R5X3NpZ24taW4taW5zdGVhZC1idXR0b24ge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICB9XG5cbiAgICAubXhfQXV0aEJvZHlfZmllbGRSb3cge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIH1cblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uLm14X0FjY2Vzc2libGVCdXR0b25faGFzS2luZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG5cbiAgICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9BdXRoQm9keV9kaWQtbm90LXJlY2VpdmUge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X0F1dGhCb2R5X3Jlc2VuZC1idXR0b24ge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAkYWNjZW50O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHN5c3RlbTtcbiAgICB9XG59XG5cbi5teF9BdXRoQm9keV9lbWFpbFByb21wdEljb24ge1xuICAgIHdpZHRoOiA1N3B4O1xufVxuXG4ubXhfQXV0aEJvZHlfZW1haWxQcm9tcHRJY29uLS1zaGlmdGVkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAtMTdweDsgLyogUHJldmVudCBsYXlvdXQganVtcCBieSByZWxhdGl2ZSBwb3NpdGlvbmluZy4gKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAtMTdweDsgLyogVGhpcyBpY29uIGlzIGhpZ2hlciB0aGFuIHRoZSBvdGhlciBpY29ucy4gU2hpZnQgdXAgdG8gcHJldmVudCBpY29uIGp1bXBpbmcuICovXG4gICAgd2lkdGg6IDU3cHg7XG59XG5cbi5teF9BdXRoQm9keV9maWVsZFJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4ubXhfQXV0aEJvZHlfZmllbGRSb3cgPiAubXhfRmllbGQge1xuICAgIG1hcmdpbjogMCA1cHg7XG59XG5cbi5teF9BdXRoQm9keV9maWVsZFJvdyA+IC5teF9GaWVsZDpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5teF9BdXRoQm9keV9maWVsZFJvdyA+IC5teF9GaWVsZDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG59XG5cbi5teF9BdXRoQm9keV9wYWRkZWRGb290ZXIge1xuICAgIGhlaWdodDogODBweDsgLyogaGVpZ2h0IG9mIHRoZSBzdWJtaXQgYnV0dG9uICsgcmVnaXN0ZXIgbGluayAqL1xuICAgIHBhZGRpbmctdG9wOiAyOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5teF9BdXRoQm9keV9wYWRkZWRGb290ZXJfdGl0bGUge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuXG4gICAgICAgIC5teF9JbmxpbmVTcGlubmVyIHN2ZyB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogc3ViO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQXV0aEJvZHlfcGFkZGVkRm9vdGVyX3N1YnRpdGxlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTRweDtcbiAgICB9XG59XG5cbi5teF9BdXRoQm9keV9jaGFuZ2VGbG93IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICA+IGEge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG59XG5cbi5teF9TU09CdXR0b25zICsgLm14X0F1dGhCb2R5X2NoYW5nZUZsb3cge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG59XG5cbi5teF9BdXRoQm9keV9zcGlubmVyIHtcbiAgICBtYXJnaW46IDFlbSAwO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgLm14X0F1dGhCb2R5IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiA1MDBweDtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0F1dGhGb290ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIG9wYWNpdHk6IDAuNzI7XG4gICAgcGFkZGluZzogMjBweCAwO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2IoMCwgMCwgMCwgMCksIHJnYigwLCAwLCAwLCAwLjgpKTtcbn1cblxuLm14X0F1dGhGb290ZXIgYTpsaW5rLFxuLm14X0F1dGhGb290ZXIgYTpob3Zlcixcbi5teF9BdXRoRm9vdGVyIGE6dmlzaXRlZCB7XG4gICAgY29sb3I6ICRhY2NlbnQtZmctY29sb3I7XG4gICAgbWFyZ2luOiAwIDIycHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0F1dGhIZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB3aWR0aDogMjA2cHg7XG4gICAgcGFkZGluZzogMjVweCAyNXB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAubXhfQXV0aEhlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BdXRoSGVhZGVyTG9nbyB7XG4gICAgbWFyZ2luLXRvcDogMTVweDtcbiAgICBmbGV4OiAxO1xuICAgIHBhZGRpbmc6IDAgMjVweDtcbn1cblxuLm14X0F1dGhIZWFkZXJMb2dvIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAubXhfQXV0aEhlYWRlckxvZ28ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQXV0aFBhZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhdXRocGFnZS1iZy1jb2xvcjtcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93OiBhdXRvO1xufVxuXG4ubXhfQXV0aFBhZ2VfbW9kYWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luOiAxMDBweCBhdXRvIGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXV0aHBhZ2UtbW9kYWwtYmctY29sb3I7XG5cbiAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtaGVpZ2h0OiA3NjhweCkge1xuICAgICAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgIH1cblxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICAmLm14X0F1dGhQYWdlX21vZGFsX3dpdGhCbHVyIHtcbiAgICAgICAgLyogQXBwbHkgYSBibHVycmVkIHNoYWRvdyBhcm91bmQgdGhlIG1vZGFsICovXG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCAwIHJnYigwLCAwLCAwLCAwLjMzKTtcblxuICAgICAgICAubXhfQXV0aFBhZ2VfbW9kYWxDb250ZW50IHtcbiAgICAgICAgICAgIC8qIE1ha2UgdGhlIG1vZGFsJ3MgYmFja2dyb3VuZCBzZW1pdHJhbnNwYXJlbnQgKi9cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhdXRocGFnZS1tb2RhbC1jb250ZW50LXdpdGgtYmx1ci1iZy1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxOSBOZXcgVmVjdG9yIEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ29tcGxldGVTZWN1cml0eUJvZHkge1xuICAgIGNvbG9yOiAkYXV0aHBhZ2UtcHJpbWFyeS1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgIHBhZGRpbmc6IDIwcHggMjBweCA2MHB4IDIwcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIGgyIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0yNHB4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICBoMyB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgIH1cblxuICAgIGE6bGluayxcbiAgICBhOmhvdmVyLFxuICAgIGE6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Db3VudHJ5RHJvcGRvd24gLm14X0Ryb3Bkb3duX2lucHV0IC5teF9Ecm9wZG93bl9vcHRpb24ge1xuICAgIHBhZGRpbmc6IDAgM3B4O1xufVxuXG4ubXhfQ291bnRyeURyb3Bkb3duIC5teF9Ecm9wZG93bl9hcnJvdyB7XG4gICAgcGFkZGluZy1yaWdodDogM3B4O1xufVxuXG4ubXhfQ291bnRyeURyb3Bkb3duX3Nob3J0T3B0aW9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbn1cblxuLm14X0NvdW50cnlEcm9wZG93bl9vcHRpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNiBFbGVtZW50IENyZWF0aW9ucyBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZWZhdWx0V2VsY29tZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLm14X0RlZmF1bHRXZWxjb21lX2xvZ28gaW1nIHtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICBhc3BlY3QtcmF0aW86IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICB9XG5cbiAgICBoMSB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTR4KSAwIHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cblxuICAgIC5teF9EZWZhdWx0V2VsY29tZV9idXR0b25zIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNngpIDAgdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3Itc2VwYXJhdG9yLXByaW1hcnkpO1xuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgd2lkdGg6IDM4MHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1dlbGNvbWVQYWdlX3JlZ2lzdHJhdGlvbkRpc2FibGVkIHtcbiAgICAubXhfRGVmYXVsdFdlbGNvbWVfYnV0dG9uc19yZWdpc3RlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE3IFZlY3RvciBDcmVhdGlvbnMgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbnRlcmFjdGl2ZUF1dGhFbnRyeUNvbXBvbmVudHMge1xuICAgIC5teF9JbnRlcmFjdGl2ZUF1dGhFbnRyeUNvbXBvbmVudHNfdGVybXNTdWJtaXQge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiBwcmV2ZW50IG92ZXJmbG93aW5nICovXG4gICAgfVxufVxuXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX21zaXNkbldyYXBwZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X0ludGVyYWN0aXZlQXV0aEVudHJ5Q29tcG9uZW50c19tc2lzZG5FbnRyeSB7XG4gICAgZm9udC1zaXplOiAyMDAlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRzdHJvbmctaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB3aWR0aDogNmVtO1xufVxuXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX21zaXNkbkVudHJ5OmZvY3VzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50O1xufVxuXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX21zaXNkblN1Ym1pdCB7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbn1cblxuLyogWFhYOiBUaGlzIHNob3VsZCBiZSBhIGNvbW1vbiBidXR0b24gY2xhc3MgKi9cbi5teF9JbnRlcmFjdGl2ZUF1dGhFbnRyeUNvbXBvbmVudHNfbXNpc2RuU3VibWl0OmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtZmctY29sb3I7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX3Rlcm1zUG9saWN5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5teF9JbnRlcmFjdGl2ZUF1dGhFbnRyeUNvbXBvbmVudHNfcGFzc3dvcmRTZWN0aW9uIHtcbiAgICB3aWR0aDogMzAwcHg7XG59XG5cbi5teF9JbnRlcmFjdGl2ZUF1dGhFbnRyeUNvbXBvbmVudHNfc3NvX2J1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgfVxufVxuXG4ubXhfSW50ZXJhY3RpdmVBdXRoRW50cnlDb21wb25lbnRzX2VtYWlsV3JhcHBlciB7XG4gICAgLyogXCJSZXNlbmRcIiBidXR0b24vbGluayAqL1xuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19pbmxpbmUge1xuICAgICAgICAvKiBXZSBuZWVkIHRoaXMgdG8gYmUgYW4gaW5saW5lLWJsb2NrIHNvIHBvc2l0aW9uaW5nIHdvcmtzIGNvcnJlY3RseSAqL1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcblxuICAgICAgICAvKiBTcGlubmVyIGFzIGVuZCBhZG9ybm1lbnQgb2YgdGhlIFwicmVzZW5kXCIgYnV0dG9uL2xpbmsgKi9cbiAgICAgICAgLm14X1NwaW5uZXIge1xuICAgICAgICAgICAgLyogU3Bpbm5lcnMgYXJlIHVzdWFsbHkgYmxvY2sgZWxlbWVudHMsIGJ1dCB3ZSBuZWVkIGl0IGFzIGlubGluZSBlbGVtZW50ICovXG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgLyogU3Bpbm5lcnMgYnkgZGVmYXVsdCBmaWxsIGFsbCBhdmFpbGFibGUgd2lkdGgsIGJ1dCB3ZSBkb24ndCB3YW50IHRoYXQgKi9cbiAgICAgICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAvKiBXZSBuZWVkIHRvIGNlbnRlciB0aGUgc3Bpbm5lciByZWxhdGl2ZSB0byB0aGUgYnV0dG9uL2xpbmsgKi9cbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQXV0aEJvZHlfbGFuZ3VhZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfQXV0aEJvZHlfbGFuZ3VhZ2UgLm14X0Ryb3Bkb3duX2lucHV0IHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1zZW1pYm9sZCk7XG4gICAgY29sb3I6ICRhdXRocGFnZS1sYW5nLWNvbG9yO1xuICAgIHdpZHRoOiBhdXRvO1xufVxuXG4ubXhfQXV0aEJvZHlfbGFuZ3VhZ2UgLm14X0Ryb3Bkb3duX2Fycm93IHtcbiAgICBjb2xvcjogJGF1dGhwYWdlLWxhbmctY29sb3I7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTG9naW5XaXRoUVJTZWN0aW9uIHAge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cblxuLm14X0xvZ2luV2l0aFFSU2VjdGlvbiB7XG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5ICsgcCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cbn1cblxuLm14X0xvZ2luV2l0aFFSU2VjdGlvbiAubXhfQWNjZXNzaWJsZUJ1dHRvbiBzdmcge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbn1cblxuLm14X0xvZ2luV2l0aFFSX2RpYWxvZyAubXhfRGlhbG9nIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMTJ4KSB2YXIoLS1jcGQtc3BhY2UtMTJ4KSB2YXIoLS1jcGQtc3BhY2UtMTB4KTtcblxuICAgIC5teF9Mb2dpbldpdGhRUiB7XG4gICAgICAgIHdpZHRoOiA1MDBweDtcbiAgICB9XG59XG5cbi5teF9Mb2dpbldpdGhRUiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1pbi1oZWlnaHQ6IDUwMHB4O1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG5cbiAgICBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMjRweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgfVxuXG4gICAgLm14X0xvZ2luV2l0aFFSX3FyV3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS03eCkgMDtcblxuICAgICAgICAubXhfU3Bpbm5lciB7XG4gICAgICAgICAgICAvKiBNYXRjaCB0aGUgc2l6ZSBvZiB0aGUgUVIgY29kZSB0byBwcmV2ZW50IGp1bXBzICovXG4gICAgICAgICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgICAgICAgd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0xvZ2luV2l0aFFSX2NvbmZpcm1hdGlvbkRpZ2l0cyB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMTJ4KSBhdXRvO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0yNHB4O1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfTG9naW5XaXRoUVJfY29uZmlybWF0aW9uQWxlcnQge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVhdGVybmFyeS1jb250ZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9zZXBhcmF0b3Ige1xuICAgICAgICBtYXJnaW46IDFlbSAwO1xuICAgIH1cblxuICAgIG9sIHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7IC8qIGxpc3QgbWFya2VycyBkbyBub3Qgc3VwcG9ydCB0aGUgb3V0bGluZWQgbnVtYmVyIHN0eWxpbmcgd2UgbmVlZCAqL1xuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogdmFyKC0tY3BkLXNwYWNlLTd4KTtcbiAgICAgICAgICAgIGNvbG9yOiAxcHggc29saWQgJGlucHV0LXBsYWNlaG9sZGVyO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogaW5pdGlhbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIENpcmNsZWQgbnVtYmVyIGxpc3QgaXRlbSBtYXJrZXIgKi9cbiAgICAgICAgbGk6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBjb3VudGVyKGxpc3QtaXRlbSk7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRpbnB1dC1wbGFjZWhvbGRlcjtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsYWJlbFtmb3I9XCJteF9Mb2dpbldpdGhRUl9jaGVja0NvZGVcIl0ge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgfVxuXG4gICAgLm14X0xvZ2luV2l0aFFSX2NoZWNrQ29kZV9pbnB1dCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIHRleHQtYWxpZ246IGluaXRpYWw7XG5cbiAgICAgICAgaW5wdXQge1xuICAgICAgICAgICAgLyogV29ya2Fyb3VuZCBmb3Igb25lIG9mIHRoZSBpbnB1dCBydWxlcyBpbiBfY29tbW9uLnBjc3MgYmVpbmcgbm90IHNwZWNpZmljIGVub3VnaCAqL1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiBjYWxjKDQwcHggLyAyIC0gKDFjaCAvIDIpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9oZWFkaW5nIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9CYWNrQnV0dG9uIHtcbiAgICAgICAgaGVpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtN3gpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1jcGQtc3BhY2UtN3gpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXNlY29uZGFyeSk7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTG9naW5XaXRoUVJfYnJlYWRjcnVtYnMge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEzcHg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0xvZ2luV2l0aFFSX21haW4ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Mb2dpbldpdGhRUl9idXR0b25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAzMDBweDtcbiAgICAgICAgICAgIGhlaWdodDogNDhweDtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUVJDb2RlIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm14X0xvZ2luV2l0aFFSX3NwaW5uZXIge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuJFBhc3NwaHJhc2VTdHJlbmd0aEhpZ2g6ICRhY2NlbnQ7XG4kUGFzc3BocmFzZVN0cmVuZ3RoTWVkaXVtOiAkdXNlcm5hbWUtdmFyaWFudDUtY29sb3I7XG4kUGFzc3BocmFzZVN0cmVuZ3RoTG93OiAkYWxlcnQ7XG5cbnByb2dyZXNzLm14X1Bhc3NwaHJhc2VGaWVsZF9wcm9ncmVzcyB7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IDA7XG4gICAgaGVpZ2h0OiA0cHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTEwcHg7XG4gICAgbGVmdDogMDtcblxuICAgIEBtaXhpbiBQcm9ncmVzc0JhckJvcmRlclJhZGl1cyBcIjJweFwiO1xuICAgIEBtaXhpbiBQcm9ncmVzc0JhckNvbG91ciAkUGFzc3BocmFzZVN0cmVuZ3RoTG93O1xuICAgICZbdmFsdWU9XCIyXCJdLFxuICAgICZbdmFsdWU9XCIzXCJdIHtcbiAgICAgICAgQG1peGluIFByb2dyZXNzQmFyQ29sb3VyICRQYXNzcGhyYXNlU3RyZW5ndGhNZWRpdW07XG4gICAgfVxuICAgICZbdmFsdWU9XCI0XCJdIHtcbiAgICAgICAgQG1peGluIFByb2dyZXNzQmFyQ29sb3VyICRQYXNzcGhyYXNlU3RyZW5ndGhIaWdoO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfV2VsY29tZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xMXgpIHZhcigtLWNwZC1zcGFjZS0xMngpIHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICAmLm14X1dlbGNvbWVQYWdlX3JlZ2lzdHJhdGlvbkRpc2FibGVkIHtcbiAgICAgICAgLm14X0J1dHRvbkNyZWF0ZUFjY291bnQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1dlbGNvbWUgLm14X0F1dGhCb2R5X2xhbmd1YWdlIHtcbiAgICB3aWR0aDogMTYwcHg7XG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMXgpIDA7XG59XG5cbi8qIEludmVydCBpbWFnZSBjb2xvdXJzIGluIGRhcmsgbW9kZS4gKi9cbi5jcGQtdGhlbWUtZGFyayAubXhfV2VsY29tZVBhZ2VfbG9nbyB7XG4gICAgZmlsdGVyOiBpbnZlcnQoMSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5idXR0b24ubXhfQmFzZUF2YXRhciB7XG4gICAgLyogPGJ1dHRvbj4gaXMgYSBmb3JtIGVsZW1lbnQgYW5kIGJ5IGRlZmF1bHQgaXQgdXNlcyB0aGUgdXNlciBhZ2VudCAoYnJvd3Nlcikgc3R5bGluZy5cbiAgICAgICBXZSB3YW50IGl0IHRvIGluaGVyaXQgdGhlIGZvbnQtZmFtaWx5IGFuZCBsaW5lLWhlaWdodCBmcm9tIGl0cyBwYXJlbnQuXG4gICAgICovXG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGVjb3JhdGVkUm9vbUF2YXRhcixcbi5teF9FeHRyYVRpbGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb250YWluOiBjb250ZW50O1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuXG4gICAgJi5teF9EZWNvcmF0ZWRSb29tQXZhdGFyX2N1dG91dCAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgIG1hc2staW1hZ2U6IHVybChcIi9yZXMvaW1nL2VsZW1lbnQtaWNvbnMvcm9vbWxpc3QvZGVjb3JhdGVkLWF2YXRhci1tYXNrLnN2Z1wiKTtcbiAgICAgICAgbWFzay1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBtYXNrLXNpemU6IGNvbnRhaW47XG4gICAgICAgIG1hc2stcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgfVxuXG4gICAgLm14X0RlY29yYXRlZFJvb21BdmF0YXJfaWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgLyogdGhlIGZvbGxvd2luZyBwZXJjZW50YWdlIGJhc2VkIHNpemluZ3MgYXJlIHRvIG1hdGNoIHRoZSBzY2FsYWJsZSBzdmcgbWFzayBmb3IgdGhlIGN1dG91dCAqL1xuICAgICAgICBib3R0b206IDYuMjUlOyAvKiAycHggZm9yIGEgMzJ4MzIgYXZhdGFyICovXG4gICAgICAgIHJpZ2h0OiA2LjI1JTtcbiAgICAgICAgd2lkdGg6IDI1JTsgLyogOHB4IGZvciBhIDMyeDMyIGF2YXRhciAqL1xuICAgICAgICBoZWlnaHQ6IDI1JTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRGVjb3JhdGVkUm9vbUF2YXRhcl9pY29uX2dsb2JlIHN2ZyB7XG4gICAgICAgIC8qIE92ZXJzaXplIHRoZSBpY29uIHRvIGFjY291bnQgZm9yIHRoZSBkZWFkIHNwYWNlIGFyb3VuZCB0aGUgaWNvbiB3aXRoaW4gdGhlIGNhbnZhcyAqL1xuICAgICAgICB3aWR0aDogMTIwJTtcbiAgICAgICAgaGVpZ2h0OiAxMjAlO1xuICAgICAgICBtYXJnaW46IC0xMCU7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0RlY29yYXRlZFJvb21BdmF0YXJfaWNvbl9vZmZsaW5lOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJlc2VuY2Utb2ZmbGluZTtcbiAgICB9XG5cbiAgICAubXhfRGVjb3JhdGVkUm9vbUF2YXRhcl9pY29uX29ubGluZTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcbiAgICB9XG5cbiAgICAubXhfRGVjb3JhdGVkUm9vbUF2YXRhcl9pY29uX2F3YXk6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwcmVzZW5jZS1hd2F5O1xuICAgIH1cblxuICAgIC5teF9EZWNvcmF0ZWRSb29tQXZhdGFyX2ljb25fYnVzeTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByZXNlbmNlLWJ1c3k7XG4gICAgfVxuXG4gICAgLm14X0RlY29yYXRlZFJvb21BdmF0YXJfbm90aWZpY2F0aW9uQmFkZ2UsXG4gICAgLm14X1Jvb21UaWxlX2JhZGdlQ29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgIHdpZHRoOiAxOHB4O1xuICAgIH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1Jvb21BdmF0YXJWaWV3IHtcbiAgICAtLXJvb20tYXZhdGFyLXNpemU6IDMycHg7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAvKiBLZWVwIHRoZSBjb250YWluZXIgdG8gdGhlIHNhbWUgc2l6ZSB0aGFuIHRoZSBhdmF0YXIgKi9cbiAgICBpbmxpbmUtc2l6ZTogdmFyKC0tcm9vbS1hdmF0YXItc2l6ZSk7XG4gICAgYmxvY2stc2l6ZTogdmFyKC0tcm9vbS1hdmF0YXItc2l6ZSk7XG5cbiAgICAubXhfUm9vbUF2YXRhclZpZXdfUm9vbUF2YXRhciB7XG4gICAgICAgIG1hc2stcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgbWFzay1zaXplOiBjb250YWluO1xuICAgICAgICBtYXNrLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICAubXhfUm9vbUF2YXRhclZpZXdfUm9vbUF2YXRhcl9pY29uIHtcbiAgICAgICAgbWFzay1pbWFnZTogdXJsKFwiL3Jlcy9pbWcvZWxlbWVudC1pY29ucy9yb29tbGlzdC9yb29tLWF2YXRhci12aWV3LWljb24tbWFzay5zdmdcIik7XG4gICAgfVxuXG4gICAgLm14X1Jvb21BdmF0YXJWaWV3X1Jvb21BdmF0YXJfcHJlc2VuY2Uge1xuICAgICAgICBtYXNrLWltYWdlOiB1cmwoXCIvcmVzL2ltZy9lbGVtZW50LWljb25zL3Jvb21saXN0L3Jvb20tYXZhdGFyLXZpZXctcHJlc2VuY2UtbWFzay5zdmdcIik7XG4gICAgfVxuXG4gICAgLm14X1Jvb21BdmF0YXJWaWV3X2ljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgICAgICAgLyogUGxhY2UgaGFsZiB0aGUgaWNvbiBpbnNpZGUgdGhlIGF2YXRhciAqL1xuICAgICAgICAvKiBBdmF0YXIgc2l6ZSAtIChpY29uIHNpemUgKDE2cHgpIC8gMikgKi9cbiAgICAgICAgbGVmdDogY2FsYygodmFyKC0tcm9vbS1hdmF0YXItc2l6ZSkgLSA4cHgpKTtcbiAgICAgICAgYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG4gICAgfVxuXG4gICAgLm14X1Jvb21BdmF0YXJWaWV3X1ByZXNlbmNlRGVjb3JhdGlvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICAvKiBQbGFjZSBoYWxmIHRoZSBpY29uIGluc2lkZSB0aGUgYXZhdGFyICovXG4gICAgICAgIC8qIEF2YXRhciBzaXplIC0gKGljb24gc2l6ZSAoOHB4KSAvIDIpICovXG4gICAgICAgIGxlZnQ6IGNhbGMoKHZhcigtLXJvb20tYXZhdGFyLXNpemUpIC0gNHB4KSk7XG4gICAgICAgIGJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9XaWRnZXRBdmF0YXIge1xuICAgIC8qICFpbXBvcnRhbnQgb3ZlcnJpZGUgY29tcG91bmQgYXZhdGFyICovXG4gICAgYm9yZGVyLXJhZGl1czogNHB4ICFpbXBvcnRhbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfV2l0aFByZXNlbmNlSW5kaWNhdG9yIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgY29udGFpbjogY29udGVudDtcbiAgICBsaW5lLWhlaWdodDogMDtcblxuICAgIC5teF9XaXRoUHJlc2VuY2VJbmRpY2F0b3JfaWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDBweDtcbiAgICAgICAgYm90dG9tOiAycHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0JldGFDYXJkIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwYW5lbHM7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgIC5teF9CZXRhQ2FyZF9jb2x1bW5zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiB3cmFwO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS01eCk7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIC5teF9CZXRhQ2FyZF9jb2x1bW5zX2Rlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG5cbiAgICAgICAgICAgIC5teF9CZXRhQ2FyZF90aXRsZSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xOHB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMnB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTF4KSAwIDE0cHg7XG5cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgY29sdW1uLWdhcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0JldGFDYXJkX2NhcHRpb24ge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0JldGFDYXJkX2J1dHRvbnMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2U7XG4gICAgICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTV4KSBhdXRvIDA7XG5cbiAgICAgICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDdweCA0MHB4O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLyogdGV4dCBtaWdodCBvdmVyZmxvdyAqL1xuXG4gICAgICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyOiAyOyAvKiBQbGFjZSBmZWVkYmFjayBidXR0b24gdG9wIGFuZCByaWdodCAqL1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfQmV0YUNhcmRfcmVmcmVzaFdhcm5pbmcge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMHB4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0JldGFDYXJkX2ZhcSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXhzLXJlZ3VsYXIpO1xuXG4gICAgICAgICAgICAgICAgPiBoNCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTN4KSAwIDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPiBwIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9CZXRhQ2FyZF9jb2x1bW5zX2ltYWdlX3dyYXBwZXIge1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvIDA7XG5cbiAgICAgICAgICAgIC5teF9CZXRhQ2FyZF9jb2x1bW5zX2ltYWdlIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICAgICAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9CZXRhQ2FyZF9yZWxhdGVkU2V0dGluZ3Mge1xuICAgICAgICAubXhfU2V0dGluZ3NGbGFnIHtcbiAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTR4KSAwIDA7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICAubXhfU2V0dGluZ3NGbGFnX21pY3JvY29weSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfQmV0YUNhcmRfYmV0YVBpbGwge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQtYWx0O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCkgMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gICAgY29sb3I6ICRidXR0b24tcHJpbWFyeS1mZy1jb2xvcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICAgIHdvcmQtYnJlYWs6IGtlZXAtYWxsOyAvKiBhdm9pZCBtdWx0aXBsZSBsaW5lcyBvbiBDSksgbGFuZ3VhZ2UgKi9cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZXZpY2VDb250ZXh0TWVudSB7XG4gICAgbWF4LXdpZHRoOiAyNTJweDtcblxuICAgIC5teF9JY29uaXplZENvbnRleHRNZW51X2xhYmVsIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAtMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4vKiBBIGNvbnRleHQgbWVudSB0aGF0IGxhcmdlbHkgZml0cyB0aGUgfCBbaWNvbl0gICAgW2xhYmVsXSB8IGZvcm1hdC4gKi9cbi5teF9JY29uaXplZENvbnRleHRNZW51IHtcbiAgICBtaW4td2lkdGg6IDE0NnB4O1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAvKiBvdmVycmlkZSBkZWZhdWx0IHVsIHN0eWxlcyAqL1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgLm14X0ljb25pemVkQ29udGV4dE1lbnVfb3B0aW9uTGlzdCB7XG4gICAgICAgICYgPiAqIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMjBweDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9vcHRpb25MaXN0X2xhYmVsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogdGhlIG5vdEZpcnN0IGNsYXNzIGlzIGZvciBjYXNlcyB3aGVyZSB0aGUgb3B0aW9uTGlzdCBtaWdodCBiZSB1bmRlciBhIGhlYWRlciBvZiBzb3J0cy4gKi9cbiAgICAgICAgJjpudGgtY2hpbGQobiArIDIpLFxuICAgICAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9vcHRpb25MaXN0X25vdEZpcnN0IHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQgdmFyKC0tY3BkLWNvbG9yLWdyYXktNDAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHJvdW5kIHRoZSB0b3AgY29ybmVycyBvZiB0aGUgdG9wIGJ1dHRvbiBmb3IgdGhlIGhvdmVyIGVmZmVjdCB0byBiZSBib3VuZGVkICovXG4gICAgICAgICY6Zmlyc3QtY2hpbGQgLm14X0ljb25pemVkQ29udGV4dE1lbnVfaXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHggOHB4IDAgMDsgLyogcmFkaXVzIG1hdGNoZXMgLm14X0NvbnRleHR1YWxNZW51ICovXG4gICAgICAgIH1cblxuICAgICAgICAvKiByb3VuZCB0aGUgYm90dG9tIGNvcm5lcnMgb2YgdGhlIGJvdHRvbSBidXR0b24gZm9yIHRoZSBob3ZlciBlZmZlY3QgdG8gYmUgYm91bmRlZCAqL1xuICAgICAgICAmOmxhc3QtY2hpbGQgLm14X0ljb25pemVkQ29udGV4dE1lbnVfaXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCA4cHggOHB4OyAvKiByYWRpdXMgbWF0Y2hlcyAubXhfQ29udGV4dHVhbE1lbnUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHJvdW5kIGFsbCBjb3JuZXJzIG9mIHRoZSBvbmx5IGJ1dHRvbiBmb3IgdGhlIGhvdmVyIGVmZmVjdCB0byBiZSBib3VuZGVkICovXG4gICAgICAgICY6Zmlyc3QtY2hpbGQ6bGFzdC1jaGlsZCAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9pdGVtOmZpcnN0LWNoaWxkOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OyAvKiByYWRpdXMgbWF0Y2hlcyAubXhfQ29udGV4dHVhbE1lbnUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9JY29uaXplZENvbnRleHRNZW51X2l0ZW0ge1xuICAgICAgICAgICAgLyogcGFkIHRoZSBpbnNpZGUgb2YgdGhlIGJ1dHRvbiBzbyB0aGF0IHRoZSBob3ZlciBiYWNrZ3JvdW5kIGlzIHBhZGRlZCB0b28gKi9cbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG5cbiAgICAgICAgICAgIC8qIENyZWF0ZSBhIGZsZXhib3ggdG8gbW9yZSBlYXNpbHkgZGVmaW5lIHRoZSBsaXN0IGl0ZW1zICovXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1zZWNvbmRhcnktaG92ZXJlZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ubXhfSWNvbml6ZWRDb250ZXh0TWVudV9sYWJlbCB7XG4gICAgICAgICAgICAgICAgLyogbGFiZWxzICovXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgZmxleDogMTtcblxuICAgICAgICAgICAgICAgIC8qIEVsbGlwc2l6ZSBhbnkgdGV4dCBvdmVyZmxvdyAqL1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAgICAgICAgICAgICAmICsgLm14X0ljb25pemVkQ29udGV4dE1lbnVfbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDE0cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfQmV0YUNhcmRfYmV0YVBpbGwge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0ljb25pemVkQ29udGV4dE1lbnVfb3B0aW9uTGlzdF9yZWQge1xuICAgICAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9pdGVtIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWxlcnQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9vcHRpb25fcmVkIHtcbiAgICAgICAgY29sb3I6ICRhbGVydCAhaW1wb3J0YW50O1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0ljb25pemVkQ29udGV4dE1lbnVfYWN0aXZlIHtcbiAgICAgICAgJi5teF9JY29uaXplZENvbnRleHRNZW51X2l0ZW0sXG4gICAgICAgIC5teF9JY29uaXplZENvbnRleHRNZW51X2l0ZW0ge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfSWNvbml6ZWRDb250ZXh0TWVudV9jb21wYWN0IHtcbiAgICAgICAgLm14X0ljb25pemVkQ29udGV4dE1lbnVfb3B0aW9uTGlzdCA+ICoge1xuICAgICAgICAgICAgcGFkZGluZzogOHB4IDE2cHggOHB4IDEycHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdmcubXhfSWNvbml6ZWRDb250ZXh0TWVudV9jaGVja2VkIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTVweDtcbiAgICB9XG5cbiAgICAubXhfSWNvbml6ZWRDb250ZXh0TWVudV9zdWJsYWJlbCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubXhfSWNvbml6ZWRDb250ZXh0TWVudV9pdGVtLm14X0ljb25pemVkQ29udGV4dE1lbnVfaXRlbURlc3RydWN0aXZlIHtcbiAgICBjb2xvcjogJGFsZXJ0ICFpbXBvcnRhbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjAtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xlZ2FjeUNhbGxDb250ZXh0TWVudV9pdGVtIHtcbiAgICB3aWR0aDogMjA1cHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcbiAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogY2VudGVyO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0LDIwMjUgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQWRkRXhpc3RpbmdUb1NwYWNlRGlhbG9nX3dyYXBwZXIge1xuICAgIC5teF9EaWFsb2cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbn1cblxuLm14X0FkZEV4aXN0aW5nVG9TcGFjZSB7XG4gICAgLm14X1NlYXJjaEJveCB7XG4gICAgICAgIC8qIFRvIG1hdGNoIHRoZSBzcGFjZSBhcm91bmQgdGhlIHRpdGxlICovXG4gICAgICAgIG1hcmdpbjogMCAwIDE1cHggMDtcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgIH1cblxuICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2VfY29udGVudCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG5cbiAgICAubXhfQWRkRXhpc3RpbmdUb1NwYWNlX25vUmVzdWx0cyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgIH1cblxuICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2Vfc2VjdGlvbiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcblxuICAgICAgICB1bCB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogcHJvdmlkZXMgc3BhY2UgZm9yIHNjcm9sbGJhciBzbyB0aGF0IGNoZWNrYm94IGFuZCBzY3JvbGxiYXIgZG8gbm90IGNvbGxpZGUgKi9cbiAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgPiBoMyB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGluayB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2VfZm9vdGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcblxuICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICAubXhfUHJvZ3Jlc3NCYXIge1xuICAgICAgICAgICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgQG1peGluIFByb2dyZXNzQmFyQm9yZGVyUmFkaXVzIDhweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0FkZEV4aXN0aW5nVG9TcGFjZURpYWxvZ19wcm9ncmVzc1RleHQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2VfZXJyb3Ige1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xuXG4gICAgICAgICAgICA+IGltZyB7XG4gICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfQWRkRXhpc3RpbmdUb1NwYWNlX2Vycm9ySGVhZGluZyB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2VfZXJyb3JDYXB0aW9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAzNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0FkZEV4aXN0aW5nVG9TcGFjZURpYWxvZ19yZXRyeUJ1dHRvbiBzdmcge1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0FkZEV4aXN0aW5nVG9TcGFjZURpYWxvZyB7XG4gICAgd2lkdGg6IDQ4MHB4O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIGhlaWdodDogODB2aDtcblxuICAgIC5teF9BZGRFeGlzdGluZ1RvU3BhY2Uge1xuICAgICAgICBkaXNwbGF5OiBjb250ZW50cztcbiAgICB9XG59XG5cbi5teF9TdWJzcGFjZVNlbGVjdG9yIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICBtYXJnaW46IGF1dG8gMTZweCBhdXRvIDVweDtcbiAgICB9XG5cbiAgICA+IGRpdiB7XG4gICAgICAgID4gaDEge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE4cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjJweDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Ecm9wZG93bl9pbnB1dCB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcblxuICAgICAgICA+IC5teF9Ecm9wZG93bl9vcHRpb24ge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgZmxleDogdW5zZXQ7XG4gICAgICAgICAgICBoZWlnaHQ6IHVuc2V0O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuXG4gICAgICAgICAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TdWJzcGFjZVNlbGVjdG9yX2Ryb3Bkb3duT3B0aW9uQWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMjRweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1N1YnNwYWNlU2VsZWN0b3Jfb25seVNwYWNlIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICB9XG59XG5cbi5teF9BZGRFeGlzdGluZ1RvU3BhY2VfZW50cnkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcblxuICAgIGZvcm0ge1xuICAgICAgICAvKiBBbGlnbiBjaGVja2JveGVzLiAqL1xuICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xuICAgIH1cblxuICAgIC8qIHdlIGNhbid0IHRhcmdldCAubXhfQmFzZUF2YXRhciBoZXJlIGFzIGl0J2xsIGJyZWFrIHRoZSBkZWNvcmF0ZWQgYXZhdGFyIHN0eWxpbmcgKi9cbiAgICAubXhfRGVjb3JhdGVkUm9vbUF2YXRhciB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICB9XG5cbiAgICAubXhfQWRkRXhpc3RpbmdUb1NwYWNlX2VudHJ5X25hbWUge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0FuYWx5dGljc0xlYXJuTW9yZURpYWxvZyB7XG4gICAgbWF4LXdpZHRoOiA1MDBweDtcbiAgICAubXhfQW5hbHl0aWNzTGVhcm5Nb3JlX2ltYWdlX2hvbGRlciB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9yZXMvaW1nL2VsZW1lbnQtc2hpbnkuc3ZnXCIpO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgdG9wO1xuICAgICAgICBoZWlnaHQ6IDExMnB4O1xuICAgICAgICBwYWRkaW5nOiAyMHB4IDBweDtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgfVxuXG4gICAgLm14X0FuYWx5dGljc0xlYXJuTW9yZV9jb3B5IHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRtZW51LWJvcmRlci1jb2xvcjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLm14X0FuYWx5dGljc0xlYXJuTW9yZV9idWxsZXRzIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwcHg7XG4gICAgfVxuXG4gICAgLm14X0FuYWx5dGljc0xlYXJuTW9yZV9idWxsZXRzIGxpIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAycHggMCAwIDMycHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDI2cHg7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgY29sb3I6ICMwZGJkOGI7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQnVnUmVwb3J0RGlhbG9nIHtcbiAgICAubXhfQnVnUmVwb3J0RGlhbG9nX2Rvd25sb2FkIHtcbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMThweDsgLyogU3BhY2UgYmV0d2VlbiBcIkRvd25sb2FkaW5nIGxvZ3MuLi5cIiAqL1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTYgQXZpcmFsIERhc2d1cHRhXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DaGFuZ2Vsb2dEaWFsb2dfY29udGVudCB7XG4gICAgbWF4LWhlaWdodDogMzAwcHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5teF9DaGFuZ2Vsb2dEaWFsb2dfbGkge1xuICAgIHBhZGRpbmc6IDAuMmVtO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIERFViBOT1RFOiBUaGlzIHN0eWxlc2hlZXQgY292ZXJzIGRpYWxvZ3MgbGlzdGVkIGJ5IHRoZSBjb21wb3VuZCwgaW5jbHVkaW5nICovXG4vKiBvdmVyIG11bHRpcGxlIFJlYWN0IGNvbXBvbmVudHMuIFRoZSBhY3R1YWwgaW5uZXIgY29udGVudHMgb2YgdGhlIGRpYWxvZyBzaG91bGQgKi9cbi8qIGJlIGluIHRoZWlyIHJlc3BlY3RpdmUgc3R5bGVzaGVldHMuICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKiBPdmVycmlkZSBsZWdhY3kvZGVmYXVsdCBzdHlsZXMgZm9yIGRpYWxvZ3MgKi9cbi5teF9EaWFsb2dfd3JhcHBlci5teF9Db21wb3VuZERpYWxvZyAubXhfRGlhbG9nIHtcbiAgICBwYWRkaW5nOiAwOyAvKiB3ZSdsbCBtYW5hZ2UgaXQgb3Vyc2VsdmVzICovXG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9Db21wb3VuZERpYWxvZyB7XG4gICAgLm14X0RpYWxvZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgLm14X0NvbXBvdW5kRGlhbG9nX2hlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDMycHggMzJweCAxNnB4IDMycHg7XG5cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTI0cHg7XG4gICAgICAgICAgICBtYXJnaW46IDA7IC8qIG1hbmFnZWQgYnkgaGVhZGVyIGNsYXNzICovXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQ29tcG91bmREaWFsb2dfY2FuY2VsQnV0dG9uIHtcbiAgICAgICAgQG1peGluIGN1c3RvbWlzZWRDYW5jZWxCdXR0b247XG4gICAgICAgIC8qIEFsaWduIHdpdGggY29ybmVyIHJhZGl1cyBvZiBkaWFsb2cgKi9cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIHJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIH1cblxuICAgIC5teF9Db21wb3VuZERpYWxvZ19mb3JtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgZmxleDogMTtcbiAgICB9XG5cbiAgICAubXhfQ29tcG91bmREaWFsb2dfY29udGVudCB7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiA4cHggMzJweDtcbiAgICAgICAgZmxleDogMTtcbiAgICB9XG5cbiAgICAubXhfQ29tcG91bmREaWFsb2dfZm9vdGVyIHtcbiAgICAgICAgcGFkZGluZzogMjBweCAzMnB4O1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMjRweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1Njcm9sbGFibGVCYXNlRGlhbG9nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICB3aWR0aDogNTQ0cHg7IC8qIGZpeGVkICovXG4gICAgaGVpZ2h0OiA1MTZweDsgLyogZml4ZWQgKi9cbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBtYXgtaGVpZ2h0OiA4MCU7XG5cbiAgICAubXhfQ29tcG91bmREaWFsb2dfZm9vdGVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogMHB4IC00cHggNHB4IHJnYigwLCAwLCAwLCAwLjA1KTsgLyogaGFyZGNvZGVkIGNvbG91ciBmb3IgYm90aCB0aGVtZXMgKi9cbiAgICAgICAgei1pbmRleDogMTsgLyogbmVlZGVkIHRvIG1ha2UgZm9vdGVyICYgc2hhZG93IGFwcGVhciBhYm92ZSBkaWFsb2cgY29udGVudCAqL1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NvbmZpcm1LZXlTdG9yYWdlT2ZmRGlhbG9nIHtcbiAgICAubXhfRGlhbG9nX2JvcmRlciB7XG4gICAgICAgIHdpZHRoOiA2MDBweDtcbiAgICB9XG5cbiAgICAubXhfRW5jcnlwdGlvbkNhcmQge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NvbmZpcm1TcGFjZVVzZXJBY3Rpb25EaWFsb2dfd3JhcHBlciB7XG4gICAgLm14X0RpYWxvZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBhZGRpbmc6IDI0cHggMzJweDtcbiAgICB9XG59XG5cbi5teF9Db25maXJtU3BhY2VVc2VyQWN0aW9uRGlhbG9nIHtcbiAgICB3aWR0aDogNDQwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIGhlaWdodDogNTIwcHg7XG5cbiAgICAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW46IDEycHggMDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIH1cblxuICAgIC5teF9Db25maXJtVXNlckFjdGlvbkRpYWxvZ19yZWFzb25GaWVsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgfVxuXG4gICAgLm14X0NvbmZpcm1TcGFjZVVzZXJBY3Rpb25EaWFsb2dfd2FybmluZyB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgcGFkZGluZzogMTJweCA4cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG5cbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogLTRweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTEtNXgpO1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE3IFZlY3RvciBDcmVhdGlvbnMgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ29uZmlybVVzZXJBY3Rpb25EaWFsb2cgLm14X0RpYWxvZ19jb250ZW50IC5teF9Db25maXJtVXNlckFjdGlvbkRpYWxvZ191c2VyIHtcbiAgICBtaW4taGVpZ2h0OiA0OHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5cbi5teF9Db25maXJtVXNlckFjdGlvbkRpYWxvZ19hdmF0YXIge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMjBweDtcbn1cblxuLm14X0NvbmZpcm1Vc2VyQWN0aW9uRGlhbG9nX25hbWUge1xuICAgIHBhZGRpbmctdG9wOiAycHg7XG4gICAgZm9udC1zaXplOiAkZm9udC0xOHB4O1xufVxuXG4ubXhfQ29uZmlybVVzZXJBY3Rpb25EaWFsb2dfdXNlcklkIHtcbiAgICBmb250LXNpemU6ICRmb250LTEzcHg7XG59XG5cbi5teF9Db25maXJtVXNlckFjdGlvbkRpYWxvZ19yZWFzb25GaWVsZCB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE3IE1pY2hhZWwgVGVsYXR5bnNraSA8N3QzY2hndXlAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQ3JlYXRlUm9vbURpYWxvZ19kZXRhaWxzIHtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuXG4gICAgLm14X0NyZWF0ZVJvb21EaWFsb2dfZGV0YWlsc19zdW1tYXJ5IHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuXG4gICAgICAgIC8qIGxpc3Qtc3R5bGUgZG9lc24ndCBkbyBpdCBmb3Igd2Via2l0ICovXG4gICAgICAgICY6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiBkaXYge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgbWFyZ2luOiA1cHggMDtcblxuICAgICAgICBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfQ3JlYXRlUm9vbURpYWxvZ19sYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbn1cblxuLm14X0NyZWF0ZVJvb21EaWFsb2dfaW5wdXRfY29udGFpbmVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyMHB4O1xufVxuXG4ubXhfQ3JlYXRlUm9vbURpYWxvZ19pbnB1dCB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgIHBhZGRpbmc6IDlweDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLm14X0NyZWF0ZVJvb21EaWFsb2dfYWxpYXNDb250YWluZXIge1xuICAgIC8qIG5lZWRlZCB0byBtYWtlIHRoZSBhbGlhcyBmaWVsZCBvbmx5IGdyb3cgYXMgd2lkZSBhcyBuZWVkZWQgYXMgb3Bwb3NlZCB0byBmdWxsIHdpZHRoICovXG4gICAgZGlzcGxheTogZmxleDtcbn1cblxuLm14X0NyZWF0ZVJvb21EaWFsb2cge1xuICAgICYubXhfRGlhbG9nX2ZpeGVkV2lkdGgge1xuICAgICAgICB3aWR0aDogNDUwcHg7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICB9XG5cbiAgICBwLFxuICAgIC5teF9GaWVsZF9pbnB1dCBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzRmxhZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzRmxhZ19sYWJlbCB7XG4gICAgICAgIGZsZXg6IDEgMSAwO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIH1cblxuICAgIC5teF9Ub2dnbGVTd2l0Y2gge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDMwcHg7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19jb250ZW50ID4gLm14X1NldHRpbmdzRmxhZyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgfVxuXG4gICAgLm14X0ZpZWxkIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIGZvcm0ge1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIG1hcmdpbjogMCA4NXB4IDAgMDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIH1cbn1cblxuLm14X0NyZWF0ZVJvb21EaWFsb2dfbGFiZWxsZWRDaGVja2JveCB7XG4gICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI2IEVsZW1lbnQgQ3JlYXRpb25zIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X0NyZWF0ZVNlY3Rpb25EaWFsb2cge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcblxuICAgIC5teF9DcmVhdGVTZWN0aW9uRGlhbG9nX3RpdGxlIHtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgJi5teF9EaWFsb2dfZml4ZWRXaWR0aCB7XG4gICAgICAgIC8qIDU3NnB4IGNvbWluZyBmcm9tIEZpZ21hIGFuZCByZW1vdmUgZXh0ZXJuYWwgcGFkZGluZyAqL1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoNTc2cHggLSB2YXIoLS1jcGQtc3BhY2UtMjB4KSk7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19oZWFkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DcmVhdGVTdWJzcGFjZURpYWxvZ193cmFwcGVyIHtcbiAgICAubXhfRGlhbG9nIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG59XG5cbi5teF9DcmVhdGVTdWJzcGFjZURpYWxvZyB7XG4gICAgd2lkdGg6IDQ4MHB4O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuXG4gICAgLm14X0NyZWF0ZVN1YnNwYWNlRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAgICAgLm14X0NyZWF0ZVN1YnNwYWNlRGlhbG9nX2JldGFOb3RpY2Uge1xuICAgICAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci1wYW5lbC1iZy1jb2xvcjtcblxuICAgICAgICAgICAgLm14X0JldGFDYXJkX2JldGFQaWxsIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0pvaW5SdWxlRHJvcGRvd24gKyBwIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfQ3JlYXRlU3Vic3BhY2VEaWFsb2dfZm9vdGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcblxuICAgICAgICAubXhfQ3JlYXRlU3Vic3BhY2VEaWFsb2dfZm9vdGVyX3Byb21wdCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAzNnB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI1IE5ldyBWZWN0b3IgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfQ3J5cHRvIHtcbiAgICB0YWJsZSB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTR4KSAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBib3JkZXItc3BhY2luZzogdmFyKC0tY3BkLXNwYWNlLTJ4KSAwO1xuXG4gICAgICAgIHRoZWFkIHtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctc20tc2VtaWJvbGQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE4LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9EZWFjdGl2YXRlQWNjb3VudERpYWxvZyAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG59XG5cbi5teF9EZWFjdGl2YXRlQWNjb3VudERpYWxvZyAubXhfRGVhY3RpdmF0ZUFjY291bnREaWFsb2dfaW5wdXRfc2VjdGlvbiAubXhfRmllbGQge1xuICAgIHdpZHRoOiAzMDBweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE3IE1pY2hhZWwgVGVsYXR5bnNraSA8N3QzY2hndXlAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGV2dG9vbHNEaWFsb2dfd3JhcHBlciB7XG4gICAgLm14X0RpYWxvZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19maXhlZFdpZHRoIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAubXhfRGlhbG9nX2J1dHRvbnMgYnV0dG9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRGV2VG9vbHNfdG9nZ2xlRm9ybSB7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICB9XG59XG5cbi5teF9EZXZUb29sc190b29sSGVhZGluZyB7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy1zbS1zZW1pYm9sZCk7XG59XG5cbi5teF9EZXZUb29sc19jb250ZW50IHtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIC8qIEdpdmUgcm9vbSBmb3IgZm9jdXMgb3V0bGluZXMgKi9cbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgIHBhZGRpbmctYmxvY2stZW5kOiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG59XG5cbi5teF9EZXZUb29sc19Sb29tU3RhdGVFeHBsb3Jlcl9xdWVyeSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLm14X0RldlRvb2xzX2J1dHRvbiB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1ib3R0b206IDhweCAhaW1wb3J0YW50O1xufVxuXG4ubXhfRGV2VG9vbHNfUm9vbVN0YXRlRXhwbG9yZXJfYnV0dG9uX2hhc1NwYWNlcyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5teF9EZXZUb29sc19idXR0b24ubXhfRGV2VG9vbHNfUm9vbVN0YXRlRXhwbG9yZXJfYnV0dG9uX2VtcHR5U3RyaW5nIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5teF9EZXZUb29sc19sYWJlbF9sZWZ0IHtcbiAgICBmbG9hdDogbGVmdDtcbn1cblxuLm14X0RldlRvb2xzX2xhYmVsX3JpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5cbi5teF9EZXZUb29sc19sYWJlbF9ib3R0b20ge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTVlNWU1O1xufVxuXG4ubXhfRGV2VG9vbHNfaW5wdXRSb3cge1xuICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbn1cblxuLm14X0RldlRvb2xzX2lucHV0TGFiZWxDZWxsIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmctcmlnaHQ6IDI0cHg7XG59XG5cbi5teF9EZXZUb29sc190ZXh0YXJlYSB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIG1heC13aWR0aDogNjg0cHg7XG4gICAgbWluLWhlaWdodDogMjUwcHg7XG4gICAgcGFkZGluZzogMTBweDtcbn1cblxuLm14X0RldlRvb2xzX2V2ZW50VHlwZVN0YXRlS2V5R3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4ubXhfRGV2VG9vbHNfY29udGVudCAubXhfRmllbGRfaW5wdXQ6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA0MnB4O1xufVxuXG4ubXhfRGV2VG9vbHNfVmVyaWZpY2F0aW9uUmVxdWVzdCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NjY2NjYztcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgcGFkZGluZzogMXB4IDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgZm9udC1mYW1pbHk6ICRtb25vc3BhY2UtZm9udC1mYW1pbHk7XG5cbiAgICBkbCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWF4LWNvbnRlbnQgYXV0bztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIGRkIHtcbiAgICAgICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDI7XG4gICAgfVxuXG4gICAgZGQ6ZW1wdHkge1xuICAgICAgICBjb2xvcjogIzY2NjY2NjtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCIoZW1wdHkpXCI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkdCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBncmlkLWNvbHVtbi1zdGFydDogMTtcbiAgICB9XG5cbiAgICBkdDo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBcIjpcIjtcbiAgICB9XG59XG5cbi5teF9EZXZUb29sc19TZXR0aW5nc0V4cGxvcmVyIHtcbiAgICB0YWJsZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuXG4gICAgICAgIHRoIHtcbiAgICAgICAgICAgIC8qIENvbG91ciBjaG9pY2U6IGZpcnN0IG9uZSBhdXRvY29tcGxldGUgZ2F2ZSBtZS4gKi9cbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYWNjZW50O1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRkLFxuICAgICAgICB0aCB7XG4gICAgICAgICAgICB3aWR0aDogMzYwcHg7IC8qIFwiZmVlbHMgcmlnaHRcIiBudW1iZXIgKi9cblxuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRkICsgdGQsXG4gICAgICAgIHRoICsgdGgge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICB0cjpob3ZlciB7XG4gICAgICAgICAgICAvKiBDb2xvdXIgY2hvaWNlOiBmaXJzdCBvbmUgYXV0b2NvbXBsZXRlIGdhdmUgbWUuICovXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0RldlRvb2xzX1NldHRpbmdzRXhwbG9yZXJfbXV0YWJsZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG4gICAgfVxuXG4gICAgLm14X0RldlRvb2xzX1NldHRpbmdzRXhwbG9yZXJfaW1tdXRhYmxlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFsZXJ0O1xuICAgIH1cblxuICAgIC5teF9EZXZUb29sc19TZXR0aW5nc0V4cGxvcmVyX2VkaXQge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICB9XG5cbiAgICAubXhfRGV2VG9vbHNfU2V0dGluZ3NFeHBsb3Jlcl93YXJuaW5nIHtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgJGFsZXJ0O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIH1cbn1cblxuLm14X0RldlRvb2xzX1NldHRpbmdzRXhwbG9yZXJfc2V0dGluZyB7XG4gICAgLyogb3ZlcnJpZGUgZGVmYXVsdCBsaW5rIGJ1dHRvbiBjb2xvciAqL1xuICAgIC8qIGFzIGl0IGlzIHRoZSBzYW1lIGFzIHRoZSBiYWNrZ3JvdW5kIGhpZ2hsaWdodCAqL1xuICAgIC8qIHVzZWQgb24gZm9jdXMgKi9cbiAgICBjb2xvcjogJGxpbmtzICFpbXBvcnRhbnQ7XG59XG5cbi5teF9EZXZUb29sc19zdGlja3lfZXhwbG9yZXIge1xuICAgIHRhYmxlIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgICAgIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG5cbiAgICAgICAgdGgge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoI3VzZXJfaGVhZGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAzNSU7XG4gICAgICAgIH1cbiAgICAgICAgdGgjc3RpY2t5X2tleV9oZWFkZXIge1xuICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgfVxuICAgICAgICB0aCNleHBpcmVzX2luX2hlYWRlciB7XG4gICAgICAgICAgICB3aWR0aDogMTUlO1xuICAgICAgICB9XG5cbiAgICAgICAgdHIge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXByaW1hcnkpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICB0cjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tc2Vjb25kYXJ5LWhvdmVyZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdHI6Zm9jdXMtdmlzaWJsZSB7XG4gICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTIpIHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItZm9jdXNlZCk7XG4gICAgICAgIH1cblxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGQucmVtYWluaW5nX3RpbWVfY29sdW1uIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAoQykgMjAyNiBNZXRNZXRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyogXCJIQVBBTkFcIiAoc3RheSkgaXMgdGhlIHByb21pbmVudCwgZGVmYXVsdCBvcHRpb247IFwiTkRJWU9cIiAobGVhdmUpIHN0YXlzIHNtYWxsIGFuZCBvdXRsaW5lZCDigJRcbiAgIGEgZGVsaWJlcmF0ZSByZXRlbnRpb24gbnVkZ2UsIG1hdGNoaW5nIHRoZSBndWVzdC1vbmJvYXJkaW5nIGJyYW5kIGNvbG9ycy4gKi9cbi5teF9FeGl0Um9vbUNvbmZpcm1EaWFsb2dfc3RheUJ1dHRvbi5teF9EaWFsb2dfcHJpbWFyeSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWV0bWV0LWJyYW5kLXByaW1hcnkpO1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWV0bWV0LWJyYW5kLXByaW1hcnkpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTZweDtcbiAgICBwYWRkaW5nOiAxMHB4IDI0cHg7XG59XG5cbi5teF9FeGl0Um9vbUNvbmZpcm1EaWFsb2dfZXhpdEJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWV0bWV0LWJyYW5kLXNlY29uZGFyeSk7XG4gICAgY29sb3I6IHZhcigtLW1ldG1ldC1icmFuZC1zZWNvbmRhcnkpO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTNweDtcbiAgICBwYWRkaW5nOiA0cHggMTJweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCwyMDI1IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0V4cG9ydERpYWxvZyB7XG4gICAgLm14X0V4cG9ydERpYWxvZ19zdWJoZWFkaW5nIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNnB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBtYXJnaW4tdG9wOiAxOHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIH1cblxuICAgICYubXhfRXhwb3J0RGlhbG9nX0V4cG9ydGluZyB7XG4gICAgICAgIC5teF9FeHBvcnREaWFsb2dfb3B0aW9ucyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9GaWVsZF9zZWxlY3Q6OmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgZGl2ID4gZGl2IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRpbmZvLXBsaW50aC1mZy1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbiBpbnB1dFt0eXBlPVwicmFkaW9cIl06Y2hlY2tlZCArIGRpdiB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHVuc2V0O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ZpZWxkX3ZhbGlkLm14X0ZpZWxkIGxhYmVsLFxuICAgICAgICAubXhfRmllbGRfdmFsaWQubXhfRmllbGQ6Zm9jdXMtd2l0aGluIGxhYmVsIHtcbiAgICAgICAgICAgIGNvbG9yOiB1bnNldDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9GaWVsZF92YWxpZC5teF9GaWVsZCxcbiAgICAgICAgLm14X0ZpZWxkX3ZhbGlkLm14X0ZpZWxkOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRpbnB1dC1ib3JkZXItY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRXhwb3J0RGlhbG9nX3Byb2dyZXNzIHtcbiAgICAgICAgLm14X0RpYWxvZ19idXR0b25zIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHVuc2V0O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDE4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3Bpbm5lciB7XG4gICAgICAgICAgICB3aWR0aDogdW5zZXQ7XG4gICAgICAgICAgICBoZWlnaHQ6IHVuc2V0O1xuICAgICAgICAgICAgZmxleDogdW5zZXQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbiA+IC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG4gICAgfVxuXG4gICAgLm14X0ZpZWxkIHtcbiAgICAgICAgd2lkdGg6IDI1NnB4O1xuICAgIH1cblxuICAgIC5teF9GaWVsZF9wb3N0Zml4IHtcbiAgICAgICAgcGFkZGluZzogOXB4IDEwcHg7XG4gICAgfVxufVxuXG4ubXhfRXhwb3J0RGlhbG9nX2F0dGFjaG1lbnRzLWNoZWNrYm94IHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ZlZWRiYWNrRGlhbG9nIHtcbiAgICBociB7XG4gICAgICAgIG1hcmdpbjogMjRweCAwO1xuICAgICAgICBib3JkZXItY29sb3I6ICRpbnB1dC1ib3JkZXItY29sb3I7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjRweDtcblxuICAgICAgICA+IGgyIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMycHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRmVlZGJhY2tEaWFsb2dfc2VjdGlvbiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogMTJweCA1MnB4IDEycHggNjhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuXG4gICAgICAgICYgKyAubXhfRmVlZGJhY2tEaWFsb2dfc2VjdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgPiBoMyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE4cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjJweDtcbiAgICAgICAgfVxuXG4gICAgICAgID4gcCB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICBtYXJnaW46IDhweCAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRmVlZGJhY2tEaWFsb2dfc2VjdGlvbl9taWNyb2NvcHkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgIH1cblxuICAgICAgICBhLFxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmsge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmID4gc3ZnIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDE2cHg7XG4gICAgICAgICAgICB0b3A6IDEycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaWNvbi1idXR0b24tY29sb3I7XG4gICAgICAgICAgICBjb2xvcjogJGF2YXRhci1pbml0aWFsLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0ZlZWRiYWNrRGlhbG9nX3JhdGVBcHAge1xuICAgICAgICAubXhfU3R5bGVkUmFkaW9CdXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZSAxcyxcbiAgICAgICAgICAgICAgICBib3JkZXIgMC41cztcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBkaXYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkaWNvbi1idXR0b24tY29sb3I7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogNXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfU3R5bGVkUmFkaW9CdXR0b25fc3BhY2VyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmICsgLm14X1N0eWxlZFJhZGlvQnV0dG9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jaGVja2VkIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgUm9iaW4gVG93bnNlbmQgPHJvYmluQHJvYmluLnRvd24+XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Gb3J3YXJkRGlhbG9nIHtcbiAgICB3aWR0aDogNTIwcHg7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgaGVpZ2h0OiA4MHZoO1xuXG4gICAgPiBoMyB7XG4gICAgICAgIG1hcmdpbjogMCAwIDZweDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgfVxuXG4gICAgPiAubXhfRm9yd2FyZERpYWxvZ19wcmV2aWV3IHtcbiAgICAgICAgbWF4LWhlaWdodDogMzAlO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgICAgICAubXhfRXZlbnRUaWxlW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBkaXYge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBXaGVuIGZvcndhcmRpbmcgbWVzc2FnZXMgZnJvbSBlbmNyeXB0ZWQgcm9vbXMsIEV2ZW50VGlsZSB3aWxsIGNvbXBsYWluICovXG4gICAgICAgIC8qIHRoYXQgb3VyIHByZXZpZXcgaXMgdW5lbmNyeXB0ZWQsIHdoaWNoIGRvZXNuJ3QgYWN0dWFsbHkgbWF0dGVyICovXG4gICAgICAgIC8qIFdlIGFsc28gaGlkZSBkb3dubG9hZCBsaW5rcyB0byBub3QgZW5jb3VyYWdlIHVzZXJzIHRvIHRyeSBpbnRlcmFjdGluZyAqL1xuICAgICAgICAubXhfRXZlbnRUaWxlX21zZ09wdGlvbixcbiAgICAgICAgLm14X0V2ZW50VGlsZV9lMmVJY29uLFxuICAgICAgICAubXhfTUZpbGVCb2R5IFtkYXRhLXR5cGU9XCJkb3dubG9hZFwiXSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgPiBociB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkaW5wdXQtYm9yZGVyLWNvbG9yO1xuICAgICAgICBtYXJnaW46IDEycHggMDtcbiAgICB9XG5cbiAgICA+IC5teF9Gb3J3YXJkTGlzdCB7XG4gICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuXG4gICAgICAgIC5teF9TZWFyY2hCb3gge1xuICAgICAgICAgICAgLyogVG8gbWF0Y2ggdGhlIHNwYWNlIGFyb3VuZCB0aGUgdGl0bGUgKi9cbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDE1cHggMDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcblxuICAgICAgICAgICAgJjpub3QoOmZvY3VzLXdpdGhpbikgKyAubXhfRm9yd2FyZExpc3RfY29udGVudCB7XG4gICAgICAgICAgICAgICAgLyogSW5oaWJpdCB0aGUgc3R5bGluZyBpZiBmb2N1cyBpcyBub3Qgd2l0aGluIHRoZSBpbnB1dCB3aGljaCBoYW5kbGVzIGtleWJvYXJkIGFjY2Vzc2liaWxpdHkgKi9cbiAgICAgICAgICAgICAgICAtLW14X0ZvcndhcmRMaXN0X2VudHJ5X3NlbGVjdGVkQmdDb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRm9yd2FyZExpc3RfY29udGVudCB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRm9yd2FyZExpc3Rfbm9SZXN1bHRzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Gb3J3YXJkTGlzdF9yZXN1bHRzIHtcbiAgICAgICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Gb3J3YXJkTGlzdF9yZXN1bHRzTGlzdCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogOHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRm9yd2FyZExpc3RfZW50cnkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiA2cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAmLm14X0ZvcndhcmRMaXN0X2VudHJ5X2FjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW14X0ZvcndhcmRMaXN0X2VudHJ5X3NlbGVjdGVkQmdDb2xvciwgJHNwYWNlUGFuZWwtYmctY29sb3IpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9Gb3J3YXJkTGlzdF9yb29tQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X0RlY29yYXRlZFJvb21BdmF0YXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X0ZvcndhcmRMaXN0X2VudHJ5X25hbWUsXG4gICAgICAgICAgICAgICAgICAgIC5teF9Gb3J3YXJkTGlzdF9lbnRyeV9kZXRhaWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X0ZvcndhcmRMaXN0X2VudHJ5X25hbWUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X0ZvcndhcmRMaXN0X2VudHJ5X2RldGFpbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X0ZvcndhcmRMaXN0X3NlbmRCdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuXG4gICAgICAgICAgICAgICAgICAgICY6bm90KC5teF9Gb3J3YXJkTGlzdF9jYW5TZW5kKSAubXhfRm9yd2FyZExpc3Rfc2VuZExhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIEhpZGUgdGhlIFwiU2VuZFwiIGxhYmVsIHdoaWxlIHByZXNlcnZpbmcgYnV0dG9uIHNpemUgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYgPiBzdmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5teF9Gb3J3YXJkRGlhbG9nX25vdGlmaWNhdGlvbkJhZGdlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIE1hdGNoIHRoZSBmYWlsZWQgdG8gc2VuZCBpbmRpY2F0b3IncyBjb2xvciB3aXRoIHRoZSBkaXNhYmxlZCBidXR0b24gKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b24tZGFuZ2VyLWRpc2FibGVkLWZnLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0dlbmVyaWNGZWF0dXJlRmVlZGJhY2tEaWFsb2cge1xuICAgIC5teF9HZW5lcmljRmVhdHVyZUZlZWRiYWNrRGlhbG9nX3N1YmhlYWRpbmcge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTIwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbmNvbWluZ1Nhc0RpYWxvZ19vcHBvbmVudFByb2ZpbGVfaW1hZ2Uge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLm14X0luY29taW5nU2FzRGlhbG9nX29wcG9uZW50UHJvZmlsZSBoMiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTksIDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ludml0ZURpYWxvZ19mbGV4V3JhcHBlciAubXhfRGlhbG9nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfdHJhbnNmZXJXcmFwcGVyIC5teF9EaWFsb2cge1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuXG4ubXhfSW52aXRlRGlhbG9nX2FkZHJlc3NCYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAvKiBSaWdodCBtYXJnaW4gZm9yIHRoZSBkZXNpZ24uIFdlIGNvdWxkIGFwcGx5IHRoaXMgdG8gdGhlIHdob2xlIGRpYWxvZywgYnV0IHRoZW4gdGhlIHNjcm9sbGJhciAqL1xuICAgIC8qIGZvciB0aGUgdXNlciBzZWN0aW9uIGdldHMgd2VpcmQuICovXG4gICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMngpIDQ1cHggMCAwO1xuXG4gICAgLm14X0ludml0ZURpYWxvZ19lZGl0b3Ige1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgIH1cblxuICAgIC5teF9JbnZpdGVEaWFsb2dfZ29CdXR0b24ge1xuICAgICAgICBtaW4td2lkdGg6IDg2cHg7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDEwcHg7XG4gICAgICAgIGhlaWdodDogNDFweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI1cHg7XG4gICAgfVxufVxuXG4ubXhfSW52aXRlRGlhbG9nX3NlY3Rpb24ge1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuXG4gICAgLm14X0ludml0ZURpYWxvZ19zZWN0aW9uX3Nob3dNb3JlIHtcbiAgICAgICAgbWFyZ2luOiA3cHggMThweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG4ubXhfSW52aXRlRGlhbG9nX3NlY3Rpb25faGlkZGVuX3N1Z2dlc3Rpb25zX2Rpc2NsYWltZXIge1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgMCB2YXIoLS1jcGQtc3BhY2UtNHgpIDA7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcblxuICAgID4gc3BhbiB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG5cbiAgICA+IHAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufVxuXG4ubXhfSW52aXRlRGlhbG9nX2Zvb3RlciB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRpbnB1dC1ib3JkZXItY29sb3I7XG5cbiAgICA+IGgzIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtM3gpIDA7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgfVxuXG4gICAgLm14X0NvcHlhYmxlVGV4dC5teF9Db3B5YWJsZVRleHRfYm9yZGVyIHtcbiAgICAgICAgd2lkdGg6IHVuc2V0OyAvKiBmdWxsIHdpZHRoICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgPiBhIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfSW52aXRlRGlhbG9nX290aGVyIHtcbiAgICAvKiBQcmV2ZW50IHRoZSBkaWFsb2cgZnJvbSBqdW1waW5nIGFyb3VuZCByYW5kb21seSB3aGVuIGVsZW1lbnRzIGNoYW5nZS4gKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgaGVpZ2h0OiA2MDBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgaDIge1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLm14X0ludml0ZURpYWxvZ19hZGRyZXNzQmFyIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDA7XG4gICAgfVxuXG4gICAgLm14X0ludml0ZURpYWxvZ191c2VyU2VjdGlvbnMge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuXG4gICAgICAgIC5teF9JbnZpdGVEaWFsb2dfc2VjdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0ludml0ZURpYWxvZ19jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAubXhfSW52aXRlUHJvZ3Jlc3NCb2R5IHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTEyeCk7XG4gICAgfVxufVxuXG4ubXhfSW52aXRlRGlhbG9nX3RyYW5zZmVyIHtcbiAgICB3aWR0aDogYXV0bztcblxuICAgIC5teF9JbnZpdGVEaWFsb2dfY29udGVudCB7XG4gICAgICAgIHdpZHRoOiA0OTZweDtcbiAgICAgICAgaGVpZ2h0OiA0MzBweDtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG5cbiAgICAgICAgLm14X1RhYmJlZFZpZXcge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG5cbiAgICAgICAgICAgIC5teF9UYWJiZWRWaWV3X3RhYlBhbmVsIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAgICAgICAgLm14X1RhYmJlZFZpZXdfdGFiUGFuZWxDb250ZW50IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfSW52aXRlRGlhbG9nX2FkZHJlc3NCYXIge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cblxuICAgIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cbn1cblxuLm14X0ludml0ZURpYWxvZ191c2VyU2VjdGlvbnMge1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgcGFkZGluZzogMCA0NXB4IHZhcigtLWNwZC1zcGFjZS0xeCkgMDtcbn1cblxuLm14X0ludml0ZURpYWxvZ19oZWxwVGV4dCB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4ubXhfSW52aXRlRGlhbG9nX2RpYWxQYWQge1xuICAgIHdpZHRoOiAyMjRweDtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG5cbiAgICAubXhfSW52aXRlRGlhbG9nX2RpYWxQYWRGaWVsZCB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgICAgIGJvcmRlci1pbmxpbmU6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHF1YXRlcm5hcnktY29udGVudDtcblxuICAgICAgICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ZpZWxkX3Bvc3RmaXgge1xuICAgICAgICAgICAgLyogUmVtb3ZlIGJvcmRlciBzZXBhcmF0b3IgYmV0d2VlbiBwb3N0Zml4IGFuZCBmaWVsZCBjb250ZW50ICovXG4gICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9EaWFsUGFkIHtcbiAgICAgICAgcm93LWdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgY29sdW1uLWdhcDogNDhweDtcbiAgICAgICAgbWFyZ2luLWlubGluZTogYXV0bztcbiAgICB9XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfdHJhbnNmZXJDb25zdWx0Q29ubmVjdCB7XG4gICAgcGFkZGluZy10b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgLyogVGhpcyB3YW50cyBhIGRyb3Agc2hhZG93IHRoZSBmdWxsIHdpZHRoIG9mIHRoZSBkaWFsb2csIHNvIHVzZSBuZWdhdGl2ZSBtYXJnaW4gdG8gbWFrZSBpdCBmdWxsIHdpZHRoLFxuICAgICAqIHRoZW4gY29tcGVuc2F0ZSB3aXRoIHBhZGRpbmdcbiAgICAgKi9cbiAgICBwYWRkaW5nLWlubGluZTogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICBtYXJnaW4taW5saW5lOiBjYWxjKC0xICogdmFyKC0tY3BkLXNwYWNlLTZ4KSk7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm14X0ludml0ZURpYWxvZ190cmFuc2ZlckNvbnN1bHRDb25uZWN0X3B1c2hSaWdodCB7XG4gICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcbn1cblxuLm14X0ludml0ZURpYWxvZ190aWxlIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgJi5teF9JbnZpdGVEaWFsb2dfdGlsZS0taW52aXRlckVycm9yIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtYXgtY29udGVudCBhdXRvOyAvKiBtYXgtY29udGVudCA9IGF2YXRhciB3aWR0aCAqL1xuICAgIH1cblxuICAgICoge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgIC5teF9JbnZpdGVEaWFsb2dfdGlsZV9hdmF0YXJTdGFjayB7XG4gICAgICAgIHdpZHRoOiAzNnB4O1xuICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBncmlkLXJvdy1zdGFydDogMTtcbiAgICAgICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDE7XG5cbiAgICAgICAgJiA+ICoge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9JbnZpdGVEaWFsb2dfdGlsZV9uYW1lU3RhY2sge1xuICAgICAgICBncmlkLXJvdy1zdGFydDogMTtcbiAgICAgICAgZ3JpZC1jb2x1bW4tc3RhcnQ6IDI7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW47XG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgICAgICBnYXA6IDJweCAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIC5teF9JbnZpdGVEaWFsb2dfdGlsZV9uYW1lU3RhY2tfbmFtZSxcbiAgICAgICAgLm14X0ludml0ZURpYWxvZ190aWxlX25hbWVTdGFja191c2VySWQge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9JbnZpdGVEaWFsb2dfdGlsZV9uYW1lU3RhY2tfbmFtZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ludml0ZURpYWxvZ190aWxlX25hbWVTdGFja191c2VySWQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0ludml0ZURpYWxvZ19tdWx0aUludml0ZXJFcnJvcldyYXBwZXIgLm14X0RpYWxvZyB7XG4gICAgd2lkdGg6IDYwMHB4O1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgIC5teF9EaWFsb2dfZml4ZWRXaWR0aCB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgIH1cbn1cblxuLm14X0ludml0ZURpYWxvZ19tdWx0aUludml0ZXJFcnJvciB7XG4gICAgPiBoNCB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgIH1cblxuICAgIC5teF9JbnZpdGVEaWFsb2dfbXVsdGlJbnZpdGVyRXJyb3JfZ3JvdXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS02eCk7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfSW52aXRlRGlhbG9nX211bHRpSW52aXRlckVycm9yX3JlYXNvbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1jcGQtZm9udC1zaXplLWJvZHktbWQpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgfVxufVxuXG4ubXhfSW52aXRlRGlhbG9nX2lkZW50aXR5U2VydmVyIHtcbiAgICBtYXJnaW4tdG9wOiAxZW07XG59XG5cbi5teF9JbnZpdGVEaWFsb2dfb25lVGhyZWVwaWQge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0yeCkgMDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ludml0ZVByb2dyZXNzQm9keSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbGctcmVndWxhcik7XG5cbiAgICBoMSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy1zbS1zZW1pYm9sZCk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0pvaW5SdWxlRHJvcGRvd24ge1xuICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgLm14X0Ryb3Bkb3duX29wdGlvbiB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0zMnB4O1xuICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMycHg7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMS01eCk7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IC0ycHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMS01eCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubXhfSm9pblJ1bGVEcm9wZG93bl9rbm9jazo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfSm9pblJ1bGVEcm9wZG93bl9pY29uIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiA2cHg7XG4gICAgICAgIHRvcDogOHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MZWF2ZVNwYWNlRGlhbG9nX3dyYXBwZXIge1xuICAgIC5teF9EaWFsb2cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwYWRkaW5nOiAyNHB4IDMycHg7XG5cbiAgICAgICAgLm14X0xlYXZlU3BhY2VEaWFsb2cge1xuICAgICAgICAgICAgd2lkdGg6IDQ0MHB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgICAgIGhlaWdodDogNTIwcHg7XG5cbiAgICAgICAgICAgIC5teF9EaWFsb2dfY29udGVudCB7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgICAgICAgICAgICAgLm14X0xlYXZlU3BhY2VEaWFsb2dfc2VjdGlvbl93YXJuaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDEycHggMCAwO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMnB4IDhweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlci1wYW5lbC1iZy1jb2xvcjtcblxuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA+IHAge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTG9jYXRpb25WaWV3RGlhbG9nX3dyYXBwZXIgLm14X0RpYWxvZyB7XG4gICAgcGFkZGluZzogMHB4O1xufVxuXG4ubXhfTG9jYXRpb25WaWV3RGlhbG9nIHtcbiAgICAvKiBzdWJ0cmFjdCAwLjVweCB0byBwcmV2ZW50IHNpbmdsZS1waXhlbCBtYXJnaW4gZHVlIHRvIHJvdW5kaW5nICovXG4gICAgd2lkdGg6IGNhbGMoODB2dyAtIDAuNXB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoODB2aCAtIDAuNXB4KTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgLm14X0RpYWxvZ19oZWFkZXIge1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICBwb3NpdGlvbjogdW5zZXQ7XG5cbiAgICAgICAgLm14X0RpYWxvZ190aXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19jYW5jZWxCdXR0b24ge1xuICAgICAgICB6LWluZGV4OiA0MDEwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIHRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG59XG5cbi5teF9Mb2NhdGlvblZpZXdEaWFsb2dfbWFwIHtcbiAgICB3aWR0aDogODB2dztcbiAgICBoZWlnaHQ6IDgwdmg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgTWFuYW4gU2FkYW5hIDxtYW5hbmNvZGVzLmRldkBnbWFpbC5jb20+XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Mb2dvdXREaWFsb2cge1xuICAgIHdpZHRoOiAyNnJlbTtcblxuICAgIC5teF9FbmNyeXB0aW9uQ2FyZCB7XG4gICAgICAgIGdhcDogMDtcbiAgICAgICAgaDIge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgICAgIC5teF9FbmNyeXB0aW9uQ2FyZF9lbXBoYXNpc2VkQ29udGVudCB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTEyeCk7XG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQsMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfd3JhcHBlciB7XG4gICAgLm14X0RpYWxvZyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxufVxuXG4ubXhfTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nIHtcbiAgICB3aWR0aDogNDgwcHg7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgaGVpZ2h0OiA2MHZoO1xuXG4gICAgLm14X1NlYXJjaEJveCB7XG4gICAgICAgIC8qIFRvIG1hdGNoIHRoZSBzcGFjZSBhcm91bmQgdGhlIHRpdGxlICovXG4gICAgICAgIG1hcmdpbjogMCAwIDE1cHggMDtcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgIH1cblxuICAgIC5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfY29udGVudCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG5cbiAgICAubXhfTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nX25vUmVzdWx0cyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgIH1cblxuICAgIC5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfc2VjdGlvbiB7XG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICAgICAgfVxuXG4gICAgICAgID4gaDMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nX2VudHJ5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuXG4gICAgICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfTWFuYWdlUmVzdHJpY3RlZEpvaW5SdWxlRGlhbG9nX2VudHJ5X25hbWUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCA4cHg7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfZW50cnlfZGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X01hbmFnZVJlc3RyaWN0ZWRKb2luUnVsZURpYWxvZ19zZWN0aW9uX3NwYWNlcyB7XG4gICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfc2VjdGlvbl9pbmZvIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIG1hcmdpbjogMTJweCAwO1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItcGFuZWwtYmctY29sb3I7XG5cbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIG1hcmdpbjogMCB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X01hbmFnZVJlc3RyaWN0ZWRKb2luUnVsZURpYWxvZ19mb290ZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuXG4gICAgICAgIC5teF9NYW5hZ2VSZXN0cmljdGVkSm9pblJ1bGVEaWFsb2dfZm9vdGVyX2J1dHRvbnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgICAgICAgICAgJiArIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDI0cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01lc3NhZ2VFZGl0SGlzdG9yeURpYWxvZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1heC1oZWlnaHQ6IDYwdmg7XG59XG5cbi5teF9NZXNzYWdlRWRpdEhpc3RvcnlEaWFsb2dfc2Nyb2xsUGFuZWwge1xuICAgIGZsZXg6IDEgMSBhdXRvO1xufVxuXG4ubXhfTWVzc2FnZUVkaXRIaXN0b3J5RGlhbG9nX2Vycm9yIHtcbiAgICBjb2xvcjogJGFsZXJ0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X01lc3NhZ2VFZGl0SGlzdG9yeURpYWxvZ19lZGl0cyB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcblxuICAgIC5teF9FZGl0SGlzdG9yeU1lc3NhZ2VfZW1vdGVTZW5kZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgc3Bhbi5teF9FZGl0SGlzdG9yeU1lc3NhZ2VfZGVsZXRpb24sXG4gICAgc3Bhbi5teF9FZGl0SGlzdG9yeU1lc3NhZ2VfaW5zZXJ0aW9uIHtcbiAgICAgICAgcGFkZGluZzogMHB4IDJweDtcbiAgICB9XG5cbiAgICAubXhfRWRpdEhpc3RvcnlNZXNzYWdlX2RlbGV0aW9uIHtcbiAgICAgICAgY29sb3I6IHJnYigyNTUsIDc2LCA4NSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDc2LCA4NSwgMC4xKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgfVxuXG4gICAgLm14X0VkaXRIaXN0b3J5TWVzc2FnZV9pbnNlcnRpb24ge1xuICAgICAgICBjb2xvcjogcmdiKDI2LCAxNjksIDEyMyk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNiwgMTY5LCAxMjMsIDAuMSk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgIC8qIEVtdWxhdGUgbXhfRXZlbnRUaWxlW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0gKi9cbiAgICAubXhfRXZlbnRUaWxlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG5cbiAgICAgICAgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtc3BhY2luZy1ibG9jay1zdGFydCk7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtc3BhY2luZy1ibG9jay1lbmQpO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiB2YXIoLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWlubGluZS1zdGFydCk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtbGluZS1oZWlnaHQpO1xuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAtMXB4O1xuICAgICAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICAgICAgbGVmdDogLTEwcHg7XG4gICAgICAgICAgICByaWdodDogLTEwcHg7XG4gICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZXZlbnRidWJibGUtYmctaG92ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfSGlzdG9yeUFjdGlvbkJhciB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAubXhfSGlzdG9yeUFjdGlvbkJhciBbZGF0YS1wcmVzZW50YXRpb249XCJsYWJlbFwiXSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01vZGFsV2lkZ2V0RGlhbG9nIHtcbiAgICAubXhfTW9kYWxXaWRnZXREaWFsb2dfd2FybmluZyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG5cbiAgICAgICAgPiBpbWcge1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X01vZGFsV2lkZ2V0RGlhbG9nX2J1dHRvbnMge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIG1hcmdpbi10b3A6IDI0cHg7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24gKyAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWZyYW1lIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogNDUwcHg7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Qb2xsQ3JlYXRlRGlhbG9nIHtcbiAgICAubXhfUG9sbENyZWF0ZURpYWxvZ19idXN5IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG92ZXJsYXktYmFja2dyb3VuZDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG5cbiAgICAgICAgJjpudGgtY2hpbGQobiArIDIpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfUG9sbENyZWF0ZURpYWxvZ19vcHRpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tdG9wOiAxMXB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4OyAvKiAxMXB4IGZyb20gdGhlIHRvcCB3aWxsIGNvbGxhcHNlLCBzbyB0aGlzIGNyZWF0ZXMgYSAxNnB4IGdhcCBiZXR3ZWVuIG9wdGlvbnMgKi9cblxuICAgICAgICAubXhfRmllbGQge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Qb2xsQ3JlYXRlRGlhbG9nX3JlbW92ZU9wdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTJweDtcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Qb2xsQ3JlYXRlRGlhbG9nX2FkZE9wdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7IC8qIGFyYml0cmFyeSB0byBjcmVhdGUgc2Nyb2xsYWJsZSBhcmVhIHVuZGVyIHRoZSBwb2xsICovXG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25fZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1JlZ2lzdHJhdGlvbkVtYWlsUHJvbXB0RGlhbG9nIHtcbiAgICB3aWR0aDogNDE3cHg7XG5cbiAgICAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgICAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZ19wcmltYXJ5IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI2IEVsZW1lbnQgQ3JlYXRpb25zIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1JlbW92ZVNlY3Rpb25EaWFsb2cge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1JlcG9ydFJvb21EaWFsb2csXG4ubXhfRGVjbGluZUFuZEJsb2NrSW52aXRlRGlhbG9nIHtcbiAgICB0ZXh0YXJlYSB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtcHJpbWFyeSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIH1cblxuICAgIC8qXG4gICAgICBXb3JrYXJvdW5kIHRvIGZpeCBsYWJlbHMgYXBwZWFyaW5nIHdpdGggdGhlIHdyb25nIGNvbG9yLlxuXG4gICAgICAubXhfRGlhbG9nIChpbiByZXMvY3NzL19jb21tb24ucGNzcykgcmVkZWZpbmVzIHRoZSBib2R5IGNvbG9yXG4gICAgICBhcyAkbGlnaHQtZmctY29sb3IgcmF0aGVyIHRoYW4gdGhlIHN0YW5kYXJkIHByaW1hcnkgY29sb3IuXG5cbiAgICAgIFRoaXMgZm9yY2VzIHRoZSBjb2xvdXIgdG8gbWF0Y2ggdGhlIENvbXBvdW5kIHN0eWxlLCBidXRcbiAgICAgIGluIHRoZSBmdXR1cmUgdGhlIERpYWxvZ3Mgc2hvdWxkIG5vdCBmb3JjZSBhIGNvbG9yLlxuICAgICovXG4gICAgZm9ybSBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICB9XG59XG5cbi5teF9EZWNsaW5lQW5kQmxvY2tJbnZpdGVEaWFsb2cge1xuICAgIGRpdlthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSA+IGxhYmVsIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzRmxhZ19sYWJlbCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tU2V0dGluZ3NEaWFsb2cgLm14X0RpYWxvZ190aXRsZSB7XG4gICAgLW1zLXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nLXJpZ2h0OiA4MHB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19CcmlkZ2VMaXN0IHtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgbGkge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG5cbiAgICAgICAgJi5teF9Sb29tU2V0dGluZ3NEaWFsb2dfQnJpZGdlTGlzdF9saXN0SXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgICAgICAgICAgLyogYm9yZGVyLXN0eWxlIGFyb3VuZCBlYWNoIGJyaWRnZSBsaXN0IGl0ZW0gKi9cbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4IDFweDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHByaW1hcnktaGFpcmxpbmUtY29sb3I7XG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuXG4gICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9pY29uIHtcbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX3Byb3RvY29sSWNvbixcbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX3Byb3RvY29sSWNvbiBzcGFuLFxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfbm9Qcm90b2NvbEljb24ge1xuICAgICAgICAgICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRpbnB1dC1kYXJrZXItYmctY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19ub1Byb3RvY29sSWNvbixcbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX3Byb3RvY29sSWNvbiBpbWcge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19ub1Byb3RvY29sSWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRpbnB1dC1kYXJrZXItYmctY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19wcm90b2NvbEljb24ge1xuICAgICAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHggMXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29ycmVjdCBsZXR0ZXIgcGxhY2VtZW50ICovXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9kYXRhIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDg1JTtcblxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfY29sdW1uX2RhdGFfZGV0YWlscyxcbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9kYXRhX21ldGFkYXRhLFxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfY29sdW1uX2RhdGFfbWV0YWRhdGEgbGksXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ19jb2x1bW5fZGF0YV9wcm90b2NvbE5hbWUge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfY29sdW1uX2RhdGFfZGV0YWlscyxcbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9kYXRhX21ldGFkYXRhIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9kYXRhX21ldGFkYXRhIGxpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX2NvbHVtbl9kYXRhX3Byb3RvY29sTmFtZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZwdDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Jvb21TZXR0aW5nc0RpYWxvZ193b3Jrc3BhY2VfY2hhbm5lbF9kZXRhaWxzIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuXG4gICAgICAgICAgICAgICAgICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2dfY2hhbm5lbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA1cHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfUm9vbVNldHRpbmdzRGlhbG9nX21ldGFkYXRhIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3cteTogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE4LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tVXBncmFkZURpYWxvZyB7XG4gICAgcGFkZGluZy1yaWdodDogNzBweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5LTIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jvb21VcGdyYWRlV2FybmluZ0RpYWxvZyB7XG4gICAgbWF4LXdpZHRoOiAzOHZ3O1xuICAgIHdpZHRoOiAzOHZ3O1xuXG4gICAgLm14X1Jvb21VcGdyYWRlV2FybmluZ0RpYWxvZ19wcm9ncmVzcyB7XG4gICAgICAgIC5teF9Qcm9ncmVzc0JhciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDhweDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICBAbWl4aW4gUHJvZ3Jlc3NCYXJCb3JkZXJSYWRpdXMgOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Jvb21VcGdyYWRlV2FybmluZ0RpYWxvZ19wcm9ncmVzc1RleHQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1Jvb21VcGdyYWRlV2FybmluZ0RpYWxvZyAubXhfU2V0dGluZ3NGbGFnIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuXG4gICAgLm14X1RvZ2dsZVN3aXRjaCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc0ZsYWdfbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NlcnZlck9mZmxpbmVEaWFsb2cge1xuICAgIC5teF9TZXJ2ZXJPZmZsaW5lRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4NXB4O1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcblxuICAgICAgICBociB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjE7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgcGFkZGluZzogMTZweDtcblxuICAgICAgICAgICAgbGk6bnRoLWNoaWxkKG4gKyAyKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TZXJ2ZXJPZmZsaW5lRGlhbG9nX2NvbnRlbnRfY29udGV4dCB7XG4gICAgICAgICAgICAubXhfU2VydmVyT2ZmbGluZURpYWxvZ19jb250ZW50X2NvbnRleHRfdGltZXN0YW1wIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDExNXB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7IC8qIHNhbWUgYXMgYXZhdGFyICovXG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1NlcnZlck9mZmxpbmVEaWFsb2dfY29udGVudF9jb250ZXh0X3RpbWVsaW5lIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDE1NXB4KTsgLyogMTE1cHggdGltZXN0YW1wIHdpZHRoICsgNDBweCByaWdodCBtYXJnaW4gKi9cblxuICAgICAgICAgICAgICAgIC5teF9TZXJ2ZXJPZmZsaW5lRGlhbG9nX2NvbnRlbnRfY29udGV4dF90aW1lbGluZV9oZWFkZXIge1xuICAgICAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1NlcnZlck9mZmxpbmVEaWFsb2dfY29udGVudF9jb250ZXh0X3R4biB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuXG4gICAgICAgICAgICAgICAgICAgIC5teF9TZXJ2ZXJPZmZsaW5lRGlhbG9nX2NvbnRlbnRfY29udGV4dF90eG5fZGVzYyB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMTAwcHgpOyAvKiAxMDBweCBpcyBhbiBhcmJpdHJhcnkgbWFyZ2luIGZvciB0aGUgYnV0dG9uICovXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2VydmVyUGlja2VyRGlhbG9nIHtcbiAgICB3aWR0aDogNDY4cHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgIC5teF9EaWFsb2dfY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgPiBwIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuXG4gICAgICAgICAgICBtYXJnaW46IDE2cHggMDtcblxuICAgICAgICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDI0cHggMjRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gaDIge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgbWFyZ2luOiAxNnB4IDAgMTZweCA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICA+IGEge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NlcnZlclBpY2tlckRpYWxvZ19vdGhlckhvbWVzZXJ2ZXJSYWRpbyB7XG4gICAgICAgIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGRpdiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TZXJ2ZXJQaWNrZXJEaWFsb2dfb3RoZXJIb21lc2VydmVyIHtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdW5zZXQ7XG5cbiAgICAgICAgPiBpbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICA+IGxhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5IHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDI2cHgpO1xuICAgICAgICBtYXJnaW46IDAgOHB4O1xuICAgICAgICBwYWRkaW5nOiAxNXB4IDE4cHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTcgVmVjdG9yIENyZWF0aW9ucyBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NldEVtYWlsRGlhbG9nX2VtYWlsX2lucHV0IHtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGlucHV0LWJvcmRlci1jb2xvcjtcbiAgICBwYWRkaW5nOiA5cHg7XG4gICAgY29sb3I6ICRpbnB1dC1mZy1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAyODBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xufVxuXG4ubXhfU2V0RW1haWxEaWFsb2dfZW1haWxfaW5wdXQ6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qIE5vdCBhY3R1YWxseSBhIGNvbXBvbmVudCBidXQgdGhpbmdzIHNoYXJlZCBieSBzZXR0aW5ncyBjb21wb25lbnRzICovXG4ubXhfVXNlclNldHRpbmdzRGlhbG9nLFxuLm14X1Jvb21TZXR0aW5nc0RpYWxvZyxcbi5teF9TcGFjZVNldHRpbmdzRGlhbG9nLFxuLm14X1NwYWNlUHJlZmVyZW5jZXNEaWFsb2cge1xuICAgIHdpZHRoOiA5MHZ3O1xuICAgIG1heC13aWR0aDogOTgwcHg7XG4gICAgLyogc2V0IHRoZSBoZWlnaHQgdG9vIHNpbmNlIHRhYmJlZCB2aWV3IHNjcm9sbHMgaXRzZWxmLiAqL1xuICAgIGhlaWdodDogODB2aDtcblxuICAgIC5teF9UYWJiZWRWaWV3IHtcbiAgICAgICAgdG9wOiA5MHB4O1xuICAgIH1cblxuICAgIC5teF9UYWJiZWRWaWV3IC5teF9TZXR0aW5nc1RhYiB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIG1pbi13aWR0aDogNTgwcHg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwMHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgIC8qIFB1dCBzb21lIHBhZGRpbmcgb24gdGhlIGJvdHRvbSB0byBhdm9pZCB0aGUgc2V0dGluZ3MgdGFiIGZyb20gKi9cbiAgICAgICAgLyogY29sbGlkaW5nIGhhcnNobHkgd2l0aCB0aGUgZGlhbG9nIHdoZW4gc2Nyb2xsZWQgZG93bi4gKi9cbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEwMHB4O1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc0RpYWxvZ190YWJMYWJlbHNBbGVydDo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgY2xpcC1wYXRoOiBjaXJjbGUoNHB4KTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG59XG5cbi8qIE9uIG5hcnJvdyB2aWV3cG9ydHMsIHRoZSB0YWIgbGFiZWxzIGFyZSBoaWRkZW4sIHNvIHdlIG5lZWQgdG8gc2hpZnQgdGhlIGluZGljYXRvciBzbyBpdCBpc24ndCBvdmVyIHRoZSB0YWIgaWNvbi4gKi9cbkBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHtcbiAgICAubXhfVXNlclNldHRpbmdzRGlhbG9nLFxuICAgIC5teF9Sb29tU2V0dGluZ3NEaWFsb2csXG4gICAgLm14X1NwYWNlU2V0dGluZ3NEaWFsb2csXG4gICAgLm14X1NwYWNlUHJlZmVyZW5jZXNEaWFsb2cge1xuICAgICAgICAubXhfU2V0dGluZ3NEaWFsb2dfdGFiTGFiZWxzQWxlcnQ6OmFmdGVyIHtcbiAgICAgICAgICAgIHJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE4LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TaGFyZURpYWxvZyB7XG4gICAgLyogVmFsdWUgZnJvbSBmaWdtYSBkZXNpZ24gKi9cbiAgICB3aWR0aDogNDE2cHg7XG5cbiAgICAubXhfRGlhbG9nX2hlYWRlciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgLyogT3ZlcnJpZGUgZGlhbG9nIGhlYWRlciBwYWRkaW5nIHRvIGFibGUgdG8gY2VudGVyIGl0ICovXG4gICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMDtcbiAgICB9XG5cbiAgICAubXhfU2hhcmVEaWFsb2dfY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAubXhfU2hhcmVEaWFsb2dfdG9wIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLW1lZGl1bSk7XG4gICAgICAgIH1cblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU2hhcmVEaWFsb2dfc29jaWFsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDQ4cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDk5cHg7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TbGFzaENvbW1hbmRIZWxwRGlhbG9nIC5teF9TbGFzaENvbW1hbmRIZWxwRGlhbG9nX2hlYWRlclJvdyBoMiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuXG4ubXhfU2xhc2hDb21tYW5kSGVscERpYWxvZyAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMzRweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcGFjZVByZWZlcmVuY2VzRGlhbG9nIHtcbiAgICB3aWR0aDogNzAwcHg7XG4gICAgaGVpZ2h0OiA0MDBweDtcblxuICAgID4gaDQge1xuICAgICAgICBtYXJnaW46IC0xMnB4IDAgMDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfVGFiYmVkVmlldyB7XG4gICAgICAgIHRvcDogODBweDtcblxuICAgICAgICAubXhfU2V0dGluZ3NUYWIge1xuICAgICAgICAgICAgbWluLXdpZHRoOiB1bnNldDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcGFjZVNldHRpbmdzRGlhbG9nIHtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcblxuICAgIC5teF9TcGFjZVNldHRpbmdzX2Vycm9yVGV4dCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICAgIH1cblxuICAgIC5teF9Ub2dnbGVTd2l0Y2gge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc1RhYl9zZWN0aW9uIHtcbiAgICAgICAgLm14X1NldHRpbmdzVGFiX3NlY3Rpb25fY2FwdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG5cbiAgICAgICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50IHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMThweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiArIHNwYW4ge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMThweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAyNnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NwYWNlU2V0dGluZ3NEaWFsb2dfYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbi10b3A6IDY0cHg7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25faGFzS2luZCB7XG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmsge1xuICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1zZW1pYm9sZCk7XG4gICAgICAgICAgICBtYXJnaW46IDdweCAxOHB4O1xuXG4gICAgICAgICAgICAmLm14X1NldHRpbmdzVGFiX3Nob3dBZHZhbmNlZCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxOHB4IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3BvdGxpZ2h0RGlhbG9nX3dyYXBwZXIge1xuICAgIC5teF9EaWFsb2dfYm9yZGVyIHtcbiAgICAgICAgLyogRGlzYWJsZSB0aGUgZ2xhc3MgYm9yZGVyIGFzIHRoaXMgZGlhbG9nIHdhc24ndCBkZXNpZ25lZCB3aXRoIGl0IGluIG1pbmQgKi9cbiAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgfVxuXG4gICAgLm14X0RpYWxvZyB7XG4gICAgICAgIC8qICFpbXBvcnRhbnQgYmVjYXVzZSBpdCdzIG92ZXJyaWRpbmcgY29tcG91bmQgICovXG4gICAgICAgIHdpZHRoOiBmaXQtY29udGVudCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiA2MCUgIWltcG9ydGFudDtcbiAgICAgICAgb3ZlcmZsb3cteTogaW5pdGlhbDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjb250YWluOiB1bnNldDsgLyogbmVlZGVkIGZvciAjbXhfU3BvdGxpZ2h0RGlhbG9nX2tleWJvYXJkUHJvbXB0IHRvIG5vdCBiZSBjdWxsZWQgKi9cblxuICAgICAgICAjbXhfU3BvdGxpZ2h0RGlhbG9nX2tleWJvYXJkUHJvbXB0IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgICAgIHRvcDogLTYwcHg7IC8qIHJlbGF0aXZlIHRvIHRoZSB0b3Agb2YgdGhlIG1vZGFsICovXG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgIGtiZCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJweCB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIC8qIFRvIGF2b2lkIGFueSBzdHlsaW5nIGluaGVyZW50IHdpdGggPGtiZD4gZWxlbWVudHMgKi9cbiAgICAgICAgICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9TcG90bGlnaHREaWFsb2cge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAubXhfRGlhbG9nX2hlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLm14X1Nwb3RsaWdodERpYWxvZ19zZWFyY2hCb3gge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4IDhweCAwIDA7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRzeXN0ZW07XG5cbiAgICAgICAgPiAubXhfU3BvdGxpZ2h0RGlhbG9nX2ZpbHRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpIHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTF4KSAzN3B4O1xuXG4gICAgICAgICAgICA+IHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMThweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX2ZpbHRlci0tY2xvc2Uge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMXB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzeXN0ZW07XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA+IGlucHV0IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDMycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgPiAubXhfU3Bpbm5lciB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICB3aWR0aDogdW5zZXQ7XG4gICAgICAgICAgICBoZWlnaHQ6IHVuc2V0O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCg6Zm9jdXMtd2l0aGluKSArICNteF9TcG90bGlnaHREaWFsb2dfY29udGVudCB7XG4gICAgICAgICAgICAvKiBJbmhpYml0IHRoZSBzdHlsaW5nIGlmIGZvY3VzIGlzIG5vdCB3aXRoaW4gdGhlIGlucHV0IHdoaWNoIGhhbmRsZXMga2V5Ym9hcmQgYWNjZXNzaWJpbGl0eSAqL1xuICAgICAgICAgICAgLS1teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uX3NlbGVjdGVkQmdDb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgICAgIC8qIEhpZGUgdGhlIGVudGVyIHByb21wdCBhcyBpbiB0aGlzIHN0YXRlIHByZXNzaW5nIGVudGVyIHdvdWxkIG5vdCBhY3R1YXRlIHRoYXQgb3B0aW9uICovXG4gICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX2VudGVyUHJvbXB0IHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjbXhfU3BvdGxpZ2h0RGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfc2VjdGlvbiB7XG4gICAgICAgICAgICA+IGg0LFxuICAgICAgICAgICAgPiAubXhfU3BvdGxpZ2h0RGlhbG9nX3NlY3Rpb25IZWFkZXIgPiBoNCB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA+IGg0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3NlY3Rpb25IZWFkZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfb3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYgKyAubXhfU3BvdGxpZ2h0RGlhbG9nX3NlY3Rpb24ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbiB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uX3NlbGVjdGVkQmdDb2xvciwgJHF1aW5hcnktY29udGVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3JlY2VudGx5Vmlld2VkIHtcbiAgICAgICAgICAgID4gZGl2IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXB4OyAvKiBvY2NsdWRlIHRoZSAxcHggdmlzaWJsZSBvZiB0aGUgdmVyeSBuZXh0IHRpbGUgdG8gcHJldmVudCBpdCBsb29raW5nIGJyb2tlbiAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA1OHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogNThweDtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDU4cHg7XG4gICAgICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICAubXhfRGVjb3JhdGVkUm9vbUF2YXRhciB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCA5cHggdmFyKC0tY3BkLXNwYWNlLTF4KTsgLyogbWFpbnRhaW4gY2VudGVyaW5nICovXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiArIC5teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRzLFxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3JlY2VudFNlYXJjaGVzLFxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX290aGVyU2VhcmNoZXMsXG4gICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfaGlkZGVuUmVzdWx0cyB7XG4gICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbiB7XG4gICAgICAgICAgICAgICAgLS1teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uX3NlbGVjdGVkQmdDb2xvcjogJHN5c3RlbTtcblxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDZweCB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbi0tZW5kQWRvcm5tZW50IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRfbXVsdGlsaW5lIHtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KSB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAycHggdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfZW50ZXJQcm9tcHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogOXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRfbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPiAubXhfU3BvdGxpZ2h0RGlhbG9nX21ldGFzcGFjZVJlc3VsdCxcbiAgICAgICAgICAgICAgICA+IC5teF9EZWNvcmF0ZWRSb29tQXZhdGFyLFxuICAgICAgICAgICAgICAgID4gLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgICAgICAgICAgICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19yZXN1bHRfcHVibGljUm9vbURldGFpbHMge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMDtcblxuICAgICAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3Jlc3VsdF9wdWJsaWNSb29tSGVhZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X3B1YmxpY1Jvb21OYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X3B1YmxpY1Jvb21BbGlhcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X3B1YmxpY1Jvb21EZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICAgICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAzO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfbm90aWZpY2F0aW9uQmFkZ2Uge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbi0tbWVudSxcbiAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbi0tbm90aWZpY2F0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIgc3ZnLFxuICAgICAgICAgICAgICAgICAgICAmOmZvY3VzLXZpc2libGUgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICZbYXJpYS1zZWxlY3RlZD1cInRydWVcIl0ge1xuICAgICAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX29wdGlvbi0tbWVudSxcbiAgICAgICAgICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19vcHRpb24tLW5vdGlmaWNhdGlvbnMge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvKiAkc2Vjb25kYXJ5LWNvbnRlbnQvJHRlcnRpYXJ5LWNvbnRlbnQgZG8gbm90IGhhdmUgZW5vdWdoIGNvbnRyYXN0IGFnYWluc3RcbiAgICAgICAgICAgICAgICAgICAgICAgdGhlIGhvdmVyIGJhY2tncm91bmQgKCRxdWluYXJ5LWNvbnRlbnQpIHRvIG1lZXQgV0NBRyBBQSAoNC41OjEpLiAqL1xuICAgICAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3Jlc3VsdF9wdWJsaWNSb29tRGV0YWlscyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3Jlc3VsdF9wdWJsaWNSb29tSGVhZGVyIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X3B1YmxpY1Jvb21BbGlhcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfcmVzdWx0X3B1YmxpY1Jvb21EZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmW2FyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCJdIC5teF9TcG90bGlnaHREaWFsb2dfZW50ZXJQcm9tcHQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19pbnZpdGVMaW5rLFxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX2NyZWF0ZVJvb20ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcblxuICAgICAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogM3B4IHZhcigtLWNwZC1zcGFjZS0yeCkgM3B4IHZhcigtLWNwZC1zcGFjZS03eCk7XG5cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19vdGhlclNlYXJjaGVzIHtcbiAgICAgICAgICAgIC5teF9TcG90bGlnaHREaWFsb2dfb3B0aW9uIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19vdGhlclNlYXJjaGVzX21lc3NhZ2VTZWFyY2hUZXh0IHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3Jlc3VsdF9kZXRhaWxzIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3BvdGxpZ2h0RGlhbG9nX3JlY2VudFNlYXJjaGVzID4gaDQgPiAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmsge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19lbnRlclByb21wdCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycHggdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgIC8qIFRvIGF2b2lkIGFueSBzdHlsaW5nIGluaGVyZW50IHdpdGggPGtiZD4gZWxlbWVudHMgKi9cbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Nwb3RsaWdodERpYWxvZ19tZXRhc3BhY2VSZXN1bHQgc3ZnIHtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qXG4gKiBUbyBhdm9pZCB2aXN1YWwgZ2xpdGNoaW5nIG9mIHR3byBtb2RhbHMgc3RhY2tpbmcgYnJpZWZseSwgd2UgY3VzdG9taXNlIHRoZVxuICogdGVybXMgZGlhbG9nIHNpemluZyB3aGVuIGl0IHdpbGwgYXBwZWFyIGZvciB0aGUgaW50ZWdyYXRpb24gbWFuYWdlciBzbyB0aGF0XG4gKiBpdCBnZXRzIHRoZSBzYW1lIGJhc2ljIHNpemUgYXMgdGhlIElNJ3Mgb3duIG1vZGFsLlxuICovXG4ubXhfVGVybXNEaWFsb2dfZm9ySW50ZWdyYXRpb25NYW5hZ2VyIC5teF9EaWFsb2dfYm9yZGVyIHtcbiAgICB3aWR0aDogNjAlO1xuICAgIGhlaWdodDogNzAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi5teF9UZXJtc0RpYWxvZ190ZXJtc1RhYmxlSGVhZGVyIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4ubXhfVGVybXNEaWFsb2dfdGVybXNUYWJsZSB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfVGVybXNEaWFsb2dfc2VydmljZSxcbi5teF9UZXJtc0RpYWxvZ19zdW1tYXJ5IHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuICogQ29weXJpZ2h0IDIwMjQgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1VucGluQWxsRGlhbG9nIHtcbiAgICAvKiAzOTYgaXMgY29taW5nIGZyb20gZmlnbWEgYW5kIHdlIHJlbW92ZSB0aGUgbGVmdCBhbmQgcmlnaHQgcGFkZGluZ3Mgb2YgdGhlIGRpYWxvZyAqL1xuICAgIHdpZHRoOiBjYWxjKDM5NnB4IC0gKHZhcigtLWNwZC1zcGFjZS0xMHgpICogMikpO1xuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgLm14X1VucGluQWxsRGlhbG9nX3RpdGxlIHtcbiAgICAgICAgLyogT3ZlcnJpZGUgdGhlIGRlZmF1bHQgaGVhZGluZyBzdHlsZSAqL1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1oZWFkaW5nLXNtLXNlbWlib2xkKSAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgIH1cblxuICAgIC5teF9VbnBpbkFsbERpYWxvZ19idXR0b25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS04eCkgdmFyKC0tY3BkLXNwYWNlLTJ4KSAwIHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9VcGxvYWRDb25maXJtRGlhbG9nX2ZpbGVJY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cblxuLm14X1VwbG9hZENvbmZpcm1EaWFsb2dfcHJldmlld091dGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teF9VcGxvYWRDb25maXJtRGlhbG9nX3ByZXZpZXdJbm5lciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5teF9VcGxvYWRDb25maXJtRGlhbG9nX2ltYWdlUHJldmlldyB7XG4gICAgbWF4LWhlaWdodDogMzAwcHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkZGlhbG9nLWNsb3NlLWZnLWNvbG9yO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR0aW5nc0RpYWxvZ190b2FzdENvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTEweCk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm14X1VzZXJTZXR0aW5nc0RpYWxvZ190aXRsZSB7XG4gICAgLyogT3ZlcnJpZGUgZGVmYXVsdCBkaWFsb2cgZm9udCBzdHlsZSAqL1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctbWQtcmVndWxhcikgIWltcG9ydGFudDtcblxuICAgIC5teF9Vc2VyU2V0dGluZ3NEaWFsb2dfdGl0bGVfc3Ryb25nIHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy1tZC1zZW1pYm9sZCk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1ZlcmlmeUVNYWlsRGlhbG9nIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgdG9wOiAzMDBweDtcblxuICAgIC5teF9EaWFsb2cge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTZ4KSB2YXIoLS1jcGQtc3BhY2UtNngpIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgLyogIWltcG9ydGFudCBvdmVycmlkZSBjb21wb3VuZCAgKi9cbiAgICAgICAgd2lkdGg6IDQ4NXB4ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0yNHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVmVyaWZ5RU1haWxEaWFsb2dfdGV4dC1saWdodCB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQXV0aEJvZHlfZGlkLW5vdC1yZWNlaXZlIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9EaWFsb2dfY2FuY2VsQnV0dG9uIHtcbiAgICAgICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0LDIwMjUgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfV2lkZ2V0Q2FwYWJpbGl0aWVzUHJvbXB0RGlhbG9nIHtcbiAgICAudGV4dC1tdXRlZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIH1cblxuICAgIC5teF9XaWRnZXRDYXBhYmlsaXRpZXNQcm9tcHREaWFsb2dfY2FwIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICB9XG5cbiAgICAubXhfRGlhbG9nX2J1dHRvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiA0MHB4OyAvKiBkb3VibGUgbm9ybWFsICovXG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzRmxhZyB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBjYWxjKCRmb250LTE0cHggKyA3cHggKyA3cHgpOyAvKiA3cHggdG9wICYgYm90dG9tIHBhZGRpbmcgKi9cbiAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMnB4O1xuXG4gICAgICAgIC5teF9Ub2dnbGVTd2l0Y2gge1xuICAgICAgICAgICAgLyogZG93bnNpemUgdGhlIHN3aXRjaCArIGJhbGwgKi9cbiAgICAgICAgICAgIHdpZHRoOiAkZm9udC0zMnB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAkZm9udC0xNXB4O1xuXG4gICAgICAgICAgICAmLm14X1RvZ2dsZVN3aXRjaF9vbiA+IC5teF9Ub2dnbGVTd2l0Y2hfYmFsbCB7XG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYygxMDAlIC0gJGZvbnQtMTVweCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Ub2dnbGVTd2l0Y2hfYmFsbCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRmb250LTE1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuIENvcHlyaWdodCAyMDI2IEVsZW1lbnQgQ3JlYXRpb25zIEx0ZC5cblxuIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVW5rbm93bklkZW50aXR5VXNlcnNXYXJuaW5nRGlhbG9nIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgaGVpZ2h0OiA2MDBweDsgLyogQ29uc2lzdGVuY3kgd2l0aCBJbnZpdGVEaWFsb2cgKi9cbn1cblxuLm14X1Vua25vd25JZGVudGl0eVVzZXJzV2FybmluZ0RpYWxvZ19oZWFkZXJDb250YWluZXIge1xuICAgIC8qIENlbnRyZSB0aGUgUGFnZUhlYWRlciBjb21wb25lbnQgaG9yaXpvbnRhbGx5ICovXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIC8qIFN0eWxpbmcgZm9yIHRoZSByZWd1bGFyIHRleHQgaW5zaWRlIHRoZSBoZWFkZXIgKi9cbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LWxnLXJlZ3VsYXIpO1xuXG4gICAgLyogU3BhY2UgYmVmb3JlIHRoZSBsaXN0ICovXG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS02eCk7XG59XG5cbi5teF9Vbmtub3duSWRlbnRpdHlVc2Vyc1dhcm5pbmdEaWFsb2dfdXNlckxpc3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgLyogRmlsbCBhdmFpbGFibGUgdmVydGljYWwgc3BhY2UsIGJ1dCBkb24ndCBhbGxvdyBpdCB0byBzaHJpbmsgdG8gbGVzcyB0aGFuIDYwcHggKGFib3V0IHRoZSBoZWlnaHQgb2YgYSBzaW5nbGUgdGlsZSkgKi9cbiAgICBmbGV4OiAxIDAgNjBweDtcblxuICAgIC8qIFJlbW92ZSBicm93c2VyIGRlZmF1bHQgdWwgcGFkZGluZy9tYXJnaW4gKi9cbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbn1cblxuLm14X1Vua25vd25JZGVudGl0eVVzZXJzV2FybmluZ0RpYWxvZ19idXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgID4gYnV0dG9uIHtcbiAgICAgICAgZmxleDogMTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOCwgMjAxOSAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0FjY2Vzc1NlY3JldFN0b3JhZ2VEaWFsb2cge1xuICAgICYubXhfRW5jcnlwdGlvbkNhcmQge1xuICAgICAgICAvKiBvdmVycmlkZSBzb21lIHN0eWxlcyB0aGF0IHdlIGRvbid0IG5lZWQgKi9cbiAgICAgICAgYm9yZGVyOiAwcHggbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgIH1cblxuICAgIC5teF9BY2Nlc3NTZWNyZXRTdG9yYWdlRGlhbG9nX3ByaW1hcnlDb250YWluZXIge1xuICAgICAgICAubXhfQWNjZXNzU2VjcmV0U3RvcmFnZURpYWxvZ19yZWNvdmVyeUtleUVudHJ5IHtcbiAgICAgICAgICAgIGlucHV0IHtcbiAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICogRnJvbSBmaWdtYTogaHR0cHM6Ly93d3cuZmlnbWEuY29tL2Rlc2lnbi9ab2RCTHRHbkttUlRHSm81U0dMbkgzL0VSLTEzNy0tRXhjbHVkaW5nLUluc2VjdXJlLURldmljZXM/bm9kZS1pZD0xMDItNDM3MjkmdD1RbWV3RU5VZDdmNlRtdzlVLTFcbiAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIHdpZHRoOiA0NDhweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDcwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogOXB4O1xuICAgICAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NTZWNyZXRTdG9yYWdlRGlhbG9nX3JlY292ZXJ5S2V5RmVlZGJhY2sge1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgbWFzay1zaXplOiAyMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA1cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubXhfQWNjZXNzU2VjcmV0U3RvcmFnZURpYWxvZ19yZWNvdmVyeUtleUZlZWRiYWNrLS1pbnZhbGlkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFsZXJ0O1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRW5jcnlwdGlvbkNhcmRfYnV0dG9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yMHgpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DcmVhdGVDcm9zc1NpZ25pbmdEaWFsb2cge1xuICAgIC8qIFdoeSB5b3UgYXNrPyBCZWNhdXNlIENvbXBsZXRlU2VjdXJpdHlCb2R5IGlzIDYwMHB4IHNvIHRoaXMgaXMgdGhlIHdpZHRoICovXG4gICAgLyogd2UgZW5kIHVwIHdoZW4gaW4gdGhlcmUsIGJ1dCB3aGVuIGluIG91ciBvd24gZGlhbG9nIHdlIHNldCBvdXIgb3duIHdpZHRoICovXG4gICAgLyogc28gbmVlZCB0byBmaXggaXQgdG8gc29tZXRoaW5nIHNlbnNpYmxlIGFzIG90aGVyd2lzZSB3ZSdkIGVuZCB1cCBlaXRoZXIgKi9cbiAgICAvKiByZWFsbHkgd2lkZSBvciByZWFsbHkgbmFycm93IGRlcGVuZGluZyBvbiB0aGUgcGhhc2UuIEkgYmV0IHlvdSB3aXNoIHlvdSAqL1xuICAgIC8qIG5ldmVyIGFza2VkLiAqL1xuICAgIHdpZHRoOiA1NjBweDtcblxuICAgIGRldGFpbHMgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICBtYXJnaW46IDFlbSAwOyAvKiBlbXVsYXRlIHBhcmFncmFwaCBzcGFjaW5nIGJlY2F1c2Ugd2UgY2FuJ3QgcHV0IHRoaXMgYnV0dG9uIGluIGEgcGFyYWdyYXBoIGR1ZSB0byBIVE1MIHJ1bGVzICovXG4gICAgfVxufVxuXG4ubXhfQ3JlYXRlQ3Jvc3NTaWduaW5nRGlhbG9nIC5teF9EaWFsb2dfdGl0bGUge1xuICAgIC8qIFRPRE86IENvbnNpZGVyIHNldHRpbmcgdGhpcyBmb3IgYWxsIGRpYWxvZyB0aXRsZXMuICovXG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTksIDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE4IE5ldyBWZWN0b3IgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nIHtcbiAgICAvKiBXaHkgeW91IGFzaz8gQmVjYXVzZSBDb21wbGV0ZVNlY3VyaXR5Qm9keSBpcyA2MDBweCBzbyB0aGlzIGlzIHRoZSB3aWR0aCAqL1xuICAgIC8qIHdlIGVuZCB1cCB3aGVuIGluIHRoZXJlLCBidXQgd2hlbiBpbiBvdXIgb3duIGRpYWxvZyB3ZSBzZXQgb3VyIG93biB3aWR0aCAqL1xuICAgIC8qIHNvIG5lZWQgdG8gZml4IGl0IHRvIHNvbWV0aGluZyBzZW5zaWJsZSBhcyBvdGhlcndpc2Ugd2UnZCBlbmQgdXAgZWl0aGVyICovXG4gICAgLyogcmVhbGx5IHdpZGUgb3IgcmVhbGx5IG5hcnJvdyBkZXBlbmRpbmcgb24gdGhlIHBoYXNlLiBJIGJldCB5b3Ugd2lzaCB5b3UgKi9cbiAgICAvKiBuZXZlciBhc2tlZC4gKi9cbiAgICB3aWR0aDogNTYwcHg7XG5cbiAgICAmLm14X1N1Y2Nlc3NEaWFsb2cge1xuICAgICAgICBwYWRkaW5nOiA1NnB4OyAvKiA4MHB4IGZyb20gZGVzaWduIC0gMjRweCB3cmFwcGVyIHBhZGRpbmcgKi9cblxuICAgICAgICAubXhfRGlhbG9nX3RpdGxlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfU2V0dGluZ3NGbGFnIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICAubXhfU2V0dGluZ3NGbGFnX2xhYmVsIHtcbiAgICAgICAgZmxleDogMSAxIDA7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxuXG4gICAgLm14X1RvZ2dsZVN3aXRjaCB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBtYXJnaW4tbGVmdDogMzBweDtcbiAgICB9XG5cbiAgICBkZXRhaWxzIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgbWFyZ2luOiAxZW0gMDsgLyogZW11bGF0ZSBwYXJhZ3JhcGggc3BhY2luZyBiZWNhdXNlIHdlIGNhbid0IHB1dCB0aGlzIGJ1dHRvbiBpbiBhIHBhcmFncmFwaCBkdWUgdG8gSFRNTCBydWxlcyAqL1xuICAgIH1cbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2cgLm14X0RpYWxvZ190aXRsZSB7XG4gICAgLyogVE9ETzogQ29uc2lkZXIgc2V0dGluZyB0aGlzIGZvciBhbGwgZGlhbG9nIHRpdGxlcy4gKi9cbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX2NlbnRlcmVkVGl0bGUsXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19jZW50ZXJlZEJvZHkge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcHJpbWFyeUNvbnRhaW5lciB7XG4gICAgLyogRklYTUU6IHBsaW50aCBjb2xvdXIgaW4gbmV3IHRoZW1lKHMpLiBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50OyAqL1xuICAgIHBhZGRpbmctdG9wOiAyMHB4O1xuXG4gICAgJi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3JlY292ZXJ5S2V5UHJpbWFyeWNvbnRhaW5lciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcHJpbWFyeUNvbnRhaW5lcjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3ByaW1hcnlDb250YWluZXIgLm14X1N0eWxlZFJhZGlvQnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIHBhZGRpbmc6IDExcHg7XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX29wdGlvblRpdGxlIHtcbiAgICBjb2xvcjogJGRpYWxvZy10aXRsZS1mZy1jb2xvcjtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBmb250LXNpemU6ICRmb250LTE4cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG59XG5cbi5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3Bhc3NQaHJhc2VDb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi5teF9GaWVsZC5teF9DcmVhdGVTZWNyZXRTdG9yYWdlRGlhbG9nX3Bhc3NQaHJhc2VGaWVsZCB7XG4gICAgbWFyZ2luLXRvcDogMHB4O1xufVxuXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19wYXNzUGhyYXNlTWF0Y2gge1xuICAgIHdpZHRoOiAyMDBweDtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcmVjb3ZlcnlLZXlDb250YWluZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcmVjb3ZlcnlLZXkge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIGNvbG9yOiAkaW5mby1wbGludGgtZmctY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGluZm8tcGxpbnRoLWJnLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICB3b3JkLXNwYWNpbmc6IDFlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICAgY29kZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDMwcmVtO1xuICAgIH1cbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcmVjb3ZlcnlLZXlCdXR0b25zIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAxNnB4O1xufVxuXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19yZWNvdmVyeUtleUJ1dHRvbnNfY29weUJ0biB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfcmVjb3ZlcnlLZXlCdXR0b25zIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm14X0NyZWF0ZVNlY3JldFN0b3JhZ2VEaWFsb2dfY29udGludWVTcGlubmVyIHtcbiAgICBtYXJnaW4tdG9wOiAzM3B4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ubXhfQ3JlYXRlU2VjcmV0U3RvcmFnZURpYWxvZ19jb250aW51ZVNwaW5uZXIgaW1nIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTgtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0tleUJhY2t1cEZhaWxlZERpYWxvZyAubXhfRGlhbG9nX3RpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAzMnB4O1xufVxuXG4ubXhfS2V5QmFja3VwRmFpbGVkRGlhbG9nX3RpdGxlIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcblxuICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IC0ycHg7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIH1cbn1cblxuLm14X0tleUJhY2t1cEZhaWxlZERpYWxvZyAubXhfRGlhbG9nX2J1dHRvbnMge1xuICAgIG1hcmdpbi10b3A6IDM2cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTggTmV3IFZlY3RvciBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jlc3RvcmVLZXlCYWNrdXBEaWFsb2dfa2V5U3RhdHVzIHtcbiAgICBoZWlnaHQ6IDMwcHg7XG59XG5cbi5teF9SZXN0b3JlS2V5QmFja3VwRGlhbG9nX3ByaW1hcnlDb250YWluZXIge1xuICAgIC8qIEZJWE1FOiBwbGludGggY29sb3VyIGluIG5ldyB0aGVtZShzKS4gYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDsgKi9cbiAgICBwYWRkaW5nOiAyMHB4O1xufVxuXG4ubXhfUmVzdG9yZUtleUJhY2t1cERpYWxvZ19wYXNzUGhyYXNlSW5wdXQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIHBhZGRpbmc6IDlweDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXNlbWlib2xkKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxufVxuXG4ubXhfUmVzdG9yZUtleUJhY2t1cERpYWxvZ19wYXNzUGhyYXNlSW5wdXQsXG4ubXhfUmVzdG9yZUtleUJhY2t1cERpYWxvZ19yZWNvdmVyeUtleUlucHV0IHtcbiAgICB3aWR0aDogMzAwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgcGFkZGluZzogMTBweDtcbn1cblxuLm14X1Jlc3RvcmVLZXlCYWNrdXBEaWFsb2dfY29udGVudCA+IGRpdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBtaW4taGVpZ2h0OiAxMTBweDsgLyogRW1waXJpY2FsbHkgbWVhc3VyZWQgKi9cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9OZXR3b3JrRHJvcGRvd25fd3JhcHBlciAubXhfQ29udGV4dHVhbE1lbnUge1xuICAgIC5teF9HZW5lcmljRHJvcGRvd25NZW51X09wdGlvbiB7XG4gICAgICAgICYubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWhlYWRlciB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxNjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWl0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcblxuICAgICAgICAgICAgPiAubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9PcHRpb24tLWxhYmVsIHNwYW46Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICA+IC5teF9HZW5lcmljRHJvcGRvd25NZW51X09wdGlvbi0tbGFiZWwge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICAgICAgICAgIGFsaWduLWNvbnRlbnQ6IGJhc2VsaW5lO1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgIHNwYW46bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfR2VuZXJpY0Ryb3Bkb3duTWVudV9kaXZpZGVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcblxuICAgICAgICAmICsgLm14X0dlbmVyaWNEcm9wZG93bk1lbnVfT3B0aW9uIC5teF9HZW5lcmljRHJvcGRvd25NZW51X09wdGlvbi0tbGFiZWwge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfTmV0d29ya0Ryb3Bkb3duX3JlbW92ZVNlcnZlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogMTRweDtcbiAgICBoZWlnaHQ6IDE0cHg7XG4gICAgcGFkZGluZzogMXB4O1xuICAgIGJhY2tncm91bmQ6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMTZweDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICB9XG59XG5cbi5teF9OZXR3b3JrRHJvcGRvd25fZGlhbG9nIC5teF9EaWFsb2cge1xuICAgIHdpZHRoOiA0NXZ3O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTcgVmVjdG9yIENyZWF0aW9ucyBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICY6d2hlcmUoYnV0dG9uKSB7XG4gICAgICAgIC8qIENsZWFyIGRlZmF1bHQgYnV0dG9uIHN0eWxpbmcgKi9cbiAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fZGlzYWJsZWQge1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2ljb25fcHJpbWFyeSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfaWNvbl9wcmltYXJ5X291dGxpbmUsXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnksXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnlfb3V0bGluZSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeV9zbSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGluayxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19hY2NlbnQsXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfaW5saW5lLFxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9kYW5nZXJfaW5saW5lLFxuICAgICAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9jb250ZW50X2lubGluZSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19zbSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25faGFzS2luZCB7XG4gICAgICAgIHBhZGRpbmc6IDdweCAxOHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1zZW1pYm9sZCk7XG4gICAgICAgIGJvcmRlcjogbm9uZTsgLyogb3ZlcnJpZGUgZGVmYXVsdCA8YnV0dG9uIC8+IHN0eWxlcyAqL1xuICAgICAgICB3b3JkLWJyZWFrOiBrZWVwLWFsbDsgLyogcHJldmVudCBidXR0b24gdGV4dCBpbiBDaGluZXNlL0phcGFuZXNlL0tvcmVhbiAoQ0pLKSBmcm9tIGJlaW5nIGNvbGxhcHNlZCAqL1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnlfc20sXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9zbSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19zbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiA1cHggMTJweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnlfc20ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LW9uLXNvbGlkLXByaW1hcnkpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfZGFuZ2VyX3NtIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1vbi1zb2xpZC1wcmltYXJ5KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1iZy1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfc20ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2ljb24sXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2ljb25fcHJpbWFyeSxcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfaWNvbl9wcmltYXJ5X291dGxpbmUge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGhlaWdodDogMzJweDtcbiAgICAgICAgICAgIHdpZHRoOiAzMnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfaWNvbl9wcmltYXJ5LFxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2ljb25fcHJpbWFyeV9vdXRsaW5lLFxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnksXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfcHJpbWFyeV9vdXRsaW5lLFxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3NlY29uZGFyeSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2ljb25fcHJpbWFyeSxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtb24tc29saWQtcHJpbWFyeSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1yZXN0KTtcbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9pY29uX3ByaW1hcnlfb3V0bGluZSxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5X291dGxpbmUge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9zZWNvbmRhcnkge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2RhbmdlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1vbi1zb2xpZC1wcmltYXJ5KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNyaXRpY2FsLXByaW1hcnkpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYmctY3JpdGljYWwtcHJpbWFyeSk7XG5cbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2Rpc2FibGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1vbi1zb2xpZC1wcmltYXJ5KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9vdXRsaW5lIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWNyaXRpY2FsLXByaW1hcnkpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1jcml0aWNhbC1zdWJ0bGUpO1xuXG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGlzYWJsZWQpO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWRpc2FibGVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9zbSB7XG4gICAgICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9kaXNhYmxlZCB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGlzYWJsZWQpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmssXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19pbmxpbmUsXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfZGFuZ2VyX2lubGluZSxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9jb250ZW50X2lubGluZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rLFxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2xpbmtfaW5saW5lIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgIH1cblxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2Rhbmdlcl9pbmxpbmUge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgfVxuXG4gICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfY29udGVudF9pbmxpbmUge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICB9XG5cbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rX2lubGluZSxcbiAgICAmLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9kYW5nZXJfaW5saW5lLFxuICAgICYubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX2NvbnRlbnRfaW5saW5lIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDE5IE5ldyBWZWN0b3IgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Db3B5YWJsZVRleHQge1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICYubXhfQ29weWFibGVUZXh0X2JvcmRlciB7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIGJvcmRlcjogc29saWQgMXB4ICRsaWdodC1mZy1jb2xvcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICB9XG5cbiAgICAubXhfQ29weWFibGVUZXh0X2NvcHlCdXR0b24ge1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIC8qIElmIHRoZSBjb3B5IGJ1dHRvbiBpcyB1c2VkIHdpdGhpbiBhIHNjcm9sbGFibGUgZGl2LCBtYWtlIGl0IHN0aWNrIHRvIHRoZSByaWdodCB3aGlsZSBzY3JvbGxpbmcgKi9cbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbWVzc2FnZS1hY3Rpb24tYmFyLWZnLWNvbG9yO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9kZXNrdG9wQ2FwdHVyZXJTb3VyY2VQaWNrZXIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAubXhfZGVza3RvcENhcHR1cmVyU291cmNlUGlja2VyX3RhYiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBoZWlnaHQ6IDUwMHB4O1xuICAgICAgICBvdmVyZmxvdzogb3ZlcmxheTtcblxuICAgICAgICAubXhfZGVza3RvcENhcHR1cmVyU291cmNlUGlja2VyX3NvdXJjZSB7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgICAgIC5teF9kZXNrdG9wQ2FwdHVyZXJTb3VyY2VQaWNrZXJfc291cmNlX3RodW1ibmFpbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiA0cHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogMnB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgICAgICAgICAmLm14X2Rlc2t0b3BDYXB0dXJlclNvdXJjZVBpY2tlcl9zb3VyY2VfdGh1bWJuYWlsX3NlbGVjdGVkLFxuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJGFjY2VudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9kZXNrdG9wQ2FwdHVyZXJTb3VyY2VQaWNrZXJfc291cmNlX25hbWUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCA0cHg7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RpYWxQYWRCYWNrc3BhY2VCdXR0b24ge1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgY29sb3I6ICM4ZDk3YTU7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNyBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRHJvcGRvd24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuLm14X0Ryb3Bkb3duX2Rpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjM7XG59XG5cbi5teF9Ecm9wZG93bl9pbnB1dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG59XG5cbi5teF9Ecm9wZG93bl9pbnB1dC5teF9BY2Nlc3NpYmxlQnV0dG9uX2Rpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4ubXhfRHJvcGRvd25faW5wdXQ6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGFjY2VudC1hbHQ7XG59XG5cbi8qIERpc2FibGUgZHJvcGRvd24gaGlnaGxpZ2h0IG9uIGZvY3VzICovXG4ubXhfRHJvcGRvd25faW5wdXQubXhfQWNjZXNzaWJsZUJ1dHRvbjpmb2N1cyB7XG4gICAgZmlsdGVyOiBub25lO1xufVxuXG5zdmcubXhfRHJvcGRvd25fYXJyb3cge1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDNweDtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuLm14X0Ryb3Bkb3duX29wdGlvbiB7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0zNXB4O1xuICAgIC8qIE92ZXJ3cml0ZXMgdGhlIGRlZmF1bHQgcGFkZGluZyBmb3IgYW55IGxpIGVsZW1lbnRzICovXG4gICAgcGFkZGluZzogMCA4cHg7XG59XG5cbi5teF9Ecm9wZG93bl9pbnB1dCA+IC5teF9Ecm9wZG93bl9vcHRpb24ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5teF9Ecm9wZG93bl9vcHRpb24gZGl2IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5teF9Ecm9wZG93bl9vcHRpb24gaW1nLFxuLm14X0Ryb3Bkb3duX29wdGlvbiAubXhfRHJvcGRvd25fb3B0aW9uX2Vtb2ppIHtcbiAgICBtYXJnaW46IDVweDtcbiAgICB3aWR0aDogMTZweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubXhfRHJvcGRvd25fb3B0aW9uX2Vtb2ppIHtcbiAgICBmb250LXNpemU6ICRmb250LTE2cHg7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE2cHg7XG59XG5cbmlucHV0Lm14X0Ryb3Bkb3duX29wdGlvbixcbmlucHV0Lm14X0Ryb3Bkb3duX29wdGlvbjpmb2N1cyB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZy10b3A6IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgLyogWFhYOiBoYWNrIHRvIHByZXZlbnQgdGV4dCBib3ggYmVpbmcgdG9vIGJpZyBhbmQgcHVzaGluZyAqL1xuICAgIC8qIGl0cyBwYXJlbnQgb3V0IC8gb3ZlcmxhcHBpbmcgdGhlIGRyb3Bkb3duIGFycm93LiBPbmx5IHJlYWxseSAqL1xuICAgIC8qIHdvcmtzIGluIHRoZSBDb3VudHJ5IGRyb3Bkb3duLiAqL1xuICAgIHdpZHRoOiA2MCU7XG59XG5cbi5teF9Ecm9wZG93bl9tZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTFweDtcbiAgICByaWdodDogLTFweDtcbiAgICB0b3A6IDEwMCU7XG4gICAgei1pbmRleDogMjtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYWNjZW50LWFsdDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4ubXhfRHJvcGRvd25fbWVudSAubXhfRHJvcGRvd25fb3B0aW9uIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWluLWhlaWdodDogMzVweDtcbn1cblxudWwubXhfRHJvcGRvd25fbWVudSBsaS5teF9Ecm9wZG93bl9vcHRpb24ge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5teF9Ecm9wZG93bl9tZW51IC5teF9Ecm9wZG93bl9vcHRpb25faGlnaGxpZ2h0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZm9jdXMtYmctY29sb3I7XG59XG5cbi5teF9Ecm9wZG93bl9zZWFyY2hQcm9tcHQge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTctMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0VkaXRhYmxlSXRlbUxpc3Qge1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLm14X0VkaXRhYmxlSXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG59XG5cbi5teF9FZGl0YWJsZUl0ZW1fZGVsZXRlIHtcbiAgICBAbWl4aW4gY3VzdG9taXNlZENhbmNlbEJ1dHRvbjtcbiAgICBvcmRlcjogMztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHdpZHRoOiAyOHB4O1xuICAgIGhlaWdodDogMjhweDtcbiAgICBtYXNrLXNpemU6IDEwMCU7XG59XG5cbi5teF9FZGl0YWJsZUl0ZW1fZW1haWwge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi5teF9FZGl0YWJsZUl0ZW1fcHJvbXB0VGV4dCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIG9yZGVyOiAyO1xufVxuXG4ubXhfRWRpdGFibGVJdGVtX2NvbmZpcm1CdG4ge1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xufVxuXG4ubXhfRWRpdGFibGVJdGVtX2l0ZW0ge1xuICAgIGZsZXg6IGF1dG8gMSAwO1xuICAgIG9yZGVyOiAxO1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAyOHB4KTsgLyogbGVhdmUgc3BhY2UgZm9yIHRoZSByZW1vdmUgYnV0dG9uICovXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4ubXhfRWRpdGFibGVJdGVtTGlzdF9sYWJlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0Vycm9yQm91bmRhcnkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5teF9FcnJvckJvdW5kYXJ5X2JvZHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRXh0ZXJuYWxMaW5rIHtcbiAgICBjb2xvcjogJGxpbmtzO1xufVxuXG4ubXhfRXh0ZXJuYWxMaW5rX2ljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogJGZvbnQtMTFweDtcbiAgICBoZWlnaHQ6ICRmb250LTExcHg7XG4gICAgbWFyZ2luLWxlZnQ6IDAuM3JlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ZhY2VQaWxlX21vcmUge1xuICAgIC8qIE5lZWRlZCB0byBjYWxjdWxhdGUgdGhlIG9mZnNldCBvbiB0aGUgZmFjZSBwaWxlICovXG4gICAgLS1jcGQtYXZhdGFyLXNpemU6IDI4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gICAgd2lkdGg6IDI4cHg7XG4gICAgaGVpZ2h0OiAyOHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWxzO1xuICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgei1pbmRleDogMTtcbiAgICAvKiBGb3IgZW5oYW5jZWQgdmlzaWJpbGl0eSB1bmRlciBjb250cmFzdCBjb250cm9sICovXG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG4ubXhfRmFjZVBpbGVfc3VtbWFyeSB7XG4gICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICBjb2xvcjogJHRlcnRpYXJ5LWNvbnRlbnQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyogVE9ETzogQ29uc2lkZXIgdW5pZnlpbmcgd2l0aCBnZW5lcmFsIGlucHV0IHN0eWxlcyBpbiBfbGlnaHQucGNzcyAqL1xuXG4ubXhfRmllbGQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjI1cztcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG59XG5cbi5teF9GaWVsZF9wcmVmaXgge1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtc2Vjb25kYXJ5KTtcbn1cblxuLm14X0ZpZWxkX3Bvc3RmaXgge1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xufVxuXG4ubXhfRmllbGQgaW5wdXQsXG4ubXhfRmllbGQgc2VsZWN0LFxuLm14X0ZpZWxkIHRleHRhcmVhIHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICAvKiBFdmVuIHdpdGhvdXQgYSBib3JkZXIgaGVyZSwgd2Ugc3RpbGwgbmVlZCB0aGlzIGF2b2lkIG92ZXJsYXBwaW5nIHRoZSByb3VuZGVkICovXG4gICAgLyogY29ybmVycyBvbiB0aGUgZmllbGQgYWJvdmUuICovXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHBhZGRpbmc6IDhweCA5cHg7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgZmxleDogMTtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5teF9GaWVsZCBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cbn1cblxuLm14X0ZpZWxkIHNlbGVjdCB7XG4gICAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLm14X0ZpZWxkX3NlbGVjdF9jaGV2cm9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHJpZ2h0OiA0cHg7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIHotaW5kZXg6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5teF9GaWVsZDpmb2N1cy13aXRoaW4ge1xuICAgIGJvcmRlci1jb2xvcjogJGFjY2VudC1hbHQ7XG59XG5cbi5teF9GaWVsZCBpbnB1dDpmb2N1cyxcbi5teF9GaWVsZCBzZWxlY3Q6Zm9jdXMsXG4ubXhfRmllbGQgdGV4dGFyZWE6Zm9jdXMge1xuICAgIG91dGxpbmU6IDA7XG59XG5cbi5teF9GaWVsZCBpbnB1dDo6cGxhY2Vob2xkZXIsXG4ubXhfRmllbGQgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjI1cyBlYXNlLWluIDBzO1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLm14X0ZpZWxkIGlucHV0OnBsYWNlaG9sZGVyLXNob3duOmZvY3VzOjpwbGFjZWhvbGRlcixcbi5teF9GaWVsZCB0ZXh0YXJlYTpwbGFjZWhvbGRlci1zaG93bjpmb2N1czo6cGxhY2Vob2xkZXIsXG4ubXhfRmllbGQubXhfRmllbGRfcGxhY2Vob2xkZXJJc0hpbnQgaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjI1cyBlYXNlLWluIDAuMXM7XG4gICAgY29sb3I6ICRpbmZvLXBsaW50aC1mZy1jb2xvcjtcbn1cblxuLm14X0ZpZWxkIGxhYmVsIHtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgICBmb250LXNpemUgMC4yNXMgZWFzZS1vdXQgMC4xcyxcbiAgICAgICAgY29sb3IgMC4yNXMgZWFzZS1vdXQgMC4xcyxcbiAgICAgICAgdHJhbnNmb3JtIDAuMjVzIGVhc2Utb3V0IDAuMXMsXG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgMC4yNXMgZWFzZS1vdXQgMC4xcztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMHB4O1xuICAgIG1hcmdpbjogN3B4IDhweDtcbiAgICBwYWRkaW5nOiAycHg7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IC8qIEFsbG93IGNsaWNrcyB0byBmYWxsIHRocm91Z2ggdG8gdGhlIGlucHV0ICovXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMjBweCk7IC8qIDEwMCUgb2YgcGFyZW50IG1pbnVzIG1hcmdpbiBhbmQgcGFkZGluZyAqL1xufVxuXG4ubXhfRmllbGRfbGFiZWxBbHdheXNUb3BMZWZ0IGxhYmVsLFxuLm14X0ZpZWxkIHNlbGVjdCArIGxhYmVsIC8qIEFsd2F5cyBzaG93IGEgc2VsZWN0J3MgbGFiZWwgb24gdG9wIHRvIG5vdCBjb2xsaWRlIHdpdGggdGhlIHZhbHVlICovLFxuLm14X0ZpZWxkIGlucHV0OmZvY3VzICsgbGFiZWwsXG4ubXhfRmllbGQgaW5wdXQ6bm90KDpwbGFjZWhvbGRlci1zaG93bikgKyBsYWJlbCxcbi5teF9GaWVsZCB0ZXh0YXJlYTpmb2N1cyArIGxhYmVsLFxuLm14X0ZpZWxkIHRleHRhcmVhOm5vdCg6cGxhY2Vob2xkZXItc2hvd24pICsgbGFiZWwge1xuICAgIHRyYW5zaXRpb246XG4gICAgICAgIGZvbnQtc2l6ZSAwLjI1cyBlYXNlLW91dCAwcyxcbiAgICAgICAgY29sb3IgMC4yNXMgZWFzZS1vdXQgMHMsXG4gICAgICAgIHRyYW5zZm9ybSAwLjI1cyBlYXNlLW91dCAwcyxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLW91dCAwcztcbiAgICBmb250LXNpemU6ICRmb250LTEwcHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xM3B4KTtcbiAgICBwYWRkaW5nOiAwIDJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtcbn1cblxuLm14X0ZpZWxkIGlucHV0OmZvY3VzICsgbGFiZWwsXG4ubXhfRmllbGQgc2VsZWN0OmZvY3VzICsgbGFiZWwsXG4ubXhfRmllbGQgdGV4dGFyZWE6Zm9jdXMgKyBsYWJlbCB7XG4gICAgY29sb3I6ICRhY2NlbnQtYWx0O1xufVxuXG4ubXhfRmllbGQgc2VsZWN0OmRpc2FibGVkLFxuLm14X0ZpZWxkIHNlbGVjdDpkaXNhYmxlZCArIGxhYmVsLFxuLm14X0ZpZWxkIGlucHV0OmRpc2FibGVkLFxuLm14X0ZpZWxkIGlucHV0OmRpc2FibGVkICsgbGFiZWwsXG4ubXhfRmllbGQgdGV4dGFyZWE6ZGlzYWJsZWQsXG4ubXhfRmllbGQgdGV4dGFyZWE6ZGlzYWJsZWQgKyBsYWJlbCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRpbmZvLXBsaW50aC1mZy1jb2xvcjtcbn1cblxuLm14X0ZpZWxkX3ZhbGlkIHtcbiAgICAmLm14X0ZpZWxkLFxuICAgICYubXhfRmllbGQ6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWNjZW50O1xuICAgIH1cblxuICAgICYubXhfRmllbGQgbGFiZWwsXG4gICAgJi5teF9GaWVsZDpmb2N1cy13aXRoaW4gbGFiZWwge1xuICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICB9XG59XG5cbi5teF9GaWVsZF9pbnZhbGlkIHtcbiAgICAmLm14X0ZpZWxkLFxuICAgICYubXhfRmllbGQ6Zm9jdXMtd2l0aGluIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWxlcnQ7XG4gICAgfVxuXG4gICAgJi5teF9GaWVsZCBsYWJlbCxcbiAgICAmLm14X0ZpZWxkOmZvY3VzLXdpdGhpbiBsYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgfVxufVxuXG4vKiBDdXN0b21pc2Ugb3RoZXIgY29tcG9uZW50cyB3aGVuIHBsYWNlZCBpbnNpZGUgYSBGaWVsZCAqL1xuXG4ubXhfRmllbGQgLm14X0Ryb3Bkb3duX2lucHV0IHtcbiAgICBib3JkZXI6IGluaXRpYWw7XG4gICAgYm9yZGVyLXJhZGl1czogaW5pdGlhbDtcbn1cblxuLm14X0ZpZWxkIC5teF9Db3VudHJ5RHJvcGRvd24ge1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X2F2YXRhcnMge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgfVxuXG4gICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3NwYWNlciB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDYzcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0zMHB4OyAvKiBUT0RPOiBVc2UgYSB2YXJpYWJsZSAqL1xuXG4gICAgICAgIC5teF9JUkNMYXlvdXQgJiB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3RvZ2dsZSB7XG4gICAgICAgIC8qIFdlIHJldXNlIGEgdGl0bGUgY2FzZWQgdHJhbnNsYXRpb24gKi9cbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IGxvd2VyY2FzZTtcbiAgICB9XG5cbiAgICAmW2RhdGEtbGF5b3V0PVwiaXJjXCJdLFxuICAgICZbZGF0YS1sYXlvdXQ9XCJncm91cFwiXSB7XG4gICAgICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV90b2dnbGUge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZTogMCAxMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICB9XG5cbiAgICAmW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAgICAgLS1tYXhXaWR0aDogNzAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1hdmF0YXJTaXplKSArIHZhcigtLWd1dHRlclNpemUpKTtcblxuICAgICAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfdG9nZ2xlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jazogMDtcblxuICAgICAgICAgICAgJlthcmlhLWV4cGFuZGVkPVwiZmFsc2VcIl0ge1xuICAgICAgICAgICAgICAgIG9yZGVyOiA5OyAvKiBUT0RPOiBSZW1vdmUgKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJlthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bzsgLyogcmVkdWNlIGNsaWNrYWJsZSBhcmVhICovXG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLUV2ZW50VGlsZV9idWJibGUtbWFyZ2luLWlubGluZS1lbmQpOyAvKiBhcyB0aGUgcGFyZW50IGhhcyB6ZXJvIG1hcmdpbiAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3NwYWNlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLWV4cGFuZGVkPVwiZmFsc2VcIl0ge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6IDVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGlkZWFsbHkgd2UnZCB1c2UgZGlzcGxheT1jb250ZW50cyBoZXJlIGZvciB0aGUgbGF5b3V0IHRvIGFsbCB3b3JrIHJlZ2FyZGxlc3Mgb2YgdGhlICpFTFMgYnV0ICovXG4gICAgICAgIC8qIHRoYXQgYnJlYWtzIFNjcm9sbFBhbmVsJ3MgcmVsaWFuY2UgdXBvbiBvZmZzZXRUb3Agc28gd2UgaGF2ZSB0byBoYXZlIGEgYml0IG1vcmUgZmluZXNzZS4gKi9cbiAgICAgICAgJltkYXRhLWV4cGFuZGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X01hdHJpeENoYXRfdXNlQ29tcGFjdExheW91dCAmIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xM3B4O1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV9zcGFjZXIge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuMzc1O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RleHR1YWxFdmVudC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV9zdW1tYXJ5IHtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBNYWtlIGFsbCBzdGF0ZSBldmVudHMgb25lIG9yZGVyIHNtYWxsZXIgdGhhbiB0aGUgb3RoZXIgZXZlbnRzICovXG4gICAgLm14X0V2ZW50VGlsZSB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfdW5zdHlsZWRMaXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5teF9UZXh0dWFsRXZlbnQubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfc3VtbWFyeSB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbn1cblxuLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X2F2YXRhcnMge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMTJweDtcblxuICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtNHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuJGJ1dHRvbi1zaXplOiAzMnB4O1xuJGJ1dHRvbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG5cbjpyb290IHtcbiAgICAtLWltYWdlLXZpZXctcGFuZWwtaGVpZ2h0OiA2OHB4O1xufVxuXG4ubXhfSW1hZ2VWaWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ubXhfSW1hZ2VWaWV3X2ltYWdlX3dyYXBwZXIge1xuICAgIHBvaW50ZXItZXZlbnRzOiBpbml0aWFsO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14X0ltYWdlVmlld19pbWFnZSB7XG4gICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAmLm14X0ltYWdlVmlld19pbWFnZV9hbmltYXRpbmcge1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjAwbXMgZWFzZSAwcztcbiAgICB9XG5cbiAgICAmLm14X0ltYWdlVmlld19pbWFnZV9hbmltYXRpbmdMb2FkaW5nIHtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDMwMG1zIGVhc2UgMHM7XG4gICAgfVxufVxuXG4ubXhfSW1hZ2VWaWV3X3BhbmVsIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IHZhcigtLWltYWdlLXZpZXctcGFuZWwtaGVpZ2h0KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBteF9JbWFnZVZpZXdfcGFuZWxfa2V5ZnJhbWVzO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMzAwbXM7XG59XG5cbi5teF9JbWFnZVZpZXdfaW5mb193cmFwcGVyIHtcbiAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtcbiAgICBwYWRkaW5nLWxlZnQ6IDMycHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICRsaWdodGJveC1mZy1jb2xvcjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZmxleC1iYXNpczogMDtcbn1cblxuLm14X0ltYWdlVmlld19pbmZvIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEycHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ubXhfSW1hZ2VWaWV3X2luZm9fc2VuZGVyIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm14X0ltYWdlVmlld190aXRsZSB7XG4gICAgY29sb3I6ICRsaWdodGJveC1mZy1jb2xvcjtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubXhfSW1hZ2VWaWV3X3Rvb2xiYXIge1xuICAgIC0taWNvbi1zaXplOiAyNHB4O1xuXG4gICAgcGFkZGluZy1yaWdodDogMTZweDtcbiAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtYmFzaXM6IDA7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6ICRidXR0b24tZ2FwO1xufVxuXG4ubXhfSW1hZ2VWaWV3X2J1dHRvbiB7XG4gICAgcGFkZGluZzogY2FsYygoJGJ1dHRvbi1zaXplIC0gdmFyKC0taWNvbi1zaXplKSkgLyAyKTtcbiAgICB3aWR0aDogdmFyKC0taWNvbi1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLWljb24tc2l6ZSk7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBzdmcge1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29sb3I6ICRpY29uLWJ1dHRvbi1jb2xvcjtcbiAgICB9XG59XG5cbi5teF9JbWFnZVZpZXdfYnV0dG9uX21vcmUge1xuICAgIC0taWNvbi1zaXplOiAyOHB4O1xufVxuXG4ubXhfSW1hZ2VWaWV3X2J1dHRvbl9jbG9zZSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAjMjEyNjJjOyAvKiBzYW1lIG9uIGFsbCB0aGVtZXMgKi9cbn1cblxuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uKSB7XG4gICAgLm14X0ltYWdlVmlld19pbWFnZV9hbmltYXRpbmcge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLm14X0ltYWdlVmlld19pbWFnZV9hbmltYXRpbmdMb2FkaW5nIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbmZvVG9vbHRpcF9pY29uIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICB9XG59XG5cbi5teF9JbmZvVG9vbHRpcF9pY29uOjpiZWZvcmUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE3LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbmxpbmVTcGlubmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG5cbiAgICBzdmcge1xuICAgICAgICBtYXJnaW46IDBweCA2cHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiAtM3B4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTktMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW50ZXJhY3RpdmVUb29sdGlwX3dyYXBwZXIge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB6LWluZGV4OiAzOTk5O1xufVxuXG4ubXhfSW50ZXJhY3RpdmVUb29sdGlwIHtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDUwMDE7XG4gICAgYm94LXNoYWRvdzpcbiAgICAgICAgMCAyNHB4IDhweCByZ2IoMTcgMTcgMjYgLyA0JSksXG4gICAgICAgIDAgOHB4IDMycHggcmdiKDE3IDE3IDI2IC8gNCUpO1xufVxuXG4ubXhfSW50ZXJhY3RpdmVUb29sdGlwLm14X0ludGVyYWN0aXZlVG9vbHRpcF93aXRoQ2hldnJvbl90b3Age1xuICAgIHRvcDogMTBweDsgLyogOHB4IGNoZXZyb24gKyAycHggc3BhY2luZyAqL1xufVxuXG4ubXhfSW50ZXJhY3RpdmVUb29sdGlwLm14X0ludGVyYWN0aXZlVG9vbHRpcF93aXRoQ2hldnJvbl9sZWZ0IHtcbiAgICBsZWZ0OiAxMHB4OyAvKiA4cHggY2hldnJvbiArIDJweCBzcGFjaW5nICovXG59XG5cbi5teF9JbnRlcmFjdGl2ZVRvb2x0aXAubXhfSW50ZXJhY3RpdmVUb29sdGlwX3dpdGhDaGV2cm9uX3JpZ2h0IHtcbiAgICByaWdodDogMTBweDsgLyogOHB4IGNoZXZyb24gKyAycHggc3BhY2luZyAqL1xufVxuXG4ubXhfSW50ZXJhY3RpdmVUb29sdGlwLm14X0ludGVyYWN0aXZlVG9vbHRpcF93aXRoQ2hldnJvbl9ib3R0b20ge1xuICAgIGJvdHRvbTogMTBweDsgLyogOHB4IGNoZXZyb24gKyAycHggc3BhY2luZyAqL1xufVxuXG4ubXhfSW50ZXJhY3RpdmVUb29sdGlwX2NoZXZyb25fdG9wIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogY2FsYyg1MCUgLSA4cHgpO1xuICAgIHRvcDogLThweDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyLWxlZnQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBib3JkZXItYm90dG9tOiA4cHggc29saWQgJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXJpZ2h0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbi8qIEFkYXB0ZWQgZnJvbSBodHRwczovL2NvZHlob3VzZS5jby9ibG9nL3Bvc3QvY3NzLXJvdW5kZWQtdHJpYW5nbGVzLXdpdGgtY2xpcC1wYXRoICovXG4vKiBieSBTZWJhc3RpYW5vIEd1ZXJyaWVybyAoQGd1ZXJyaWVyb19zZSkgKi9cbkBzdXBwb3J0cyAoY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDAlLCAxMDAlIDEwMCUsIDAlIDEwMCUpKSB7XG4gICAgLm14X0ludGVyYWN0aXZlVG9vbHRpcF9jaGV2cm9uX3RvcCB7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAlIDAlLCAxMDAlIDEwMCUsIDAlIDEwMCUpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDAgMCAzcHg7XG4gICAgICAgIHRvcDogY2FsYygtOHB4IC8gMS40MTQpOyAvKiBzcXJ0KDIpIGJlY2F1c2Ugb2Ygcm90YXRpb24gKi9cbiAgICB9XG59XG5cbi5teF9JbnRlcmFjdGl2ZVRvb2x0aXBfY2hldnJvbl9ib3R0b20ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiBjYWxjKDUwJSAtIDhweCk7XG4gICAgYm90dG9tOiAtOHB4O1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBib3JkZXItbGVmdDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3A6IDhweCBzb2xpZCAkYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmlnaHQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuLyogQWRhcHRlZCBmcm9tIGh0dHBzOi8vY29keWhvdXNlLmNvL2Jsb2cvcG9zdC9jc3Mtcm91bmRlZC10cmlhbmdsZXMtd2l0aC1jbGlwLXBhdGggKi9cbi8qIGJ5IFNlYmFzdGlhbm8gR3VlcnJpZXJvIChAZ3VlcnJpZXJvX3NlKSAqL1xuQHN1cHBvcnRzIChjbGlwLXBhdGg6IHBvbHlnb24oMCUgMCUsIDEwMCUgMTAwJSwgMCUgMTAwJSkpIHtcbiAgICAubXhfSW50ZXJhY3RpdmVUb29sdGlwX2NoZXZyb25fYm90dG9tIHtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCUgMCUsIDEwMCUgMTAwJSwgMCUgMTAwJSk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDAgMCAwIDNweDtcbiAgICAgICAgYm90dG9tOiBjYWxjKC04cHggLyAxLjQxNCk7IC8qIHNxcnQoMikgYmVjYXVzZSBvZiByb3RhdGlvbiAqL1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbnZpdGVSZWFzb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG5cbiAgICAubXhfSW52aXRlUmVhc29uX3JlYXNvbiB7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLm14X0ludml0ZVJlYXNvbl92aWV3IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9JbnZpdGVSZWFzb25faGlkZGVuIHtcbiAgICAubXhfSW52aXRlUmVhc29uX3JlYXNvbiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAubXhfSW52aXRlUmVhc29uX3ZpZXcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCwyMDI1IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xhYmVsbGVkQ2hlY2tib3gge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGFuZ3VhZ2VEcm9wZG93biB7XG4gICAgLm14X0Ryb3Bkb3duX29wdGlvbiA+IGRpdiB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NaW5pQXZhdGFyVXBsb2FkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogbWluLWNvbnRlbnQ7XG5cbiAgICAubXhfTWluaUF2YXRhclVwbG9hZGVyX2luZGljYXRvciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblxuICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG5cbiAgICAgICAgcmlnaHQ6IC02cHg7XG4gICAgICAgIGJvdHRvbTogLTZweDtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuXG4gICAgICAgIC5teF9NaW5pQXZhdGFyVXBsb2FkZXJfY2FtZXJhSWNvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9NaW5pQXZhdGFyVXBsb2FkZXJfaW5wdXQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9QaWxsIHtcbiAgICBwYWRkaW5nOiAkZm9udC0xcHggMC40ZW0gJGZvbnQtMXB4IDAuNGVtO1xuICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xN3B4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRmb250LTE2cHg7XG4gICAgdmVydGljYWwtYWxpZ246IHRleHQtdG9wO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1vbi1zb2xpZC1wcmltYXJ5KSAhaW1wb3J0YW50OyAvKiBUbyBvdmVycmlkZSAubWFya2Rvd24tYm9keSAqL1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwaWxsLWJnLWNvbG9yICFpbXBvcnRhbnQ7IC8qIFRvIG92ZXJyaWRlIC5tYXJrZG93bi1ib2R5ICovXG4gICAgLyogRm9yIGVuaGFuY2VkIHZpc2liaWxpdHkgdW5kZXIgY29udHJhc3QgY29udHJvbCAqL1xuICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgID4gKiB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgICYubXhfVXNlclBpbGxfbWUsXG4gICAgJi5teF9BdFJvb21QaWxsLFxuICAgICYubXhfS2V5d29yZFBpbGwge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY3JpdGljYWwtcHJpbWFyeSkgIWltcG9ydGFudDsgLyogVG8gb3ZlcnJpZGUgLm1hcmtkb3duLWJvZHkgKi9cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHBpbGwtaG92ZXItYmctY29sb3IgIWltcG9ydGFudDsgLyogVG8gb3ZlcnJpZGUgLm1hcmtkb3duLWJvZHkgKi9cbiAgICB9XG5cbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwaWxsLXByZXNzLWJnLWNvbG9yICFpbXBvcnRhbnQ7IC8qIFRvIG92ZXJyaWRlIC5tYXJrZG93bi1ib2R5ICovXG4gICAgfVxuXG4gICAgJi5teF9Vc2VyUGlsbF9tZTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcihcbiAgICAgICAgICAgIC0tY3BkLWNvbG9yLWJnLWNyaXRpY2FsLWhvdmVyZWRcbiAgICAgICAgKSAhaW1wb3J0YW50OyAvKiBUbyBvdmVycmlkZSAubWFya2Rvd24tYm9keSB8IHNhbWUgb24gYm90aCB0aGVtZXMgKi9cbiAgICB9XG5cbiAgICAvKiBXZSBkb24ndCB3YW50IHRvIGluZGljYXRlIGNsaWNrYWJpbGl0eSAqL1xuICAgICYubXhfQXRSb29tUGlsbDpob3ZlcixcbiAgICAmLm14X0tleXdvcmRQaWxsOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNyaXRpY2FsLXByaW1hcnkpICFpbXBvcnRhbnQ7IC8qIFRvIG92ZXJyaWRlIC5tYXJrZG93bi1ib2R5ICovXG4gICAgICAgIGN1cnNvcjogdW5zZXQ7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlLFxuICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTAuM2VtOyAvKiBPdGhlcndpc2UgdGhlIGdhcCBpcyB0b28gbGFyZ2UgKi9cbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDAuMmVtO1xuICAgICAgICBtaW4td2lkdGg6ICRmb250LTE2cHg7IC8qIGVuc3VyZSB0aGUgYXZhdGFyIGlzIG5vdCBjb21wcmVzc2VkICovXG4gICAgICAgIHVzZXItc2VsZWN0OiB0ZXh0O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIH1cblxuICAgIC5teF9QaWxsX3RleHQge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgIC5teF9QaWxsX3VzZXJTdGF0dXMge1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG5cbiAgICAvKiBQaWxscyB3aXRoIHVzZXIgc3RhdHVzIGFyZSBmbGV4IHNvIHRoZSBzdGF0dXMgZW1vamkgc3RheXMgdmlzaWJsZSBpZiB0aGVcbiAgICAgICBkaXNwbGF5IG5hbWUgZ2V0cyB0cnVuY2F0ZWQuICovXG4gICAgJi5teF9QaWxsX3dpdGhTdGF0dXMge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICBhJiB7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsgLyogVG8gb3ZlcnJpZGUgLm1hcmtkb3duLWJvZHkgKi9cbiAgICB9XG5cbiAgICAubXhfUGlsbF9MaW5rSWNvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaW5rLWV4dGVybmFsO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBjb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgcGFkZGluZzogMXB4O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIH1cblxuICAgIC5teF9QaWxsX1VzZXJJY29uIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICB9XG5cbiAgICAmLm14X1NwYWNlUGlsbCB7XG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDhweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogOHB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDRweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Bvd2VyU2VsZWN0b3Ige1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfUG93ZXJTZWxlY3RvciAubXhfRmllbGQgc2VsZWN0LFxuLm14X1Bvd2VyU2VsZWN0b3IgLm14X0ZpZWxkIGlucHV0IHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxucHJvZ3Jlc3MubXhfUHJvZ3Jlc3NCYXIge1xuICAgIGhlaWdodDogNnB4O1xuICAgIHdpZHRoOiA2MHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBib3JkZXI6IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQgdmFyKC0tY3BkLWNvbG9yLWdyYXktNDAwKTtcblxuICAgIEBtaXhpbiBQcm9ncmVzc0JhckJvcmRlclJhZGl1cyA2cHg7XG4gICAgQG1peGluIFByb2dyZXNzQmFyQ29sb3VyIHZhcigtLWNwZC1jb2xvci1pY29uLWFjY2VudC10ZXJ0aWFyeSk7XG4gICAgQG1peGluIFByb2dyZXNzQmFyQmdDb2xvdXIgJHByb2dyZXNzYmFyLWJnLWNvbG9yO1xuICAgICY6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUge1xuICAgICAgICB0cmFuc2l0aW9uOiB3aWR0aCAxcztcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUVJDb2RlIHtcbiAgICBpbWcge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTggVmVjdG9yIENyZWF0aW9ucyBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1JlcGx5Q2hhaW4ge1xuICAgIG1hcmdpbjogMDsgLyogUmVzZXQgZGVmYXVsdCBibG9ja3F1b3RlIG1hcmdpbiAqL1xuICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkIHZhcigtLXVzZXJuYW1lLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG5cbiAgICAubXhfUmVwbHlDaGFpbl9zaG93IHtcbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfbGlua19pbmxpbmUge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLyogRW5mb3JjZSAnSW4gcmVwbHkgdG8nIHRvIGJlIGEgc2luZ2xlIGxpbmUgKi9cbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciBlYXNlIDAuMTVzO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1yZWd1bGFyKTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X1JlcGx5Q2hhaW5fY29sb3IxIHtcbiAgICAgICAgLS11c2VybmFtZS1jb2xvcjogJHVzZXJuYW1lLXZhcmlhbnQxLWNvbG9yO1xuICAgIH1cblxuICAgICYubXhfUmVwbHlDaGFpbl9jb2xvcjIge1xuICAgICAgICAtLXVzZXJuYW1lLWNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDItY29sb3I7XG4gICAgfVxuXG4gICAgJi5teF9SZXBseUNoYWluX2NvbG9yMyB7XG4gICAgICAgIC0tdXNlcm5hbWUtY29sb3I6ICR1c2VybmFtZS12YXJpYW50My1jb2xvcjtcbiAgICB9XG5cbiAgICAmLm14X1JlcGx5Q2hhaW5fY29sb3I0IHtcbiAgICAgICAgLS11c2VybmFtZS1jb2xvcjogJHVzZXJuYW1lLXZhcmlhbnQ0LWNvbG9yO1xuICAgIH1cblxuICAgICYubXhfUmVwbHlDaGFpbl9jb2xvcjUge1xuICAgICAgICAtLXVzZXJuYW1lLWNvbG9yOiAkdXNlcm5hbWUtdmFyaWFudDUtY29sb3I7XG4gICAgfVxuXG4gICAgJi5teF9SZXBseUNoYWluX2NvbG9yNiB7XG4gICAgICAgIC0tdXNlcm5hbWUtY29sb3I6ICR1c2VybmFtZS12YXJpYW50Ni1jb2xvcjtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTgtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1Jlc2l6ZUhhbmRsZSB7XG4gICAgY3Vyc29yOiByb3ctcmVzaXplO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIHotaW5kZXg6IDEwMDtcblxuICAgICYubXhfUmVzaXplSGFuZGxlLS1ob3Jpem9udGFsIHtcbiAgICAgICAgbWFyZ2luOiAwIC01cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgICBjdXJzb3I6IGNvbC1yZXNpemU7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfUmVzaXplSGFuZGxlLS12ZXJ0aWNhbCB7XG4gICAgICAgIG1hcmdpbjogLTVweCAwO1xuICAgICAgICBwYWRkaW5nOiA1cHggMDtcblxuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qIFhYWDogYmxldXJnaCwgd2hhdCBpcyB0aGlzPyBUaGVzZSBjbGFzc2VzIHRvdGFsbHkgYnJlYWsgdGhlIGNvbXBvbmVudCAqL1xuLyogbmFtaW5nIHNjaGVtZTsgaXQncyBjb21wbGV0ZWx5IHVuY2xlYXIgd2hlcmUgb3IgaG93IHRoZXkncmUgYmVpbmcgdXNlZCAqL1xuLyogLS1NYXR0aGV3ICovXG5cbi5teF9NYXJrZG93bl9CT0xEIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm14X01hcmtkb3duX0lUQUxJQyB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIC8qXG4gICAgLy8gaW50ZXJlc3RpbmdseSwgKm5vdCogdXNpbmcgdGhlIGV4cGxpY2l0IGl0YWxpYyBmb250XG4gICAgLy8gdmFyaWFudCBzZWVtcyB5aWVsZCBiZXR0ZXIgcmVzdWx0cy5cblxuICAgIC8vIGNvbXBlbnNhdGUgZm9yIE51bml0byBpdGFsaWNzIGJlaW5nIHRlcnJpYmxlXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9mb250cy9pc3N1ZXMvMTcyXG4gICAgdHJhbnNmb3JtOiBza2V3WCgtMTRkZWcpO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAqL1xufVxuXG4ubXhfTWFya2Rvd25fQ09ERSB7XG4gICAgcGFkZGluZzogMC4yZW0gMDtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiA4NSU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHJ0ZS1jb2RlLWJnLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuLm14X01hcmtkb3duX0hSIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kOiAkcnRlLWJnLWNvbG9yO1xufVxuXG4ubXhfTWFya2Rvd25fU1RSSUtFVEhST1VHSCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG59XG5cbi5teF9FbW9qaSB7XG4gICAgLyogU2hvdWxkIGJlIDEuOHJlbSBmb3Igb3VyIGRlZmF1bHQgbWVzc2FnZSBib2RpZXMsIGFuZCBzY2FsZSB3aXRoIHRoZSAqL1xuICAgIC8qIHN1cnJvdW5kaW5nIHRleHQgKi9cbiAgICBmb250LXNpemU6IG1heCgkZm9udC0xOHB4LCAxZW0pO1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbUFsaWFzRmllbGQge1xuICAgIC8qIGlmIHBhcmVudCBpcyBhIGZsZXggY29udGFpbmVyLCB0aGlzIGFsbG93cyB0aGUgKi9cbiAgICAvKiB3aWR0aCB0byBiZSBhcyB3aWRlIGFzIG5lZWRlZCwgYW5kIG5vdCAxMDAlICovXG4gICAgZmxleDogMCAxIGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgaW5wdXQge1xuICAgICAgICB3aWR0aDogMTUwcHg7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG5cbiAgICBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogJGluZm8tcGxpbnRoLWZnLWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIH1cblxuICAgIC5teF9GaWVsZF9wcmVmaXgsXG4gICAgLm14X0ZpZWxkX3Bvc3RmaXgge1xuICAgICAgICBjb2xvcjogJGluZm8tcGxpbnRoLWZnLWNvbG9yO1xuICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgcGFkZGluZzogOXB4IDEwcHg7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cblxuICAgIC5teF9GaWVsZF9wb3N0Zml4IHtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIC8qIHRoaXMgYWxsb3dzIHRoZSBkb21haW4gbmFtZSB0byBzaG93ICovXG4gICAgICAgIC8qIGFzIGxvbmcgYXMgaXQgZG9lc24ndCBtYWtlIHRoZSBpbnB1dCBzaHJpbmsgKi9cbiAgICAgICAgLyogaWYgaXQncyB0b28gYmlnLCBpdCBzaG93cyBhbiBlbGxpcHNpcyAqL1xuICAgICAgICAvKiAxODA6IDI4IGZvciBwcmVmaXgsIDE1MiBmb3IgaW5wdXQgKi9cbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAxODBweCk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NTT0J1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgLm14X1NTT0J1dHRvbnNfcm93ICsgLm14X1NTT0J1dHRvbnNfcm93IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICB9XG5cbiAgICAubXhfU1NPQnV0dG9uIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgICAgIHN2ZyxcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY29udGFpbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDhweDtcbiAgICAgICAgICAgIHRvcDogNHB4O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NTT0J1dHRvbl9taW5pIHtcbiAgICAgICAgc3ZnLFxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgLyogMzBweCBwYXJlbnQsIDI0cHggc2VsZiAqL1xuICAgICAgICAgICAgcGFkZGluZzogM3B4O1xuICAgICAgICAgICAgcG9zaXRpb246IHVuc2V0O1xuICAgICAgICB9XG5cbiAgICAgICAgJiArIC5teF9TU09CdXR0b25fbWluaSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZWFyY2hXYXJuaW5nIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMCAxNnB4O1xuXG4gICAgPiAqIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICA+IGltZyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXJ2ZXJQaWNrZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYigxNDEsIDE1MSwgMTY1LCAwLjIpO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbi1jb250ZW50O1xuICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvIGF1dG87XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcblxuICAgID4gaDIge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMjBweDtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDE7XG4gICAgICAgIGdyaWQtcm93OiAxO1xuICAgIH1cblxuICAgIC5teF9TZXJ2ZXJQaWNrZXJfaGVscCB7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICBncmlkLXJvdzogMTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTJweDtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICBjb2xvcjogJGljb24tYnV0dG9uLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1NlcnZlclBpY2tlcl9zZXJ2ZXIge1xuICAgICAgICBjb2xvcjogJGF1dGhwYWdlLXByaW1hcnktY29sb3I7XG4gICAgICAgIGdyaWQtY29sdW1uOiAxO1xuICAgICAgICBncmlkLXJvdzogMjtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cblxuICAgIC5teF9TZXJ2ZXJQaWNrZXJfY2hhbmdlIHtcbiAgICAgICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgICAgIGdyaWQtcm93OiAyO1xuICAgIH1cblxuICAgIC5teF9TZXJ2ZXJQaWNrZXJfZGVzYyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICBncmlkLWNvbHVtbjogMSAvIDI7XG4gICAgICAgIGdyaWQtcm93OiAzO1xuICAgIH1cbn1cblxuLm14X1NlcnZlclBpY2tlcl9oZWxwRGlhbG9nIHtcbiAgICAubXhfRGlhbG9nX2NvbnRlbnQge1xuICAgICAgICB3aWR0aDogNDU2cHg7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI1IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0dGluZ3NEcm9wZG93biB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5teF9TZXR0aW5nc0Ryb3Bkb3duX2xhYmVsIHtcbiAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTF4KSAwO1xuICAgIH1cblxuICAgIC5teF9Ecm9wZG93bl9pbnB1dCB7XG4gICAgICAgIHdpZHRoOiAzNjBweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0dGluZ3NGbGFnIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIC5teF9Ub2dnbGVTd2l0Y2gge1xuICAgICAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB9XG5cbiAgICAmLm14X1NldHRpbmdzRmxhZ190b2dnbGVJbkZyb250IHtcbiAgICAgICAgLm14X1RvZ2dsZVN3aXRjaCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU2V0dGluZ3NGbGFnX2xhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9TZXR0aW5nc0ZsYWdfbGFiZWwge1xuICAgIGZsZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgcGFkZGluZy10b3A6IDRweDtcbn1cblxuLm14X1NldHRpbmdzRmxhZ19taWNyb2NvcHkge1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG5cbiAgICAvKiBTdXBwb3J0IGNvZGUvcHJlIGVsZW1lbnRzIGluIHNldHRpbmdzIGZsYWcgZGVzY3JpcHRpb25zICovXG4gICAgcHJlLFxuICAgIGNvZGUge1xuICAgICAgICBmb250LWZhbWlseTogJG1vbm9zcGFjZS1mb250LWZhbWlseSAhaW1wb3J0YW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcnRlLWNvZGUtYmctY29sb3I7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzVGFiX21pY3JvY29weV93YXJuaW5nOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIuKaoO+4jyBcIjtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3Bpbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBmbGV4OiAxO1xufVxuXG4ubXhfTWF0cml4Q2hhdF9taWRkbGVQYW5lbCAubXhfU3Bpbm5lciB7XG4gICAgaGVpZ2h0OiBhdXRvO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLyoqXG4qIFRoaXMgY29tcG9uZW50IGV4cGVjdHMgdGhlIHBhcmVudCB0byBzcGVjaWZ5IGEgcG9zaXRpdmUgcGFkZGluZyBhbmRcbiogd2lkdGhcbiovXG5cbi5teF9TdHlsZWRSYWRpb0J1dHRvbiB7XG4gICAgJHJhZGlvLWNpcmNsZS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1wcmltYXJ5KTtcbiAgICAkYWN0aXZlLXJhZGlvLWNpcmNsZS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjY2VudC1yZXN0KTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICA+IC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50IHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgfVxuXG4gICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uX3NwYWNlciB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBmbGV4LWdyb3c6IDA7XG5cbiAgICAgICAgaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgICAgICB3aWR0aDogJGZvbnQtMTZweDtcbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgICAgICAvKiBSZW1vdmUgdGhlIE9TJ3MgcmVwcmVzZW50YXRpb24gKi9cbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuXG4gICAgICAgICsgZGl2IHtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgd2lkdGg6ICRmb250LTE2cHg7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMnB4OyAvKiBGb3IgdGhlIGhpZ2hsaWdodCBvbiBmb2N1cyAqL1xuXG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkcmFkaW8tY2lyY2xlLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGZvbnQtMTZweDtcblxuICAgICAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRmb250LThweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogJGZvbnQtOHB4O1xuXG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGZvbnQtOHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgICYgKyBkaXYge1xuICAgICAgICAgICAgICAgIEBtaXhpbiB1bnJlYWwtZm9jdXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmNoZWNrZWQge1xuICAgICAgICAgICAgJiArIGRpdiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWN0aXZlLXJhZGlvLWNpcmNsZS1jb2xvcjtcblxuICAgICAgICAgICAgICAgICYgPiBkaXYge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLXJhZGlvLWNpcmNsZS1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgLyogRm9yIGVuaGFuY2VkIHZpc2liaWxpdHkgdW5kZXIgY29udHJhc3QgY29udHJvbCAqL1xuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpkaXNhYmxlZCB7XG4gICAgICAgICAgICAmICsgZGl2LFxuICAgICAgICAgICAgJiArIGRpdiArIHNwYW4ge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmICsgZGl2IHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRyYWRpby1jaXJjbGUtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmNoZWNrZWQ6ZGlzYWJsZWQge1xuICAgICAgICAgICAgJiArIGRpdiA+IGRpdiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJhZGlvLWNpcmNsZS1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9pbm5lckxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IDRweDtcbiAgICB9XG59XG5cbi5teF9TdHlsZWRSYWRpb0J1dHRvbl9vdXRsaW5lZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGlucHV0LWRhcmtlci1iZy1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi5teF9TdHlsZWRSYWRpb0J1dHRvbl9jaGVja2VkIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY2NlbnQtcmVzdCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNyBNaWNoYWVsIFRlbGF0eW5za2kgPDd0M2NoZ3V5QGdtYWlsLmNvbT5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1N5bnRheEhpZ2hsaWdodCB7XG4gICAgLyogaW5oaWJpdCBobGpzIHN0eWxpbmcgKi9cbiAgICBiYWNrZ3JvdW5kOiBub25lICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICRsaWdodC1mZy1jb2xvciAhaW1wb3J0YW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1RhZ0NvbXBvc2VyIHtcbiAgICAubXhfVGFnQ29tcG9zZXJfaW5wdXQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogNzBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgOHB4OyAvKiBvdmVycmlkZSBmcm9tIGJ1dHRvbiBzdHlsZXMgKi9cbiAgICAgICAgICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7IC8qIG92ZXJyaWRlIGRlZmF1bHQgc2V0dGluZ3N0YWIgc3R5bGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9GaWVsZCxcbiAgICAgICAgLm14X0ZpZWxkIGlucHV0LFxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICAvKiBTbyB0aGV5IGxvb2sgcmVsYXRlZCB0byBlYWNoIG90aGVyIGJ5IGZlZWxpbmcgdGhlIHNhbWUgKi9cbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9UYWdDb21wb3Nlcl90YWdzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnB4OyAvKiB0aGlzIHBsdXMgMTJweCBmcm9tIHRoZSB0YWdzIG1ha2VzIDI0cHggZnJvbSB0aGUgaW5wdXQgKi9cbiAgICB9XG5cbiAgICAubXhfVGFnIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIH1cbn1cblxuLm14X1RhZyB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICBiYWNrZ3JvdW5kOiAkcXVpbmFyeS1jb250ZW50O1xuXG4gICAgPiBzdmc6Zmlyc3QtY2hpbGQge1xuICAgICAgICB3aWR0aDogMWVtO1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMjUpO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm14X1RhZ19kZWxldGUge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDEuMDY2NjY2ZW07IC8qIDE2cHg7ICovXG4gICAgICAgIGhlaWdodDogMS4wNjY2NjZlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgYmFja2dyb3VuZDogJHN5c3RlbTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuLm14X1RleHRXaXRoVG9vbHRpcF90YXJnZXQge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbn1cblxuLm14X1RleHRXaXRoVG9vbHRpcF90b29sdGlwIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Ub2dnbGVTd2l0Y2gge1xuICAgIC0tVG9nZ2xlU3dpdGNoLW1pbi13aWR0aDogJGZvbnQtNDRweDtcblxuICAgIHRyYW5zaXRpb246XG4gICAgICAgIGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlLW91dCAwLjFzLFxuICAgICAgICBib3JkZXItY29sb3IgMC4ycyBlYXNlLW91dCAwLjFzO1xuXG4gICAgd2lkdGg6ICRmb250LTQ0cHg7XG4gICAgaGVpZ2h0OiAkZm9udC0yMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEuNXJlbTtcbiAgICBwYWRkaW5nOiAycHg7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRpc2FibGVkKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWRpc2FibGVkKTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgJi5teF9Ub2dnbGVTd2l0Y2hfZW5hYmxlZCB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICAgICAgYm9yZGVyOiB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTEpIHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtcHJpbWFyeSk7XG5cbiAgICAgICAgJi5teF9Ub2dnbGVTd2l0Y2hfb24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjY2VudC1yZXN0KTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjY2VudC1yZXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLm14X1RvZ2dsZVN3aXRjaF9iYWxsIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXNlY29uZGFyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X1RvZ2dsZVN3aXRjaF9vbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1hY3Rpb24tcHJpbWFyeS1kaXNhYmxlZCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LWRpc2FibGVkKTtcblxuICAgICAgICA+IC5teF9Ub2dnbGVTd2l0Y2hfYmFsbCB7XG4gICAgICAgICAgICBsZWZ0OiBjYWxjKDEwMCUgLSAkZm9udC0yMHB4KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLW9uLXNvbGlkLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfVG9nZ2xlU3dpdGNoX2JhbGwge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogJGZvbnQtMjBweDtcbiAgICBoZWlnaHQ6ICRmb250LTIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogJGZvbnQtMjBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctYWN0aW9uLXByaW1hcnktZGlzYWJsZWQpO1xuICAgIHRyYW5zaXRpb246XG4gICAgICAgIGxlZnQgMC4xNXMgZWFzZS1vdXQgMC4xcyxcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvciAwLjE1cyBlYXNlLW91dCAwLjFzO1xuICAgIGxlZnQ6IDA7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1ZhbGlkYXRpb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtd2lkdGg6IDIwMHB4O1xufVxuXG4ubXhfVmFsaWRhdGlvbl9kZXRhaWxzIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4ubXhfVmFsaWRhdGlvbl9kZXNjcmlwdGlvbiArIC5teF9WYWxpZGF0aW9uX2RldGFpbHMge1xuICAgIG1hcmdpbjogMWVtIDAgMDtcbn1cblxuLm14X1ZhbGlkYXRpb25fZGV0YWlsIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxNHB4O1xuICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRleHQtYm90dG9tO1xuICAgIH1cblxuICAgICYubXhfVmFsaWRhdGlvbl92YWxpZCB7XG4gICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgIH1cblxuICAgICYubXhfVmFsaWRhdGlvbl9pbnZhbGlkIHtcbiAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Mb2NhdGlvblBpY2tlciB7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAvKiB3aGVuIHRoZXJlIGFyZSBlcnJvcnMgbG9hZGluZyB0aGUgbWFwICovXG4gICAgLyogdGhlIGNhbnZhcyBpcyBzdGlsbCBpbnNlcnRlZCAqL1xuICAgIC8qIGFuZCBjYW4gb3ZlcmxhcCBlcnJvciBtZXNzYWdlL2Nsb3NlIGJ1dHRvbnMgKi9cbiAgICAvKiBoaWRlIGl0ICovXG4gICAgJi5teF9Mb2NhdGlvblBpY2tlcl9oYXNFcnJvciB7XG4gICAgICAgIC5tYXBsaWJyZWdsLWNhbnZhcy1jb250YWluZXIsXG4gICAgICAgIC5tYXBsaWJyZWdsLWNvbnRyb2wtY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjbXhfTG9jYXRpb25QaWNrZXJfbWFwIHtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogaW5oZXJpdDtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICAgIGZsZXg6IDE7XG5cbiAgICAgICAgLm1hcGxpYnJlZ2wtY3RybC5tYXBsaWJyZWdsLWN0cmwtZ3JvdXAsXG4gICAgICAgIC5tYXBsaWJyZWdsLWN0cmwubWFwbGlicmVnbC1jdHJsLWF0dHJpYiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIH1cblxuICAgICAgICAubWFwbGlicmVnbC1jdHJsLm1hcGxpYnJlZ2wtY3RybC1ncm91cCB7XG4gICAgICAgICAgICAvKiBwbGFjZSBiZWxvdyB0aGUgY2xvc2UgYnV0dG9uICovXG4gICAgICAgICAgICAvKiBwYWRkaW5nLTE2ICsgMjRweCBjbG9zZSBidXR0b24gKyBwYWRkaW5nLTEwICovXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA1MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLm1hcGxpYnJlZ2wtdXNlci1sb2NhdGlvbi1hY2N1cmFjeS1jaXJjbGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tYXBsaWJyZWdsLXVzZXItbG9jYXRpb24tZG90IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTG9jYXRpb25QaWNrZXJfZm9vdGVyIHtcbiAgICAgICAgZmxleDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcblxuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuICAgIH1cbn1cblxuLm14X0xvY2F0aW9uUGlja2VyX3BpblRleHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgc3BhbiB7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCA0cHggMTVweCByZ2IoMCwgMCwgMCwgMC4xNSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICB9XG59XG5cbi5teF9Mb2NhdGlvblBpY2tlcl9zdWJtaXRCdXR0b24ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogNDhweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DYWxsRXZlbnRfd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLm14X0NhbGxFdmVudCB7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1pbi1oZWlnaHQ6IDYwcHg7XG4gICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3lzdGVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgPiAubXhfQmFzZUF2YXRhcixcbiAgICA+IC5teF9JY29uIHtcbiAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICB9XG5cbiAgICA+IC5teF9JY29uIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMXgpIDA7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLm14X0xpdmVDb250ZW50U3VtbWFyeSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICB9XG5cbiAgICAtLWZhY2VwaWxlLWJhY2tncm91bmQ6ICRzeXN0ZW07XG59XG5cbi5teF9DYWxsRXZlbnRfdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICBsaW5lLWhlaWdodDogMjRweDsgLyogaW4gcHggdG8gbWF0Y2ggdGhlIGF2YXRhciAqL1xufVxuXG4ubXhfQ2FsbEV2ZW50X2luYWN0aXZlIC5teF9DYWxsRXZlbnRfdGl0bGUgc3ZnIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9DYWxsRXZlbnRfYWN0aXZlIC5teF9DYWxsRXZlbnRfdGl0bGUge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xufVxuXG4ubXhfQ2FsbEV2ZW50X2NvbHVtbnMge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLm14X1RpbWVsaW5lQ2FyZCAubXhfQ2FsbEV2ZW50X2NvbHVtbnMge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfQ2FsbEV2ZW50X2RldGFpbHMge1xuICAgIGZsZXgtZ3JvdzogMTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbn1cblxuLm14X0NhbGxFdmVudF9idXR0b24ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWluLXdpZHRoOiAxMjBweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE4LTIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0V2ZW50VGlsZUJ1YmJsZS5teF9DcmVhdGVFdmVudCB7XG4gICAgbWFyZ2luOiB2YXIoLS1FdmVudFRpbGVCdWJibGVfbWFyZ2luLWJsb2NrKSBhdXRvO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgY29sb3I6ICRoZWFkZXItcGFuZWwtdGV4dC1wcmltYXJ5LWNvbG9yO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qKiBEaXNhbWJpZ3VhdGVkIHByb2ZpbGUgbmVlZHMgdG8gaGF2ZSBhIGRpZmZlcmVudCBsYXlvdXQgaW4gdGhlIG1lbWJlciB0aWxlICovXG4ubXhfTWVtYmVyVGlsZVZpZXcgLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlIHtcbiAgICAvKiBOYW1lIGFuZCB0aGUgdXNlciBzdGF0dXMgZW1vamkgc2hhcmUgdGhlIGZpcnN0IHJvdyAod2l0aCB0aGUgbmFtZSB0cnVuY2F0aW5nIGFuZCB0aGUgZW1vamkgYWx3YXlzIHZpc2libGUpXG4gICAgICAgRGlzYW1iaWd1YXRlZCBNWElEIGdldHMgYSBmdWxsIHJvdyBiZWxvdy4gKi9cbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWluLWNvbnRlbnQgMWZyO1xuXG4gICAgLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlX3VzZXJTdGF0dXMge1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG4gICAgfVxuXG4gICAgLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlX214aWQge1xuICAgICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICBzcGFuOm5vdCgubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGVfbXhpZCkge1xuICAgICAgICAvKipcbiAgICAgICAgSW4gYSBtZW1iZXIgdGlsZSwgdGhpcyBzcGFuIGVsZW1lbnQgaXMgYSBncmlkIGNoaWxkIGFuZCBzb1xuICAgICAgICB3ZSBuZWVkIHRoZSBmb2xsb3dpbmcgZm9yIHRleHQgb3ZlcmZsb3cgdG8gd29yay5cbiAgICAgICAgKiovXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xlZ2FjeUNhbGxFdmVudF93cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLm14X0xlZ2FjeUNhbGxFdmVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xeCkgMDtcblxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTF4KSAwO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkYXJrLXBhbmVsLWJnLWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIHdpZHRoOiA2NSU7XG4gICAgICAgIGhlaWdodDogZml0LWNvbnRlbnQ7XG5cbiAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9pY29uQnV0dG9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9pbmZvIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9pbmZvX2Jhc2ljIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4OyAvKiBUbyBtYXRjaCBteF9MZWdhY3lDYWxsRXZlbnQgKi9cbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuXG4gICAgICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9zZW5kZXIge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcblxuICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X3R5cGUge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7IC8qIFNlZSBteF9JbmNvbWluZ0xlZ2FjeUNhbGxUb2FzdF9idXR0b25zICovXG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA0MnB4OyAvKiBhdmF0YXIgKDMycHgpICsgbXhfTGVnYWN5Q2FsbEV2ZW50X2luZm9fYmFzaWMgbWFyZ2luICgxMHB4KSAqL1xuICAgICAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICAgICAgICAgIG1heC13aWR0aDogZml0LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfY29udGVudF9idXR0b24ge1xuICAgICAgICAgICAgICAgIEBtaXhpbiBMZWdhY3lDYWxsQnV0dG9uO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfY29udGVudF90b29sdGlwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfTGVnYWN5Q2FsbEV2ZW50X25hcnJvdyB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IHVuc2V0O1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgICAgICBoZWlnaHQ6IHVuc2V0O1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyOTBweDtcblxuICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9pY29uQnV0dG9uIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMTJweDtcbiAgICAgICAgICAgICAgICByaWdodDogMTJweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudF9pbmZvIHtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfTGVnYWN5Q2FsbEV2ZW50X3R5cGVfaWNvbiB7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogLTJweDtcblxuICAgIHN2ZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgLm14X0V2ZW50VGlsZV9lMmVJY29uICsgLm14X0xlZ2FjeUNhbGxFdmVudF93cmFwcGVyIHtcbiAgICAgICAgLm14X0xlZ2FjeUNhbGxFdmVudCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIC8qIDVweCAoZ2FwKSArIDE0cHggKGUyZSBpY29uIHNpemUgKiBtYXNrLXNpemUpICsgOXB4IChtYXJnaW4tbGVmdCBvZiBlMmUgaWNvbikgKi9cbiAgICAgICAgICAgIHJpZ2h0OiBjYWxjKDVweCArIDE0cHggKyA5cHgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlX2xlZnRBbGlnbmVkQnViYmxlIHtcbiAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X3dyYXBwZXIge1xuICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50IHtcbiAgICAgICAgICAgICYubXhfTGVnYWN5Q2FsbEV2ZW50X25hcnJvdyB7XG4gICAgICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9JUkNMYXlvdXQge1xuICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfd3JhcHBlciB7XG4gICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnQge1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tY3BkLXNwYWNlLTF4KTsgLyogZGlzcGxheSBncmVlbiBsaW5lICovXG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUdWxpciBBc29rYW4gPHR1bGlyQG1hdW5pdW0ubmV0PlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTUltYWdlUmVwbHlCb2R5LFxuLm14X01TdGlja2VyQm9keV93cmFwcGVyIHtcbiAgICAubXhfTUltYWdlQm9keV9iYW5uZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgbGVmdDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tTUJvZHktYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBtYXgtd2lkdGg6IG1pbigxMDAlLCAzNTBweCk7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMCwgMCwgMC42KTtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgfVxuXG4gICAgLm14X01JbWFnZUJvZHlfcGxhY2Vob2xkZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG5cbiAgICAgICAgLm14X0JsdXJoYXNoID4gY2FudmFzIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogbXgtLWFuaW0tcHVsc2UgMS43NXMgaW5maW5pdGUgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC42LCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9NSW1hZ2VCb2R5X3RodW1ibmFpbF9jb250YWluZXIge1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1NQm9keS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgY29udGFpbjogcGFpbnQ7XG4gICAgfVxuXG4gICAgLm14X01JbWFnZUJvZHlfdGh1bWJuYWlsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLm14X01JbWFnZUJvZHlfZ2lmTGFiZWwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0b3A6IDBweDtcbiAgICAgICAgbGVmdDogMTRweDtcbiAgICAgICAgcGFkZGluZzogNXB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICRpbWFnZWJvZHktZ2lmbGFiZWw7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRpbWFnZWJvZHktZ2lmbGFiZWwtYm9yZGVyO1xuICAgICAgICBjb2xvcjogJGltYWdlYm9keS1naWZsYWJlbC1jb2xvcjtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxufVxuXG4ubXhfTUltYWdlUmVwbHlCb2R5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICAubXhfTUltYWdlQm9keV90aHVtYm5haWxfY29udGFpbmVyIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwOyAvKiBQcmV2ZW50IGEgYmxvd291dCAqL1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NTG9jYXRpb25Cb2R5IHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAubXhfTUxvY2F0aW9uQm9keV9tYXAge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHdpZHRoOiA0NTBweDtcbiAgICAgICAgaGVpZ2h0OiAzMDBweDtcbiAgICAgICAgei1pbmRleDogMDsgLyoga2VlcHMgdGhlIGVudGlyZSBtYXAgdW5kZXIgdGhlIG1lc3NhZ2UgYWN0aW9uIGJhciAqL1xuXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLU1Cb2R5LWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxufVxuXG4vKiBJbiB0aGUgdGltZWxpbmUsIHdlIGZpdCB0aGUgd2lkdGggb2YgdGhlIGNvbnRhaW5lciAqL1xuLm14X0V2ZW50VGlsZV9saW5lIC5teF9NTG9jYXRpb25Cb2R5IC5teF9NTG9jYXRpb25Cb2R5X21hcCB7XG4gICAgbWF4LXdpZHRoOiA0NTBweDtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLm14X0V2ZW50VGlsZVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXSAubXhfRXZlbnRUaWxlX2xpbmUgLm14X01Mb2NhdGlvbkJvZHkgLm14X01Mb2NhdGlvbkJvZHlfbWFwIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgd2lkdGg6IDQ1MHB4O1xufVxuXG4ubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUgfiAubXhfTUxvY2F0aW9uQm9keSB7XG4gICAgbWFyZ2luLXRvcDogNnB4OyAvKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXRyaXgtb3JnL21hdHJpeC1yZWFjdC1zZGsvcHVsbC84NDQyICovXG59XG5cbi5teF9SZXBseVRpbGUgLm14X01Mb2NhdGlvbkJvZHkge1xuICAgIC8qIFByZXZlbnQgY2xpY2tpbmcgYSBsb2NhdGlvbiB3aXRoaW4gYSByZXBseSAqL1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuJHBvbGwtbWF4LXdpZHRoOiA1NTBweDtcblxuLm14X01Qb2xsQm9keSB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBtaW4td2lkdGg6IDA7IC8qIE92ZXJyaWRlIGZpZWxkc2V0IGRlZmF1bHQgbWluLXdpZHRoOiBtaW4tY29udGVudCAqL1xuICAgIHdpZHRoOiAxMDAlOyAvKiBFbnN1cmUgZmllbGRzZXQgdGFrZXMgZnVsbCBhdmFpbGFibGUgd2lkdGggKi9cbiAgICBib3JkZXI6IG5vbmU7IC8qIFJlbW92ZSBkZWZhdWx0IGZpZWxkc2V0IGJvcmRlciAqL1xuICAgIHBhZGRpbmc6IDA7IC8qIFJlbW92ZSBkZWZhdWx0IGZpZWxkc2V0IHBhZGRpbmcgKi9cbiAgICBtYXJnaW4taW5saW5lOiB1bnNldDsgLyogUmVtb3ZlIGRlZmF1bHQgZmllbGRzZXQgbWFyZ2luICovXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiBQcmVzZXJ2ZSB0aGUgZmllbGRzZXQgZGlzcGxheSB2YWx1ZSB3ZSB1c2VkIHRvIHNldCBnbG9iYWxseSAqL1xuXG4gICAgbGVnZW5kIHtcbiAgICAgICAgcGFkZGluZy1pbmxpbmU6IHVuc2V0OyAvKiBSZW1vdmUgZGVmYXVsdCBsZWdlbmQgcGFkZGluZyAqL1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWNwZC1mb250LWxldHRlci1zcGFjaW5nLWhlYWRpbmctbGcpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X01Qb2xsQm9keV9lZGl0ZWQge1xuICAgICAgICAgICAgY29sb3I6ICRyb29tdG9waWMtY29sb3I7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTVBvbGxCb2R5X3RvdGFsVm90ZXMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogaW5saW5lO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG5cbiAgICAgICAgLm14X1NwaW5uZXIge1xuICAgICAgICAgICAgZmxleDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBQcmV2ZW50IGNsaWNraW5nIGEgcG9sbCB3aXRoaW4gYSByZXBseSAqL1xuLm14X1JlcGx5VGlsZSAubXhfTVBvbGxCb2R5IHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLm14X01Qb2xsQm9keV9hbGxPcHRpb25zIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIG1heC13aWR0aDogJHBvbGwtbWF4LXdpZHRoO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE4LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NU3RpY2tlckJvZHlfd3JhcHBlciB7XG4gICAgcGFkZGluZzogMTJweCAwcHg7XG59XG5cbi5teF9NU3RpY2tlckJvZHlfaGlkZGVuIHtcbiAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAvKiBUbyBjZW50ZXIgdGhlIHRleHQgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZnJhbWUgKi9cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5teF9NU3RpY2tlckJvZHlfcGxhY2Vob2xkZXIge1xuICAgIC8qIGNlbnRlcmluZyAqL1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiBjYWxjKDUwJSAtIDQwcHgpO1xuICAgIHRvcDogY2FsYyg1MCUgLSA0MHB4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01lc3NhZ2VBY3Rpb25CYXIge1xuICAgIC0tTWVzc2FnZUFjdGlvbkJhci1zaXplLWJ1dHRvbjogMjhweDtcbiAgICAtLU1lc3NhZ2VBY3Rpb25CYXItc2l6ZS1tYXJnaW46IDNweDtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IGNhbGMoXG4gICAgICAgIC0xICpcbiAgICAgICAgICAgICh2YXIoLS1NZXNzYWdlQWN0aW9uQmFyLXNpemUtYnV0dG9uKSArIDIgKiAodmFyKC0tTWVzc2FnZUFjdGlvbkJhci1zaXplLW1hcmdpbikgKyB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTEpKSlcbiAgICApO1xuICAgIHJpZ2h0OiA4cHg7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgLyogRW5zdXJlIHRoZSBhY3Rpb24gYmFyIGFwcGVhcnMgYWJvdmUgb3RoZXIgdGhpbmdzIGxpa2UgdGhlIHJlYWQgbWFya2VyICovXG4gICAgLyogYW5kIHNlbmRlciBhdmF0YXIgKGZvciBzbWFsbCBzY3JlZW5zKSAqL1xuICAgIHotaW5kZXg6IDEwO1xuXG4gICAgLyogQWRkcyBhIHByZXZpb3VzIGV2ZW50IHNhZmUgYXJlYSBzbyB0aGF0IHlvdSBjYW4ndCBhY2NpZGVudGFsbHkgaG92ZXIgdGhlICovXG4gICAgLyogcHJldmlvdXMgZXZlbnQgd2hpbGUgdHJ5aW5nIHRvIG1vdXNlIGludG8gdGhlIGFjdGlvbiBiYXIgb3IgZnJvbSB0aGUgKi9cbiAgICAvKiByZWFjdCBidXR0b24gdG8gaXRzIHRvb2x0aXAuICovXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAvKiB0b29sdGlwIHNhZmUgbW91c2luZyBhcmVhICsgdG9vbHRpcCBvdmVyaGFuZyArICovXG4gICAgICAgIC8qIGFjdGlvbiBiYXIgKyBhY3Rpb24gYmFyIG9mZnNldCBmcm9tIGV2ZW50ICovXG4gICAgICAgIHdpZHRoOiBjYWxjKDEwcHggKyA0OHB4ICsgMTAwJSArIDhweCk7XG4gICAgICAgIC8qIHNhZmUgYXJlYSArIGFjdGlvbiBiYXIgKi9cbiAgICAgICAgaGVpZ2h0OiBjYWxjKDIwcHggKyAxMDAlKTtcbiAgICAgICAgdG9wOiAtMTJweDtcbiAgICAgICAgbGVmdDogLTU4cHg7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICBjdXJzb3I6IGluaXRpYWw7XG5cbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1saW5lLWxlbmd0aCAqL1xuICAgICAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl1cbiAgICAgICAgICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV90b2dnbGVcbiAgICAgICAgICAgIH4gLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3Vuc3R5bGVkTGlzdFxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9pbmZvOmZpcnN0LW9mLXR5cGVcbiAgICAgICAgICAgICYge1xuICAgICAgICAgICAgLyogaW1wcm92ZSBjbGlja2FiaWxpdHkgb2YgXCJjb2xsYXBzZVwiIGxpbmsgYnV0dG9uIG9uIGJ1YmJsZSBsYXlvdXQgYnkgcmVkdWNpbmcgd2lkdGggYW5kIGhlaWdodCB2YWx1ZXMgKi9cbiAgICAgICAgICAgIC8qIG14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3RvZ2dsZSB+OiB0byBhcHBseSBydWxlcyB0byBhY3Rpb24gYmFyIHdoZW4gXCJjb2xsYXBzZVwiIGJ1dHRvbiBpcyBhdmFpbGFibGUgKi9cbiAgICAgICAgICAgIC8qIG14X0V2ZW50VGlsZV9pbmZvOmZpcnN0LW9mLXR5cGU6IHRvIGFwcGx5IHJ1bGVzIHRvIHRoZSBpbmZvIGV2ZW50IHRpbGUganVzdCB1bmRlciBcImNvbGxhcHNlXCIgYnV0dG9uICovXG4gICAgICAgICAgICAvKiBUT0RPOiB1c2UgYSBuZXcgY2xhc3MgbmFtZSBpbnN0ZWFkICovXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2luZm8gLm14X1ZpZXdTb3VyY2VFdmVudCB+ICYge1xuICAgICAgICAgICAgLyogaW1wcm92ZSBjbGlja2FiaWxpdHkgb2YgdmlldyBzb3VyY2UgZXZlbnQgdG9nZ2xlIGJ1dHRvbiBieSByZW1vdmluZyB2ZXJ0aWNhbCBzYWZlIGFyZWEgKi9cbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9UZXh0dWFsQm9keV91cmxQcmV2aWV3cyB7XG4gICAgLyogTGV0IHNoYXJlZC1jb21wb25lbnRzIG93biBwcmV2aWV3IGxpbmsgY29sb3VycyBpbnN0ZWFkIG9mIHRoZSBhcHAtd2lkZSBhbmNob3IgY29sb3VyLiAqL1xuICAgIGE6d2hlcmUoOm5vdChbZGF0YS1raW5kXSkpOmhvdmVyLFxuICAgIGE6d2hlcmUoOm5vdChbZGF0YS1raW5kXSkpOmxpbmssXG4gICAgYTp3aGVyZSg6bm90KFtkYXRhLWtpbmRdKSk6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiByZXZlcnQtbGF5ZXI7XG4gICAgfVxufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI2IEVsZW1lbnQgQ3JlYXRpb25zIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1RocmVhZEFjdGlvbkJhciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0b3A6IGNhbGMoLTEgKiAoMjhweCArIDIgKiAoM3B4ICsgdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSkpKTtcbiAgICByaWdodDogOHB4O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIC8qIEVuc3VyZSB0aGUgYWN0aW9uIGJhciBhcHBlYXJzIGFib3ZlIG90aGVyIHRoaW5ncyBsaWtlIHRoZSByZWFkIG1hcmtlciAqL1xuICAgIC8qIGFuZCBzZW5kZXIgYXZhdGFyIChmb3Igc21hbGwgc2NyZWVucykgKi9cbiAgICB6LWluZGV4OiAxMDtcblxuICAgIC8qIEFkZHMgYSBwcmV2aW91cyBldmVudCBzYWZlIGFyZWEgc28gdGhhdCB5b3UgY2FuJ3QgYWNjaWRlbnRhbGx5IGhvdmVyIHRoZSAqL1xuICAgIC8qIHByZXZpb3VzIGV2ZW50IHdoaWxlIHRyeWluZyB0byBtb3VzZSBpbnRvIHRoZSBhY3Rpb24gYmFyIG9yIGZyb20gdGhlICovXG4gICAgLyogcmVhY3QgYnV0dG9uIHRvIGl0cyB0b29sdGlwLiAqL1xuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgLyogdG9vbHRpcCBzYWZlIG1vdXNpbmcgYXJlYSArIHRvb2x0aXAgb3ZlcmhhbmcgKyAqL1xuICAgICAgICAvKiBhY3Rpb24gYmFyICsgYWN0aW9uIGJhciBvZmZzZXQgZnJvbSBldmVudCAqL1xuICAgICAgICB3aWR0aDogY2FsYygxMHB4ICsgNDhweCArIDEwMCUgKyA4cHgpO1xuICAgICAgICAvKiBzYWZlIGFyZWEgKyBhY3Rpb24gYmFyICovXG4gICAgICAgIGhlaWdodDogY2FsYygyMHB4ICsgMTAwJSk7XG4gICAgICAgIHRvcDogLTEycHg7XG4gICAgICAgIGxlZnQ6IC01OHB4O1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgY3Vyc29yOiBpbml0aWFsO1xuXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGluZS1sZW5ndGggKi9cbiAgICAgICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5W2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdXG4gICAgICAgICAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfdG9nZ2xlXG4gICAgICAgICAgICB+IC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV91bnN0eWxlZExpc3RcbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfaW5mbzpmaXJzdC1vZi10eXBlXG4gICAgICAgICAgICAmIHtcbiAgICAgICAgICAgIC8qIGltcHJvdmUgY2xpY2thYmlsaXR5IG9mIFwiY29sbGFwc2VcIiBsaW5rIGJ1dHRvbiBvbiBidWJibGUgbGF5b3V0IGJ5IHJlZHVjaW5nIHdpZHRoIGFuZCBoZWlnaHQgdmFsdWVzICovXG4gICAgICAgICAgICAvKiBteF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV90b2dnbGUgfjogdG8gYXBwbHkgcnVsZXMgdG8gYWN0aW9uIGJhciB3aGVuIFwiY29sbGFwc2VcIiBidXR0b24gaXMgYXZhaWxhYmxlICovXG4gICAgICAgICAgICAvKiBteF9FdmVudFRpbGVfaW5mbzpmaXJzdC1vZi10eXBlOiB0byBhcHBseSBydWxlcyB0byB0aGUgaW5mbyBldmVudCB0aWxlIGp1c3QgdW5kZXIgXCJjb2xsYXBzZVwiIGJ1dHRvbiAqL1xuICAgICAgICAgICAgLyogVE9ETzogdXNlIGEgbmV3IGNsYXNzIG5hbWUgaW5zdGVhZCAqL1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9pbmZvIC5teF9WaWV3U291cmNlRXZlbnQgfiAmIHtcbiAgICAgICAgICAgIC8qIGltcHJvdmUgY2xpY2thYmlsaXR5IG9mIHZpZXcgc291cmNlIGV2ZW50IHRvZ2dsZSBidXR0b24gYnkgcmVtb3ZpbmcgdmVydGljYWwgc2FmZSBhcmVhICovXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSwgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRXZlbnRUaWxlQnViYmxlLm14X2NyeXB0b0V2ZW50IHtcbiAgICBtYXJnaW46IHZhcigtLUV2ZW50VGlsZUJ1YmJsZV9tYXJnaW4tYmxvY2spIGF1dG87XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUG9sbEhpc3RvcnlfY29udGVudCB7XG4gICAgaGVpZ2h0OiA2MDBweDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLm14X1BvbGxIaXN0b3J5X2hlYWRlci5teF9IZWFkaW5nX2gyIHtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1BvbGxIaXN0b3J5TGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG59XG5cbi5teF9Qb2xsSGlzdG9yeUxpc3RfbGlzdCB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW4tYmxvY2s6IDA7XG4gICAgcGFkZGluZy1pbmxpbmU6IDA7XG4gICAgZmxleDogMSAxIDA7XG4gICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICBwYWRkaW5nLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMTZ4KTtcbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS04eCkgMDtcblxuICAgICYubXhfUG9sbEhpc3RvcnlMaXN0X2xpc3RfRU5ERUQge1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS04eCk7XG4gICAgfVxufVxuXG4ubXhfUG9sbEhpc3RvcnlMaXN0X25vUmVzdWx0cyB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtMTZ4KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuXG4gICAgLm14X1BvbGxIaXN0b3J5TGlzdF9sb2FkTW9yZVBvbGxzIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG59XG5cbi5teF9Qb2xsSGlzdG9yeUxpc3RfbG9hZGluZyB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAvKiBjZW50ZXIgaW4gYWxsIGZyZWUgc3BhY2VcbiAgICB3aGVuIHRoZXJlIGFyZSBubyByZXN1bHRzICovXG4gICAgJi5teF9Qb2xsSGlzdG9yeUxpc3Rfbm9SZXN1bHRzWWV0IHtcbiAgICAgICAgbWFyZ2luOiBhdXRvIGF1dG87XG4gICAgfVxufVxuXG4ubXhfUG9sbEhpc3RvcnlMaXN0X2xvYWRNb3JlUG9sbHMge1xuICAgIHdpZHRoOiBtYXgtY29udGVudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9CYXNlQ2FyZCB7XG4gICAgLS1CYXNlQ2FyZF9FdmVudFRpbGVfbGluZS1wYWRkaW5nLWJsb2NrOiAycHg7XG4gICAgLS1CYXNlQ2FyZF9FdmVudFRpbGUtc3BhY2luZy1pbmxpbmU6IDM2cHg7XG4gICAgLS1CYXNlQ2FyZF9oZWFkZXItYnV0dG9uLXNpemU6IDI4cHg7XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tY3BkLWZvbnQtc2l6ZS1ib2R5LW1kKTtcblxuICAgIC5teF9CYXNlQ2FyZF9oZWFkZXIge1xuICAgICAgICBoZWlnaHQ6IDY0cHg7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIC8qIGNoYW5naW5nIHRoZSBjb2xvciBmcm9tICRzZXBhcmF0b3IgdG8gdHJhbnNwYXJlbnQgYXMgaXQgaXNcbiAgICAgICAgICAgdGhlIGJlc3QgdmlzdWFsIG91dHB1dCBkdXJpbmcgdGhlIHRyYW5zaXRpb24gcGVyaW9kLiBUaGlzIHdpbGwgYmVcbiAgICAgICAgICAgcmVpbnRyb2R1Y2VkIGF0IGEgbGF0ZXIgc3RhZ2UuICovXG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBib3JkZXItYmxvY2stZW5kOiB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTEpIHNvbGlkICRzZXBhcmF0b3I7XG5cbiAgICAgICAgLm14X0Jhc2VDYXJkX2hlYWRlcl9zcGFjZXIge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gaDIge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDQ0cHg7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXNlbWlib2xkKTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQmFzZUNhcmRfaGVhZGVyX3RpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgZmxleDogMTtcblxuICAgICAgICAgICAgLm14X0Jhc2VDYXJkX2hlYWRlcl90aXRsZV9oZWFkaW5nIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1tZWRpdW0pO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfQmFzZUNhcmRfaGVhZGVyX3RpdGxlX2J1dHRvbi0tb3B0aW9uIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGModmFyKC0tQmFzZUNhcmRfaGVhZGVyLWJ1dHRvbi1zaXplKSAtIDRweCk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLUJhc2VDYXJkX2hlYWRlci1idXR0b24tc2l6ZSkgLSA0cHgpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJweDtcblxuICAgICAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6aG92ZXIgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0F1dG9IaWRlU2Nyb2xsYmFyIHtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgc2Nyb2xsYmFyLWd1dHRlcjogc3RhYmxlO1xuICAgIH1cblxuICAgIC5teF9CYXNlQ2FyZF9mb290ZXIge1xuICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcblxuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3NlY29uZGFyeSB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDE0MSwgMTUxLCAxNjUsIDAuMik7XG4gICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXNlbWlib2xkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2Rpc2FibGVkIHtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9Db250ZXh0dWFsTWVudV93cmFwcGVyLm14X0Jhc2VDYXJkX2hlYWRlcl90aXRsZSB7XG4gICAgLm14X0NvbnRleHR1YWxNZW51IHtcbiAgICAgICAgcG9zaXRpb246IGluaXRpYWw7XG5cbiAgICAgICAgc3BhbjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXG4gICAgICAgIGJvcmRlcjogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDBweCA0cHggMjRweCByZ2IoMCwgMCwgMCwgMC4xKTtcbiAgICB9XG5cbiAgICAubXhfQ29udGV4dHVhbE1lbnVfY2hldnJvbl90b3Age1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICByaWdodDogMjJweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJvcmRlci1pbnRlcmFjdGl2ZS1zZWNvbmRhcnkpO1xuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICBib3JkZXI6IGluaGVyaXQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxcHg7XG4gICAgICAgICAgICBsZWZ0OiAtOHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjQgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0VtcHR5U3RhdGUge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDU2cHg7XG4gICAgICAgIGhlaWdodDogNTZweDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWwtYWN0aW9ucztcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICAvKiBCbG9vbSB1c2luZyBtYWdpYyBudW1iZXJzIGRpcmVjdGx5IG91dCBvZiBGaWdtYSAqL1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICB3aWR0aDogNjQycHg7XG4gICAgICAgIGhlaWdodDogNzc1cHg7XG4gICAgICAgIHJpZ2h0OiAtMjUzLjc3cHg7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogcmFkaWFsLWdyYWRpZW50KDQ5Ljk1JSA0OS45NSUgYXQgNTAlIDUwJSwgcmdiKDEzLCAxODksIDEzOSwgMC4xMikgMCUsIHJnYigxOCwgMTE1LCAyMzUsIDApIDEwMCUpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtODkuNjlkZWcpO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FbmNyeXB0aW9uSW5mb19zcGlubmVyIHtcbiAgICAubXhfU3Bpbm5lciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDI1cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XG4gICAgfVxuXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjQgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0V4dGVuc2lvbnNDYXJkIHtcbiAgICAtLWNwZC1zZXBhcmF0b3Itc3BhY2luZzogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAtLUFkZEV4dGVuc2lvbi1vdmVybGFwOiAtNzZweDtcbiAgICAubXhfQXV0b0hpZGVTY3JvbGxiYXIge1xuICAgICAgICBwYWRkaW5nOiAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgLyogU3R5bGluZyBmb3IgdGhlIFwiQWRkIGV4dGVuc2lvbnNcIiBidXR0b24gKi9cbiAgICAgICAgJiA+IGJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9FeHRlbnNpb25zQ2FyZF9jb250YWluZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTV4KSB2YXIoLS1jcGQtc3BhY2UtNHgpIDA7XG4gICAgfVxuXG4gICAgLm14X0V4dGVuc2lvbnNDYXJkX0J1dHRvbiB7XG4gICAgICAgIC8qIHRoaXMgYnV0dG9uIGlzIHNwZWNpYWwgc28gd2UgaGF2ZSB0byBvdmVycmlkZSBzb21lIG9mIHRoZSBvcmlnaW5hbCBzdHlsaW5nICovXG4gICAgICAgIC8qIGFzIHdlIHdpbGwgYmUgYXBwbHlpbmcgaXQgaW4gaXRzIGNoaWxkcmVuICovXG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLm14X1dpZGdldEF2YXRhciB7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FeHRlbnNpb25zQ2FyZF9pY29uX2FwcCB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0xMngpIHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FeHRlbnNpb25zQ2FyZF9hcHBfcGluVG9nZ2xlLFxuICAgICAgICAubXhfRXh0ZW5zaW9uc0NhcmRfYXBwX29wdGlvbnMge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOyAvKiB0byBnaXZlIGJpZ2dlciBpbnRlcmFjdGl2ZSB6b25lICovXG4gICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRpY29uLWJ1dHRvbi1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTsgLyogZXF1YWwgdG8gcGFkZGluZy10b3Agb2YgcGFyZW50ICovXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxNDEsIDE1MSwgMTY1LCAwLjEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FeHRlbnNpb25zQ2FyZF9hcHBfcGluVG9nZ2xlIHtcbiAgICAgICAgICAgIHJpZ2h0OiA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXh0ZW5zaW9uc0NhcmRfYXBwX29wdGlvbnMge1xuICAgICAgICAgICAgcmlnaHQ6IDMycHg7IC8qIDI0ICsgOCAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9FeHRlbnNpb25zQ2FyZF9CdXR0b25fcGlubmVkIHtcbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLjI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9FeHRlbnNpb25zQ2FyZF9hcHBfcGluVG9nZ2xlIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogdW5zZXQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICB0b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7IC8qIHJlLWFsaWduIGJhc2VkIG9uIHRoZSBoZWlnaHQgY2hhbmdlICovXG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogcGFzcyB0aHJvdWdoIHRvIHRoZSByZWFsIGJ1dHRvbiAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogU2V0IGxheW91dCBmb3IgZXZlcnlvbmUgYnV0dG9uICovXG4gICAgYVtkYXRhLWtpbmQ9XCJwcmltYXJ5XCJdIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTEweCk7XG4gICAgfVxuXG4gICAgLm14X0VtcHR5U3RhdGU6OmJlZm9yZSB7XG4gICAgICAgIC8qIE92ZXJsYXAgdGhlIEFkZCBleHRlbnNpb25zIGJ1dHRvbiAqL1xuICAgICAgICB0b3A6IHZhcigtLUFkZEV4dGVuc2lvbi1vdmVybGFwKTtcbiAgICB9XG5cbiAgICAubXhfRW1wdHlTdGF0ZSB7XG4gICAgICAgIC8qIFN0b3AgZW1wdHkgc3RhdGUgc2Nyb2xsaW5nICovXG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlICsgdmFyKC0tQWRkRXh0ZW5zaW9uLW92ZXJsYXApKTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUGlubmVkTWVzc2FnZXNDYXJkIHtcbiAgICAtLXVucGluLWhlaWdodDogNzZweDtcblxuICAgIC5teF9QaW5uZWRNZXNzYWdlc0NhcmRfd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgICAgICAubXhfUGlubmVkTWVzc2FnZXNDYXJkX1NlcGFyYXRvciB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICAvKiBPdmVycmlkZSBkZWZhdWx0IGNvbXBvdW5kIHZhbHVlICovXG4gICAgICAgICAgICBtYXJnaW4tYmxvY2s6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUGlubmVkTWVzc2FnZXNDYXJkX3dyYXBwZXJfdW5waW5fYWxsIHtcbiAgICAgICAgLyogUmVtb3ZlIHRoZSB1bnBpbiBhbGwgYnV0dG9uIGhlaWdodCBhbmQgdGhlIHRvcCBhbmQgYm90dG9tIHBhZGRpbmcgICovXG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gdmFyKC0tdW5waW4taGVpZ2h0KSAtIGNhbGModmFyKC0tY3BkLXNwYWNlLTR4KSAqIDIpKTtcbiAgICB9XG5cbiAgICAubXhfUGlubmVkTWVzc2FnZXNDYXJkX3VucGluIHtcbiAgICAgICAgLyogTWFrZSBpdCBmbG9hdCBhdCB0aGUgYm90dG9tIG9mIHRoZSB1bnBpbiBwYW5lbCAqL1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogdmFyKC0tdW5waW4taGVpZ2h0KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDI0cHggMCByZ2IoMjcsIDI5LCAzNCwgMC4xKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX2JvZHkge1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCwgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tU3VtbWFyeUNhcmQge1xuICAgIC0tY3BkLXNlcGFyYXRvci1pbnNldDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAtLWNwZC1zZXBhcmF0b3Itc3BhY2luZzogdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgIC5teF9Sb29tU3VtbWFyeUNhcmRfY29udGFpbmVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS01eCkgdmFyKC0tY3BkLXNwYWNlLTR4KSAwO1xuICAgIH1cblxuICAgIC5teF9Sb29tU3VtbWFyeUNhcmRfcm9vbU5hbWUsXG4gICAgLm14X1Jvb21TdW1tYXJ5Q2FyZF9hbGlhcyB7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAubXhfUm9vbVN1bW1hcnlDYXJkX2FsaWFzIHtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgfVxuXG4gICAgLm14X1Jvb21TdW1tYXJ5Q2FyZF90b3BpYyB7XG4gICAgICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG5cbiAgICAgICAgLm14X1Jvb21TdW1tYXJ5Q2FyZF90b3BpY19ib3gge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUm9vbVN1bW1hcnlDYXJkX3RvcGljX2NvbnRhaW5lciB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUm9vbVN1bW1hcnlDYXJkX3RvcGljX2VkaXQge1xuICAgICAgICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Jvb21TdW1tYXJ5Q2FyZF90b3BpY19jaGV2cm9uIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9Sb29tU3VtbWFyeUNhcmRfdG9waWNfY29sbGFwc2VkIHtcbiAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1Jvb21TdW1tYXJ5Q2FyZF90b3BpY19jaGV2cm9uIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xM3B4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICB9XG59XG5cbi5teF9Sb29tU3VtbWFyeUNhcmRfYmFkZ2VzIHtcbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS00eCkgMDtcbn1cblxuLm14X1Jvb21TdW1tYXJ5Q2FyZF9zZWFyY2gge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtaW4td2lkdGg6IDA7XG5cbiAgICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogdW5zZXQ7IC8qIG92ZXJyaWRlIF9jb21tb24ucGNzcyB3aGljaCBpbmhpYml0cyB0aGlzICovXG4gICAgfVxufVxuXG4ubXhfUm9vbVN1bW1hcnlDYXJkX3Jvb21OYW1lIHtcbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0zeCkgMCB2YXIoLS1jcGQtc3BhY2UtMXgpO1xufVxuXG4ubXhfUm9vbVN1bW1hcnlDYXJkX2JvdHRvbU9wdGlvbnMge1xuICAgIG1hcmdpbjogMCAwIHZhcigtLWNwZC1zcGFjZS04eCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMS0yMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9UaHJlYWRQYW5lbCB7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAgIC5teF9UaHJlYWRQYW5lbEhlYWRlciB7XG4gICAgICAgIGhlaWdodDogNjRweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ncmF5LTQwMCk7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9UaHJlYWRQYW5lbF92ZXJ0aWNhbF9zZXBhcmF0b3Ige1xuICAgICAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ncmF5LTQwMCk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVGhyZWFkUGFuZWxfZHJvcGRvd24ge1xuICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDNweCB2YXIoLS1jcGQtc3BhY2UtMXgpIDNweCB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJlthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMnB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9BdXRvSGlkZVNjcm9sbGJhcixcbiAgICAubXhfUm9vbVZpZXdfbWVzc2FnZVBhbmVsU3Bpbm5lciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogMDtcbiAgICAgICAgb3ZlcmZsb3cteTogc2Nyb2xsOyAvKiBzZXQgZ2FwIGJldHdlZW4gdGhlIHRocmVhZCB0aWxlIGFuZCB0aGUgcmlnaHQgYm9yZGVyICovXG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAubXhfTWVzc2FnZUFjdGlvbkJhciB7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogLTM2cHg7IC8qIDJweCBhYm92ZSBFdmVudFRpbGUgKi9cbiAgICAgICAgICAgIHotaW5kZXg6IDEwOyAvKiBTZWUgX0V2ZW50VGlsZS5wY3NzICovXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBGb3Igc3R5bGUgcnVsZXMgb2YgRXZlbnRUaWxlIGluIGEgdGhyZWFkLCBzZWUgX0V2ZW50VGlsZS5wY3NzICovXG4gICAgJi5teF9UaHJlYWRWaWV3IHtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcblxuICAgICAgICAubXhfVGhyZWFkVmlld190aW1lbGluZVBhbmVsV3JhcHBlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAwOyAvKiBkb24ndCBkaXNwbGFjZSB0aGUgY29tcG9zZXIgKi9cbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcblxuICAgICAgICAgICAgLm14X0ZpbGVEcm9wVGFyZ2V0IHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTWVzc2FnZUNvbXBvc2VyX3NlbmRNZXNzYWdlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIE1ha2UgdXNlIG9mIHRoZSBzcGFjZSBhYm92ZSB0aGUgY29tcG9zZXIgYnV0dG9ucyB0b28gKi9cbiAgICAgICAgLm14X0F1dG9jb21wbGV0ZSB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMTQwcHgpO1xuICAgICAgICB9XG4gICAgICAgICYubXhfVGhyZWFkVmlld19uYXJyb3cgLm14X0F1dG9jb21wbGV0ZSB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMTA4cHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Jvb21WaWV3X21lc3NhZ2VQYW5lbCB7XG4gICAgICAgICYubXhfUm9vbVZpZXdfbWVzc2FnZUxpc3RXcmFwcGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Jvb21WaWV3X21lc3NhZ2VMaXN0V3JhcHBlciB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgNnB4KTsgLyogOHB4IC0gMnB4ICovXG4gICAgICAgIH1cblxuICAgICAgICAubXhfUm9vbVZpZXdfZW1wdHkge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUm9vbVZpZXdfTWVzc2FnZUxpc3Qge1xuICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBjb250ZW50LXZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZSxcbiAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnkge1xuICAgICAgICAvKiBBY2NvdW50IGZvciBzY3JvbGxiYXIgd2hlbiBob3ZlcmluZyAqL1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcblxuICAgICAgICAubXhfVGltZWxpbmVTZXBhcmF0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfRXZlbnRUaWxlX2NsYW1wOmhvdmVyIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9NZXNzYWdlQ29tcG9zZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cblxuICAgIC5teF9CYXNlQ2FyZF9mb290ZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHRvcDogMnB4O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rX2lubGluZSB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfQ29udGV4dHVhbE1lbnVfd3JhcHBlciB7XG4gICAgLm14X1RocmVhZFBhbmVsX0hlYWRlcl9GaWx0ZXJPcHRpb25JdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMjBweCAxMHB4IDMwcHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRldmVudC1zZWxlY3RlZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZbYXJpYS1jaGVja2VkPVwidHJ1ZVwiXSB7XG4gICAgICAgICAgICBzcGFuOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTIwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEycHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDE0cHg7XG4gICAgICAgICAgICAgICAgbGVmdDogMTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW46bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEsIDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1RpbWVsaW5lQ2FyZCB7XG4gICAgLm14X1RpbWVsaW5lQ2FyZF90aW1lbGluZSB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogb2Zmc2V0IHBhcmVudCBmb3IganVtcCB0byBib3R0b20gYnV0dG9uICovXG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICB9XG5cbiAgICAubXhfTmV3Um9vbUludHJvIHtcbiAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tQmFzZUNhcmRfRXZlbnRUaWxlLXNwYWNpbmctaW5saW5lKTtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLUJhc2VDYXJkX0V2ZW50VGlsZS1zcGFjaW5nLWlubGluZSk7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgIC5teF9FdmVudFRpbGUge1xuICAgICAgICAubXhfVGhyZWFkU3VtbWFyeSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMXB4O1xuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IC0xNnB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbWVzc2FnZS1hY3Rpb24tYmFyLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1sYXlvdXQ9XCJpcmNcIl0sXG4gICAgICAgICZbZGF0YS1sYXlvdXQ9XCJncm91cFwiXSB7XG4gICAgICAgICAgICAtLVRpbWVsaW5lQ2FyZF9SZWFkUmVjZWlwdEdyb3VwLWluc2V0LWJsb2NrLXN0YXJ0OiAtNnB4O1xuICAgICAgICAgICAgLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWlubGluZS1zdGFydDogdmFyKC0tQmFzZUNhcmRfRXZlbnRUaWxlLXNwYWNpbmctaW5saW5lKTtcblxuICAgICAgICAgICAgJi5teF9FdmVudFRpbGVfaW5mbyAubXhfRXZlbnRUaWxlX2xpbmUsXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLUJhc2VDYXJkX0V2ZW50VGlsZV9saW5lLXBhZGRpbmctYmxvY2spIHZhcigtLUJhc2VDYXJkX0V2ZW50VGlsZS1zcGFjaW5nLWlubGluZSk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtZW5kOiB2YXIoLS1NZXNzYWdlVGltZXN0YW1wLXdpZHRoKTsgLyogZW5zdXJlIHRpbWVzdGFtcCBpcyBub3QgaGlkZGVuICovXG5cbiAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX2UyZUljb24ge1xuICAgICAgICAgICAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X0V2ZW50VGlsZV9pbmZvIHtcbiAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICAgICAgICAgIGluc2V0LWlubGluZS1zdGFydDogMThweDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvKiBJbmZvIGV2ZW50cyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBzaXplIGFzIHN0YXRlIGV2ZW50cywgdGhvc2VcbiAgICAgICAgICAgICAgICAgKiBhcmUgdXN1YWxseSB3cmFwcGVkIGluIGEgZ2VuZXJpYyBldmVudCBsaXN0IHN1bW1hcnkgKi9cbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiAtM3B4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX21zZ09wdGlvbiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDA7XG5cbiAgICAgICAgICAgICAgICAubXhfUmVhZFJlY2VpcHRHcm91cCB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogdmFyKC0tVGltZWxpbmVDYXJkX1JlYWRSZWNlaXB0R3JvdXAtaW5zZXQtYmxvY2stc3RhcnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlLFxuICAgICAgICAgICAgLm14X1RocmVhZFN1bW1hcnkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLUJhc2VDYXJkX0V2ZW50VGlsZS1zcGFjaW5nLWlubGluZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1CYXNlQ2FyZF9FdmVudFRpbGUtc3BhY2luZy1pbmxpbmUpKTsgLyogaW5zdGVhZCBvZiAkbGVmdC1ndXR0ZXIgKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1JlcGx5VGlsZSAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDA7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiB1bnNldDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgICAgIGluc2V0LWlubGluZTogYXV0byAwO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1JlYWN0aW9uc1JvdyB7XG4gICAgICAgICAgICAgICAgLyogU2VlOiB2YXIoLS1UaHJlYWRWaWV3X2dyb3VwX3NwYWNpbmctZW5kKSBmb3IgUmVhY3Rpb25zUm93IG9uIF9FdmVudFRpbGUucGNzcyAqL1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfVGhyZWFkU3VtbWFyeSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDA7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBtaW4oY2FsYygxMDAlIC0gMzZweCksIDYwMHB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1sYXlvdXQ9XCJpcmNcIl0ge1xuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIsXG4gICAgICAgICAgICAubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgICAgIC8qIFJlYWQgcmVjZWlwdCBncm91cCBvbiBjb21wYWN0IG1vZGVybiBsYXlvdXQgKi9cbiAgICAgICAgICAgIC8qIFRoaXMgaXMgcmVxdWlyZWQgYmVjYXVzZSBteF9UaW1lbGluZUNhcmQgaXMgYSBjaGlsZCBlbGVtZW50IHdyYXBwZWQgYnkgbXhfTWF0cml4Q2hhdF91c2VDb21wYWN0TGF5b3V0LCAqL1xuICAgICAgICAgICAgLyogd2hpY2ggc3BlY2lmaWVzIHRoZSBkZWZhdWx0IHBvc2l0aW9uIG9mIG14X1JlYWRSZWNlaXB0R3JvdXAgb24gY29tcGFjdCBtb2Rlcm4gbGF5b3V0LiAqL1xuICAgICAgICAgICAgLm14X01hdHJpeENoYXRfdXNlQ29tcGFjdExheW91dCAmIC5teF9SZWFkUmVjZWlwdEdyb3VwIHtcbiAgICAgICAgICAgICAgICB0b3A6IHZhcigtLVRpbWVsaW5lQ2FyZF9SZWFkUmVjZWlwdEdyb3VwLWluc2V0LWJsb2NrLXN0YXJ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl0ge1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiBhdXRvOyAvKiBlbmFibGUgYmFja2dyb3VuZCBjb2xvciBvbiBob3ZlciAqL1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X0V2ZW50VGlsZV9pbmZvIC5teF9NZXNzYWdlQWN0aW9uQmFyIHtcbiAgICAgICAgICAgICAgICAvKiAxcHg6IGJvcmRlciB3aWR0aCAqL1xuICAgICAgICAgICAgICAgIGluc2V0LWlubGluZS1lbmQ6IGNhbGModmFyKC0tY29udGFpbmVyLWdhcC13aWR0aCkgKyAxcHgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfUmVhY3Rpb25zUm93IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IC8qIGRpc3BsYXkgb24gaG92ZXIgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfd3JhcHBlciB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtYXJnaW46IGF1dG8gNXB4O1xuICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50IHtcbiAgICAgICAgICAgIG1hcmdpbjogNHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5IHtcbiAgICAgICAgJltkYXRhLWxheW91dD1cImlyY1wiXSxcbiAgICAgICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZSxcbiAgICAgICAgICAgIC5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeV91bnN0eWxlZExpc3QgPiAubXhfRXZlbnRUaWxlX2luZm8gLm14X0V2ZW50VGlsZV9hdmF0YXIgfiAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1CYXNlQ2FyZF9FdmVudFRpbGUtc3BhY2luZy1pbmxpbmUpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLWVuZDogdmFyKC0tTWVzc2FnZVRpbWVzdGFtcC13aWR0aCk7IC8qIGVuc3VyZSB0aW1lc3RhbXAgaXMgbm90IGhpZGRlbiAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1dob0lzVHlwaW5nVGlsZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTJweDsgLyogdW5kbyBwYWRkaW5nIG9uIHRoZSBtZXNzYWdlIGxpc3QgKi9cbiAgICB9XG5cbiAgICAubXhfV2hvSXNUeXBpbmdUaWxlX2F2YXRhcnMge1xuICAgICAgICBmbGV4LWJhc2lzOiA0OHB4OyAvKiAxMiAocGFkZGluZyBvbiBtZXNzYWdlIGxpc3QpICsgMzYgKHBhZGRpbmcgb24gZXZlbnQgbGluZXMpICovXG4gICAgfVxuXG4gICAgLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5X3Vuc3R5bGVkTGlzdCwgLyogUlIgbmV4dCB0byBhIG1lc3NhZ2Ugb24gdGhlIGV2ZW50IGxpc3Qgc3VtbWFyeSAqL1xuICAgIC5teF9Sb29tVmlld19NZXNzYWdlTGlzdCB7XG4gICAgICAgIC8qIFJSIG5leHQgdG8gYSBtZXNzYWdlIG9uIHRoZSBtZXNzc2dlIGxpc3QgKi9cbiAgICAgICAgLm14X0V2ZW50VGlsZVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgICAgICAgICAubXhfUmVhZFJlY2VpcHRHcm91cCB7XG4gICAgICAgICAgICAgICAgLyogNnB4OiBzY3JvbGwgYmFyIHdpZHRoIChtYWdpYyBudW1iZXIpICovXG4gICAgICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlY2xhcmF0aW9uLWNvbG9uLXNwYWNlLWFmdGVyICovXG4gICAgICAgICAgICAgICAgaW5zZXQtaW5saW5lLWVuZDogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgLTEgKiB2YXIoLS1SZWFkUmVjZWlwdEdyb3VwX0V2ZW50QnViYmxlVGlsZS1zcGFjaW5nLWVuZCkgKyB2YXIoLS1jb250YWluZXItZ2FwLXdpZHRoKSArIDZweFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubXhfRXZlbnRUaWxlX2luZm8ge1xuICAgICAgICAgICAgICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwIHtcbiAgICAgICAgICAgICAgICAgICAgaW5zZXQtaW5saW5lLWVuZDogLTRweDsgLyogYWxpZ24gd2l0aCBSUiBvdXRzaWRlIG9mIGluZm8gdGlsZSAqL1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVXNlckluZm8ubXhfQmFzZUNhcmQge1xuICAgIC8qIFVzZXJJbmZvIGhhcyBhIGNpcmN1bGFyIGltYWdlIGF0IHRoZSB0b3Agc28gaXQgZml0cyBiZXR3ZWVuIHRoZSBiYWNrICYgY2xvc2UgYnV0dG9ucyAqL1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgZm9udC1zaXplOiB2YXIoLS1jcGQtZm9udC1zaXplLWJvZHktc20pO1xuXG4gICAgLm14X1VzZXJJbmZvX2NvbnRhaW5lciB7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgMCB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBtYXJnaW46IDAgdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgICAgICAmICsgLm14X1VzZXJJbmZvX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHNlcGFyYXRvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Vc2VySW5mb19tZW1iZXJEZXRhaWxzQ29udGFpbmVyIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cblxuICAgIC5teF9Sb29tVGlsZV90aXRsZUNvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiAxNTRweDtcbiAgICB9XG5cbiAgICAubXhfUm9vbVRpbGVfYmFkZ2Uge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5teF9Sb29tVGlsZV90aXRsZSB7XG4gICAgICAgIHdpZHRoOiAxNjBweDtcbiAgICB9XG5cbiAgICAubXhfVXNlckluZm9fYXZhdGFyIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtMTJ4KSB2YXIoLS1jcGQtc3BhY2UtNHgpIDAgdmFyKC0tY3BkLXNwYWNlLTR4KTtcblxuICAgICAgICAubXhfVXNlckluZm9fYXZhdGFyX3RyYW5zaXRpb24ge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMjBweDtcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIHRyYW5zaXRpb246IDAuNXM7XG5cbiAgICAgICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgICAgICAvKiBPdmVycmlkZSB0aGUgY2FsY3VsYXRlZCBmb250LXNpemUgc28gdGhhdCB0aGUgbGV0dGVyIGlzbid0IHRpbnkgKi9cbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDRyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9CYXNlQXZhdGFyLFxuICAgICAgICAgICAgLm14X0Jhc2VBdmF0YXIgaW1nIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoMiB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1zZW1pYm9sZCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0xeCkgMDtcbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgbWFyZ2luOiA1cHggMDtcbiAgICB9XG5cbiAgICAubXhfVXNlckluZm9faGVhZGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLm14X1VzZXJJbmZvX3Byb2ZpbGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICAgICAgaDEge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0yMHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVXNlckluZm9fcHJvZmlsZV9uYW1lIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG5cbiAgICAgICAgICAgIC8qIGxpbWl0IHRvIDIgbGluZXMsIHNob3cgYW4gZWxsaXBzaXMgaWYgaXQgb3ZlcmZsb3dzICovXG4gICAgICAgICAgICAvKiB0aGlzIGxvb2tzIHdlYmtpdCBzcGVjaWZpYyBidXQgaXMgc3VwcG9ydGVkIGJ5IEZpcmVmb3ggNjgrICovXG4gICAgICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAgICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG5cbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Vc2VySW5mb19wcm9maWxlX214aWQge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVXNlckluZm9fcHJvZmlsZVN0YXR1cyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVXNlckluZm9fdGltZXpvbmUge1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAvKiogT3ZlcnJpZGVzIGZvciB0aGUgY29weSB0byBjbGlwYm9hcmQgYnV0dG9uICoqL1xuICAgICAgICAubXhfQ29weWFibGVUZXh0IHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfQ29weWFibGVUZXh0X2NvcHlCdXR0b24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiB1bnNldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Vc2VySW5mb190aW1lem9uZSB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTF4KSAwO1xuICAgIH1cblxuICAgIC5teF9QcmVzZW5jZUxhYmVsIHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAubXhfVXNlckluZm9fdmVyaWZpY2F0aW9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xuXG4gICAgICAgIC5teF9Vc2VySW5mb192ZXJpZmllZF9iYWRnZSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDY4cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG5cbiAgICAgICAgICAgIC5teF9Vc2VySW5mb192ZXJpZmllZF9pY29uIHtcbiAgICAgICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1VzZXJJbmZvX3ZlcmlmaWVkX2xhYmVsIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVXNlckluZm9fdmVyaWZpY2F0aW9uX3VuYXZhaWxhYmxlIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1VzZXJJbmZvX21lbWJlckRldGFpbHMge1xuICAgICAgICAubXhfVXNlckluZm9fcHJvZmlsZUZpZWxkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIG1hcmdpbjogNnB4IDA7XG5cbiAgICAgICAgICAgIC5teF9Vc2VySW5mb19yb2xlRGVzY3JpcHRpb24ge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAvKiB0cnkgdG8gbWFrZSBpdCB0aGUgc2FtZSBoZWlnaHQgYXMgdGhlIGRyb3Bkb3duICovXG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxMXB4IDAgMTJweCAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRmllbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Vc2VySW5mb19maWVsZCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgIH1cblxuICAgIC5teF9Vc2VySW5mb19zdGF0dXNNZXNzYWdlIHtcbiAgICAgICAgJHN0YXR1c051bWJlck9mTGluZXM6IDM7XG5cbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMXJlbTtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMXJlbSAqICRzdGF0dXNOdW1iZXJPZkxpbmVzKTtcbiAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAkc3RhdHVzTnVtYmVyT2ZMaW5lcztcbiAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICB9XG5cbiAgICAubXhfQXV0b0hpZGVTY3JvbGxiYXIge1xuICAgICAgICBmbGV4OiAxIDEgMDtcbiAgICB9XG5cbiAgICAmLm14X1VzZXJJbmZvX3NtYWxsQXZhdGFyIHtcbiAgICAgICAgLm14X1VzZXJJbmZvX2F2YXRhciB7XG4gICAgICAgICAgICAubXhfVXNlckluZm9fYXZhdGFyX3RyYW5zaXRpb24ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNzJweDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICAgICAgICAgIC8qIE92ZXJyaWRlIHRoZSBjYWxjdWxhdGVkIGZvbnQtc2l6ZSBzbyB0aGF0IHRoZSBsZXR0ZXIgaXNuJ3QgdGlueSAqL1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9WZXJpZmljYXRpb25QYW5lbF92ZXJpZmllZF9zZWN0aW9uLFxuLm14X1ZlcmlmaWNhdGlvblBhbmVsX3JlY2lwcm9jYXRlX3NlY3Rpb24ge1xuICAgIC8qIGNlbnRlciB0aGUgYmlnIHNoaWVsZCBpY29uICovXG4gICAgLm14X0UyRUljb24ge1xuICAgICAgICAvKiBPdmVycmlkZSBnZW5lcmFsIHVzZXIgaW5mbyBtYXJnaW4gKi9cbiAgICAgICAgbWFyZ2luOiAyMHB4IGF1dG8gIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5teF9Vc2VySW5mby5teF9CYXNlQ2FyZCB7XG4gICAgLm14X1VzZXJJbmZvX2NvbnRhaW5lcjpub3QoLm14X1VzZXJJbmZvX3NlcGFyYXRvcikge1xuICAgICAgICA+IGRpdiA+IHAge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVmVyaWZpY2F0aW9uUGFuZWxfdmVyaWZ5QnlFbW9qaUJ1dHRvbixcbiAgICAgICAgLm14X1VzZXJJbmZvX3dpZGVCdXR0b24ge1xuICAgICAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0VuY3J5cHRpb25JbmZvX3NwaW5uZXIsXG4gICAgICAgIC5teF9WZXJpZmljYXRpb25TaG93U2FzIHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGlubmVyLFxuICAgICAgICAubXhfVmVyaWZpY2F0aW9uU2hvd1NhcyB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1ZlcmlmaWNhdGlvblBhbmVsX3FyQ29kZSB7XG4gICAgICAgIHBhZGRpbmc6IDRweCA0cHggMCA0cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgIHdpZHRoOiBtYXgtY29udGVudDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAvKiBPdmVycmlkZSBnZW5lcmFsIHVzZXIgaW5mbyBtYXJnaW4gKi9cbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDtcblxuICAgICAgICBjYW52YXMge1xuICAgICAgICAgICAgLyogb3ZlcnJpZGUgaGVpZ2h0IGFuZCB3aWR0aCB3aGljaCBhcmUgc2V0IG9uIHRoZSBlbGVtZW50IGRpcmVjdGx5ICovXG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDI0MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1ZlcmlmaWNhdGlvblBhbmVsX3JlY2lwcm9jYXRlX3NlY3Rpb24ge1xuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW46IDEwcHggMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogU3BlY2lhbCBjYXNlIHN0eWxpbmcgZm9yIEVuY3J5cHRpb25QYW5lbCBpbiBhIE1vZGFsIGRpYWxvZyAqL1xuLm14X0RpYWxvZyxcbi5teF9Db21wbGV0ZVNlY3VyaXR5X2JvZHkge1xuICAgIC5teF9WZXJpZmljYXRpb25QYW5lbF9RUlBoYXNlX3N0YXJ0T3B0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICA+IC5teF9WZXJpZmljYXRpb25QYW5lbF9RUlBoYXNlX2JldHdlZW5UZXh0IHtcbiAgICAgICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVmVyaWZpY2F0aW9uUGFuZWxfUVJQaGFzZV9zdGFydE9wdGlvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzMTBweDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgICAgICAgY2FudmFzLFxuICAgICAgICAgICAgLm14X1ZlcmlmaWNhdGlvblBhbmVsX1FSUGhhc2Vfbm9RUiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIyMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyMjBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgID4gcCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfVmVyaWZpY2F0aW9uUGFuZWxfUVJQaGFzZV9oZWxwVGV4dCB7XG4gICAgICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDMwcHggMDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBFbmNyeXB0aW9uUGFuZWwgd2hlbiB2ZXJpZmljYXRpb24gaXMgZG9uZSAqL1xuICAgIC5teF9WZXJpZmljYXRpb25QYW5lbF92ZXJpZmllZF9zZWN0aW9uIHtcbiAgICAgICAgLyogcmlnaHQgYWxpZ24gdGhlIFwiR290IGl0XCIgYnV0dG9uICovXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9WZXJpZmljYXRpb25QYW5lbF9yZWNpcHJvY2F0ZV9zZWN0aW9uIHtcbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA3cHggNDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9WZXJpZmljYXRpb25QYW5lbF9yZWNpcHJvY2F0ZUJ1dHRvbnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1dpZGdldENhcmQge1xuICAgIC5teF9BcHBUaWxlRnVsbFdpZHRoIHtcbiAgICAgICAgbWF4LXdpZHRoOiB1bnNldDtcbiAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9BbGlhc1NldHRpbmdzX2xvY2FsQWRkcmVzc2VzIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuXG4gICAgLyogbGlzdC1zdHlsZSBkb2Vzbid0IGRvIGl0IGZvciB3ZWJraXQgKi9cbiAgICAmOjotd2Via2l0LWRldGFpbHMtbWFya2VyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjUgTmV3IFZlY3RvciBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9Sb29tTGlzdFBhbmVsIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgIGhlaWdodDogMTAwJTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxNSwgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQXBwc0RyYXdlciB7XG4gICAgLS1taW5XaWR0aDogMjQwcHg7IC8qIFRPRE8gdGhpcyBzaG91bGQgYmUgMzAwcHggYnV0IHRoYXQncyB0b28gbGFyZ2UgKi9cblxuICAgIG1hcmdpbjogdmFyKC0tY29udGFpbmVyLWdhcC13aWR0aCk7XG4gICAgLyogVGhlIGxlZnQgc2lkZSBnYXAgaXMgZnVsbHkgaGFuZGxlZCBieSB0aGlzIG1hcmdpbi4gVG8gcHJvaGliaXQgYmxlZWRpbmcgb24gd2Via2l0IGJyb3dzZXIuICovXG4gICAgbWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvbnRhaW5lci1nYXAtd2lkdGgpIC8gMik7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgLyogTm8gYm90dG9tIG1hcmdpbiBmb3IgdGhlIGNvcnJlY3QgZ2FwIHRvIHRoZSBDYWxsVmlldyBiZWxvdy4gKi9cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZmxleC1ncm93OiAxO1xuXG4gICAgLm14X0FwcHNEcmF3ZXJfcmVzaXplciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNvbnRhaW5lci1nYXAtd2lkdGgpO1xuICAgIH1cblxuICAgIC5teF9BcHBzRHJhd2VyX3Jlc2l6ZXJfY29udGFpbmVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAubXhfQXBwc0RyYXdlcl9yZXNpemVyX2NvbnRhaW5lcl9oYW5kbGUge1xuICAgICAgICAgICAgY3Vyc29yOiBucy1yZXNpemU7XG5cbiAgICAgICAgICAgIC8qIE92ZXJyaWRlIHN0eWxlcyBmcm9tIGxpYnJhcnksIG1ha2luZyB0aGUgd2hvbGUgYXJlYSB0aGUgdGFyZ2V0IGFyZWEgKi9cbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgLyogVGhpcyBpcyBwb3NpdGlvbmVkIGRpcmVjdGx5IGJlbG93IGZyYW1lICovXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3R0b206IDUwJSAhaW1wb3J0YW50OyAvKiBvdmVycmlkZSBmcm9tIGxpYnJhcnkgKi9cblxuICAgICAgICAgICAgLyogV2UgdGhlbiByZW5kZXIgdGhlIHBpbGwgaGFuZGxlIGluIGFuIDo6YWZ0ZXIgdG8ga2VlcCBpdCBpbiB0aGUgaGFuZGxlJ3MgKi9cbiAgICAgICAgICAgIC8qIGFyZWEgd2l0aG91dCBiZWluZyBhIG1hc3NpdmUgbGluZSBhY3Jvc3MgdGhlIHNjcmVlbiAqL1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcblxuICAgICAgICAgICAgICAgIGhlaWdodDogNHB4O1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcblxuICAgICAgICAgICAgICAgIC8qIFRvZ2V0aGVyLCB0aGVzZSBtYWtlIHRoZSBiYXIgNjRweCB3aWRlICovXG4gICAgICAgICAgICAgICAgLyogVGhlc2UgYXJlIGFsc28gb3ZlcnJpZGRlbiBmcm9tIHRoZSBsaWJyYXJ5ICovXG4gICAgICAgICAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAzMnB4KTtcbiAgICAgICAgICAgICAgICByaWdodDogY2FsYyg1MCUgLSAzMnB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICAubXhfQXBwc0RyYXdlcl9yZXNpemVyX2NvbnRhaW5lcl9oYW5kbGU6OmFmdGVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUmVzaXplSGFuZGxlLS1ob3Jpem9udGFsOjpiZWZvcmUge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogM3B4O1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcblxuICAgICAgICAgICAgaGVpZ2h0OiA2NHB4OyAvKiB0byBtYXRjaCB3aWR0aCBvZiB0aGUgb25lcyBvbiByb29tbGlzdCAqL1xuICAgICAgICAgICAgd2lkdGg6IDRweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcblxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9BcHBUaWxlIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgbWluLXdpZHRoOiB2YXIoLS1taW5XaWR0aCk7XG4gICAgfVxuXG4gICAgJi5teF9BcHBzRHJhd2VyLS1tYXhpbWlzZWQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jb250YWluZXItZ2FwLXdpZHRoKTtcbiAgICB9XG5cbiAgICAmLm14X0FwcHNEcmF3ZXItLXJlc2l6aW5nIC5teF9BcHBUaWxlX3BlcnNpc3RlZFdyYXBwZXIge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgIH1cblxuICAgICYubXhfQXBwc0RyYXdlci0tMmFwcHMgLm14X0FwcFRpbGUge1xuICAgICAgICB3aWR0aDogNTAlO1xuXG4gICAgICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtaW4td2lkdGg6IHZhcigtLW1pbldpZHRoKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuICAgICYubXhfQXBwc0RyYXdlci0tM2FwcHMgLm14X0FwcFRpbGUge1xuICAgICAgICB3aWR0aDogMzMlO1xuXG4gICAgICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtaW4td2lkdGg6IHZhcigtLW1pbldpZHRoKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfQXBwc0NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmbGV4OiAxO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG5cbiAgICAubXhfQXBwVGlsZTpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IHZhcigtLWNvbnRhaW5lci1ib3JkZXItd2lkdGgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4IDAgMCAxMHB4O1xuICAgIH1cbiAgICAubXhfQXBwVGlsZTpsYXN0LW9mLXR5cGUge1xuICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IHZhcigtLWNvbnRhaW5lci1ib3JkZXItd2lkdGgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwIDEwcHggMTBweCAwO1xuICAgIH1cblxuICAgIC5teF9SZXNpemVIYW5kbGUtLWhvcml6b250YWwge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9BcHBUaWxlIHtcbiAgICBib3JkZXI6IHZhcigtLWNvbnRhaW5lci1ib3JkZXItd2lkdGgpIHNvbGlkICR3aWRnZXQtbWVudS1iYXItYmctY29sb3I7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdpZGdldC1tZW51LWJhci1iZy1jb2xvcjtcbn1cblxuLm14X0FwcFRpbGVGdWxsV2lkdGgge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IC8qIHRvIG92ZXJyaWRlIHRoZSBpbmxpbmUgc3R5bGUgc2V0IGJ5IHRoZSByZXNpemVyICovXG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm9yZGVyOiB2YXIoLS1jb250YWluZXItYm9yZGVyLXdpZHRoKSBzb2xpZCAkd2lkZ2V0LW1lbnUtYmFyLWJnLWNvbG9yO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdpZGdldC1tZW51LWJhci1iZy1jb2xvcjtcbn1cblxuLm14X0FwcFRpbGVfbWluaSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLm14X0FwcFRpbGUgLm14X0FwcFRpbGVfcGVyc2lzdGVkV3JhcHBlcixcbi5teF9BcHBUaWxlRnVsbFdpZHRoIC5teF9BcHBUaWxlX3BlcnNpc3RlZFdyYXBwZXIsXG4ubXhfQXBwVGlsZV9taW5pIC5teF9BcHBUaWxlX3BlcnNpc3RlZFdyYXBwZXIge1xuICAgIGZsZXg6IDE7XG59XG5cbi5teF9BcHBUaWxlX3BlcnNpc3RlZFdyYXBwZXIgZGl2IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbi5teF9BcHBUaWxlTWVudUJhciB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkd2lkZ2V0LW1lbnUtYmFyLWJnLWNvbG9yO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogM3B4O1xuICAgIHBhZGRpbmctYm90dG9tOiA2cHg7XG5cbiAgICAubXhfQXBwVGlsZU1lbnVCYXJfdGl0bGUge1xuICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbiAgICAgICAgLm14X1dpZGdldEF2YXRhciB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICBoMSB7XG4gICAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA5cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0FwcFRpbGVNZW51QmFyX3dpZGdldHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIC5teF9BcHBUaWxlTWVudUJhcl93aWRnZXRzX2J1dHRvbiB7XG4gICAgICAgICAgICAtLXNpemU6IDI0cHg7IC8qIFNpemUgb2YgdGhlIGJ1dHRvbi4gSXRzIGhlaWdodCBhbmQgd2lkdGggdmFsdWVzIHNob3VsZCBiZSBzYW1lICovXG5cbiAgICAgICAgICAgIG1hcmdpbjogMCA0cHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNpemUpO1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUpO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgJjpob3Zlcjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IHZhcigtLXNpemUpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwYW5lbC1hY3Rpb25zO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0ljb24ge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkbXV0ZWQtZmctY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIFJ1bGVzIGFkZGVkIHRvIHRoaXMgc2VsZWN0b3Igc3R5bGUgYXBwVGlsZUJvZHkgZ2VuZXJhbGx5ICovXG4ubXhfQXBwVGlsZUJvZHkge1xuICAgIC8qIEFwcGx5IHRvIGV2ZXJ5IHZhcmlhbnQgb2YgYXBwVGlsZUJvZHkgKi9cbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICAvKiBjb25zdCBsb2FkaW5nRWxlbWVudCAqL1xuICAgIC8qIE5vdGUgdGhlIGxvYWRpbmcgc3Bpbm5lciBhbmQgdGhlIG1lc3NhZ2UgbmV4dCB0byBpdCBhcmUgbm90IGFsd2F5cyBpbmNsdWRlZCBpbiBteF9BcHBUaWxlQm9keS0tbG9hZGluZyAqL1xuICAgIC5teF9BcHBUaWxlQm9keV9mYWRlSW5TcGlubmVyIHtcbiAgICAgICAgLyogcGxhY2Ugc3Bpbm5lciBhbmQgdGhlIG1lc3NhZ2UgYXQgdGhlIGNlbnRlciBvZiBteF9BcHBUaWxlQm9keSAqL1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOyAvKiBtZXNzYWdlIG5leHQgdG8gdGhlIHNwaW5uZXIgKi9cbiAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYmFja3dhcmRzO1xuICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDIwMG1zO1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDUwMG1zO1xuICAgICAgICBhbmltYXRpb24tbmFtZTogbXhfQXBwVGlsZUJvZHlfZmFkZUluU3Bpbm5lckFuaW1hdGlvbjtcbiAgICB9XG5cbiAgICAmLm14X0FwcFRpbGVCb2R5LS1sYXJnZSxcbiAgICAmLm14X0FwcFRpbGVCb2R5LS1taW5pIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBpZnJhbWUge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0FwcFRpbGVCb2R5LS1sYXJnZSB7XG4gICAgICAgIC0tQXBwVGlsZUJvZHktaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aWRnZXQtYm9keS1iZy1jb2xvcjtcblxuICAgICAgICBpZnJhbWUge1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfQXBwVGlsZUJvZHktLWxvYWRpbmcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgLyogbWF0Y2ggYmcgb2YgYm9yZGVyIHNvIHRoYXQgdGhlIGN1dCBjb3JuZXJzIGhhdmUgdGhlIHJpZ2h0IGZpbGwgKi9cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdpZGdldC1ib2R5LWJnLWNvbG9yICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgaWZyYW1lIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0FwcFRpbGVCb2R5LS1jYWxsIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMHB4O1xuICAgIH1cbiAgICAmLm14X0FwcFRpbGVCb2R5LS1jYWxsLm14X0FwcFRpbGVCb2R5LS1taW5pIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIH1cbn1cblxuLyogYXBwVGlsZUJvZHkgaXMgZW1iZWRkZWQgdG8gUGVyc2lzdGVkRWxlbWVudCBvdXRzaWRlIG9mIG14X0FwcFRpbGUsXG4gICBzbyBydWxlcyB0byBzdHlsZSBhcHBUaWxlQm9keSBnZW5lcmFsbHkgc2hvdWxkIG5vdCBiZSBpbmNsdWRlZCBoZXJlLiAqL1xuLm14X0FwcFRpbGUgLm14X0FwcFRpbGVCb2R5LS1sYXJnZSxcbi5teF9BcHBUaWxlRnVsbFdpZHRoIC5teF9BcHBUaWxlQm9keS0tbGFyZ2UsXG4ubXhfQXBwVGlsZV9taW5pIC5teF9BcHBUaWxlQm9keS0tbWluaSB7XG4gICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgIGZsZXg6IDE7XG59XG5cbkBrZXlmcmFtZXMgbXhfQXBwVGlsZUJvZHlfZmFkZUluU3Bpbm5lckFuaW1hdGlvbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG4iLCIubXhfQXV0b2NvbXBsZXRlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgYm90dG9tOiAwO1xuICAgIHotaW5kZXg6IDEwMDE7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHByaW1hcnktaGFpcmxpbmUtY29sb3I7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHggOHB4IDAgMDtcbiAgICBvdmVyZmxvdzogY2xpcDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYm94LXNoYWRvdzogMHB4IC0xNnB4IDMycHggJGNvbXBvc2VyLXNoYWRvdy1jb2xvcjtcbn1cblxuLm14X0F1dG9jb21wbGV0ZV9Qcm92aWRlclNlY3Rpb24ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLyogYSBcImJsb2NrXCIgY29tcGxldGlvbiB0YWtlcyB1cCBhIHdob2xlIGxpbmUgKi9cbi5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9ibG9jayB7XG4gICAgbWluLWhlaWdodDogMzRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9ibG9jayAqIHtcbiAgICBtYXJnaW46IDAgM3B4O1xufVxuXG4ubXhfQXV0b2NvbXBsZXRlX0NvbXBsZXRpb25fcGlsbCB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3JkZXItcmFkaXVzOiAycmVtO1xuICAgIGhlaWdodDogJGZvbnQtMzRweDtcbiAgICBwYWRkaW5nOiAwLjRyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbn1cblxuLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uX3BpbGwgPiAqIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuM3JlbTtcbn1cblxuLyogc3R5bGluZyBmb3IgY29tbW9uIGNvbXBsZXRpb24gZWxlbWVudHMgKi9cbi5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9zdWJ0aXRsZSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIGZsZXg6IDE7XG59XG5cbi5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9kZXNjcmlwdGlvbiB7XG4gICAgY29sb3I6IGdyYXk7XG4gICAgbWluLXdpZHRoOiAxNTBweDtcbn1cblxuLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uX2NvbnRhaW5lcl9waWxsIHtcbiAgICBtYXJnaW46IDEycHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbn1cblxuQGNvbnRhaW5lciByb29tdmlldyAoaGVpZ2h0ID49IDBweCkge1xuICAgIC5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9jb250YWluZXJfcGlsbCB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDQwY3FoO1xuICAgIH1cbn1cblxuLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uX2NvbnRhaW5lcl90cnVuY2F0ZSB7XG4gICAgLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uX3RpdGxlLFxuICAgIC5teF9BdXRvY29tcGxldGVfQ29tcGxldGlvbl9zdWJ0aXRsZSxcbiAgICAubXhfQXV0b2NvbXBsZXRlX0NvbXBsZXRpb25fZGVzY3JpcHRpb24ge1xuICAgICAgICAvKiBFbGxpcHNpcyBmb3IgbG9uZyBuYW1lcy9zdWJ0aXRsZXMvZGVzY3JpcHRpb25zICovXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIH1cbn1cblxuLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uLnNlbGVjdGVkLFxuLm14X0F1dG9jb21wbGV0ZV9Db21wbGV0aW9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAkc2VsZWN0ZWQtY29sb3I7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cblxuLm14X0F1dG9jb21wbGV0ZV9wcm92aWRlcl9uYW1lIHtcbiAgICBtYXJnaW46IDEycHg7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBvcGFjaXR5OiAwLjQ7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTgtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0F1eFBhbmVsIHtcbiAgICBtaW4td2lkdGg6IDBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDBweCBhdXRvO1xuXG4gICAgb3ZlcmZsb3c6IGF1dG87XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9CYXNpY01lc3NhZ2VDb21wb3NlciB7XG4gICAgLyogVGhlc2UgYXJlIHNldCBpbiBKYXZhc2NyaXB0ICovXG4gICAgLS1hdmF0YXItbGV0dGVyOiBcIlwiO1xuICAgIC0tYXZhdGFyLWJhY2tncm91bmQ6IHVuc2V0O1xuICAgIC0tYXZhdGFyLWNvbG9yOiB1bnNldDtcbiAgICAtLXBsYWNlaG9sZGVyOiBcIlwiO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgLm14X0Jhc2ljTWVzc2FnZUNvbXBvc2VyX2lucHV0RW1wdHkgPiA6Zmlyc3QtY2hpbGQ6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IHZhcigtLXBsYWNlaG9sZGVyKTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgIEBrZXlmcmFtZXMgdmlzdWFsYmVsbCB7XG4gICAgICAgIGZyb20ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHZpc3VhbC1iZWxsLWJnLWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgIHRvIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9CYXNpY01lc3NhZ2VDb21wb3Nlcl9pbnB1dF9lcnJvciB7XG4gICAgICAgIGFuaW1hdGlvbjogMC4ycyB2aXN1YWxiZWxsO1xuICAgIH1cblxuICAgIC5teF9CYXNpY01lc3NhZ2VDb21wb3Nlcl9pbnB1dCB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG5cbiAgICAgICAgLyogRm9yY2UgY2FyZXQgbm9kZXMgdG8gYmUgc2VsZWN0ZWQgaW4gZnVsbCBzbyB0aGF0IHRoZXkgY2FuIGJlICovXG4gICAgICAgIC8qIG5hdmlnYXRlZCB0aHJvdWdoIGluIGEgc2luZ2xlIGtleXByZXNzICovXG4gICAgICAgIC5jYXJldE5vZGUge1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IGFsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfQmFzaWNNZXNzYWdlQ29tcG9zZXJfaW5wdXRfc2hvdWxkU2hvd1BpbGxBdmF0YXIge1xuICAgICAgICAgICAgc3Bhbi5teF9Vc2VyUGlsbCxcbiAgICAgICAgICAgIHNwYW4ubXhfUm9vbVBpbGwsXG4gICAgICAgICAgICBzcGFuLm14X1NwYWNlUGlsbCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB1c2VyLXNlbGVjdDogYWxsO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHVuc2V0OyAvKiBXZSBkb24ndCB3YW50IGluZGljYXRlIGNsaWNrYWJpbGl0eSAqL1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAvKiBXZSBkb24ndCB3YW50IGluZGljYXRlIGNsaWNrYWJpbGl0eSB8IFRvIG92ZXJyaWRlIHRoZSBvdmVycmlkaW5nIG9mIC5tYXJrZG93bi1ib2R5ICovXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwaWxsLWJnLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLyogYXZhdGFyIHBzdWVkbyBlbGVtZW50ICovXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB2YXIoLS1hdmF0YXItbGV0dGVyKTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICRmb250LTE2cHg7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogJGZvbnQtMTZweDsgLyogZW5zdXJlIHRoZSBhdmF0YXIgaXMgbm90IGNvbXByZXNzZWQgKi9cbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMC4yNHJlbTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYXZhdGFyLWJhY2tncm91bmQpLCAkYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWF2YXRhci1jb2xvciwgJGF2YXRhci1pbml0aWFsLWNvbG9yKTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEwLTRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0Jhc2ljTWVzc2FnZUNvbXBvc2VyX2lucHV0X2Rpc2FibGVkIHtcbiAgICAgICAgICAgIC8qIElnbm9yZSBhbGwgdXNlciBpbnB1dCB0byBhdm9pZCBhY2NpZGVudGFsbHkgdHJpZ2dlcmluZyB0aGUgY29tcG9zZXIgKi9cbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0Jhc2ljTWVzc2FnZUNvbXBvc2VyX0F1dG9Db21wbGV0ZVdyYXBwZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICB9XG59XG4iLCIubXhfSm9pblJ1bGVEaWFsb2cge1xuICAgIC5teF9Kb2luUnVsZURpYWxvZ0J1dHRvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBjb2x1bW4tZ2FwOiA1cHg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRTJFSWNvbiB7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIG1hcmdpbjogMCA5cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG5cbi5teF9FMkVJY29uLm14X0UyRUljb25faW5saW5lIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FMkVJY29uVmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubXhfRTJFSWNvblZpZXdfd2FybmluZyB7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLWNyaXRpY2FsLXByaW1hcnkpO1xufVxuXG4ubXhfRTJFSWNvblZpZXdfdmVyaWZpZWQge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1zdWNjZXNzLXByaW1hcnkpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDE5LTIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRWRpdE1lc3NhZ2VDb21wb3NlciB7XG4gICAgLS1FZGl0TWVzc2FnZUNvbXBvc2VyLXBhZGRpbmctaW5saW5lOiAzcHg7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgbWF4LXdpZHRoOiAxMDAlOyAvKiBkaXNhYmxlIG92ZXJmbG93ICovXG4gICAgd2lkdGg6IGF1dG87XG4gICAgZ2FwOiA1cHg7XG4gICAgcGFkZGluZzogM3B4IHZhcigtLUVkaXRNZXNzYWdlQ29tcG9zZXItcGFkZGluZy1pbmxpbmUpO1xuXG4gICAgLm14X0Jhc2ljTWVzc2FnZUNvbXBvc2VyX2lucHV0IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICAgICAgICBwYWRkaW5nOiAzcHggNnB4O1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0VkaXRNZXNzYWdlQ29tcG9zZXJfYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogcm93IHdyYXAtcmV2ZXJzZTsgLyogZGlzcGxheSBcIlNhdmVcIiBvdmVyIFwiQ2FuY2VsXCIgKi9cbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgZ2FwOiA1cHg7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEwMHB4OyAvKiBtYWdpYyBudW1iZXIgdG8gYWxpZ24gdGhlIGVkZ2Ugb2YgdGhlIGJ1dHRvbiB3aXRoIHRoZSBpbnB1dCBhcmVhICovXG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRW1vamlCdXR0b24ge1xuICAgIEBtaXhpbiBjb21wb3NlckJ1dHRvbiA1MCUsIHZhcigtLWNwZC1jb2xvci1pY29uLXNlY29uZGFyeSksIHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtc2Vjb25kYXJ5KTtcbn1cblxuLm14X0Vtb2ppQnV0dG9uX2hpZ2hsaWdodCB7XG4gICAgQG1peGluIGNvbXBvc2VyQnV0dG9uSGlnaExpZ2h0O1xufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX3d5c2l3eWcge1xuICAgIC5teF9FbW9qaUJ1dHRvbiB7XG4gICAgICAgIEBtaXhpbiBjb21wb3NlckJ1dHRvbiA1cHgsICR0ZXJ0aWFyeS1jb250ZW50LCAkcGFuZWxzO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tVmlld19ib2R5W2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAubXhfUm9vbVZpZXdfdGltZWxpbmUsXG4gICAgLm14X1Jvb21WaWV3X3N0YXR1c0FyZWEsXG4gICAgLm14X01lc3NhZ2VDb21wb3NlciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdLFxuLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5W2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAtLWF2YXRhclNpemU6IDMycHg7XG4gICAgLS1ndXR0ZXJTaXplOiAxMXB4O1xuICAgIC0tY29ybmVyUmFkaXVzOiAxMnB4O1xuICAgIC0tbWF4V2lkdGg6IDcwJTtcblxuICAgIC8qIEZvciBib3RoIGV2ZW50IHRpbGUgYW5kIGV2ZW50IGxpc3Qgc3VtbWFyeSAqL1xuICAgIC0tRXZlbnRUaWxlX2J1YmJsZS1tYXJnaW4taW5saW5lLXN0YXJ0OiA0OXB4O1xuICAgIC0tRXZlbnRUaWxlX2J1YmJsZS1tYXJnaW4taW5saW5lLWVuZDogNjBweDtcblxuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLUV2ZW50VGlsZV9idWJibGUtbWFyZ2luLWlubGluZS1zdGFydCk7XG4gICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLUV2ZW50VGlsZV9idWJibGUtbWFyZ2luLWlubGluZS1lbmQpO1xufVxuXG4ubXhfRXZlbnRUaWxlW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAtLUV2ZW50VGlsZV9idWJibGVfbGluZS1tYXJnaW4taW5saW5lLXN0YXJ0OiAtOXB4O1xuICAgIC0tRXZlbnRUaWxlX2J1YmJsZV9saW5lLW1hcmdpbi1pbmxpbmUtZW5kOiAtMTJweDtcbiAgICAtLUV2ZW50VGlsZV9idWJibGVfZ2FwLWlubGluZTogNXB4O1xuXG4gICAgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICB3aWR0aDogdW5zZXQ7IC8qIENhbmNlbCB0aGUgZGVmYXVsdCB3aWR0aCAqL1xuICAgICAgICBtYXgtd2lkdGg6IDgwcHg7XG4gICAgfVxuXG4gICAgLm14X1RocmVhZFN1bW1hcnkge1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9FdmVudFRpbGVfY29udGVudCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG5cbiAgICAmOm5vdCgubXhfRXZlbnRUaWxlX2luZm8pIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIGJvcmRlcjogNHB4IHNvbGlkICRiYWNrZ3JvdW5kO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA2cHg7XG4gICAgICAgIHotaW5kZXg6IDk7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJGJhY2tncm91bmQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0V2ZW50VGlsZV9oaWdobGlnaHQge1xuICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRldmVudC1oaWdobGlnaHQtYmctY29sb3I7XG4gICAgICAgIH1cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRldmVudC1oaWdobGlnaHQtYmctY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkZXZlbnRidWJibGUtYmctaG92ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBGb3IgcmVwbGllcyAqL1xuICAgIC5teF9FdmVudFRpbGUge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTFweDtcbiAgICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgICBsZWZ0OiBjYWxjKC0xICogdmFyKC0tRXZlbnRUaWxlX2J1YmJsZS1tYXJnaW4taW5saW5lLXN0YXJ0KSk7XG4gICAgICAgIHJpZ2h0OiBjYWxjKC0xICogdmFyKC0tRXZlbnRUaWxlX2J1YmJsZS1tYXJnaW4taW5saW5lLWVuZCkpO1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJi5teF9FdmVudFRpbGVfc2VsZWN0ZWQge1xuICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGV2ZW50YnViYmxlLWJnLWhvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggJGV2ZW50YnViYmxlLWJnLWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogUG9zaXRpb24gdGhlIG1haW4gZXZlbnQgc2VuZGVyOyByZXBseSBzZW5kZXJzIG93biB0aGVpciBhbGlnbm1lbnQuICovXG4gICAgPiAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUsXG4gICAgLm14X0V2ZW50VGlsZV9zZW5kZXJEZXRhaWxzID4gLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBpbnNldC1ibG9jay1zdGFydDogLTJweDtcbiAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiAycHg7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUFjdGlvbkJhciB7XG4gICAgICAgIHRvcDogLTI4cHg7XG4gICAgICAgIHotaW5kZXg6IDk7IC8qIGFib3ZlIHRoZSBhdmF0YXIgKi9cbiAgICB9XG5cbiAgICAubXhfTWVkaWFCb2R5IHtcbiAgICAgICAgLyogbGVhdmUgc3BhY2UgZm9yIHRoZSB0aW1lc3RhbXAgKi9cbiAgICAgICAgcGFkZGluZy1yaWdodDogNDhweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5teF9JbWFnZUJvZHkge1xuICAgICAgICAubXhfSW1hZ2VCb2R5X2NvbnRhaW5lciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IGNhbGMoMS44cmVtICsgdmFyKC0tZ3V0dGVyU2l6ZSkgKyB2YXIoLS1ndXR0ZXJTaXplKSk7XG4gICAgICAgICAgICBtaW4td2lkdGg6IGNhbGMoMS44cmVtICsgdmFyKC0tZ3V0dGVyU2l6ZSkgKyB2YXIoLS1ndXR0ZXJTaXplKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTGVnYWN5Q2FsbEV2ZW50IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdW5zZXQ7XG5cbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX2Zvb3RlciB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTEtNXgpIDA7XG4gICAgICAgIG1hcmdpbi1pbmxpbmU6IHZhcigtLUV2ZW50VGlsZV9idWJibGVfbGluZS1tYXJnaW4taW5saW5lLXN0YXJ0KSB2YXIoLS1FdmVudFRpbGVfYnViYmxlX2xpbmUtbWFyZ2luLWlubGluZS1lbmQpO1xuICAgIH1cblxuICAgICZbZGF0YS1zZWxmPVwiZmFsc2VcIl0ge1xuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWNvcm5lclJhZGl1cyk7XG5cbiAgICAgICAgICAgIC5teF9JbWFnZUJvZHkgLm14X0ltYWdlQm9keV9jb250YWluZXIsXG4gICAgICAgICAgICAubXhfSW1hZ2VCb2R5OjpiZWZvcmUsXG4gICAgICAgICAgICAubXhfTVZpZGVvQm9keSAubXhfTVZpZGVvQm9keV9jb250YWluZXIsXG4gICAgICAgICAgICAubXhfTWVkaWFCb2R5LFxuICAgICAgICAgICAgLm14X01Mb2NhdGlvbkJvZHlfbWFwLFxuICAgICAgICAgICAgLm14X01CZWFjb25Cb2R5IHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tY29ybmVyUmFkaXVzKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgbGVmdDogLTM2cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTWVzc2FnZUFjdGlvbkJhciB7XG4gICAgICAgICAgICBpbnNldC1pbmxpbmUtc3RhcnQ6IGNhbGMoXG4gICAgICAgICAgICAgICAgMTAwJSAtIHZhcigtLU1lc3NhZ2VBY3Rpb25CYXItc2l6ZS1idXR0b24pIC0gMiAqIHZhcigtLU1lc3NhZ2VBY3Rpb25CYXItc2l6ZS1tYXJnaW4pXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmlnaHQ6IGluaXRpYWw7IC8qIFJlc2V0IHRoZSBkZWZhdWx0IHZhbHVlICovXG4gICAgICAgIH1cblxuICAgICAgICAubXhfVGhyZWFkU3VtbWFyeSB7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBjYWxjKC0xICogdmFyKC0tZ3V0dGVyU2l6ZSkpO1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUmVhY3Rpb25zUm93LFxuICAgICAgICAubXhfRXZlbnRUaWxlX2Zvb3RlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cblxuICAgICAgICAtLWJhY2tncm91bmRDb2xvcjogJGV2ZW50YnViYmxlLW90aGVycy1iZztcbiAgICB9XG5cbiAgICAmW2RhdGEtc2VsZj1cInRydWVcIl0ge1xuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogYXV0bztcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWNvcm5lclJhZGl1cyk7XG5cbiAgICAgICAgICAgIC5teF9JbWFnZUJvZHkgLm14X0ltYWdlQm9keV9jb250YWluZXIsXG4gICAgICAgICAgICAubXhfSW1hZ2VCb2R5OjpiZWZvcmUsXG4gICAgICAgICAgICAubXhfTVZpZGVvQm9keSAubXhfTVZpZGVvQm9keV9jb250YWluZXIsXG4gICAgICAgICAgICAubXhfTWVkaWFCb2R5LFxuICAgICAgICAgICAgLm14X01Mb2NhdGlvbkJvZHlfbWFwLFxuICAgICAgICAgICAgLm14X01CZWFjb25Cb2R5IHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1jb3JuZXJSYWRpdXMpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX3N0aWNrZXIge1xuICAgICAgICAgICAgLyogYWxpZ24gdGltZXN0YW1wIHdpdGggdGhvc2UgaW5zaWRlIGJ1YmJsZXMgKi9cbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMzJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9UaHJlYWRTdW1tYXJ5IHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGF1dG87XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogY2FsYygtMSAqIHZhcigtLWd1dHRlclNpemUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1JlcGx5VGlsZSAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2Zvb3RlciB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1JlYWN0aW9uc1JvdyB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogLTE7IC8qIE1vdmluZyB0aGUgXCJhZGQgcmVhY3Rpb24gYnV0dG9uXCIgYmVmb3JlIHRoZSByZWFjdGlvbnMgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgICAgIHRvcDogLTE5cHg7IC8qIGhlaWdodCBvZiB0aGUgc2VuZGVyIGJsb2NrICovXG4gICAgICAgICAgICByaWdodDogLTM4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTWVkaWFCb2R5IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRldmVudGJ1YmJsZS1zZWxmLWJnO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X01lc3NhZ2VBY3Rpb25CYXIge1xuICAgICAgICAgICAgaW5zZXQtaW5saW5lLWVuZDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC0tYmFja2dyb3VuZENvbG9yOiAkZXZlbnRidWJibGUtc2VsZi1iZztcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAtLUV2ZW50QnViYmxlVGlsZV9saW5lLW1heC13aWR0aDogNzAlO1xuXG4gICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgbWF4LXdpZHRoOiB2YXIoLS1FdmVudEJ1YmJsZVRpbGVfbGluZS1tYXgtd2lkdGgpOyAvKiBBbGlnbiBtZXNzYWdlIGJ1YmJsZSBhbmQgZGlzcGxheU5hbWUgKi9cbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7IC8qIGZpeGVkIGxpbmUgaGVpZ2h0IHRvIHByZXZlbnQgZW1vamkgZnJvbSBiZWluZyB0YWxsZXIgdGhhbiB0ZXh0ICovXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiA1cHggdmFyKC0tRXZlbnRUaWxlX2J1YmJsZV9nYXAtaW5saW5lKTtcbiAgICAgICAgbWFyZ2luLWJsb2NrOiAwO1xuICAgICAgICBtYXJnaW4taW5saW5lOiB2YXIoLS1FdmVudFRpbGVfYnViYmxlX2xpbmUtbWFyZ2luLWlubGluZS1zdGFydCkgdmFyKC0tRXZlbnRUaWxlX2J1YmJsZV9saW5lLW1hcmdpbi1pbmxpbmUtZW5kKTtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFyKC0tY29ybmVyUmFkaXVzKTtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWNvcm5lclJhZGl1cyk7XG5cbiAgICAgICAgLyogdGhlIHNlbGVjdG9yIGhlcmUgaXMgcXVpdGUgd2VpcmQgYmVjYXVzZSB0aW1lc3RhbXBzIGNhbiBhcHBlYXIgbGlua2VkICYgdW5saW5rZWQgYW5kIGluIGRpZmZlcmVudCBwbGFjZXMgKi9cbiAgICAgICAgLyogaW4gdGhlIERPTSBkZXBlbmRpbmcgb24gdGhlIHNwZWNpZmljIHJlbmRlcmluZyBjb250ZXh0ICovXG4gICAgICAgID4gYSwgLyogbGlua2VkIHRpbWVzdGFtcCBlbGVtZW50ICovXG4gICAgICAgIC5teF9NZXNzYWdlQWN0aW9uQmFyICsgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcGFkZGluZzogNHB4IDhweDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogMzsgLyogYWJvdmUgbWVkaWEgYW5kIGxvY2F0aW9uIHNoYXJlIG1hcHMgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfRXZlbnRUaWxlX21lZGlhTGluZSB7XG4gICAgICAgICAgICAvKiBUT0RPOiBVc2UgYSBjb21tb24gY2xhc3MgbmFtZSBpbnN0ZWFkICovXG4gICAgICAgICAgICAubXhfTUZpbGVCb2R5LFxuICAgICAgICAgICAgLm14X01BdWRpb0JvZHkge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTsgLyogYXZvaWQgb3ZlcmZsb3cgKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X01Wb2ljZU1lc3NhZ2VCb2R5IHtcbiAgICAgICAgICAgICAgICAvKiBhbGxvdyB0aGUgZXZlbnQgdG8gYmUgY29sbGFwc2VkLCB0aGlzIGNhdXNlcyB0aGUgd2F2ZWZvcm0gdG8gZ2V0IGNyb3BwZWQgKi9cbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHdlIHB1dCB0aGUgdGltZXN0YW1wcyBmb3IgbWVkaWEgKG90aGVyIHRoYW4gc3RpY2tlcnMpIGF0b3AgdGhlIG1lZGlhICovXG4gICAgICAgICAgICAmLm14X0V2ZW50VGlsZV9pbWFnZSB7XG4gICAgICAgICAgICAgICAgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1NQm9keS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgICAgICAgICAgLyogSGFyZGNvZGVkIGNvbG91cnMgYmVjYXVzZSBpdCdzIHRoZSBzYW1lIG9uIGFsbCB0aGVtZXMgKi9cbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDAsIDAsIDAuNik7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwcHggNHB4IDBweCA0cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9FdmVudFRpbGVfc3RpY2tlciB7XG4gICAgICAgICAgICA+IGEsIC8qIGxpbmtlZCB0aW1lc3RhbXAgZWxlbWVudCAqL1xuICAgICAgICAgICAgLm14X01lc3NhZ2VBY3Rpb25CYXIgKyAubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgICAgICAgICAgLyogcG9zaXRpb24gdGltZXN0YW1wcyBmb3Igc3RpY2tlcnMgdG8gdGhlIHJpZ2h0IG9mIHRoZSB1bi1idWJibGVkIHN0aWNrZXIgKi9cbiAgICAgICAgICAgICAgICByaWdodDogdW5zZXQ7XG4gICAgICAgICAgICAgICAgbGVmdDogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X01TdGlja2VyQm9keV93cmFwcGVyIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0ltYWdlQm9keSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIG5vaW5zcGVjdGlvbiBDc3NSZXBsYWNlV2l0aFNob3J0aGFuZFNhZmVseSAqL1xuICAgICAgICAubXhfSW1hZ2VCb2R5IC5teF9JbWFnZUJvZHlfY29udGFpbmVyLFxuICAgICAgICAubXhfTVZpZGVvQm9keSAubXhfTVZpZGVvQm9keV9jb250YWluZXIsXG4gICAgICAgIC5teF9NZWRpYUJvZHkge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdW5zZXQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YXIoLS1jb3JuZXJSYWRpdXMpO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWNvcm5lclJhZGl1cyk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2UyZUljb24ge1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7IC8qIGtlZXAgaXQgYXQgZnVsbCBzaXplICovXG5cbiAgICAgICAgICAgIC8qIEtlZXAgaGVpZ2h0IGVxdWFsIHRvIHRleHQgZm9yIHNoaWVsZCBhbGlnbm1lbnQsIGFkZGl0aW9uYWwgMnB4IGJlY2F1c2Ugb2YgMXB4IHBhZGRpbmcgb24gdGV4dCAqL1xuICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKCRmb250LTE4cHggKyAycHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLm14X0V2ZW50VGlsZV9ub0J1YmJsZSk6bm90KC5teF9FdmVudFRpbGVfYWxpZ25lZEJldHdlZW5CdWJibGVzKVxuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmU6bm90KC5teF9FdmVudFRpbGVfbWVkaWFMaW5lKSB7XG4gICAgICAgIC8qIG1ha2UgdGhlIHRvcCBhbmQgYm90dG9tIHBhZGRpbmcgMXB4IHNtYWxsZXIgc28gdGhhdCB3ZSBjYW4gcGFkXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2NvbnRlbnQgYnkgMXB4ICovXG4gICAgICAgIC8qIHRvIGF2b2lkIGFudGktemFsZ28gY3V0dGluZyBvZmYgb3VyIGxhcmdlciB0aGFuIHRleHQgZW1vamlzLiAqL1xuICAgICAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWd1dHRlclNpemUpIC0gMXB4KTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNjBweDsgLyogc3BhY2UgZm9yIHRoZSB0aW1lc3RhbXAgKi9cbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tYmFja2dyb3VuZENvbG9yKTtcblxuICAgICAgICAubXhfRXZlbnRUaWxlX2NvbnRlbnQge1xuICAgICAgICAgICAgcGFkZGluZzogMXB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9FdmVudFRpbGVfY29udGludWF0aW9uW2RhdGEtc2VsZj1cImZhbHNlXCJdIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG5cbiAgICAgICAgLm14X0ltYWdlQm9keSAubXhfSW1hZ2VCb2R5X2NvbnRhaW5lcixcbiAgICAgICAgLm14X01WaWRlb0JvZHkgLm14X01WaWRlb0JvZHlfY29udGFpbmVyLFxuICAgICAgICAubXhfSW1hZ2VCb2R5OjpiZWZvcmUsXG4gICAgICAgIC5teF9NZWRpYUJvZHksXG4gICAgICAgIC5teF9NTG9jYXRpb25Cb2R5X21hcCxcbiAgICAgICAgLm14X01CZWFjb25Cb2R5IHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJi5teF9FdmVudFRpbGVfbGFzdEluU2VjdGlvbltkYXRhLXNlbGY9XCJmYWxzZVwiXSAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1jb3JuZXJSYWRpdXMpO1xuXG4gICAgICAgIC5teF9JbWFnZUJvZHkgLm14X0ltYWdlQm9keV9jb250YWluZXIsXG4gICAgICAgIC5teF9NVmlkZW9Cb2R5IC5teF9NVmlkZW9Cb2R5X2NvbnRhaW5lcixcbiAgICAgICAgLm14X0ltYWdlQm9keTo6YmVmb3JlLFxuICAgICAgICAubXhfTWVkaWFCb2R5LFxuICAgICAgICAubXhfTUxvY2F0aW9uQm9keV9tYXAsXG4gICAgICAgIC5teF9NQmVhY29uQm9keSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1jb3JuZXJSYWRpdXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5teF9FdmVudFRpbGVfY29udGludWF0aW9uW2RhdGEtc2VsZj1cInRydWVcIl0gLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG5cbiAgICAgICAgLm14X0ltYWdlQm9keSAubXhfSW1hZ2VCb2R5X2NvbnRhaW5lcixcbiAgICAgICAgLm14X01WaWRlb0JvZHkgLm14X01WaWRlb0JvZHlfY29udGFpbmVyLFxuICAgICAgICAubXhfSW1hZ2VCb2R5OjpiZWZvcmUsXG4gICAgICAgIC5teF9NZWRpYUJvZHksXG4gICAgICAgIC5teF9NTG9jYXRpb25Cb2R5X21hcCxcbiAgICAgICAgLm14X01CZWFjb25Cb2R5IHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICB9XG4gICAgfVxuICAgICYubXhfRXZlbnRUaWxlX2xhc3RJblNlY3Rpb25bZGF0YS1zZWxmPVwidHJ1ZVwiXSAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tY29ybmVyUmFkaXVzKTtcblxuICAgICAgICAubXhfSW1hZ2VCb2R5IC5teF9JbWFnZUJvZHlfY29udGFpbmVyLFxuICAgICAgICAubXhfTVZpZGVvQm9keSAubXhfTVZpZGVvQm9keV9jb250YWluZXIsXG4gICAgICAgIC5teF9JbWFnZUJvZHk6OmJlZm9yZSxcbiAgICAgICAgLm14X01lZGlhQm9keSxcbiAgICAgICAgLm14X01Mb2NhdGlvbkJvZHlfbWFwLFxuICAgICAgICAubXhfTUJlYWNvbkJvZHkge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWNvcm5lclJhZGl1cyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0V2ZW50VGlsZV9ub1NlbmRlciB7XG4gICAgICAgIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgICAgIHRvcDogLTE5cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW2RhdGEtaGFzLXJlcGx5PVwidHJ1ZVwiXSB7XG4gICAgICAgID4gLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUmVwbHlDaGFpbiB7XG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX3JlcGx5IHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDkwJTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgID4gYSwgLyogbGlua2VkIHRpbWVzdGFtcCBlbGVtZW50ICovXG4gICAgICAgICAgICAgICAgLm14X01lc3NhZ2VBY3Rpb25CYXIgKyAubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZ2FwOiB2YXIoLS1ndXR0ZXJTaXplKTtcbiAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X01Qb2xsQm9keSB7XG4gICAgICAgIHdpZHRoOiA1NTBweDsgLyogdG8gcHJldmVudCB0aW1lc3RhbXAgb3ZlcmxhcHBpbmcgc3VtbWFyeSB0ZXh0ICovXG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgLyogcHJldmVudCBvdmVyZmxvd2luZyBhIHJlcGx5IHRpbGUgKi9cblxuICAgICAgICAubXhfTVBvbGxCb2R5X3RvdGFsVm90ZXMge1xuICAgICAgICAgICAgLyogYWxpZ24gc3VtbWFyeSB0ZXh0IHdpdGggY29ybmVyIHRpbWVzdGFtcCAqL1xuICAgICAgICAgICAgcGFkZGluZzogNHB4IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0V2ZW50VGlsZV9iYWQge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKiBTcGVjaWFsIGxheW91dCBzY2VuYXJpbyBmb3IgXCJVbmFibGUgVG8gRGVjcnlwdCAoVVREKVwiIGV2ZW50cyAqL1xuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGU6XG4gICAgICAgICAgICAgICAgXCJyZXBseSByZXBseVwiIGF1dG9cbiAgICAgICAgICAgICAgICBcInNoaWVsZCBib2R5XCIgYXV0b1xuICAgICAgICAgICAgICAgIC8gYXV0byAxZnI7XG5cbiAgICAgICAgICAgIC5teF9Vbmtub3duQm9keSxcbiAgICAgICAgICAgIC5teF9SZXBseUNoYWluX3dyYXBwZXIsXG4gICAgICAgICAgICAubXhfVmlld1NvdXJjZUV2ZW50IHtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7IC8qIFByZXZlbnQgYSBncmlkIGJsb3dvdXQgKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9lMmVJY29uIHtcbiAgICAgICAgICAgICAgICBncmlkLWFyZWE6IHNoaWVsZDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGF1dG87XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Vbmtub3duQm9keSxcbiAgICAgICAgICAgIC5teF9EZWNyeXB0aW9uRmFpbHVyZUJvZHkge1xuICAgICAgICAgICAgICAgIGdyaWQtYXJlYTogYm9keTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1JlcGx5Q2hhaW5fd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgZ3JpZC1hcmVhOiByZXBseTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfRXZlbnRUaWxlX2luZm8ge1xuICAgICAgICAgICAgLyogXCJVbmFibGUgVG8gRGVjcnlwdFwiIGxheW91dCBmb3IgaGlkZGVuIGV2ZW50cyAqL1xuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgICAgICBnYXA6IDAgOXB4OyAvKiA5cHg6IG1hcmdpbiB2YWx1ZSBvZiBFMkUgaWNvbiAqL1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAgICAgICAgICAgICAgICAgXCJzaGllbGQgc291cmNlXCIgYXV0b1xuICAgICAgICAgICAgICAgICAgICAvIGF1dG8gMWZyO1xuXG4gICAgICAgICAgICAgICAgLm14X1ZpZXdTb3VyY2VFdmVudCB7XG4gICAgICAgICAgICAgICAgICAgIGdyaWQtYXJlYTogc291cmNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfd3JhcHBlcixcbiAgICAubXhfQ2FsbEV2ZW50X3dyYXBwZXIge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmLm14X0V2ZW50VGlsZV9hbGlnbmVkQmV0d2VlbkJ1YmJsZXMge1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBjYWxjKFxuICAgICAgICAgICAgdmFyKC0tRXZlbnRUaWxlX2J1YmJsZS1tYXJnaW4taW5saW5lLXN0YXJ0KSArIHZhcigtLUV2ZW50VGlsZV9idWJibGVfbGluZS1tYXJnaW4taW5saW5lLXN0YXJ0KVxuICAgICAgICApO1xuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogY2FsYyhcbiAgICAgICAgICAgIHZhcigtLUV2ZW50VGlsZV9idWJibGUtbWFyZ2luLWlubGluZS1lbmQpICsgdmFyKC0tRXZlbnRUaWxlX2J1YmJsZV9saW5lLW1hcmdpbi1pbmxpbmUtZW5kKVxuICAgICAgICApO1xuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZS5teF9FdmVudFRpbGVfbm9CdWJibGVbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl0ge1xuICAgIC0tYmFja2dyb3VuZENvbG9yOiB0cmFuc3BhcmVudDtcblxuICAgIC5teF9FdmVudFRpbGVfbGluZS5teF9FdmVudFRpbGVfZW1vdGUge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4OyAvKiBhbGlnbiB3aXRoIGJ1YmJsZXMgdGV4dCAqL1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG5cbiAgICAgICAgPiBhIHtcbiAgICAgICAgICAgIC8qIGxpbmtlZCB0aW1lc3RhbXAgZWxlbWVudCAqL1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgYm90dG9tOiB1bnNldDtcbiAgICAgICAgICAgIHRvcDogdW5zZXQ7XG4gICAgICAgICAgICBmb250LXN0eWxlOiBub3JtYWw7IC8qIHVuZG8gaXRhbGljIGFib3ZlICovXG4gICAgICAgIH1cblxuICAgICAgICAubXhfTUVtb3RlQm9keSB7XG4gICAgICAgICAgICBwYWRkaW5nOiA0cHggMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZS5teF9FdmVudFRpbGVfYnViYmxlQ29udGFpbmVyW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdLFxuLm14X0V2ZW50VGlsZS5teF9FdmVudFRpbGVfbGVmdEFsaWduZWRCdWJibGVbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl0ge1xuICAgIC5teF9FdmVudFRpbGVfbGluZSA+IGEge1xuICAgICAgICAvKiBoaWRlIHRoaXMgdGltZXN0YW1wIGFzIHRoZSB0aWxlIHdpbGwgcmVuZGVyIGl0cyBvd24gKi9cbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5teF9FdmVudFRpbGUubXhfRXZlbnRUaWxlX2J1YmJsZUNvbnRhaW5lcltkYXRhLWxheW91dD1cImJ1YmJsZVwiXSxcbi5teF9FdmVudFRpbGUubXhfRXZlbnRUaWxlX2xlZnRBbGlnbmVkQnViYmxlW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdLFxuLm14X0V2ZW50VGlsZS5teF9FdmVudFRpbGVfaW5mb1tkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgcGFkZGluZzogNXB4IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblxuICAgIC5teF9FdmVudFRpbGVfbGluZSxcbiAgICAubXhfRXZlbnRUaWxlX2luZm8ge1xuICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgIC8qIFByZXNlcnZlIGFsaWdubWVudCB3aXRoIGxlZnQgZWRnZSBvZiB0ZXh0IGluIGJ1YmJsZXMgKi9cbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZS5teF9FdmVudFRpbGVfYnViYmxlQ29udGFpbmVyW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdLFxuLm14X0V2ZW50VGlsZS5teF9FdmVudFRpbGVfbGVmdEFsaWduZWRCdWJibGVbZGF0YS1sYXlvdXQ9XCJidWJibGVcIl0sXG4ubXhfRXZlbnRUaWxlLm14X0V2ZW50VGlsZV9pbmZvW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdLFxuLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5W2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdW2RhdGEtZXhwYW5kZWQ9XCJmYWxzZVwiXSB7XG4gICAgLS1iYWNrZ3JvdW5kQ29sb3I6IHRyYW5zcGFyZW50O1xuICAgIC0tZ3V0dGVyU2l6ZTogMDtcblxuICAgIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tRXZlbnRUaWxlX2J1YmJsZV9nYXAtaW5saW5lKTsgLyogU2FtZSBzcGFjaW5nIGJldHdlZW4gRTJFIGljb24gYW5kIGEgaGlkZGVuIGV2ZW50ICovXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIH1cblxuICAgIC5teF9FdmVudFRpbGVfZTJlSWNvbiB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDA7IC8qIG14X0V2ZW50VGlsZV9hdmF0YXIgaGFzIG1hcmdpbi1pbmxpbmUtZW5kLCBzbyBtYXJnaW4gaXMgbm90IG5lZWRlZCBoZXJlICovXG4gICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICA+IGEsIC8qIGxpbmtlZCB0aW1lc3RhbXAgZWxlbWVudCAqL1xuICAgICAgICAubXhfTWVzc2FnZUFjdGlvbkJhciArIC5teF9NZXNzYWdlVGltZXN0YW1wIHtcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbGVmdDogLTc3cHg7XG4gICAgICAgICAgICBib3R0b206IHVuc2V0O1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuXG4gICAgICAgICAgICAubXhfTWVzc2FnZVRpbWVzdGFtcCxcbiAgICAgICAgICAgICYubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0dlbmVyaWNFdmVudExpc3RTdW1tYXJ5W2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAubXhfRXZlbnRUaWxlLm14X0V2ZW50VGlsZV9pbmZvIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgIC8qIEF2b2lkIG92ZXJmbG93IG9mIGV2ZW50IGluZm8gYnkgY2FuY2VsbGluZyB3aWR0aCBzZXR0aW5ncyAqL1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLyogaW5jcmVhc2UgbWFyZ2luIGJldHdlZW4gRUxTIGFuZCB0aGUgbmV4dCBFdmVudCB0byBub3QgaGF2ZSBvdXIgdXNlciBhdmF0YXIgb3ZlcmxhcCB0aGUgZXhwYW5kL2NvbGxhcHNlIGJ1dHRvbiAqL1xuICAgICZbZGF0YS1leHBhbmRlZD1cImZhbHNlXCJdICsgLm14X0V2ZW50VGlsZVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXVtkYXRhLXNlbGY9XCJ0cnVlXCJdIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICB9XG5cbiAgICAmW2RhdGEtZXhwYW5kZWQ9XCJ0cnVlXCJdIC5teF9FdmVudFRpbGVfaW5mbyB7XG4gICAgICAgIHBhZGRpbmc6IDJweCAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG5cbiAgICAgICAgLm14X01lc3NhZ2VBY3Rpb25CYXIge1xuICAgICAgICAgICAgLyogUmVzZXQgLm14X0V2ZW50VGlsZVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXVtkYXRhLXNlbGY9XCJmYWxzZVwiXSAubXhfTWVzc2FnZUFjdGlvbkJhciAqL1xuICAgICAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiBpbml0aWFsO1xuICAgICAgICAgICAgaW5zZXQtaW5saW5lLWVuZDogNDhweDsgLyogYWxpZ24gd2l0aCB0aGF0IG9mIHJpZ2h0LWNvbHVtbiBidWJibGVzICovXG4gICAgICAgIH1cblxuICAgICAgICAubXhfUmVhZFJlY2VpcHRHcm91cCB7XG4gICAgICAgICAgICAvKiBtYXRjaCBhbGlnbm1lbnQgdG8gUlJzIG9mIGNoYXQgYnViYmxlcyAqL1xuICAgICAgICAgICAgaW5zZXQtaW5saW5lLWVuZDogY2FsYygtMSAqIHZhcigtLVJlYWRSZWNlaXB0R3JvdXBfRXZlbnRCdWJibGVUaWxlLXNwYWNpbmctZW5kKSArIDYwcHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGluc2V0LWlubGluZS1lbmQ6IDA7IC8qIG1hdGNoIGFsaWdubWVudCBvZiB0aGUgaG92ZXIgYmFja2dyb3VuZCB0byB0aGF0IG9mIGNoYXQgYnViYmxlcyAqL1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlX3RpbGVFcnJvcltkYXRhLWxheW91dD1cImJ1YmJsZVwiXSAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IC8qIHJlc3RvcmUgdGhlIGNlbnRlcmluZyAqL1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbiRsZWZ0LWd1dHRlcjogNjRweDtcblxuLm14X0V2ZW50VGlsZSB7XG4gICAgLS1FdmVudFRpbGVfY29udGVudC1tYXJnaW4taW5saW5lLWVuZDogMzRweDtcbiAgICAtLUV2ZW50VGlsZV9ncm91cF9saW5lLXNwYWNpbmctYmxvY2stc3RhcnQ6IDFweDtcbiAgICAtLUV2ZW50VGlsZV9ncm91cF9saW5lLXNwYWNpbmctYmxvY2stZW5kOiAzcHg7XG4gICAgLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWlubGluZS1zdGFydDogJGxlZnQtZ3V0dGVyO1xuICAgIC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtbGluZS1oZWlnaHQ6ICRmb250LTIycHg7XG4gICAgLS1FdmVudFRpbGVfVGhyZWFkU3VtbWFyeS1saW5lLWhlaWdodDogY2FsYygyICogJGZvbnQtMTJweCk7XG5cbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgY2xlYXI6IGJvdGg7IC8qIFRPRE86IGNoZWNrIGlmIHRoaXMgaXMgbmVjZXNzYXJ5ICovXG4gICAgcGFkZGluZy10b3A6IDE4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJi5teF9FdmVudFRpbGVfaW5mbyB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tY3BkLWZvbnQtc2l6ZS1ib2R5LXNtKTtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9ib2R5IHtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICB9XG5cbiAgICAubXhfUmVhZFJlY2VpcHRHcm91cF9jb250YWluZXIgc3ZnIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xuICAgIH1cblxuICAgIC5teF9FdmVudFRpbGVfY29udGVudCB7XG4gICAgICAgICYubXhfRWRpdE1lc3NhZ2VDb21wb3NlcixcbiAgICAgICAgJi5teF9FZGl0V3lzaXd5Z0NvbXBvc2VyIHtcbiAgICAgICAgICAgIC8qIE1ha2Ugc3VyZSB0aGUgZm9ybWF0dGluZyBiYXIgaXMgdmlzaWJsZSAqL1xuICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX3NlYXJjaEhpZ2hsaWdodCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgIGNvbG9yOiAkYWNjZW50LWZnLWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIHBhZGRpbmctaW5saW5lOiAycHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICBjb2xvcjogJGFjY2VudC1mZy1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9NZXNzYWdlVGltZXN0YW1wX2xhdGVJY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMTAwJTtcbiAgICAgICAgdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlQnViYmxlIHtcbiAgICAgICAgbWFyZ2luLWJsb2NrOiB2YXIoLS1FdmVudFRpbGVCdWJibGVfbWFyZ2luLWJsb2NrKTtcbiAgICAgICAgbWluLXdpZHRoOiAxMDBweDtcbiAgICB9XG5cbiAgICAubXhfSW1hZ2VCb2R5IHtcbiAgICAgICAgLm14X0ltYWdlQm9keV9jb250YWluZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IC8qIG9uIGV2ZXJ5IGxheW91dCAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1JlYWN0aW9uc1JvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIH1cblxuICAgIC5teF9SZXBseUNoYWluLS1leHBhbmRlZCB7XG4gICAgICAgIC5teF9FdmVudFRpbGVfYm9keSB7XG4gICAgICAgICAgICAvKiAhaW1wb3J0YW50IG5lZWRlZCB0byBvdmVycmlkZSAubXhfUmVwbHlUaWxlIC5teF9FdmVudFRpbGVfY29udGVudCAubXhfRXZlbnRUaWxlX2JvZHkgKi9cbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2NvbGxhcHNlZENvZGVCbG9jayB7XG4gICAgICAgICAgICAvKiAhaW1wb3J0YW50IG5lZWRlZCBkdWUgdG8gLm14X1JlcGx5VGlsZSAubXhfRXZlbnRUaWxlX2NvbnRlbnQgLm14X0V2ZW50VGlsZV9wcmVfY29udGFpbmVyID4gcHJlICovXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Jvb21WaWV3X3NlYXJjaFJlc3VsdHNQYW5lbCAmIHtcbiAgICAgICAgJi5teF9FdmVudFRpbGVfY29udGV4dHVhbCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0V2ZW50VGlsZV9idWJibGVDb250YWluZXIge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxMDBweDtcblxuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgZ3JpZC1jb2x1bW46IDEgLyAzO1xuICAgICAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50OyAvKiBvdmVycmlkZSBkZWZhdWx0IHBhZGRpbmcgb2YgbXhfRXZlbnRUaWxlX2xpbmUgc28gdGhhdCB3ZSBjYW4gYmUgY2VudGVyZWQgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbXNnT3B0aW9uIHtcbiAgICAgICAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIC8qIFRvIGF2b2lkIGJ1YmJsZSBldmVudHMgYmVpbmcgaGlnaGxpZ2h0ZWQgKi9cbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0V2ZW50VGlsZV9pc0VkaXRpbmcgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuXG4gICAgJltkYXRhLWxheW91dD1cImlyY1wiXSxcbiAgICAmW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAtLXNlbGVjdGVkLW1lc3NhZ2UtYm9yZGVyLXdpZHRoOiA0cHg7XG5cbiAgICAgICAgLyogVE9ETzogYWRqdXN0IHRoZSB2YWx1ZXMgZm9yIElSQyBsYXlvdXQgKi9cbiAgICAgICAgLS1FdmVudFRpbGUtYm94LXNoYWRvdy1vZmZzZXQteDogY2FsYyg1MHB4ICsgdmFyKC0tc2VsZWN0ZWQtbWVzc2FnZS1ib3JkZXItd2lkdGgpKTtcbiAgICAgICAgLS1FdmVudFRpbGUtYm94LXNoYWRvdy1zcHJlYWQtcmFkaXVzOiAtNTBweDtcbiAgICAgICAgLm14X0V2ZW50VGlsZV9lMmVJY29uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9JbWFnZUJvZHkge1xuICAgICAgICAgICAgLm14X0ltYWdlQm9keV9jb250YWluZXIge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAkZm9udC00NHB4O1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogJGZvbnQtNDRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbGluZSxcbiAgICAgICAgLm14X0V2ZW50VGlsZV9yZXBseSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX3JlcGx5IHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbXNnT3B0aW9uIHtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgd2lkdGg6IDkwcHg7XG5cbiAgICAgICAgICAgIC8qIEhhY2sgdG8gc3RvcCB0aGUgaGVpZ2h0IG9mIHRoaXMgcHVzaGluZyB0aGUgbWVzc2FnZXMgYXBhcnQuXG4gICAgICAgICAgICAgICBSZXBsYWNlcyBtYXJnaW4tdG9wOiAtNnB4LiBUaGlzIGludGVyYWN0cyBiZXR0ZXIgd2l0aCBhIHJlYWRcbiAgICAgICAgICAgICAgIG1hcmtlciBiZWluZyBpbiBiZXR3ZWVuLiBDb250ZW50IG92ZXJmbG93cy4gKi9cbiAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9FdmVudFRpbGVfaGlnaGxpZ2h0LFxuICAgICAgICAmLm14X0V2ZW50VGlsZV9oaWdobGlnaHQgLm1hcmtkb3duLWJvZHkge1xuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZXZlbnQtaGlnaGxpZ2h0LWJnLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cy12aXNpYmxlOmZvY3VzLXdpdGhpbixcbiAgICAgICAgJi5teF9FdmVudFRpbGVfYWN0aW9uQmFyRm9jdXNlZCxcbiAgICAgICAgJi5teF9FdmVudFRpbGVfaXNFZGl0aW5nLFxuICAgICAgICAmLm14X0V2ZW50VGlsZV9zZWxlY3RlZCB7XG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRldmVudC1zZWxlY3RlZC1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHRoaXMgaXMgdXNlZCBmb3IgdGhlIHRpbGUgZm9yIHRoZSBldmVudCB3aGljaCBpcyBzZWxlY3RlZCB2aWEgdGhlIFVSTC4gKi9cbiAgICAgICAgJi5teF9FdmVudFRpbGVfaXNFZGl0aW5nLFxuICAgICAgICAmLm14X0V2ZW50VGlsZV9zZWxlY3RlZCB7XG4gICAgICAgICAgICA+IC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAgICAgLyogVE9ETzogdWx0aW1hdGVseSB3ZSBwcm9iYWJseSB3YW50IHNvbWUgdHJhbnNpdGlvbiBvbiBoZXJlLiAqL1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IHZhcigtLUV2ZW50VGlsZS1ib3gtc2hhZG93LW9mZnNldC14KSAwIDAgdmFyKC0tRXZlbnRUaWxlLWJveC1zaGFkb3ctc3ByZWFkLXJhZGl1cylcbiAgICAgICAgICAgICAgICAgICAgdmFyKC0tY3BkLWNvbG9yLWJnLWFjdGlvbi1wcmltYXJ5LXJlc3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9FdmVudFRpbGVfaW5mbyB7XG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2UyZUljb24ge1xuICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfRXZlbnRUaWxlX2NvbnRpbnVhdGlvbiAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGV2ZW50LXNlbGVjdGVkLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkYXRhLWxheW91dD1cImJ1YmJsZVwiXSxcbiAgICAmW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAubXhfRXZlbnRUaWxlQnViYmxlIHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmU6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUmVwbHlDaGFpbiB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkYXRhLWxheW91dD1cImlyY1wiXSB7XG4gICAgICAgIC0tRXZlbnRUaWxlX2lyY19saW5lLXBhZGRpbmctYmxvY2s6IDFweDtcblxuICAgICAgICAvKiBhZGQgLS1yaWdodC1wYWRkaW5nIHZhbHVlIG9mIE1lc3NhZ2VUaW1lc3RhbXAgb25seSAqL1xuICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVjbGFyYXRpb24tY29sb24tc3BhY2UtYWZ0ZXIgKi9cbiAgICAgICAgLS1FdmVudFRpbGVfaXJjX2xpbmVfaW5mby1tYXJnaW4taW5saW5lLXN0YXJ0OiBjYWxjKFxuICAgICAgICAgICAgdmFyKC0tbmFtZS13aWR0aCkgKyB2YXIoLS1pY29uLXdpZHRoKSArIDEgKiB2YXIoLS1yaWdodC1wYWRkaW5nKVxuICAgICAgICApO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcblxuICAgICAgICAubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IHZhcigtLU1lc3NhZ2VUaW1lc3RhbXAtd2lkdGgpOyAvKiBlbnN1cmUgc3BhY2UgZm9yIEV2ZW50VGlsZSB3aXRob3V0IHRpbWVzdGFtcCAqL1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICA+ICo6bm90KC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZSkge1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLXJpZ2h0LXBhZGRpbmcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIsXG4gICAgICAgIC5teF9FdmVudFRpbGVfZTJlSWNvbiB7XG4gICAgICAgICAgICBoZWlnaHQ6IHZhcigtLWlyYy1saW5lLWhlaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhcixcbiAgICAgICAgLm14X0V2ZW50VGlsZV9lMmVJY29uLFxuICAgICAgICAubXhfRXZlbnRUaWxlX21zZ09wdGlvbiB7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgICAgIG9yZGVyOiAxO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIC8qIE5lZWQgdG8gdXNlIGltcG9ydGFudCB0byBvdmVycmlkZSB0aGUganMgY2FsY3VsYXRlZCB2YWx1ZXMuICovXG4gICAgICAgICAgICA+IC5teF9CYXNlQXZhdGFyLFxuICAgICAgICAgICAgPiAubXhfQmFzZUF2YXRhciA+ICoge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTBweCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBjYWxjKCRmb250LTE1cHggLSAycHgpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2UyZUljb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2UyZUljb24ge1xuICAgICAgICAgICAgICAgIC8qIGFkZCBhIDFweCBwYWRkaW5nIHRvcCBhbmQgYm90dG9tIGJlY2F1c2Ugb3VyIGxhcmdlclxuICAgICAgICAgICAgICAgIGVtb2ppIGZvbnQgb3RoZXJ3aXNlIGdldHMgY3JvcHBlZCBieSBhbnRpLXphbGdvICovXG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tRXZlbnRUaWxlX2lyY19saW5lLXBhZGRpbmctYmxvY2spIDA7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfUmVwbHlUaWxlIHtcbiAgICAgICAgICAgICAgICAubXhfTVRleHRCb2R5IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7IC8qIEVuYWJsZSAtd2Via2l0LWxpbmUtY2xhbXAgKi9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUsXG4gICAgICAgIC5teF9FdmVudFRpbGVfcmVwbHkge1xuICAgICAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9yZXBseSB7XG4gICAgICAgICAgICBvcmRlcjogNDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbXNnT3B0aW9uIHtcbiAgICAgICAgICAgIG9yZGVyOiA1O1xuXG4gICAgICAgICAgICAubXhfUmVhZFJlY2VpcHRHcm91cCB7XG4gICAgICAgICAgICAgICAgaW5zZXQtYmxvY2stc3RhcnQ6IC0wLjNyZW07IC8qICh2YXIoLS1pcmMtbGluZS1oZWlnaHQpIC0gYXZhdGFyIGhlaWdodCkgLyAyICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUmVwbHlDaGFpbiB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRWRpdE1lc3NhZ2VDb21wb3Nlcl9idXR0b25zIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVCdWJibGUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgbGVmdDogdmFyKC0tRXZlbnRUaWxlX2lyY19saW5lX2luZm8tbWFyZ2luLWlubGluZS1zdGFydCk7XG5cbiAgICAgICAgICAgICYubXhfY3J5cHRvRXZlbnQge1xuICAgICAgICAgICAgICAgIGxlZnQ6IHVuc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1JlcGx5VGlsZSAubXhfRXZlbnRUaWxlQnViYmxlIHtcbiAgICAgICAgICAgIGxlZnQ6IHVuc2V0OyAvKiBDYW5jZWwgdGhlIHZhbHVlIHNwZWNpZmllZCBhYm92ZSBmb3IgdGhlIHRpbGUgaW5zaWRlIFJlcGx5VGlsZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9FdmVudFRpbGVfaXNFZGl0aW5nID4gLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgIC5teF9FZGl0TWVzc2FnZUNvbXBvc2VyIHtcbiAgICAgICAgICAgICAgICAvKiBhZGQgc3BhY2UgZm9yIHRoZSBzdHJva2Ugb24gYm94LXNoYWRvdyAqL1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICB2YXIoLS1zZWxlY3RlZC1tZXNzYWdlLWJvcmRlci13aWR0aCkgKyB2YXIoLS1FZGl0TWVzc2FnZUNvbXBvc2VyLXBhZGRpbmctaW5saW5lKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0V2ZW50VGlsZV9pbmZvIHtcbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiB2YXIoLS1FdmVudFRpbGVfaXJjX2xpbmVfaW5mby1tYXJnaW4taW5saW5lLXN0YXJ0KTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1yaWdodC1wYWRkaW5nKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1FdmVudFRpbGVfaXJjX2xpbmUtcGFkZGluZy1ibG9jayk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogdmFyKC0tRXZlbnRUaWxlX2lyY19saW5lX2luZm8tbWFyZ2luLWlubGluZS1zdGFydCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0V2ZW50VGlsZV9lbW90ZSB7XG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICAgICAgLyogYWRkIC0tcmlnaHQtcGFkZGluZyB2YWx1ZSBvZiBNZXNzYWdlVGltZXN0YW1wIG9ubHkgKi9cbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1uYW1lLXdpZHRoKSArIHZhcigtLWljb24td2lkdGgpICsgMSAqIHZhcigtLXJpZ2h0LXBhZGRpbmcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfZm9vdGVyIHtcbiAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTEtNXgpIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICB0b3A6IDE0cHg7XG4gICAgICAgICAgICBsZWZ0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lLFxuICAgICAgICAubXhfRXZlbnRUaWxlX3JlcGx5IHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWJsb2NrLXN0YXJ0KTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWJsb2NrLWVuZCk7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IHZhcigtLUV2ZW50VGlsZV9ncm91cF9saW5lLXNwYWNpbmctaW5saW5lLXN0YXJ0KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1saW5lLWhlaWdodCk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2UyZUljb24ge1xuICAgICAgICAgICAgaW5zZXQ6IDAgMCAwIDQ0cHg7XG5cbiAgICAgICAgICAgIC8qIEtlZXAgaGVpZ2h0IGVxdWFsIHRvIHRleHQgZm9yIGFsaWdubWVudCAqL1xuICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1saW5lLWhlaWdodCk7XG4gICAgICAgICAgICBtYXJnaW46IDFweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbXNnT3B0aW9uIHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAxMHB4O1xuXG4gICAgICAgICAgICAubXhfUmVhZFJlY2VpcHRHcm91cCB7XG4gICAgICAgICAgICAgICAgLyogVGhpcyBhbGlnbnMgdGhlIGF2YXRhciB3aXRoIHRoZSBsYXN0IGxpbmUgb2YgdGhlICovXG4gICAgICAgICAgICAgICAgLyogbWVzc2FnZS4gV2Ugd2FudCB0byBtb3ZlIGl0IG9uZSBsaW5lIHVwICovXG4gICAgICAgICAgICAgICAgLyogU2VlIC5teF9FdmVudFRpbGVbZGF0YS1sYXlvdXQ9Z3JvdXBdIC5teF9FdmVudFRpbGVfbGluZSBpbiBfRXZlbnRUaWxlLnNjc3MgKi9cbiAgICAgICAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogY2FsYygtJGZvbnQtMjJweCAtIDNweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RocmVhZFN1bW1hcnksXG4gICAgICAgIC5teF9UaHJlYWRTdW1tYXJ5X2ljb24ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRsZWZ0LWd1dHRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfZm9vdGVyIHtcbiAgICAgICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTF4KSB2YXIoLS1FdmVudFRpbGVfZ3JvdXBfbGluZS1zcGFjaW5nLWlubGluZS1zdGFydCk7XG4gICAgICAgIH1cblxuICAgICAgICA+IC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjBweDtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6ICRsZWZ0LWd1dHRlcjtcbiAgICAgICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gJGxlZnQtZ3V0dGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgei1pbmRleDogOTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Sb29tVmlld190aW1lbGluZV9ycl9lbmFibGVkICYge1xuICAgICAgICAgICAgJGlubGluZS1lbmQtbWFyZ2luOiA4MHB4O1xuXG4gICAgICAgICAgICAubXhfVGhyZWFkU3VtbWFyeSxcbiAgICAgICAgICAgIC5teF9UaHJlYWRTdW1tYXJ5X2ljb24sXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGlubGluZS1lbmQtbWFyZ2luO1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRmb250LTE0cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9UaHJlYWRTdW1tYXJ5IHtcbiAgICAgICAgICAgICAgICAvKiBsZWF2ZSBzcGFjZSBvbiBib3RoIGxlZnQgJiByaWdodCBndXR0ZXJzICovXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBtaW4oY2FsYygxMDAlIC0gJGxlZnQtZ3V0dGVyIC0gJGlubGluZS1lbmQtbWFyZ2luKSwgNjAwcHgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBvbiBFTFMgd2UgbmVlZCB0aGUgbWFyZ2luIHRvIGFsbG93IGludGVyYWN0aW9uIHdpdGggdGhlIGV4cGFuZC9jb2xsYXBzZSBidXR0b24gKi9cbiAgICAgICAgICAgIC8qIHdoaWNoIGlzIG5vcm1hbGx5IGluIHRoZSBSUiBndXR0ZXIgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfRXZlbnRUaWxlX2NvbnRpbnVhdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfRXZlbnRUaWxlX2luZm8ge1xuICAgICAgICAgICAgJHNwYWNpbmctYmxvY2stc3RhcnQ6IDNweDtcbiAgICAgICAgICAgICRzcGFjaW5nLWJsb2NrLWVuZDogMnB4O1xuXG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcblxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIsXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2UyZUljb24ge1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogJHNwYWNpbmctYmxvY2stc3RhcnQgMCAkc3BhY2luZy1ibG9jay1lbmQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgICAgICAgICB0b3A6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgaW5zZXQtaW5saW5lLXN0YXJ0OiAkbGVmdC1ndXR0ZXI7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYmxvY2s6ICRzcGFjaW5nLWJsb2NrLXN0YXJ0ICRzcGFjaW5nLWJsb2NrLWVuZDtcbiAgICAgICAgICAgICAgICAvKiAyMHB4OiBhdmF0YXIgYXJlYSAqL1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiBjYWxjKHZhcigtLUV2ZW50VGlsZV9ncm91cF9saW5lLXNwYWNpbmctaW5saW5lLXN0YXJ0KSArIDIwcHgpO1xuXG4gICAgICAgICAgICAgICAgLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X0V2ZW50VGlsZV9zZWxlY3RlZCAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIC8qIFRPRE86IGNoZWNrIGlmIHRoaXMgd291bGQgYmUgbmVjZXNzYXJ5OyAqL1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiBjYWxjKHZhcigtLUV2ZW50VGlsZV9ncm91cF9saW5lLXNwYWNpbmctaW5saW5lLXN0YXJ0KSArIDIwcHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgICAgIC8qIE90aGVyIGhhbGYgb2YgdGhlIGd1dHRlciBpcyBwcm92aWRlZCBieSBtYXJnaW4tYm90dG9tIG9uIHRoZSBsYXN0IHRpbGVcbiAgICAgICAgb2YgdGhlIHNlY3Rpb24gKi9cbiAgICAgICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1ndXR0ZXJTaXplKSAvIDIpO1xuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tRXZlbnRUaWxlX2J1YmJsZS1tYXJnaW4taW5saW5lLXN0YXJ0KTtcblxuICAgICAgICAvKiBSZXNldCBkZWZhdWx0IHZhbHVlcy4gVE9ETzogcmVtb3ZlICovXG4gICAgICAgIG1heC13aWR0aDogdW5zZXQ7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbXNnT3B0aW9uIHtcbiAgICAgICAgICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgaW5zZXQtYmxvY2stc3RhcnQ6IGF1dG87XG5cbiAgICAgICAgICAgICAgICAvKiBhcyBjbG9zZSB0byByaWdodCBndXR0ZXIgd2l0aG91dCBjbGlwcGluZyBhcyBwb3NzaWJsZSAqL1xuICAgICAgICAgICAgICAgIGluc2V0LWlubGluZS1lbmQ6IGNhbGMoLTEgKiB2YXIoLS1SZWFkUmVjZWlwdEdyb3VwX0V2ZW50QnViYmxlVGlsZS1zcGFjaW5nLWVuZCkpO1xuXG4gICAgICAgICAgICAgICAgLyogKEV2ZW50VGlsZUxpbmUubGluZS1oZWlnaHQgLSBSZWFkUmVjZWlwdEdyb3VwLmhlaWdodCkgLyAyICovXG4gICAgICAgICAgICAgICAgLyogdGhpcyBjZW50ZXJzIHRoZSBSZWFkUmVjZWlwdEdyb3VwIGlmIHdl4oCZdmUgZ290IGEgc2luZ2xlIGxpbmUgKi9cbiAgICAgICAgICAgICAgICBpbnNldC1ibG9jay1lbmQ6IGNhbGMoKCRmb250LTE4cHggLSAyNHB4KSAvIDIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5teF9FdmVudFRpbGVCdWJibGUge1xuICAgICAgICAgICAgLyogVGltZXN0YW1wcyBhcmUgaW5zaWRlIHRoZSB0aWxlLCBzbyB0aGUgd2lkdGggY2FuIGJlIGxlc3MgY29uc3RyYWluZWQgKi9cbiAgICAgICAgICAgIG1heC13aWR0aDogNjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0V2ZW50VGlsZV9jb250aW51YXRpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgICAgICB9XG4gICAgICAgICYubXhfRXZlbnRUaWxlX2xhc3RJblNlY3Rpb24ge1xuICAgICAgICAgICAgLyogT3RoZXIgaGFsZiBvZiB0aGUgZ3V0dGVyIGlzIHByb3ZpZGVkIGJ5IG1hcmdpbi10b3Agb24gdGhlIGZpcnN0XG4gICAgICAgICAgICB0aWxlIG9mIHRoZSBzZWN0aW9uICovXG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiBjYWxjKHZhcigtLWd1dHRlclNpemUpIC8gMik7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9HZW5lcmljRXZlbnRMaXN0U3VtbWFyeSB7XG4gICAgJltkYXRhLWxheW91dD1cImlyY1wiXSxcbiAgICAmW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUgLm14X1JlZGFjdGVkQm9keSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTsgLyogcmVtb3ZlIHNwYWNpbmcgYmV0d2VlbiBsaW5lcyAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkYXRhLWxheW91dD1cImlyY1wiXSB7XG4gICAgICAgIC8qIEFwcGx5IG9ubHkgY29sbGFwc2VkIGV2ZW50cyBibG9jayAqL1xuICAgICAgICA+IC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAvKiBhZGQgLS1yaWdodC1wYWRkaW5nIHZhbHVlIG9mIE1lc3NhZ2VUaW1lc3RhbXAgYW5kIGF2YXRhciBvbmx5ICovXG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVjbGFyYXRpb24tY29sb24tc3BhY2UtYWZ0ZXIgKi9cbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogY2FsYyhcbiAgICAgICAgICAgICAgICB2YXIoLS1uYW1lLXdpZHRoKSArIHZhcigtLWljb24td2lkdGgpICsgdmFyKC0tTWVzc2FnZVRpbWVzdGFtcC13aWR0aCkgKyAyICogdmFyKC0tcmlnaHQtcGFkZGluZylcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkbGVmdC1ndXR0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnlfdW5zdHlsZWRMaXN0ID4gLm14X0V2ZW50VGlsZV9pbmZvIC5teF9FdmVudFRpbGVfYXZhdGFyIH4gLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgIC8qIG92ZXJyaWRlIHBhZGRpbmctbGVmdCAkbGVmdC1ndXR0ZXIgKi9cbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiBjYWxjKHZhcigtLUV2ZW50VGlsZV9ncm91cF9saW5lLXNwYWNpbmctaW5saW5lLXN0YXJ0KSArIDIwcHgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlX2NvbnRlbnQge1xuICAgIC8qXG4gICAgYWxsIHRoZSBvdmVyZmxvdy15OiBoaWRkZW47IGFyZSB0byB0cmFwIFphbGdvcyAtXG4gICAgYnV0IHRoZXkgaW50cm9kdWNlIGFuIGltcGxpY2l0IG92ZXJmbG93LXg6IGF1dG8uXG4gICAgc28gbWFrZSB0aGF0IGV4cGxpY2l0bHkgaGlkZGVuIHRvbyB0byBhdm9pZCByYW5kb21cbiAgICBob3Jpem9udGFsIHNjcm9sbGJhcnMgb2NjYXNpb25hbGx5IGFwcGVhcmluZywgbGlrZSBpblxuICAgIGh0dHBzOi8vZ2l0aHViLmNvbS92ZWN0b3ItaW0vdmVjdG9yLXdlYi9pc3N1ZXMvMTE1NFxuICAgICovXG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLUV2ZW50VGlsZV9jb250ZW50LW1hcmdpbi1pbmxpbmUtZW5kKTtcblxuICAgIC5tYXJrZG93bi1ib2R5IHtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKSAhaW1wb3J0YW50O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogdmFyKC0tY3BkLWZvbnQtbGV0dGVyLXNwYWNpbmctYm9keS1tZCk7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7IC8qIGluaGVyaXQgdGhlIGNvbG91ciBmcm9tIHRoZSBkYXJrIG9yIGxpZ2h0IHRoZW1lIGJ5IGRlZmF1bHQgKGJ1dCBub3QgZm9yIGNvZGUgYmxvY2tzKSAqL1xuICAgICAgICBmbGV4OiAxO1xuXG4gICAgICAgIHByZSxcbiAgICAgICAgY29kZSB7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJG1vbm9zcGFjZS1mb250LWZhbWlseSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHN5c3RlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvZGU6bm90KHByZSAqKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5saW5lY29kZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGlubGluZWNvZGUtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgLyogVGhlIGhvcml6b250YWwgcGFkZGluZyBpcyBhZGRlZCBieSBnaXRodWItbWFya2Rvd24tY3NzIC5tYXJrZG93bi1ib2R5ICovXG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMC01eCkgMDtcbiAgICAgICAgICAgIC8qIEF2b2lkIGlubGluZSBjb2RlIGJsb2NrcyB0byBiZSBzdGlja2VkIHdoZW4gb24gbXVsdGlwbGUgbGluZXMgKi9cbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMnB4O1xuICAgICAgICAgICAgLyogQXZvaWQgdGhlIGJvcmRlciB0byBiZSBnbHVlZCB0byB0aGUgb3RoZXIgd29yZHMgKi9cbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29kZSB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IC8qIGRvbid0IGNvbGxhcHNlIHNwYWNlcyBpbiBpbmxpbmUgY29kZSBibG9ja3MgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIHByZSB7XG4gICAgICAgICAgICAvKiBoYXZlIHRvIHVzZSBvdmVybGF5IHJhdGhlciB0aGFuIGF1dG8gb3RoZXJ3aXNlIExpbnV4IGFuZCBXaW5kb3dzICovXG4gICAgICAgICAgICAvKiBDaHJvbWUgZ2V0cyB2ZXJ5IGNvbmZ1c2VkIGFib3V0IHZlcnRpY2FsIHNwYWNpbmc6ICovXG4gICAgICAgICAgICAvKiBodHRwczovL2dpdGh1Yi5jb20vdmVjdG9yLWltL3ZlY3Rvci13ZWIvaXNzdWVzLzc1NCAqL1xuICAgICAgICAgICAgb3ZlcmZsb3cteDogb3ZlcmxheTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IHZpc2libGU7XG5cbiAgICAgICAgICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG5cbiAgICAgICAgICAgIGNvZGUge1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7IC8qIHdlIHdhbnQgY29kZSBibG9ja3MgdG8gYmUgc2Nyb2xsYWJsZSBhbmQgbm90IHdyYXAgKi9cblxuICAgICAgICAgICAgICAgID4gKiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBoMSxcbiAgICAgICAgaDIsXG4gICAgICAgIGgzLFxuICAgICAgICBoNCxcbiAgICAgICAgaDUsXG4gICAgICAgIGg2IHtcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIE1ha2UgaDEgYW5kIGgyIHRoZSBzYW1lIHNpemUgYXMgaDMuICovXG4gICAgICAgIGgxLFxuICAgICAgICBoMiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNWVtO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZSAhaW1wb3J0YW50OyAvKiBvdmVycmlkZSBHRk0gKi9cbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQtYWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgYmxvY2txdW90ZSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMnB4IHNvbGlkICRibG9ja3F1b3RlLWJhci1jb2xvcjtcbiAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAvKlxuICAgICAgICAvLyBhY3R1YWxseSwgcmVtb3ZpbmcgdGhlIEl0YWxpYyBUVEYgcHJvdmlkZXNcbiAgICAgICAgLy8gYmV0dGVyIHJlc3VsdHMgc2VlbWluZ2x5XG5cbiAgICAgICAgLy8gY29tcGVuc2F0ZSBmb3IgTnVuaXRvIGl0YWxpY3MgYmVpbmcgdGVycmlibGVcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZS9mb250cy9pc3N1ZXMvMTcyNlxuICAgICAgICBlbSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKC0xNGRlZyk7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICAgICAgKi9cblxuICAgICAgICAvKiBTdXBwb3J0IGFyYml0cmFyaWx5IGxhcmdlIG1hcmtlciBudW1iZXJzICovXG4gICAgICAgIG9sIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbiAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwLjVlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIE92ZXJyaWRlIG5lc3RlZCBsaXN0cyBiZWluZyBsb3dlci1yb21hbiAqL1xuICAgICAgICBvbCBvbCxcbiAgICAgICAgdWwgb2wge1xuICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiByZXZlcnQ7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBNYWtlIGxpc3QgdHlwZSBkaXNjIHRvIG1hdGNoIHJpY2ggdGV4dCBlZGl0b3IgKi9cbiAgICAgICAgdWwge1xuICAgICAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogb3ZlcnJpZGUgc3R5bGVzIGZyb20gdGhlIGJhc2UgbWFya2Rvd24gQ1NTIHRoYXQgcHV0IG1hcmtkb3duIGNvbnRlbnQgb24gaXRzIG93biBsaW5lLFxuICAgICAgICAgICBhcyB0aGlzIGlzbid0IHdoYXQgd2Ugd2FudCBmb3IgcmljaHRleHQgZW1vdGUgY29udGVudC5cbiAgICAgICAgICovXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogU3BvaWxlciBzdHVmZiAqL1xuLm14X0V2ZW50VGlsZV9zcG9pbGVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAvKiBjbGVhciBidXR0b24gc3R5bGVzICovXG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgdGV4dC1hbGlnbjogaW5oZXJpdDtcblxuICAgIC5teF9FdmVudFRpbGVfc3BvaWxlcl9yZWFzb24ge1xuICAgICAgICBjb2xvcjogJGV2ZW50LXRpbWVzdGFtcC1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xMXB4O1xuICAgIH1cblxuICAgIC5teF9FdmVudFRpbGVfc3BvaWxlcl9jb250ZW50IHtcbiAgICAgICAgZmlsdGVyOiBibHVyKDVweCkgc2F0dXJhdGUoMC4xKSBzZXBpYSgxKTtcbiAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMC41cztcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgfVxuXG4gICAgJi52aXNpYmxlID4gLm14X0V2ZW50VGlsZV9zcG9pbGVyX2NvbnRlbnQge1xuICAgICAgICBmaWx0ZXI6IG5vbmU7XG4gICAgICAgIHVzZXItc2VsZWN0OiBhdXRvO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICB9XG59XG5cbi5teF9FdmVudFRpbGVfYmlnRW1vamkge1xuICAgIGZvbnQtc2l6ZTogNDhweDtcbiAgICBsaW5lLWhlaWdodDogNTdweDtcblxuICAgIC5teF9FbW9qaSB7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZV9lMmVJY29uIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlX2JvZHkge1xuICAgIGE6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG5cbiAgICBwcmUge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblxuICAgICAgICAubXhfRXZlbnRUaWxlOmhvdmVyICYsXG4gICAgICAgIC5teF9FdmVudFRpbGU6Zm9jdXMtdmlzaWJsZTpmb2N1cy13aXRoaW4gJiB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkdGVydGlhcnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qIHNlbGVjdG9yIHdyb25nbHkgYXBwbGllcyB0byBwaWxsIGF2YXRhcnMgYnV0IHRob3NlIGhhdmUgZXhwbGljaXQgd2lkdGgvaGVpZ2h0IHBhc3NlZCBhdCBhIGhpZ2hlciBzcGVjaWZpY2l0eSAqL1xuICAgICYubWFya2Rvd24tYm9keSBpbWcge1xuICAgICAgICBvYmplY3QtZml0OiBjb250YWluO1xuICAgICAgICBvYmplY3QtcG9zaXRpb246IGxlZnQgdG9wO1xuXG4gICAgICAgIC8qIE92ZXJyaWRlIHRoZSBkZWZhdWx0IGNvbG9ycyBvZiB0aGUgJ2dpdGh1Yi1tYXJrZG93bi1jc3MnIGxpYnJhcnlcbiAgICAgICAgKCNmZmYgZm9yIGxpZ2h0IHRoZW1lLCAjMDAwIGZvciBkYXJrIHRoZW1lKSB0byBtYXRjaCB0aGUgaW5oZXJpdGVkIHRoZW1lICovXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX2NsYW1wICYge1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XG4gICAgICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX3ByZV9jb250YWluZXIge1xuICAgICAgICAvKiBGb3IgY29ycmVjdCBwb3NpdGlvbmluZyBvZiBfY29weUJ1dHRvbiAoU2VlIFRleHR1YWxCb2R5KSAqL1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgLyogRW1vamkgYXJlIGVubGFyZ2VkIGluIHByb3NlLCBidXQgYSBjb2RlIGJsb2NrJ3MgbGluZSBudW1iZXJzIGFyZSBvbmUgZml4ZWQtaGVpZ2h0IGJsb2NrXG4gICAgICAgICAgIHBlciBsaW5lIGFuZCBjYW5ub3QgZm9sbG93IGEgbGluZSB0aGF0IGFuIGVubGFyZ2VkIGVtb2ppIGhhcyBtYWRlIHRhbGxlci4gKi9cbiAgICAgICAgLm14X0Vtb2ppIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMtd2l0aGluLFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfYnV0dG9uIHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9jb2xsYXBzZWRDb2RlQmxvY2sge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMzB2aDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBJbnNlcnRlZCBhZGphY2VudCB0byA8cHJlPiBibG9ja3MsIChTZWUgVGV4dHVhbEJvZHkpICovXG4gICAgICAgIC5teF9FdmVudFRpbGVfYnV0dG9uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIHJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICAgICAgICAgICAmLm14X0V2ZW50VGlsZV9idXR0b25Cb3R0b20ge1xuICAgICAgICAgICAgICAgIHRvcDogMzNweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRtZXNzYWdlLWFjdGlvbi1iYXItZmctY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9FdmVudFRpbGVfbGluZU51bWJlcnMge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMCAwLjVlbSAwIC0xLjVlbTtcbiAgICBjb2xvcjogZ3JheTtcblxuICAgICYgc3BhbiB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07XG4gICAgfVxufVxuXG4ubXhfRXZlbnRUaWxlX2J1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLm14X0V2ZW50VGlsZV90aWxlRXJyb3Ige1xuICAgIGNvbG9yOiByZWQ7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgLyogUmVtb3ZlIHNvbWUgb2YgdGhlIGRlZmF1bHQgdGlsZSBwYWRkaW5nIHNvIHRoYXQgdGhlIGVycm9yIGlzIGNlbnRlcmVkICovXG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuXG4gICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpIHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICB9XG59XG5cbi5teF9FdmVudFRpbGU6aG92ZXIgLm14X1RocmVhZEFjdGlvbkJhcixcbi5teF9FdmVudFRpbGUubXhfRXZlbnRUaWxlX2FjdGlvbkJhckZvY3VzZWQgLm14X1RocmVhZEFjdGlvbkJhcixcbltkYXRhLXdoYXRpbnB1dD1cImtleWJvYXJkXCJdIC5teF9FdmVudFRpbGU6Zm9jdXMtd2l0aGluIC5teF9UaHJlYWRBY3Rpb25CYXIsXG4ubXhfRXZlbnRUaWxlOmZvY3VzLXZpc2libGU6Zm9jdXMtd2l0aGluIC5teF9UaHJlYWRBY3Rpb25CYXIge1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG5cbi5teF9FdmVudFRpbGVbZGF0YS1zaGFwZT1cIlRocmVhZHNMaXN0XCJdLFxuLm14X0V2ZW50VGlsZVtkYXRhLXNoYXBlPVwiTm90aWZpY2F0aW9uXCJdIHtcbiAgICAtLXRvcE9mZnNldDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAtLWxlZnRPZmZzZXQ6IDQ4cHg7XG4gICAgJGJvcmRlclJhZGl1czogOHB4O1xuICAgICRwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICRockhlaWdodDogMXB4O1xuICAgICRub3RpZmljYXRpb24tZG90LXNpemU6IDhweDsgLyogbm90aWZpY2F0aW9uIGRvdCBuZXh0IHRvIHRoZSB0aW1lc3RhbXAgKi9cblxuICAgIG1hcmdpbjogY2FsYyh2YXIoLS10b3BPZmZzZXQpICsgJGhySGVpZ2h0KSAwIHZhcigtLXRvcE9mZnNldCk7IC8qIGluY2x1ZGUgdGhlIGhlaWdodCBvZiBob3Jpem9udGFsIGxpbmUgKi9cbiAgICBwYWRkaW5nOiAkcGFkZGluZztcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyUmFkaXVzO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWZsb3c6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICY6OmFmdGVyLFxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICAgICRpbnNldC1ibG9jay1zdGFydDogYXV0bztcbiAgICAgICAgJGluc2V0LWlubGluZS1lbmQ6IGNhbGMoLTEgKiB2YXIoLS1jcGQtc3BhY2UtMngpKTtcbiAgICAgICAgJGluc2V0LWJsb2NrLWVuZDogY2FsYygtMSAqIHZhcigtLXRvcE9mZnNldCkgLSAkaHJIZWlnaHQpOyAvKiBleGNsdWRlIHRoZSBoZWlnaHQgb2YgaG9yaXpvbnRhbCBsaW5lICovXG4gICAgICAgICRpbnNldC1pbmxpbmUtc3RhcnQ6IGNhbGModmFyKC0tbGVmdE9mZnNldCkgKyAkcGFkZGluZyk7XG4gICAgICAgIGluc2V0OiAkaW5zZXQtYmxvY2stc3RhcnQgJGluc2V0LWlubGluZS1lbmQgJGluc2V0LWJsb2NrLWVuZCAkaW5zZXQtaW5saW5lLXN0YXJ0O1xuXG4gICAgICAgIGhlaWdodDogJGhySGVpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgLyogZGlzYWJsZSB0aGUgbWVzc2FnZSBhY3Rpb24gYmFyIG9uIGhvdmVyICovXG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyAvKiBlbnN1cmVzIHRoZSB0aXRsZSBmb3IgdGhlIHNlbmRlciBuYW1lIGNhbiBiZSBjb3JyZWN0bHkgZGlzcGxheWVkICovXG4gICAgfVxuXG4gICAgJltkYXRhLW5vdGlmaWNhdGlvbj1cInRvdGFsXCJdOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcm9vbS1pY29uLXVucmVhZC1jb2xvcjtcbiAgICB9XG5cbiAgICAmW2RhdGEtbm90aWZpY2F0aW9uPVwiaGlnaGxpZ2h0XCJdOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWxlcnQ7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogdW5zZXQ7XG4gICAgICAgIH1cblxuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgaW5zZXQ6ICRwYWRkaW5nIGF1dG8gYXV0byAkcGFkZGluZztcbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX2RldGFpbHMge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4OiAxO1xuXG4gICAgICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZV9kaXNwbGF5TmFtZSxcbiAgICAgICAgLm14X0Rpc2FtYmlndWF0ZWRQcm9maWxlX214aWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGVfZGlzcGxheU5hbWUge1xuICAgICAgICAgICAgZmxleDogbm9uZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZV9teGlkIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1sZWZ0T2Zmc2V0KTtcbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICAgICAgd2lkdGg6IHVuc2V0OyAvKiBDYW5jZWwgdGhlIGRlZmF1bHQgd2lkdGggKi9cbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogZW5zdXJlIGNvcnJlY3Qgb3ZlcmZsb3cgYmVoYXZpb3IgKi9cbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsgLyogdG8gZW5zdXJlIGl0J3MgZW5kLWFsaWduZWQgZXZlbiBpZiBpdCdzIHRoZSBvbmx5IGVsZW1lbnQgb2YgaXRzIHBhcmVudCAqL1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFuZWxzO1xuICAgIH1cblxuICAgIC8qIFRocmVhZHNMaXN0IGhhcyBhbHdheXMgZ3JvdXAgbGF5b3V0ICovXG4gICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdOmhvdmVyIHtcbiAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lOyAvKiBkb24ndCBzaG93IHRoZSB2ZXJpZmljYXRpb24gbGVmdCBzdHJva2UgaW4gdGhlIHRocmVhZCBsaXN0ICovXG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9FdmVudFRpbGVbZGF0YS1zaGFwZT1cIlRocmVhZHNMaXN0XCJdIHtcbiAgICAubXhfVGhyZWFkUGFuZWxfcmVwbGllcyB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcblxuICAgICAgICA+IHN2ZyB7XG4gICAgICAgICAgICBAbWl4aW4gVGhyZWFkU3VtbWFyeUljb247XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVGhyZWFkUGFuZWxfcmVwbGllc19hbW91bnQge1xuICAgICAgICAgICAgQG1peGluIFRocmVhZFJlcGxpZXNBbW91bnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9UaHJlYWRTdW1tYXJ5X2ljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICA+IHN2ZyB7XG4gICAgICAgIEBtaXhpbiBUaHJlYWRTdW1tYXJ5SWNvbjtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgfVxuXG4gICAgYSYge1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIH1cbn1cblxuLyogRm9yIHN0eWxlIHJ1bGVzIG9mIFRocmVhZFZpZXcsIHNlZSBfVGhyZWFkUGFuZWwucGNzcyAqL1xuLm14X1RocmVhZFZpZXcge1xuICAgIC0tVGhyZWFkVmlld19ncm91cF9zcGFjaW5nLXN0YXJ0OiA1NnB4OyAvKiA1NnB4OiA2NHB4IC0gOHB4IChwYWRkaW5nKSAqL1xuICAgIC0tVGhyZWFkVmlld19ncm91cF9zcGFjaW5nLWVuZDogOHB4OyAvKiBzYW1lIGFzIHBhZGRpbmcgKi9cblxuICAgIC5teF9FdmVudFRpbGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgIC5teF9FdmVudFRpbGVfcm9vbU5hbWUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGhhbmRsaW5nIGZvciBoaWRkZW4gZXZlbnRzIChlLmcgcmVhY3Rpb25zKSBpbiB0aGUgdGhyZWFkIHZpZXcgKi9cbiAgICAgICAgJi5teF9FdmVudFRpbGVfaW5mbyB7XG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIC8qIEFsaWduIHdpdGggaGlkZGVuIGV2ZW50IGNvbnRlbnQgKi9cbiAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLm14X0V2ZW50VGlsZV9zZWxlY3RlZCAubXhfRXZlbnRUaWxlX2xpbmUsXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgICRsaW5lLWhlaWdodDogJGZvbnQtMTJweDtcblxuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG5cbiAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX2NvbnRlbnQsXG4gICAgICAgICAgICAgICAgLm14X1JlZGFjdGVkQm9keSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRsaW5lLWhlaWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZbZGF0YS1sYXlvdXQ9XCJpcmNcIl0sXG4gICAgICAgICAgICAmW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuXG4gICAgICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgICAgICAgICAvKiAxNHB4OiBhdmF0YXIgd2lkdGgsIDRweDogYWxpZ24gd2l0aCB0ZXh0ICovXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGModmFyKC0tTWVzc2FnZVRpbWVzdGFtcC13aWR0aCkgKyAxNHB4IC0gNHB4KTtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogOTsgLyogcG9zaXRpb24gYWJvdmUgdGhlIGhvdmVyIHN0eWxpbmcgKi9cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMnB4OyAvKiBBbGlnbiB3aXRoIGF2YXRhciAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYubXhfRXZlbnRUaWxlX3NlbGVjdGVkIC5teF9FdmVudFRpbGVfbGluZSxcbiAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX2NvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgIC5teF9SZWRhY3RlZEJvZHkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLyogMTRweDogYXZhdGFyIHdpZHRoLCA2cHg6IDIwcHggLSAxNHB4ICovXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBjYWxjKDE0cHggKyA2cHgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICAgICAgICAgIGluc2V0LWlubGluZS1zdGFydDogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLm14X0V2ZW50VGlsZV9zZWxlY3RlZCAubXhfRXZlbnRUaWxlX2xpbmUsXG4gICAgICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lIHtcbiAgICAgICAgICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9jb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAubXhfUmVkYWN0ZWRCb2R5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IGNhbGModmFyKC0tVGhyZWFkVmlld19ncm91cF9zcGFjaW5nLXN0YXJ0KSArIDE0cHggKyA2cHgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLWxheW91dD1cImlyY1wiXSxcbiAgICAgICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgICAgIHBhZGRpbmctYmxvY2stc3RhcnQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZSxcbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfZm9vdGVyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tVGhyZWFkVmlld19ncm91cF9zcGFjaW5nLWVuZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ibG9jazogdmFyKC0tQmFzZUNhcmRfRXZlbnRUaWxlX2xpbmUtcGFkZGluZy1ibG9jayk7XG5cbiAgICAgICAgICAgICAgICAvKiBBZGQgcGFkZGluZyB0byBhbGlnbiBtZXNzYWdlIHRleHQgd2l0aCBzdW1tYXJ5IHRleHQgKi9cbiAgICAgICAgICAgICAgICAvKiBTZWU6IC5teF9FdmVudFRpbGVbZGF0YS1sYXlvdXQ9XCJncm91cFwiXSAubXhfRXZlbnRUaWxlX2xpbmUgKi9cbiAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tVGhyZWFkVmlld19ncm91cF9zcGFjaW5nLXN0YXJ0KTtcblxuICAgICAgICAgICAgICAgIC5teF9FdmVudFRpbGVfY29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgICYubXhfRWRpdE1lc3NhZ2VDb21wb3NlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogMDsgLyogYWxpZ24gc3RhcnQgb2YgZmlyc3QgbGV0dGVyIHdpdGggdGhhdCBvZiB0aGUgZXZlbnQgYm9keSAqL1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2Zvb3RlciB7XG4gICAgICAgICAgICAgICAgLyogQWxpZ24gd2l0aCBtZXNzYWdlIHRleHQgYW5kIHN1bW1hcnkgdGV4dCAqL1xuICAgICAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IHZhcigtLVRocmVhZFZpZXdfZ3JvdXBfc3BhY2luZy1zdGFydCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubXhfRXZlbnRUaWxlX2NvbnRpbnVhdGlvbiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ibG9jay1zdGFydDogMDsgLyogQ2FuY2VsIHBhZGRpbmctYmxvY2stc3RhcnQgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1sYXlvdXQ9XCJncm91cFwiXSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9zZW5kZXJEZXRhaWxzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpOyAvKiBnYXAgYmV0d2VlbiB0aGUgYXZhdGFyIGFuZCB0aGUgc2VuZGVyIElEICovXG4gICAgICAgICAgICAgICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiB1bnNldDtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgICAgIC5teF9EaXNhbWJpZ3VhdGVkUHJvZmlsZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiA4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOyAvKiBmb3IgSVJDIGxheW91dCAqL1xuICAgICAgICAgICAgICAgIHRvcDogMnB4OyAvKiBBbGlnbiB3aXRoIG14X0V2ZW50VGlsZV9jb250ZW50ICovXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmU6IHZhcigtLUJhc2VDYXJkX0V2ZW50VGlsZS1zcGFjaW5nLWlubGluZSk7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgaW5zZXQtaW5saW5lOiBjYWxjKC0xICogdmFyKC0tQmFzZUNhcmRfRXZlbnRUaWxlLXNwYWNpbmctaW5saW5lKSk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogYXV0bzsgLyogZW5hYmxlIGJhY2tncm91bmQgY29sb3Igb24gaG92ZXIgKi9cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1JlYWN0aW9uc1JvdyB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBkaXNwbGF5IG9uIGhvdmVyICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZS5teF9FdmVudFRpbGVfbWVkaWFMaW5lIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiAwO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiAwO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogdmFyKC0tRXZlbnRCdWJibGVUaWxlX2xpbmUtbWF4LXdpZHRoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJltkYXRhLXNlbGY9XCJ0cnVlXCJdIHtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmUubXhfRXZlbnRUaWxlX21lZGlhTGluZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCB2YXIoLS1FdmVudFRpbGVfYnViYmxlX2xpbmUtbWFyZ2luLWlubGluZS1lbmQpIDAgMDsgLyogYWxpZ24gd2l0aCBub3JtYWwgbWVzc2FnZXMgKi9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfR2VuZXJpY0V2ZW50TGlzdFN1bW1hcnkge1xuICAgICAgICAmW2RhdGEtbGF5b3V0PVwiaXJjXCJdLFxuICAgICAgICAmW2RhdGEtbGF5b3V0PVwiZ3JvdXBcIl0ge1xuICAgICAgICAgICAgPiAubXhfRXZlbnRUaWxlX2xpbmUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctaW5saW5lLXN0YXJ0OiB2YXIoLS1UaHJlYWRWaWV3X2dyb3VwX3NwYWNpbmctc3RhcnQpOyAvKiBhbGlnbiBzdW1tYXJ5IHRleHQgd2l0aCBtZXNzYWdlIHRleHQgKi9cbiAgICAgICAgICAgICAgICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLVRocmVhZFZpZXdfZ3JvdXBfc3BhY2luZy1lbmQpOyAvKiBhbGlnbiBzdW1tYXJ5IHRleHQgd2l0aCBtZXNzYWdlIHRleHQgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogQ2FzY2FkaW5nIC0gY29tcGFjdCBtb2Rlcm4gbGF5b3V0IG9uIHRoZSBtYWluIHRpbWVsaW5lIGFuZCB0aGUgcmlnaHQgcGFuZWwgKi9cbi5teF9NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXQge1xuICAgIC5teF9FdmVudFRpbGVbZGF0YS1sYXlvdXQ9XCJncm91cFwiXSB7XG4gICAgICAgIC0tTWF0cml4Q2hhdF91c2VDb21wYWN0TGF5b3V0X2dyb3VwLXBhZGRpbmctdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAtLU1hdHJpeENoYXRfdXNlQ29tcGFjdExheW91dC10b3AtYXZhdGFyOiAycHg7XG4gICAgICAgIC0tTWF0cml4Q2hhdF91c2VDb21wYWN0TGF5b3V0X2xpbmUtc3BhY2luZy1ibG9jazogMHB4O1xuXG4gICAgICAgIHBhZGRpbmctdG9wOiB2YXIoLS1NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXRfZ3JvdXAtcGFkZGluZy10b3ApO1xuXG4gICAgICAgIC5teF9FdmVudFRpbGVfbGluZSxcbiAgICAgICAgLm14X0V2ZW50VGlsZV9yZXBseSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJsb2NrOiB2YXIoLS1NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXRfbGluZS1zcGFjaW5nLWJsb2NrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9SZXBseUNoYWluIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0V2ZW50VGlsZV9pbmZvIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwOyAvKiBzYW1lIGFzIHRoZSBwYWRkaW5nIGZvciBub24tY29tcGFjdCAubXhfRXZlbnRUaWxlLm14X0V2ZW50VGlsZV9pbmZvICovXG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEzcHg7XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfZTJlSWNvbixcbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfYXZhdGFyIHtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJsb2NrOiB2YXIoLS1NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXRfbGluZS1zcGFjaW5nLWJsb2NrKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lLFxuICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9yZXBseSB7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTIwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0V2ZW50VGlsZV9lbW90ZSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTsgLyogYWRkIGEgYml0IG1vcmUgc3BhY2UgZm9yIGVtb3RlcyBzbyB0aGF0IGF2YXRhcnMgZG9uJ3QgY29sbGlkZSAqL1xuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICAgICAgdG9wOiB2YXIoLS1NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXQtdG9wLWF2YXRhcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZSxcbiAgICAgICAgICAgIC5teF9FdmVudFRpbGVfcmVwbHkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxcHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubXhfRXZlbnRUaWxlX2NvbnRpbnVhdGlvbiB7XG4gICAgICAgICAgICAgICAgLm14X0V2ZW50VGlsZV9saW5lLFxuICAgICAgICAgICAgICAgIC5teF9FdmVudFRpbGVfcmVwbHkge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tTWF0cml4Q2hhdF91c2VDb21wYWN0TGF5b3V0X2xpbmUtc3BhY2luZy1ibG9jayk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyogQ2FzY2FkaW5nIC0gYXBwbHkgemVybyBwYWRkaW5nIHRvIGV2ZXJ5IGVsZW1lbnQgaW5jbHVkaW5nIG14X0V2ZW50VGlsZV9lbW90ZSAqL1xuICAgICAgICAmLm14X0V2ZW50VGlsZV9jb250aW51YXRpb24ge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IHZhcigtLU1hdHJpeENoYXRfdXNlQ29tcGFjdExheW91dF9saW5lLXNwYWNpbmctYmxvY2spO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0V2ZW50VGlsZV9hdmF0YXIge1xuICAgICAgICAgICAgdG9wOiB2YXIoLS1NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXQtdG9wLWF2YXRhcik7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX2UyZUljb24ge1xuICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfRXZlbnRUaWxlX21zZ09wdGlvbiB7XG4gICAgICAgICAgICAubXhfUmVhZFJlY2VpcHRHcm91cCB7XG4gICAgICAgICAgICAgICAgLyogVGhpcyBhbGlnbnMgdGhlIGF2YXRhciB3aXRoIHRoZSBsYXN0IGxpbmUgb2YgdGhlICovXG4gICAgICAgICAgICAgICAgLyogbWVzc2FnZS4gV2Ugd2FudCB0byBtb3ZlIGl0IG9uZSBsaW5lIHVwIC0gMnJlbSAqL1xuICAgICAgICAgICAgICAgIGluc2V0LWJsb2NrLXN0YXJ0OiAtMnJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfY29udGVudCAubWFya2Rvd24tYm9keSB7XG4gICAgICAgICAgICBwLFxuICAgICAgICAgICAgdWwsXG4gICAgICAgICAgICBvbCxcbiAgICAgICAgICAgIGRsLFxuICAgICAgICAgICAgYmxvY2txdW90ZSxcbiAgICAgICAgICAgIHByZSxcbiAgICAgICAgICAgIHRhYmxlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMXgpOyAvKiAxLzQgb2YgdGhlIG5vbi1jb21wYWN0IG1hcmdpbi1ib3R0b20gKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0V2ZW50VGlsZV9kZXRhaWxzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiBzdHJldGNoO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tbGVmdE9mZnNldCk7XG4gICAgLm14X0V2ZW50VGlsZV90cnVuY2F0ZWQge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG59XG5cbi5teF9FdmVudFRpbGVfZm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4vKiBNZWRpYSBxdWVyeSBmb3IgbW9iaWxlIFVJICovXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gICAgLm14X0V2ZW50VGlsZV9jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFJvYmluIFRvd25zZW5kIDxyb2JpbkByb2Jpbi50b3duPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRXZlbnRUaWxlQnViYmxlLm14X0hpc3RvcnlUaWxlIHtcbiAgICBtYXJnaW46IHZhcigtLUV2ZW50VGlsZUJ1YmJsZV9tYXJnaW4tYmxvY2spIGF1dG87XG5cbiAgICBzdmcge1xuICAgICAgICBjb2xvcjogJGhlYWRlci1wYW5lbC10ZXh0LXByaW1hcnktY29sb3I7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuOnJvb3Qge1xuICAgIC0taXJjLWxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xufVxuXG4ubXhfSVJDTGF5b3V0IHtcbiAgICAtLW5hbWUtd2lkdGg6IDgwcHg7IC8qIGNmLiBpcmNEaXNwbGF5TmFtZVdpZHRoIG9uIFNldHRpbmdzLnRzeCAqL1xuICAgIC0tZXZlbnQtdGlsZS1pcmMtbmFtZS13aWR0aDogdmFyKC0tbmFtZS13aWR0aCk7XG4gICAgLS1pY29uLXdpZHRoOiAxNHB4O1xuICAgIC0tbGluZS1oZWlnaHQ6IHZhcigtLWlyYy1saW5lLWhlaWdodCk7XG4gICAgLS1yaWdodC1wYWRkaW5nOiA1cHg7XG5cbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQpICFpbXBvcnRhbnQ7XG5cbiAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC5teF9OZXdSb29tSW50cm8ge1xuICAgICAgICA+IGgyIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiBpbml0aWFsOyAvKiBDYW5jZWwgdmFyKC0taXJjLWxpbmUtaGVpZ2h0KSAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1JlcGx5Q2hhaW4ge1xuICAgICAgICAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUge1xuICAgICAgICAgICAgd2lkdGg6IHVuc2V0O1xuICAgICAgICAgICAgb3JkZXI6IHVuc2V0O1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IHVuc2V0OyAvKiBVbnNldCBmbGV4LXNocmluayB0byBwcmV2ZW50IGxvbmcgZGlzcGxheSBuYW1lIGJsb3dvdXQgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9FdmVudFRpbGVfZW1vdGUge1xuICAgICAgICAgICAgPiAubXhfRXZlbnRUaWxlX2F2YXRhciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGluaXRpYWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgICAgICAgICB3aWR0aDogaW5pdGlhbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBhZGRpbmcgdGhlIGljb24gYmFjayBpbiB0aGUgZG9jdW1lbnQgZmxvd1xuICAgICAgICAgKiBpZiBpdCdzIG5vdCBwcmVzZW50LCB0aGVyZSdzIG5vIHVud2FudGVkIHdhc3RlZCBzcGFjZVxuICAgICAgICAgKi9cbiAgICAgICAgLm14X0V2ZW50VGlsZV9lMmVJY29uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIG9yZGVyOiAtMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Qcm9maWxlUmVzaXplciB7XG4gICAgICAgIC0tcmVzaXplci13aWR0aDogMTVweDtcbiAgICAgICAgLS1yZXNpemVyLWExMXk6IDNweDsgLyogTWFnaWMgbnVtYmVyLCB0byBiZSByZXBsYWNlZCB3aXRoIHNvbWV0aGluZyBtb3JlIHByb3BlciBmcm9tIHRoZSBwZXJzcGVjdGl2ZSBvZiBhMTF5ICovXG5cbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1yZXNpemVyLXdpZHRoKTtcbiAgICAgICAgY3Vyc29yOiBjb2wtcmVzaXplO1xuICAgICAgICB6LWluZGV4OiAxMDA7XG5cbiAgICAgICAgLyogQWRkIHdpZHRoIG9mIGV2ZXJ5IGVsZW1lbnQgcmVuZGVyZWQgYmVmb3JlIHRoZSByZXNpemVyIChpbmNsdWRpbmcgcGFkZGluZyBmb3IgdGhlIGF2YXRhciBhbmQgdGhlIGRpc3BsYXlcbiAgICAgICAgICAgbmFtZSksIHN1YnRyYWN0aW5nIHRoZSByZXNpemVyIHdpZHRoIGl0c2VsZiB0byBwcmV2ZW50IHRoZSByZXNpemVyIGZyb20gb3ZlcmxhcHBpbmcgdGhlIHRleHQgYW5kIG1vdmluZ1xuICAgICAgICAgICB0aGUgcmVzaXplciBhIGJpdCB0byB0aGUgbGVmdCB0byBtYWtlIGl0IGVhc2llciB0byBhdm9pZCBzZWxlY3RpbmcgdGhlIHJlc2l6ZXIgd2hlbiBoaWdobGlnaHRpbmcgdGV4dC5cbiAgICAgICAgICAgUGxlYXNlIG5vdGUgdGhhdCBNZXNzYWdlVGltZXN0YW1wIGRvZXMgbm90IGhhdmUgaW5saW5lIHBhZGRpbmcuICovXG4gICAgICAgIGluc2V0LWlubGluZS1zdGFydDogY2FsYyhcbiAgICAgICAgICAgIHZhcigtLVJvb21WaWV3X01lc3NhZ2VMaXN0LXBhZGRpbmcpICsgdmFyKC0tTWVzc2FnZVRpbWVzdGFtcC13aWR0aCkgKyB2YXIoLS1pY29uLXdpZHRoKSArXG4gICAgICAgICAgICAgICAgdmFyKC0tcmlnaHQtcGFkZGluZykgKyB2YXIoLS1uYW1lLXdpZHRoKSArIHZhcigtLXJpZ2h0LXBhZGRpbmcpIC0gdmFyKC0tcmVzaXplci13aWR0aCkgLVxuICAgICAgICAgICAgICAgIHZhcigtLXJlc2l6ZXItYTExeSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjUgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbnZpdGVkSWNvblZpZXcge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0p1bXBUb0JvdHRvbUJ1dHRvbiB7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgLyogMTIgYmVjYXVzZSBoZWlnaHQgaXMgNTAgYnV0IGJ1dHRvbiBpcyBvbmx5IDM4ID0gMTIrKDUwLTM4KSA9IDI0ICovXG4gICAgYm90dG9tOiAxMnB4O1xuICAgIHJpZ2h0OiAyNHB4O1xuICAgIHdpZHRoOiAzOHB4O1xuICAgIC8qIGdpdmUgaXQgYSBmaXhlZCBoZWlnaHQgc28gdGhlIGJhZGdlIGRvZXNuJ3QgbWFrZSAqL1xuICAgIC8qIGl0IHRhbGxlciBhbmQgcG9wIHVwd2FyZHMgd2hlbiB2aXNpYmxlICovXG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X0p1bXBUb0JvdHRvbUJ1dHRvbl9iYWRnZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE0cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIC8qIHRvIGJlIGFibGUgdG8gZ2V0IGl0IGNlbnRlcmVkICovXG4gICAgLyogd2l0aCB0ZXh0LWFsaWduIGluIHBhcmVudCAqL1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiAwIDRweDtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtb24tc29saWQtcHJpbWFyeSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tc2Vjb25kYXJ5KTtcbn1cblxuLm14X0p1bXBUb0JvdHRvbUJ1dHRvbl9oaWdobGlnaHQgLm14X0p1bXBUb0JvdHRvbUJ1dHRvbl9iYWRnZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tY3JpdGljYWwtcHJpbWFyeSk7XG59XG5cbi5teF9KdW1wVG9Cb3R0b21CdXR0b25fc2Nyb2xsRG93biB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMzhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBib3JkZXI6IDEuM3B4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1pY29uLXRlcnRpYXJ5KTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBzdmcge1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBwYWRkaW5nOiA3cHggOHB4IDdweCA2cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xpdmVDb250ZW50U3VtbWFyeSB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgIC5teF9MaXZlQ29udGVudFN1bW1hcnlfdGV4dCB7XG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYubXhfTGl2ZUNvbnRlbnRTdW1tYXJ5X3RleHRfYWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0xpdmVDb250ZW50U3VtbWFyeV9wYXJ0aWNpcGFudHMgc3ZnIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDJweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NZW1iZXJMaXN0SGVhZGVyVmlldyB7XG4gICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSBzb2xpZCB2YXIoLS1jcGQtY29sb3ItZ3JheS00MDApO1xuICAgIG1heC1oZWlnaHQ6IDExMnB4O1xuXG4gICAgLm14X01lbWJlckxpc3RIZWFkZXJWaWV3X2NvbnRhaW5lciB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5teF9NZW1iZXJMaXN0SGVhZGVyVmlld19pbnZpdGVfc21hbGwge1xuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgIH1cblxuICAgIC5teF9NZW1iZXJMaXN0SGVhZGVyVmlld19pbnZpdGVfbGFyZ2Uge1xuICAgICAgICB3aWR0aDogMjg4cHg7XG4gICAgICAgIGhlaWdodDogMzZweDtcbiAgICB9XG5cbiAgICAubXhfTWVtYmVyTGlzdEhlYWRlclZpZXdfbGFiZWwge1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtNngpIDAgdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tc2VtaWJvbGQpO1xuICAgIH1cblxuICAgIC5teF9NZW1iZXJMaXN0SGVhZGVyVmlld19zZWFyY2gge1xuICAgICAgICB3aWR0aDogMjQwcHg7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWVtYmVyTGlzdFZpZXcge1xuICAgIGZsZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG5cbiAgICAubXhfTWVtYmVyTGlzdFZpZXdfY29udGFpbmVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgIC5teF9NZW1iZXJMaXN0Vmlld19zZXBhcmF0b3Ige1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtcHJpbWFyeSk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWVtYmVyVGlsZVZpZXcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogNTZweDtcbiAgICBib3JkZXItYm90dG9tOiB2YXIoLS1jcGQtYm9yZGVyLXdpZHRoLTEpIHNvbGlkIHZhcigtLWNwZC1jb2xvci1ncmF5LTMwMCk7XG5cbiAgICAubXhfTWVtYmVyVGlsZVZpZXdfbGVmdCxcbiAgICAubXhfTWVtYmVyVGlsZVZpZXdfcmlnaHQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgfVxuXG4gICAgLm14X01lbWJlclRpbGVWaWV3X2xlZnQge1xuICAgICAgICBmbGV4LWJhc2lzOiAyMDlweDtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgfVxuXG4gICAgLm14X01lbWJlclRpbGVWaWV3X25hbWUge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLW1lZGl1bSk7XG4gICAgICAgIG1pbi13aWR0aDogMDtcblxuICAgICAgICAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUge1xuICAgICAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9NZW1iZXJUaWxlVmlld191c2VyTGFiZWwge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXJlZ3VsYXIpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgfVxuXG4gICAgLm14X01lbWJlclRpbGVWaWV3X2F2YXRhciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiAzMnB4O1xuICAgICAgICB3aWR0aDogMzJweDtcbiAgICB9XG5cbiAgICAubXhfTWVtYmVyVGlsZVZpZXdfcHJlc2VuY2Uge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAtMnB4O1xuICAgICAgICBib3R0b206IDJweDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTgtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfd3JhcHBlciB7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRwcmltYXJ5LWhhaXJsaW5lLWNvbG9yO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDQycHg7XG4gICAgcGFkZGluZy1yaWdodDogMTZweDtcbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9yZXBsYWNlZF93cmFwcGVyIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfcmVwbGFjZWRfdmFsaWduIHtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX3Jvb21SZXBsYWNlZF9pY29uIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luLXRvcDogNXB4O1xuICAgIHdpZHRoOiAzMXB4O1xuICAgIGhlaWdodDogMzFweDtcbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9yb29tUmVwbGFjZWRfaGVhZGVyIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbn1cblxuLm14X01lc3NhZ2VDb21wb3NlciB7XG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl9hdmF0YXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDI2cHg7XG5cbiAgICAgICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfZTJlSWNvbldyYXBwZXIge1xuICAgIGhlaWdodDogMTJweDsgLyogTWF0Y2ggdGhlIGhlaWdodCBvZiB0aGUgRTJFIGljb24gZm9yIGFsaWdubWVudCAqL1xuICAgIHdpZHRoOiAxMnB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAyMHB4O1xuICAgIHRvcDogMjJweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IC8qIENvdW50ZXJhY3QgdGhlIEUyRUljb24gY2xhc3MgKi9cbiAgICBtYXJnaW4tbGVmdDogM3B4OyAvKiBDb3VudGVyYWN0IHRoZSBFMkVJY29uIGNsYXNzICovXG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX2UyZUljb24ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX25vcGVybV9lcnJvciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBjb2xvcjogJGluZm8tcGxpbnRoLWZnLWNvbG9yO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9pbnB1dCB7XG4gICAgZmxleDogMTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtaW4taGVpZ2h0OiA2MHB4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIG1hcmdpbi1yaWdodDogNnB4O1xuXG4gICAgcHJlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHJ0ZS1jb2RlLWJnLWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgfVxuXG4gICAgdGV4dGFyZWEge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgICAgbWFyZ2luLXRvcDogNnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA2cHg7XG4gICAgICAgIGJvcmRlcjogMHB4O1xuICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICAgICAgbWF4LWhlaWdodDogMTIwcHg7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuXG4gICAgICAgIC8qIGhhY2sgZm9yIEZGIGFzIHZlcnRpY2FsIGFsaWdubWVudCBvZiBjdXN0b20gcGxhY2Vob2xkZXIgdGV4dCBpcyBicm9rZW4gKi9cbiAgICAgICAgJjo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgICAgICAgICAgY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfYnV0dG9uX2hpZ2hsaWdodCB7XG4gICAgQG1peGluIGNvbXBvc2VyQnV0dG9uSGlnaExpZ2h0O1xufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX2J1dHRvbiB7XG4gICAgQG1peGluIGNvbXBvc2VyQnV0dG9uIDUwJSwgdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSksIHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtcHJpbWFyeSk7XG4gICAgcGFkZGluZzogM3B4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMjBweDtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG5cbiAgICAmLm14X01lc3NhZ2VDb21wb3Nlcl9jbG9zZUJ1dHRvbk1lbnUge1xuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXByaW1hcnkpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXByaW1hcnkpO1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxufVxuLm14X01lc3NhZ2VDb21wb3Nlcl93eXNpd3lnIHtcbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX3dyYXBwZXIge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgICAgIG1hcmdpbi10b3A6IDZweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX3JvdyB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX2FjdGlvbnMge1xuICAgICAgICAvKiBIZWlnaHQgb2YgdGhlIGNvbXBvc2VyIGVkaXRvciAqL1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgfVxuXG4gICAgLm14X01lZGlhQm9keSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA0cHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gICAgfVxuXG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl9idXR0b24ge1xuICAgICAgICBAbWl4aW4gY29tcG9zZXJCdXR0b24gNXB4LCAkdGVydGlhcnktY29udGVudCwgJHBhbmVscztcblxuICAgICAgICAmLm14X01lc3NhZ2VDb21wb3Nlcl9jbG9zZUJ1dHRvbk1lbnUge1xuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRhY2NlbnQtMzAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlcl9idXR0b25NZW51IHtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgcGFkZGluZzogMXB4O1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICB9XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJfc2VuZE1lc3NhZ2Uge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLWFjY2VudC10ZXJ0aWFyeSk7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIHdpZHRoOiAxNnB4O1xuXG4gICAgc3ZnIHtcbiAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcblxuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tb24tc29saWQtcHJpbWFyeSk7XG4gICAgfVxufVxuXG4ubXhfTWF0cml4Q2hhdF91c2VDb21wYWN0TGF5b3V0IHtcbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX2lucHV0IHtcbiAgICAgICAgbWluLWhlaWdodDogNTBweDtcbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX25vcGVybV9lcnJvciB7XG4gICAgICAgIGhlaWdodDogNTBweDtcbiAgICB9XG59XG5cbi8qKlxuICogVW5zdGFibGUgY29tcGFjdCBtb2RlXG4gKi9cblxuLm14X01lc3NhZ2VDb21wb3Nlci5teF9NZXNzYWdlQ29tcG9zZXItLWNvbXBhY3Qge1xuICAgIG1hcmdpbi1yaWdodDogMDtcblxuICAgIC5teF9NZXNzYWdlQ29tcG9zZXJfd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwIDI1cHg7XG4gICAgfVxuXG4gICAgLm14X01lc3NhZ2VDb21wb3Nlcl9lMmVJY29uV3JhcHBlciB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxuXG4gICAgJjpub3QoLm14X01lc3NhZ2VDb21wb3Nlcl9lMmVTdGF0dXMpIHtcbiAgICAgICAgLm14X01lc3NhZ2VDb21wb3Nlcl93cmFwcGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfTWVzc2FnZUNvbXBvc2VyX2J1dHRvbjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cblxuICAgIC5teF9NZXNzYWdlQ29tcG9zZXJfZTJlSWNvbiB7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01lc3NhZ2VDb21wb3NlckZvcm1hdEJhciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB3aWR0aDogY2FsYygzMnB4ICogNik7XG4gICAgaGVpZ2h0OiAzMnB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogdmFyKC0tY3BkLWJvcmRlci13aWR0aC0xKSBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWRpc2FibGVkKTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAvKiBlcXVhbCB0byB6LWluZGV4IG9mIG14X1JlcGx5UHJldmlldyBhbmQgbXhfUm9vbVZpZXdfc3RhdHVzQXJlYSAoMTAwMCkgKi9cbiAgICAvKiBidXQgYXMgaXQgYXBwZWFycyBhZnRlciB0aGVtIGluIHRoZSBET00sIHdpbGwgYXBwZWFyIG9uIHRvcC4gKi9cbiAgICB6LWluZGV4OiAxMDAwO1xuXG4gICAgJi5teF9NZXNzYWdlQ29tcG9zZXJGb3JtYXRCYXJfc2hvd24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICA+ICoge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luOiAycHg7XG4gICAgfVxuXG4gICAgLm14X01lc3NhZ2VDb21wb3NlckZvcm1hdEJhcl9idXR0b24ge1xuICAgICAgICB3aWR0aDogMjhweDtcbiAgICAgICAgaGVpZ2h0OiAyOHB4O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tc2Vjb25kYXJ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgICAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9NZXNzYWdlQ29tcG9zZXJGb3JtYXRCYXJfYnV0dG9uVG9vbHRpcCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmb250LXNpemU6ICRmb250LTEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgbWluLXdpZHRoOiA1NHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9OZXdSb29tSW50cm8ge1xuICAgIG1hcmdpbjogNDBweCAwIDQ4cHggNjRweDtcblxuICAgIC5teF9NaW5pQXZhdGFyVXBsb2FkZXJfaGFzQXZhdGFyOm5vdCgubXhfTWluaUF2YXRhclVwbG9hZGVyX2J1c3kpOm5vdCg6aG92ZXIpIHtcbiAgICAgICAgLm14X01pbmlBdmF0YXJVcGxvYWRlcl9pbmRpY2F0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9OZXdSb29tSW50cm9fYnV0dG9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDI4cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZmxvdzogd3JhcDtcbiAgICAgICAgZ2FwOiAxNHB4IDEycHg7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uLWZnLWNvbG9yO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICA+IGgyIHtcbiAgICAgICAgbWFyZ2luOiB2YXIoLS1jcGQtc3BhY2UtNngpIDAgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy1tZC1zZW1pYm9sZCk7XG4gICAgfVxuXG4gICAgPiBwIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9PdmVyZmxvd1RpbGVWaWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfT3ZlcmZsb3dUaWxlVmlld190ZXh0IHtcbiAgICBmbGV4OiAxIDEgMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi5teF9PdmVyZmxvd1RpbGVWaWV3OmhvdmVyIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgLyogdG8ga2VlcCB0aGUgY2hldnJvbiBhbGlnbmVkICovXG5cbiAgICAubXhfT3ZlcmZsb3dUaWxlVmlld19jaGV2cm9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cbn1cblxuLm14X092ZXJmbG93VGlsZVZpZXdfY2hldnJvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogY2FsYyg1MCUgLSAxMnB4KTsgLyogY2VudGVyICovXG4gICAgcmlnaHQ6IDA7XG4gICAgd2lkdGg6IDI0cHg7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICAgIGNvbG9yOiAkaGVhZGVyLXBhbmVsLXRleHQtcHJpbWFyeS1jb2xvcjtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4ubXhfT3ZlcmZsb3dUaWxlVmlld19pY29uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDNweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xuICAgIHBhZGRpbmctdG9wOiA0cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNyBUcmF2aXMgUmFsc3RvblxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUGlubmVkRXZlbnRUaWxlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgIC5teF9QaW5uZWRFdmVudFRpbGVfd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICAgICAgLyogUmVtb3ZlIGF2YXRhciB3aWR0aCBhbmQgc3BhY2UgYmV0d2VlbiB0aGUgYXZhdGFyIGFuZCB0aGUgd3JhcHBlciAqL1xuICAgICAgICAvKiBXZSBuZWVkIGl0IHRvIG1ha2UgdGhlIGxvY2F0aW9uIGZpdCAqL1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tY3BkLXNwYWNlLTR4KSAtIDMycHgpO1xuICAgICAgICAvKiBQcmV2ZW50IGEgbG9uZyBzZW5kZXIgbmFtZSB0byBvdmVyZmxvdyB0aGUgdGlsZSAqL1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIC5teF9QaW5uZWRFdmVudFRpbGVfdG9wIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAubXhfUGlubmVkRXZlbnRUaWxlX3NlbmRlciB7XG4gICAgICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1Bpbm5lZEV2ZW50VGlsZV90aHJlYWQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICAgICAgZmlsbDogdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKiBDb3B5cmlnaHQgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfUGlubmVkTWVzc2FnZUJhbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgLyogNjRweCA9IDYzcHggKyAxcHggZnJvbSB0aGUgYm90dG9tIGJvcmRlciAqL1xuICAgIGhlaWdodDogNjNweDtcbiAgICBwYWRkaW5nOiAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItZ3JheS00MDApO1xuXG4gICAgLyogRnJvbSBmaWdtYSAqL1xuICAgIGJveC1zaGFkb3c6IDAgdmFyKC0tY3BkLXNwYWNlLTJ4KSB2YXIoLS1jcGQtc3BhY2UtNngpIGNhbGModmFyKC0tY3BkLXNwYWNlLTJ4KSAqIC0xKSByZ2IoMjcsIDI5LCAzNCwgMC4xKTtcblxuICAgIC5teF9QaW5uZWRNZXNzYWdlQmFubmVyX21haW4ge1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlOlxuICAgICAgICAgICAgICAgIFwiaW5kaWNhdG9ycyBwaW5JY29uIHRpdGxlXCIgYXV0b1xuICAgICAgICAgICAgICAgIFwiaW5kaWNhdG9ycyBwaW5JY29uIG1lc3NhZ2VcIiBhdXRvO1xuICAgICAgICAgICAgY29sdW1uLWdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9QaW5uZWRNZXNzYWdlQmFubmVyX0luZGljYXRvcnMge1xuICAgICAgICAgICAgZ3JpZC1hcmVhOiBpbmRpY2F0b3JzO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfSW5kaWNhdG9yIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogdmFyKC0tY3BkLXNwYWNlLTAtNXgpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1ncmF5LTYwMCk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9JbmRpY2F0b3ItLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tYWNjZW50LXByaW1hcnkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9JbmRpY2F0b3ItLWhpZGRlbiB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9QaW5JY29uIHtcbiAgICAgICAgICAgIGdyaWQtYXJlYTogcGluSWNvbjtcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICAgIGZpbGw6IHZhcigtLWNwZC1jb2xvci1pY29uLXNlY29uZGFyeS1hbHBoYSk7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl90aXRsZSB7XG4gICAgICAgICAgICBncmlkLWFyZWE6IHRpdGxlO1xuICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1yZWd1bGFyKTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1hY3Rpb24tYWNjZW50KTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuXG4gICAgICAgICAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl90aXRsZV9jb3VudGVyIHtcbiAgICAgICAgICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXNlbWlib2xkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9QaW5uZWRNZXNzYWdlQmFubmVyX21lc3NhZ2Uge1xuICAgICAgICAgICAgZ3JpZC1hcmVhOiBtZXNzYWdlO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9yZWRhY3RlZE1lc3NhZ2Uge1xuICAgICAgICAgICAgZ3JpZC1hcmVhOiBtZXNzYWdlO1xuICAgICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9hY3Rpb25zIHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG59XG5cbi5teF9QaW5uZWRNZXNzYWdlQmFubmVyW2RhdGEtc2luZ2xlLW1lc3NhZ2U9XCJ0cnVlXCJdIHtcbiAgICAubXhfUGlubmVkTWVzc2FnZUJhbm5lcl9jb250ZW50IHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZTogXCJpbmRpY2F0b3JzIHBpbkljb24gbWVzc2FnZVwiIGF1dG87XG5cbiAgICAgICAgLm14X1Bpbm5lZE1lc3NhZ2VCYW5uZXJfbWVzc2FnZSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogNDBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1ByZXNlbmNlSWNvblZpZXcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG5cbiAgICAubXhfUHJlc2VuY2VJY29uVmlld19vbmxpbmUge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tYWNjZW50LXByaW1hcnkpO1xuICAgIH1cblxuICAgIC5teF9QcmVzZW5jZUljb25WaWV3X29mZmxpbmUsXG4gICAgLm14X1ByZXNlbmNlSWNvblZpZXdfZG5kIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXRlcnRpYXJ5KTtcbiAgICB9XG5cbiAgICAubXhfUHJlc2VuY2VJY29uVmlld191bmF2YWlsYWJsZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1xdWF0ZXJuYXJ5KTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxNiBPcGVuTWFya2V0IEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUHJlc2VuY2VMYWJlbCB7XG4gICAgZm9udC1zaXplOiAkZm9udC0xMXB4O1xuICAgIG9wYWNpdHk6IDAuNTtcbn1cblxuLm14X1ByZXNlbmNlTGFiZWxfb25saW5lIHtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc3VjY2Vzcy1wcmltYXJ5KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9SZWFkUmVjZWlwdEdyb3VwIHtcbiAgICAtLVJlYWRSZWNlaXB0R3JvdXBfRXZlbnRCdWJibGVUaWxlLXNwYWNpbmctZW5kOiA3OHB4O1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgLm14X1JlYWRSZWNlaXB0R3JvdXBfYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgcGFkZGluZzogNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA2cHg7XG5cbiAgICAgICAgJi5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRldmVudC1zZWxlY3RlZC1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwX3JlbWFpbmRlciB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTFweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE2cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgIH1cblxuICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwX2NvbnRhaW5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICAvKiBDb21wb3VuZCB1c2VzIGEgYm9yZGVyIG9uIGRlZmF1bHQgYXZhdGFycyBidXQgbm8gYm9yZGVyIG9uIGFjdHVhbCBpbWFnZXMsIHdlIHdhbnQgYSBib3JkZXIgaW4gYWxsIGNhc2VzICovXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRiYWNrZ3JvdW5kICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAvKiBSZXNldCB0aGUgbGluZSBoZWlnaHQgYXMgd2UgYXJlIG5vIGxvbmdlciBib3gtc2l6aW5nIGJvcmRlci1ib3guIDE0cHggYmVjYXVzZSBhdmF0YXIgaXMgc2V0IGF0IDE0cHggaW4gY29tcG9uZW50ICovXG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpbGwtY2hhbmdlOiBsZWZ0LCB0b3A7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgICAgICAgIGxlZnQgdmFyKC0tdHJhbnNpdGlvbi1zaG9ydCkgZWFzZS1vdXQsXG4gICAgICAgICAgICAgICAgdG9wIHZhcigtLXRyYW5zaXRpb24tc3RhbmRhcmQpIGVhc2Utb3V0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfUmVhZFJlY2VpcHRHcm91cF9wb3B1cCB7XG4gICAgbWF4LWhlaWdodDogMzAwcHg7XG4gICAgd2lkdGg6IDIyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGluZS1oZWlnaHQ6IDE1cHg7XG5cbiAgICByaWdodDogMDtcblxuICAgICYubXhfQ29udGV4dHVhbE1lbnVfdG9wIHtcbiAgICAgICAgdG9wOiA4cHg7XG4gICAgfVxuXG4gICAgJi5teF9Db250ZXh0dWFsTWVudV9ib3R0b20ge1xuICAgICAgICBib3R0b206IDhweDtcbiAgICB9XG5cbiAgICAubXhfUmVhZFJlY2VpcHRHcm91cF90aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gICAgICAgIG1hcmdpbjogMTZweCAxNnB4IDhweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIC8qIHNob3VsZG7igJl0IGJlIGFjdHVhbGx5IGZvY3VzYWJsZSAqL1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cblxuICAgIC5teF9BdXRvSGlkZVNjcm9sbGJhciB7XG4gICAgICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwX3BlcnNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgICAgICAgIG1hcmdpbjogMCAxMnB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWVudS1zZWxlY3RlZC1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9CYXNlQXZhdGFyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDZweCA4cHg7XG4gICAgICAgICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktc2VsZjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwOyAvKiBMb25nIG5hbWVzIHNob3VsZCBub3Qgc2hyaW5rIHRoZSBwaWN0dXJlICovXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9SZWFkUmVjZWlwdEdyb3VwX25hbWUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgICAgIHAge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDJweCAwO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfUmVhZFJlY2VpcHRHcm91cF9zZWNvbmRhcnkge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1JlYWRSZWNlaXB0R3JvdXBfcGVyc29uLS10b29sdGlwIHtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE4IFZlY3RvciBDcmVhdGlvbnMgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9SZXBseVByZXZpZXcge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRwcmltYXJ5LWhhaXJsaW5lLWNvbG9yO1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgbWF4LWhlaWdodDogNTB2aDtcbiAgICBvdmVyZmxvdzogYXV0bztcblxuICAgIC5teF9SZXBseVByZXZpZXdfc2VjdGlvbiB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiBjb2x1bW47XG4gICAgICAgIHJvdy1nYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0yeCkgdmFyKC0tY3BkLXNwYWNlLTJ4KSAwIDA7XG5cbiAgICAgICAgLm14X1JlcGx5UHJldmlld19oZWFkZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIGNvbHVtbi1nYXA6IDhweDtcblxuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgb3BhY2l0eTogMC40O1xuXG4gICAgICAgICAgICAubXhfUmVwbHlQcmV2aWV3X2hlYWRlcl9jYW5jZWwgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9Sb29tVmlld19ib2R5IHtcbiAgICAubXhfUmVwbHlQcmV2aWV3IHtcbiAgICAgICAgLyogQWRkIGJveC1zaGFkb3cgdG8gdGhlIHJlcGx5IHByZXZpZXcgb24gdGhlIG1haW4gKGxlZnQpIHBhbmVsIG9ubHkuICovXG4gICAgICAgIC8qIEl0IGlzIG5vdCBhZGRlZCB0byB0aGUgcHJldmlldyBvbiB0aGUgKHJpZ2h0KSBwYW5lbCBmb3IgdGhyZWFkcyBhbmQgYSBjaGF0IHdpdGggYSBtYXhpbWl6ZWQgd2lkZ2V0LiAqL1xuICAgICAgICBib3gtc2hhZG93OiAwcHggLTE2cHggMzJweCAkY29tcG9zZXItc2hhZG93LWNvbG9yO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHggOHB4IDAgMDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUdWxpciBBc29rYW4gPHR1bGlyQG1hdW5pdW0ubmV0PlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUmVwbHlUaWxlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMnB4IDA7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcblxuICAgID4gYSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGU6XG4gICAgICAgICAgICBcInNlbmRlclwiIGF1dG9cbiAgICAgICAgICAgIFwibWVzc2FnZVwiIGF1dG9cbiAgICAgICAgICAgIC8gMTAwJTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciBlYXNlIDAuMTVzO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyAvKiBhdm9pZCBvdmVyZmxvdyB3aXRoIHdpZGUgY29udGVudCAqL1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUmVkYWN0ZWRCb2R5IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG4gICAgfVxuXG4gICAgLm14X1JlZGFjdGVkQm9keSxcbiAgICAubXhfSGlkZGVuQm9keSB7XG4gICAgICAgIHBhZGRpbmc6IDRweCAwIDJweCAyMHB4O1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEzcHg7XG4gICAgICAgICAgICB3aWR0aDogMTNweDtcbiAgICAgICAgICAgIHRvcDogM3B4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogV2UgZG8gcmVwbHkgc2l6ZSBsaW1pdGluZyB3aXRoIENTUyB0byBhdm9pZCBkdXBsaWNhdGluZyB0aGUgVGV4dHVhbEJvZHkgY29tcG9uZW50LiAqL1xuICAgIC5teF9FdmVudFRpbGVfY29udGVudCB7XG4gICAgICAgIGdyaWQtYXJlYTogbWVzc2FnZTtcbiAgICAgICAgJHJlcGx5LWxpbmVzOiAyO1xuICAgICAgICAkbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG5cbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAtd2Via2l0LWxpbmUtY2xhbXA6ICRyZXBseS1saW5lcztcblxuICAgICAgICAubXhfRXZlbnRUaWxlX2JvZHkubXhfRXZlbnRUaWxlX2JpZ0Vtb2ppIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMnB4ICFpbXBvcnRhbnQ7IC8qIFNhbWUgYXMgdmFyKC0tRXZlbnRUaWxlX2dyb3VwX2xpbmUtbGluZS1oZWlnaHQpICovXG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE0cHggIWltcG9ydGFudDsgLyogT3ZlcnJpZGUgdGhlIGJpZyBlbW9qaSBvdmVycmlkZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgLyogaW4gb3JkZXIgdG8ga2VlcCB0aGUgbWVzc2FnZSBvbiB0d28gbGluZXMsIHdlIG5lZWQgdG8gbWFrZSB0aGUgYm9keSBpbmxpbmUgKi9cbiAgICAgICAgLm14X0V2ZW50VGlsZV9ib2R5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIFRoZSBhbm5vdGF0aW9uIHdyYXBwZXIgaXMgZmxleCBpbiBub3JtYWwgdGltZWxpbmUgbWVzc2FnZXMsIGJ1dCB0aGF0IHN0b3BzXG4gICAgICAgIC13ZWJraXQtbGluZS1jbGFtcCBmcm9tIHRyaW1taW5nIGxvbmcgZWRpdGVkIHF1b3RlcyBkb3duIHRvIHR3byBsaW5lcy4gKi9cbiAgICAgICAgW2RhdGEtdGV4dHVhbC1ib2R5LWFubm90YXRpb24td3JhcHBlcl0ge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBIaWRlIGxpbmUgbnVtYmVycyBhbmQgZWRpdGVkIGluZGljYXRvciAqL1xuICAgICAgICAubXhfRXZlbnRUaWxlX2xpbmVOdW1iZXJzLFxuICAgICAgICBbZGF0YS10ZXh0dWFsLWJvZHktZWRpdGVkLW1hcmtlcl0ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIEhhY2sgdG8gY3V0IGNvbnRlbnQgaW4gPHByZT4gdGFncyB0b28gKi9cbiAgICAgICAgLm14X0V2ZW50VGlsZV9wcmVfY29udGFpbmVyID4gcHJlIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAkcmVwbHktbGluZXM7XG4gICAgICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubWFya2Rvd24tYm9keSBibG9ja3F1b3RlLFxuICAgICAgICAubWFya2Rvd24tYm9keSBkbCxcbiAgICAgICAgLm1hcmtkb3duLWJvZHkgb2wsXG4gICAgICAgIC5tYXJrZG93bi1ib2R5IHAsXG4gICAgICAgIC5tYXJrZG93bi1ib2R5IHByZSxcbiAgICAgICAgLm1hcmtkb3duLWJvZHkgdGFibGUsXG4gICAgICAgIC5tYXJrZG93bi1ib2R5IHVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfUmVwbHlUaWxlX2luZm8ge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG5cbiAgICAmLm14X1JlcGx5VGlsZV9pbmxpbmUgPiBhIHtcbiAgICAgICAgLyogUmVuZGVyIHJlcGxpZXMgdG8gZW1vdGVzIGlubGluZSB3aXRoIHRoZSBzZW5kZXIgYXZhdGFyICovXG4gICAgICAgIGdyaWQtdGVtcGxhdGU6XG4gICAgICAgICAgICBcInNlbmRlciAgICAgICAgbWVzc2FnZVwiIGF1dG9cbiAgICAgICAgICAgIC8gbWF4LWNvbnRlbnQgYXV0bztcbiAgICAgICAgZ2FwOiA0cHg7IC8qIGluY3JlYXNlIHNwYWNpbmcgKi9cbiAgICB9XG5cbiAgICAubXhfUmVwbHlUaWxlX3NlbmRlciB7XG4gICAgICAgIGdyaWQtYXJlYTogc2VuZGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDRweDtcblxuICAgICAgICAubXhfRGlzYW1iaWd1YXRlZFByb2ZpbGUge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICAgICAgLyogUHJldmVudCBjcnVzaGluZyBieSB0aGUgZmxleGJveCAqL1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbUhlYWRlciB7XG4gICAgaGVpZ2h0OiA2NHB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgcGFkZGluZzogMCB2YXIoLS1jcGQtc3BhY2UtM3gpIDAgY2FsYyh2YXIoLS1jcGQtc3BhY2UtM3gpICsgdmFyKC0tY3BkLXNwYWNlLTEtNXgpKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHNlcGFyYXRvcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuXG4gICAgYnV0dG9uOmhhcyhzdmcubXhfUm9vbUhlYWRlcl90b2dnbGVkKSB7XG4gICAgICAgIC8qIEZvciBlbmhhbmNlZCB2aXNpYmlsaXR5IHVuZGVyIGNvbnRyYXN0IGNvbnRyb2wgKi9cbiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuLm14X1Jvb21IZWFkZXI6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRoZWFkZXItcGFuZWwtYmctaG92ZXI7XG59XG5cbi5teF9Sb29tSGVhZGVyX2luZm9XcmFwcGVyIHtcbiAgICAvKiB1bnNldCBidXR0b24gc3R5bGVzICovXG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgYmFja2dyb3VuZDogdW5zZXQ7XG4gICAgYm9yZGVyOiB1bnNldDtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5teF9Sb29tSGVhZGVyX2luZm8ge1xuICAgIC8qIFdlIHdhbnQgdGhlIHNwYWNpbmcgdG8gYmUgNjRweCwgMTN4ID0gNTJweCBidXQgd2UgaGF2ZSBhIGZsZXggZ2FwIG9mXG4gICAgICAgMTJweCBzZXQgb24gdGhlIGZsZXggY29udGFpbmVyLCB3aGljaCBzdW1zIHVwIHRvIDY0ICovXG4gICAgcGFkZGluZy1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTEzeCk7XG59XG5cbi5teF9Sb29tSGVhZGVyX3RydW5jYXRlZCB7XG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAtd2Via2l0LWxpbmUtY2xhbXA6IDE7XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLm14X1Jvb21IZWFkZXJfaGVhZGluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xLTV4KTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubXhfUm9vbUhlYWRlcl9pY29uIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLm14X1Jvb21IZWFkZXIgLm14X0ZhY2VQaWxlIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xLTV4KTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1tZWRpdW0pO1xuXG4gICAgLyogUm9vbUF2YXRhciBkb2Vzbid0IHBhc3MgY2xhc3NlcyBkb3duIHRvIGF2YXRhclxuICAgIFNvIHNldCBzdHlsZSBoZXJlXG4gICAgdXNpbmcgZGl2IGJlY2F1c2UgY29tcG91bmQgY2xhc3NlcyBhcmUgbm90IHN0YWJsZSAqL1xuICAgID4gZGl2IHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXByaW1hcnkpO1xuICAgIH1cblxuICAgICYubXhfRmFjZVBpbGVfdG9nZ2xlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNwZC1jb2xvci1iZy1zdWNjZXNzLXN1YnRsZSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1hY3Rpb24tYWNjZW50KTtcbiAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1zbS1zZW1pYm9sZCk7XG4gICAgICAgIC8qIEZvciBlbmhhbmNlZCB2aXNpYmlsaXR5IHVuZGVyIGNvbnRyYXN0IGNvbnRyb2wgKi9cbiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cblxuLm14X1Jvb21IZWFkZXIgLm14X0Jhc2VBdmF0YXIge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ubXhfUm9vbUhlYWRlcl92aWRlb0NhbGxPcHRpb24ge1xuICAgIC8qIFdvcmthcm91bmQgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9lbGVtZW50LWhxL2NvbXBvdW5kL2lzc3Vlcy8zMzEgKi9cbiAgICBtaW4td2lkdGg6IDI0MHB4O1xufVxuXG4ubXhfUm9vbUhlYWRlciAubXhfUm9vbUhlYWRlcl90b2dnbGVkIHtcbiAgICBmaWxsOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1hY2NlbnQtcHJpbWFyeSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbUluZm9MaW5lIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIHN2ZyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogLTJweDtcbiAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9Sb29tSW5mb0xpbmVfbWVtYmVycyB7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIsK3XCI7IC8qIHZpc3VhbCBzZXBhcmF0b3IgKi9cbiAgICAgICAgICAgIG1hcmdpbjogMCA2cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBOb3JkZWNrIElUICsgQ29uc3VsdGluZyBHbWJIXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tS25vY2tzQmFyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctc3VidGxlLXNlY29uZGFyeSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG5cbi5teF9Sb29tS25vY2tzQmFyX2NvbnRlbnQge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtYXJnaW46IDAgdmFyKC0tY3BkLXNwYWNlLTN4KTtcbn1cblxuLm14X1Jvb21Lbm9ja3NCYXJfcGFyYWdyYXBoIHtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tY3BkLWZvbnQtc2l6ZS1ib2R5LXNtKTtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5teF9Sb29tS25vY2tzQmFyX2xpbmsge1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xufVxuXG4ubXhfUm9vbUtub2Nrc0Jhcl9hY3Rpb24sXG4ubXhfUm9vbUtub2Nrc0Jhcl9hdmF0YXIge1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLm14X1Jvb21Lbm9ja3NCYXJfYWN0aW9uICsgLm14X1Jvb21Lbm9ja3NCYXJfYWN0aW9uIHtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbn1cblxuLm14X1Jvb21Lbm9ja3NCYXJfYXZhdGFyICsgLm14X1Jvb21Lbm9ja3NCYXJfYXZhdGFyIHtcbiAgICBtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1jcGQtc3BhY2UtNHgpICogLTEpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUtMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbVByZXZpZXdCYXIge1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIGgzIHtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xOHB4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcblxuICAgICAgICAmLm14X1Jvb21QcmV2aWV3QmFyX3NwaW5uZXJUaXRsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoMyxcbiAgICAubXhfUm9vbVByZXZpZXdCYXJfbWVzc2FnZSBwIHtcbiAgICAgICAgLyogYnJlYWstd29yZCwgd2l0aCBmYWxsYmFjayB0byBicmVhay1hbGwsIHdoaWNoIGlzIHdpZGVyIHN1cHBvcnRlZCAqL1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgfVxuXG4gICAgLm14X1NwaW5uZXIge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW46IDEwcHggMTBweCAxMHB4IDA7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIH1cblxuICAgIC5teF9Sb29tUHJldmlld0Jhcl9mb290ZXIge1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMHB4O1xuXG4gICAgICAgIC5teF9TcGlubmVyIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9Sb29tUHJldmlld0Jhcl9hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuXG4ubXhfUm9vbVByZXZpZXdCYXJfbWVzc2FnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAgIHAge1xuICAgICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgIH1cbn1cblxuLm14X1Jvb21QcmV2aWV3QmFyX3BhbmVsIHtcbiAgICBwYWRkaW5nOiA4cHggOHB4IDhweCAyMHB4O1xuXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuICAgIC5teF9Sb29tUHJldmlld0Jhcl9hY3Rpb25zIHtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIHBhZGRpbmc6IDNweCA4cHg7XG5cbiAgICAgICAgJiA+ICoge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUm9vbVByZXZpZXdCYXJfbWVzc2FnZSB7XG4gICAgICAgIGZsZXg6IDEgMCAwO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgJiA+ICoge1xuICAgICAgICAgICAgbWFyZ2luOiA0cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIFdpdGggbWF4aW1pc2VkIHdpZGdldHMsIHRoZSBwYW5lbCBmaXRzIGluIGJldHRlciB3aGVuIHJvdW5kZWQgKi9cbi5teF9NYWluU3BsaXRfbWF4aW1pc2VkV2lkZ2V0IC5teF9Sb29tUHJldmlld0Jhcl9wYW5lbCB7XG4gICAgbWFyZ2luOiB2YXIoLS1jb250YWluZXItZ2FwLXdpZHRoKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tY29udGFpbmVyLWdhcC13aWR0aCkgLyAyKTsgLyogU2hhcmVkIHdpdGggcmlnaHQgcGFuZWwgKi9cbiAgICBtYXJnaW4tdG9wOiAwOyAvKiBBbHJlYWR5IGNvdmVyZWQgYnkgYXBwcyBkcmF3ZXIgKi9cbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi5teF9Sb29tUHJldmlld0Jhcl9kaWFsb2cge1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBib3gtc2l6aW5nOiBjb250ZW50O1xuICAgIHdpZHRoOiA0MDBweDtcbiAgICAvKiBNYXRjaGVzIHRoZSByb29tIHByZXZpZXcgY2FyZCB0aGlzIHN0YW5kcyBpbiBwbGFjZSBvZiwgYW5kIHRoZSBwYW5lbCBmb3JtIG9mIHRoaXMgc2FtZSBiYXIgKi9cbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nOiAyMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgIC5teF9Sb29tUHJldmlld0Jhcl9tZXNzYWdlIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAmID4gKiB7XG4gICAgICAgICAgICBtYXJnaW46IDVweCAwIDIwcHggMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Sb29tUHJldmlld0Jhcl9hY3Rpb25zIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgcGFkZGluZzogN3B4IDUwcHg7IC8qIGV4dHJhIHdpZGUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICYgPiAqIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgIH1cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ubXhfQWNjZXNzaWJsZUJ1dHRvbl9raW5kX3ByaW1hcnkge1xuICAgICAgICAgICAgLyogdG8gYWNjb3VudCBmb3IgdGhlIHBhZGRpbmcgb2YgdGhlIHByaW1hcnkgYnV0dG9uIHdoaWNoIGNhdXNlcyBpbmNvbnNpc3RlbnQgbG9vayBiZXR3ZWVuICovXG4gICAgICAgICAgICAvKiBzdWJzZXF1ZW50IHNlY29uZGFyeSAodGV4dCkgYnV0dG9ucyAqL1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogN3B4O1xuICAgICAgICB9XG4gICAgfVxufVxuLm14X1Jvb21QcmV2aWV3QmFyX0ludml0ZSB7XG4gICAgbWF4LWhlaWdodDogMTAwdmg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbi5teF9Sb29tUHJldmlld0Jhcl9JbnZpdGUgaDMge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubXhfUm9vbVByZXZpZXdCYXJfaW52aXRlciB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG59XG5cbmEubXhfUm9vbVByZXZpZXdCYXJfaW52aXRlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubXhfUm9vbVByZXZpZXdCYXJfaW52aXRlcl9teGlkIHtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbn1cblxuLm14X1Jvb21QcmV2aWV3QmFyX2ljb24ge1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDtcbn1cblxuLm14X1Jvb21QcmV2aWV3QmFyX2Z1bGxXaWR0aCB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbVByZXZpZXdDYXJkIHtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtOHgpIHZhcigtLWNwZC1zcGFjZS02eCkgIWltcG9ydGFudDsgLyogT3ZlcnJpZGUgU3BhY2VSb29tVmlldydzIGRlZmF1bHQgcGFkZGluZyAqL1xuICAgIG1hcmdpbjogYXV0bztcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWF4LXdpZHRoOiA0ODBweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRzeXN0ZW07XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuXG4gICAgLm14X1Jvb21QcmV2aWV3Q2FyZF9ub3RpY2Uge1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDFlbTtcbiAgICAgICAgICAgIHdpZHRoOiAxZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IC0ycHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUm9vbVByZXZpZXdDYXJkX2ludml0ZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgICAgIC5teF9Sb29tUHJldmlld0NhcmRfaW52aXRlcl9uYW1lIHtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMThweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X1Jvb21QcmV2aWV3Q2FyZF9pbnZpdGVyX214aWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfUm9vbVByZXZpZXdDYXJkX2F2YXRhciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgLm14X1Jvb21QcmV2aWV3Q2FyZF92aWRlbyB7XG4gICAgICAgICAgICB3aWR0aDogMjJweDtcbiAgICAgICAgICAgIGhlaWdodDogMjJweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE0cHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiBjYWxjKCg1MHB4ICsgMiAqIDNweCkgLyAyKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhY2NlbnQ7XG4gICAgICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAkc3lzdGVtO1xuXG4gICAgICAgICAgICBsZWZ0OiBjYWxjKC01MHB4IC8gNCAtIDNweCk7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uLXByaW1hcnktZmctY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKiBYWFggUmVtb3ZlIHRoaXMgd2hlbiB2aWRlbyByb29tcyBsZWF2ZSBiZXRhICovXG4gICAgICAgIC5teF9CZXRhQ2FyZF9iZXRhUGlsbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBpbnNldC1ibG9jay1zdGFydDogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICAgICAgICAgIGluc2V0LWlubGluZS1lbmQ6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoMS5teF9Sb29tUHJldmlld0NhcmRfbmFtZSB7XG4gICAgICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTR4KSAwICFpbXBvcnRhbnQ7IC8qIE92ZXJyaWRlIFNwYWNlUm9vbVZpZXcncyBkZWZhdWx0IG1hcmdpbnMgKi9cbiAgICB9XG5cbiAgICAubXhfUm9vbVByZXZpZXdDYXJkX3RvcGljIHtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTIycHg7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE2MHB4O1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIH1cblxuICAgIC5teF9GYWNlUGlsZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIC8qIEZvciBlbmhhbmNlZCB2aXNpYmlsaXR5IHVuZGVyIGNvbnRyYXN0IGNvbnRyb2wgKi9cbiAgICAgICAgb3V0bGluZTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXG4gICAgICAgIDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Sb29tUHJldmlld0NhcmRfam9pbkJ1dHRvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNXgpO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS01eCk7XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDE0cHggMDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDI0IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Sb29tU2VhcmNoQXV4UGFuZWwge1xuICAgIC8qIHVzZSBgbWluLWhlaWdodGAgcmF0aGVyIHRoYW4gaGVpZ2h0LCB0byBhbGxvdyByb29tIGZvciB0aGUgdGV4dCB0byB3cmFwIGlmIHRoZSB3aW5kb3cgaXMgbmFycm93ICovXG4gICAgbWluLWhlaWdodDogODRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jcGQtY29sb3ItYmctY2FudmFzLWRlZmF1bHQpO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHggMDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgLm14X1Jvb21TZWFyY2hBdXhQYW5lbF9zdW1tYXJ5IHtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBkaXNwbGF5OiBpbmhlcml0OyAvKiBmbGV4ICovXG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICA+IHN2ZyB7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1zdWJ0bGUtc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfUm9vbVNlYXJjaEF1eFBhbmVsX3N1bW1hcnlfdGV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMnB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X1NlYXJjaFdhcm5pbmcge1xuICAgICAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEzcHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjBweDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1Jvb21TZWFyY2hBdXhQYW5lbF9idXR0b25zIHtcbiAgICAgICAgZGlzcGxheTogaW5oZXJpdDsgLyogZmxleCAqL1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS02eCk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOC0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbVVwZ3JhZGVXYXJuaW5nQmFyIHtcbiAgICBtYXgtaGVpZ2h0OiAyMzVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaW5mby1wbGludGgtYmctY29sb3I7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgb3ZlcmZsb3c6IHNjcm9sbDtcbn1cblxuLm14X1Jvb21VcGdyYWRlV2FybmluZ0Jhcl93cmFwcGVkIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIC13ZWJraXQtYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm14X1Jvb21VcGdyYWRlV2FybmluZ0Jhcl9oZWFkZXIge1xuICAgIGNvbG9yOiAkYWxlcnQ7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5teF9Sb29tVXBncmFkZVdhcm5pbmdCYXJfYm9keSB7XG4gICAgY29sb3I6ICRhbGVydDtcbn1cblxuLm14X1Jvb21VcGdyYWRlV2FybmluZ0Jhcl91cGdyYWRlbGluayB7XG4gICAgY29sb3I6ICRhbGVydDtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cblxuLm14X1Jvb21VcGdyYWRlV2FybmluZ0Jhcl9zbWFsbCB7XG4gICAgY29sb3I6ICRpbmZvLXBsaW50aC1mZy1jb2xvcjtcbiAgICBmb250LXNpemU6IDcwJTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZW5kTWVzc2FnZUNvbXBvc2VyIHtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIC8qIGZpeGVkIGxpbmUgaGVpZ2h0IHRvIHByZXZlbnQgZW1vamkgZnJvbSBiZWluZyB0YWxsZXIgdGhhbiB0ZXh0ICovXG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiA2cHg7XG4gICAgLyogZG9uJ3QgZ3JvdyB3aWRlciB0aGFuIGF2YWlsYWJsZSBzcGFjZSAqL1xuICAgIG1pbi13aWR0aDogMDtcblxuICAgIC5teF9CYXNpY01lc3NhZ2VDb21wb3NlciB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIC8qIG1pbi1oZWlnaHQgYXQgdGhpcyBsZXZlbCBzbyB0aGUgbXhfQmFzaWNNZXNzYWdlQ29tcG9zZXJfaW5wdXQgKi9cbiAgICAgICAgLyogc3RpbGwgc3RheXMgdmVydGljYWxseSBjZW50ZXJlZCB3aGVuIGxlc3MgdGhhbiA1NXB4LiAqL1xuICAgICAgICAvKiBXZSBhbHNvIHNldCB0aGlzIHRvIGVuc3VyZSB0aGUgdm9pY2UgbWVzc2FnZSByZWNvcmRpbmcgd2lkZ2V0ICovXG4gICAgICAgIC8qIGRvZXNuJ3QgY2F1c2UgYSBqdW1wLiAqL1xuICAgICAgICBtaW4taGVpZ2h0OiA1NXB4O1xuXG4gICAgICAgIC5teF9CYXNpY01lc3NhZ2VDb21wb3Nlcl9pbnB1dCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAzcHggMDtcbiAgICAgICAgICAgIC8qIHRoaXMgd2lsbCBjZW50ZXIgdGhlIGNvbnRlbnRlZGl0YWJsZSAqL1xuICAgICAgICAgICAgLyogaW4gaXQncyBwYXJlbnQgdmVydGljYWxseSAqL1xuICAgICAgICAgICAgLyogd2hpbGUga2VlcGluZyB0aGUgYXV0b2NvbXBsZXRlIGF0IHRoZSB0b3AgKi9cbiAgICAgICAgICAgIC8qIG9mIHRoZSBjb21wb3Nlci4gVGhlIHBhcmVudCBuZWVkcyB0byBiZSBhIGZsZXggY29udGFpbmVyIGZvciB0aGlzIHRvIHdvcmsuICovXG4gICAgICAgICAgICBtYXJnaW46IGF1dG8gMDtcbiAgICAgICAgICAgIC8qIG1heC1oZWlnaHQgYXQgdGhpcyBsZXZlbCBzbyBhdXRvY29tcGxldGUgZG9lc24ndCBnZXQgc2Nyb2xsZWQgdG9vICovXG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAxNDBweDtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIubXhfU3RpY2tlcnNfY29udGVudCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm14X1N0aWNrZXJzX2NvbnRlbnRfY29udGFpbmVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGhlaWdodDogMzAwcHg7XG59XG5cbiNteF9wZXJzaXN0ZWRFbGVtZW50X3N0aWNrZXJQaWNrZXIge1xuICAgIC5teF9BcHBUaWxlRnVsbFdpZHRoIHtcbiAgICAgICAgaGVpZ2h0OiB1bnNldDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICB9XG5cbiAgICAubXhfQXBwVGlsZU1lbnVCYXIge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIGlmcmFtZSB7XG4gICAgICAgIC8qIFN0aWNrZXIgcGlja2VyIGRlcGVuZHMgb24gdGhlIGZpeGVkIGhlaWdodCBwcmV2aW91c2x5IHVzZWQgZm9yIGFsbCB0aWxlcyAqL1xuICAgICAgICBoZWlnaHQ6IDI4M3B4OyAvKiBoZWlnaHQgb2YgdGhlIHBvcG91dCBtaW51cyB0aGUgQXBwVGlsZSBtZW51IGJhciAqL1xuICAgIH1cbn1cblxuLm14X1N0aWNrZXJzX2NvbnRlbnRQbGFjZWhvbGRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm14X1N0aWNrZXJzX2NvbnRlbnRQbGFjZWhvbGRlciBwIHtcbiAgICBtYXgtd2lkdGg6IDIwMHB4O1xufVxuXG4ubXhfU3RpY2tlcnNfYWRkTGluayB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogJGFjY2VudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9UaGlyZFBhcnR5TWVtYmVySW5mbyB7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Ub3BVbnJlYWRNZXNzYWdlc0JhciB7XG4gICAgei1pbmRleDogMTAwMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAyNHB4O1xuICAgIHJpZ2h0OiAyNHB4O1xuICAgIHdpZHRoOiAzOHB4O1xufVxuXG4ubXhfVG9wVW5yZWFkTWVzc2FnZXNCYXI6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC04cHg7XG4gICAgbGVmdDogMTFweDtcbiAgICB3aWR0aDogNHB4O1xuICAgIGhlaWdodDogNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICBib3JkZXI6IDZweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItaWNvbi1hY2NlbnQtdGVydGlhcnkpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4ubXhfVG9wVW5yZWFkTWVzc2FnZXNCYXJfc2Nyb2xsVXAge1xuICAgIGhlaWdodDogMzhweDtcbiAgICB3aWR0aDogMzhweDtcbiAgICBib3JkZXItcmFkaXVzOiAxOXB4O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAxLjNweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgcGFkZGluZzogNnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tdGVydGlhcnkpO1xuICAgIH1cbn1cblxuLm14X1RvcFVucmVhZE1lc3NhZ2VzQmFyX21hcmtBc1JlYWQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBib3JkZXI6IDEuM3B4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1pY29uLXRlcnRpYXJ5KTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIG1hcmdpbjogNXB4IGF1dG87XG5cbiAgICBzdmcge1xuICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgaGVpZ2h0OiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiAxcHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi10ZXJ0aWFyeSk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVXNlcklkZW50aXR5V2FybmluZyB7XG4gICAgLyogNDJweCBpcyB0aGUgcGFkZGluZy1sZWZ0IG9mIC5teF9NZXNzYWdlQ29tcG9zZXJfd3JhcHBlciBpbiByZXMvY3NzL3ZpZXdzL3Jvb21zL19NZXNzYWdlQ29tcG9zZXIucGNzcyAqL1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKC00MnB4ICsgdmFyKC0tUm9vbVZpZXdfTWVzc2FnZUxpc3QtcGFkZGluZykpO1xuXG4gICAgLm14X1VzZXJJZGVudGl0eVdhcm5pbmdfcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAubXhfQmFzZUF2YXRhciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuICAgICAgICAubXhfVXNlcklkZW50aXR5V2FybmluZ19tYWluIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICB9XG4gICAgICAgIC5teF9Vc2VySWRlbnRpdHlXYXJuaW5nX21haW4uY3JpdGljYWwge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LWNyaXRpY2FsLXByaW1hcnkpO1xuICAgICAgICB9XG4gICAgfVxufVxuLm14X1VzZXJJZGVudGl0eVdhcm5pbmcuY3JpdGljYWwge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHZhcigtLWNwZC1jb2xvci1yZWQtMTAwKSAwJSwgdmFyKC0tY3BkLWNvbG9yLXRoZW1lLWJnKSAxMDAlKTtcbn1cblxuLm14X01lc3NhZ2VDb21wb3Nlci5teF9NZXNzYWdlQ29tcG9zZXItLWNvbXBhY3QgPiAubXhfVXNlcklkZW50aXR5V2FybmluZyB7XG4gICAgbWFyZ2luLWxlZnQ6IGNhbGMoLTI1cHggKyB2YXIoLS1Sb29tVmlld19NZXNzYWdlTGlzdC1wYWRkaW5nKSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVm9pY2VSZWNvcmRDb21wb3NlclRpbGVfc3RvcCB7XG4gICAgLyogMjBweCArIDRweCBwYWRkaW5nICsgMnB4IGJvcmRlciBtYWtlcyB0aGlzIGEgMzJweCBzcXVhcmUgKGFzIGludGVuZGVkKSAqL1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICR2b2ljZS1yZWNvcmQtc3RvcC1ib3JkZXItY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogMzJweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDJweDsgLyogYmV0d2VlbiB1cyBhbmQgdGhlIHdhdmVmb3JtIGNvbXBvbmVudCAqL1xuXG4gICAgc3ZnIHtcbiAgICAgICAgd2lkdGg6IGluaGVyaXQ7XG4gICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgY29sb3I6ICR2b2ljZS1yZWNvcmQtc3RvcC1zeW1ib2wtY29sb3I7XG4gICAgfVxufVxuXG4ubXhfVm9pY2VSZWNvcmRDb21wb3NlclRpbGVfZGVsZXRlIHtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDI0cHg7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBtYXJnaW4tcmlnaHQ6IDJweDsgLyogZGlzdGFuY2UgZnJvbSBsZWZ0IGVkZ2Ugb2Ygd2F2ZWZvcm0gY29udGFpbmVyIChjb250YWluZXIgaGFzIHNvbWUgbWFyZ2luIHRvbykgKi9cblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIGNvbG9yOiAkdm9pY2UtcmVjb3JkLWljb24tY29sb3I7XG4gICAgfVxufVxuXG4ubXhfVm9pY2VSZWNvcmRDb21wb3NlclRpbGVfdXBsb2FkaW5nU3RhdGUge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xufVxuXG4ubXhfVm9pY2VSZWNvcmRDb21wb3NlclRpbGVfZmFpbGVkU3RhdGUge1xuICAgIG1hcmdpbi1yaWdodDogMjFweDtcblxuICAgIC5teF9Wb2ljZVJlY29yZENvbXBvc2VyVGlsZV91cGxvYWRTdGF0ZV9iYWRnZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX3JvdyAubXhfVm9pY2VNZXNzYWdlUHJpbWFyeUNvbnRhaW5lciB7XG4gICAgLyogTm90ZTogcmVtYWluaW5nIGNsYXNzIHByb3BlcnRpZXMgYXJlIGluIHRoZSBQbGF5ZXJDb250YWluZXIgQ1NTLiAqL1xuXG4gICAgLyogZml4ZWQgaGVpZ2h0IHRvIHJlZHVjZSBsYXlvdXQganVtcHMgd2l0aCB0aGUgcGxheSBidXR0b24gYXBwZWFyaW5nICovXG4gICAgLyogaHR0cHM6Ly9naXRodWIuY29tL3ZlY3Rvci1pbS9lbGVtZW50LXdlYi9pc3N1ZXMvMTg0MzEgKi9cbiAgICBoZWlnaHQ6IDMycHg7XG5cbiAgICBtYXJnaW46IDZweDsgLyogZm9yY2UgdGhlIGNvbXBvc2VyIGFyZWEgdG8gcHV0IGEgZ3V0dGVyIGFyb3VuZCB1cyAqL1xuICAgIG1hcmdpbi1yaWdodDogNnB4OyAvKiBpc29sYXRlIGZyb20gc3RvcC9zZW5kIGJ1dHRvbiAqL1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvKiBpbXBvcnRhbnQgZm9yIHRoZSBsaXZlIGNpcmNsZSAqL1xuXG4gICAgJi5teF9Wb2ljZVJlY29yZENvbXBvc2VyVGlsZV9yZWNvcmRpbmcge1xuICAgICAgICAvKiBXZSBhcmUgcHV0dGluZyB0aGUgY2lyY2xlIGluIHRoaXMgcGFkZGluZywgc28gd2UgbmVlZCArMTBweCBmcm9tIHRoZSByZWd1bGFyICovXG4gICAgICAgIC8qIHBhZGRpbmcgb24gdGhlIGxlZnQgc2lkZS4gKi9cbiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMnB4O1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBhbmltYXRpb246IHJlY29yZGluZy1wdWxzZSAycyBpbmZpbml0ZTtcblxuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR2b2ljZS1yZWNvcmQtbGl2ZS1jaXJjbGUtY29sb3I7XG4gICAgICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDEycHg7IC8qIDEycHggZnJvbSB0aGUgbGVmdCBlZGdlIGZvciBjb250YWluZXIgcGFkZGluZyAqL1xuICAgICAgICAgICAgdG9wOiAxN3B4OyAvKiB2ZXJ0aWNhbGx5IGNlbnRlciAobWlkZGxlIGFsaWduIHdpdGggY2xvY2spICovXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfTWVzc2FnZUNvbXBvc2VyX3d5c2l3eWcgLm14X1ZvaWNlTWVzc2FnZVByaW1hcnlDb250YWluZXIge1xuICAgICYubXhfVm9pY2VSZWNvcmRDb21wb3NlclRpbGVfcmVjb3JkaW5nIHtcbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIHRvcDogMTVweDsgLyogdmVydGljYWxseSBjZW50ZXIgKG1pZGRsZSBhbGlnbiB3aXRoIGNsb2NrKSAqL1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBUaGUga2V5ZnJhbWVzIGFyZSBzbGlnaHRseSB3ZWlyZCBoZXJlIHRvIGhlbHAgbWFrZSBhIHJhbXBpbmcvcHVuY2ggZWZmZWN0ICovXG4vKiBmb3IgdGhlIHJlY29yZGluZyBkb3QuIFdlIHN0YXJ0IGFuZCBlbmQgYXQgMTAwJSBvcGFjaXR5IHRvIGhlbHAgbWFrZSB0aGUgKi9cbi8qIGRvdCBmZWVsIGEgYml0IGxpa2UgYSByZWFsIGxhbXAgdGhhdCBpcyBibGlua2luZzogdGhlIGFuaW1hdGlvbiBlbmRzIHVwICovXG4vKiBzcGVuZGluZyBhIGxvdCBvZiBpdHMgdGltZSBzaG93aW5nIGEgc3RlYWR5IHN0YXRlIHdpdGhvdXQgYSBmYWRlIGVmZmVjdC4gKi9cbi8qIFRoaXMgbGFtcCBlZmZlY3QgZXh0ZW5kcyBpbnRvIHdoeSB0aGUgMCUgb3BhY2l0eSBrZXlmcmFtZSBpcyBub3QgaW4gdGhlICovXG4vKiBtaWRwb2ludDogbGFtcHMgdGFrZSBsb25nZXIgdG8gdHVybiBvZmYgdGhhbiB0aGV5IGRvIHRvIHR1cm4gb24sIGFuZCB0aGUgKi9cbi8qIGV4dHJhIGZyYW1lcyBnaXZlIGl0IGEgYml0IG9mIGEgcmVhbGlzdGljIHB1bmNoIGZvciB3aGVuIHRoZSBhbmltYXRpb24gaXMgKi9cbi8qIHJhbXBpbmcgYmFjayB1cCB0byAxMDAlIG9wYWNpdHkuICovXG5cbi8qIFRhcmdldCBhbmltYXRpb24gdGltaW5nczogc3RlYWR5IGZvciAxLjVzLCBmYWRlIG91dCBmb3IgMC4zcywgZmFkZSBpbiBmb3IgMC4ycyAqL1xuLyogKGludGVuZGVkIHRvIGJlIHVzZWQgaW4gYSBsb29wIGZvciAycyBhbmltYXRpb24gc3BlZWQpICovXG5Aa2V5ZnJhbWVzIHJlY29yZGluZy1wdWxzZSB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICAzNSUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICA2NSUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAubXhfVm9pY2VNZXNzYWdlUHJpbWFyeUNvbnRhaW5lciB7XG4gICAgICAgIG91dGxpbmU6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTgtMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1dob0lzVHlwaW5nVGlsZSB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xOHB4OyAvKiBvZmZzZXQgcGFkZGluZyBmcm9tIG14X1Jvb21WaWV3X01lc3NhZ2VMaXN0IHRvIGNlbnRlciBhdmF0YXJzICovXG4gICAgcGFkZGluZy10b3A6IDE4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4vKiBwb3NpdGlvbiB0aGUgaW5kaWNhdG9yIGluIHRoZSBzYW1lIHBsYWNlIGhvcml6b250YWxseSBhcyAubXhfRXZlbnRUaWxlX2F2YXRhci4gKi9cbi5teF9XaG9Jc1R5cGluZ1RpbGVfYXZhdGFycyB7XG4gICAgZmxleDogMCAwIDgycHg7IC8qIDE4IChwYWRkaW5nIG9uIG1lc3NhZ2UgbGlzdCkgKyA2NCAocGFkZGluZyBvbiBldmVudCBsaW5lcykgKi9cbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5teF9XaG9Jc1R5cGluZ1RpbGVfYXZhdGFycyA+IDpub3QoOmZpcnN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLWxlZnQ6IC0xMnB4O1xufVxuXG4ubXhfV2hvSXNUeXBpbmdUaWxlX2F2YXRhcnMgLm14X0Jhc2VBdmF0YXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG59XG5cbi5teF9XaG9Jc1R5cGluZ1RpbGVfcmVtYWluaW5nQXZhdGFyUGxhY2Vob2xkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHF1aW5hcnktY29udGVudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogMjRweDtcbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICBmb250LXNpemU6IDAuOGVtO1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubXhfV2hvSXNUeXBpbmdUaWxlX2xhYmVsIHtcbiAgICBmbGV4OiAxO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgIGNvbG9yOiAkcm9vbXRvcGljLWNvbG9yO1xufVxuXG4ubXhfV2hvSXNUeXBpbmdUaWxlX2xhYmVsID4gc3BhbiB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL3Jlcy9pbWcvdHlwaW5nLWluZGljYXRvci0yeC5naWZcIik7XG4gICAgYmFja2dyb3VuZC1zaXplOiAyNXB4O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgYm90dG9tO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5teF9NYXRyaXhDaGF0X3VzZUNvbXBhY3RMYXlvdXQge1xuICAgIC5teF9XaG9Jc1R5cGluZ1RpbGUge1xuICAgICAgICBwYWRkaW5nLXRvcDogNHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9FZGl0V3lzaXd5Z0NvbXBvc2VyIHtcbiAgICAtLUVkaXRXeXNpd3lnQ29tcG9zZXItcGFkZGluZy1pbmxpbmU6IDNweDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IC8qIGRpc2FibGUgb3ZlcmZsb3cgKi9cbiAgICB3aWR0aDogYXV0bztcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA4cHggdmFyKC0tRWRpdFd5c2l3eWdDb21wb3Nlci1wYWRkaW5nLWlubGluZSk7XG5cbiAgICAubXhfV3lzaXd5Z0NvbXBvc2VyX0VkaXRvcl9jb250ZW50IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBib3JkZXI6IHNvbGlkIDFweCAkcHJpbWFyeS1oYWlybGluZS1jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICAgICAgICBwYWRkaW5nOiAzcHggNnB4O1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkYWNjZW50LTQwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9FZGl0V3lzaXd5Z0NvbXBvc2VyX2J1dHRvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWZsb3c6IHJvdyB3cmFwLXJldmVyc2U7IC8qIGRpc3BsYXkgXCJTYXZlXCIgb3ZlciBcIkNhbmNlbFwiICovXG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGdhcDogNXB4O1xuICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiBhdXRvO1xuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMDBweDsgLyogbWFnaWMgbnVtYmVyIHRvIGFsaWduIHRoZSBlZGdlIG9mIHRoZSBidXR0b24gd2l0aCB0aGUgaW5wdXQgYXJlYSAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0Zvcm1hdHRpbmdCdXR0b25zX0J1dHRvbiB7XG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZW5kV3lzaXd5Z0NvbXBvc2VyIHtcbiAgICBmbGV4OiAxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIC8qIGZpeGVkIGxpbmUgaGVpZ2h0IHRvIHByZXZlbnQgZW1vamkgZnJvbSBiZWluZyB0YWxsZXIgdGhhbiB0ZXh0ICovXG4gICAgbGluZS1oZWlnaHQ6ICRmb250LTE4cHg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiAxM3B4O1xuICAgIGdhcDogOHB4O1xuXG4gICAgLm14X0Zvcm1hdHRpbmdCdXR0b25zIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgfVxuXG4gICAgLm14X1d5c2l3eWdDb21wb3Nlcl9FZGl0b3Ige1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICBwYWRkaW5nOiA2cHggMTFweCA2cHggMTJweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICBnYXA6IDEwcHg7XG5cbiAgICAgICAgLm14X0UyRUljb24ge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgN3B4IDA7XG4gICAgICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgfVxuXG4gICAgICAgICZbZGF0YS1pcy1leHBhbmRlZD1cInRydWVcIl0ge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTRweDtcblxuICAgICAgICAgICAgLm14X1d5c2l3eWdDb21wb3Nlcl9FZGl0b3JfY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAzcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogM3B4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJltkYXRhLWlzLWV4cGFuZGVkPVwiZmFsc2VcIl0ge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9XeXNpd3lnQ29tcG9zZXJfRWRpdG9yX2NvbnRhaW5lciB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAyMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnB4O1xuICAgICAgICAgICAgLyogZG9uJ3QgZ3JvdyB3aWRlciB0aGFuIGF2YWlsYWJsZSBzcGFjZSAqL1xuICAgICAgICAgICAgd2lkdGg6IDA7XG5cbiAgICAgICAgICAgIC5teF9XeXNpd3lnQ29tcG9zZXJfRWRpdG9yX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgIC8qIHRoaXMgd2lsbCBjZW50ZXIgdGhlIGNvbnRlbnRlZGl0YWJsZSAqL1xuICAgICAgICAgICAgICAgIC8qIGluIGl0J3MgcGFyZW50IHZlcnRpY2FsbHkgKi9cbiAgICAgICAgICAgICAgICAvKiB3aGlsZSBrZWVwaW5nIHRoZSBhdXRvY29tcGxldGUgYXQgdGhlIHRvcCAqL1xuICAgICAgICAgICAgICAgIC8qIG9mIHRoZSBjb21wb3Nlci4gVGhlIHBhcmVudCBuZWVkcyB0byBiZSBhIGZsZXggY29udGFpbmVyIGZvciB0aGlzIHRvIHdvcmsuICovXG4gICAgICAgICAgICAgICAgbWFyZ2luOiBhdXRvIDA7XG4gICAgICAgICAgICAgICAgLyogdGhlIGxpbmUgaGVpZ2h0IGlzICRmb250LTIycHggKHNldCBpbiBfRWRpdG9yLnBjc3MpIGFuZCB3ZSB3YW50IHRvIGRpc3BsYXkgMTYgbGluZXMgKi9cbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDE2ICogJGZvbnQtMjJweCk7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X1NlbmRXeXNpd3lnQ29tcG9zZXItZm9jdXNlZCB7XG4gICAgLm14X1d5c2l3eWdDb21wb3Nlcl9FZGl0b3Ige1xuICAgICAgICBib3JkZXItY29sb3I6ICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1d5c2l3eWdDb21wb3Nlcl9FZGl0b3JfY29udGFpbmVyIHtcbiAgICAvKiBUaGVzZSBhcmUgc2V0IGluIEphdmFzY3JpcHQgKi9cbiAgICAtLWF2YXRhci1sZXR0ZXI6IFwiXCI7XG4gICAgLS1hdmF0YXItYmFja2dyb3VuZDogdW5zZXQ7XG4gICAgLS1wbGFjZWhvbGRlcjogXCJcIjtcblxuICAgIEBrZXlmcmFtZXMgdmlzdWFsYmVsbCB7XG4gICAgICAgIGZyb20ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHZpc3VhbC1iZWxsLWJnLWNvbG9yO1xuICAgICAgICB9XG4gICAgICAgIHRvIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1d5c2l3eWdDb21wb3Nlcl9FZGl0b3JfY29udGVudCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0yMnB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuXG4gICAgICAgIC8qIEZvcmNlIGNhcmV0IG5vZGVzIHRvIGJlIHNlbGVjdGVkIGluIGZ1bGwgc28gdGhhdCB0aGV5IGNhbiBiZSAqL1xuICAgICAgICAvKiBuYXZpZ2F0ZWQgdGhyb3VnaCBpbiBhIHNpbmdsZSBrZXlwcmVzcyAqL1xuICAgICAgICAuY2FyZXROb2RlIHtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBhbGw7XG4gICAgICAgIH1cblxuICAgICAgICAvKiB3ZSBhbHdheXMgaGF2ZSBhIDxici8+IHRhZyBhdCB0aGUgZW5kIG9mIHRoZSBodG1sLCB3ZSBuZWVkIGl0IHRvIGJlIHByZXNlbnQgYXQgZmlyc3QgdGhlbiBoaWRlIGl0IGFzIHNvb24gYXNcbiAgICAgICAgd2UgaGF2ZSBhbnkgb3RoZXIgZWxlbWVudHMgKi9cbiAgICAgICAgYnI6bm90KDpvbmx5LWNoaWxkKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIC8qIHRoaXMgbWF5IHNlZW0gcmVkdW5kYW50LCBidXQgd2UgbmVlZCB0byBoYW5kbGUgemVybyBjb250ZW50IGZvcm1hdHRpbmcgdGFncywgd2hpY2ggb2NjdXIgd2hlbiB3ZSBzcGxpdCBhXG4gICAgICAgICAgICAgICBmb3JtYXR0aW5nIHRhZyBpbnRvIHBhcmFncmFwaHMgKi9cbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6ICRmb250LTIycHg7XG4gICAgICAgIH1cblxuICAgICAgICB1bCxcbiAgICAgICAgb2wge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tY3BkLXNwYWNlLTd4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIE1ha2UgbGlzdCB0eXBlIGRpc2MgdG8gbWF0Y2ggcmljaCB0ZXh0IGVkaXRvciAqL1xuICAgICAgICB1bCB7XG4gICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG4gICAgICAgIH1cblxuICAgICAgICBibG9ja3F1b3RlIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNzc3O1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAkYmxvY2txdW90ZS1iYXItY29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEwcHg7XG5cbiAgICAgICAgICAgIG1hcmdpbi1ibG9jay1zdGFydDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ibG9jay1lbmQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xuICAgICAgICAgICAgbWFyZ2luLWlubGluZS1lbmQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICA+IHByZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcblxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMngpIHZhcigtLWNwZC1zcGFjZS0zeCk7XG5cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbmxpbmVjb2RlLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5saW5lY29kZS1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICAgIH1cblxuICAgICAgICBjb2RlOm5vdChwcmUgKikge1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICRtb25vc3BhY2UtZm9udC1mYW1pbHkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRpbmxpbmVjb2RlLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkaW5saW5lY29kZS1ib3JkZXItY29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMC01eCk7XG5cbiAgICAgICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdW5zZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKiB0aGlzIHNlbGVjdG9yIHJlcHJlc2VudHMgd2hhdCB3aWxsIGJlY29tZSBhIHBpbGxcbiAgICAgICAgbmIgZGVzcGl0ZSB0aGVyZSBiZWluZyBteF9Vc2VyUGlsbCBhbmQgbXhfUm9vbVBpbGwgY2xhc3NlcyBhcHBlbmRlZCB0byB0aGVzZSBwaWxsc1xuICAgICAgICBpbiB0aGUgY3VycmVudCBjb21wb3NlciwgdGhlcmUgZG9uJ3QgYXBwZWFyIHRvIGJlIGFueSBzdHlsZXMgYXNzb2NpYXRlZCB3aXRoIHRob3NlIGNsYXNzZXNcbiAgICAgICAgaW4gdGhpcyByZXBvICovXG4gICAgICAgIGFbZGF0YS1tZW50aW9uLXR5cGVdIHtcbiAgICAgICAgICAgIC8qIGNvbWJpbmUgbXhfUGlsbCBmcm9tIF9QaWxsLnBjc3MgKi9cbiAgICAgICAgICAgIHBhZGRpbmc6ICRmb250LTFweCAwLjRlbTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xN3B4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGZvbnQtMTZweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtb24tc29saWQtcHJpbWFyeSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGlsbC1iZy1jb2xvcjtcblxuICAgICAgICAgICAgLyogLi4ud2l0aCB0aGUgb3ZlcnJpZGVzIGZyb20gX0Jhc2ljTWVzc2FnZUNvbXBvc2VyLnBjc3MgKi9cbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBhbGw7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjdXJzb3I6IHVuc2V0OyAvKiBXZSBkb24ndCB3YW50IGluZGljYXRlIGNsaWNrYWJpbGl0eSAqL1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgICAgICAvKiBhdmF0YXIgcHNldWRvIGVsZW1lbnQgKi9cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgLyogQWZ0ZXIgY29uc29saWRhdGlvbiwgYWxsIG9mIHRoZSBzdHlsaW5nIGZyb20gX1BpbGwuc2NzcyB3YXMgYmVpbmcgb3ZlcnJpZGRlbixcbiAgICAgICAgICAgICAgICBzbyB0YWtlIHdoYXQgaXMgaW4gX0Jhc2ljTWVzc2FnZUNvbXBvc2VyLnBjc3MgYXMgdGhlIHN0YXJ0aW5nIHBvaW50ICovXG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHZhcigtLWF2YXRhci1sZXR0ZXIpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWF2YXRhci1iYWNrZ3JvdW5kKSwgJGJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICAgICB3aWR0aDogJGZvbnQtMTZweDtcbiAgICAgICAgICAgICAgICBtaW4td2lkdGg6ICRmb250LTE2cHg7IC8qIGVuc3VyZSB0aGUgYXZhdGFyIGlzIG5vdCBjb21wcmVzc2VkICovXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgIC8qIEdldCB0aGUgcG9zaXRpb25pbmcgb2YgdGhlIGF2YXRhciBqdXN0IHJpZ2h0IGZvciBjb25zaXN0ZW5jeSB3aXRoIHRpbWVsaW5lICovXG4gICAgICAgICAgICAgICAgbWFyZ2luLWlubGluZS1zdGFydDogLTAuNHJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMC4yNHJlbTtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogMC4xMnJlbTtcblxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAkZm9udC0xNnB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRmb250LTE2cHg7XG5cbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tYXZhdGFyLWNvbG9yLCAkYXZhdGFyLWluaXRpYWwtY29sb3IpO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTAtNHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1d5c2l3eWdDb21wb3Nlcl9FZGl0b3JfY29udGVudF9wbGFjZWhvbGRlcjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogdmFyKC0tcGxhY2Vob2xkZXIpO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgfVxufVxuXG4ubXhfV3lzaXd5Z0NvbXBvc2VyX0F1dG9Db21wbGV0ZVdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC8qIER1ZSB0byB0aGUgZmFjdCB0aGF0IGVkaXRpbmcgYSBtZXNzYWdlIG5vdyBoYXMgYSBsYXJnZXIgYW1vdW50IG9mIGdyZXlcbiAgICBjb2xvdXIgYWJvdmUgaXQgKGR1ZSB0byB0aGUgcmljaCB0ZXh0IGJ1dHRvbnMgYWJvdmUgdGhlIGNvbXBvc2VyKSwgd2UgbmVlZFxuICAgIHRvIGdpdmUgdGhlIGF1dG9jb21wbGV0ZSBhIGJpdCBtb3JlIHZpc3VhbCBzZXBhcmF0aW9uIGJ5IHVzaW5nIGEgYm9yZGVyLlxuICAgICovXG4gICAgPiAubXhfQXV0b2NvbXBsZXRlIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9Gb3JtYXR0aW5nQnV0dG9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiA4cHg7XG5cbiAgICAubXhfRm9ybWF0dGluZ0J1dHRvbnNfQnV0dG9uIHtcbiAgICAgICAgLS1zaXplOiAyOHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZSk7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1zaXplKTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICB9XG5cbiAgICAubXhfRm9ybWF0dGluZ0J1dHRvbnNfQnV0dG9uX2hvdmVyIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcGFuZWxzO1xuXG4gICAgICAgICAgICAubXhfRm9ybWF0dGluZ0J1dHRvbnNfSWNvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Gb3JtYXR0aW5nQnV0dG9uc19hY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYWNjZW50LTMwMDtcblxuICAgICAgICAubXhfRm9ybWF0dGluZ0J1dHRvbnNfSWNvbiB7XG4gICAgICAgICAgICBjb2xvcjogJGFjY2VudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Gb3JtYXR0aW5nQnV0dG9uc19kaXNhYmxlZCB7XG4gICAgICAgIC5teF9Gb3JtYXR0aW5nQnV0dG9uc19JY29uIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0Zvcm1hdHRpbmdCdXR0b25zX0ljb24ge1xuICAgICAgICAtLXNpemU6IDE2cHg7XG4gICAgICAgIGhlaWdodDogdmFyKC0tc2l6ZSk7XG4gICAgICAgIHdpZHRoOiB2YXIoLS1zaXplKTtcbiAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgIH1cbn1cblxuLm14X0Zvcm1hdHRpbmdCdXR0b25zX1Rvb2x0aXBfS2V5Ym9hcmRTaG9ydGN1dCB7XG4gICAga2JkIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgICAgICBmb250LWZhbWlseTogSW50ZXIsIHNhbnMtc2VyaWY7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xpbmtNb2RhbCB7XG4gICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTh4KTtcbiAgICBtYXgtd2lkdGg6IDYwMHB4O1xuICAgIGhlaWdodDogMzQxcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAubXhfTGlua01vZGFsX2NvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIG1hcmdpbi10b3A6IDdweDtcblxuICAgICAgICAubXhfTGlua01vZGFsX0ZpZWxkIHtcbiAgICAgICAgICAgIGZsZXg6IGluaXRpYWw7XG4gICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfTGlua01vZGFsX2J1dHRvbnMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG5cbiAgICAgICAgICAgIC5teF9EaWFsb2dfYnV0dG9ucyB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTksIDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0F2YXRhclNldHRpbmdfYXZhdGFyIHtcbiAgICB3aWR0aDogMTIwcHg7XG4gICAgbWluLXdpZHRoOiAxMjBweDsgLyogc28gaXQgZG9lc24ndCBnZXQgY3J1c2hlZCBieSB0aGUgZmxleGJveCBpbiBsYW5ndWFnZXMgd2l0aCBsb25nZXIgd29yZHMgKi9cbiAgICBoZWlnaHQ6IDEyMHB4O1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmLm14X0F2YXRhclNldHRpbmdfYXZhdGFyRGlzcGxheTpob3ZlciAubXhfQXZhdGFyU2V0dGluZ19ob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJiA+ICoge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIH1cblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5IHtcbiAgICAgICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIH1cblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rX3NtIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJiA+IGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEyMHB4O1xuICAgICAgICB3aWR0aDogaW5oZXJpdDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTIwcHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgfVxuXG4gICAgLm14X0F2YXRhclNldHRpbmdfdXBsb2FkQnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDI4cHg7XG4gICAgICAgIGhlaWdodDogMjhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMzJweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLWNhbnZhcy1kZWZhdWx0KTtcblxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIHN2ZyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB0b3A6IDNweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9BdmF0YXJTZXR0aW5nX3VwbG9hZEJ1dHRvbjpob3ZlcixcbiAgICAubXhfQXZhdGFyU2V0dGluZ191cGxvYWRCdXR0b25fYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1wcmltYXJ5KTtcbiAgICB9XG59XG5cbi5teF9BdmF0YXJTZXR0aW5nX3JlbW92ZU1lbnVJdGVtIHN2Zyxcbi5teF9BdmF0YXJTZXR0aW5nX3JlbW92ZU1lbnVJdGVtIHNwYW4ge1xuICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1jcml0aWNhbC1wcmltYXJ5KSAhaW1wb3J0YW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ZvbnRTY2FsaW5nUGFuZWxfcHJldmlldyB7XG4gICAgLS1Gb250U2NhbGluZ1BhbmVsX3ByZXZpZXctcGFkZGluZy1ibG9jazogOXB4O1xuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJHF1aW5hcnktY29udGVudDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHBhZGRpbmc6IDAgdmFyKC0tY3BkLXNwYWNlLTR4KSB2YXIoLS1Gb250U2NhbGluZ1BhbmVsX3ByZXZpZXctcGFkZGluZy1ibG9jaykgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBkaXNwbGF5OiBmbG93LXJvb3Q7XG5cbiAgICAmLm14X0lSQ0xheW91dCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiA5cHg7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZVtkYXRhLWxheW91dD1cImJ1YmJsZVwiXSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgfVxuXG4gICAgLm14X0V2ZW50VGlsZV9tc2dPcHRpb24ge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLm14X0ZvbnRTY2FsaW5nUGFuZWxfRHJvcGRvd24ge1xuICAgIHdpZHRoOiAxMjBweDtcbiAgICAvKiBPdmVycmlkZSBkZWZhdWx0IG14X0ZpZWxkIG1hcmdpbiAqL1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCkgIWltcG9ydGFudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbWFnZVNpemVQYW5lbF9yYWRpb3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG5cbiAgICA+IGxhYmVsIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA2OHB4OyAvKiBrZWVwIHRoZSBib3hlcyBzZXBhcmF0ZSAqL1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLm14X0ltYWdlU2l6ZVBhbmVsX3NpemUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgICAgIHdpZHRoOiAyMjFweDtcbiAgICAgICAgaGVpZ2h0OiAxNDhweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTRweDsgLyogbW92ZSByYWRpbyBidXR0b24gYXdheSBmcm9tIGJvdHRvbSBlZGdlIGEgYml0ICovXG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ludGVncmF0aW9uTWFuYWdlciB7XG4gICAgLm14X0RpYWxvZ19ib3JkZXIge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB3aWR0aDogNjAlO1xuICAgICAgICBoZWlnaHQ6IDcwJTtcbiAgICAgICAgbWF4LXdpZHRoOiBpbml0aWFsO1xuICAgICAgICBtYXgtaGVpZ2h0OiBpbml0aWFsO1xuICAgIH1cblxuICAgIC5teF9EaWFsb2cge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIGlmcmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG5cbiAgICBoMyB7XG4gICAgICAgIG1hcmdpbi1ibG9jazogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICB9XG5cbiAgICAubXhfSW50ZWdyYXRpb25NYW5hZ2VyX2xvYWRpbmcsXG4gICAgLm14X0ludGVncmF0aW9uTWFuYWdlcl9lcnJvciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubXhfSW50ZWdyYXRpb25NYW5hZ2VyX2Vycm9yIGgzIHtcbiAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSm9pblJ1bGVTZXR0aW5nc191cGdyYWRlUmVxdWlyZWQge1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgIHBhZGRpbmc6IDRweCAxNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRhY2NlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGNvbG9yOiAkYWNjZW50O1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtMTJweDtcbiAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbn1cblxuLm14X0pvaW5SdWxlU2V0dGluZ3Nfc3BhY2VzV2l0aEFjY2VzcyB7XG4gICAgPiBoNCB7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xNXB4O1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIH1cblxuICAgID4gc3BhbiB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtbWVkaXVtKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7IC8qIG1hdGNoZXMgaGVpZ2h0IG9mIGF2YXRhciBmb3Igdi1hbGlnbiAqL1xuICAgICAgICBjb2xvcjogJHNlY29uZGFyeS1jb250ZW50O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgLm14X0Jhc2VBdmF0YXIge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmICsgc3BhbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMTZweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm14X0pvaW5SdWxlU2V0dGluZ3NfcmFkaW9CdXR0b24ge1xuICAgIHBhZGRpbmctdG9wOiAxNnB4O1xuXG4gICAgLm14X1N0eWxlZFJhZGlvQnV0dG9uX2NvbnRlbnQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRmb250LTI0cHg7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLm14X1N0eWxlZFJhZGlvQnV0dG9uX2Rpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cblxuICAgICYubXhfU3R5bGVkUmFkaW9CdXR0b25fZGlzYWJsZWQgKyBzcGFuIHtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cblxuICAgICYgKyBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tbGVmdDogMzRweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgZm9udC1zaXplOiAkZm9udC0xNXB4O1xuICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMjRweDtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcblxuICAgICAgICAmICsgLm14X1N0eWxlZFJhZGlvQnV0dG9uIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfSm9pblJ1bGVTZXR0aW5nc19sYWJlbGxlZENoZWNrYm94IHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG5cbi5teF9Kb2luUnVsZVNldHRpbmdzX3JlY29tbWVuZGVkIHtcbiAgICBjb2xvcjogJGFjY2VudC0xMDAwO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0tleWJvYXJkU2hvcnRjdXQge1xuICAgIGtiZCB7XG4gICAgICAgIHBhZGRpbmc6IDVweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICAgICAgbWluLXdpZHRoOiAyMHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGtiZC1ib3JkZXItY29sb3I7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4ICRrYmQtYm9yZGVyLWNvbG9yO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5Db3B5cmlnaHQgMjAyMCwgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGF5b3V0U3dpdGNoZXJfTGF5b3V0U2VsZWN0b3Ige1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAvKipcbiAgICAgKiBUaGUgc2V0dGluZ3MgZm9ybSBoYXMgYSBkZWZhdWx0IGdhcCBvZiAxMHB4XG4gICAgICogV2Ugd2FudCB0byBoYXZlIGEgYmlnZ2VyIGdhcCBiZXR3ZWVuIHRoZSBsYXlvdXQgb3B0aW9uc1xuICAgICAqL1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KSAhaW1wb3J0YW50O1xuXG4gICAgLm14TGF5b3V0U3dpdGNoZXJfTGF5b3V0U2VsZWN0b3JfTGF5b3V0UmFkaW8ge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXByaW1hcnkpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgICAgIC5teExheW91dFN3aXRjaGVyX0xheW91dFNlbGVjdG9yX0xheW91dFJhZGlvX2lubGluZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAqIDEwcHhcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgZ2FwOiBjYWxjKHZhcigtLWNwZC1zcGFjZS0yeCkgKyB2YXIoLS1jcGQtc3BhY2UtMC01eCkpO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teExheW91dFN3aXRjaGVyX0xheW91dFNlbGVjdG9yX0xheW91dFJhZGlvX2lubGluZSxcbiAgICAgICAgLm14TGF5b3V0U3dpdGNoZXJfTGF5b3V0U2VsZWN0b3JfTGF5b3V0UmFkaW9fRXZlbnRUaWxlUHJldmlldyB7XG4gICAgICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogT3ZlcnJpZGUgdGhlIGV2ZW50IHRpbGUgc3R5bGUgdG8gbWFrZSBpdCBmaXQgaW4gdGhlIHNlbGVjdG9yXG4gICAgICAgICAqIFR3ZWFrIGFsc28gaG92ZXIgc3R5bGUgYW5kIHJlbW92ZSBhY3Rpb24gYmFyXG4gICAgICAgICAqL1xuICAgICAgICAubXhMYXlvdXRTd2l0Y2hlcl9MYXlvdXRTZWxlY3Rvcl9MYXlvdXRSYWRpb19FdmVudFRpbGVQcmV2aWV3IHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgICAgICAgICAubXhfRXZlbnRUaWxlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBIaWRlIHRoZSBtZXNzYWdlIG9wdGlvbnMgYW5kIG1lc3NhZ2UgYWN0aW9uIGJhciBpbiB0aGUgcHJldmlld1xuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbXNnT3B0aW9uLFxuICAgICAgICAgICAgICAgIC5teF9NZXNzYWdlQWN0aW9uQmFyIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubXhfRXZlbnRUaWxlX2NvbnRlbnQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJltkYXRhLWxheW91dD1cImdyb3VwXCJdIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogY2FsYyh2YXIoLS1jcGQtc3BhY2UtM3gpICogLTEpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIEFkZCBtYXJnaW4gdG8gY2VudGVyIHRoZSBidWJibGVcbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAmW2RhdGEtbGF5b3V0PVwiYnViYmxlXCJdIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIEFkZCB0aGUgbGF5b3V0IG1hcmdpbiBhbmQgdGhlIG1hcmdpbiB0byB2ZXJ0aWNhbGx5IGNlbnRlciB0aGUgYnViYmxlXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDM0cHg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICZbZGF0YS1sYXlvdXQ9XCJpcmNcIl0gLm14X01lc3NhZ2VUaW1lc3RhbXAge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBoaWRlIHRoZSBjb250YWluZXIgdXNlZCBmb3Igc3BhY2luZyBjb25zaXN0ZW5jeSAqL1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9FdmVudFRpbGVfbGluZSB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhMYXlvdXRTd2l0Y2hlcl9MYXlvdXRTZWxlY3Rvcl9MYXlvdXRSYWRpb19zZXBhcmF0b3Ige1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItYm9yZGVyLWludGVyYWN0aXZlLXNlY29uZGFyeSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTm90aWZpY2F0aW9uUHVzaGVyU2V0dGluZ3Mge1xuICAgIC5teF9Ob3RpZmljYXRpb25QdXNoZXJTZXR0aW5nc19kZXNjcmlwdGlvbiB7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9Ob3RpZmljYXRpb25QdXNoZXJTZXR0aW5nc19kZXRhaWwge1xuICAgICAgICBtYXJnaW4tdG9wOiAtNHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIzIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TZXR0aW5nc1RhYiAubXhfTm90aWZpY2F0aW9uU2V0dGluZ3MyIHtcbiAgICAvKiBUaGUgbGFicyBub3RpY2UgYmFubmVyIHJlbmRlcnMgZGlyZWN0bHkgYmVsb3cgdGhpcywgc28ga2VlcCB0aGVtIGFwYXJ0LiBXaGVuIGl0IGlzIGFic2VudFxuICAgICAgIHRoZSBtYXJnaW4gY29sbGFwc2VzIHdpdGggdGhlIHNlY3Rpb24ncyBvd24sIGxlYXZpbmcgdGhlIHNwYWNpbmcgYmVsb3cgdW5jaGFuZ2VkLiAqL1xuICAgIC5teF9Ob3RpZmljYXRpb25TZXR0aW5nczJfZXJyb3Ige1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuXG4gICAgICAgIC8qIFRoZSBhbGVydCBsYXlzIGl0cyBhY3Rpb25zIG91dCBhdCBmbGV4LWJhc2lzIDAsIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBicmVhayB0aGUgbGFiZWxcbiAgICAgICAgICAgYWNyb3NzIGxpbmVzIHJhdGhlciB0aGFuIHdyYXBwaW5nIGl0IGJlbG93IHRoZSBtZXNzYWdlLiAqL1xuICAgICAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogQ29tcG91bmQgZHJvcHMgdGhlIGFjdGlvbiBvbnRvIGl0cyBvd24gcm93IGZvciBhbnkgYWxlcnQgdW5kZXIgNjAwcHgsIHdoaWNoIGxlYXZlcyB0aGlzXG4gICAgICAgICAgIHNob3J0IG1lc3NhZ2Ugc2l0dGluZyBiZXNpZGUgYSBtb3N0bHkgZW1wdHkgc2Vjb25kIHJvdy4gV3JhcCBvbiBkZW1hbmQgaW5zdGVhZCwgc28gdGhlXG4gICAgICAgICAgIGFjdGlvbiBvbmx5IG1vdmVzIGJlbG93IHRoZSBtZXNzYWdlIG9uY2UgdGhlIHR3byBnZW51aW5lbHkgc3RvcCBmaXR0aW5nIHNpZGUgYnkgc2lkZS5cbiAgICAgICAgICAgVGhlIGNoaWxkcmVuIGFyZSB0aGUgYWxlcnQncyBjb250ZW50IHJvdyBhbmQgdGhlIG1lc3NhZ2Ugd2l0aGluIGl0LiAqL1xuICAgICAgICA+IGRpdiB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICAgICAgID4gZGl2OmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcblxuICAgICAgICAgICAgICAgIC8qIENvbXBvdW5kIHRpbnRzIG9ubHkgdGhlIGljb24gb24gYSBjcml0aWNhbCBhbGVydCBhbmQgbGVhdmVzIHRoZSBtZXNzYWdlIGluIHRoZVxuICAgICAgICAgICAgICAgICAgIGRlZmF1bHQgdGV4dCBjb2xvdXIsIHNvIHN0YXRlIGl0IGhlcmUgdG8gcmVhZCBsaWtlIHdhcm5pbmdzIGVsc2V3aGVyZS4gVGhlIGFjdGlvblxuICAgICAgICAgICAgICAgICAgIGlzIGEgc2libGluZyBvZiB0aGlzIGVsZW1lbnQgYW5kIHNvIGtlZXBzIGl0cyBvd24gY29sb3VyLiAqL1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1jcml0aWNhbC1wcmltYXJ5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc1NlY3Rpb25fc3ViU2VjdGlvbnMge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29udGVudDtcbiAgICAgICAgZ2FwOiAzMnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc1N1YnNlY3Rpb25fZGVzY3JpcHRpb24ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG4gICAgICAgIC5teF9TZXR0aW5nc1N1YnNlY3Rpb25fdGV4dCB7XG4gICAgICAgICAgICAubXhfTm90aWZpY2F0aW9uU2V0dGluZ3MyX25vdGlmaWNhdGlvbkJhZGdlIHtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc1N1YnNlY3Rpb25fY29udGVudCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAganVzdGlmeS1pdGVtczogc3RyZXRjaDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzdHJldGNoO1xuICAgIH1cblxuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICB9XG5cbiAgICAubXhfVGFnQ29tcG9zZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuXG4gICAgICAgICYubXhfVGFnQ29tcG9zZXJfZGlzYWJsZWQge1xuICAgICAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RhZ0NvbXBvc2VyX3RhZ3Mge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgICAgIGdhcDogOHB4O1xuXG4gICAgICAgICAgICAubXhfVGFnIHtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRwYW5lbC1hY3Rpb25zO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgICAgIC5teF9UYWdfZGVsZXRlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRlcnRpYXJ5LWNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1zZWxmOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE1LTIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1VzZXJOb3RpZlNldHRpbmdzX2dyaWQge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxMnB4KTsgLyogKzEycHggdG8gbGluZSB1cCBjZW50ZXIgb2YgJ05vaXN5JyBjb2x1bW4gd2l0aCB0b2dnbGUgc3dpdGNoZXMgKi9cbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byByZXBlYXQoMywgNjJweCk7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlciBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG5cbiAgICAvKiBPdmVycmlkZSBTdHlsZWRSYWRpb0J1dHRvbiBkZWZhdWx0IHN0eWxlcyAqL1xuICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbiB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgIC5teF9TdHlsZWRSYWRpb0J1dHRvbl9jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfU3R5bGVkUmFkaW9CdXR0b25fc3BhY2VyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBsZWZ0IGFsaWduIHNlY3Rpb24gaGVhZGluZyAqL1xuICAgIC5teF9TZXR0aW5nc1N1YnNlY3Rpb25IZWFkaW5nIHtcbiAgICAgICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICB9XG59XG5cbi5teF9Vc2VyTm90aWZTZXR0aW5nc19ncmlkUm93Q29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBjb250ZW50cztcbn1cblxuLm14X1VzZXJOb3RpZlNldHRpbmdzX2dyaWRSb3cge1xuICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xufVxuXG4ubXhfVXNlck5vdGlmU2V0dGluZ3NfZ3JpZFJvd0xhYmVsIHtcbiAgICBwYWRkaW5nLWlubGluZTogdW5zZXQ7IC8qIFJlbW92ZSBkZWZhdWx0IGxlZ2VuZCBwYWRkaW5nICovXG4gICAganVzdGlmeS1zZWxmOiBzdGFydDtcbiAgICAvKiA8bGVnZW5kPiBkb2VzIG5vdCBhY2NlcHQgKi9cbiAgICAvKiBkaXNwbGF5OiBpbmxpbmUgfCBpbmxpbmUtYmxvY2sgKi9cbiAgICAvKiBmb3JjZSBpdCBpbmxpbmUgdXNpbmcgZmxvYXQgKi9cbiAgICBmbG9hdDogbGVmdDtcbn1cblxuLm14X1VzZXJOb3RpZlNldHRpbmdzX2dyaWRDb2x1bW5MYWJlbCB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLXNlbWlib2xkKTtcbn1cbi5teF9Vc2VyTm90aWZTZXR0aW5nc19ncmlkUm93RXJyb3Ige1xuICAgIC8qIG9jY3VweSBmdWxsIHJvdyAqL1xuICAgIGdyaWQtY29sdW1uOiAxLy0xO1xuICAgIGp1c3RpZnktc2VsZjogc3RhcnQ7XG4gICAgcGFkZGluZy1yaWdodDogMzAlO1xuICAgIC8qIGNvbGxhcHNlIGhhbGYgb2YgdGhlIGdyaWQtZ2FwICovXG4gICAgbWFyZ2luLXRvcDogY2FsYygtMSAqIHZhcigtLWNwZC1zcGFjZS0xeCkpO1xufVxuXG4ubXhfVXNlck5vdGlmU2V0dGluZ3NfZmxvYXRpbmdTZWN0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xuXG4gICAgJiA+IGRpdjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIC8qIHNlY3Rpb24gaGVhZGVyICovXG4gICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMThweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxuXG4gICAgPiB0YWJsZSB7XG4gICAgICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG5cbiAgICAgICAgdHIgPiB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAvKiBKdXN0IGZvciBhIGJpdCBvZiBzcGFjaW5nICovXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5teF9Vc2VyTm90aWZTZXR0aW5nc19jbGVhck5vdGlmc0J1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xufVxuXG4ubXhfVGFnQ29tcG9zZXIge1xuICAgIG1hcmdpbi10b3A6IDM1cHg7IC8qIGxvdHMgb2YgZGlzdGFuY2UgZnJvbSB0aGUgbGFzdCBsaW5lIG9mIHRoZSB0YWJsZSAqL1xufVxuXG4ubXhfQWNjZXNzaWJsZUJ1dHRvbi5teF9Ob3RpZmljYXRpb25Tb3VuZF9icm93c2Uge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMTkgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0dlbmVyYWxVc2VyU2V0dGluZ3NUYWJfc2VjdGlvbi0tZGlzY292ZXJ5X2V4aXN0aW5nX3ZlcmlmaWNhdGlvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIC5teF9GaWVsZCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDAgMWVtO1xuICAgIH1cbn1cblxuLm14X1Bob25lTnVtYmVyc19pbnB1dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4ubXhfUGhvbmVOdW1iZXJzX2lucHV0ID4gLm14X0ZpZWxkIHtcbiAgICBmbGV4LWdyb3c6IDE7XG59XG5cbi5teF9QaG9uZU51bWJlcnNfY291bnRyeSB7XG4gICAgd2lkdGg6IDgwcHg7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKiBDb3B5cmlnaHQgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfUG93ZXJMZXZlbFNlbGVjdG9yX0J1dHRvbiB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5LCAyMDIwICwgMjAyNCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfUm9vbVByb2ZpbGVTZXR0aW5ncyB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRxdWluYXJ5LWNvbnRlbnQ7XG5cbiAgICAubXhfUm9vbVByb2ZpbGVTZXR0aW5nc19wcm9maWxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAubXhfUm9vbVByb2ZpbGVTZXR0aW5nc19wcm9maWxlX2NvbnRyb2xzIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA1NHB4O1xuXG4gICAgICAgICAgICAubXhfRmllbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Sb29tUHJvZmlsZVNldHRpbmdzX3Byb2ZpbGVfY29udHJvbHNfdG9waWMge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgICAgICAgICAmID4gdGV4dGFyZWEge1xuICAgICAgICAgICAgICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgICAgICAgICAgICAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmLm14X1Jvb21Qcm9maWxlU2V0dGluZ3NfcHJvZmlsZV9jb250cm9sc190b3BpYy0tcm9vbSB0ZXh0YXJlYSB7XG4gICAgICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDRlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9Sb29tUHJvZmlsZVNldHRpbmdzX3Byb2ZpbGVfY29udHJvbHNfdXNlcklkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogdmFyKC0tY3BkLXNwYWNlLTV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9Sb29tUHJvZmlsZVNldHRpbmdzX2J1dHRvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIG1hcmdpbi10b3A6IDEwcHg7IC8qIDE4cHggaXMgYWxyZWFkeSBhY2NvdW50ZWQgZm9yIGJ5IHRoZSA8cD4gYWJvdmUgdGhlIGJ1dHRvbnMgKi9cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tY3BkLXNwYWNlLTd4KTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0SW50ZWdyYXRpb25NYW5hZ2VyIHtcbiAgICAubXhfU2V0SW50ZWdyYXRpb25NYW5hZ2VyX2hlYWRpbmdfbWFuYWdlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgY29sdW1uLWdhcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbiAgICB9XG4gICAgZm9ybSB7XG4gICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NldHRpbmdzRmllbGRzZXQge1xuICAgIC8qIFJlc2V0IHRoZSBicm93c2VyIGRlZmF1bHQgPGZpZWxkc2V0PiBzdHlsaW5nICovXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1pbmxpbmU6IHVuc2V0O1xuICAgIHBhZGRpbmctYmxvY2s6IHVuc2V0O1xuICAgIHBhZGRpbmctaW5saW5lOiB1bnNldDtcbiAgICBtaW4taW5saW5lLXNpemU6IHVuc2V0O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbn1cblxuLm14X1NldHRpbmdzRmllbGRzZXRfbGVnZW5kIHtcbiAgICAvKiBSZXNldCB0aGUgYnJvd3NlciBkZWZhdWx0IDxsZWdlbmQ+IHN0eWxpbmcgKi9cbiAgICBwYWRkaW5nLWlubGluZTogdW5zZXQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctbWQtc2VtaWJvbGQpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbn1cblxuLm14X1NldHRpbmdzRmllbGRzZXRfZGVzY3JpcHRpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcblxuICAgIHAge1xuICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubXhfU2V0dGluZ3NGaWVsZHNldF9jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4ubXhfU2V0dGluZ3NIZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgLyogT3ZlcnJpZGUgbWFyZ2luIGZyb20gY29tbW9uLnBjc3MgKi9cbiAgICBtYXJnaW46IDA7XG5cbiAgICA+IHNwYW4ge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLW1lZGl1bSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItdGV4dC1hY3Rpb24tYWNjZW50KTtcbiAgICB9XG5cbiAgICAmLm14X1NldHRpbmdzSGVhZGVyX3JlY29tbWVuZGVkOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLWNyaXRpY2FsLXByaW1hcnkpO1xuICAgICAgICBjbGlwLXBhdGg6IGNpcmNsZSg0cHgpO1xuICAgIH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1NldHRpbmdzU3ViaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuXG4gICAgPiBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LXNtLW1lZGl1bSk7XG4gICAgfVxuXG4gICAgLm14X1NldHRpbmdzU3ViaGVhZGVyX3N1Y2Nlc3Mge1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc3VjY2Vzcy1wcmltYXJ5KTtcbiAgICB9XG5cbiAgICAubXhfU2V0dGluZ3NTdWJoZWFkZXJfZXJyb3Ige1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtY3JpdGljYWwtcHJpbWFyeSk7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRXhpc3RpbmdTcGVsbENoZWNrTGFuZ3VhZ2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLm14X0V4aXN0aW5nU3BlbGxDaGVja0xhbmd1YWdlX2xhbmd1YWdlIHtcbiAgICBmbGV4OiAxO1xuICAgIG1hcmdpbi1yaWdodDogMTBweDtcbn1cblxuLm14X0dlbmVyYWxVc2VyU2V0dGluZ3NUYWJfc3BlbGxDaGVja0xhbmd1YWdlSW5wdXQge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVGhlbWVDaG9pY2VQYW5lbF9UaGVtZVNlbGVjdG9ycyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgLyogT3ZlcnJpZGUgZm9ybSBkZWZhdWx0IHN0eWxlICovXG4gICAgZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50O1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KSAhaW1wb3J0YW50O1xuXG4gICAgLm14X1RoZW1lQ2hvaWNlUGFuZWxfdGhlbWVTZWxlY3RvciB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtc2Vjb25kYXJ5KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTEtNXgpO1xuICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS01eCkgdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1iZy1jYW52YXMtZGVmYXVsdCk7XG5cbiAgICAgICAgJi5teF9UaGVtZUNob2ljZVBhbmVsX3RoZW1lU2VsZWN0b3JfZW5hYmxlZCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1ib3JkZXItaW50ZXJhY3RpdmUtcHJpbWFyeSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X1RoZW1lQ2hvaWNlUGFuZWxfdGhlbWVTZWxlY3Rvcl9kaXNhYmxlZCB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWNwZC1jb2xvci1ib3JkZXItZGlzYWJsZWQpO1xuXG4gICAgICAgICAgICAubXhfVGhlbWVDaG9pY2VQYW5lbF90aGVtZVNlbGVjdG9yX0xhYmVsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtZGlzYWJsZWQpO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubXhfVGhlbWVDaG9pY2VQYW5lbF90aGVtZVNlbGVjdG9yX0xhYmVsIHtcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtc2VtaWJvbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoLm14X1RoZW1lQ2hvaWNlUGFuZWxfdGhlbWVTZWxlY3Rvcl9kaXNhYmxlZCkge1xuICAgICAgICAgICAgLm14X1RoZW1lQ2hvaWNlUGFuZWxfdGhlbWVTZWxlY3Rvcl9MYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1VwZGF0ZUNoZWNrQnV0dG9uX3N1bW1hcnkge1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI2IEVsZW1lbnQgQ3JlYXRpb25zIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1VzZXJQZXJzb25hbEluZm9TZXR0aW5ncyB7XG4gICAgaDIge1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS00eCkgMDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSwgMjAyMCAsIDIwMjQgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1VzZXJQcm9maWxlU2V0dGluZ3Mge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkcXVpbmFyeS1jb250ZW50O1xuXG4gICAgaDIge1xuICAgICAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS00eCkgMDtcbiAgICB9XG5cbiAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5nc19wcm9maWxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgZ2FwOiAxNnB4O1xuXG4gICAgICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzX3Byb2ZpbGVfZGlzcGxheU5hbWUge1xuICAgICAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBnYXA6IDA7XG4gICAgICAgIH1cbiAgICAgICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3NfcHJvZmlsZV9uYW1lQW5kU3RhdHVzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3NfcHJvZmlsZV9jb250cm9scyB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG5cbiAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5nc19wcm9maWxlX2NvbnRyb2xzX3VzZXJJZCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICAubXhfQ29weWFibGVUZXh0IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5nc19wcm9maWxlX2NvbnRyb2xzX3VzZXJJZF9sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB9XG5cbiAgICAubXhfVXNlclByb2ZpbGVTZXR0aW5nc19wcm9maWxlX2J1dHRvbnMge1xuICAgICAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgIH1cblxuICAgIC5teF9Vc2VyUHJvZmlsZVNldHRpbmdzX2FjY291bnRtYW5hZ2VJY29uIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLm14X1VzZXJQcm9maWxlU2V0dGluZ3NfcHJvZmlsZSB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMzBweDtcbiAgICB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9FbmNyeXB0aW9uRGV0YWlscyxcbi5teF9PdGhlclNldHRpbmdzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgLyogIWltcG9ydGFudCBvdmVycmlkZSBjb21wb3VuZCBmb3JtICovXG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNngpICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuXG4gICAgLm14X0VuY3J5cHRpb25EZXRhaWxzX3Nlc3Npb25fdGl0bGUsXG4gICAgLm14X090aGVyU2V0dGluZ3NfdGl0bGUge1xuICAgICAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LWxnLXNlbWlib2xkKTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jcGQtY29sb3ItZ3JheS00MDApO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cblxuLm14X0VuY3J5cHRpb25EZXRhaWxzIHtcbiAgICAubXhfRW5jcnlwdGlvbkRldGFpbHNfc2Vzc2lvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gZGl2Om50aC1jaGlsZChvZGQpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNwZC1jb2xvci1ncmF5LTIwMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfRW5jcnlwdGlvbkRldGFpbHNfYnV0dG9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICB9XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9DaGFuZ2VSZWNvdmVyeUtleSB7XG4gICAgLm14X0luZm9ybWF0aW9uUGFuZWxfZGVzY3JpcHRpb24ge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgLm14X0NoYW5nZVJlY292ZXJ5S2V5X0Zvcm0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS04eCk7XG5cbiAgICAgICAgLm14X0NoYW5nZVJlY292ZXJ5S2V5X2Zvb3RlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0tleVBhbmVsIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZTpcbiAgICAgICAgICAgIFwiaGVhZGVyIGJ1dHRvblwiIGF1dG9cbiAgICAgICAgICAgIFwiY29udGVudCBidXR0b25cIiBhdXRvIC8gMWZyO1xuXG4gICAgICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIHJvdy1nYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgPiBzcGFuIHtcbiAgICAgICAgICAgIGdyaWQtYXJlYTogaGVhZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgZ3JpZC1hcmVhOiBjb250ZW50O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcblxuICAgICAgICAgICAgLm14X0tleVBhbmVsX2tleSB7XG4gICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IFwiRmlyYSBDb2RlXCIsIG1vbm9zcGFjZTtcbiAgICAgICAgICAgICAgICAvKlxuICAgICAgICAgICAgICAgICAqIEZyb20gZmlnbWEgaHR0cHM6Ly93d3cuZmlnbWEuY29tL2Rlc2lnbi9xVFdSZkl0cE8zUmRDam5US1B1NG1ML1NldHRpbmdzP25vZGUtaWQ9Mzc1LTc3NDcxJnQ9dDdsb3pZclNJMUFWWlozVS00XG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA3MHB4O1xuICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY3BkLWNvbG9yLWJnLXN1YnRsZS1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPiBidXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luOiAwIHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICBncmlkLWFyZWE6IGJ1dHRvbjtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jcGQtY29sb3ItaWNvbi1zZWNvbmRhcnktYWxwaGEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0tleUZvcm0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS04eCk7XG5cbiAgICAgICAgLm14X0tleUZvcm1fcGFzc3dvcmQge1xuICAgICAgICAgICAgPiBpbnB1dFtuYW1lPVwicmVjb3ZlcnlLZXlcIl0ge1xuICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICogRnJvbSBmaWdtYSBodHRwczovL3d3dy5maWdtYS5jb20vZGVzaWduL3FUV1JmSXRwTzNSZENqblRLUHU0bUwvU2V0dGluZ3M/bm9kZS1pZD0zNzUtNzc1MDYmdD1kODJOZFJCRG9Lc1VlMUM5LTRcbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDcwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogdmFyKC0tY3BkLXNwYWNlLTN4KSB2YXIoLS1jcGQtc3BhY2UtM3gpIHZhcigtLWNwZC1zcGFjZS0zeCkgdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgICAgICAgICBib3JkZXI6IHZhcigtLWNwZC1ib3JkZXItd2lkdGgtMSkgc29saWQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiBidXR0b24ge1xuICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICogU2VlIGZpZ21hIGh0dHBzOi8vd3d3LmZpZ21hLmNvbS9kZXNpZ24vcVRXUmZJdHBPM1JkQ2puVEtQdTRtTC9TZXR0aW5ncz9ub2RlLWlkPTM3NS03NzUwNiZ0PWQ4Mk5kUkJEb0tzVWUxQzktNFxuICAgICAgICAgICAgICAgICAqIEF2b2lkIHN0cmV0Y2hpbmcgdGhlIGhpZGUvc2hvdyBzeW1ib2wgdG8gdGhlIGhlaWdodCBvZiB0aGUgaW5wdXQsIGFuZCBjZW50cmUgaXQgdmVydGljYWxseS5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDI0LjVweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xuICAgICAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X0VuY3J5cHRpb25DYXJkIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtOHgpO1xuICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xMHgpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgLyogRnJvbSBmaWdtYSAqL1xuICAgIGJveC1zaGFkb3c6IDAgMS4ycHggMi40cHggMCByZ2IoMjcsIDI5LCAzNCwgMC4xNSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY3BkLWNvbG9yLWdyYXktNDAwKTtcblxuICAgIC5teF9FbmNyeXB0aW9uQ2FyZF9oZWFkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgPiBoMiB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICA+IHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiBleHRyYSBjbGFzcyBmb3Igc3BlY2lmeWluZyB0aGF0IHdlIGRvbid0IG5lZWQgYSBib3JkZXIgKi9cbiAgICAmLm14X0VuY3J5cHRpb25DYXJkX25vQm9yZGVyIHtcbiAgICAgICAgYm9yZGVyOiAwcHggbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgIH1cbn1cblxuLm14X0VuY3J5cHRpb25DYXJkX2J1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG4iLCIvKlxuICogQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG4gKiBQbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuICovXG5cbi5teF9FbmNyeXB0aW9uQ2FyZF9lbXBoYXNpc2VkQ29udGVudCB7XG4gICAgc3BhbiB7XG4gICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtbWVkaXVtKTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbn1cbiIsIi8qXG4gKiBDb3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcbiAqIFBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4gKi9cblxuLm14X1JlY292ZXJ5UGFuZWxPdXRPZlN5bmMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuIiwiLypcbiAqIENvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuICogUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiAqL1xuXG4vKiBSZWQgdGV4dCBmb3IgdGhlIFwiRG8gbm90IGNsb3NlIHRoaXMgd2luZG93XCIgd2FybmluZyAqL1xuLm14X1Jlc2V0SWRlbnRpdHlQYW5lbF93YXJuaW5nIHtcbiAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtY3JpdGljYWwtcHJpbWFyeSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0dGluZ3NCYW5uZXIge1xuICAgIGJhY2tncm91bmQ6ICRzeXN0ZW07XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICBnYXA6IDEycHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAubXhfU2V0dGluZ3NCYW5uZXJfY29udGVudCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjMgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NldHRpbmdzSW5kZW50IHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyMywgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NldHRpbmdzU2VjdGlvbiB7XG4gICAgLS1TZXR0aW5nc1RhYl9zZWN0aW9uLW1hcmdpbi1ib3R0b20tcHJlZmVyZW5jZXMtbGFiczogMzBweDtcbiAgICAtLVNldHRpbmdzVGFiX2hlYWRpbmdfbnRoX2NoaWxkLW1hcmdpbi10b3A6IDMwcHg7XG4gICAgLS1TZXR0aW5nc1RhYl90b29sdGlwLW1heC13aWR0aDogMjBweDsgLyogU28gaXQgZml0cyBpbiB0aGUgc3BhY2UgcHJvdmlkZWQgYnkgdGhlIHBhZ2UgKi9cblxuICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuXG4gICAgLyogQ29tcG91bmQgbGlua3MgY2FycnkgZGF0YS1raW5kIGFuZCBwcm92aWRlIHRoZWlyIG93biBjb2xvdXIuICovXG4gICAgYTpub3QoW2RhdGEta2luZF0pIHtcbiAgICAgICAgY29sb3I6ICRsaW5rcztcbiAgICB9XG5cbiAgICAmLm14X1NldHRpbmdzU2VjdGlvbl9uZXdVaSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTZ4KTtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xuICAgIH1cblxuICAgIC5teF9TZXR0aW5nc1NlY3Rpb25faGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtM3gpO1xuICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICB9XG59XG5cbi5teF9TZXR0aW5nc1NlY3Rpb25fc3ViU2VjdGlvbnMge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS04eCk7XG5cbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS00eCkgMDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2V0dGluZ3NUYWIge1xuICAgIC0tU2V0dGluZ3NUYWJfdG9vbHRpcC1tYXgtd2lkdGg6IDEyMHB4OyAvKiBTbyBpdCBmaXRzIGluIHRoZSBzcGFjZSBwcm92aWRlZCBieSB0aGUgcGFnZSAqL1xuXG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG5cbiAgICAvKiBDb21wb3VuZCBsaW5rcyBjYXJyeSBkYXRhLWtpbmQgYW5kIHByb3ZpZGUgdGhlaXIgb3duIGNvbG91ci4gKi9cbiAgICBhOm5vdChbZGF0YS1raW5kXSkge1xuICAgICAgICBjb2xvcjogJGxpbmtzO1xuICAgIH1cblxuICAgIGZvcm0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0zeCk7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG5cbiAgICAvKiBuZXZlciB3YW50IGZ1bGwgd2lkdGggYnV0dG9uc1xuICAgIGV2ZW50IHdoZW4gb3RoZXIgY29udGVudCBpcyAxMDAlIHdpZHRoICovXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b24ge1xuICAgICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgLm14X0ZpZWxkIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBmbGV4OiAxO1xuICAgIH1cbn1cblxuLm14X1NldHRpbmdzVGFiX3dhcm5pbmdUZXh0IHtcbiAgICBjb2xvcjogJGFsZXJ0O1xufVxuXG4ubXhfU2V0dGluZ3NUYWJfc3Vic2VjdGlvblRleHQge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtYm9keS1tZC1yZWd1bGFyKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIG1hcmdpbi1pbmxpbmUtZW5kOiA4MHB4OyAvKiBBbGlnbiB3aXRoIHRoZSByZXN0IG9mIHRoZSB2aWV3ICovXG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xufVxuXG4ubXhfU2V0dGluZ3NUYWJfc2VjdGlvbiB7XG4gICAgJGVuZC1ndXR0ZXI6IDgwcHg7XG5cbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNngpO1xuXG4gICAgLm14X1NldHRpbmdzRmxhZyB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAkZW5kLWd1dHRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcblxuICAgICAgICAubXhfU2V0dGluZ3NGbGFnX2xhYmVsIHtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtICRmb250LTQ4cHgpOyAvKiBGb3JjZSB3b3JkIHdyYXAgaW5zdGVhZCBvZiBjb2xsaWRpbmcgd2l0aCB0aGUgc3dpdGNoICovXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB9XG5cbiAgICAgICAgLm14X1RvZ2dsZVN3aXRjaCB7XG4gICAgICAgICAgICBmbG9hdDogaW5saW5lLWVuZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgID4gcCB7XG4gICAgICAgIG1hcmdpbi1pbmxpbmUtZW5kOiAkZW5kLWd1dHRlcjtcbiAgICB9XG5cbiAgICAmLm14X1NldHRpbmdzVGFiX3N1YnNlY3Rpb25UZXh0IC5teF9TZXR0aW5nc0ZsYWcge1xuICAgICAgICBtYXJnaW4taW5saW5lLWVuZDogMCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLm14X1NldHRpbmdzVGFiX3NlY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xuICAgIGdhcDogdmFyKC0tY3BkLXNwYWNlLTh4KTtcblxuICAgIHBhZGRpbmctYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X05vdGlmaWNhdGlvblNldHRpbmdzVGFiX25vdGlmaWNhdGlvbnNTZWN0aW9uIHtcbiAgICB3aWR0aDogMzYwcHg7XG5cbiAgICAubXhfU3R5bGVkUmFkaW9CdXR0b24ge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgICAgIGNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuICAgICAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIGlucHV0ICsgZGl2IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9Ob3RpZmljYXRpb25TZXR0aW5nc1RhYl9taWNyb0NvcHkge1xuICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMzJweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuaW5wdXRbdHlwZT1cImZpbGVcIl0ubXhfTm90aWZpY2F0aW9uU291bmRfc291bmRVcGxvYWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMyBOb3JkZWNrIElUICsgQ29uc3VsdGluZyBHbWJIXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9QZW9wbGVSb29tU2V0dGluZ3NUYWJfa25vY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X1Blb3BsZVJvb21TZXR0aW5nc1RhYl9jb250ZW50IHtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgbWFyZ2luOiAwIHZhcigtLWNwZC1zcGFjZS00eCk7XG59XG5cbi5teF9QZW9wbGVSb29tU2V0dGluZ3NUYWJfYXZhdGFyIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ubXhfUGVvcGxlUm9vbVNldHRpbmdzVGFiX25hbWUge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xufVxuXG4ubXhfUGVvcGxlUm9vbVNldHRpbmdzVGFiX3RpbWVzdGFtcCB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbn1cblxuLm14X1Blb3BsZVJvb21TZXR0aW5nc1RhYl91c2VySWQge1xuICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiB2YXIoLS1jcGQtZm9udC1zaXplLWJvZHktc20pO1xufVxuXG4ubXhfUGVvcGxlUm9vbVNldHRpbmdzVGFiX3NlZU1vcmVPckxlc3Mge1xuICAgIG1hcmdpbjogdmFyKC0tY3BkLXNwYWNlLTN4KSAwIDA7XG59XG5cbi5teF9QZW9wbGVSb29tU2V0dGluZ3NUYWJfYWN0aW9uIHtcbiAgICBmbGV4LXNocmluazogMDtcblxuICAgICsgLm14X1Blb3BsZVJvb21TZXR0aW5nc1RhYl9hY3Rpb24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tY3BkLXNwYWNlLTN4KTtcbiAgICB9XG59XG5cbi5teF9QZW9wbGVSb29tU2V0dGluZ3NUYWJfcGFyYWdyYXBoIHtcbiAgICBtYXJnaW46IDA7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1JvbGVzUm9vbVNldHRpbmdzVGFiX2Jhbm5lZExpc3Qge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5teF9Sb2xlc1Jvb21TZXR0aW5nc1RhYl91bmJhbkJ0biB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAxOS0yMDI0IE5ldyBWZWN0b3IgTHRkLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2VjdXJpdHlSb29tU2V0dGluZ3NUYWJfYWR2YW5jZWRTZWN0aW9uIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xufVxuXG4ubXhfU2VjdXJpdHlSb29tU2V0dGluZ3NUYWJfd2FybmluZyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGNvbHVtbi1nYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG5cbiAgICBzdmcge1xuICAgICAgICBjb2xvcjogI2ZmMDA2NDsgLyogTWF0Y2ggbGVnYWN5IGljb24gY29sb3VyIHVudGlsIHJlZGVzaWduICovXG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0ZpZWxkLm14X0FwcGVhcmFuY2VVc2VyU2V0dGluZ3NUYWJfY2hlY2tib3hDb250cm9sbGVkRmllbGQge1xuICAgIHdpZHRoOiAyNTZweDtcbiAgICAvKiBMaW5lIHVwIHdpdGggU2V0dGluZ3MgZmllbGQgdG9nZ2xlIGJ1dHRvbiAqL1xuICAgIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDA7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5Db3B5cmlnaHQgMjAxOSBOZXcgVmVjdG9yIEx0ZFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSGVscFVzZXJTZXR0aW5nc1RhYl9hY2Nlc3NUb2tlbkRldGFpbHMge1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9LZXlib2FyZFNob3J0Y3V0X3Nob3J0Y3V0TGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG59XG5cbi5teF9LZXlib2FyZFNob3J0Y3V0X3Nob3J0Y3V0Um93LFxuLm14X0tleWJvYXJkU2hvcnRjdXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi5teF9LZXlib2FyZFNob3J0Y3V0X3Nob3J0Y3V0Um93IHtcbiAgICBjb2x1bW4tZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfS2V5Ym9hcmRTaG9ydGN1dCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgY29sdW1uLWdhcDogdmFyKC0tY3BkLXNwYWNlLTF4KTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNSBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X01lZGlhUHJldmlld0FjY291bnRTZXR0aW5nX1JhZGlvIHtcbiAgICBtYXJnaW46IHZhcigtLWNwZC1zcGFjZS0xeCkgMDtcbn1cblxuLm14X01lZGlhUHJldmlld0FjY291bnRTZXR0aW5nIHtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xufVxuXG4ubXhfTWVkaWFQcmV2aWV3QWNjb3VudFNldHRpbmdfUmFkaW9IZWxwIHtcbiAgICAvKiAhaW1wb3J0YW50IGJlY2F1c2UgaXQncyBvdmVycmlkaW5nIGNvbXBvdW5kIGhlbHAgbWVzc2FnZSAqL1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tYm90dG9tOiB2YXIoLS1jcGQtc3BhY2UtMXgpO1xufVxuXG4ubXhfTWVkaWFQcmV2aWV3QWNjb3VudFNldHRpbmdfRm9ybSB7XG4gICAgd2lkdGg6IDEwMCU7XG59XG5cbi5teF9NZWRpYVByZXZpZXdBY2NvdW50U2V0dGluZ19Ub2dnbGVTd2l0Y2gge1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtbWVkaXVtKTtcbiAgICBsZXR0ZXItc3BhY2luZzogdmFyKC0tY3BkLWZvbnQtbGV0dGVyLXNwYWNpbmctYm9keS1tZCk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTWpvbG5pclVzZXJTZXR0aW5nc1RhYl9saXN0SXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjQgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE5IE5ldyBWZWN0b3IgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9QcmVmZXJlbmNlc1VzZXJTZXR0aW5nc1RhYl9zZWN0aW9uX2hpbnQge1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktc20tcmVndWxhcik7XG4gICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMTktMjAyNCBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1NlY3VyaXR5VXNlclNldHRpbmdzVGFiX2J1bGtPcHRpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgY29sdW1uLWdhcDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbn1cblxuLm14X1NlY3VyaXR5VXNlclNldHRpbmdzVGFiX2lnbm9yZWRVc2VycyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4ubXhfU2VjdXJpdHlVc2VyU2V0dGluZ3NUYWJfaWdub3JlZFVzZXIge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLWNwZC1zcGFjZS0xeCk7XG59XG5cbi5teF9TZWN1cml0eVVzZXJTZXR0aW5nc1RhYl9pZ25vcmVkVXNlciAubXhfQWNjZXNzaWJsZUJ1dHRvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1jcGQtc3BhY2UtMngpO1xufVxuXG4ubXhfU2VjdXJpdHlVc2VyU2V0dGluZ3NUYWJfd2FybmluZyB7XG4gICAgY29sb3I6ICRhbGVydDtcblxuICAgIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tY3BkLXNwYWNlLTR4KTtcbiAgICAgICAgY29sb3I6ICRhbGVydDtcbiAgICB9XG59XG5cbmZvcm0ubXhfU2VjdXJpdHlVc2VyU2V0dGluZ3NUYWJfcG9zdGhvZ1NlY3Rpb24ge1xuICAgIC8qIEluaGliaXQgY29tcG91bmQgc3BhY2luZyBoZXJlIGFzIGl0IGNsYXNoZXMgd2l0aCBwcmUtY29tcG91bmQgVUkgKi9cbiAgICBkaXNwbGF5OiBjb250ZW50cyAhaW1wb3J0YW50O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0LDIwMjUgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU2lkZWJhclVzZXJTZXR0aW5nc1RhYl9ob21lQWxsUm9vbXNDaGVja2JveCB7XG4gICAgbWFyZ2luLWxlZnQ6IDI0cHg7XG5cbiAgICAmICsgZGl2IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDQ4cHg7XG4gICAgfVxufVxuXG4ubXhfU2lkZWJhclVzZXJTZXR0aW5nc1RhYl9pY29uIHtcbiAgICBtYXJnaW4tcmlnaHQ6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG4gICAgbWFyZ2luLXRvcDogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiBhdXRvO1xufVxuXG4ubXhfU2lkZWJhclVzZXJTZXR0aW5nc1RhYl9jaGVja2JveCBsYWJlbCB7XG4gICAgZGlzcGxheTogZmxleDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcGFjZUJhc2ljU2V0dGluZ3Mge1xuICAgIC5teF9GaWVsZCB7XG4gICAgICAgIG1hcmdpbjogMjRweCAwO1xuICAgIH1cblxuICAgIC5teF9TcGFjZUJhc2ljU2V0dGluZ3NfYXZhdGFyQ29udGFpbmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLXRvcDogMjRweDtcblxuICAgICAgICAubXhfU3BhY2VCYXNpY1NldHRpbmdzX2F2YXRhciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDgwcHg7XG4gICAgICAgICAgICB3aWR0aDogODBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICAgICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzMHB4O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmOyAvKiB3aGl0ZSBpY29uIGZpbGwgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gaW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgID4gLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogYXV0byAxOHB4O1xuICAgICAgICAgICAgY29sb3I6ICRsaW5rcztcbiAgICAgICAgICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWJvZHktbWQtcmVndWxhcik7XG4gICAgICAgIH1cblxuICAgICAgICA+IC5teF9TcGFjZUJhc2ljU2V0dGluZ3NfYXZhdGFyX3JlbW92ZSB7XG4gICAgICAgICAgICBjb2xvcjogJGFsZXJ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25faGFzS2luZCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IG1pbi1jb250ZW50O1xuICAgIH1cblxuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2Rpc2FibGVkIHtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfU3BhY2VDaGlsZHJlblBpY2tlciB7XG4gICAgbWFyZ2luOiAxNnB4IDA7XG5cbiAgICAubXhfU3R5bGVkUmFkaW9CdXR0b24gKyAubXhfU3R5bGVkUmFkaW9CdXR0b24ge1xuICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIH1cblxuICAgIC5teF9TZWFyY2hCb3gge1xuICAgICAgICAvKiBUbyBtYXRjaCB0aGUgc3BhY2UgYXJvdW5kIHRoZSB0aXRsZSAqL1xuICAgICAgICBtYXJnaW46IDAgMCAxNXB4IDA7XG4gICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIH1cblxuICAgIC5teF9TcGFjZUNoaWxkcmVuUGlja2VyX25vUmVzdWx0cyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAyNHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9TcGFjZUNyZWF0ZU1lbnVfd3JhcHBlciB7XG4gICAgLyogYmFja2dyb3VuZCBibHVyIGV2ZXJ5dGhpbmcgZXhjZXB0IFNwYWNlUGFuZWwgKi9cbiAgICAubXhfQ29udGV4dHVhbE1lbnVfYmFja2dyb3VuZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkaWFsb2ctYmFja2Ryb3AtY29sb3I7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgbGVmdDogNjhweDtcbiAgICB9XG5cbiAgICAubXhfQ29udGV4dHVhbE1lbnUge1xuICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICB3aWR0aDogNDgwcHg7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgPiBkaXYge1xuICAgICAgICAgICAgPiBoMiB7XG4gICAgICAgICAgICAgICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy1zbS1zZW1pYm9sZCk7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZm9udC0xOHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPiBwIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9TcGFjZUNyZWF0ZU1lbnVfYmFjayB7XG4gICAgICAgICAgICB3aWR0aDogMjRweDtcbiAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0wLTV4KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwYW5lbC1hY3Rpb25zO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5IHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAyMnB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiBtaW4tY29udGVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2Rpc2FibGVkIHtcbiAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW5saW5lVGVybXNBZ3JlZW1lbnRfY2JDb250YWluZXIge1xuICAgIG1hcmdpbi10b3A6IHZhcigtLWNwZC1zcGFjZS00eCk7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1ib2R5LW1kLXJlZ3VsYXIpO1xuXG4gICAgYSB7XG4gICAgICAgIGNvbG9yOiAkYWNjZW50O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgLm14X0lubGluZVRlcm1zQWdyZWVtZW50X2NoZWNrYm94IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcblxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfQW5hbHl0aWNzVG9hc3Qge1xuICAgIC5teF9BY2Nlc3NpYmxlQnV0dG9uX2tpbmRfZGFuZ2VyX291dGxpbmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuICAgICAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGFjY2VudDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgfVxuXG4gICAgLm14X0FjY2Vzc2libGVCdXR0b25fa2luZF9wcmltYXJ5IHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcbiAgICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRhY2NlbnQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1jcGQtZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9JbmNvbWluZ0NhbGxUb2FzdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDsgLyogcmVzdG9yZSBwb2ludGVyIGV2ZW50cyBzbyB0aGUgdXNlciBjYW4gYWNjZXB0L2RlY2xpbmUgKi9cblxuICAgIC5teF9JbmNvbWluZ0NhbGxUb2FzdF9jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtNHgpO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAubXhfSW5jb21pbmdDYWxsVG9hc3RfdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogYXV0byAxZnIgYXV0bztcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IHZhcigtLWNwZC1zcGFjZS0yeCk7XG5cbiAgICAgICAgICAgIGgyIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9JbmNvbWluZ0NhbGxUb2FzdF9leHBhbmRCdXR0b24ge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNwZC1zcGFjZS0xeCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNwZC1jb2xvci1pY29uLXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xcztcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tY3BkLWNvbG9yLWljb24tcHJpbWFyeSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJiA+IHN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9JbmNvbWluZ0NhbGxUb2FzdF9hdmF0YXJzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfSW5jb21pbmdDYWxsVG9hc3RfYnV0dG9ucyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZ2FwOiB2YXIoLS1jcGQtc3BhY2UtMngpO1xuICAgICAgICAgICAgcGFkZGluZy1ibG9jay1zdGFydDogdmFyKC0tY3BkLXNwYWNlLTJ4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9JbmNvbWluZ0NhbGxUb2FzdF9hY3Rpb25CdXR0b24ge1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTMxcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfSW5jb21pbmdMZWdhY3lDYWxsVG9hc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDsgLyogcmVzdG9yZSBwb2ludGVyIGV2ZW50cyBzbyB0aGUgdXNlciBjYW4gYWNjZXB0L2RlY2xpbmUgKi9cblxuICAgIC5teF9JbmNvbWluZ0xlZ2FjeUNhbGxUb2FzdF9jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDhweDtcblxuICAgICAgICAubXhfTGVnYWN5Q2FsbEV2ZW50X2NhbGxlciB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9udC0xOHB4O1xuXG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcblxuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5teF9MZWdhY3lDYWxsRXZlbnRfdHlwZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogJGZvbnQtMTVweDtcbiAgICAgICAgICAgIGNvbG9yOiAkdGVydGlhcnktY29udGVudDtcblxuICAgICAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNnB4O1xuXG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubXhfSW5jb21pbmdMZWdhY3lDYWxsVG9hc3RfYnV0dG9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGdhcDogMTJweDtcblxuICAgICAgICAgICAgLm14X0luY29taW5nTGVnYWN5Q2FsbFRvYXN0X2J1dHRvbiB7XG4gICAgICAgICAgICAgICAgQG1peGluIExlZ2FjeUNhbGxCdXR0b247XG4gICAgICAgICAgICAgICAgcGFkZGluZzogOHB4O1xuICAgICAgICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRmb250LTE1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfSW5jb21pbmdMZWdhY3lDYWxsVG9hc3RfaWNvbkJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIHdpZHRoOiBpbmhlcml0O1xuICAgICAgICAgICAgY29sb3I6ICR0ZXJ0aWFyeS1jb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X05vblVyZ2VudEVjaG9GYWlsdXJlVG9hc3Qge1xuICAgIHN2ZyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6ICRmb250LTE4cHg7XG4gICAgICAgIGhlaWdodDogJGZvbnQtMThweDtcbiAgICAgICAgY29sb3I6ICNmZmY7IC8qIHdlIGtub3cgdGhhdCBub24tdXJnZW50IHRvYXN0cyBhcmUgYWx3YXlzIHN0eWxlZCB0aGUgc2FtZSAqL1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICB9XG5cbiAgICBzcGFuIHtcbiAgICAgICAgLyogaW5jbHVkZXMgdGhlIGkxOG4gYmxvY2sgKi9cbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMS0yMDIzIHggVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0hlYWRpbmdfaDEsXG4ubXhfSGVhZGluZ19oMixcbi5teF9IZWFkaW5nX2gzLFxuLm14X0hlYWRpbmdfaDQge1xuICAgIG1hcmdpbi1pbmxpbmU6IHVuc2V0O1xuICAgIG1hcmdpbi1ibG9jazogdW5zZXQ7XG4gICAgY29sb3I6ICRwcmltYXJ5LWNvbnRlbnQ7XG59XG5cbi5teF9IZWFkaW5nX2gxIHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1oZWFkaW5nLXhsLXNlbWlib2xkKTtcbn1cblxuLm14X0hlYWRpbmdfaDIge1xuICAgIGZvbnQ6IHZhcigtLWNwZC1mb250LWhlYWRpbmctbGctc2VtaWJvbGQpO1xufVxuXG4ubXhfSGVhZGluZ19oMyB7XG4gICAgZm9udDogdmFyKC0tY3BkLWZvbnQtaGVhZGluZy1tZC1zZW1pYm9sZCk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG59XG5cbi5teF9IZWFkaW5nX2g0IHtcbiAgICBmb250OiB2YXIoLS1jcGQtZm9udC1oZWFkaW5nLXNtLXNlbWlib2xkKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIwIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxOSBOZXcgVmVjdG9yIEx0ZC5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X1ZlcmlmaWNhdGlvblNob3dTYXNfZGVjaW1hbFNhcyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmctbGVmdDogM3B4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDNweDtcbn1cblxuLm14X1ZlcmlmaWNhdGlvblNob3dTYXNfZGVjaW1hbFNhcyBzcGFuIHtcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xufVxuXG4ubXhfVmVyaWZpY2F0aW9uU2hvd1Nhc19lbW9qaVNhcyB7XG4gICAgbWFyZ2luOiAyNXB4IDA7XG59XG5cbi5teF9WZXJpZmljYXRpb25TaG93U2FzX2J1dHRvblJvdyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOXB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEsIDIwMjIgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuQ29weXJpZ2h0IDIwMjAsIDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cbkNvcHlyaWdodCAyMDE1LCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi8qIGRhdGEtd2hhdGludGVudCBtYWtlcyBtb3JlIHNlbnNlIGhlcmUgc2VtYW50aWNhbGx5IGJ1dCB0aGVuIHRoZSB0b29sdGlwIHdvdWxkIHN0YXkgdmlzaWJsZSB3aXRob3V0IHRoZSBidXR0b24gKi9cbi8qIHdoaWNoIGxvb2tzIGJyb2tlbiwgc28gd2UgbWF0Y2ggdGhlIGJlaGF2aW91ciBvZiB0b29sdGlwcyB3aGljaCBpcyBmaW5lIHRvby4gKi9cbltkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdIC5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnMubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2hpZGRlbiB7XG4gICAgb3BhY2l0eTogMC4wMDE7IC8qIG9wYWNpdHkgMCBjYW4gY2F1c2UgYSByZS1sYXlvdXQgKi9cbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9ucyB7XG4gICAgLS1MZWdhY3lDYWxsVmlld0J1dHRvbnNfZHJvcGRvd25CdXR0b24tc2l6ZTogMTZweDtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJvdHRvbTogMzJweDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cztcbiAgICB6LWluZGV4OiAyMDA7IC8qIFRvIGJlIGFib3ZlIF9hbGxfIGZlZWRzICovXG4gICAgZ2FwOiAxOHB4O1xuXG4gICAgLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9uc19idXR0b24ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNhbGwtdmlldy1idXR0b24tb24tYmFja2dyb3VuZDtcblxuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBib3gtc2hhZG93OiAwcHggNHB4IDRweCAwcHggIzAwMDAwMDI2OyAvKiBTYW1lIG9uIGJvdGggdGhlbWVzICovXG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAgICAgY29sb3I6ICRjYWxsLXZpZXctYnV0dG9uLW9uLWZvcmVncm91bmQ7XG5cbiAgICAgICAgICAgIGhlaWdodDogMjRweDtcbiAgICAgICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnNfZHJvcGRvd25CdXR0b24ge1xuICAgICAgICAgICAgd2lkdGg6IHZhcigtLUxlZ2FjeUNhbGxWaWV3QnV0dG9uc19kcm9wZG93bkJ1dHRvbi1zaXplKTtcbiAgICAgICAgICAgIGhlaWdodDogdmFyKC0tTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2Ryb3Bkb3duQnV0dG9uLXNpemUpO1xuXG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTZweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9uc19idXR0b25fbWljIHN2ZyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIFN0YXRlIGJ1dHRvbnMgKi9cbiAgICAgICAgJi5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnNfYnV0dG9uX29uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjYWxsLXZpZXctYnV0dG9uLW9uLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjYWxsLXZpZXctYnV0dG9uLW9uLWZvcmVncm91bmQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2J1dHRvbl9zY3JlZW5zaGFyaW5nIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWNjZW50O1xuXG4gICAgICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlOyAvKiBTYW1lIG9uIGJvdGggdGhlbWVzICovXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnNfYnV0dG9uX29mZiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FsbC12aWV3LWJ1dHRvbi1vZmYtYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNhbGwtdmlldy1idXR0b24tb2ZmLWZvcmVncm91bmQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2J1dHRvbl9zY3JlZW5zaGFyaW5nLFxuICAgICAgICAgICAgJi5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnNfYnV0dG9uX3NpZGViYXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjYWxsLXZpZXctYnV0dG9uLW9uLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNhbGwtdmlldy1idXR0b24tb24tZm9yZWdyb3VuZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyogU3RhdGUgYnV0dG9ucyAqL1xuXG4gICAgICAgIC8qIFN0YXRlbGVzcyBidXR0b25zICovXG4gICAgICAgICYubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2J1dHRvbl9oYW5ndXAge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGFsZXJ0O1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsgLyogU2FtZSBvbiBib3RoIHRoZW1lcyAqL1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qIFN0YXRlbGVzcyBidXR0b25zICovXG5cbiAgICAgICAgLyogSW52aXNpYmxlIHN0YXRlICovXG4gICAgICAgICYubXhfTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2J1dHRvbl9pbnZpc2libGUge1xuICAgICAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIH1cbiAgICAgICAgLyogSW52aXNpYmxlIHN0YXRlICovXG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0NhbGxEdXJhdGlvbiB7XG4gICAgY29sb3I6ICRzZWNvbmRhcnktY29udGVudDtcbiAgICBmb250LXNpemU6ICRmb250LTEycHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9DYWxsVmlldyB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyLXBhbmVsLWJnLWNvbG9yO1xuXG4gICAgLm14X0FwcFRpbGUge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjYWxsLWJhY2tncm91bmQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RpYWxQYWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgcm93LWdhcDogMTZweDtcbiAgICBjb2x1bW4tZ2FwOiAwcHg7XG4gICAgbWFyZ2luLXRvcDogMjRweDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG5cbiAgICAvKiBzcXVlZXplIHRoZSBkaWFsIHBhZCBidXR0b25zIHRvZ2V0aGVyIGhvcml6b250YWxseSAqL1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XG59XG5cbi5teF9EaWFsUGFkX2J1dHRvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRxdWluYXJ5LWNvbnRlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogNDBweDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xufVxuXG4ubXhfRGlhbFBhZF9idXR0b24gLm14X0RpYWxQYWRfYnV0dG9uU3ViVGV4dCB7XG4gICAgZm9udC1zaXplOiA4cHg7XG59XG5cbi5teF9EaWFsUGFkX2RpYWxCdXR0b24ge1xuICAgIC8qIEFsd2F5cyBzaG93IHRoZSBkaWFsIGJ1dHRvbiBpbiB0aGUgY2VudGVyIGdyaWQgY29sdW1uICovXG4gICAgZ3JpZC1jb2x1bW46IDI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGFjY2VudDtcblxuICAgIHN2ZyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgY29sb3I6ICNmZmY7IC8qIG9uIGFsbCB0aGVtZXMgKi9cbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfRGlhbFBhZENvbnRleHRNZW51X2RpYWxQYWQgLm14X0RpYWxQYWQge1xuICAgIHJvdy1nYXA6IDE2cHg7XG4gICAgY29sdW1uLWdhcDogMzJweDtcbn1cblxuLm14X0RpYWxQYWRDb250ZXh0TWVudVdyYXBwZXIge1xuICAgIHBhZGRpbmc6IDE1cHg7XG59XG5cbi5teF9EaWFsUGFkQ29udGV4dE1lbnVfaGVhZGVyIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgbWFyZ2luLXRvcDogMzJweDtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG5cbiAgICAvKiBhIHNlcGFyYXRvciBiZXR3ZWVuIHRoZSBpbnB1dCBsaW5lIGFuZCB0aGUgZGlhbCBidXR0b25zICovXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRxdWF0ZXJuYXJ5LWNvbnRlbnQ7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbSAwLjI1cztcbn1cblxuLm14X0RpYWxQYWRDb250ZXh0TWVudV9jYW5jZWwge1xuICAgIEBtaXhpbiBjdXN0b21pc2VkQ2FuY2VsQnV0dG9uO1xuICAgIGZsb2F0OiByaWdodDtcbn1cblxuLm14X0RpYWxQYWRDb250ZXh0TWVudV9oZWFkZXI6Zm9jdXMtd2l0aGluIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGFjY2VudDtcbn1cblxuLm14X0RpYWxQYWRDb250ZXh0TWVudV90aXRsZSB7XG4gICAgY29sb3I6ICRtdXRlZC1mZy1jb2xvcjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG59XG5cbi5teF9EaWFsUGFkQ29udGV4dE1lbnVfZGlhbGxlZCB7XG4gICAgaGVpZ2h0OiAxLjVlbTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG1hcmdpbjogMHB4O1xufVxuLm14X0RpYWxQYWRDb250ZXh0TWVudV9kaWFsbGVkIGlucHV0IHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXgtd2lkdGg6IDE4NXB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZzogOHB4IDBweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMCwgMCwgMCk7XG59XG5cbi5teF9EaWFsUGFkQ29udGV4dE1lbnVfZGlhbFBhZCB7XG4gICAgbWFyZ2luOiAxNnB4O1xufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjAgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0RpYWxvZ19kaWFsUGFkV3JhcHBlciAubXhfRGlhbG9nIHtcbiAgICBwYWRkaW5nOiAwcHg7XG59XG5cbi5teF9EaWFsUGFkTW9kYWwge1xuICAgIHdpZHRoOiAyOTJweDtcbiAgICBoZWlnaHQ6IDM3MHB4O1xuICAgIHBhZGRpbmc6IDE2cHggMHB4IDBweCAwcHg7XG59XG5cbi5teF9EaWFsUGFkTW9kYWxfaGVhZGVyIHtcbiAgICBtYXJnaW4tdG9wOiAzMnB4O1xuICAgIG1hcmdpbi1sZWZ0OiA0MHB4O1xuICAgIG1hcmdpbi1yaWdodDogNDBweDtcblxuICAgIC8qIGEgc2VwYXJhdG9yIGJldHdlZW4gdGhlIGlucHV0IGxpbmUgYW5kIHRoZSBkaWFsIGJ1dHRvbnMgKi9cbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHF1YXRlcm5hcnktY29udGVudDtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItYm90dG9tIDAuMjVzO1xufVxuXG4ubXhfRGlhbFBhZE1vZGFsX2hlYWRlcjpmb2N1cy13aXRoaW4ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYWNjZW50O1xufVxuXG4ubXhfRGlhbFBhZE1vZGFsX3RpdGxlIHtcbiAgICBjb2xvcjogJG11dGVkLWZnLWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogdmFyKC0tY3BkLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbn1cblxuLm14X0RpYWxQYWRNb2RhbF9jYW5jZWwge1xuICAgIEBtaXhpbiBjdXN0b21pc2VkQ2FuY2VsQnV0dG9uO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG59XG5cbi5teF9EaWFsUGFkTW9kYWxfZmllbGQge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBtYXJnaW46IDBweDtcbiAgICBoZWlnaHQ6IDMwcHg7XG59XG5cbi5teF9EaWFsUGFkTW9kYWxfZmllbGQgLm14X0ZpZWxkX3Bvc3RmaXgge1xuICAgIC8qIFJlbW92ZSBib3JkZXIgc2VwYXJhdG9yIGJldHdlZW4gcG9zdGZpeCBhbmQgZmllbGQgY29udGVudCAqL1xuICAgIGJvcmRlci1sZWZ0OiBub25lO1xufVxuXG4ubXhfRGlhbFBhZE1vZGFsX2ZpZWxkIGlucHV0IHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWNwZC1mb250LXdlaWdodC1zZW1pYm9sZCk7XG59XG5cbi5teF9EaWFsUGFkTW9kYWxfZGlhbFBhZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSwgMjAyMiDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5Db3B5cmlnaHQgMjAyMCwgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuQ29weXJpZ2h0IDIwMTUsIDIwMTYgT3Blbk1hcmtldCBMdGRcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xlZ2FjeUNhbGxWaWV3IHtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGRhcmstcGFuZWwtYmctY29sb3I7XG4gICAgcGFkZGluZy1sZWZ0OiA4cHg7XG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xuICAgIC8qIFhYWDogUGlQQ29udGFpbmVyIHNldHMgcG9pbnRlci1ldmVudHM6IG5vbmUgLSBzaG91bGQgcHJvYmFibHkgYmUgc2V0IGJhY2sgaW4gYSBiZXR0ZXIgcGxhY2UgKi9cbiAgICBwb2ludGVyLWV2ZW50czogaW5pdGlhbDtcblxuICAgIC5teF9MZWdhY3lDYWxsVmlld190b2FzdCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA3NHB4O1xuXG4gICAgICAgIHBhZGRpbmc6IDRweCA4cHg7XG5cbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICB6LWluZGV4OiA1MDtcblxuICAgICAgICAvKiBTYW1lIG9uIGJvdGggdGhlbWVzICovXG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzE3MTkxYztcbiAgICB9XG5cbiAgICAubXhfTGVnYWN5Q2FsbFZpZXdfY29udGVudF93cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIC5teF9MZWdhY3lDYWxsVmlld19jb250ZW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuXG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogY2FsYygyMCUgKyAyMHB4KTsgLyogU3BhY2UgZm9yIHRoZSBzaWRlYmFyICovXG5cbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjYWxsLXZpZXctY29udGVudC1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAubXhfTGVnYWN5Q2FsbFZpZXdfc3RhdHVzIHtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA1MDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFjY2VudC1mZy1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm14X0xlZ2FjeUNhbGxWaWV3X2F2YXRhcnNDb250YWluZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgZGl2IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEycHg7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5teF9MZWdhY3lDYWxsVmlld19ob2xkQmFja2dyb3VuZCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG5cbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIGZpbHRlcjogYmx1cigyMHB4KTtcblxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigwLCAwLCAwLCAwLjYpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5teF9MZWdhY3lDYWxsVmlld19jb250ZW50X2hvbGQgLm14X0xlZ2FjeUNhbGxWaWV3X3N0YXR1cyB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9yZXMvaW1nL3ZvaXAvcGF1c2VkLnN2Z1wiKTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5teF9MZWdhY3lDYWxsVmlld19waXAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCgubXhfTGVnYWN5Q2FsbFZpZXdfc2lkZWJhcikgLm14X0xlZ2FjeUNhbGxWaWV3X2NvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgIC5teF9WaWRlb0ZlZWRfcHJpbWFyeSB7XG4gICAgICAgICAgICBhc3BlY3QtcmF0aW86IHVuc2V0O1xuICAgICAgICAgICAgYm9yZGVyOiAwO1xuXG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfTGVnYWN5Q2FsbFZpZXdfcGlwIHtcbiAgICAgICAgd2lkdGg6IDMyMHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3lzdGVtO1xuICAgICAgICBib3gtc2hhZG93OiAwcHggNHB4IDIwcHggcmdiKDAsIDAsIDAsIDAuMik7XG5cbiAgICAgICAgLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9ucyB7XG4gICAgICAgICAgICBib3R0b206IDEzcHg7XG5cbiAgICAgICAgICAgIC5teF9MZWdhY3lDYWxsVmlld0J1dHRvbnNfYnV0dG9uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMzRweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDM0cHg7XG5cbiAgICAgICAgICAgICAgICAmLm14X0xlZ2FjeUNhbGxWaWV3QnV0dG9uc19kcm9wZG93bkJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiB2YXIoLS1MZWdhY3lDYWxsVmlld0J1dHRvbnNfZHJvcGRvd25CdXR0b24tc2l6ZSk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogdmFyKC0tTGVnYWN5Q2FsbFZpZXdCdXR0b25zX2Ryb3Bkb3duQnV0dG9uLXNpemUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMnB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLm14X0xlZ2FjeUNhbGxWaWV3X2NvbnRlbnQge1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTgwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm14X0xlZ2FjeUNhbGxWaWV3X2xhcmdlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICBmbGV4OiAxO1xuXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXG4gICAgICAgIG1hcmdpbjogdmFyKC0tY29udGFpbmVyLWdhcC13aWR0aCk7XG4gICAgICAgIC8qIFRoZSBsZWZ0IHNpZGUgZ2FwIGlzIGZ1bGx5IGhhbmRsZWQgYnkgdGhpcyBtYXJnaW4uIFRvIHByb2hpYml0IGJsZWVkaW5nIG9uIHdlYmtpdCBicm93c2VyLiAqL1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tY29udGFpbmVyLWdhcC13aWR0aCkgLyAyKTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB9XG5cbiAgICAmLm14X0xlZ2FjeUNhbGxWaWV3X2JlbG93V2lkZ2V0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG59XG4iLCIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMSDFoGltb24gQnJhbmRuZXIgPHNpbW9uLmJyYS5hZ0BnbWFpbC5jb20+XG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seSBPUiBMaWNlbnNlUmVmLUVsZW1lbnQtQ29tbWVyY2lhbFxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbi5teF9MZWdhY3lDYWxsVmlld0ZvclJvb20ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAubXhfTGVnYWN5Q2FsbFZpZXdGb3JSb29tX1Jlc2l6ZVdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICY6aG92ZXIgLm14X0xlZ2FjeUNhbGxWaWV3Rm9yUm9vbV9SZXNpemVIYW5kbGUge1xuICAgICAgICAgICAgLyogTmVlZCB0byB1c2UgaW1wb3J0YW50IHRvIG92ZXJyaWRlIGVsZW1lbnQgc3R5bGUgYXR0cmlidXRlcyAqL1xuICAgICAgICAgICAgLyogc2V0IGJ5IHJlLXJlc2l6YWJsZSAqL1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG5cbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDRweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDY0cHg7XG5cbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcHJpbWFyeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEsIDIwMjIgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuQ29weXJpZ2h0IDIwMjEgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5IE9SIExpY2Vuc2VSZWYtRWxlbWVudC1Db21tZXJjaWFsXG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuLm14X0xlZ2FjeUNhbGxWaWV3SGVhZGVyIHtcbiAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJi5teF9MZWdhY3lDYWxsVmlld0hlYWRlcl9waXAge1xuICAgICAgICBjdXJzb3I6IGdyYWI7XG4gICAgfVxufVxuXG4ubXhfTGVnYWN5Q2FsbFZpZXdIZWFkZXJfdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm14X0xlZ2FjeUNhbGxWaWV3SGVhZGVyX3NlY29uZGFyeUNhbGxJbmZvIHtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBcIsK3XCI7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiA2cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgIH1cbn1cblxuLm14X0xlZ2FjeUNhbGxWaWV3SGVhZGVyX2NvbnRyb2xzIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogNXB4O1xufVxuXG4ubXhfTGVnYWN5Q2FsbFZpZXdIZWFkZXJfYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBzdmcge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuXG4ubXhfTGVnYWN5Q2FsbFZpZXdIZWFkZXJfY2FsbEluZm8ge1xuICAgIG1hcmdpbi1sZWZ0OiAxMnB4O1xuICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4ubXhfTGVnYWN5Q2FsbFZpZXdIZWFkZXJfcm9vbU5hbWUge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogaW5pdGlhbDtcbiAgICBoZWlnaHQ6IDE1cHg7XG5cbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5teF9MZWdhY3lDYWxsVmlld19zZWNvbmRhcnlDYWxsX3Jvb21OYW1lIHtcbiAgICBtYXJnaW4tbGVmdDogNHB4O1xufVxuXG4ubXhfTGVnYWN5Q2FsbFZpZXdIZWFkZXJfaWNvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICB3aWR0aDogMTZweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXG4gICAgc3ZnIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWNvbnRlbnQ7XG4gICAgfVxufVxuIiwiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEsIDIwMjIgxaBpbW9uIEJyYW5kbmVyIDxzaW1vbi5icmEuYWdAZ21haWwuY29tPlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfTGVnYWN5Q2FsbFZpZXdTaWRlYmFyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDEwcHg7XG5cbiAgICB3aWR0aDogMjAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogYXV0bztcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgZ2FwOiAxMnB4O1xuXG4gICAgPiAubXhfVmlkZW9GZWVkIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcblxuICAgICAgICAmLm14X1ZpZGVvRmVlZF92b2ljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkdmlkZW8tZmVlZC1zZWNvbmRhcnktYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYubXhfTGVnYWN5Q2FsbFZpZXdTaWRlYmFyX3BpcE1vZGUge1xuICAgICAgICB0b3A6IDE2cHg7XG4gICAgICAgIGJvdHRvbTogdW5zZXQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGdhcDogNHB4O1xuICAgIH1cbn1cbiIsIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIxLCAyMDIyIMWgaW1vbiBCcmFuZG5lciA8c2ltb24uYnJhLmFnQGdtYWlsLmNvbT5cbkNvcHlyaWdodCAyMDE1LCAyMDE2ICwgMjAyMCwgMjAyMSBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHkgT1IgTGljZW5zZVJlZi1FbGVtZW50LUNvbW1lcmNpYWxcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG4ubXhfVmlkZW9GZWVkIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJvcmRlcjogdHJhbnNwYXJlbnQgMnB4IHNvbGlkO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgJi5teF9WaWRlb0ZlZWRfc2Vjb25kYXJ5IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMjRweDtcbiAgICAgICAgYm90dG9tOiA3MnB4O1xuICAgICAgICB3aWR0aDogMjAlO1xuICAgIH1cblxuICAgICYubXhfVmlkZW9GZWVkX3ZvaWNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGludmVydGVkLWJnLWNvbG9yO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICY6bm90KC5teF9WaWRlb0ZlZWRfcHJpbWFyeSkge1xuICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiAxNiAvIDk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubXhfVmlkZW9GZWVkX3ZpZGVvIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuXG4gICAgICAgICYubXhfVmlkZW9GZWVkX3ZpZGVvX21pcnJvciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5teF9WaWRlb0ZlZWRfbWljIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiA2cHg7XG4gICAgICAgIGJvdHRvbTogNnB4O1xuICAgICAgICB6LWluZGV4OiAxO1xuXG4gICAgICAgIHdpZHRoOiAyNHB4O1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG5cbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDAsIDAsIDAsIDAuNSk7IC8qIFNhbWUgb24gYm90aCB0aGVtZXMgKi9cbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgd2lkdGg6IDE2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDE2cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7IC8qIFNhbWUgb24gYm90aCB0aGVtZXMgKi9cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsInByZSBjb2RlLmhsanN7ZGlzcGxheTpibG9jaztvdmVyZmxvdy14OmF1dG87cGFkZGluZzoxZW19Y29kZS5obGpze3BhZGRpbmc6M3B4IDVweH0uaGxqc3tjb2xvcjojYWJiMmJmO2JhY2tncm91bmQ6IzI4MmMzNH0uaGxqcy1jb21tZW50LC5obGpzLXF1b3Rle2NvbG9yOiM1YzYzNzA7Zm9udC1zdHlsZTppdGFsaWN9LmhsanMtZG9jdGFnLC5obGpzLWZvcm11bGEsLmhsanMta2V5d29yZHtjb2xvcjojYzY3OGRkfS5obGpzLWRlbGV0aW9uLC5obGpzLW5hbWUsLmhsanMtc2VjdGlvbiwuaGxqcy1zZWxlY3Rvci10YWcsLmhsanMtc3Vic3R7Y29sb3I6I2UwNmM3NX0uaGxqcy1saXRlcmFse2NvbG9yOiM1NmI2YzJ9LmhsanMtYWRkaXRpb24sLmhsanMtYXR0cmlidXRlLC5obGpzLW1ldGEgLmhsanMtc3RyaW5nLC5obGpzLXJlZ2V4cCwuaGxqcy1zdHJpbmd7Y29sb3I6Izk4YzM3OX0uaGxqcy1hdHRyLC5obGpzLW51bWJlciwuaGxqcy1zZWxlY3Rvci1hdHRyLC5obGpzLXNlbGVjdG9yLWNsYXNzLC5obGpzLXNlbGVjdG9yLXBzZXVkbywuaGxqcy10ZW1wbGF0ZS12YXJpYWJsZSwuaGxqcy10eXBlLC5obGpzLXZhcmlhYmxle2NvbG9yOiNkMTlhNjZ9LmhsanMtYnVsbGV0LC5obGpzLWxpbmssLmhsanMtbWV0YSwuaGxqcy1zZWxlY3Rvci1pZCwuaGxqcy1zeW1ib2wsLmhsanMtdGl0bGV7Y29sb3I6IzYxYWVlZX0uaGxqcy1idWlsdF9pbiwuaGxqcy1jbGFzcyAuaGxqcy10aXRsZSwuaGxqcy10aXRsZS5jbGFzc197Y29sb3I6I2U2YzA3Yn0uaGxqcy1lbXBoYXNpc3tmb250LXN0eWxlOml0YWxpY30uaGxqcy1zdHJvbmd7Zm9udC13ZWlnaHQ6NzAwfS5obGpzLWxpbmt7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0iLCIvKmRhcmsgKi9cbi5tYXJrZG93bi1ib2R5IHtcbiAgY29sb3Itc2NoZW1lOiBkYXJrO1xuICAvKiogQ1NTIGRlZmF1bHQgZWFzaW5nLiBVc2UgZm9yIGhvdmVyIHN0YXRlIGNoYW5nZXMgYW5kIG1pY3JvLWludGVyYWN0aW9ucy4gKi9cbiAgLyoqIEFjY2VsZXJhdGluZyBtb3Rpb24uIFVzZSBmb3IgZWxlbWVudHMgZXhpdGluZyB0aGUgdmlld3BvcnQgKG1vdmluZyBvZmYtc2NyZWVuKS4gKi9cbiAgLyoqIFNtb290aCBhY2NlbGVyYXRpb24gYW5kIGRlY2VsZXJhdGlvbi4gVXNlIGZvciBlbGVtZW50cyBtb3Zpbmcgb3IgbW9ycGhpbmcgd2l0aGluIHRoZSB2aWV3cG9ydC4gKi9cbiAgLyoqIERlY2VsZXJhdGluZyBtb3Rpb24uIFVzZSBmb3IgZWxlbWVudHMgZW50ZXJpbmcgdGhlIHZpZXdwb3J0IG9yIGFwcGVhcmluZyBvbiBzY3JlZW4uICovXG4gIC8qKiBDb25zdGFudCBtb3Rpb24gd2l0aCBubyBhY2NlbGVyYXRpb24uIFVzZSBmb3IgY29udGludW91cyBhbmltYXRpb25zIGxpa2UgcHJvZ3Jlc3MgYmFycyBvciBsb2FkZXJzLiAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjZjBmNmZjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGQxMTE3O1xuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFwiTm90byBTYW5zXCIsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiO1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuLm1hcmtkb3duLWJvZHkgYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IC4ycmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSAub2N0aWNvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZmlsbDogY3VycmVudENvbG9yO1xuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG59XG5cbi5tYXJrZG93bi1ib2R5IGgxOmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluazpiZWZvcmUsXG4ubWFya2Rvd24tYm9keSBoMjpob3ZlciAuYW5jaG9yIC5vY3RpY29uLWxpbms6YmVmb3JlLFxuLm1hcmtkb3duLWJvZHkgaDM6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rOmJlZm9yZSxcbi5tYXJrZG93bi1ib2R5IGg0OmhvdmVyIC5hbmNob3IgLm9jdGljb24tbGluazpiZWZvcmUsXG4ubWFya2Rvd24tYm9keSBoNTpob3ZlciAuYW5jaG9yIC5vY3RpY29uLWxpbms6YmVmb3JlLFxuLm1hcmtkb3duLWJvZHkgaDY6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rOmJlZm9yZSB7XG4gIHdpZHRoOiAxNnB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGNvbnRlbnQ6ICcgJztcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Q29sb3I7XG4gIC13ZWJraXQtbWFzay1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgMTYnIHZlcnNpb249JzEuMScgYXJpYS1oaWRkZW49J3RydWUnPjxwYXRoIGZpbGwtcnVsZT0nZXZlbm9kZCcgZD0nTTcuNzc1IDMuMjc1YS43NS43NSAwIDAwMS4wNiAxLjA2bDEuMjUtMS4yNWEyIDIgMCAxMTIuODMgMi44M2wtMi41IDIuNWEyIDIgMCAwMS0yLjgzIDAgLjc1Ljc1IDAgMDAtMS4wNiAxLjA2IDMuNSAzLjUgMCAwMDQuOTUgMGwyLjUtMi41YTMuNSAzLjUgMCAwMC00Ljk1LTQuOTVsLTEuMjUgMS4yNXptLTQuNjkgOS42NGEyIDIgMCAwMTAtMi44M2wyLjUtMi41YTIgMiAwIDAxMi44MyAwIC43NS43NSAwIDAwMS4wNi0xLjA2IDMuNSAzLjUgMCAwMC00Ljk1IDBsLTIuNSAyLjVhMy41IDMuNSAwIDAwNC45NSA0Ljk1bDEuMjUtMS4yNWEuNzUuNzUgMCAwMC0xLjA2LTEuMDZsLTEuMjUgMS4yNWEyIDIgMCAwMS0yLjgzIDB6Jz48L3BhdGg+PC9zdmc+XCIpO1xuICBtYXNrLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiAxNicgdmVyc2lvbj0nMS4xJyBhcmlhLWhpZGRlbj0ndHJ1ZSc+PHBhdGggZmlsbC1ydWxlPSdldmVub2RkJyBkPSdNNy43NzUgMy4yNzVhLjc1Ljc1IDAgMDAxLjA2IDEuMDZsMS4yNS0xLjI1YTIgMiAwIDExMi44MyAyLjgzbC0yLjUgMi41YTIgMiAwIDAxLTIuODMgMCAuNzUuNzUgMCAwMC0xLjA2IDEuMDYgMy41IDMuNSAwIDAwNC45NSAwbDIuNS0yLjVhMy41IDMuNSAwIDAwLTQuOTUtNC45NWwtMS4yNSAxLjI1em0tNC42OSA5LjY0YTIgMiAwIDAxMC0yLjgzbDIuNS0yLjVhMiAyIDAgMDEyLjgzIDAgLjc1Ljc1IDAgMDAxLjA2LTEuMDYgMy41IDMuNSAwIDAwLTQuOTUgMGwtMi41IDIuNWEzLjUgMy41IDAgMDA0Ljk1IDQuOTVsMS4yNS0xLjI1YS43NS43NSAwIDAwLTEuMDYtMS4wNmwtMS4yNSAxLjI1YTIgMiAwIDAxLTIuODMgMHonPjwvcGF0aD48L3N2Zz5cIik7XG59XG5cbi5tYXJrZG93bi1ib2R5IGRldGFpbHMsXG4ubWFya2Rvd24tYm9keSBmaWdjYXB0aW9uLFxuLm1hcmtkb3duLWJvZHkgZmlndXJlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IFtoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4ubWFya2Rvd24tYm9keSBhIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbiAgY29sb3I6ICM0NDkzZjg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xufVxuXG4ubWFya2Rvd24tYm9keSBiLFxuLm1hcmtkb3duLWJvZHkgc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4ubWFya2Rvd24tYm9keSBoMSB7XG4gIG1hcmdpbjogLjY3ZW0gMDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgcGFkZGluZy1ib3R0b206IC4zZW07XG4gIGZvbnQtc2l6ZTogMmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzNkNDQ0ZGIzO1xufVxuXG4ubWFya2Rvd24tYm9keSBtYXJrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JiODAwOTI2O1xuICBjb2xvcjogI2YwZjZmYztcbn1cblxuLm1hcmtkb3duLWJvZHkgc21hbGwge1xuICBmb250LXNpemU6IDkwJTtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3ViLFxuLm1hcmtkb3duLWJvZHkgc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBzdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaW1nIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xufVxuXG4ubWFya2Rvd24tYm9keSBjb2RlLFxuLm1hcmtkb3duLWJvZHkga2JkLFxuLm1hcmtkb3duLWJvZHkgcHJlLFxuLm1hcmtkb3duLWJvZHkgc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBmaWd1cmUge1xuICBtYXJnaW46IDFlbSAyLjVyZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IGhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMCk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjM2Q0NDRkYjM7XG4gIGhlaWdodDogLjI1ZW07XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMS41cmVtIDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzZDQ0NGQ7XG4gIGJvcmRlcjogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgaW5wdXQge1xuICBmb250OiBpbmhlcml0O1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiBpbmhlcml0O1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbn1cblxuLm1hcmtkb3duLWJvZHkgW3R5cGU9YnV0dG9uXSxcbi5tYXJrZG93bi1ib2R5IFt0eXBlPXJlc2V0XSxcbi5tYXJrZG93bi1ib2R5IFt0eXBlPXN1Ym1pdF0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgYXBwZWFyYW5jZTogYnV0dG9uO1xufVxuXG4ubWFya2Rvd24tYm9keSBbdHlwZT1jaGVja2JveF0sXG4ubWFya2Rvd24tYm9keSBbdHlwZT1yYWRpb10ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSBbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuLm1hcmtkb3duLWJvZHkgW3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLm1hcmtkb3duLWJvZHkgW3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbi5tYXJrZG93bi1ib2R5IFt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICBvcGFjaXR5OiAuNTQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgYXBwZWFyYW5jZTogYnV0dG9uO1xuICBmb250OiBpbmhlcml0O1xufVxuXG4ubWFya2Rvd24tYm9keSBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IDo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogIzkxOThhMTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaHI6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiBcIlwiO1xufVxuXG4ubWFya2Rvd24tYm9keSBocjo6YWZ0ZXIge1xuICBkaXNwbGF5OiB0YWJsZTtcbiAgY2xlYXI6IGJvdGg7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbi5tYXJrZG93bi1ib2R5IHRhYmxlIHtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogbWF4LWNvbnRlbnQ7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGZvbnQtdmFyaWFudDogdGFidWxhci1udW1zO1xufVxuXG4ubWFya2Rvd24tYm9keSB0ZCxcbi5tYXJrZG93bi1ib2R5IHRoIHtcbiAgcGFkZGluZzogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgZGV0YWlscyBzdW1tYXJ5IHtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4ubWFya2Rvd24tYm9keSBhOmZvY3VzLFxuLm1hcmtkb3duLWJvZHkgW3JvbGU9YnV0dG9uXTpmb2N1cyxcbi5tYXJrZG93bi1ib2R5IGlucHV0W3R5cGU9cmFkaW9dOmZvY3VzLFxuLm1hcmtkb3duLWJvZHkgaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tYm9yZGVyQ29sb3ItYWNjZW50LWVtcGhhc2lzKTtcbiAgb3V0bGluZS1vZmZzZXQ6IC0ycHg7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IGE6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSxcbi5tYXJrZG93bi1ib2R5IFtyb2xlPWJ1dHRvbl06Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSxcbi5tYXJrZG93bi1ib2R5IGlucHV0W3R5cGU9cmFkaW9dOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSksXG4ubWFya2Rvd24tYm9keSBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgb3V0bGluZTogc29saWQgMXB4IHJnYmEoMCwwLDAsMCk7XG59XG5cbi5tYXJrZG93bi1ib2R5IGE6Zm9jdXMtdmlzaWJsZSxcbi5tYXJrZG93bi1ib2R5IFtyb2xlPWJ1dHRvbl06Zm9jdXMtdmlzaWJsZSxcbi5tYXJrZG93bi1ib2R5IGlucHV0W3R5cGU9cmFkaW9dOmZvY3VzLXZpc2libGUsXG4ubWFya2Rvd24tYm9keSBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWJvcmRlckNvbG9yLWFjY2VudC1lbXBoYXNpcyk7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSBhOm5vdChbY2xhc3NdKTpmb2N1cyxcbi5tYXJrZG93bi1ib2R5IGE6bm90KFtjbGFzc10pOmZvY3VzLXZpc2libGUsXG4ubWFya2Rvd24tYm9keSBpbnB1dFt0eXBlPXJhZGlvXTpmb2N1cyxcbi5tYXJrZG93bi1ib2R5IGlucHV0W3R5cGU9cmFkaW9dOmZvY3VzLXZpc2libGUsXG4ubWFya2Rvd24tYm9keSBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1cyxcbi5tYXJrZG93bi1ib2R5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lLW9mZnNldDogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkga2JkIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjI1cmVtO1xuICBmb250OiAxMXB4IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIFNGIE1vbm8sIE1lbmxvLCBDb25zb2xhcywgTGliZXJhdGlvbiBNb25vLCBtb25vc3BhY2U7XG4gIGxpbmUtaGVpZ2h0OiAxMHB4O1xuICBjb2xvcjogI2YwZjZmYztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE1MWIyMztcbiAgYm9yZGVyOiBzb2xpZCAxcHggdmFyKC0tYm9yZGVyQ29sb3ItbXV0ZWQpO1xuICBib3JkZXItYm90dG9tLWNvbG9yOiB2YXIoLS1ib3JkZXJDb2xvci1tdXRlZCk7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IDAgdmFyKC0tYm9yZGVyQ29sb3ItbXV0ZWQpO1xufVxuXG4ubWFya2Rvd24tYm9keSBoMSxcbi5tYXJrZG93bi1ib2R5IGgyLFxuLm1hcmtkb3duLWJvZHkgaDMsXG4ubWFya2Rvd24tYm9keSBoNCxcbi5tYXJrZG93bi1ib2R5IGg1LFxuLm1hcmtkb3duLWJvZHkgaDYge1xuICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1O1xufVxuXG4ubWFya2Rvd24tYm9keSBoMiB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIHBhZGRpbmctYm90dG9tOiAuM2VtO1xuICBmb250LXNpemU6IDEuNWVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzNkNDQ0ZGIzO1xufVxuXG4ubWFya2Rvd24tYm9keSBoMyB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMS4yNWVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBoNCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBoNSB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogLjg3NWVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBoNiB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGZvbnQtc2l6ZTogLjg1ZW07XG4gIGNvbG9yOiAjOTE5OGExO1xufVxuXG4ubWFya2Rvd24tYm9keSBwIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cblxuLm1hcmtkb3duLWJvZHkgYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAxZW07XG4gIGNvbG9yOiAjOTE5OGExO1xuICBib3JkZXItbGVmdDogLjI1ZW0gc29saWQgIzNkNDQ0ZDtcbn1cblxuLm1hcmtkb3duLWJvZHkgdWwsXG4ubWFya2Rvd24tYm9keSBvbCB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG4gIHBhZGRpbmctbGVmdDogMmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBvbCBvbCxcbi5tYXJrZG93bi1ib2R5IHVsIG9sIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBsb3dlci1yb21hbjtcbn1cblxuLm1hcmtkb3duLWJvZHkgdWwgdWwgb2wsXG4ubWFya2Rvd24tYm9keSB1bCBvbCBvbCxcbi5tYXJrZG93bi1ib2R5IG9sIHVsIG9sLFxuLm1hcmtkb3duLWJvZHkgb2wgb2wgb2wge1xuICBsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLWFscGhhO1xufVxuXG4ubWFya2Rvd24tYm9keSBkZCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSB0dCxcbi5tYXJrZG93bi1ib2R5IGNvZGUsXG4ubWFya2Rvd24tYm9keSBzYW1wIHtcbiAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIFNGIE1vbm8sIE1lbmxvLCBDb25zb2xhcywgTGliZXJhdGlvbiBNb25vLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLm1hcmtkb3duLWJvZHkgcHJlIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgZm9udC1mYW1pbHk6IHVpLW1vbm9zcGFjZSwgU0ZNb25vLVJlZ3VsYXIsIFNGIE1vbm8sIE1lbmxvLCBDb25zb2xhcywgTGliZXJhdGlvbiBNb25vLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5vY3RpY29uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gIGZpbGw6IGN1cnJlbnRDb2xvcjtcbn1cblxuLm1hcmtkb3duLWJvZHkgaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG4ubWFya2Rvd24tYm9keSBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gIG1hcmdpbjogMDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1yLTIge1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbSAhaW1wb3J0YW50O1xufVxuXG4ubWFya2Rvd24tYm9keTo6YmVmb3JlIHtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG5cbi5tYXJrZG93bi1ib2R5OjphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjbGVhcjogYm90aDtcbiAgY29udGVudDogXCJcIjtcbn1cblxuLm1hcmtkb3duLWJvZHk+KjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbn1cblxuLm1hcmtkb3duLWJvZHk+KjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xufVxuXG4ubWFya2Rvd24tYm9keSBhOm5vdChbaHJlZl0pIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmFic2VudCB7XG4gIGNvbG9yOiAjZjg1MTQ5O1xufVxuXG4ubWFya2Rvd24tYm9keSAuYW5jaG9yIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHBhZGRpbmctcmlnaHQ6IDAuMjVyZW07XG4gIG1hcmdpbi1sZWZ0OiAtMjBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5hbmNob3I6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSBwLFxuLm1hcmtkb3duLWJvZHkgYmxvY2txdW90ZSxcbi5tYXJrZG93bi1ib2R5IHVsLFxuLm1hcmtkb3duLWJvZHkgb2wsXG4ubWFya2Rvd24tYm9keSBkbCxcbi5tYXJrZG93bi1ib2R5IHRhYmxlLFxuLm1hcmtkb3duLWJvZHkgcHJlLFxuLm1hcmtkb3duLWJvZHkgZGV0YWlscyB7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IGJsb2NrcXVvdGU+OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgYmxvY2txdW90ZT46bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IGgxIC5vY3RpY29uLWxpbmssXG4ubWFya2Rvd24tYm9keSBoMiAub2N0aWNvbi1saW5rLFxuLm1hcmtkb3duLWJvZHkgaDMgLm9jdGljb24tbGluayxcbi5tYXJrZG93bi1ib2R5IGg0IC5vY3RpY29uLWxpbmssXG4ubWFya2Rvd24tYm9keSBoNSAub2N0aWNvbi1saW5rLFxuLm1hcmtkb3duLWJvZHkgaDYgLm9jdGljb24tbGluayB7XG4gIGNvbG9yOiAjZjBmNmZjO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5tYXJrZG93bi1ib2R5IGgxOmhvdmVyIC5hbmNob3IsXG4ubWFya2Rvd24tYm9keSBoMjpob3ZlciAuYW5jaG9yLFxuLm1hcmtkb3duLWJvZHkgaDM6aG92ZXIgLmFuY2hvcixcbi5tYXJrZG93bi1ib2R5IGg0OmhvdmVyIC5hbmNob3IsXG4ubWFya2Rvd24tYm9keSBoNTpob3ZlciAuYW5jaG9yLFxuLm1hcmtkb3duLWJvZHkgaDY6aG92ZXIgLmFuY2hvciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaDE6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rLFxuLm1hcmtkb3duLWJvZHkgaDI6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rLFxuLm1hcmtkb3duLWJvZHkgaDM6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rLFxuLm1hcmtkb3duLWJvZHkgaDQ6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rLFxuLm1hcmtkb3duLWJvZHkgaDU6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rLFxuLm1hcmtkb3duLWJvZHkgaDY6aG92ZXIgLmFuY2hvciAub2N0aWNvbi1saW5rIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaDEgdHQsXG4ubWFya2Rvd24tYm9keSBoMSBjb2RlLFxuLm1hcmtkb3duLWJvZHkgaDIgdHQsXG4ubWFya2Rvd24tYm9keSBoMiBjb2RlLFxuLm1hcmtkb3duLWJvZHkgaDMgdHQsXG4ubWFya2Rvd24tYm9keSBoMyBjb2RlLFxuLm1hcmtkb3duLWJvZHkgaDQgdHQsXG4ubWFya2Rvd24tYm9keSBoNCBjb2RlLFxuLm1hcmtkb3duLWJvZHkgaDUgdHQsXG4ubWFya2Rvd24tYm9keSBoNSBjb2RlLFxuLm1hcmtkb3duLWJvZHkgaDYgdHQsXG4ubWFya2Rvd24tYm9keSBoNiBjb2RlIHtcbiAgcGFkZGluZzogMCAuMmVtO1xuICBmb250LXNpemU6IGluaGVyaXQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDEsXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IGgyLFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoMyxcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnkgaDQsXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IGg1LFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoNiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoMSAuYW5jaG9yLFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoMiAuYW5jaG9yLFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoMyAuYW5jaG9yLFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoNCAuYW5jaG9yLFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoNSAuYW5jaG9yLFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoNiAuYW5jaG9yIHtcbiAgbWFyZ2luLWxlZnQ6IC00MHB4O1xufVxuXG4ubWFya2Rvd24tYm9keSBzdW1tYXJ5IGgxLFxuLm1hcmtkb3duLWJvZHkgc3VtbWFyeSBoMiB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBib3JkZXItYm90dG9tOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSB1bC5uby1saXN0LFxuLm1hcmtkb3duLWJvZHkgb2wubm8tbGlzdCB7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgb2xbdHlwZT1cImEgc1wiXSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItYWxwaGE7XG59XG5cbi5tYXJrZG93bi1ib2R5IG9sW3R5cGU9XCJBIHNcIl0ge1xuICBsaXN0LXN0eWxlLXR5cGU6IHVwcGVyLWFscGhhO1xufVxuXG4ubWFya2Rvd24tYm9keSBvbFt0eXBlPVwiaSBzXCJdIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBsb3dlci1yb21hbjtcbn1cblxuLm1hcmtkb3duLWJvZHkgb2xbdHlwZT1cIkkgc1wiXSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogdXBwZXItcm9tYW47XG59XG5cbi5tYXJrZG93bi1ib2R5IG9sW3R5cGU9XCIxXCJdIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xufVxuXG4ubWFya2Rvd24tYm9keSBkaXY+b2w6bm90KFt0eXBlXSkge1xuICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7XG59XG5cbi5tYXJrZG93bi1ib2R5IHVsIHVsLFxuLm1hcmtkb3duLWJvZHkgdWwgb2wsXG4ubWFya2Rvd24tYm9keSBvbCBvbCxcbi5tYXJrZG93bi1ib2R5IG9sIHVsIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgbGk+cCB7XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IGxpK2xpIHtcbiAgbWFyZ2luLXRvcDogLjI1ZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IGRsIHtcbiAgcGFkZGluZzogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgZGwgZHQge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tdG9wOiAxcmVtO1xuICBmb250LXNpemU6IDFlbTtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ubWFya2Rvd24tYm9keSBkbCBkZCB7XG4gIHBhZGRpbmc6IDAgMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbn1cblxuLm1hcmtkb3duLWJvZHkgdGFibGUgdGgge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ubWFya2Rvd24tYm9keSB0YWJsZSB0aCxcbi5tYXJrZG93bi1ib2R5IHRhYmxlIHRkIHtcbiAgcGFkZGluZzogNnB4IDEzcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMzZDQ0NGQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IHRhYmxlIHRkPjpsYXN0LWNoaWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgdGFibGUgdHIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGQxMTE3O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzNkNDQ0ZGIzO1xufVxuXG4ubWFya2Rvd24tYm9keSB0YWJsZSB0cjpudGgtY2hpbGQoMm4pIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE1MWIyMztcbn1cblxuLm1hcmtkb3duLWJvZHkgdGFibGUgaW1nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwKTtcbn1cblxuLm1hcmtkb3duLWJvZHkgaW1nW2FsaWduPXJpZ2h0XSB7XG4gIHBhZGRpbmctbGVmdDogMjBweDtcbn1cblxuLm1hcmtkb3duLWJvZHkgaW1nW2FsaWduPWxlZnRdIHtcbiAgcGFkZGluZy1yaWdodDogMjBweDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmVtb2ppIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG59XG5cbi5tYXJrZG93bi1ib2R5IHNwYW4uZnJhbWUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5mcmFtZT5zcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xuICB3aWR0aDogYXV0bztcbiAgcGFkZGluZzogN3B4O1xuICBtYXJnaW46IDEzcHggMCAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXI6IDFweCBzb2xpZCAjM2Q0NDRkO1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmZyYW1lIHNwYW4gaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmZyYW1lIHNwYW4gc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiA1cHggMCAwO1xuICBjbGVhcjogYm90aDtcbiAgY29sb3I6ICNmMGY2ZmM7XG59XG5cbi5tYXJrZG93bi1ib2R5IHNwYW4uYWxpZ24tY2VudGVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsZWFyOiBib3RoO1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmFsaWduLWNlbnRlcj5zcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMTNweCBhdXRvIDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5hbGlnbi1jZW50ZXIgc3BhbiBpbWcge1xuICBtYXJnaW46IDAgYXV0bztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmFsaWduLXJpZ2h0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsZWFyOiBib3RoO1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmFsaWduLXJpZ2h0PnNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luOiAxM3B4IDAgMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IHNwYW4uYWxpZ24tcmlnaHQgc3BhbiBpbWcge1xuICBtYXJnaW46IDA7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmZsb2F0LWxlZnQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZmxvYXQ6IGxlZnQ7XG4gIG1hcmdpbi1yaWdodDogMTNweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm1hcmtkb3duLWJvZHkgc3Bhbi5mbG9hdC1sZWZ0IHNwYW4ge1xuICBtYXJnaW46IDEzcHggMCAwO1xufVxuXG4ubWFya2Rvd24tYm9keSBzcGFuLmZsb2F0LXJpZ2h0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWxlZnQ6IDEzcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tYXJrZG93bi1ib2R5IHNwYW4uZmxvYXQtcmlnaHQ+c3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW46IDEzcHggYXV0byAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLm1hcmtkb3duLWJvZHkgY29kZSxcbi5tYXJrZG93bi1ib2R5IHR0IHtcbiAgcGFkZGluZzogLjJlbSAuNGVtO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogODUlO1xuICB3aGl0ZS1zcGFjZTogYnJlYWstc3BhY2VzO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjU2Yzc2MzM7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbn1cblxuLm1hcmtkb3duLWJvZHkgY29kZSBicixcbi5tYXJrZG93bi1ib2R5IHR0IGJyIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgZGVsIGNvZGUge1xuICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IHNhbXAge1xuICBmb250LXNpemU6IDg1JTtcbn1cblxuLm1hcmtkb3duLWJvZHkgcHJlIGNvZGUge1xuICBmb250LXNpemU6IDEwMCU7XG59XG5cbi5tYXJrZG93bi1ib2R5IHByZT5jb2RlIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMCk7XG4gIGJvcmRlcjogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmhpZ2hsaWdodCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IC5oaWdobGlnaHQgcHJlIHtcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xufVxuXG4ubWFya2Rvd24tYm9keSAuaGlnaGxpZ2h0IHByZSxcbi5tYXJrZG93bi1ib2R5IHByZSB7XG4gIHBhZGRpbmc6IDFyZW07XG4gIG92ZXJmbG93OiBhdXRvO1xuICBmb250LXNpemU6IDg1JTtcbiAgbGluZS1oZWlnaHQ6IDEuNDU7XG4gIGNvbG9yOiAjZjBmNmZjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTUxYjIzO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG59XG5cbi5tYXJrZG93bi1ib2R5IHByZSBjb2RlLFxuLm1hcmtkb3duLWJvZHkgcHJlIHR0IHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgd29yZC13cmFwOiBub3JtYWw7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG4gIGJvcmRlcjogMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmNzdi1kYXRhIHRkLFxuLm1hcmtkb3duLWJvZHkgLmNzdi1kYXRhIHRoIHtcbiAgcGFkZGluZzogNXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ubWFya2Rvd24tYm9keSAuY3N2LWRhdGEgLmJsb2ItbnVtIHtcbiAgcGFkZGluZzogMTBweCAwLjVyZW0gOXB4O1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgYmFja2dyb3VuZDogIzBkMTExNztcbiAgYm9yZGVyOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSAuY3N2LWRhdGEgdHIge1xuICBib3JkZXItdG9wOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSAuY3N2LWRhdGEgdGgge1xuICBmb250LXdlaWdodDogNjAwO1xuICBiYWNrZ3JvdW5kOiAjMTUxYjIzO1xuICBib3JkZXItdG9wOiAwO1xufVxuXG4ubWFya2Rvd24tYm9keSBbZGF0YS1mb290bm90ZS1yZWZdOjpiZWZvcmUge1xuICBjb250ZW50OiBcIltcIjtcbn1cblxuLm1hcmtkb3duLWJvZHkgW2RhdGEtZm9vdG5vdGUtcmVmXTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIl1cIjtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmZvb3Rub3RlcyB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICM5MTk4YTE7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjM2Q0NDRkO1xufVxuXG4ubWFya2Rvd24tYm9keSAuZm9vdG5vdGVzIG9sIHtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSAuZm9vdG5vdGVzIG9sIHVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IC5mb290bm90ZXMgbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5mb290bm90ZXMgbGk6dGFyZ2V0OjpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygwLjVyZW0qLTEpO1xuICByaWdodDogY2FsYygwLjVyZW0qLTEpO1xuICBib3R0b206IGNhbGMoMC41cmVtKi0xKTtcbiAgbGVmdDogY2FsYygxLjVyZW0qLTEpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgY29udGVudDogXCJcIjtcbiAgYm9yZGVyOiAycHggc29saWQgIzFmNmZlYjtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xufVxuXG4ubWFya2Rvd24tYm9keSAuZm9vdG5vdGVzIGxpOnRhcmdldCB7XG4gIGNvbG9yOiAjZjBmNmZjO1xufVxuXG4ubWFya2Rvd24tYm9keSAuZm9vdG5vdGVzIC5kYXRhLWZvb3Rub3RlLWJhY2tyZWYgZy1lbW9qaSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1jIHtcbiAgY29sb3I6ICM5MTk4YTE7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1jMSxcbi5tYXJrZG93bi1ib2R5IC5wbC1zIC5wbC12IHtcbiAgY29sb3I6ICM3OWMwZmY7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1lLFxuLm1hcmtkb3duLWJvZHkgLnBsLWVuIHtcbiAgY29sb3I6ICNkMmE4ZmY7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1zbWksXG4ubWFya2Rvd24tYm9keSAucGwtcyAucGwtczEge1xuICBjb2xvcjogI2YwZjZmYztcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLWVudCB7XG4gIGNvbG9yOiAjN2VlNzg3O1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtayB7XG4gIGNvbG9yOiAjZmY3YjcyO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtcyxcbi5tYXJrZG93bi1ib2R5IC5wbC1wZHMsXG4ubWFya2Rvd24tYm9keSAucGwtcyAucGwtcHNlIC5wbC1zMSxcbi5tYXJrZG93bi1ib2R5IC5wbC1zcixcbi5tYXJrZG93bi1ib2R5IC5wbC1zciAucGwtY2NlLFxuLm1hcmtkb3duLWJvZHkgLnBsLXNyIC5wbC1zcmUsXG4ubWFya2Rvd24tYm9keSAucGwtc3IgLnBsLXNyYSB7XG4gIGNvbG9yOiAjYTVkNmZmO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtdixcbi5tYXJrZG93bi1ib2R5IC5wbC1zbXcge1xuICBjb2xvcjogI2ZmYTY1Nztcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLWJ1IHtcbiAgY29sb3I6ICNmODUxNDk7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1paSB7XG4gIGNvbG9yOiB2YXIoLS1mZ0NvbG9yLWRhbmdlcik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnQ29sb3ItZGFuZ2VyLW11dGVkKTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLWMyIHtcbiAgY29sb3I6ICNmMGY2ZmM7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiNjIzMjQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1zciAucGwtY2NlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjN2VlNzg3O1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtbWwge1xuICBjb2xvcjogI2YyY2M2MDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLW1oLFxuLm1hcmtkb3duLWJvZHkgLnBsLW1oIC5wbC1lbixcbi5tYXJrZG93bi1ib2R5IC5wbC1tcyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogIzFmNmZlYjtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLW1pIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xuICBjb2xvcjogI2YwZjZmYztcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLW1iIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjZjBmNmZjO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtbWQge1xuICBjb2xvcjogI2ZmZGNkNztcbiAgYmFja2dyb3VuZC1jb2xvcjogIzY3MDYwYztcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLW1pMSB7XG4gIGNvbG9yOiAjYWZmNWI0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDMzYTE2O1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtbWMge1xuICBjb2xvcjogI2ZmZGZiNjtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzVhMWUwMjtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLW1pMiB7XG4gIGNvbG9yOiAjZjBmNmZjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTE1OGM3O1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtbWRyIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjZDJhOGZmO1xufVxuXG4ubWFya2Rvd24tYm9keSAucGwtYmEge1xuICBjb2xvcjogIzkxOThhMTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnBsLXNnIHtcbiAgY29sb3I6ICMzZDQ0NGQ7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5wbC1jb3JsIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGNvbG9yOiAjYTVkNmZmO1xufVxuXG4ubWFya2Rvd24tYm9keSBbcm9sZT1idXR0b25dOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSksXG4ubWFya2Rvd24tYm9keSBbcm9sZT10YWJwYW5lbF1bdGFiaW5kZXg9XCIwXCJdOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSksXG4ubWFya2Rvd24tYm9keSBidXR0b246Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSxcbi5tYXJrZG93bi1ib2R5IHN1bW1hcnk6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSxcbi5tYXJrZG93bi1ib2R5IGE6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IFt0YWJpbmRleD1cIjBcIl06Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSxcbi5tYXJrZG93bi1ib2R5IGRldGFpbHMtZGlhbG9nOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4ubWFya2Rvd24tYm9keSBnLWVtb2ppIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtaW4td2lkdGg6IDFjaDtcbiAgZm9udC1mYW1pbHk6IFwiQXBwbGUgQ29sb3IgRW1vamlcIixcIlNlZ29lIFVJIEVtb2ppXCIsXCJTZWdvZSBVSSBTeW1ib2xcIjtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtc3R5bGU6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdmVydGljYWwtYWxpZ246IC0wLjA3NWVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBnLWVtb2ppIGltZyB7XG4gIHdpZHRoOiAxZW07XG4gIGhlaWdodDogMWVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBhOmhhcyg+cCw+ZGl2LD5wcmUsPmJsb2NrcXVvdGUpIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5tYXJrZG93bi1ib2R5IGE6aGFzKD5wLD5kaXYsPnByZSw+YmxvY2txdW90ZSk6bm90KDpoYXMoLnNuaXBwZXQtY2xpcGJvYXJkLWNvbnRlbnQsPnByZSkpIHtcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xufVxuXG4ubWFya2Rvd24tYm9keSBhOmhhcyg+cCw+ZGl2LD5wcmUsPmJsb2NrcXVvdGUpOmhhcyguc25pcHBldC1jbGlwYm9hcmQtY29udGVudCw+cHJlKTpmb2N1cy12aXNpYmxlIHtcbiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWJvcmRlckNvbG9yLWFjY2VudC1lbXBoYXNpcyk7XG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi5tYXJrZG93bi1ib2R5IC50YXNrLWxpc3QtaXRlbSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnRhc2stbGlzdC1pdGVtIGxhYmVsIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLnRhc2stbGlzdC1pdGVtLmVuYWJsZWQgbGFiZWwge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5tYXJrZG93bi1ib2R5IC50YXNrLWxpc3QtaXRlbSsudGFzay1saXN0LWl0ZW0ge1xuICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSAudGFzay1saXN0LWl0ZW0gLmhhbmRsZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IC50YXNrLWxpc3QtaXRlbS1jaGVja2JveCB7XG4gIG1hcmdpbjogMCAuMmVtIC4yNWVtIC0xLjRlbTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLm1hcmtkb3duLWJvZHkgdWw6ZGlyKHJ0bCkgLnRhc2stbGlzdC1pdGVtLWNoZWNrYm94IHtcbiAgbWFyZ2luOiAwIC0xLjZlbSAuMjVlbSAuMmVtO1xufVxuXG4ubWFya2Rvd24tYm9keSBvbDpkaXIocnRsKSAudGFzay1saXN0LWl0ZW0tY2hlY2tib3gge1xuICBtYXJnaW46IDAgLTEuNmVtIC4yNWVtIC4yZW07XG59XG5cbi5tYXJrZG93bi1ib2R5IC5jb250YWlucy10YXNrLWxpc3Q6aG92ZXIgLnRhc2stbGlzdC1pdGVtLWNvbnZlcnQtY29udGFpbmVyLFxuLm1hcmtkb3duLWJvZHkgLmNvbnRhaW5zLXRhc2stbGlzdDpmb2N1cy13aXRoaW4gLnRhc2stbGlzdC1pdGVtLWNvbnZlcnQtY29udGFpbmVyIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiBhdXRvO1xuICBoZWlnaHQ6IDI0cHg7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICBjbGlwLXBhdGg6IG5vbmU7XG59XG5cbi5tYXJrZG93bi1ib2R5IDo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIHtcbiAgZmlsdGVyOiBpbnZlcnQoNTAlKTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0IHtcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGNvbG9yOiBpbmhlcml0O1xuICBib3JkZXItbGVmdDogLjI1ZW0gc29saWQgIzNkNDQ0ZDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0PjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydD46bGFzdC1jaGlsZCB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydCAubWFya2Rvd24tYWxlcnQtdGl0bGUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBsaW5lLWhlaWdodDogMTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0Lm1hcmtkb3duLWFsZXJ0LW5vdGUge1xuICBib3JkZXItbGVmdC1jb2xvcjogIzFmNmZlYjtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0Lm1hcmtkb3duLWFsZXJ0LW5vdGUgLm1hcmtkb3duLWFsZXJ0LXRpdGxlIHtcbiAgY29sb3I6ICM0NDkzZjg7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydC5tYXJrZG93bi1hbGVydC1pbXBvcnRhbnQge1xuICBib3JkZXItbGVmdC1jb2xvcjogIzg5NTdlNTtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0Lm1hcmtkb3duLWFsZXJ0LWltcG9ydGFudCAubWFya2Rvd24tYWxlcnQtdGl0bGUge1xuICBjb2xvcjogI2FiN2RmODtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0Lm1hcmtkb3duLWFsZXJ0LXdhcm5pbmcge1xuICBib3JkZXItbGVmdC1jb2xvcjogIzllNmEwMztcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0Lm1hcmtkb3duLWFsZXJ0LXdhcm5pbmcgLm1hcmtkb3duLWFsZXJ0LXRpdGxlIHtcbiAgY29sb3I6ICNkMjk5MjI7XG59XG5cbi5tYXJrZG93bi1ib2R5IC5tYXJrZG93bi1hbGVydC5tYXJrZG93bi1hbGVydC10aXAge1xuICBib3JkZXItbGVmdC1jb2xvcjogIzIzODYzNjtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0Lm1hcmtkb3duLWFsZXJ0LXRpcCAubWFya2Rvd24tYWxlcnQtdGl0bGUge1xuICBjb2xvcjogIzNmYjk1MDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0Lm1hcmtkb3duLWFsZXJ0LWNhdXRpb24ge1xuICBib3JkZXItbGVmdC1jb2xvcjogI2RhMzYzMztcbn1cblxuLm1hcmtkb3duLWJvZHkgLm1hcmtkb3duLWFsZXJ0Lm1hcmtkb3duLWFsZXJ0LWNhdXRpb24gLm1hcmtkb3duLWFsZXJ0LXRpdGxlIHtcbiAgY29sb3I6ICNmODUxNDk7XG59XG5cbi5tYXJrZG93bi1ib2R5Pio6Zmlyc3QtY2hpbGQ+LmhlYWRpbmctZWxlbWVudDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbn1cblxuLm1hcmtkb3duLWJvZHkgLmhpZ2hsaWdodCBwcmU6aGFzKCsuemVyb2NsaXBib2FyZC1jb250YWluZXIpIHtcbiAgbWluLWhlaWdodDogNTJweDtcbn1cblxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/