/*!**************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/app.css ***!
  \**************************************************************************************************************/
:root {
    --primary-navy: #1e3a5f;
    --accent-turquoise: #00d4aa;
    --sidebar-accent: #7c3aed;
    --light-cream: #f8fafc;
    --sidebar-width: 250px;
    --sidebar-collapsed-width: 80px;
        --menu-1-color: #3b82f6; /* Bleu */
    --menu-2-color: #10b981; /* Vert */
    --menu-3-color: #f59e0b; /* Orange */
    --menu-4-color: #ef4444; /* Rouge */
    --menu-5-color: #8b5cf6; /* Violet */
    
    /* Couleurs au survol */
    --menu-1-hover: #2563eb;
    --menu-2-hover: #059669;
    --menu-3-hover: #d97706;
    --menu-4-hover: #dc2626;
    --menu-5-hover: #7c3aed;
}

/* Global box model + reset */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html, body {
    height: 100%;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    overflow-x: hidden;
    margin: 0;
    padding: 0;
    background: transparent;
    color: var(--primary-navy);
}

.container-fluid {
    padding: 0;
}

.row.g-0 {
    margin: 0;
    position: relative;
    min-height: 100vh;
}

/* --- STRUCTURE PRINCIPALE --- */
.dashboard-container {
    background: linear-gradient(135deg, var(--light-cream) 0%, #e8ecef 100%);
    min-height: 100vh;
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    transition: all 0.3s ease;
    width: 100%;
}

/* Ajustement du contenu principal pour qu'il ne passe pas sous la sidebar */
.main-content {
    padding: 40px 20px 40px 40px;
    transition: all 0.3s ease;
    flex: 1;
    overflow-x: hidden;
    width: calc(100% - var(--sidebar-width));
    margin-left: var(--sidebar-width);
}

/* Quand la sidebar est réduite */
body.sidebar-collapsed .main-content {
    width: calc(100% - var(--sidebar-collapsed-width));
    margin-left: var(--sidebar-collapsed-width);
}

/* --- NAVBAR --- */
.top-navbar {
    background-color: white;
    color: var(--primary-navy);
    padding: 15px 40px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 2px 15px rgba(30, 58, 95, 0.1);
    transition: all 0.3s ease;
    position: sticky;
    top: 0;
    z-index: 100;
    width: calc(102% - var(--sidebar-width));
    margin-left: var(--sidebar-width);
    border-bottom: 1px solid rgba(30, 58, 95, 0.1);
}

body.sidebar-collapsed .top-navbar {
    width: calc(102% - var(--sidebar-collapsed-width));
    margin-left: var(--sidebar-collapsed-width);
}

.search-bar-container {
    position: relative;
    width: 300px;
    margin: auto;
}

.search-input {
    background-color: var(--light-cream);
    border: 1px solid rgba(30, 58, 95, 0.1);
    border-radius: 20px;
    padding: 10px 20px 10px 40px;
    width: 100%;
    outline: none;
    color: var(--primary-navy);
    transition: all 0.3s ease;
}

.search-input:focus {
    background-color: white;
    box-shadow: 0 0 0 2px var(--accent-turquoise);
    border-color: var(--accent-turquoise);
}

.search-icon {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--primary-navy);
    opacity: 0.5;
    transition: all 0.3s ease;
}

.search-bar-container:hover .search-icon {
    color: var(--accent-turquoise);
    opacity: 1;
}

/* --- SIDEBAR GAUCHE --- */
.sidebar-left {
    background: linear-gradient(180deg, var(--primary-navy) 0%, #152642 100%);
    min-height: 100vh;
    color: white;
    padding: 0;
    transition: all 0.3s ease;
    position: fixed;
    left: 0;
    top: 0;
    width: var(--sidebar-width);
    z-index: 1000;
    display: flex;
    flex-direction: column;
    border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.sidebar-left.collapsed {
    width: var(--sidebar-collapsed-width);
}

.sidebar-toggle {
    position: absolute;
    top: 20px;
    right: 15px;
    left: auto;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: white;
    border-radius: 50%;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 10;
}

.sidebar-toggle:hover {
    background: var(--sidebar-accent);
    transform: scale(1.1);
}

/* --- CONTENU SIDEBAR AVEC SCROLL --- */
.sidebar-content {
    transition: all 0.3s ease;
    opacity: 1;
    visibility: visible;
    padding: 60px 20px 20px 20px;
    flex: 1;
    overflow-y: auto; /* Activation du scroll vertical */
    max-height: calc(100vh - 80px); /* Hauteur maximale avec espace pour le toggle */
    scrollbar-width: thin;
    scrollbar-color: var(--sidebar-accent) rgba(255, 255, 255, 0.1);
}

/* Scrollbar personnalisée pour Webkit (Chrome, Safari, Edge) */
.sidebar-content::-webkit-scrollbar {
    width: 6px;
}

.sidebar-content::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.1);
    border-radius: 3px;
}

.sidebar-content::-webkit-scrollbar-thumb {
    background: var(--sidebar-accent);
    border-radius: 3px;
    transition: all 0.3s ease;
}

.sidebar-content::-webkit-scrollbar-thumb:hover {
    background: #6d28d9; /* Violet plus clair au survol */
}

.sidebar-left.collapsed .sidebar-content {
    opacity: 0;
    visibility: hidden;
    display: none;
}

.sidebar-left.collapsed.open {
    width: var(--sidebar-width);
    box-shadow: 4px 0 18px rgba(0, 0, 0, 0.25);
    z-index: 1100;
}

.sidebar-left.collapsed.open .sidebar-content {
    display: block;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

/* --- MENU DÉPLIANT --- */
.menu-header {
    background-color: rgba(255, 255, 255, 0.1);
    color: white;
    padding: 15px;
    font-size: 1.1rem;
    font-weight: 600;
    margin: 0 0 15px 0;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(124, 58, 237, 0.3);
    position: relative;
    z-index: 2;
    transition: all 0.3s ease;
    cursor: pointer;
    text-align: center;
    padding-right: 40px;
}

.menu-header:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(124, 58, 237, 0.4);
}

.menu-header::after {
    content: '\f078';
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    transition: transform 0.3s ease;
}

.menu-header.expanded::after {
    content: '\f077';
    transform: translateY(-50%) rotate(180deg);
}

.menu-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: none;
    opacity: 0;
    max-height: 0;
    overflow: hidden;
    transition: all 0.3s ease;
}

.menu-list.expanded {
    display: block;
    opacity: 1;
    max-height: 500px;
}

.menu-list li {
    padding: 12px 15px;
    color: rgba(255, 255, 255, 0.9);
    font-weight: 500;
    cursor: pointer;
    transition: 0.3s;
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    border-left: 3px solid var(--sidebar-accent);
    margin-bottom: 5px;
    border-radius: 0 5px 5px 0;
}

.menu-list li:hover {
    background-color: rgba(124, 58, 237, 0.1);
    padding-left: 20px;
    color: white;
}

.menu-list li i {
    color: var(--light-cream);
    width: 20px;
    text-align: center;
    font-size: 1.3rem;
}

/* Mini menu pour l'état réduit */
.mini-menu {
    display: none;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    padding: 80px 0 20px 0;
    height: 100%;
    justify-content: flex-start;
    overflow-y: auto; /* Scroll aussi pour le mini-menu au cas où */
    max-height: calc(100vh - 100px);
}

.sidebar-left.collapsed .mini-menu {
    display: flex;
}

.mini-menu-item {
    width: 50px;
    height: 50px;
    background-color: rgba(255, 255, 255, 0.1);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.mini-menu-item:hover {
    background-color: var(--sidebar-accent);
    transform: scale(1.1);
}

.mini-menu-item i {
    color: white;
    font-size: 1.5rem;
}

.mini-menu-tooltip {
    position: absolute;
    right: 100%;
    top: 50%;
    transform: translateY(-50%);
    background-color: var(--sidebar-accent);
    color: white;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 0.8rem;
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    z-index: 100;
    margin-right: 10px;
    font-weight: 600;
}

.mini-menu-item:hover .mini-menu-tooltip {
    opacity: 1;
    visibility: visible;
}

/* --- GRILLE DES CERCLES - ICÔNES TRÈS AGRANDIES --- */
.shortcut-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(140px, 1fr));
    gap: 30px 20px;
    margin-bottom: 50px;
    max-width: 100%;
    align-items: start;
}

.circle-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}

.circle-icon {
    background-color: transparent;
    border: none;
    width: 140px;
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    border-radius: 0;
}

.circle-icon i {
    font-size: 3rem;
    color: var(--primary-navy);
    transition: all 0.3s ease;
}

.circle-icon:hover i {
    transform: scale(1.2);
    color: var(--sidebar-accent);
}

.circle-icon.active i {
    color: var(--sidebar-accent);    transform: scale(1.1);
}

.circle-text {
    color: var(--primary-navy);
    font-size: 0.95rem;
    margin-top: 12px;
    transition: all 0.3s ease;
    text-align: center;
    font-weight: 500;
}

.circle-wrapper:hover .circle-text {
    color: var(--sidebar-accent);    transform: translateY(-2px);
}

/* --- WIDGET CA --- */
.card-ca {
    background: linear-gradient(135deg, var(--primary-navy) 0%, #2a4a7a 100%);
    color: white;
    border: none;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 25px rgba(30, 58, 95, 0.15);
    height: 100%;
    display: flex;
    flex-direction: column;
    transition: all 0.3s ease;
    cursor: pointer;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.card-ca:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px rgba(30, 58, 95, 0.25);
}

.card-ca .card-body {
    padding: 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex: 1;
}

.ca-label {
    font-size: 3rem;
    font-weight: 700;
    transition: all 0.3s ease;
    color: var(--accent-turquoise);
}

.card-ca:hover .ca-label {
    transform: scale(1.05);
}

.ca-value {
    font-size: 1.4rem;
    text-align: right;
    transition: all 0.3s ease;
    font-weight: 600;
}

.card-ca:hover .ca-value {
    transform: translateX(5px);
}

.card-ca-footer {
    background-color: rgba(0, 212, 170, 0.1);
    padding: 12px 20px;
    text-align: center;
    cursor: pointer;
    font-size: 0.9rem;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    transition: all 0.3s ease;
    color: var(--accent-turquoise);
    font-weight: 600;
}

.card-ca-footer:hover {
    background-color: rgba(0, 212, 170, 0.2);
    gap: 15px;
}

.card-ca-footer i {
    transition: transform 0.3s ease;
    font-size: 1.1rem;
}

.card-ca-footer:hover i {
    transform: translateX(5px);
}

/* --- WIDGET GRAPHIQUE --- */
.card-chart {
    background-color: white;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 8px 25px rgba(30, 58, 95, 0.15);
    min-height: 260px;
    max-height: 360px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    transition: all 0.3s ease;
    border: 1px solid rgba(30, 58, 95, 0.1);
}

.card-chart:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px rgba(30, 58, 95, 0.25);
}

.card-chart canvas {
    width: 100% !important;
    height: 100% !important;
}

/* Styles pour la modal des raccourcis - ICÔNES TRÈS AGRANDIES */
.modal-shortcuts .modal-content {
    border-radius: 12px;
    border: none;
    box-shadow: 0 20px 40px rgba(30, 58, 95, 0.2);
}

.modal-shortcut-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 25px;
    padding: 25px 0;
}

.modal-circle-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
    transition: transform 0.3s ease;
    padding: 20px;
    border-radius: 10px;
}

.modal-circle-wrapper:hover {
    transform: translateY(-5px);
    background-color: var(--light-cream);
}

.modal-circle-icon {
    width: 100px;
    height: 100px;
    background-color: transparent;
    border-radius: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
}

.modal-circle-icon i {
    font-size: 3.5rem;
    color: var(--primary-navy);
    transition: all 0.3s ease;
}

.modal-circle-wrapper:hover .modal-circle-icon i {
    transform: scale(1.2);
    color: var(--sidebar-accent);
}

.modal-circle-text {
    font-size: 1rem;
    text-align: center;
    color: var(--primary-navy);
    font-weight: 500;
}

/* Icônes dans les en-têtes de menu de la sidebar */
.menu-header i {
    font-size: 1.3rem;
    margin-right: 8px;
}

/* --- MEDIA QUERIES AVEC LES NOUVELLES TAILLES --- */
@media (max-width: 1200px) {
    .shortcut-grid {
        grid-template-columns: repeat(4, minmax(130px, 1fr));
    }
    .modal-shortcut-grid {
        grid-template-columns: repeat(3, 1fr);
    }
    .circle-icon {
        width: 120px;
        height: 120px;
    }
    .circle-icon i {
        font-size: 4rem;
    }
    .modal-circle-icon {
        width: 90px;
        height: 90px;
    }
    .modal-circle-icon i {
        font-size: 3rem;
    }
            .sidebar-left.collapsed.open .sidebar-content {
        overflow-y: auto;
        max-height: calc(100vh - 80px);
    }
}

@media (max-width: 992px) {
    .shortcut-grid {
        grid-template-columns: repeat(3, minmax(120px, 1fr));
        gap: 25px 15px;
    }
    .modal-shortcut-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .circle-icon {
        width: 110px;
        height: 110px;
    }
    .circle-icon i {
        font-size: 3.5rem;
    }
    .modal-circle-icon {
        width: 85px;
        height: 85px;
    }
    .modal-circle-icon i {
        font-size: 2.8rem;
    }
            .sidebar-left.collapsed.open .sidebar-content {
        overflow-y: auto;
        max-height: calc(100vh - 80px);
    }
}

@media (max-width: 768px) {
    .sidebar-left {
        transform: translateX(-100%);
    }

    .sidebar-left.collapsed {
        transform: translateX(0);
        width: var(--sidebar-collapsed-width);
    }

    .main-content {
        width: 100% !important;
        padding: 20px;
    }

    .top-navbar {
        width: 100% !important;
        padding: 15px 20px;
    }

    .search-bar-container {
        width: 200px;
    }

    .modal-shortcut-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .circle-icon {
        width: 100px;
        height: 100px;
    }
    .circle-icon i {
        font-size: 3rem;
    }
    .modal-circle-icon {
        width: 80px;
        height: 80px;
    }
    .modal-circle-icon i {
        font-size: 2.5rem;
    }
            .sidebar-left.collapsed.open .sidebar-content {
        overflow-y: auto;
        max-height: calc(100vh - 80px);
    }
}

@media (max-width: 768px) {
    .dashboard-container {
        padding-top: 0;
    }

    .main-content {
        width: 100% !important;
        margin-left: 0 !important;
        padding: 24px 20px 40px;
    }

    .top-navbar {
        width: 100% !important;
        margin-left: 0 !important;
        padding: 12px 20px;
    }

    .shortcut-grid {
        grid-template-columns: repeat(2, minmax(120px, 1fr));
        gap: 18px;
    }

    .card-ca,
    .card-chart,
    .card {
        width: 100%;
        margin-bottom: 20px;
    }

    .card-chart {
        max-height: 320px;
    }

    .page-header {
        padding: 24px 20px;
    }

    .data-table-card {
        margin-bottom: 20px;
    }
}

@media (max-width: 480px) {
    .shortcut-grid {
        grid-template-columns: repeat(2, minmax(100px, 1fr));
        gap: 20px 10px;
    }

    .circle-icon {
        width: 90px;
        height: 90px;
    }
    .circle-icon i {
        font-size: 2.8rem;
    }

    .modal-shortcut-grid {
        grid-template-columns: 1fr;
    }

    .modal-circle-icon {
        width: 70px;
        height: 70px;
    }
    .modal-circle-icon i {
        font-size: 2.2rem;
    }

    .ca-label {
        font-size: 2.5rem;
    }

    .ca-value {
        font-size: 1.2rem;
    }
            .sidebar-left.collapsed.open .sidebar-content {
        overflow-y: auto;
        max-height: calc(100vh - 80px);
    }
}

/* Adaptation pour la sidebar réduite en responsive */
@media (max-width: 1200px) {
            .sidebar-left:not(.collapsed) {
        width: var(--sidebar-collapsed-width);
    }
    
            .sidebar-left:not(.collapsed) .sidebar-content {
        display: none;
    }
    
            .sidebar-left:not(.collapsed) .mini-menu {
        display: flex;
    }
    
    .main-content {
        width: calc(100% - var(--sidebar-collapsed-width));
                margin-left: var(--sidebar-collapsed-width);
        padding: 30px 15px 30px 30px;
    }
    
    .top-navbar {
        width: calc(100% - var(--sidebar-collapsed-width));
                margin-left: var(--sidebar-collapsed-width);
        padding: 12px 25px;
    }
}/* --- CORRECTIFS RESPONSIVE SIDEBAR --- */

/* Pour les très petits écrans */
@media (max-width: 480px) {
            .sidebar-left {
        width: 100vw;
    }
    
            .sidebar-left.collapsed {
        width: var(--sidebar-collapsed-width);
    }
    
            .sidebar-left.collapsed.open {
        width: 100vw;
    }
    
    .sidebar-content {
        padding: 60px 15px 20px 15px;
    }
                .sidebar-left.collapsed.open .sidebar-content {
        overflow-y: auto;
        max-height: calc(100vh - 80px);
    }
}

/* Assure que le toggle est toujours visible en responsive */
.sidebar-toggle {
    display: flex !important;
    z-index: 1002;
}

/* État ouvert de la sidebar en responsive */
.sidebar-left.open .sidebar-content {
    display: block;
    opacity: 1;
    visibility: visible;
}

.sidebar-left.open .mini-menu {
    display: none;
}
/* Styles pour la modal d'inscription */
.modal-about .modal-content {
    border-radius: 12px;
    border: none;
    box-shadow: 0 20px 40px rgba(30, 58, 95, 0.2);
    background: linear-gradient(135deg, #f8fafc 0%, #e8ecef 100%);
}

.modal-about .modal-header {
    background: linear-gradient(135deg, var(--primary-navy) 0%, #2a4a7a 100%);
    color: white;
    border-radius: 12px 12px 0 0;
    padding: 20px 25px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.modal-about .modal-title {
    font-weight: 600;
    font-size: 1.3rem;
}

.modal-about .modal-body {
    padding: 25px;
    color: var(--primary-navy);
}

.modal-about .form-label {
    font-weight: 600;
    color: var(--primary-navy);
    margin-bottom: 8px;
    font-size: 0.95rem;
}

.modal-about .form-control {
    background-color: white;
    border: 1px solid rgba(30, 58, 95, 0.2);
    border-radius: 8px;
    padding: 12px 15px;
    color: var(--primary-navy);
    transition: all 0.3s ease;
    font-size: 0.95rem;
}

.modal-about .form-control:focus {
    background-color: white;
    border-color: var(--accent-turquoise);
    box-shadow: 0 0 0 3px rgba(0, 212, 170, 0.1);
    color: var(--primary-navy);
}

.modal-about .form-check-input {
    width: 18px;
    height: 18px;
    margin-top: 0.2em;
    border: 2px solid var(--primary-navy);
}

.modal-about .form-check-input:checked {
    background-color: var(--accent-turquoise);
    border-color: var(--accent-turquoise);
}

.modal-about .form-check-label {
    color: var(--primary-navy);
    font-weight: 500;
    margin-left: 8px;
}

.modal-about .btn {
    padding: 12px 25px;
    border-radius: 8px;
    font-weight: 600;
    transition: all 0.3s ease;
    border: none;
}

.modal-about .btn-primary {
    background: linear-gradient(135deg, var(--accent-turquoise) 0%, #00b894 100%);
    color: white;
}

.modal-about .btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(0, 212, 170, 0.3);
}

.text-primary {
    color: var(--accent-turquoise) !important;
    text-decoration: none;
    font-weight: 500;
}

.text-primary:hover {
    text-decoration: underline;
}

/* Responsive */
@media (max-width: 768px) {
    .modal-about .modal-body {
        padding: 20px 15px;
    }
    
    .modal-about .modal-header {
        padding: 15px 20px;
    }
}
/* Styles pour les menus avec couleurs différentes */
#menuHeader1 {
    background-color: var(--menu-1-color);
    box-shadow: 0 2px 8px rgba(59, 130, 246, 0.3);
}

#menuHeader2 {
    background-color: var(--menu-2-color);
    box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3);
}

#menuHeader3 {
    background-color: var(--menu-3-color);
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3);
}

#menuHeader4 {
    background-color: var(--menu-4-color);
    box-shadow: 0 2px 8px rgba(239, 68, 68, 0.3);
}

#menuHeader5 {
    background-color: var(--menu-5-color);
    box-shadow: 0 2px 8px rgba(139, 92, 246, 0.3);
}

/* Effets de survol pour les menus */
#menuHeader1:hover {
    background-color: var(--menu-1-hover);
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.4);
}

#menuHeader2:hover {
    background-color: var(--menu-2-hover);
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4);
}

#menuHeader3:hover {
    background-color: var(--menu-3-hover);
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.4);
}

#menuHeader4:hover {
    background-color: var(--menu-4-hover);
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.4);
}

#menuHeader5:hover {
    background-color: var(--menu-5-hover);
    box-shadow: 0 4px 12px rgba(139, 92, 246, 0.4);
}

/* Bordures colorées pour les éléments de menu */
#menuList1 li {
    border-left-color: var(--menu-1-color);
}

#menuList2 li {
    border-left-color: var(--menu-2-color);
}

#menuList3 li {
    border-left-color: var(--menu-3-color);
}

#menuList4 li {
    border-left-color: var(--menu-4-color);
}

#menuList5 li {
    border-left-color: var(--menu-5-color);
}

/* Effets de survol pour les éléments de menu */
#menuList1 li:hover {
    background-color: rgba(59, 130, 246, 0.1);
}

#menuList2 li:hover {
    background-color: rgba(16, 185, 129, 0.1);
}

#menuList3 li:hover {
    background-color: rgba(245, 158, 11, 0.1);
}

#menuList4 li:hover {
    background-color: rgba(239, 68, 68, 0.1);
}

#menuList5 li:hover {
    background-color: rgba(139, 92, 246, 0.1);
}
/* Styles pour les mini-menus avec les mêmes couleurs */
.mini-menu-item[data-menu="1"] {
    background-color: var(--menu-1-color);
}

.mini-menu-item[data-menu="2"] {
    background-color: var(--menu-2-color);
}

.mini-menu-item[data-menu="3"] {
    background-color: var(--menu-3-color);
}

.mini-menu-item[data-menu="4"] {
    background-color: var(--menu-4-color);
}

.mini-menu-item[data-menu="5"] {
    background-color: var(--menu-5-color);
}

/* Effets de survol pour les mini-menus */
.mini-menu-item[data-menu="1"]:hover {
    background-color: var(--menu-1-hover);
}

.mini-menu-item[data-menu="2"]:hover {
    background-color: var(--menu-2-hover);
}

.mini-menu-item[data-menu="3"]:hover {
    background-color: var(--menu-3-hover);
}

.mini-menu-item[data-menu="4"]:hover {
    background-color: var(--menu-4-hover);
}

.mini-menu-item[data-menu="5"]:hover {
    background-color: var(--menu-5-hover);
}

/* Tooltips colorés pour les mini-menus */
.mini-menu-item[data-menu="1"] .mini-menu-tooltip {
    background-color: var(--menu-1-color);
}

.mini-menu-item[data-menu="2"] .mini-menu-tooltip {
    background-color: var(--menu-2-color);
}

.mini-menu-item[data-menu="3"] .mini-menu-tooltip {
    background-color: var(--menu-3-color);
}

.mini-menu-item[data-menu="4"] .mini-menu-tooltip {
    background-color: var(--menu-4-color);
}

.mini-menu-item[data-menu="5"] .mini-menu-tooltip {
    background-color: var(--menu-5-color);
}

/* Tooltips au survol */
.mini-menu-item[data-menu="1"]:hover .mini-menu-tooltip {
    background-color: var(--menu-1-hover);
}

.mini-menu-item[data-menu="2"]:hover .mini-menu-tooltip {
    background-color: var(--menu-2-hover);
}

.mini-menu-item[data-menu="3"]:hover .mini-menu-tooltip {
    background-color: var(--menu-3-hover);
}

.mini-menu-item[data-menu="4"]:hover .mini-menu-tooltip {
    background-color: var(--menu-4-hover);
}

.mini-menu-item[data-menu="5"]:hover .mini-menu-tooltip {
    background-color: var(--menu-5-hover);
}
/* Couleurs différentes pour les icônes des éléments de liste (optionnel) */
#menuList1 li i {
    color: var(--menu-1-color) !important;
}

#menuList2 li i {
    color: var(--menu-2-color) !important;
}

#menuList3 li i {
    color: var(--menu-3-color) !important;
}

#menuList4 li i {
    color: var(--menu-4-color) !important;
}

#menuList5 li i {
    color: var(--menu-5-color) !important;
}

/* Icônes au survol */
#menuList1 li:hover i {
    color: var(--menu-1-hover) !important;
}

#menuList2 li:hover i {
    color: var(--menu-2-hover) !important;
}

#menuList3 li:hover i {
    color: var(--menu-3-hover) !important;
}

#menuList4 li:hover i {
    color: var(--menu-4-hover) !important;
}

#menuList5 li:hover i {
    color: var(--menu-5-hover) !important;
}
/* Styles pour les liens dans les menus */
.menu-link {
    color: inherit;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    height: 100%;
    padding: 12px 15px;
    margin: -12px -15px;
    transition: all 0.3s ease;
}

.menu-link:hover {
    color: inherit;
    text-decoration: none;
}

/* Assurer que le hover fonctionne sur le lien */
.menu-list li:hover .menu-link {
    background-color: inherit;
    padding-left: 20px;
    color: inherit;
}

/* Couleurs spécifiques pour chaque menu */
#menuList1 .menu-link {
    border-left-color: var(--menu-1-color);
}

#menuList2 .menu-link {
    border-left-color: var(--menu-2-color);
}

#menuList3 .menu-link {
    border-left-color: var(--menu-3-color);
}

#menuList4 .menu-link {
    border-left-color: var(--menu-4-color);
}

#menuList5 .menu-link {
    border-left-color: var(--menu-5-color);
}
/* Styles pour la page liste */
.page-header {
    background: white;
    padding: 30px;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(30, 58, 95, 0.1);
    margin-bottom: 30px;
}

.page-title {
    color: var(--primary-navy);
    font-weight: 700;
    margin-bottom: 10px;
    font-size: 2rem;
}

.page-subtitle {
    color: var(--primary-navy);
    opacity: 0.8;
    font-size: 1.1rem;
    margin-bottom: 0;
}

/* Bouton retour */
.btn-back {
    background: var(--accent-turquoise);
    color: white;
    border: none;
    padding: 10px 20px;
    border-radius: 8px;
    font-weight: 600;
    transition: all 0.3s ease;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
}

.btn-back:hover {
    background: #00b894;
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 212, 170, 0.3);
}

/* Carte de la datatable */
.data-table-card {
    border: none;
    border-radius: 12px;
    box-shadow: 0 8px 25px rgba(30, 58, 95, 0.15);
    overflow: hidden;
}

.data-table-card .card-header {
    background: linear-gradient(135deg, var(--primary-navy) 0%, #2a4a7a 100%);
    color: white;
    border-bottom: none;
    padding: 20px 25px;
}

.data-table-card .card-title {
    color: white;
    margin-bottom: 0;
    font-weight: 600;
}

/* Boutons d'action */
.btn-primary {
    background: var(--accent-turquoise);
    border: none;
    font-weight: 600;
    transition: all 0.3s ease;
}

.btn-primary:hover {
    background: #00b894;
    transform: translateY(-2px);
}

.btn-export {
    background: var(--primary-navy);
    color: white;
    border: none;
    font-weight: 600;
    transition: all 0.3s ease;
}

.btn-export:hover {
    background: #152642;
    color: white;
    transform: translateY(-2px);
}

/* Styles pour la datatable */
#usersTable {
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
}

#usersTable thead th {
    background-color: var(--light-cream);
    color: var(--primary-navy);
    font-weight: 600;
    border-bottom: 2px solid var(--accent-turquoise);
    padding: 15px 12px;
}

#usersTable tbody td {
    padding: 12px;
    border-bottom: 1px solid rgba(30, 58, 95, 0.1);
    vertical-align: middle;
}

#usersTable tbody tr:hover {
    background-color: rgba(0, 212, 170, 0.05);
    transform: translateY(-1px);
    transition: all 0.2s ease;
}

/* Badges */
.badge {
    padding: 6px 12px;
    border-radius: 20px;
    font-weight: 600;
    font-size: 0.75rem;
}

.role-admin {
    background-color: #dc2626;
    color: white;
}

.role-manager {
    background-color: #f59e0b;
    color: white;
}

.role-user {
    background-color: #10b981;
    color: white;
}

.status-active {
    background-color: #10b981;
    color: white;
}

.status-inactive {
    background-color: #6b7280;
    color: white;
}

.status-pending {
    background-color: #f59e0b;
    color: white;
}

/* Boutons d'actions dans le tableau */
.btn-action {
    border: none;
    background: transparent;
    padding: 6px 8px;
    border-radius: 6px;
    transition: all 0.3s ease;
    margin: 0 2px;
}

.btn-edit {
    color: var(--accent-turquoise);
}

.btn-edit:hover {
    background-color: var(--accent-turquoise);
    color: white;
}

.btn-delete {
    color: #dc2626;
}

.btn-delete:hover {
    background-color: #dc2626;
    color: white;
}

.btn-view {
    color: var(--primary-navy);
}

.btn-view:hover {
    background-color: var(--primary-navy);
    color: white;
}

/* Cartes de statistiques */
.stats-card {
    background: white;
    padding: 25px;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(30, 58, 95, 0.1);
    display: flex;
    align-items: center;
    gap: 20px;
    transition: all 0.3s ease;
}

.stats-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(30, 58, 95, 0.15);
}

.stats-icon {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, var(--accent-turquoise) 0%, #00b894 100%);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.5rem;
}

.stats-content h3 {
    color: var(--primary-navy);
    font-weight: 700;
    font-size: 2rem;
    margin-bottom: 5px;
}

.stats-content p {
    color: var(--primary-navy);
    opacity: 0.8;
    margin-bottom: 0;
    font-weight: 500;
}

/* Responsive */
@media (max-width: 768px) {
    .page-header {
        padding: 20px;
    }
    
    .page-title {
        font-size: 1.5rem;
    }
    
    .data-table-card .card-header {
        padding: 15px 20px;
    }
    
    .stats-card {
        padding: 20px;
        margin-bottom: 15px;
    }
    
    .btn-back {
        padding: 8px 15px;
        font-size: 0.9rem;
    }
}

/* Personnalisation DataTables */
.dataTables_wrapper .dataTables_paginate .paginate_button {
    border: none !important;
    background: transparent !important;
    color: var(--primary-navy) !important;
    border-radius: 6px;
    margin: 0 2px;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current {
    background: var(--accent-turquoise) !important;
    color: white !important;
    border: none !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background: var(--primary-navy) !important;
    color: white !important;
    border: none !important;
}

.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter {
    margin-bottom: 15px;
}

.dataTables_wrapper .dataTables_filter input {
    border: 1px solid rgba(30, 58, 95, 0.2);
    border-radius: 6px;
    padding: 8px 12px;
    background: white;
}

.dataTables_wrapper .dataTables_filter input:focus {
    border-color: var(--accent-turquoise);
    box-shadow: 0 0 0 2px rgba(0, 212, 170, 0.1);
}
/* --- NAVBAR RESPONSIVE AVEC MENU BURGER --- */
.navbar-mobile {
    display: none;
    background: linear-gradient(135deg, var(--primary-navy) 0%, #2a4a7a 100%);
    padding: 15px 20px;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1100;
    box-shadow: 0 2px 15px rgba(30, 58, 95, 0.2);
}

.navbar-mobile-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.navbar-brand {
    color: white;
    font-size: 1.3rem;
    font-weight: 700;
    text-decoration: none;
}

.menu-burger {
    background: none;
    border: none;
    color: white;
    font-size: 1.5rem;
    cursor: pointer;
    padding: 8px;
    border-radius: 6px;
    transition: all 0.3s ease;
}

.menu-burger:hover {
    background: rgba(255, 255, 255, 0.1);
    transform: scale(1.1);
}

/* Menu mobile déroulant */
.mobile-menu {
    position: fixed;
    top: 0;
    left: -100%;
    width: 280px;
    height: 100vh;
    background: linear-gradient(180deg, var(--primary-navy) 0%, #152642 100%);
    z-index: 1200;
    transition: left 0.3s ease;
    overflow-y: auto;
    padding: 60px 20px 20px 20px;
}

.mobile-menu.open {
    left: 0;
}

.mobile-menu-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    margin-bottom: 20px;
}

.mobile-menu-title {
    color: white;
    font-size: 1.2rem;
    font-weight: 600;
}

.close-mobile-menu {
    background: none;
    border: none;
    color: white;
    font-size: 1.3rem;
    cursor: pointer;
    padding: 5px;
    border-radius: 4px;
    transition: all 0.3s ease;
}

.close-mobile-menu:hover {
    background: rgba(255, 255, 255, 0.1);
    transform: scale(1.1);
}

/* Adaptation du contenu principal pour le menu mobile */
body.mobile-menu-open {
    overflow: hidden;
}

body.mobile-menu-open .main-content,
body.mobile-menu-open .top-navbar {
    filter: blur(2px);
    pointer-events: none;
}

/* Overlay pour le menu mobile */
.mobile-menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1150;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

.mobile-menu-overlay.active {
    opacity: 1;
    visibility: visible;
}

/* Styles pour les menus dans la version mobile */
.mobile-menu .menu-header {
    background-color: rgba(255, 255, 255, 0.1);
    margin: 15px 0 10px 0;
}

.mobile-menu .menu-list {
    margin-bottom: 10px;
}

/* Cacher la sidebar en responsive */
@media (max-width: 1200px) {
    .navbar-mobile {
        display: block;
    }
    
    .sidebar-left {
        display: none;
    }
    
    .main-content {
        width: 100% !important;
        margin-top: 70px; /* Espace pour la navbar mobile */
        margin-left: 0;
        padding: 20px 15px;
    }
    
    .top-navbar {
        display: none; /* On cache la top-navbar en responsive */
    }
    
    .shortcut-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 20px;
    }
    
    .circle-icon {
        width: 100px;
        height: 100px;
    }
    
    .circle-icon i {
        font-size: 2.5rem;
    }
}

@media (max-width: 768px) {
    .shortcut-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .circle-icon {
        width: 90px;
        height: 90px;
    }
    
    .circle-icon i {
        font-size: 2.2rem;
    }
}

@media (max-width: 480px) {
    .shortcut-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 15px;
    }
    
    .circle-icon {
        width: 80px;
        height: 80px;
    }
    
    .circle-icon i {
        font-size: 2rem;
    }
    
    .navbar-mobile {
        padding: 12px 15px;
    }
    
    .main-content {
        margin-top: 60px;
        padding: 15px 10px;
    }
}
/* --- COULEURS POUR LES MENUS MOBILES --- */

/* Appliquer les mêmes couleurs aux en-têtes de menu mobile */
#mobileMenuHeader1 {
    background-color: var(--menu-1-color);
    box-shadow: 0 2px 8px rgba(59, 130, 246, 0.3);
}

#mobileMenuHeader2 {
    background-color: var(--menu-2-color);
    box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3);
}

#mobileMenuHeader3 {
    background-color: var(--menu-3-color);
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3);
}

#mobileMenuHeader4 {
    background-color: var(--menu-4-color);
    box-shadow: 0 2px 8px rgba(239, 68, 68, 0.3);
}

#mobileMenuHeader5 {
    background-color: var(--menu-5-color);
    box-shadow: 0 2px 8px rgba(139, 92, 246, 0.3);
}

/* Effets de survol pour les menus mobiles */
#mobileMenuHeader1:hover {
    background-color: var(--menu-1-hover);
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.4);
}

#mobileMenuHeader2:hover {
    background-color: var(--menu-2-hover);
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4);
}

#mobileMenuHeader3:hover {
    background-color: var(--menu-3-hover);
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.4);
}

#mobileMenuHeader4:hover {
    background-color: var(--menu-4-hover);
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.4);
}

#mobileMenuHeader5:hover {
    background-color: var(--menu-5-hover);
    box-shadow: 0 4px 12px rgba(139, 92, 246, 0.4);
}

/* Bordures colorées pour les éléments de menu mobile */
#mobileMenuList1 li {
    border-left-color: var(--menu-1-color);
}

#mobileMenuList2 li {
    border-left-color: var(--menu-2-color);
}

#mobileMenuList3 li {
    border-left-color: var(--menu-3-color);
}

#mobileMenuList4 li {
    border-left-color: var(--menu-4-color);
}

#mobileMenuList5 li {
    border-left-color: var(--menu-5-color);
}

/* Effets de survol pour les éléments de menu mobile */
#mobileMenuList1 li:hover {
    background-color: rgba(59, 130, 246, 0.1);
}

#mobileMenuList2 li:hover {
    background-color: rgba(16, 185, 129, 0.1);
}

#mobileMenuList3 li:hover {
    background-color: rgba(245, 158, 11, 0.1);
}

#mobileMenuList4 li:hover {
    background-color: rgba(239, 68, 68, 0.1);
}

#mobileMenuList5 li:hover {
    background-color: rgba(139, 92, 246, 0.1);
}

/* Couleurs différentes pour les icônes des éléments de liste mobile */
#mobileMenuList1 li i {
    color: var(--menu-1-color) !important;
}

#mobileMenuList2 li i {
    color: var(--menu-2-color) !important;
}

#mobileMenuList3 li i {
    color: var(--menu-3-color) !important;
}

#mobileMenuList4 li i {
    color: var(--menu-4-color) !important;
}

#mobileMenuList5 li i {
    color: var(--menu-5-color) !important;
}

/* Icônes au survol pour mobile */
#mobileMenuList1 li:hover i {
    color: var(--menu-1-hover) !important;
}

#mobileMenuList2 li:hover i {
    color: var(--menu-2-hover) !important;
}

#mobileMenuList3 li:hover i {
    color: var(--menu-3-hover) !important;
}

#mobileMenuList4 li:hover i {
    color: var(--menu-4-hover) !important;
}

#mobileMenuList5 li:hover i {
    color: var(--menu-5-hover) !important;
}
/* Styles pour la barre de recherche dans la navbar mobile */
.navbar-mobile-search {
    flex: 1;
    max-width: 200px;
    margin: 0 15px;
}

.navbar-mobile-search .search-bar-container {
    width: 100%;
    position: relative;
}

.navbar-mobile-search .search-input {
    width: 100%;
    background-color: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: white;
    padding: 8px 15px 8px 35px;
    border-radius: 20px;
    font-size: 0.9rem;
}

.navbar-mobile-search .search-input::placeholder {
    color: rgba(255, 255, 255, 0.7);
}

.navbar-mobile-search .search-input:focus {
    background-color: rgba(255, 255, 255, 0.15);
    border-color: var(--accent-turquoise);
    box-shadow: 0 0 0 2px rgba(0, 212, 170, 0.1);
    color: white;
}

.navbar-mobile-search .search-icon {
    color: rgba(255, 255, 255, 0.7);
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
}

.navbar-mobile-search .search-bar-container:hover .search-icon {
    color: var(--accent-turquoise);
    opacity: 1;
}

/* Ajustements responsive pour la navbar mobile */
@media (max-width: 768px) {
    .navbar-mobile-search {
        max-width: 180px;
        margin: 0 10px;
    }
    
    .navbar-mobile-search .search-input {
        padding: 7px 12px 7px 32px;
        font-size: 0.85rem;
    }
}

@media (max-width: 480px) {
    .navbar-mobile-search {
        max-width: 150px;
        margin: 0 8px;
    }
    
    .navbar-mobile-search .search-input {
        padding: 6px 10px 6px 30px;
        font-size: 0.8rem;
    }
    
    .navbar-mobile-search .search-input::placeholder {
        font-size: 0.8rem;
    }
}
/* Style pour le bouton de déconnexion */
.btn-logout {
    background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
    color: white;
    border: none;
    padding: 8px 16px;
    border-radius: 8px;
    font-weight: 600;
    transition: all 0.3s ease;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
}

.btn-logout:hover {
    background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
}

/* Style pour l'élément de déconnexion dans les menus */
.logout-item .logout-link {
    color: #ef4444 !important;
    border-left-color: #ef4444 !important;
}

.logout-item:hover .logout-link {
    background-color: rgba(239, 68, 68, 0.1) !important;
    color: #ef4444 !important;
}

.logout-item .logout-link i {
    color: #ef4444 !important;
}
/* Styles pour la navbar mobile et le bouton déconnexion responsive */
.navbar-mobile-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.logout-mobile-icon {
    color: white;
    font-size: 1.2rem;
    padding: 8px;
    border-radius: 6px;
    transition: all 0.3s ease;
    background: rgba(239, 68, 68, 0.2);
    border: 1px solid rgba(239, 68, 68, 0.3);
}

.logout-mobile-icon:hover {
    background: rgba(239, 68, 68, 0.3);
    transform: scale(1.1);
    color: white;
}

/* Cacher le bouton déconnexion desktop en mobile */
@media (max-width: 1200px) {
    .navbar-actions {
        display: none;
    }
    
    .navbar-mobile-actions {
        display: flex;
    }
}

/* Afficher le bouton déconnexion desktop en desktop */
@media (min-width: 1201px) {
    .navbar-mobile-actions {
        display: none;
    }
    
    .navbar-actions {
        display: block;
    }
}

/* Styles pour les éléments de déconnexion dans les menus */
.logout-item .logout-link {
    color: #ef4444 !important;
    border-left-color: #ef4444 !important;
}

.logout-item:hover .logout-link {
    background-color: rgba(239, 68, 68, 0.1) !important;
    color: #ef4444 !important;
}

.logout-item .logout-link i {
    color: #ef4444 !important;
}

/* Style pour le bouton de déconnexion desktop */
.btn-logout {
    background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
    color: white;
    border: none;
    padding: 8px 16px;
    border-radius: 8px;
    font-weight: 600;
    transition: all 0.3s ease;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    font-size: 0.9rem;
}

.btn-logout:hover {
    background: linear-gradient(135deg, #dc2626 0%, #b91c1c 100%);
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
}

/* Adaptation responsive pour les très petits écrans */
@media (max-width: 480px) {
    .logout-mobile-icon {
        padding: 6px;
        font-size: 1.1rem;
    }
    
    .navbar-mobile-actions {
        gap: 8px;
    }
}
/*!*********************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/layout/dashboard-shell.css ***!
  \*********************************************************************************************************************************/
:root {
    --primary: #6B8E6B;
    --primary-dark: #4A634A;
    --primary-light: #A3BFA3;
    --accent: #F4F7F4;
    --app-bg: #FAF9F6;
    --surface: #FFFFFF;
    --surface-variant: #F0F4F0;
    --text-primary: #2C3E2C;
    --text-secondary: #5C705C;
    --text-hint: #94A694;
    --border: #D5E0D5;
    --error: #D34F4F;

    --sidebar-bg: #5A7E5A;
    --sidebar-hover: #759A75;
    --sidebar-active: #A3BFA3;
    --sidebar-text: #F8FAF8;
    --sidebar-w: 230px;
    --sidebar-w-sm: 64px;
    --sidebar-width: 230px;
    --sidebar-collapsed-width: 64px;
    --header-h: 64px;
    --transition: 0.22s ease;
}

html,
body {
    min-height: 100%;
    background: var(--app-bg);
}

/* Shell layout */
.dashboard-shell {
    min-height: auto;
}

/* When there is no sidebar (e.g. ROLE_CAISSIER), make main/topbar full width */
.dashboard-shell.no-sidebar .topbar {
    left: 0;
    width: 100%;
}

.dashboard-shell.no-sidebar .main-content {
    margin-left: 0 !important;
    width: 100% !important;
    min-height: auto !important;
    padding: calc(var(--header-h) + 20px) 28px 48px;
}

.dashboard-shell.no-sidebar {
    min-height: auto;
}

.topbar {
    position: fixed;
    top: 0;
    height: var(--header-h);
    display: flex;
    align-items: center;
    padding: 0 20px;
    background: var(--surface);
    border-bottom: 1px solid var(--border);
    box-shadow: 0 10px 30px rgba(11,20,47,0.06);
    z-index: 1100;
    left: var(--sidebar-width);
    width: calc(100% - var(--sidebar-width));
    transition: left var(--transition), width var(--transition), background var(--transition), box-shadow var(--transition);
}

.topbar .btn-hamburger {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--text-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background var(--transition), color var(--transition);
    flex-shrink: 0;
}

.topbar .btn-hamburger:hover {
    background: var(--primary);
    color: #fff;
}

.topbar .brand {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-left: 14px;
}

.topbar .brand .app-icon {
    width: 40px;
    height: 40px;
    background: linear-gradient(135deg, var(--primary-dark), var(--primary));
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 18px;
    font-weight: 800;
    flex-shrink: 0;
}

.topbar .brand .app-name {
    font-size: 16px;
    font-weight: 700;
    color: var(--text-primary);
}

.topbar .brand .app-sub {
    font-size: 12px;
    color: var(--text-secondary);
    margin-top: 1px;
}

/* Topbar search styles */
.topbar-search-wrapper {
    display: flex;
    align-items: center;
    margin-left: 18px;
}

/* Search card - use sidebar background color */
.topbar-search-card {
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--surface);
    border: 1.5px solid var(--sidebar-bg);
    padding: 6px 8px;
    border-radius: 999px;
    box-shadow: 0 6px 16px rgba(11,20,47,0.08);
    transition: box-shadow var(--transition), transform 0.12s ease;
}

/* Button matching sidebar color for file inputs */
.btn-sidebar {
    display: inline-block;
    background: var(--sidebar-bg);
    color: var(--sidebar-text);
    border: none;
    padding: 8px 12px;
    border-radius: 8px;
    cursor: pointer;
    text-align: center;
}

.btn-sidebar:hover {
    filter: brightness(0.95);
}

/* Hide native file input but keep it accessible */
.file-input-hidden {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.topbar-search-card .search-icon {
    color: var(--sidebar-bg);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding-left: 4px;
    font-size: 16px;
}

.topbar-search-card .search-input {
    border: none;
    outline: none;
    width: 360px;
    padding: 6px 8px;
    font-size: 14px;
    color: var(--text-primary);
    background: transparent;
    transition: width 0.22s ease, color 0.18s ease, box-shadow 0.18s ease;
}

.topbar-search-card .search-input::placeholder { color: var(--text-secondary); opacity: 0.75; }

.topbar-search-card .btn-search-clear {
    border: none;
    background: transparent;
    color: var(--sidebar-bg);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
}

.topbar-search-card:hover { box-shadow: 0 10px 24px rgba(11,20,47,0.12); transform: translateY(-1px); }
.topbar-search-card:focus-within { box-shadow: 0 0 0 3px rgba(21, 101, 192, 0.15); border-color: var(--sidebar-bg); }

.btn-search-mobile {
    border: none;
    background: transparent;
    color: var(--text-secondary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px;
    margin-left: 8px;
}

@media (max-width: 991.98px) {
    .topbar-search-card .search-input { width: 220px; }
}

@media (max-width: 767.98px) {
    .topbar-search-wrapper { display: none; }
    .topbar-search-mobile-row { position: fixed; top: var(--header-h); left: 0; right: 0; padding: 8px; z-index: 1000; display: flex; justify-content: center; background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01)); }
    .topbar-search-card-mobile { width: calc(100% - 28px); max-width: 980px; padding: 6px 10px; background: var(--surface); border: 1.5px solid var(--sidebar-bg); border-radius: 999px; box-shadow: 0 8px 18px rgba(11,20,47,0.1); display: flex; align-items: center; gap:8px; }
    .topbar-search-card-mobile .search-input-mobile { width: 100%; border: none; outline: none; background: transparent; color: var(--text-primary); padding: 6px 8px; }
    .topbar { top: 0; left: 0; width: 100%; }
}

/* When the sidebar is collapsed (body class toggled), expand topbar to fill available space */
body.sidebar-collapsed .topbar {
    left: var(--sidebar-collapsed-width);
    width: calc(100% - var(--sidebar-collapsed-width));
}

.sidebar.collapsed ~ .main-content .topbar {
    left: var(--sidebar-collapsed-width);
    width: calc(100% - var(--sidebar-collapsed-width));
}

/* When mobile menu open or sidebar overlay, keep topbar full width */
@media (max-width: 991.98px) {
    .topbar { left: 0; width: 100%; }
}

.topbar .topbar-actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* kept original topbar-actions then icon-btn follows */

.topbar .icon-btn {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background var(--transition), color var(--transition), border-color var(--transition);
    font-size: 16px;
}

.topbar .icon-btn:hover {
    background: var(--primary);
    color: #fff;
    border-color: var(--primary);
}

.topbar .user-chip {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 10px 4px 4px;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--surface);
    cursor: pointer;
    transition: background var(--transition);
}

.topbar .user-chip:hover {
    background: var(--surface-variant);
}

.topbar .user-chip .avatar {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--primary-dark), var(--primary));
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
}

.topbar .user-chip .uname {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
}

.sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    height: 100vh;        /* fallback for older browsers */
    height: 100dvh;       /* dynamic viewport: excludes Android bottom nav bar */
    width: var(--sidebar-w);
    background: var(--sidebar-bg);
    display: flex;
    flex-direction: column;
    z-index: 1030;
    overflow: hidden;
    transition: width var(--transition), transform var(--transition);
}

.sidebar.collapsed {
    width: var(--sidebar-w-sm);
}

@media (max-width: 991.98px) {
    .sidebar {
        transform: translateX(-100%);
        width: var(--sidebar-w);
    }

    .sidebar.open {
        transform: translateX(0);
        z-index: 2100;
    }
}

.sidebar-header {
    height: var(--header-h);
    display: flex;
    align-items: center;
    padding: 0 14px;
    flex-shrink: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.sidebar-header .s-logo {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 15px;
    font-weight: 800;
    flex-shrink: 0;
}

.sidebar-header .s-appname {
    margin-left: 12px;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    opacity: 1;
    transition: opacity var(--transition);
}

.sidebar-header .btn-collapse {
    margin-left: auto;
    width: 30px;
    height: 30px;
    background: rgba(255, 255, 255, 0.12);
    border: none;
    border-radius: 8px;
    color: rgba(255, 255, 255, 0.9);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 16px;
    transition: background var(--transition), transform var(--transition);
    flex-shrink: 0;
}

.sidebar-header .btn-collapse:hover {
    background: rgba(255, 255, 255, 0.22);
}

.sidebar.collapsed .s-appname {
    opacity: 0;
    width: 0;
    margin: 0;
}

.sidebar.collapsed .btn-collapse {
    transform: rotate(180deg);
}

.sidebar.collapsed .menu-label {
    opacity: 0;
    width: 0;
    overflow: hidden;
}

.sidebar.collapsed .menu-item,
.sidebar.collapsed .menu-accordion .accordion-btn {
    justify-content: center;
    padding-left: 0;
    padding-right: 0;
}

.sidebar.collapsed .menu-item .mi-icon,
.sidebar.collapsed .menu-accordion .accordion-btn .mi-icon {
    margin-right: 0;
}

.sidebar.collapsed .menu-accordion .chevron,
.sidebar.collapsed .menu-accordion .sub-items {
    display: none;
}

.sidebar-menu {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 12px 10px;
}

.sidebar-menu::-webkit-scrollbar {
    width: 3px;
}

.sidebar-menu::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.2);
    border-radius: 4px;
}

.menu-item {
    display: flex;
    align-items: center;
    padding: 10px 12px;
    border-radius: 12px;
    color: var(--sidebar-text);
    text-decoration: none;
    cursor: pointer;
    transition: background var(--transition), color var(--transition), transform 0.12s ease;
    white-space: nowrap;
    margin-bottom: 4px;
    user-select: none;
    position: relative;
}

.menu-item .mi-icon {
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
    margin-right: 12px;
}

.menu-label {
    font-size: 14px;
    font-weight: 600;
    transition: opacity var(--transition);
}

.menu-item:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    transform: translateX(2px);
}

.menu-item.active {
    background: rgba(144, 202, 249, 0.18);
    color: var(--sidebar-active);
}

.menu-item.active .mi-icon {
    color: var(--sidebar-active);
}

.menu-item.active::before {
    content: '';
    position: absolute;
    left: 0;
    top: 8px;
    bottom: 8px;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: var(--sidebar-active);
}

.menu-accordion .accordion-btn {
    display: flex;
    align-items: center;
    padding: 10px 12px;
    border-radius: 12px;
    color: var(--sidebar-text);
    cursor: pointer;
    white-space: nowrap;
    margin-bottom: 4px;
    user-select: none;
    transition: background var(--transition);
}

.menu-accordion .accordion-btn:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
}

.menu-accordion .accordion-btn .mi-icon {
    width: 22px;
    font-size: 18px;
    flex-shrink: 0;
    margin-right: 12px;
}

.menu-accordion .chevron {
    margin-left: auto;
    font-size: 12px;
    transition: transform 0.2s ease;
}

.menu-accordion.open .chevron {
    transform: rotate(90deg);
}

.menu-accordion .sub-items {
    overflow: hidden;
    max-height: 0;
    transition: max-height 0.25s ease;
}

.menu-accordion.open .sub-items {
    max-height: 300px;
}

.sub-item {
    display: flex;
    align-items: center;
    padding: 8px 12px 8px 42px;
    border-radius: 10px;
    color: rgba(227, 242, 253, 0.75);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    text-decoration: none;
    margin-bottom: 2px;
    transition: background var(--transition), color var(--transition);
}

.sub-item:hover {
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
}

.sub-item .si-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    margin-right: 10px;
    opacity: 0.6;
}

.sidebar-bottom {
    padding: 10px;
    /* Fallback hardcodé pour la bottom nav Android (56px typique) */
    padding-bottom: 66px;
    /* Safe area inset si disponible (iOS/Android gesture nav) */
    padding-bottom: calc(10px + max(env(safe-area-inset-bottom, 0px), 0px));
    flex-shrink: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

@media (max-width: 991.98px) {
    /* Sur mobile : padding-bottom minimum de 66px pour couvrir la barre Android */
    .sidebar-bottom {
        padding-bottom: 66px;
        padding-bottom: max(66px, calc(10px + env(safe-area-inset-bottom, 56px)));
    }
}

.sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 2040;
}

.sidebar-overlay.visible {
    display: block;
    z-index: 2040;
}

.main-content {
    margin-top: 0;
    margin-left: var(--sidebar-w);
    padding: calc(var(--header-h) + 20px) 28px 48px;
    min-height: auto;
    width: calc(100% - var(--sidebar-w));
    transition: margin-left var(--transition), width var(--transition);
}

.sidebar.collapsed ~ .main-content {
    margin-left: var(--sidebar-w-sm);
    width: calc(100% - var(--sidebar-w-sm));
}

@media (max-width: 991.98px) {
    .main-content {
        margin-left: 0 !important;
        padding: calc(var(--header-h) + 20px) 16px 48px;
    }
}

@media (max-width: 767.98px) {
    .main-content {
        padding: calc(var(--header-h) + 76px) 16px 48px;
    }
}

/* User dropdown */
.user-dropdown {
    position: relative;
    display: inline-block;
}

.user-dropdown-menu {
    display: none;
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
    min-width: 170px;
    z-index: 2200;
    overflow: hidden;
}

.user-dropdown.open .user-dropdown-menu {
    display: block;
}

.user-dropdown-menu a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    text-decoration: none;
    transition: background var(--transition);
}

.user-dropdown-menu a:hover {
    background: var(--surface-variant);
}

.user-dropdown-menu a.danger {
    color: var(--error);
}

/* Ensure bootstrap modals appear above the fixed topbar */
.modal {
    z-index: 2260 !important;
}
.modal-backdrop {
    z-index: 2250 !important;
}

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

::-webkit-scrollbar-thumb {
    background: rgba(66, 165, 245, 0.25);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: rgba(66, 165, 245, 0.5);
}

/* =============================================
   Page loader — transitions entre pages
   ============================================= */
.page-loader {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: flex;
    align-items: center;
    justify-content: center;
    /* caché par défaut */
    opacity: 0;
    pointer-events: none;
    transition: opacity 150ms ease;
}

.page-loader.is-active {
    opacity: 1;
    pointer-events: auto;
}

.page-loader__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(245, 251, 255, 0.88);
    backdrop-filter: blur(2px);
}

.page-loader__content {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 20px 28px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 28px rgba(11, 20, 47, 0.10);
}

.page-loader__spinner {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 4px solid var(--border, #DDEEF9);
    border-top-color: var(--primary, #42A5F5);
    animation: pl-spin 0.85s linear infinite;
}

.page-loader__text {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-secondary, #455A64);
    letter-spacing: 0.01em;
}

@keyframes pl-spin { to { transform: rotate(360deg); } }

/*!*************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[1].use[1]!./assets/styles/pages/shortcut.css ***!
  \*************************************************************************************************************************/
/* Page shortcut: style strictement calqué sur la maquette HTML source */
.page-header {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 32px;
}

.page-header .page-icon-wrap {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: rgba(66, 165, 245, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--primary);
    font-size: 24px;
    flex-shrink: 0;
}

.page-header h1 {
    font-size: 26px;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.2;
}

.page-header .page-sub {
    font-size: 14px;
    color: var(--text-secondary);
    margin-top: 4px;
}

.section-label {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.5px;
    color: var(--text-secondary);
    text-transform: uppercase;
    margin-bottom: 14px;
}

.shortcuts-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 20px;
    margin-bottom: 28px;
}

@media (max-width: 900px) {
    .shortcuts-grid {
        grid-template-columns: repeat(4, 1fr);
        gap: 16px;
    }
}

@media (max-width: 540px) {
    .shortcuts-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 14px;
    }
}

.sc-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
    text-decoration: none;
    outline: none;
    transform-origin: center;
    transition: transform 0.18s cubic-bezier(.34, 1.56, .64, 1);
}

.sc-card:hover {
    transform: scale(1.05);
}

.sc-card:active {
    transform: scale(0.92);
}

.sc-tile {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    transition: box-shadow 0.2s ease;
    box-shadow: var(--sc-shadow-default, 0 6px 16px rgba(0, 0, 0, 0.18));
}

.sc-card:hover .sc-tile {
    box-shadow: 0 16px 36px -4px var(--sc-shadow, rgba(0, 0, 0, 0.25));
}

.sc-tile::before {
    content: '';
    position: absolute;
    top: -12px;
    right: -12px;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
}

.sc-tile::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: -10px;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
}

.sc-tile .tile-icon {
    font-size: clamp(28px, 8vw, 52px);
    color: #fff;
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.2));
    position: relative;
    z-index: 1;
}

.sc-label {
    margin-top: 10px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-primary);
    text-align: center;
    line-height: 1.25;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.featured-section {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.featured-card {
    width: 100%;
    height: 110px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    padding: 16px;
    cursor: pointer;
    text-decoration: none;
    position: relative;
    overflow: hidden;
    transition: transform 0.16s ease, box-shadow 0.16s ease;
}

.featured-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 40px -8px var(--fc-shadow, rgba(0, 0, 0, 0.25));
}

.featured-card:active {
    transform: scale(0.98);
}

.fc-icon-wrap {
    width: 88px;
    height: 88px;
    flex-shrink: 0;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
}

.fc-icon-wrap .fc-icon {
    font-size: 46px;
    color: #fff;
}

.fc-text {
    flex: 1;
    padding: 0 16px;
}

.fc-text .fc-title {
    font-size: 18px;
    font-weight: 700;
    color: #fff;
    line-height: 1.25;
}

.fc-text .fc-sub {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.75);
    margin-top: 6px;
}

.fc-chevron {
    color: rgba(255, 255, 255, 0.85);
    font-size: 18px;
    flex-shrink: 0;
}

.featured-card::before {
    content: '';
    position: absolute;
    top: -20px;
    right: -20px;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.06);
}

@media (max-width: 575.98px) {
    .page-header h1 {
        font-size: 20px;
    }

    .page-header .page-icon-wrap {
        width: 42px;
        height: 42px;
        font-size: 20px;
    }

    .featured-card {
        height: 96px;
    }

    .fc-icon-wrap {
        width: 72px;
        height: 72px;
    }

    .fc-icon-wrap .fc-icon {
        font-size: 36px;
    }

    .fc-text .fc-title {
        font-size: 15px;
    }
}


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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O0lBQ2IsbUJBQW1CO0lBQ25CLGFBQWE7SUFDYixlQUFlO0lBQ2YscUJBQXFCO0lBQ3JCLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsdURBQXVEO0FBQzNEOztBQUVBO0lBQ0ksMkJBQTJCO0lBQzNCLGtFQUFrRTtBQUN0RTs7QUFFQTtJQUNJLHNCQUFzQjtBQUMxQjs7QUFFQTtJQUNJLFdBQVc7SUFDWCxZQUFZO0lBQ1osY0FBYztJQUNkLG1CQUFtQjtJQUNuQixxQ0FBcUM7SUFDckMsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQix1QkFBdUI7QUFDM0I7O0FBRUE7SUFDSSxlQUFlO0lBQ2YsV0FBVztBQUNmOztBQUVBO0lBQ0ksT0FBTztJQUNQLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLFdBQVc7SUFDWCxpQkFBaUI7QUFDckI7O0FBRUE7SUFDSSxlQUFlO0lBQ2YsZ0NBQWdDO0lBQ2hDLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxnQ0FBZ0M7SUFDaEMsZUFBZTtJQUNmLGNBQWM7QUFDbEI7O0FBRUE7SUFDSSxXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVixZQUFZO0lBQ1osWUFBWTtJQUNaLGFBQWE7SUFDYixrQkFBa0I7SUFDbEIscUNBQXFDO0FBQ3pDOztBQUVBO0lBQ0k7UUFDSSxlQUFlO0lBQ25COztJQUVBO1FBQ0ksV0FBVztRQUNYLFlBQVk7UUFDWixlQUFlO0lBQ25COztJQUVBO1FBQ0ksWUFBWTtJQUNoQjs7SUFFQTtRQUNJLFdBQVc7UUFDWCxZQUFZO0lBQ2hCOztJQUVBO1FBQ0ksZUFBZTtJQUNuQjs7SUFFQTtRQUNJLGVBQWU7SUFDbkI7QUFDSiIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvYXBwLmNzcyIsIndlYnBhY2s6Ly8vLi9hc3NldHMvc3R5bGVzL2xheW91dC9kYXNoYm9hcmQtc2hlbGwuY3NzIiwid2VicGFjazovLy8uL2Fzc2V0cy9zdHlsZXMvcGFnZXMvc2hvcnRjdXQuY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIjpyb290IHtcclxuICAgIC0tcHJpbWFyeS1uYXZ5OiAjMWUzYTVmO1xyXG4gICAgLS1hY2NlbnQtdHVycXVvaXNlOiAjMDBkNGFhO1xyXG4gICAgLS1zaWRlYmFyLWFjY2VudDogIzdjM2FlZDtcclxuICAgIC0tbGlnaHQtY3JlYW06ICNmOGZhZmM7XHJcbiAgICAtLXNpZGViYXItd2lkdGg6IDI1MHB4O1xyXG4gICAgLS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aDogODBweDtcclxuICAgICAgICAtLW1lbnUtMS1jb2xvcjogIzNiODJmNjsgLyogQmxldSAqL1xyXG4gICAgLS1tZW51LTItY29sb3I6ICMxMGI5ODE7IC8qIFZlcnQgKi9cclxuICAgIC0tbWVudS0zLWNvbG9yOiAjZjU5ZTBiOyAvKiBPcmFuZ2UgKi9cclxuICAgIC0tbWVudS00LWNvbG9yOiAjZWY0NDQ0OyAvKiBSb3VnZSAqL1xyXG4gICAgLS1tZW51LTUtY29sb3I6ICM4YjVjZjY7IC8qIFZpb2xldCAqL1xyXG4gICAgXHJcbiAgICAvKiBDb3VsZXVycyBhdSBzdXJ2b2wgKi9cclxuICAgIC0tbWVudS0xLWhvdmVyOiAjMjU2M2ViO1xyXG4gICAgLS1tZW51LTItaG92ZXI6ICMwNTk2Njk7XHJcbiAgICAtLW1lbnUtMy1ob3ZlcjogI2Q5NzcwNjtcclxuICAgIC0tbWVudS00LWhvdmVyOiAjZGMyNjI2O1xyXG4gICAgLS1tZW51LTUtaG92ZXI6ICM3YzNhZWQ7XHJcbn1cclxuXHJcbi8qIEdsb2JhbCBib3ggbW9kZWwgKyByZXNldCAqL1xyXG4qLFxyXG4qOjpiZWZvcmUsXHJcbio6OmFmdGVyIHtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbn1cclxuXHJcbmh0bWwsIGJvZHkge1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgZm9udC1mYW1pbHk6ICdTZWdvZSBVSScsIFRhaG9tYSwgR2VuZXZhLCBWZXJkYW5hLCBzYW5zLXNlcmlmO1xyXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gICAgY29sb3I6IHZhcigtLXByaW1hcnktbmF2eSk7XHJcbn1cclxuXHJcbi5jb250YWluZXItZmx1aWQge1xyXG4gICAgcGFkZGluZzogMDtcclxufVxyXG5cclxuLnJvdy5nLTAge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgbWluLWhlaWdodDogMTAwdmg7XHJcbn1cclxuXHJcbi8qIC0tLSBTVFJVQ1RVUkUgUFJJTkNJUEFMRSAtLS0gKi9cclxuLmRhc2hib2FyZC1jb250YWluZXIge1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tbGlnaHQtY3JlYW0pIDAlLCAjZThlY2VmIDEwMCUpO1xyXG4gICAgbWluLWhlaWdodDogMTAwdmg7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICB6LWluZGV4OiAxO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi8qIEFqdXN0ZW1lbnQgZHUgY29udGVudSBwcmluY2lwYWwgcG91ciBxdSdpbCBuZSBwYXNzZSBwYXMgc291cyBsYSBzaWRlYmFyICovXHJcbi5tYWluLWNvbnRlbnQge1xyXG4gICAgcGFkZGluZzogNDBweCAyMHB4IDQwcHggNDBweDtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbiAgICBmbGV4OiAxO1xyXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLXNpZGViYXItd2lkdGgpKTtcclxuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zaWRlYmFyLXdpZHRoKTtcclxufVxyXG5cclxuLyogUXVhbmQgbGEgc2lkZWJhciBlc3QgcsOpZHVpdGUgKi9cclxuYm9keS5zaWRlYmFyLWNvbGxhcHNlZCAubWFpbi1jb250ZW50IHtcclxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aCkpO1xyXG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNpZGViYXItY29sbGFwc2VkLXdpZHRoKTtcclxufVxyXG5cclxuLyogLS0tIE5BVkJBUiAtLS0gKi9cclxuLnRvcC1uYXZiYXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1uYXZ5KTtcclxuICAgIHBhZGRpbmc6IDE1cHggNDBweDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgYm94LXNoYWRvdzogMCAycHggMTVweCByZ2JhKDMwLCA1OCwgOTUsIDAuMSk7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gICAgcG9zaXRpb246IHN0aWNreTtcclxuICAgIHRvcDogMDtcclxuICAgIHotaW5kZXg6IDEwMDtcclxuICAgIHdpZHRoOiBjYWxjKDEwMiUgLSB2YXIoLS1zaWRlYmFyLXdpZHRoKSk7XHJcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tc2lkZWJhci13aWR0aCk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzMCwgNTgsIDk1LCAwLjEpO1xyXG59XHJcblxyXG5ib2R5LnNpZGViYXItY29sbGFwc2VkIC50b3AtbmF2YmFyIHtcclxuICAgIHdpZHRoOiBjYWxjKDEwMiUgLSB2YXIoLS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aCkpO1xyXG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNpZGViYXItY29sbGFwc2VkLXdpZHRoKTtcclxufVxyXG5cclxuLnNlYXJjaC1iYXItY29udGFpbmVyIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHdpZHRoOiAzMDBweDtcclxuICAgIG1hcmdpbjogYXV0bztcclxufVxyXG5cclxuLnNlYXJjaC1pbnB1dCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodC1jcmVhbSk7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDMwLCA1OCwgOTUsIDAuMSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xyXG4gICAgcGFkZGluZzogMTBweCAyMHB4IDEwcHggNDBweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LW5hdnkpO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxufVxyXG5cclxuLnNlYXJjaC1pbnB1dDpmb2N1cyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1hY2NlbnQtdHVycXVvaXNlKTtcclxuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50LXR1cnF1b2lzZSk7XHJcbn1cclxuXHJcbi5zZWFyY2gtaWNvbiB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBsZWZ0OiAxNXB4O1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1uYXZ5KTtcclxuICAgIG9wYWNpdHk6IDAuNTtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbn1cclxuXHJcbi5zZWFyY2gtYmFyLWNvbnRhaW5lcjpob3ZlciAuc2VhcmNoLWljb24ge1xyXG4gICAgY29sb3I6IHZhcigtLWFjY2VudC10dXJxdW9pc2UpO1xyXG4gICAgb3BhY2l0eTogMTtcclxufVxyXG5cclxuLyogLS0tIFNJREVCQVIgR0FVQ0hFIC0tLSAqL1xyXG4uc2lkZWJhci1sZWZ0IHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHZhcigtLXByaW1hcnktbmF2eSkgMCUsICMxNTI2NDIgMTAwJSk7XHJcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogMDtcclxuICAgIHdpZHRoOiB2YXIoLS1zaWRlYmFyLXdpZHRoKTtcclxuICAgIHotaW5kZXg6IDEwMDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcclxufVxyXG5cclxuLnNpZGViYXItbGVmdC5jb2xsYXBzZWQge1xyXG4gICAgd2lkdGg6IHZhcigtLXNpZGViYXItY29sbGFwc2VkLXdpZHRoKTtcclxufVxyXG5cclxuLnNpZGViYXItdG9nZ2xlIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMjBweDtcclxuICAgIHJpZ2h0OiAxNXB4O1xyXG4gICAgbGVmdDogYXV0bztcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbiAgICB6LWluZGV4OiAxMDtcclxufVxyXG5cclxuLnNpZGViYXItdG9nZ2xlOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLXNpZGViYXItYWNjZW50KTtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcclxufVxyXG5cclxuLyogLS0tIENPTlRFTlUgU0lERUJBUiBBVkVDIFNDUk9MTCAtLS0gKi9cclxuLnNpZGViYXItY29udGVudCB7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbiAgICBwYWRkaW5nOiA2MHB4IDIwcHggMjBweCAyMHB4O1xyXG4gICAgZmxleDogMTtcclxuICAgIG92ZXJmbG93LXk6IGF1dG87IC8qIEFjdGl2YXRpb24gZHUgc2Nyb2xsIHZlcnRpY2FsICovXHJcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gODBweCk7IC8qIEhhdXRldXIgbWF4aW1hbGUgYXZlYyBlc3BhY2UgcG91ciBsZSB0b2dnbGUgKi9cclxuICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjtcclxuICAgIHNjcm9sbGJhci1jb2xvcjogdmFyKC0tc2lkZWJhci1hY2NlbnQpIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcclxufVxyXG5cclxuLyogU2Nyb2xsYmFyIHBlcnNvbm5hbGlzw6llIHBvdXIgV2Via2l0IChDaHJvbWUsIFNhZmFyaSwgRWRnZSkgKi9cclxuLnNpZGViYXItY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gICAgd2lkdGg6IDZweDtcclxufVxyXG5cclxuLnNpZGViYXItY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2sge1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xyXG59XHJcblxyXG4uc2lkZWJhci1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7XHJcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG59XHJcblxyXG4uc2lkZWJhci1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjNmQyOGQ5OyAvKiBWaW9sZXQgcGx1cyBjbGFpciBhdSBzdXJ2b2wgKi9cclxufVxyXG5cclxuLnNpZGViYXItbGVmdC5jb2xsYXBzZWQgLnNpZGViYXItY29udGVudCB7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxufVxyXG5cclxuLnNpZGViYXItbGVmdC5jb2xsYXBzZWQub3BlbiB7XHJcbiAgICB3aWR0aDogdmFyKC0tc2lkZWJhci13aWR0aCk7XHJcbiAgICBib3gtc2hhZG93OiA0cHggMCAxOHB4IHJnYmEoMCwgMCwgMCwgMC4yNSk7XHJcbiAgICB6LWluZGV4OiAxMTAwO1xyXG59XHJcblxyXG4uc2lkZWJhci1sZWZ0LmNvbGxhcHNlZC5vcGVuIC5zaWRlYmFyLWNvbnRlbnQge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xyXG59XHJcblxyXG4vKiAtLS0gTUVOVSBEw4lQTElBTlQgLS0tICovXHJcbi5tZW51LWhlYWRlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICBwYWRkaW5nOiAxNXB4O1xyXG4gICAgZm9udC1zaXplOiAxLjFyZW07XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgbWFyZ2luOiAwIDAgMTVweCAwO1xyXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMTI0LCA1OCwgMjM3LCAwLjMpO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgei1pbmRleDogMjtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xyXG59XHJcblxyXG4ubWVudS1oZWFkZXI6aG92ZXIge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xyXG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDEyNCwgNTgsIDIzNywgMC40KTtcclxufVxyXG5cclxuLm1lbnUtaGVhZGVyOjphZnRlciB7XHJcbiAgICBjb250ZW50OiAnXFxmMDc4JztcclxuICAgIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA2IEZyZWVcIjtcclxuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICByaWdodDogMTVweDtcclxuICAgIHRvcDogNTAlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcclxufVxyXG5cclxuLm1lbnUtaGVhZGVyLmV4cGFuZGVkOjphZnRlciB7XHJcbiAgICBjb250ZW50OiAnXFxmMDc3JztcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoMTgwZGVnKTtcclxufVxyXG5cclxuLm1lbnUtbGlzdCB7XHJcbiAgICBsaXN0LXN0eWxlOiBub25lO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgbWF4LWhlaWdodDogMDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG59XHJcblxyXG4ubWVudS1saXN0LmV4cGFuZGVkIHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIG1heC1oZWlnaHQ6IDUwMHB4O1xyXG59XHJcblxyXG4ubWVudS1saXN0IGxpIHtcclxuICAgIHBhZGRpbmc6IDEycHggMTVweDtcclxuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgdHJhbnNpdGlvbjogMC4zcztcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZ2FwOiAxMnB4O1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XHJcbiAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkIHZhcigtLXNpZGViYXItYWNjZW50KTtcclxuICAgIG1hcmdpbi1ib3R0b206IDVweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDAgNXB4IDVweCAwO1xyXG59XHJcblxyXG4ubWVudS1saXN0IGxpOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTI0LCA1OCwgMjM3LCAwLjEpO1xyXG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4ubWVudS1saXN0IGxpIGkge1xyXG4gICAgY29sb3I6IHZhcigtLWxpZ2h0LWNyZWFtKTtcclxuICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbn1cclxuXHJcbi8qIE1pbmkgbWVudSBwb3VyIGwnw6l0YXQgcsOpZHVpdCAqL1xyXG4ubWluaS1tZW51IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogMjBweDtcclxuICAgIHBhZGRpbmc6IDgwcHggMCAyMHB4IDA7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvOyAvKiBTY3JvbGwgYXVzc2kgcG91ciBsZSBtaW5pLW1lbnUgYXUgY2FzIG/DuSAqL1xyXG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDEwMHB4KTtcclxufVxyXG5cclxuLnNpZGViYXItbGVmdC5jb2xsYXBzZWQgLm1pbmktbWVudSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG59XHJcblxyXG4ubWluaS1tZW51LWl0ZW0ge1xyXG4gICAgd2lkdGg6IDUwcHg7XHJcbiAgICBoZWlnaHQ6IDUwcHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XHJcbn1cclxuXHJcbi5taW5pLW1lbnUtaXRlbTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XHJcbn1cclxuXHJcbi5taW5pLW1lbnUtaXRlbSBpIHtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG59XHJcblxyXG4ubWluaS1tZW51LXRvb2x0aXAge1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgcmlnaHQ6IDEwMCU7XHJcbiAgICB0b3A6IDUwJTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNpZGViYXItYWNjZW50KTtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xyXG4gICAgZm9udC1zaXplOiAwLjhyZW07XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbiAgICB6LWluZGV4OiAxMDA7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG59XHJcblxyXG4ubWluaS1tZW51LWl0ZW06aG92ZXIgLm1pbmktbWVudS10b29sdGlwIHtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG59XHJcblxyXG4vKiAtLS0gR1JJTExFIERFUyBDRVJDTEVTIC0gSUPDlE5FUyBUUsOIUyBBR1JBTkRJRVMgLS0tICovXHJcbi5zaG9ydGN1dC1ncmlkIHtcclxuICAgIGRpc3BsYXk6IGdyaWQ7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg2LCBtaW5tYXgoMTQwcHgsIDFmcikpO1xyXG4gICAgZ2FwOiAzMHB4IDIwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1MHB4O1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xyXG4gICAgYWxpZ24taXRlbXM6IHN0YXJ0O1xyXG59XHJcblxyXG4uY2lyY2xlLXdyYXBwZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5jaXJjbGUtaWNvbiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIHdpZHRoOiAxNDBweDtcclxuICAgIGhlaWdodDogMTQwcHg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDA7XHJcbn1cclxuXHJcbi5jaXJjbGUtaWNvbiBpIHtcclxuICAgIGZvbnQtc2l6ZTogM3JlbTtcclxuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LW5hdnkpO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxufVxyXG5cclxuLmNpcmNsZS1pY29uOmhvdmVyIGkge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xyXG4gICAgY29sb3I6IHZhcigtLXNpZGViYXItYWNjZW50KTtcclxufVxyXG5cclxuLmNpcmNsZS1pY29uLmFjdGl2ZSBpIHtcclxuICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7ICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcclxufVxyXG5cclxuLmNpcmNsZS10ZXh0IHtcclxuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LW5hdnkpO1xyXG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xyXG4gICAgbWFyZ2luLXRvcDogMTJweDtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBmb250LXdlaWdodDogNTAwO1xyXG59XHJcblxyXG4uY2lyY2xlLXdyYXBwZXI6aG92ZXIgLmNpcmNsZS10ZXh0IHtcclxuICAgIGNvbG9yOiB2YXIoLS1zaWRlYmFyLWFjY2VudCk7ICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcclxufVxyXG5cclxuLyogLS0tIFdJREdFVCBDQSAtLS0gKi9cclxuLmNhcmQtY2Ege1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tcHJpbWFyeS1uYXZ5KSAwJSwgIzJhNGE3YSAxMDAlKTtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgYm94LXNoYWRvdzogMCA4cHggMjVweCByZ2JhKDMwLCA1OCwgOTUsIDAuMTUpO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xyXG59XHJcblxyXG4uY2FyZC1jYTpob3ZlciB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7XHJcbiAgICBib3gtc2hhZG93OiAwIDE1cHggMzVweCByZ2JhKDMwLCA1OCwgOTUsIDAuMjUpO1xyXG59XHJcblxyXG4uY2FyZC1jYSAuY2FyZC1ib2R5IHtcclxuICAgIHBhZGRpbmc6IDMwcHg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGZsZXg6IDE7XHJcbn1cclxuXHJcbi5jYS1sYWJlbCB7XHJcbiAgICBmb250LXNpemU6IDNyZW07XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxuICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtdHVycXVvaXNlKTtcclxufVxyXG5cclxuLmNhcmQtY2E6aG92ZXIgLmNhLWxhYmVsIHtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XHJcbn1cclxuXHJcbi5jYS12YWx1ZSB7XHJcbiAgICBmb250LXNpemU6IDEuNHJlbTtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbn1cclxuXHJcbi5jYXJkLWNhOmhvdmVyIC5jYS12YWx1ZSB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNXB4KTtcclxufVxyXG5cclxuLmNhcmQtY2EtZm9vdGVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMjEyLCAxNzAsIDAuMSk7XHJcbiAgICBwYWRkaW5nOiAxMnB4IDIwcHg7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBmb250LXNpemU6IDAuOXJlbTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IDEwcHg7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gICAgY29sb3I6IHZhcigtLWFjY2VudC10dXJxdW9pc2UpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuLmNhcmQtY2EtZm9vdGVyOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMjEyLCAxNzAsIDAuMik7XHJcbiAgICBnYXA6IDE1cHg7XHJcbn1cclxuXHJcbi5jYXJkLWNhLWZvb3RlciBpIHtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XHJcbiAgICBmb250LXNpemU6IDEuMXJlbTtcclxufVxyXG5cclxuLmNhcmQtY2EtZm9vdGVyOmhvdmVyIGkge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCk7XHJcbn1cclxuXHJcbi8qIC0tLSBXSURHRVQgR1JBUEhJUVVFIC0tLSAqL1xyXG4uY2FyZC1jaGFydCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XHJcbiAgICBwYWRkaW5nOiAyMHB4O1xyXG4gICAgYm94LXNoYWRvdzogMCA4cHggMjVweCByZ2JhKDMwLCA1OCwgOTUsIDAuMTUpO1xyXG4gICAgbWluLWhlaWdodDogMjYwcHg7XHJcbiAgICBtYXgtaGVpZ2h0OiAzNjBweDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzMCwgNTgsIDk1LCAwLjEpO1xyXG59XHJcblxyXG4uY2FyZC1jaGFydDpob3ZlciB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7XHJcbiAgICBib3gtc2hhZG93OiAwIDE1cHggMzVweCByZ2JhKDMwLCA1OCwgOTUsIDAuMjUpO1xyXG59XHJcblxyXG4uY2FyZC1jaGFydCBjYW52YXMge1xyXG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4vKiBTdHlsZXMgcG91ciBsYSBtb2RhbCBkZXMgcmFjY291cmNpcyAtIElDw5RORVMgVFLDiFMgQUdSQU5ESUVTICovXHJcbi5tb2RhbC1zaG9ydGN1dHMgLm1vZGFsLWNvbnRlbnQge1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IHJnYmEoMzAsIDU4LCA5NSwgMC4yKTtcclxufVxyXG5cclxuLm1vZGFsLXNob3J0Y3V0LWdyaWQge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIDFmcik7XHJcbiAgICBnYXA6IDI1cHg7XHJcbiAgICBwYWRkaW5nOiAyNXB4IDA7XHJcbn1cclxuXHJcbi5tb2RhbC1jaXJjbGUtd3JhcHBlciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xyXG4gICAgcGFkZGluZzogMjBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbn1cclxuXHJcbi5tb2RhbC1jaXJjbGUtd3JhcHBlcjpob3ZlciB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodC1jcmVhbSk7XHJcbn1cclxuXHJcbi5tb2RhbC1jaXJjbGUtaWNvbiB7XHJcbiAgICB3aWR0aDogMTAwcHg7XHJcbiAgICBoZWlnaHQ6IDEwMHB4O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbn1cclxuXHJcbi5tb2RhbC1jaXJjbGUtaWNvbiBpIHtcclxuICAgIGZvbnQtc2l6ZTogMy41cmVtO1xyXG4gICAgY29sb3I6IHZhcigtLXByaW1hcnktbmF2eSk7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG59XHJcblxyXG4ubW9kYWwtY2lyY2xlLXdyYXBwZXI6aG92ZXIgLm1vZGFsLWNpcmNsZS1pY29uIGkge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xyXG4gICAgY29sb3I6IHZhcigtLXNpZGViYXItYWNjZW50KTtcclxufVxyXG5cclxuLm1vZGFsLWNpcmNsZS10ZXh0IHtcclxuICAgIGZvbnQtc2l6ZTogMXJlbTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LW5hdnkpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxufVxyXG5cclxuLyogSWPDtG5lcyBkYW5zIGxlcyBlbi10w6p0ZXMgZGUgbWVudSBkZSBsYSBzaWRlYmFyICovXHJcbi5tZW51LWhlYWRlciBpIHtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XHJcbn1cclxuXHJcbi8qIC0tLSBNRURJQSBRVUVSSUVTIEFWRUMgTEVTIE5PVVZFTExFUyBUQUlMTEVTIC0tLSAqL1xyXG5AbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XHJcbiAgICAuc2hvcnRjdXQtZ3JpZCB7XHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDEzMHB4LCAxZnIpKTtcclxuICAgIH1cclxuICAgIC5tb2RhbC1zaG9ydGN1dC1ncmlkIHtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xyXG4gICAgfVxyXG4gICAgLmNpcmNsZS1pY29uIHtcclxuICAgICAgICB3aWR0aDogMTIwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiAxMjBweDtcclxuICAgIH1cclxuICAgIC5jaXJjbGUtaWNvbiBpIHtcclxuICAgICAgICBmb250LXNpemU6IDRyZW07XHJcbiAgICB9XHJcbiAgICAubW9kYWwtY2lyY2xlLWljb24ge1xyXG4gICAgICAgIHdpZHRoOiA5MHB4O1xyXG4gICAgICAgIGhlaWdodDogOTBweDtcclxuICAgIH1cclxuICAgIC5tb2RhbC1jaXJjbGUtaWNvbiBpIHtcclxuICAgICAgICBmb250LXNpemU6IDNyZW07XHJcbiAgICB9XHJcbiAgICAgICAgICAgIC5zaWRlYmFyLWxlZnQuY29sbGFwc2VkLm9wZW4gLnNpZGViYXItY29udGVudCB7XHJcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcclxuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gODBweCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA5OTJweCkge1xyXG4gICAgLnNob3J0Y3V0LWdyaWQge1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgxMjBweCwgMWZyKSk7XHJcbiAgICAgICAgZ2FwOiAyNXB4IDE1cHg7XHJcbiAgICB9XHJcbiAgICAubW9kYWwtc2hvcnRjdXQtZ3JpZCB7XHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTtcclxuICAgIH1cclxuICAgIC5jaXJjbGUtaWNvbiB7XHJcbiAgICAgICAgd2lkdGg6IDExMHB4O1xyXG4gICAgICAgIGhlaWdodDogMTEwcHg7XHJcbiAgICB9XHJcbiAgICAuY2lyY2xlLWljb24gaSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAzLjVyZW07XHJcbiAgICB9XHJcbiAgICAubW9kYWwtY2lyY2xlLWljb24ge1xyXG4gICAgICAgIHdpZHRoOiA4NXB4O1xyXG4gICAgICAgIGhlaWdodDogODVweDtcclxuICAgIH1cclxuICAgIC5tb2RhbC1jaXJjbGUtaWNvbiBpIHtcclxuICAgICAgICBmb250LXNpemU6IDIuOHJlbTtcclxuICAgIH1cclxuICAgICAgICAgICAgLnNpZGViYXItbGVmdC5jb2xsYXBzZWQub3BlbiAuc2lkZWJhci1jb250ZW50IHtcclxuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA4MHB4KTtcclxuICAgIH1cclxufVxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuc2lkZWJhci1sZWZ0IHtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xyXG4gICAgfVxyXG5cclxuICAgIC5zaWRlYmFyLWxlZnQuY29sbGFwc2VkIHtcclxuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XHJcbiAgICAgICAgd2lkdGg6IHZhcigtLXNpZGViYXItY29sbGFwc2VkLXdpZHRoKTtcclxuICAgIH1cclxuXHJcbiAgICAubWFpbi1jb250ZW50IHtcclxuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gICAgICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnRvcC1uYXZiYXIge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgcGFkZGluZzogMTVweCAyMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5zZWFyY2gtYmFyLWNvbnRhaW5lciB7XHJcbiAgICAgICAgd2lkdGg6IDIwMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5tb2RhbC1zaG9ydGN1dC1ncmlkIHtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xyXG4gICAgfVxyXG4gICAgLmNpcmNsZS1pY29uIHtcclxuICAgICAgICB3aWR0aDogMTAwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDBweDtcclxuICAgIH1cclxuICAgIC5jaXJjbGUtaWNvbiBpIHtcclxuICAgICAgICBmb250LXNpemU6IDNyZW07XHJcbiAgICB9XHJcbiAgICAubW9kYWwtY2lyY2xlLWljb24ge1xyXG4gICAgICAgIHdpZHRoOiA4MHB4O1xyXG4gICAgICAgIGhlaWdodDogODBweDtcclxuICAgIH1cclxuICAgIC5tb2RhbC1jaXJjbGUtaWNvbiBpIHtcclxuICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcclxuICAgIH1cclxuICAgICAgICAgICAgLnNpZGViYXItbGVmdC5jb2xsYXBzZWQub3BlbiAuc2lkZWJhci1jb250ZW50IHtcclxuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA4MHB4KTtcclxuICAgIH1cclxufVxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAuZGFzaGJvYXJkLWNvbnRhaW5lciB7XHJcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLm1haW4tY29udGVudCB7XHJcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcclxuICAgICAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xyXG4gICAgICAgIHBhZGRpbmc6IDI0cHggMjBweCA0MHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC50b3AtbmF2YmFyIHtcclxuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgcGFkZGluZzogMTJweCAyMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5zaG9ydGN1dC1ncmlkIHtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMTIwcHgsIDFmcikpO1xyXG4gICAgICAgIGdhcDogMThweDtcclxuICAgIH1cclxuXHJcbiAgICAuY2FyZC1jYSxcclxuICAgIC5jYXJkLWNoYXJ0LFxyXG4gICAgLmNhcmQge1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmNhcmQtY2hhcnQge1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IDMyMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5wYWdlLWhlYWRlciB7XHJcbiAgICAgICAgcGFkZGluZzogMjRweCAyMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5kYXRhLXRhYmxlLWNhcmQge1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xyXG4gICAgLnNob3J0Y3V0LWdyaWQge1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgxMDBweCwgMWZyKSk7XHJcbiAgICAgICAgZ2FwOiAyMHB4IDEwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmNpcmNsZS1pY29uIHtcclxuICAgICAgICB3aWR0aDogOTBweDtcclxuICAgICAgICBoZWlnaHQ6IDkwcHg7XHJcbiAgICB9XHJcbiAgICAuY2lyY2xlLWljb24gaSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyLjhyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLm1vZGFsLXNob3J0Y3V0LWdyaWQge1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xyXG4gICAgfVxyXG5cclxuICAgIC5tb2RhbC1jaXJjbGUtaWNvbiB7XHJcbiAgICAgICAgd2lkdGg6IDcwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiA3MHB4O1xyXG4gICAgfVxyXG4gICAgLm1vZGFsLWNpcmNsZS1pY29uIGkge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMi4ycmVtO1xyXG4gICAgfVxyXG5cclxuICAgIC5jYS1sYWJlbCB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLmNhLXZhbHVlIHtcclxuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICAgIH1cclxuICAgICAgICAgICAgLnNpZGViYXItbGVmdC5jb2xsYXBzZWQub3BlbiAuc2lkZWJhci1jb250ZW50IHtcclxuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA4MHB4KTtcclxuICAgIH1cclxufVxyXG5cclxuLyogQWRhcHRhdGlvbiBwb3VyIGxhIHNpZGViYXIgcsOpZHVpdGUgZW4gcmVzcG9uc2l2ZSAqL1xyXG5AbWVkaWEgKG1heC13aWR0aDogMTIwMHB4KSB7XHJcbiAgICAgICAgICAgIC5zaWRlYmFyLWxlZnQ6bm90KC5jb2xsYXBzZWQpIHtcclxuICAgICAgICB3aWR0aDogdmFyKC0tc2lkZWJhci1jb2xsYXBzZWQtd2lkdGgpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAgICAgICAgIC5zaWRlYmFyLWxlZnQ6bm90KC5jb2xsYXBzZWQpIC5zaWRlYmFyLWNvbnRlbnQge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbiAgICBcclxuICAgICAgICAgICAgLnNpZGViYXItbGVmdDpub3QoLmNvbGxhcHNlZCkgLm1pbmktbWVudSB7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLm1haW4tY29udGVudCB7XHJcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLXNpZGViYXItY29sbGFwc2VkLXdpZHRoKSk7XHJcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogdmFyKC0tc2lkZWJhci1jb2xsYXBzZWQtd2lkdGgpO1xyXG4gICAgICAgIHBhZGRpbmc6IDMwcHggMTVweCAzMHB4IDMwcHg7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC50b3AtbmF2YmFyIHtcclxuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tc2lkZWJhci1jb2xsYXBzZWQtd2lkdGgpKTtcclxuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aCk7XHJcbiAgICAgICAgcGFkZGluZzogMTJweCAyNXB4O1xyXG4gICAgfVxyXG59LyogLS0tIENPUlJFQ1RJRlMgUkVTUE9OU0lWRSBTSURFQkFSIC0tLSAqL1xyXG5cclxuLyogUG91ciBsZXMgdHLDqHMgcGV0aXRzIMOpY3JhbnMgKi9cclxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XHJcbiAgICAgICAgICAgIC5zaWRlYmFyLWxlZnQge1xyXG4gICAgICAgIHdpZHRoOiAxMDB2dztcclxuICAgIH1cclxuICAgIFxyXG4gICAgICAgICAgICAuc2lkZWJhci1sZWZ0LmNvbGxhcHNlZCB7XHJcbiAgICAgICAgd2lkdGg6IHZhcigtLXNpZGViYXItY29sbGFwc2VkLXdpZHRoKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgICAgICAgICAuc2lkZWJhci1sZWZ0LmNvbGxhcHNlZC5vcGVuIHtcclxuICAgICAgICB3aWR0aDogMTAwdnc7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5zaWRlYmFyLWNvbnRlbnQge1xyXG4gICAgICAgIHBhZGRpbmc6IDYwcHggMTVweCAyMHB4IDE1cHg7XHJcbiAgICB9XHJcbiAgICAgICAgICAgICAgICAuc2lkZWJhci1sZWZ0LmNvbGxhcHNlZC5vcGVuIC5zaWRlYmFyLWNvbnRlbnQge1xyXG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDgwcHgpO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKiBBc3N1cmUgcXVlIGxlIHRvZ2dsZSBlc3QgdG91am91cnMgdmlzaWJsZSBlbiByZXNwb25zaXZlICovXHJcbi5zaWRlYmFyLXRvZ2dsZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XHJcbiAgICB6LWluZGV4OiAxMDAyO1xyXG59XHJcblxyXG4vKiDDiXRhdCBvdXZlcnQgZGUgbGEgc2lkZWJhciBlbiByZXNwb25zaXZlICovXHJcbi5zaWRlYmFyLWxlZnQub3BlbiAuc2lkZWJhci1jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XHJcbn1cclxuXHJcbi5zaWRlYmFyLWxlZnQub3BlbiAubWluaS1tZW51IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuLyogU3R5bGVzIHBvdXIgbGEgbW9kYWwgZCdpbnNjcmlwdGlvbiAqL1xyXG4ubW9kYWwtYWJvdXQgLm1vZGFsLWNvbnRlbnQge1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IHJnYmEoMzAsIDU4LCA5NSwgMC4yKTtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmOGZhZmMgMCUsICNlOGVjZWYgMTAwJSk7XHJcbn1cclxuXHJcbi5tb2RhbC1hYm91dCAubW9kYWwtaGVhZGVyIHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLXByaW1hcnktbmF2eSkgMCUsICMyYTRhN2EgMTAwJSk7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4IDEycHggMCAwO1xyXG4gICAgcGFkZGluZzogMjBweCAyNXB4O1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcclxufVxyXG5cclxuLm1vZGFsLWFib3V0IC5tb2RhbC10aXRsZSB7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgZm9udC1zaXplOiAxLjNyZW07XHJcbn1cclxuXHJcbi5tb2RhbC1hYm91dCAubW9kYWwtYm9keSB7XHJcbiAgICBwYWRkaW5nOiAyNXB4O1xyXG4gICAgY29sb3I6IHZhcigtLXByaW1hcnktbmF2eSk7XHJcbn1cclxuXHJcbi5tb2RhbC1hYm91dCAuZm9ybS1sYWJlbCB7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgY29sb3I6IHZhcigtLXByaW1hcnktbmF2eSk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XHJcbiAgICBmb250LXNpemU6IDAuOTVyZW07XHJcbn1cclxuXHJcbi5tb2RhbC1hYm91dCAuZm9ybS1jb250cm9sIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzMCwgNTgsIDk1LCAwLjIpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgcGFkZGluZzogMTJweCAxNXB4O1xyXG4gICAgY29sb3I6IHZhcigtLXByaW1hcnktbmF2eSk7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gICAgZm9udC1zaXplOiAwLjk1cmVtO1xyXG59XHJcblxyXG4ubW9kYWwtYWJvdXQgLmZvcm0tY29udHJvbDpmb2N1cyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50LXR1cnF1b2lzZSk7XHJcbiAgICBib3gtc2hhZG93OiAwIDAgMCAzcHggcmdiYSgwLCAyMTIsIDE3MCwgMC4xKTtcclxuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LW5hdnkpO1xyXG59XHJcblxyXG4ubW9kYWwtYWJvdXQgLmZvcm0tY2hlY2staW5wdXQge1xyXG4gICAgd2lkdGg6IDE4cHg7XHJcbiAgICBoZWlnaHQ6IDE4cHg7XHJcbiAgICBtYXJnaW4tdG9wOiAwLjJlbTtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXByaW1hcnktbmF2eSk7XHJcbn1cclxuXHJcbi5tb2RhbC1hYm91dCAuZm9ybS1jaGVjay1pbnB1dDpjaGVja2VkIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFjY2VudC10dXJxdW9pc2UpO1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQtdHVycXVvaXNlKTtcclxufVxyXG5cclxuLm1vZGFsLWFib3V0IC5mb3JtLWNoZWNrLWxhYmVsIHtcclxuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LW5hdnkpO1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XHJcbn1cclxuXHJcbi5tb2RhbC1hYm91dCAuYnRuIHtcclxuICAgIHBhZGRpbmc6IDEycHggMjVweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG59XHJcblxyXG4ubW9kYWwtYWJvdXQgLmJ0bi1wcmltYXJ5IHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWFjY2VudC10dXJxdW9pc2UpIDAlLCAjMDBiODk0IDEwMCUpO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4ubW9kYWwtYWJvdXQgLmJ0bi1wcmltYXJ5OmhvdmVyIHtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcclxuICAgIGJveC1zaGFkb3c6IDAgNXB4IDE1cHggcmdiYSgwLCAyMTIsIDE3MCwgMC4zKTtcclxufVxyXG5cclxuLnRleHQtcHJpbWFyeSB7XHJcbiAgICBjb2xvcjogdmFyKC0tYWNjZW50LXR1cnF1b2lzZSkgIWltcG9ydGFudDtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbn1cclxuXHJcbi50ZXh0LXByaW1hcnk6aG92ZXIge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XHJcbn1cclxuXHJcbi8qIFJlc3BvbnNpdmUgKi9cclxuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XHJcbiAgICAubW9kYWwtYWJvdXQgLm1vZGFsLWJvZHkge1xyXG4gICAgICAgIHBhZGRpbmc6IDIwcHggMTVweDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLm1vZGFsLWFib3V0IC5tb2RhbC1oZWFkZXIge1xyXG4gICAgICAgIHBhZGRpbmc6IDE1cHggMjBweDtcclxuICAgIH1cclxufVxyXG4vKiBTdHlsZXMgcG91ciBsZXMgbWVudXMgYXZlYyBjb3VsZXVycyBkaWZmw6lyZW50ZXMgKi9cclxuI21lbnVIZWFkZXIxIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1lbnUtMS1jb2xvcik7XHJcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSg1OSwgMTMwLCAyNDYsIDAuMyk7XHJcbn1cclxuXHJcbiNtZW51SGVhZGVyMiB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZW51LTItY29sb3IpO1xyXG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjMpO1xyXG59XHJcblxyXG4jbWVudUhlYWRlcjMge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWVudS0zLWNvbG9yKTtcclxuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDI0NSwgMTU4LCAxMSwgMC4zKTtcclxufVxyXG5cclxuI21lbnVIZWFkZXI0IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1lbnUtNC1jb2xvcik7XHJcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgyMzksIDY4LCA2OCwgMC4zKTtcclxufVxyXG5cclxuI21lbnVIZWFkZXI1IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1lbnUtNS1jb2xvcik7XHJcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgxMzksIDkyLCAyNDYsIDAuMyk7XHJcbn1cclxuXHJcbi8qIEVmZmV0cyBkZSBzdXJ2b2wgcG91ciBsZXMgbWVudXMgKi9cclxuI21lbnVIZWFkZXIxOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1lbnUtMS1ob3Zlcik7XHJcbiAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjQpO1xyXG59XHJcblxyXG4jbWVudUhlYWRlcjI6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWVudS0yLWhvdmVyKTtcclxuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgxNiwgMTg1LCAxMjksIDAuNCk7XHJcbn1cclxuXHJcbiNtZW51SGVhZGVyMzpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZW51LTMtaG92ZXIpO1xyXG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDI0NSwgMTU4LCAxMSwgMC40KTtcclxufVxyXG5cclxuI21lbnVIZWFkZXI0OmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1lbnUtNC1ob3Zlcik7XHJcbiAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMjM5LCA2OCwgNjgsIDAuNCk7XHJcbn1cclxuXHJcbiNtZW51SGVhZGVyNTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZW51LTUtaG92ZXIpO1xyXG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDEzOSwgOTIsIDI0NiwgMC40KTtcclxufVxyXG5cclxuLyogQm9yZHVyZXMgY29sb3LDqWVzIHBvdXIgbGVzIMOpbMOpbWVudHMgZGUgbWVudSAqL1xyXG4jbWVudUxpc3QxIGxpIHtcclxuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1tZW51LTEtY29sb3IpO1xyXG59XHJcblxyXG4jbWVudUxpc3QyIGxpIHtcclxuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1tZW51LTItY29sb3IpO1xyXG59XHJcblxyXG4jbWVudUxpc3QzIGxpIHtcclxuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1tZW51LTMtY29sb3IpO1xyXG59XHJcblxyXG4jbWVudUxpc3Q0IGxpIHtcclxuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1tZW51LTQtY29sb3IpO1xyXG59XHJcblxyXG4jbWVudUxpc3Q1IGxpIHtcclxuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1tZW51LTUtY29sb3IpO1xyXG59XHJcblxyXG4vKiBFZmZldHMgZGUgc3Vydm9sIHBvdXIgbGVzIMOpbMOpbWVudHMgZGUgbWVudSAqL1xyXG4jbWVudUxpc3QxIGxpOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjEpO1xyXG59XHJcblxyXG4jbWVudUxpc3QyIGxpOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjEpO1xyXG59XHJcblxyXG4jbWVudUxpc3QzIGxpOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ1LCAxNTgsIDExLCAwLjEpO1xyXG59XHJcblxyXG4jbWVudUxpc3Q0IGxpOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMSk7XHJcbn1cclxuXHJcbiNtZW51TGlzdDUgbGk6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMzksIDkyLCAyNDYsIDAuMSk7XHJcbn1cclxuLyogU3R5bGVzIHBvdXIgbGVzIG1pbmktbWVudXMgYXZlYyBsZXMgbcOqbWVzIGNvdWxldXJzICovXHJcbi5taW5pLW1lbnUtaXRlbVtkYXRhLW1lbnU9XCIxXCJdIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1lbnUtMS1jb2xvcik7XHJcbn1cclxuXHJcbi5taW5pLW1lbnUtaXRlbVtkYXRhLW1lbnU9XCIyXCJdIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1lbnUtMi1jb2xvcik7XHJcbn1cclxuXHJcbi5taW5pLW1lbnUtaXRlbVtkYXRhLW1lbnU9XCIzXCJdIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1lbnUtMy1jb2xvcik7XHJcbn1cclxuXHJcbi5taW5pLW1lbnUtaXRlbVtkYXRhLW1lbnU9XCI0XCJdIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1lbnUtNC1jb2xvcik7XHJcbn1cclxuXHJcbi5taW5pLW1lbnUtaXRlbVtkYXRhLW1lbnU9XCI1XCJdIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1lbnUtNS1jb2xvcik7XHJcbn1cclxuXHJcbi8qIEVmZmV0cyBkZSBzdXJ2b2wgcG91ciBsZXMgbWluaS1tZW51cyAqL1xyXG4ubWluaS1tZW51LWl0ZW1bZGF0YS1tZW51PVwiMVwiXTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZW51LTEtaG92ZXIpO1xyXG59XHJcblxyXG4ubWluaS1tZW51LWl0ZW1bZGF0YS1tZW51PVwiMlwiXTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZW51LTItaG92ZXIpO1xyXG59XHJcblxyXG4ubWluaS1tZW51LWl0ZW1bZGF0YS1tZW51PVwiM1wiXTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZW51LTMtaG92ZXIpO1xyXG59XHJcblxyXG4ubWluaS1tZW51LWl0ZW1bZGF0YS1tZW51PVwiNFwiXTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZW51LTQtaG92ZXIpO1xyXG59XHJcblxyXG4ubWluaS1tZW51LWl0ZW1bZGF0YS1tZW51PVwiNVwiXTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZW51LTUtaG92ZXIpO1xyXG59XHJcblxyXG4vKiBUb29sdGlwcyBjb2xvcsOpcyBwb3VyIGxlcyBtaW5pLW1lbnVzICovXHJcbi5taW5pLW1lbnUtaXRlbVtkYXRhLW1lbnU9XCIxXCJdIC5taW5pLW1lbnUtdG9vbHRpcCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZW51LTEtY29sb3IpO1xyXG59XHJcblxyXG4ubWluaS1tZW51LWl0ZW1bZGF0YS1tZW51PVwiMlwiXSAubWluaS1tZW51LXRvb2x0aXAge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWVudS0yLWNvbG9yKTtcclxufVxyXG5cclxuLm1pbmktbWVudS1pdGVtW2RhdGEtbWVudT1cIjNcIl0gLm1pbmktbWVudS10b29sdGlwIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1lbnUtMy1jb2xvcik7XHJcbn1cclxuXHJcbi5taW5pLW1lbnUtaXRlbVtkYXRhLW1lbnU9XCI0XCJdIC5taW5pLW1lbnUtdG9vbHRpcCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZW51LTQtY29sb3IpO1xyXG59XHJcblxyXG4ubWluaS1tZW51LWl0ZW1bZGF0YS1tZW51PVwiNVwiXSAubWluaS1tZW51LXRvb2x0aXAge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWVudS01LWNvbG9yKTtcclxufVxyXG5cclxuLyogVG9vbHRpcHMgYXUgc3Vydm9sICovXHJcbi5taW5pLW1lbnUtaXRlbVtkYXRhLW1lbnU9XCIxXCJdOmhvdmVyIC5taW5pLW1lbnUtdG9vbHRpcCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZW51LTEtaG92ZXIpO1xyXG59XHJcblxyXG4ubWluaS1tZW51LWl0ZW1bZGF0YS1tZW51PVwiMlwiXTpob3ZlciAubWluaS1tZW51LXRvb2x0aXAge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWVudS0yLWhvdmVyKTtcclxufVxyXG5cclxuLm1pbmktbWVudS1pdGVtW2RhdGEtbWVudT1cIjNcIl06aG92ZXIgLm1pbmktbWVudS10b29sdGlwIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1lbnUtMy1ob3Zlcik7XHJcbn1cclxuXHJcbi5taW5pLW1lbnUtaXRlbVtkYXRhLW1lbnU9XCI0XCJdOmhvdmVyIC5taW5pLW1lbnUtdG9vbHRpcCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZW51LTQtaG92ZXIpO1xyXG59XHJcblxyXG4ubWluaS1tZW51LWl0ZW1bZGF0YS1tZW51PVwiNVwiXTpob3ZlciAubWluaS1tZW51LXRvb2x0aXAge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWVudS01LWhvdmVyKTtcclxufVxyXG4vKiBDb3VsZXVycyBkaWZmw6lyZW50ZXMgcG91ciBsZXMgaWPDtG5lcyBkZXMgw6lsw6ltZW50cyBkZSBsaXN0ZSAob3B0aW9ubmVsKSAqL1xyXG4jbWVudUxpc3QxIGxpIGkge1xyXG4gICAgY29sb3I6IHZhcigtLW1lbnUtMS1jb2xvcikgIWltcG9ydGFudDtcclxufVxyXG5cclxuI21lbnVMaXN0MiBsaSBpIHtcclxuICAgIGNvbG9yOiB2YXIoLS1tZW51LTItY29sb3IpICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbiNtZW51TGlzdDMgbGkgaSB7XHJcbiAgICBjb2xvcjogdmFyKC0tbWVudS0zLWNvbG9yKSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4jbWVudUxpc3Q0IGxpIGkge1xyXG4gICAgY29sb3I6IHZhcigtLW1lbnUtNC1jb2xvcikgIWltcG9ydGFudDtcclxufVxyXG5cclxuI21lbnVMaXN0NSBsaSBpIHtcclxuICAgIGNvbG9yOiB2YXIoLS1tZW51LTUtY29sb3IpICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi8qIEljw7RuZXMgYXUgc3Vydm9sICovXHJcbiNtZW51TGlzdDEgbGk6aG92ZXIgaSB7XHJcbiAgICBjb2xvcjogdmFyKC0tbWVudS0xLWhvdmVyKSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4jbWVudUxpc3QyIGxpOmhvdmVyIGkge1xyXG4gICAgY29sb3I6IHZhcigtLW1lbnUtMi1ob3ZlcikgIWltcG9ydGFudDtcclxufVxyXG5cclxuI21lbnVMaXN0MyBsaTpob3ZlciBpIHtcclxuICAgIGNvbG9yOiB2YXIoLS1tZW51LTMtaG92ZXIpICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbiNtZW51TGlzdDQgbGk6aG92ZXIgaSB7XHJcbiAgICBjb2xvcjogdmFyKC0tbWVudS00LWhvdmVyKSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4jbWVudUxpc3Q1IGxpOmhvdmVyIGkge1xyXG4gICAgY29sb3I6IHZhcigtLW1lbnUtNS1ob3ZlcikgIWltcG9ydGFudDtcclxufVxyXG4vKiBTdHlsZXMgcG91ciBsZXMgbGllbnMgZGFucyBsZXMgbWVudXMgKi9cclxuLm1lbnUtbGluayB7XHJcbiAgICBjb2xvcjogaW5oZXJpdDtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZ2FwOiAxMnB4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiAxMnB4IDE1cHg7XHJcbiAgICBtYXJnaW46IC0xMnB4IC0xNXB4O1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxufVxyXG5cclxuLm1lbnUtbGluazpob3ZlciB7XHJcbiAgICBjb2xvcjogaW5oZXJpdDtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxufVxyXG5cclxuLyogQXNzdXJlciBxdWUgbGUgaG92ZXIgZm9uY3Rpb25uZSBzdXIgbGUgbGllbiAqL1xyXG4ubWVudS1saXN0IGxpOmhvdmVyIC5tZW51LWxpbmsge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcclxuICAgIHBhZGRpbmctbGVmdDogMjBweDtcclxuICAgIGNvbG9yOiBpbmhlcml0O1xyXG59XHJcblxyXG4vKiBDb3VsZXVycyBzcMOpY2lmaXF1ZXMgcG91ciBjaGFxdWUgbWVudSAqL1xyXG4jbWVudUxpc3QxIC5tZW51LWxpbmsge1xyXG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLW1lbnUtMS1jb2xvcik7XHJcbn1cclxuXHJcbiNtZW51TGlzdDIgLm1lbnUtbGluayB7XHJcbiAgICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tbWVudS0yLWNvbG9yKTtcclxufVxyXG5cclxuI21lbnVMaXN0MyAubWVudS1saW5rIHtcclxuICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1tZW51LTMtY29sb3IpO1xyXG59XHJcblxyXG4jbWVudUxpc3Q0IC5tZW51LWxpbmsge1xyXG4gICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLW1lbnUtNC1jb2xvcik7XHJcbn1cclxuXHJcbiNtZW51TGlzdDUgLm1lbnUtbGluayB7XHJcbiAgICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tbWVudS01LWNvbG9yKTtcclxufVxyXG4vKiBTdHlsZXMgcG91ciBsYSBwYWdlIGxpc3RlICovXHJcbi5wYWdlLWhlYWRlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgIHBhZGRpbmc6IDMwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG4gICAgYm94LXNoYWRvdzogMCA0cHggMTVweCByZ2JhKDMwLCA1OCwgOTUsIDAuMSk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG59XHJcblxyXG4ucGFnZS10aXRsZSB7XHJcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1uYXZ5KTtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG4gICAgZm9udC1zaXplOiAycmVtO1xyXG59XHJcblxyXG4ucGFnZS1zdWJ0aXRsZSB7XHJcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1uYXZ5KTtcclxuICAgIG9wYWNpdHk6IDAuODtcclxuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMDtcclxufVxyXG5cclxuLyogQm91dG9uIHJldG91ciAqL1xyXG4uYnRuLWJhY2sge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50LXR1cnF1b2lzZSk7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLmJ0bi1iYWNrOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6ICMwMGI4OTQ7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XHJcbiAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMjEyLCAxNzAsIDAuMyk7XHJcbn1cclxuXHJcbi8qIENhcnRlIGRlIGxhIGRhdGF0YWJsZSAqL1xyXG4uZGF0YS10YWJsZS1jYXJkIHtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XHJcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNXB4IHJnYmEoMzAsIDU4LCA5NSwgMC4xNSk7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4uZGF0YS10YWJsZS1jYXJkIC5jYXJkLWhlYWRlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1wcmltYXJ5LW5hdnkpIDAlLCAjMmE0YTdhIDEwMCUpO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcclxuICAgIHBhZGRpbmc6IDIwcHggMjVweDtcclxufVxyXG5cclxuLmRhdGEtdGFibGUtY2FyZCAuY2FyZC10aXRsZSB7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuLyogQm91dG9ucyBkJ2FjdGlvbiAqL1xyXG4uYnRuLXByaW1hcnkge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tYWNjZW50LXR1cnF1b2lzZSk7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxufVxyXG5cclxuLmJ0bi1wcmltYXJ5OmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6ICMwMGI4OTQ7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XHJcbn1cclxuXHJcbi5idG4tZXhwb3J0IHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktbmF2eSk7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxufVxyXG5cclxuLmJ0bi1leHBvcnQ6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogIzE1MjY0MjtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcclxufVxyXG5cclxuLyogU3R5bGVzIHBvdXIgbGEgZGF0YXRhYmxlICovXHJcbiN1c2Vyc1RhYmxlIHtcclxuICAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XHJcbiAgICBib3JkZXItc3BhY2luZzogMDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4jdXNlcnNUYWJsZSB0aGVhZCB0aCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodC1jcmVhbSk7XHJcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1uYXZ5KTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgdmFyKC0tYWNjZW50LXR1cnF1b2lzZSk7XHJcbiAgICBwYWRkaW5nOiAxNXB4IDEycHg7XHJcbn1cclxuXHJcbiN1c2Vyc1RhYmxlIHRib2R5IHRkIHtcclxuICAgIHBhZGRpbmc6IDEycHg7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzMCwgNTgsIDk1LCAwLjEpO1xyXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxufVxyXG5cclxuI3VzZXJzVGFibGUgdGJvZHkgdHI6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAyMTIsIDE3MCwgMC4wNSk7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xyXG59XHJcblxyXG4vKiBCYWRnZXMgKi9cclxuLmJhZGdlIHtcclxuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBmb250LXNpemU6IDAuNzVyZW07XHJcbn1cclxuXHJcbi5yb2xlLWFkbWluIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNkYzI2MjY7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcbi5yb2xlLW1hbmFnZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1OWUwYjtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLnJvbGUtdXNlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTBiOTgxO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4uc3RhdHVzLWFjdGl2ZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTBiOTgxO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4uc3RhdHVzLWluYWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM2YjcyODA7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcbi5zdGF0dXMtcGVuZGluZyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjU5ZTBiO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4vKiBCb3V0b25zIGQnYWN0aW9ucyBkYW5zIGxlIHRhYmxlYXUgKi9cclxuLmJ0bi1hY3Rpb24ge1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxuICAgIG1hcmdpbjogMCAycHg7XHJcbn1cclxuXHJcbi5idG4tZWRpdCB7XHJcbiAgICBjb2xvcjogdmFyKC0tYWNjZW50LXR1cnF1b2lzZSk7XHJcbn1cclxuXHJcbi5idG4tZWRpdDpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hY2NlbnQtdHVycXVvaXNlKTtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLmJ0bi1kZWxldGUge1xyXG4gICAgY29sb3I6ICNkYzI2MjY7XHJcbn1cclxuXHJcbi5idG4tZGVsZXRlOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNkYzI2MjY7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcbi5idG4tdmlldyB7XHJcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1uYXZ5KTtcclxufVxyXG5cclxuLmJ0bi12aWV3OmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktbmF2eSk7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcbi8qIENhcnRlcyBkZSBzdGF0aXN0aXF1ZXMgKi9cclxuLnN0YXRzLWNhcmQge1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICBwYWRkaW5nOiAyNXB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE1cHggcmdiYSgzMCwgNTgsIDk1LCAwLjEpO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IDIwcHg7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG59XHJcblxyXG4uc3RhdHMtY2FyZDpob3ZlciB7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTVweCk7XHJcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNXB4IHJnYmEoMzAsIDU4LCA5NSwgMC4xNSk7XHJcbn1cclxuXHJcbi5zdGF0cy1pY29uIHtcclxuICAgIHdpZHRoOiA2MHB4O1xyXG4gICAgaGVpZ2h0OiA2MHB4O1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYWNjZW50LXR1cnF1b2lzZSkgMCUsICMwMGI4OTQgMTAwJSk7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG59XHJcblxyXG4uc3RhdHMtY29udGVudCBoMyB7XHJcbiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS1uYXZ5KTtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICBmb250LXNpemU6IDJyZW07XHJcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7XHJcbn1cclxuXHJcbi5zdGF0cy1jb250ZW50IHAge1xyXG4gICAgY29sb3I6IHZhcigtLXByaW1hcnktbmF2eSk7XHJcbiAgICBvcGFjaXR5OiAwLjg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxufVxyXG5cclxuLyogUmVzcG9uc2l2ZSAqL1xyXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcclxuICAgIC5wYWdlLWhlYWRlciB7XHJcbiAgICAgICAgcGFkZGluZzogMjBweDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLnBhZ2UtdGl0bGUge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuZGF0YS10YWJsZS1jYXJkIC5jYXJkLWhlYWRlciB7XHJcbiAgICAgICAgcGFkZGluZzogMTVweCAyMHB4O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuc3RhdHMtY2FyZCB7XHJcbiAgICAgICAgcGFkZGluZzogMjBweDtcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuYnRuLWJhY2sge1xyXG4gICAgICAgIHBhZGRpbmc6IDhweCAxNXB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKiBQZXJzb25uYWxpc2F0aW9uIERhdGFUYWJsZXMgKi9cclxuLmRhdGFUYWJsZXNfd3JhcHBlciAuZGF0YVRhYmxlc19wYWdpbmF0ZSAucGFnaW5hdGVfYnV0dG9uIHtcclxuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LW5hdnkpICFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XHJcbiAgICBtYXJnaW46IDAgMnB4O1xyXG59XHJcblxyXG4uZGF0YVRhYmxlc193cmFwcGVyIC5kYXRhVGFibGVzX3BhZ2luYXRlIC5wYWdpbmF0ZV9idXR0b24uY3VycmVudCB7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnQtdHVycXVvaXNlKSAhaW1wb3J0YW50O1xyXG4gICAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmRhdGFUYWJsZXNfd3JhcHBlciAuZGF0YVRhYmxlc19wYWdpbmF0ZSAucGFnaW5hdGVfYnV0dG9uOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktbmF2eSkgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5kYXRhVGFibGVzX3dyYXBwZXIgLmRhdGFUYWJsZXNfbGVuZ3RoLFxyXG4uZGF0YVRhYmxlc193cmFwcGVyIC5kYXRhVGFibGVzX2ZpbHRlciB7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xyXG59XHJcblxyXG4uZGF0YVRhYmxlc193cmFwcGVyIC5kYXRhVGFibGVzX2ZpbHRlciBpbnB1dCB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDMwLCA1OCwgOTUsIDAuMik7XHJcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XHJcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcclxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG59XHJcblxyXG4uZGF0YVRhYmxlc193cmFwcGVyIC5kYXRhVGFibGVzX2ZpbHRlciBpbnB1dDpmb2N1cyB7XHJcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWFjY2VudC10dXJxdW9pc2UpO1xyXG4gICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHJnYmEoMCwgMjEyLCAxNzAsIDAuMSk7XHJcbn1cclxuLyogLS0tIE5BVkJBUiBSRVNQT05TSVZFIEFWRUMgTUVOVSBCVVJHRVIgLS0tICovXHJcbi5uYXZiYXItbW9iaWxlIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1wcmltYXJ5LW5hdnkpIDAlLCAjMmE0YTdhIDEwMCUpO1xyXG4gICAgcGFkZGluZzogMTVweCAyMHB4O1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgei1pbmRleDogMTEwMDtcclxuICAgIGJveC1zaGFkb3c6IDAgMnB4IDE1cHggcmdiYSgzMCwgNTgsIDk1LCAwLjIpO1xyXG59XHJcblxyXG4ubmF2YmFyLW1vYmlsZS1jb250ZW50IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4ubmF2YmFyLWJyYW5kIHtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxufVxyXG5cclxuLm1lbnUtYnVyZ2VyIHtcclxuICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICBmb250LXNpemU6IDEuNXJlbTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHBhZGRpbmc6IDhweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbn1cclxuXHJcbi5tZW51LWJ1cmdlcjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XHJcbn1cclxuXHJcbi8qIE1lbnUgbW9iaWxlIGTDqXJvdWxhbnQgKi9cclxuLm1vYmlsZS1tZW51IHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IC0xMDAlO1xyXG4gICAgd2lkdGg6IDI4MHB4O1xyXG4gICAgaGVpZ2h0OiAxMDB2aDtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHZhcigtLXByaW1hcnktbmF2eSkgMCUsICMxNTI2NDIgMTAwJSk7XHJcbiAgICB6LWluZGV4OiAxMjAwO1xyXG4gICAgdHJhbnNpdGlvbjogbGVmdCAwLjNzIGVhc2U7XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgcGFkZGluZzogNjBweCAyMHB4IDIwcHggMjBweDtcclxufVxyXG5cclxuLm1vYmlsZS1tZW51Lm9wZW4ge1xyXG4gICAgbGVmdDogMDtcclxufVxyXG5cclxuLm1vYmlsZS1tZW51LWhlYWRlciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDIwcHggMDtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG59XHJcblxyXG4ubW9iaWxlLW1lbnUtdGl0bGUge1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG59XHJcblxyXG4uY2xvc2UtbW9iaWxlLW1lbnUge1xyXG4gICAgYmFja2dyb3VuZDogbm9uZTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgcGFkZGluZzogNXB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxufVxyXG5cclxuLmNsb3NlLW1vYmlsZS1tZW51OmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcclxufVxyXG5cclxuLyogQWRhcHRhdGlvbiBkdSBjb250ZW51IHByaW5jaXBhbCBwb3VyIGxlIG1lbnUgbW9iaWxlICovXHJcbmJvZHkubW9iaWxlLW1lbnUtb3BlbiB7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG5ib2R5Lm1vYmlsZS1tZW51LW9wZW4gLm1haW4tY29udGVudCxcclxuYm9keS5tb2JpbGUtbWVudS1vcGVuIC50b3AtbmF2YmFyIHtcclxuICAgIGZpbHRlcjogYmx1cigycHgpO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbn1cclxuXHJcbi8qIE92ZXJsYXkgcG91ciBsZSBtZW51IG1vYmlsZSAqL1xyXG4ubW9iaWxlLW1lbnUtb3ZlcmxheSB7XHJcbiAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgcmlnaHQ6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcbiAgICB6LWluZGV4OiAxMTUwO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbn1cclxuXHJcbi5tb2JpbGUtbWVudS1vdmVybGF5LmFjdGl2ZSB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcclxufVxyXG5cclxuLyogU3R5bGVzIHBvdXIgbGVzIG1lbnVzIGRhbnMgbGEgdmVyc2lvbiBtb2JpbGUgKi9cclxuLm1vYmlsZS1tZW51IC5tZW51LWhlYWRlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XHJcbiAgICBtYXJnaW46IDE1cHggMCAxMHB4IDA7XHJcbn1cclxuXHJcbi5tb2JpbGUtbWVudSAubWVudS1saXN0IHtcclxuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XHJcbn1cclxuXHJcbi8qIENhY2hlciBsYSBzaWRlYmFyIGVuIHJlc3BvbnNpdmUgKi9cclxuQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xyXG4gICAgLm5hdmJhci1tb2JpbGUge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuc2lkZWJhci1sZWZ0IHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAubWFpbi1jb250ZW50IHtcclxuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gICAgICAgIG1hcmdpbi10b3A6IDcwcHg7IC8qIEVzcGFjZSBwb3VyIGxhIG5hdmJhciBtb2JpbGUgKi9cclxuICAgICAgICBtYXJnaW4tbGVmdDogMDtcclxuICAgICAgICBwYWRkaW5nOiAyMHB4IDE1cHg7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC50b3AtbmF2YmFyIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lOyAvKiBPbiBjYWNoZSBsYSB0b3AtbmF2YmFyIGVuIHJlc3BvbnNpdmUgKi9cclxuICAgIH1cclxuICAgIFxyXG4gICAgLnNob3J0Y3V0LWdyaWQge1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIDFmcik7XHJcbiAgICAgICAgZ2FwOiAyMHB4O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuY2lyY2xlLWljb24ge1xyXG4gICAgICAgIHdpZHRoOiAxMDBweDtcclxuICAgICAgICBoZWlnaHQ6IDEwMHB4O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuY2lyY2xlLWljb24gaSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLnNob3J0Y3V0LWdyaWQge1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5jaXJjbGUtaWNvbiB7XHJcbiAgICAgICAgd2lkdGg6IDkwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiA5MHB4O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuY2lyY2xlLWljb24gaSB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyLjJyZW07XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xyXG4gICAgLnNob3J0Y3V0LWdyaWQge1xyXG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XHJcbiAgICAgICAgZ2FwOiAxNXB4O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuY2lyY2xlLWljb24ge1xyXG4gICAgICAgIHdpZHRoOiA4MHB4O1xyXG4gICAgICAgIGhlaWdodDogODBweDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmNpcmNsZS1pY29uIGkge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLm5hdmJhci1tb2JpbGUge1xyXG4gICAgICAgIHBhZGRpbmc6IDEycHggMTVweDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLm1haW4tY29udGVudCB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogNjBweDtcclxuICAgICAgICBwYWRkaW5nOiAxNXB4IDEwcHg7XHJcbiAgICB9XHJcbn1cclxuLyogLS0tIENPVUxFVVJTIFBPVVIgTEVTIE1FTlVTIE1PQklMRVMgLS0tICovXHJcblxyXG4vKiBBcHBsaXF1ZXIgbGVzIG3Dqm1lcyBjb3VsZXVycyBhdXggZW4tdMOqdGVzIGRlIG1lbnUgbW9iaWxlICovXHJcbiNtb2JpbGVNZW51SGVhZGVyMSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZW51LTEtY29sb3IpO1xyXG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpO1xyXG59XHJcblxyXG4jbW9iaWxlTWVudUhlYWRlcjIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWVudS0yLWNvbG9yKTtcclxuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDE2LCAxODUsIDEyOSwgMC4zKTtcclxufVxyXG5cclxuI21vYmlsZU1lbnVIZWFkZXIzIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1lbnUtMy1jb2xvcik7XHJcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgyNDUsIDE1OCwgMTEsIDAuMyk7XHJcbn1cclxuXHJcbiNtb2JpbGVNZW51SGVhZGVyNCB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZW51LTQtY29sb3IpO1xyXG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMjM5LCA2OCwgNjgsIDAuMyk7XHJcbn1cclxuXHJcbiNtb2JpbGVNZW51SGVhZGVyNSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZW51LTUtY29sb3IpO1xyXG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMTM5LCA5MiwgMjQ2LCAwLjMpO1xyXG59XHJcblxyXG4vKiBFZmZldHMgZGUgc3Vydm9sIHBvdXIgbGVzIG1lbnVzIG1vYmlsZXMgKi9cclxuI21vYmlsZU1lbnVIZWFkZXIxOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1lbnUtMS1ob3Zlcik7XHJcbiAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjQpO1xyXG59XHJcblxyXG4jbW9iaWxlTWVudUhlYWRlcjI6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbWVudS0yLWhvdmVyKTtcclxuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgxNiwgMTg1LCAxMjksIDAuNCk7XHJcbn1cclxuXHJcbiNtb2JpbGVNZW51SGVhZGVyMzpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZW51LTMtaG92ZXIpO1xyXG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDI0NSwgMTU4LCAxMSwgMC40KTtcclxufVxyXG5cclxuI21vYmlsZU1lbnVIZWFkZXI0OmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1lbnUtNC1ob3Zlcik7XHJcbiAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMjM5LCA2OCwgNjgsIDAuNCk7XHJcbn1cclxuXHJcbiNtb2JpbGVNZW51SGVhZGVyNTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZW51LTUtaG92ZXIpO1xyXG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDEzOSwgOTIsIDI0NiwgMC40KTtcclxufVxyXG5cclxuLyogQm9yZHVyZXMgY29sb3LDqWVzIHBvdXIgbGVzIMOpbMOpbWVudHMgZGUgbWVudSBtb2JpbGUgKi9cclxuI21vYmlsZU1lbnVMaXN0MSBsaSB7XHJcbiAgICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tbWVudS0xLWNvbG9yKTtcclxufVxyXG5cclxuI21vYmlsZU1lbnVMaXN0MiBsaSB7XHJcbiAgICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tbWVudS0yLWNvbG9yKTtcclxufVxyXG5cclxuI21vYmlsZU1lbnVMaXN0MyBsaSB7XHJcbiAgICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tbWVudS0zLWNvbG9yKTtcclxufVxyXG5cclxuI21vYmlsZU1lbnVMaXN0NCBsaSB7XHJcbiAgICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tbWVudS00LWNvbG9yKTtcclxufVxyXG5cclxuI21vYmlsZU1lbnVMaXN0NSBsaSB7XHJcbiAgICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tbWVudS01LWNvbG9yKTtcclxufVxyXG5cclxuLyogRWZmZXRzIGRlIHN1cnZvbCBwb3VyIGxlcyDDqWzDqW1lbnRzIGRlIG1lbnUgbW9iaWxlICovXHJcbiNtb2JpbGVNZW51TGlzdDEgbGk6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMSk7XHJcbn1cclxuXHJcbiNtb2JpbGVNZW51TGlzdDIgbGk6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNiwgMTg1LCAxMjksIDAuMSk7XHJcbn1cclxuXHJcbiNtb2JpbGVNZW51TGlzdDMgbGk6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDUsIDE1OCwgMTEsIDAuMSk7XHJcbn1cclxuXHJcbiNtb2JpbGVNZW51TGlzdDQgbGk6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC4xKTtcclxufVxyXG5cclxuI21vYmlsZU1lbnVMaXN0NSBsaTpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEzOSwgOTIsIDI0NiwgMC4xKTtcclxufVxyXG5cclxuLyogQ291bGV1cnMgZGlmZsOpcmVudGVzIHBvdXIgbGVzIGljw7RuZXMgZGVzIMOpbMOpbWVudHMgZGUgbGlzdGUgbW9iaWxlICovXHJcbiNtb2JpbGVNZW51TGlzdDEgbGkgaSB7XHJcbiAgICBjb2xvcjogdmFyKC0tbWVudS0xLWNvbG9yKSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4jbW9iaWxlTWVudUxpc3QyIGxpIGkge1xyXG4gICAgY29sb3I6IHZhcigtLW1lbnUtMi1jb2xvcikgIWltcG9ydGFudDtcclxufVxyXG5cclxuI21vYmlsZU1lbnVMaXN0MyBsaSBpIHtcclxuICAgIGNvbG9yOiB2YXIoLS1tZW51LTMtY29sb3IpICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbiNtb2JpbGVNZW51TGlzdDQgbGkgaSB7XHJcbiAgICBjb2xvcjogdmFyKC0tbWVudS00LWNvbG9yKSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4jbW9iaWxlTWVudUxpc3Q1IGxpIGkge1xyXG4gICAgY29sb3I6IHZhcigtLW1lbnUtNS1jb2xvcikgIWltcG9ydGFudDtcclxufVxyXG5cclxuLyogSWPDtG5lcyBhdSBzdXJ2b2wgcG91ciBtb2JpbGUgKi9cclxuI21vYmlsZU1lbnVMaXN0MSBsaTpob3ZlciBpIHtcclxuICAgIGNvbG9yOiB2YXIoLS1tZW51LTEtaG92ZXIpICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbiNtb2JpbGVNZW51TGlzdDIgbGk6aG92ZXIgaSB7XHJcbiAgICBjb2xvcjogdmFyKC0tbWVudS0yLWhvdmVyKSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4jbW9iaWxlTWVudUxpc3QzIGxpOmhvdmVyIGkge1xyXG4gICAgY29sb3I6IHZhcigtLW1lbnUtMy1ob3ZlcikgIWltcG9ydGFudDtcclxufVxyXG5cclxuI21vYmlsZU1lbnVMaXN0NCBsaTpob3ZlciBpIHtcclxuICAgIGNvbG9yOiB2YXIoLS1tZW51LTQtaG92ZXIpICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbiNtb2JpbGVNZW51TGlzdDUgbGk6aG92ZXIgaSB7XHJcbiAgICBjb2xvcjogdmFyKC0tbWVudS01LWhvdmVyKSAhaW1wb3J0YW50O1xyXG59XHJcbi8qIFN0eWxlcyBwb3VyIGxhIGJhcnJlIGRlIHJlY2hlcmNoZSBkYW5zIGxhIG5hdmJhciBtb2JpbGUgKi9cclxuLm5hdmJhci1tb2JpbGUtc2VhcmNoIHtcclxuICAgIGZsZXg6IDE7XHJcbiAgICBtYXgtd2lkdGg6IDIwMHB4O1xyXG4gICAgbWFyZ2luOiAwIDE1cHg7XHJcbn1cclxuXHJcbi5uYXZiYXItbW9iaWxlLXNlYXJjaCAuc2VhcmNoLWJhci1jb250YWluZXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5uYXZiYXItbW9iaWxlLXNlYXJjaCAuc2VhcmNoLWlucHV0IHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgcGFkZGluZzogOHB4IDE1cHggOHB4IDM1cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xyXG4gICAgZm9udC1zaXplOiAwLjlyZW07XHJcbn1cclxuXHJcbi5uYXZiYXItbW9iaWxlLXNlYXJjaCAuc2VhcmNoLWlucHV0OjpwbGFjZWhvbGRlciB7XHJcbiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xyXG59XHJcblxyXG4ubmF2YmFyLW1vYmlsZS1zZWFyY2ggLnNlYXJjaC1pbnB1dDpmb2N1cyB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xyXG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQtdHVycXVvaXNlKTtcclxuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCByZ2JhKDAsIDIxMiwgMTcwLCAwLjEpO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4ubmF2YmFyLW1vYmlsZS1zZWFyY2ggLnNlYXJjaC1pY29uIHtcclxuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNyk7XHJcbiAgICBsZWZ0OiAxMnB4O1xyXG4gICAgdG9wOiA1MCU7XHJcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XHJcbn1cclxuXHJcbi5uYXZiYXItbW9iaWxlLXNlYXJjaCAuc2VhcmNoLWJhci1jb250YWluZXI6aG92ZXIgLnNlYXJjaC1pY29uIHtcclxuICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtdHVycXVvaXNlKTtcclxuICAgIG9wYWNpdHk6IDE7XHJcbn1cclxuXHJcbi8qIEFqdXN0ZW1lbnRzIHJlc3BvbnNpdmUgcG91ciBsYSBuYXZiYXIgbW9iaWxlICovXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xyXG4gICAgLm5hdmJhci1tb2JpbGUtc2VhcmNoIHtcclxuICAgICAgICBtYXgtd2lkdGg6IDE4MHB4O1xyXG4gICAgICAgIG1hcmdpbjogMCAxMHB4O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAubmF2YmFyLW1vYmlsZS1zZWFyY2ggLnNlYXJjaC1pbnB1dCB7XHJcbiAgICAgICAgcGFkZGluZzogN3B4IDEycHggN3B4IDMycHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjg1cmVtO1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcclxuICAgIC5uYXZiYXItbW9iaWxlLXNlYXJjaCB7XHJcbiAgICAgICAgbWF4LXdpZHRoOiAxNTBweDtcclxuICAgICAgICBtYXJnaW46IDAgOHB4O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAubmF2YmFyLW1vYmlsZS1zZWFyY2ggLnNlYXJjaC1pbnB1dCB7XHJcbiAgICAgICAgcGFkZGluZzogNnB4IDEwcHggNnB4IDMwcHg7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5uYXZiYXItbW9iaWxlLXNlYXJjaCAuc2VhcmNoLWlucHV0OjpwbGFjZWhvbGRlciB7XHJcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XHJcbiAgICB9XHJcbn1cclxuLyogU3R5bGUgcG91ciBsZSBib3V0b24gZGUgZMOpY29ubmV4aW9uICovXHJcbi5idG4tbG9nb3V0IHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNlZjQ0NDQgMCUsICNkYzI2MjYgMTAwJSk7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG59XHJcblxyXG4uYnRuLWxvZ291dDpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZGMyNjI2IDAlLCAjYjkxYzFjIDEwMCUpO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xyXG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDIzOSwgNjgsIDY4LCAwLjMpO1xyXG59XHJcblxyXG4vKiBTdHlsZSBwb3VyIGwnw6lsw6ltZW50IGRlIGTDqWNvbm5leGlvbiBkYW5zIGxlcyBtZW51cyAqL1xyXG4ubG9nb3V0LWl0ZW0gLmxvZ291dC1saW5rIHtcclxuICAgIGNvbG9yOiAjZWY0NDQ0ICFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItbGVmdC1jb2xvcjogI2VmNDQ0NCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubG9nb3V0LWl0ZW06aG92ZXIgLmxvZ291dC1saW5rIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMSkgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiAjZWY0NDQ0ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5sb2dvdXQtaXRlbSAubG9nb3V0LWxpbmsgaSB7XHJcbiAgICBjb2xvcjogI2VmNDQ0NCAhaW1wb3J0YW50O1xyXG59XHJcbi8qIFN0eWxlcyBwb3VyIGxhIG5hdmJhciBtb2JpbGUgZXQgbGUgYm91dG9uIGTDqWNvbm5leGlvbiByZXNwb25zaXZlICovXHJcbi5uYXZiYXItbW9iaWxlLWFjdGlvbnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IDEwcHg7XHJcbn1cclxuXHJcbi5sb2dvdXQtbW9iaWxlLWljb24ge1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgICBwYWRkaW5nOiA4cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4yKTtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjM5LCA2OCwgNjgsIDAuMyk7XHJcbn1cclxuXHJcbi5sb2dvdXQtbW9iaWxlLWljb246aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4zKTtcclxuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLyogQ2FjaGVyIGxlIGJvdXRvbiBkw6ljb25uZXhpb24gZGVza3RvcCBlbiBtb2JpbGUgKi9cclxuQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCkge1xyXG4gICAgLm5hdmJhci1hY3Rpb25zIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAubmF2YmFyLW1vYmlsZS1hY3Rpb25zIHtcclxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgfVxyXG59XHJcblxyXG4vKiBBZmZpY2hlciBsZSBib3V0b24gZMOpY29ubmV4aW9uIGRlc2t0b3AgZW4gZGVza3RvcCAqL1xyXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMXB4KSB7XHJcbiAgICAubmF2YmFyLW1vYmlsZS1hY3Rpb25zIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAubmF2YmFyLWFjdGlvbnMge1xyXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKiBTdHlsZXMgcG91ciBsZXMgw6lsw6ltZW50cyBkZSBkw6ljb25uZXhpb24gZGFucyBsZXMgbWVudXMgKi9cclxuLmxvZ291dC1pdGVtIC5sb2dvdXQtbGluayB7XHJcbiAgICBjb2xvcjogI2VmNDQ0NCAhaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyLWxlZnQtY29sb3I6ICNlZjQ0NDQgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmxvZ291dC1pdGVtOmhvdmVyIC5sb2dvdXQtbGluayB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjEpICFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogI2VmNDQ0NCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubG9nb3V0LWl0ZW0gLmxvZ291dC1saW5rIGkge1xyXG4gICAgY29sb3I6ICNlZjQ0NDQgIWltcG9ydGFudDtcclxufVxyXG5cclxuLyogU3R5bGUgcG91ciBsZSBib3V0b24gZGUgZMOpY29ubmV4aW9uIGRlc2t0b3AgKi9cclxuLmJ0bi1sb2dvdXQge1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2VmNDQ0NCAwJSwgI2RjMjYyNiAxMDAlKTtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIHBhZGRpbmc6IDhweCAxNnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDAuOXJlbTtcclxufVxyXG5cclxuLmJ0bi1sb2dvdXQ6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2RjMjYyNiAwJSwgI2I5MWMxYyAxMDAlKTtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcclxuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgyMzksIDY4LCA2OCwgMC4zKTtcclxufVxyXG5cclxuLyogQWRhcHRhdGlvbiByZXNwb25zaXZlIHBvdXIgbGVzIHRyw6hzIHBldGl0cyDDqWNyYW5zICovXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xyXG4gICAgLmxvZ291dC1tb2JpbGUtaWNvbiB7XHJcbiAgICAgICAgcGFkZGluZzogNnB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAubmF2YmFyLW1vYmlsZS1hY3Rpb25zIHtcclxuICAgICAgICBnYXA6IDhweDtcclxuICAgIH1cclxufSIsIjpyb290IHtcclxuICAgIC0tcHJpbWFyeTogIzZCOEU2QjtcclxuICAgIC0tcHJpbWFyeS1kYXJrOiAjNEE2MzRBO1xyXG4gICAgLS1wcmltYXJ5LWxpZ2h0OiAjQTNCRkEzO1xyXG4gICAgLS1hY2NlbnQ6ICNGNEY3RjQ7XHJcbiAgICAtLWFwcC1iZzogI0ZBRjlGNjtcclxuICAgIC0tc3VyZmFjZTogI0ZGRkZGRjtcclxuICAgIC0tc3VyZmFjZS12YXJpYW50OiAjRjBGNEYwO1xyXG4gICAgLS10ZXh0LXByaW1hcnk6ICMyQzNFMkM7XHJcbiAgICAtLXRleHQtc2Vjb25kYXJ5OiAjNUM3MDVDO1xyXG4gICAgLS10ZXh0LWhpbnQ6ICM5NEE2OTQ7XHJcbiAgICAtLWJvcmRlcjogI0Q1RTBENTtcclxuICAgIC0tZXJyb3I6ICNEMzRGNEY7XHJcblxyXG4gICAgLS1zaWRlYmFyLWJnOiAjNUE3RTVBO1xyXG4gICAgLS1zaWRlYmFyLWhvdmVyOiAjNzU5QTc1O1xyXG4gICAgLS1zaWRlYmFyLWFjdGl2ZTogI0EzQkZBMztcclxuICAgIC0tc2lkZWJhci10ZXh0OiAjRjhGQUY4O1xyXG4gICAgLS1zaWRlYmFyLXc6IDIzMHB4O1xyXG4gICAgLS1zaWRlYmFyLXctc206IDY0cHg7XHJcbiAgICAtLXNpZGViYXItd2lkdGg6IDIzMHB4O1xyXG4gICAgLS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aDogNjRweDtcclxuICAgIC0taGVhZGVyLWg6IDY0cHg7XHJcbiAgICAtLXRyYW5zaXRpb246IDAuMjJzIGVhc2U7XHJcbn1cclxuXHJcbmh0bWwsXHJcbmJvZHkge1xyXG4gICAgbWluLWhlaWdodDogMTAwJTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLWFwcC1iZyk7XHJcbn1cclxuXHJcbi8qIFNoZWxsIGxheW91dCAqL1xyXG4uZGFzaGJvYXJkLXNoZWxsIHtcclxuICAgIG1pbi1oZWlnaHQ6IGF1dG87XHJcbn1cclxuXHJcbi8qIFdoZW4gdGhlcmUgaXMgbm8gc2lkZWJhciAoZS5nLiBST0xFX0NBSVNTSUVSKSwgbWFrZSBtYWluL3RvcGJhciBmdWxsIHdpZHRoICovXHJcbi5kYXNoYm9hcmQtc2hlbGwubm8tc2lkZWJhciAudG9wYmFyIHtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLmRhc2hib2FyZC1zaGVsbC5uby1zaWRlYmFyIC5tYWluLWNvbnRlbnQge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDAgIWltcG9ydGFudDtcclxuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICBtaW4taGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLWhlYWRlci1oKSArIDIwcHgpIDI4cHggNDhweDtcclxufVxyXG5cclxuLmRhc2hib2FyZC1zaGVsbC5uby1zaWRlYmFyIHtcclxuICAgIG1pbi1oZWlnaHQ6IGF1dG87XHJcbn1cclxuXHJcbi50b3BiYXIge1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgaGVpZ2h0OiB2YXIoLS1oZWFkZXItaCk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDAgMjBweDtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLXN1cmZhY2UpO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XHJcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDExLDIwLDQ3LDAuMDYpO1xyXG4gICAgei1pbmRleDogMTEwMDtcclxuICAgIGxlZnQ6IHZhcigtLXNpZGViYXItd2lkdGgpO1xyXG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLXNpZGViYXItd2lkdGgpKTtcclxuICAgIHRyYW5zaXRpb246IGxlZnQgdmFyKC0tdHJhbnNpdGlvbiksIHdpZHRoIHZhcigtLXRyYW5zaXRpb24pLCBiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24pLCBib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24pO1xyXG59XHJcblxyXG4udG9wYmFyIC5idG4taGFtYnVyZ2VyIHtcclxuICAgIHdpZHRoOiA0MHB4O1xyXG4gICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zdXJmYWNlKTtcclxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbiksIGNvbG9yIHZhcigtLXRyYW5zaXRpb24pO1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbn1cclxuXHJcbi50b3BiYXIgLmJ0bi1oYW1idXJnZXI6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeSk7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxufVxyXG5cclxuLnRvcGJhciAuYnJhbmQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IDEycHg7XHJcbiAgICBtYXJnaW4tbGVmdDogMTRweDtcclxufVxyXG5cclxuLnRvcGJhciAuYnJhbmQgLmFwcC1pY29uIHtcclxuICAgIHdpZHRoOiA0MHB4O1xyXG4gICAgaGVpZ2h0OiA0MHB4O1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tcHJpbWFyeS1kYXJrKSwgdmFyKC0tcHJpbWFyeSkpO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxufVxyXG5cclxuLnRvcGJhciAuYnJhbmQgLmFwcC1uYW1lIHtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1wcmltYXJ5KTtcclxufVxyXG5cclxuLnRvcGJhciAuYnJhbmQgLmFwcC1zdWIge1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTtcclxuICAgIG1hcmdpbi10b3A6IDFweDtcclxufVxyXG5cclxuLyogVG9wYmFyIHNlYXJjaCBzdHlsZXMgKi9cclxuLnRvcGJhci1zZWFyY2gtd3JhcHBlciB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIG1hcmdpbi1sZWZ0OiAxOHB4O1xyXG59XHJcblxyXG4vKiBTZWFyY2ggY2FyZCAtIHVzZSBzaWRlYmFyIGJhY2tncm91bmQgY29sb3IgKi9cclxuLnRvcGJhci1zZWFyY2gtY2FyZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogOHB4O1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tc3VyZmFjZSk7XHJcbiAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLXNpZGViYXItYmcpO1xyXG4gICAgcGFkZGluZzogNnB4IDhweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xyXG4gICAgYm94LXNoYWRvdzogMCA2cHggMTZweCByZ2JhKDExLDIwLDQ3LDAuMDgpO1xyXG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyB2YXIoLS10cmFuc2l0aW9uKSwgdHJhbnNmb3JtIDAuMTJzIGVhc2U7XHJcbn1cclxuXHJcbi8qIEJ1dHRvbiBtYXRjaGluZyBzaWRlYmFyIGNvbG9yIGZvciBmaWxlIGlucHV0cyAqL1xyXG4uYnRuLXNpZGViYXIge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tc2lkZWJhci1iZyk7XHJcbiAgICBjb2xvcjogdmFyKC0tc2lkZWJhci10ZXh0KTtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIHBhZGRpbmc6IDhweCAxMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uYnRuLXNpZGViYXI6aG92ZXIge1xyXG4gICAgZmlsdGVyOiBicmlnaHRuZXNzKDAuOTUpO1xyXG59XHJcblxyXG4vKiBIaWRlIG5hdGl2ZSBmaWxlIGlucHV0IGJ1dCBrZWVwIGl0IGFjY2Vzc2libGUgKi9cclxuLmZpbGUtaW5wdXQtaGlkZGVuIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xyXG4gICAgbGVmdDogLTk5OTlweCAhaW1wb3J0YW50O1xyXG4gICAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xyXG4gICAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcclxufVxyXG5cclxuLnRvcGJhci1zZWFyY2gtY2FyZCAuc2VhcmNoLWljb24ge1xyXG4gICAgY29sb3I6IHZhcigtLXNpZGViYXItYmcpO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDRweDtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxufVxyXG5cclxuLnRvcGJhci1zZWFyY2gtY2FyZCAuc2VhcmNoLWlucHV0IHtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICB3aWR0aDogMzYwcHg7XHJcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjJzIGVhc2UsIGNvbG9yIDAuMThzIGVhc2UsIGJveC1zaGFkb3cgMC4xOHMgZWFzZTtcclxufVxyXG5cclxuLnRvcGJhci1zZWFyY2gtY2FyZCAuc2VhcmNoLWlucHV0OjpwbGFjZWhvbGRlciB7IGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7IG9wYWNpdHk6IDAuNzU7IH1cclxuXHJcbi50b3BiYXItc2VhcmNoLWNhcmQgLmJ0bi1zZWFyY2gtY2xlYXIge1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1iZyk7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDRweDtcclxufVxyXG5cclxuLnRvcGJhci1zZWFyY2gtY2FyZDpob3ZlciB7IGJveC1zaGFkb3c6IDAgMTBweCAyNHB4IHJnYmEoMTEsMjAsNDcsMC4xMik7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsgfVxyXG4udG9wYmFyLXNlYXJjaC1jYXJkOmZvY3VzLXdpdGhpbiB7IGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDIxLCAxMDEsIDE5MiwgMC4xNSk7IGJvcmRlci1jb2xvcjogdmFyKC0tc2lkZWJhci1iZyk7IH1cclxuXHJcbi5idG4tc2VhcmNoLW1vYmlsZSB7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7XHJcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDhweDtcclxuICAgIG1hcmdpbi1sZWZ0OiA4cHg7XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xyXG4gICAgLnRvcGJhci1zZWFyY2gtY2FyZCAuc2VhcmNoLWlucHV0IHsgd2lkdGg6IDIyMHB4OyB9XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xyXG4gICAgLnRvcGJhci1zZWFyY2gtd3JhcHBlciB7IGRpc3BsYXk6IG5vbmU7IH1cclxuICAgIC50b3BiYXItc2VhcmNoLW1vYmlsZS1yb3cgeyBwb3NpdGlvbjogZml4ZWQ7IHRvcDogdmFyKC0taGVhZGVyLWgpOyBsZWZ0OiAwOyByaWdodDogMDsgcGFkZGluZzogOHB4OyB6LWluZGV4OiAxMDAwOyBkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsMjU1LDI1NSwwLjAyKSwgcmdiYSgyNTUsMjU1LDI1NSwwLjAxKSk7IH1cclxuICAgIC50b3BiYXItc2VhcmNoLWNhcmQtbW9iaWxlIHsgd2lkdGg6IGNhbGMoMTAwJSAtIDI4cHgpOyBtYXgtd2lkdGg6IDk4MHB4OyBwYWRkaW5nOiA2cHggMTBweDsgYmFja2dyb3VuZDogdmFyKC0tc3VyZmFjZSk7IGJvcmRlcjogMS41cHggc29saWQgdmFyKC0tc2lkZWJhci1iZyk7IGJvcmRlci1yYWRpdXM6IDk5OXB4OyBib3gtc2hhZG93OiAwIDhweCAxOHB4IHJnYmEoMTEsMjAsNDcsMC4xKTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOjhweDsgfVxyXG4gICAgLnRvcGJhci1zZWFyY2gtY2FyZC1tb2JpbGUgLnNlYXJjaC1pbnB1dC1tb2JpbGUgeyB3aWR0aDogMTAwJTsgYm9yZGVyOiBub25lOyBvdXRsaW5lOiBub25lOyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7IHBhZGRpbmc6IDZweCA4cHg7IH1cclxuICAgIC50b3BiYXIgeyB0b3A6IDA7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyB9XHJcbn1cclxuXHJcbi8qIFdoZW4gdGhlIHNpZGViYXIgaXMgY29sbGFwc2VkIChib2R5IGNsYXNzIHRvZ2dsZWQpLCBleHBhbmQgdG9wYmFyIHRvIGZpbGwgYXZhaWxhYmxlIHNwYWNlICovXHJcbmJvZHkuc2lkZWJhci1jb2xsYXBzZWQgLnRvcGJhciB7XHJcbiAgICBsZWZ0OiB2YXIoLS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aCk7XHJcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gdmFyKC0tc2lkZWJhci1jb2xsYXBzZWQtd2lkdGgpKTtcclxufVxyXG5cclxuLnNpZGViYXIuY29sbGFwc2VkIH4gLm1haW4tY29udGVudCAudG9wYmFyIHtcclxuICAgIGxlZnQ6IHZhcigtLXNpZGViYXItY29sbGFwc2VkLXdpZHRoKTtcclxuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aCkpO1xyXG59XHJcblxyXG4vKiBXaGVuIG1vYmlsZSBtZW51IG9wZW4gb3Igc2lkZWJhciBvdmVybGF5LCBrZWVwIHRvcGJhciBmdWxsIHdpZHRoICovXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xyXG4gICAgLnRvcGJhciB7IGxlZnQ6IDA7IHdpZHRoOiAxMDAlOyB9XHJcbn1cclxuXHJcbi50b3BiYXIgLnRvcGJhci1hY3Rpb25zIHtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IDhweDtcclxufVxyXG5cclxuLyoga2VwdCBvcmlnaW5hbCB0b3BiYXItYWN0aW9ucyB0aGVuIGljb24tYnRuIGZvbGxvd3MgKi9cclxuXHJcbi50b3BiYXIgLmljb24tYnRuIHtcclxuICAgIHdpZHRoOiAzOHB4O1xyXG4gICAgaGVpZ2h0OiAzOHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zdXJmYWNlKTtcclxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uKSwgY29sb3IgdmFyKC0tdHJhbnNpdGlvbiksIGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uKTtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxufVxyXG5cclxuLnRvcGJhciAuaWNvbi1idG46aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tcHJpbWFyeSk7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeSk7XHJcbn1cclxuXHJcbi50b3BiYXIgLnVzZXItY2hpcCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGdhcDogOHB4O1xyXG4gICAgcGFkZGluZzogNHB4IDEwcHggNHB4IDRweDtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlcik7XHJcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLXN1cmZhY2UpO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uKTtcclxufVxyXG5cclxuLnRvcGJhciAudXNlci1jaGlwOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLXN1cmZhY2UtdmFyaWFudCk7XHJcbn1cclxuXHJcbi50b3BiYXIgLnVzZXItY2hpcCAuYXZhdGFyIHtcclxuICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tcHJpbWFyeS1kYXJrKSwgdmFyKC0tcHJpbWFyeSkpO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxufVxyXG5cclxuLnRvcGJhciAudXNlci1jaGlwIC51bmFtZSB7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7XHJcbn1cclxuXHJcbi5zaWRlYmFyIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIHRvcDogMDtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBoZWlnaHQ6IDEwMHZoOyAgICAgICAgLyogZmFsbGJhY2sgZm9yIG9sZGVyIGJyb3dzZXJzICovXHJcbiAgICBoZWlnaHQ6IDEwMGR2aDsgICAgICAgLyogZHluYW1pYyB2aWV3cG9ydDogZXhjbHVkZXMgQW5kcm9pZCBib3R0b20gbmF2IGJhciAqL1xyXG4gICAgd2lkdGg6IHZhcigtLXNpZGViYXItdyk7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWJnKTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgei1pbmRleDogMTAzMDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCB2YXIoLS10cmFuc2l0aW9uKSwgdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24pO1xyXG59XHJcblxyXG4uc2lkZWJhci5jb2xsYXBzZWQge1xyXG4gICAgd2lkdGg6IHZhcigtLXNpZGViYXItdy1zbSk7XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA5OTEuOThweCkge1xyXG4gICAgLnNpZGViYXIge1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XHJcbiAgICAgICAgd2lkdGg6IHZhcigtLXNpZGViYXItdyk7XHJcbiAgICB9XHJcblxyXG4gICAgLnNpZGViYXIub3BlbiB7XHJcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xyXG4gICAgICAgIHotaW5kZXg6IDIxMDA7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zaWRlYmFyLWhlYWRlciB7XHJcbiAgICBoZWlnaHQ6IHZhcigtLWhlYWRlci1oKTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgcGFkZGluZzogMCAxNHB4O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcclxufVxyXG5cclxuLnNpZGViYXItaGVhZGVyIC5zLWxvZ28ge1xyXG4gICAgd2lkdGg6IDM2cHg7XHJcbiAgICBoZWlnaHQ6IDM2cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTgpO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG59XHJcblxyXG4uc2lkZWJhci1oZWFkZXIgLnMtYXBwbmFtZSB7XHJcbiAgICBtYXJnaW4tbGVmdDogMTJweDtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbik7XHJcbn1cclxuXHJcbi5zaWRlYmFyLWhlYWRlciAuYnRuLWNvbGxhcHNlIHtcclxuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xyXG4gICAgd2lkdGg6IDMwcHg7XHJcbiAgICBoZWlnaHQ6IDMwcHg7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xyXG4gICAgYm9yZGVyOiBub25lO1xyXG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24pLCB0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbik7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxufVxyXG5cclxuLnNpZGViYXItaGVhZGVyIC5idG4tY29sbGFwc2U6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIyKTtcclxufVxyXG5cclxuLnNpZGViYXIuY29sbGFwc2VkIC5zLWFwcG5hbWUge1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHdpZHRoOiAwO1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4uc2lkZWJhci5jb2xsYXBzZWQgLmJ0bi1jb2xsYXBzZSB7XHJcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xyXG59XHJcblxyXG4uc2lkZWJhci5jb2xsYXBzZWQgLm1lbnUtbGFiZWwge1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHdpZHRoOiAwO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLnNpZGViYXIuY29sbGFwc2VkIC5tZW51LWl0ZW0sXHJcbi5zaWRlYmFyLmNvbGxhcHNlZCAubWVudS1hY2NvcmRpb24gLmFjY29yZGlvbi1idG4ge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XHJcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG59XHJcblxyXG4uc2lkZWJhci5jb2xsYXBzZWQgLm1lbnUtaXRlbSAubWktaWNvbixcclxuLnNpZGViYXIuY29sbGFwc2VkIC5tZW51LWFjY29yZGlvbiAuYWNjb3JkaW9uLWJ0biAubWktaWNvbiB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XHJcbn1cclxuXHJcbi5zaWRlYmFyLmNvbGxhcHNlZCAubWVudS1hY2NvcmRpb24gLmNoZXZyb24sXHJcbi5zaWRlYmFyLmNvbGxhcHNlZCAubWVudS1hY2NvcmRpb24gLnN1Yi1pdGVtcyB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG4uc2lkZWJhci1tZW51IHtcclxuICAgIGZsZXg6IDE7XHJcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xyXG4gICAgcGFkZGluZzogMTJweCAxMHB4O1xyXG59XHJcblxyXG4uc2lkZWJhci1tZW51Ojotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICB3aWR0aDogM3B4O1xyXG59XHJcblxyXG4uc2lkZWJhci1tZW51Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XHJcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XHJcbn1cclxuXHJcbi5tZW51LWl0ZW0ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDEycHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG4gICAgY29sb3I6IHZhcigtLXNpZGViYXItdGV4dCk7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24pLCBjb2xvciB2YXIoLS10cmFuc2l0aW9uKSwgdHJhbnNmb3JtIDAuMTJzIGVhc2U7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xyXG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5tZW51LWl0ZW0gLm1pLWljb24ge1xyXG4gICAgd2lkdGg6IDIycHg7XHJcbiAgICBoZWlnaHQ6IDIycHg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XHJcbn1cclxuXHJcbi5tZW51LWxhYmVsIHtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24pO1xyXG59XHJcblxyXG4ubWVudS1pdGVtOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCk7XHJcbn1cclxuXHJcbi5tZW51LWl0ZW0uYWN0aXZlIHtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMTQ0LCAyMDIsIDI0OSwgMC4xOCk7XHJcbiAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1hY3RpdmUpO1xyXG59XHJcblxyXG4ubWVudS1pdGVtLmFjdGl2ZSAubWktaWNvbiB7XHJcbiAgICBjb2xvcjogdmFyKC0tc2lkZWJhci1hY3RpdmUpO1xyXG59XHJcblxyXG4ubWVudS1pdGVtLmFjdGl2ZTo6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHRvcDogOHB4O1xyXG4gICAgYm90dG9tOiA4cHg7XHJcbiAgICB3aWR0aDogM3B4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMCAzcHggM3B4IDA7XHJcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWRlYmFyLWFjdGl2ZSk7XHJcbn1cclxuXHJcbi5tZW51LWFjY29yZGlvbiAuYWNjb3JkaW9uLWJ0biB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XHJcbiAgICBjb2xvcjogdmFyKC0tc2lkZWJhci10ZXh0KTtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XHJcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbik7XHJcbn1cclxuXHJcbi5tZW51LWFjY29yZGlvbiAuYWNjb3JkaW9uLWJ0bjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XHJcbiAgICBjb2xvcjogI2ZmZjtcclxufVxyXG5cclxuLm1lbnUtYWNjb3JkaW9uIC5hY2NvcmRpb24tYnRuIC5taS1pY29uIHtcclxuICAgIHdpZHRoOiAyMnB4O1xyXG4gICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDEycHg7XHJcbn1cclxuXHJcbi5tZW51LWFjY29yZGlvbiAuY2hldnJvbiB7XHJcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XHJcbn1cclxuXHJcbi5tZW51LWFjY29yZGlvbi5vcGVuIC5jaGV2cm9uIHtcclxuICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcclxufVxyXG5cclxuLm1lbnUtYWNjb3JkaW9uIC5zdWItaXRlbXMge1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIG1heC1oZWlnaHQ6IDA7XHJcbiAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMjVzIGVhc2U7XHJcbn1cclxuXHJcbi5tZW51LWFjY29yZGlvbi5vcGVuIC5zdWItaXRlbXMge1xyXG4gICAgbWF4LWhlaWdodDogMzAwcHg7XHJcbn1cclxuXHJcbi5zdWItaXRlbSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDhweCAxMnB4IDhweCA0MnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcclxuICAgIGNvbG9yOiByZ2JhKDIyNywgMjQyLCAyNTMsIDAuNzUpO1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIG1hcmdpbi1ib3R0b206IDJweDtcclxuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbiksIGNvbG9yIHZhcigtLXRyYW5zaXRpb24pO1xyXG59XHJcblxyXG4uc3ViLWl0ZW06aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG59XHJcblxyXG4uc3ViLWl0ZW0gLnNpLWRvdCB7XHJcbiAgICB3aWR0aDogNnB4O1xyXG4gICAgaGVpZ2h0OiA2cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICBvcGFjaXR5OiAwLjY7XHJcbn1cclxuXHJcbi5zaWRlYmFyLWJvdHRvbSB7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgLyogRmFsbGJhY2sgaGFyZGNvZMOpIHBvdXIgbGEgYm90dG9tIG5hdiBBbmRyb2lkICg1NnB4IHR5cGlxdWUpICovXHJcbiAgICBwYWRkaW5nLWJvdHRvbTogNjZweDtcclxuICAgIC8qIFNhZmUgYXJlYSBpbnNldCBzaSBkaXNwb25pYmxlIChpT1MvQW5kcm9pZCBnZXN0dXJlIG5hdikgKi9cclxuICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDEwcHggKyBtYXgoZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCksIDBweCkpO1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcclxufVxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDk5MS45OHB4KSB7XHJcbiAgICAvKiBTdXIgbW9iaWxlIDogcGFkZGluZy1ib3R0b20gbWluaW11bSBkZSA2NnB4IHBvdXIgY291dnJpciBsYSBiYXJyZSBBbmRyb2lkICovXHJcbiAgICAuc2lkZWJhci1ib3R0b20ge1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA2NnB4O1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBtYXgoNjZweCwgY2FsYygxMHB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDU2cHgpKSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5zaWRlYmFyLW92ZXJsYXkge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIGluc2V0OiAwO1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjQ1KTtcclxuICAgIHotaW5kZXg6IDIwNDA7XHJcbn1cclxuXHJcbi5zaWRlYmFyLW92ZXJsYXkudmlzaWJsZSB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIHotaW5kZXg6IDIwNDA7XHJcbn1cclxuXHJcbi5tYWluLWNvbnRlbnQge1xyXG4gICAgbWFyZ2luLXRvcDogMDtcclxuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zaWRlYmFyLXcpO1xyXG4gICAgcGFkZGluZzogY2FsYyh2YXIoLS1oZWFkZXItaCkgKyAyMHB4KSAyOHB4IDQ4cHg7XHJcbiAgICBtaW4taGVpZ2h0OiBhdXRvO1xyXG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLXNpZGViYXItdykpO1xyXG4gICAgdHJhbnNpdGlvbjogbWFyZ2luLWxlZnQgdmFyKC0tdHJhbnNpdGlvbiksIHdpZHRoIHZhcigtLXRyYW5zaXRpb24pO1xyXG59XHJcblxyXG4uc2lkZWJhci5jb2xsYXBzZWQgfiAubWFpbi1jb250ZW50IHtcclxuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zaWRlYmFyLXctc20pO1xyXG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLXNpZGViYXItdy1zbSkpO1xyXG59XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogOTkxLjk4cHgpIHtcclxuICAgIC5tYWluLWNvbnRlbnQge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgcGFkZGluZzogY2FsYyh2YXIoLS1oZWFkZXItaCkgKyAyMHB4KSAxNnB4IDQ4cHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjcuOThweCkge1xyXG4gICAgLm1haW4tY29udGVudCB7XHJcbiAgICAgICAgcGFkZGluZzogY2FsYyh2YXIoLS1oZWFkZXItaCkgKyA3NnB4KSAxNnB4IDQ4cHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qIFVzZXIgZHJvcGRvd24gKi9cclxuLnVzZXItZHJvcGRvd24ge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG59XHJcblxyXG4udXNlci1kcm9wZG93bi1tZW51IHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICByaWdodDogMDtcclxuICAgIHRvcDogY2FsYygxMDAlICsgOHB4KTtcclxuICAgIGJhY2tncm91bmQ6IHZhcigtLXN1cmZhY2UpO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XHJcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuICAgIG1pbi13aWR0aDogMTcwcHg7XHJcbiAgICB6LWluZGV4OiAyMjAwO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLnVzZXItZHJvcGRvd24ub3BlbiAudXNlci1kcm9wZG93bi1tZW51IHtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4udXNlci1kcm9wZG93bi1tZW51IGEge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IDEwcHg7XHJcbiAgICBwYWRkaW5nOiAxMHB4IDE2cHg7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24pO1xyXG59XHJcblxyXG4udXNlci1kcm9wZG93bi1tZW51IGE6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZDogdmFyKC0tc3VyZmFjZS12YXJpYW50KTtcclxufVxyXG5cclxuLnVzZXItZHJvcGRvd24tbWVudSBhLmRhbmdlciB7XHJcbiAgICBjb2xvcjogdmFyKC0tZXJyb3IpO1xyXG59XHJcblxyXG4vKiBFbnN1cmUgYm9vdHN0cmFwIG1vZGFscyBhcHBlYXIgYWJvdmUgdGhlIGZpeGVkIHRvcGJhciAqL1xyXG4ubW9kYWwge1xyXG4gICAgei1pbmRleDogMjI2MCAhaW1wb3J0YW50O1xyXG59XHJcbi5tb2RhbC1iYWNrZHJvcCB7XHJcbiAgICB6LWluZGV4OiAyMjUwICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbjo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gICAgd2lkdGg6IDZweDtcclxuICAgIGhlaWdodDogNnB4O1xyXG59XHJcblxyXG46Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoNjYsIDE2NSwgMjQ1LCAwLjI1KTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcclxufVxyXG5cclxuOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDY2LCAxNjUsIDI0NSwgMC41KTtcclxufVxyXG5cclxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgIFBhZ2UgbG9hZGVyIOKAlCB0cmFuc2l0aW9ucyBlbnRyZSBwYWdlc1xyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuLnBhZ2UtbG9hZGVyIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIGluc2V0OiAwO1xyXG4gICAgei1pbmRleDogMzAwMDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICAvKiBjYWNow6kgcGFyIGTDqWZhdXQgKi9cclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMTUwbXMgZWFzZTtcclxufVxyXG5cclxuLnBhZ2UtbG9hZGVyLmlzLWFjdGl2ZSB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XHJcbn1cclxuXHJcbi5wYWdlLWxvYWRlcl9fYmFja2Ryb3Age1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgaW5zZXQ6IDA7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0NSwgMjUxLCAyNTUsIDAuODgpO1xyXG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDJweCk7XHJcbn1cclxuXHJcbi5wYWdlLWxvYWRlcl9fY29udGVudCB7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBnYXA6IDEycHg7XHJcbiAgICBwYWRkaW5nOiAyMHB4IDI4cHg7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICAgIGJveC1zaGFkb3c6IDAgOHB4IDI4cHggcmdiYSgxMSwgMjAsIDQ3LCAwLjEwKTtcclxufVxyXG5cclxuLnBhZ2UtbG9hZGVyX19zcGlubmVyIHtcclxuICAgIHdpZHRoOiA0MnB4O1xyXG4gICAgaGVpZ2h0OiA0MnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgYm9yZGVyOiA0cHggc29saWQgdmFyKC0tYm9yZGVyLCAjRERFRUY5KTtcclxuICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLXByaW1hcnksICM0MkE1RjUpO1xyXG4gICAgYW5pbWF0aW9uOiBwbC1zcGluIDAuODVzIGxpbmVhciBpbmZpbml0ZTtcclxufVxyXG5cclxuLnBhZ2UtbG9hZGVyX190ZXh0IHtcclxuICAgIGZvbnQtc2l6ZTogMTNweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnksICM0NTVBNjQpO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDFlbTtcclxufVxyXG5cclxuQGtleWZyYW1lcyBwbC1zcGluIHsgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH1cclxuIiwiLyogUGFnZSBzaG9ydGN1dDogc3R5bGUgc3RyaWN0ZW1lbnQgY2FscXXDqSBzdXIgbGEgbWFxdWV0dGUgSFRNTCBzb3VyY2UgKi9cclxuLnBhZ2UtaGVhZGVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgIGdhcDogMTRweDtcclxuICAgIG1hcmdpbi1ib3R0b206IDMycHg7XHJcbn1cclxuXHJcbi5wYWdlLWhlYWRlciAucGFnZS1pY29uLXdyYXAge1xyXG4gICAgd2lkdGg6IDUycHg7XHJcbiAgICBoZWlnaHQ6IDUycHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSg2NiwgMTY1LCAyNDUsIDAuMTIpO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5KTtcclxuICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG59XHJcblxyXG4ucGFnZS1oZWFkZXIgaDEge1xyXG4gICAgZm9udC1zaXplOiAyNnB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcclxufVxyXG5cclxuLnBhZ2UtaGVhZGVyIC5wYWdlLXN1YiB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpO1xyXG4gICAgbWFyZ2luLXRvcDogNHB4O1xyXG59XHJcblxyXG4uc2VjdGlvbi1sYWJlbCB7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4O1xyXG4gICAgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xyXG59XHJcblxyXG4uc2hvcnRjdXRzLWdyaWQge1xyXG4gICAgZGlzcGxheTogZ3JpZDtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDUsIDFmcik7XHJcbiAgICBnYXA6IDIwcHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xyXG59XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcclxuICAgIC5zaG9ydGN1dHMtZ3JpZCB7XHJcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcclxuICAgICAgICBnYXA6IDE2cHg7XHJcbiAgICB9XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA1NDBweCkge1xyXG4gICAgLnNob3J0Y3V0cy1ncmlkIHtcclxuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xyXG4gICAgICAgIGdhcDogMTRweDtcclxuICAgIH1cclxufVxyXG5cclxuLnNjLWNhcmQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcclxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE4cyBjdWJpYy1iZXppZXIoLjM0LCAxLjU2LCAuNjQsIDEpO1xyXG59XHJcblxyXG4uc2MtY2FyZDpob3ZlciB7XHJcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xyXG59XHJcblxyXG4uc2MtY2FyZDphY3RpdmUge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkyKTtcclxufVxyXG5cclxuLnNjLXRpbGUge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMjJweDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjJzIGVhc2U7XHJcbiAgICBib3gtc2hhZG93OiB2YXIoLS1zYy1zaGFkb3ctZGVmYXVsdCwgMCA2cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMTgpKTtcclxufVxyXG5cclxuLnNjLWNhcmQ6aG92ZXIgLnNjLXRpbGUge1xyXG4gICAgYm94LXNoYWRvdzogMCAxNnB4IDM2cHggLTRweCB2YXIoLS1zYy1zaGFkb3csIHJnYmEoMCwgMCwgMCwgMC4yNSkpO1xyXG59XHJcblxyXG4uc2MtdGlsZTo6YmVmb3JlIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAtMTJweDtcclxuICAgIHJpZ2h0OiAtMTJweDtcclxuICAgIHdpZHRoOiA1NHB4O1xyXG4gICAgaGVpZ2h0OiA1NHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcclxufVxyXG5cclxuLnNjLXRpbGU6OmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgYm90dG9tOiAtMTBweDtcclxuICAgIGxlZnQ6IC0xMHB4O1xyXG4gICAgd2lkdGg6IDM4cHg7XHJcbiAgICBoZWlnaHQ6IDM4cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpO1xyXG59XHJcblxyXG4uc2MtdGlsZSAudGlsZS1pY29uIHtcclxuICAgIGZvbnQtc2l6ZTogY2xhbXAoMjhweCwgOHZ3LCA1MnB4KTtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjIpKTtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgIHotaW5kZXg6IDE7XHJcbn1cclxuXHJcbi5zYy1sYWJlbCB7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMjU7XHJcbiAgICBoZWlnaHQ6IDM2cHg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLmZlYXR1cmVkLXNlY3Rpb24ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBnYXA6IDE2cHg7XHJcbn1cclxuXHJcbi5mZWF0dXJlZC1jYXJkIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgaGVpZ2h0OiAxMTBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHBhZGRpbmc6IDE2cHg7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTZzIGVhc2UsIGJveC1zaGFkb3cgMC4xNnMgZWFzZTtcclxufVxyXG5cclxuLmZlYXR1cmVkLWNhcmQ6aG92ZXIge1xyXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpO1xyXG4gICAgYm94LXNoYWRvdzogMCAxOHB4IDQwcHggLThweCB2YXIoLS1mYy1zaGFkb3csIHJnYmEoMCwgMCwgMCwgMC4yNSkpO1xyXG59XHJcblxyXG4uZmVhdHVyZWQtY2FyZDphY3RpdmUge1xyXG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTtcclxufVxyXG5cclxuLmZjLWljb24td3JhcCB7XHJcbiAgICB3aWR0aDogODhweDtcclxuICAgIGhlaWdodDogODhweDtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG59XHJcblxyXG4uZmMtaWNvbi13cmFwIC5mYy1pY29uIHtcclxuICAgIGZvbnQtc2l6ZTogNDZweDtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG59XHJcblxyXG4uZmMtdGV4dCB7XHJcbiAgICBmbGV4OiAxO1xyXG4gICAgcGFkZGluZzogMCAxNnB4O1xyXG59XHJcblxyXG4uZmMtdGV4dCAuZmMtdGl0bGUge1xyXG4gICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMjU7XHJcbn1cclxuXHJcbi5mYy10ZXh0IC5mYy1zdWIge1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSk7XHJcbiAgICBtYXJnaW4tdG9wOiA2cHg7XHJcbn1cclxuXHJcbi5mYy1jaGV2cm9uIHtcclxuICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpO1xyXG4gICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbn1cclxuXHJcbi5mZWF0dXJlZC1jYXJkOjpiZWZvcmUge1xyXG4gICAgY29udGVudDogJyc7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IC0yMHB4O1xyXG4gICAgcmlnaHQ6IC0yMHB4O1xyXG4gICAgd2lkdGg6IDEwMHB4O1xyXG4gICAgaGVpZ2h0OiAxMDBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7XHJcbn1cclxuXHJcbkBtZWRpYSAobWF4LXdpZHRoOiA1NzUuOThweCkge1xyXG4gICAgLnBhZ2UtaGVhZGVyIGgxIHtcclxuICAgICAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICB9XHJcblxyXG4gICAgLnBhZ2UtaGVhZGVyIC5wYWdlLWljb24td3JhcCB7XHJcbiAgICAgICAgd2lkdGg6IDQycHg7XHJcbiAgICAgICAgaGVpZ2h0OiA0MnB4O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcclxuICAgIH1cclxuXHJcbiAgICAuZmVhdHVyZWQtY2FyZCB7XHJcbiAgICAgICAgaGVpZ2h0OiA5NnB4O1xyXG4gICAgfVxyXG5cclxuICAgIC5mYy1pY29uLXdyYXAge1xyXG4gICAgICAgIHdpZHRoOiA3MnB4O1xyXG4gICAgICAgIGhlaWdodDogNzJweDtcclxuICAgIH1cclxuXHJcbiAgICAuZmMtaWNvbi13cmFwIC5mYy1pY29uIHtcclxuICAgICAgICBmb250LXNpemU6IDM2cHg7XHJcbiAgICB9XHJcblxyXG4gICAgLmZjLXRleHQgLmZjLXRpdGxlIHtcclxuICAgICAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICB9XHJcbn1cclxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/