@charset "UTF-8";

/*!
 * animate.css -http://daneden.me/animate
 * Version - 3.5.1
 * Licensed under the MIT license - http://opensource.org/licenses/MIT
 *
 * Copyright (c) 2016 Daniel Eden
 */

.animated {
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    }

.animated.infinite {
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
    }

.animated.hinge {
    -webkit-animation-duration: 2s;
    animation-duration: 2s;
    }

.animated.flipOutX,
.animated.flipOutY,
.animated.bounceIn,
.animated.bounceOut {
    -webkit-animation-duration: .75s;
    animation-duration: .75s;
    }

@-webkit-keyframes bounce {
    from, 20%, 53%, 80%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        transform: translate3d(0,0,0);
        }

    40%, 43% {
        -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
        animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
        transform: translate3d(0, -30px, 0);
        }

    70% {
        -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
        animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
        transform: translate3d(0, -15px, 0);
        }

    90% {
        transform: translate3d(0,-4px,0);
        }
    }

@keyframes bounce {
    from, 20%, 53%, 80%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        transform: translate3d(0,0,0);
        }

    40%, 43% {
        -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
        animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
        transform: translate3d(0, -30px, 0);
        }

    70% {
        -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
        animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
        transform: translate3d(0, -15px, 0);
        }

    90% {
        transform: translate3d(0,-4px,0);
        }
    }

.bounce {
    -webkit-animation-name: bounce;
    animation-name: bounce;
    transform-origin: center bottom;
    }

@-webkit-keyframes flash {
    from, 50%, to {
        opacity: 1;
        }

    25%, 75% {
        opacity: 0;
        }
    }

@keyframes flash {
    from, 50%, to {
        opacity: 1;
        }

    25%, 75% {
        opacity: 0;
        }
    }

.flash {
    -webkit-animation-name: flash;
    animation-name: flash;
    }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@-webkit-keyframes pulse {
    from {
        transform: scale3d(1, 1, 1);
        }

    50% {
        transform: scale3d(1.05, 1.05, 1.05);
        }

    to {
        transform: scale3d(1, 1, 1);
        }
    }

@keyframes pulse {
    from {
        transform: scale3d(1, 1, 1);
        }

    50% {
        transform: scale3d(1.05, 1.05, 1.05);
        }

    to {
        transform: scale3d(1, 1, 1);
        }
    }

.pulse {
    -webkit-animation-name: pulse;
    animation-name: pulse;
    }

@-webkit-keyframes rubberBand {
    from {
        transform: scale3d(1, 1, 1);
        }

    30% {
        transform: scale3d(1.25, 0.75, 1);
        }

    40% {
        transform: scale3d(0.75, 1.25, 1);
        }

    50% {
        transform: scale3d(1.15, 0.85, 1);
        }

    65% {
        transform: scale3d(.95, 1.05, 1);
        }

    75% {
        transform: scale3d(1.05, .95, 1);
        }

    to {
        transform: scale3d(1, 1, 1);
        }
    }

@keyframes rubberBand {
    from {
        transform: scale3d(1, 1, 1);
        }

    30% {
        transform: scale3d(1.25, 0.75, 1);
        }

    40% {
        transform: scale3d(0.75, 1.25, 1);
        }

    50% {
        transform: scale3d(1.15, 0.85, 1);
        }

    65% {
        transform: scale3d(.95, 1.05, 1);
        }

    75% {
        transform: scale3d(1.05, .95, 1);
        }

    to {
        transform: scale3d(1, 1, 1);
        }
    }

.rubberBand {
    -webkit-animation-name: rubberBand;
    animation-name: rubberBand;
    }

@-webkit-keyframes shake {
    from, to {
        transform: translate3d(0, 0, 0);
        }

    10%, 30%, 50%, 70%, 90% {
        transform: translate3d(-10px, 0, 0);
        }

    20%, 40%, 60%, 80% {
        transform: translate3d(10px, 0, 0);
        }
    }

@keyframes shake {
    from, to {
        transform: translate3d(0, 0, 0);
        }

    10%, 30%, 50%, 70%, 90% {
        transform: translate3d(-10px, 0, 0);
        }

    20%, 40%, 60%, 80% {
        transform: translate3d(10px, 0, 0);
        }
    }

.shake {
    -webkit-animation-name: shake;
    animation-name: shake;
    }

@-webkit-keyframes headShake {
    0% {
        transform: translateX(0);
        }

    6.5% {
        transform: translateX(-6px) rotateY(-9deg);
        }

    18.5% {
        transform: translateX(5px) rotateY(7deg);
        }

    31.5% {
        transform: translateX(-3px) rotateY(-5deg);
        }

    43.5% {
        transform: translateX(2px) rotateY(3deg);
        }

    50% {
        transform: translateX(0);
        }
    }

@keyframes headShake {
    0% {
        transform: translateX(0);
        }

    6.5% {
        transform: translateX(-6px) rotateY(-9deg);
        }

    18.5% {
        transform: translateX(5px) rotateY(7deg);
        }

    31.5% {
        transform: translateX(-3px) rotateY(-5deg);
        }

    43.5% {
        transform: translateX(2px) rotateY(3deg);
        }

    50% {
        transform: translateX(0);
        }
    }

.headShake {
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    -webkit-animation-name: headShake;
    animation-name: headShake;
    }

@-webkit-keyframes swing {
    20% {
        transform: rotate3d(0, 0, 1, 15deg);
        }

    40% {
        transform: rotate3d(0, 0, 1, -10deg);
        }

    60% {
        transform: rotate3d(0, 0, 1, 5deg);
        }

    80% {
        transform: rotate3d(0, 0, 1, -5deg);
        }

    to {
        transform: rotate3d(0, 0, 1, 0deg);
        }
    }

@keyframes swing {
    20% {
        transform: rotate3d(0, 0, 1, 15deg);
        }

    40% {
        transform: rotate3d(0, 0, 1, -10deg);
        }

    60% {
        transform: rotate3d(0, 0, 1, 5deg);
        }

    80% {
        transform: rotate3d(0, 0, 1, -5deg);
        }

    to {
        transform: rotate3d(0, 0, 1, 0deg);
        }
    }

.swing {
    transform-origin: top center;
    -webkit-animation-name: swing;
    animation-name: swing;
    }

@-webkit-keyframes tada {
    from {
        transform: scale3d(1, 1, 1);
        }

    10%, 20% {
        transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
        }

    30%, 50%, 70%, 90% {
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
        }

    40%, 60%, 80% {
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
        }

    to {
        transform: scale3d(1, 1, 1);
        }
    }

@keyframes tada {
    from {
        transform: scale3d(1, 1, 1);
        }

    10%, 20% {
        transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg);
        }

    30%, 50%, 70%, 90% {
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
        }

    40%, 60%, 80% {
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
        }

    to {
        transform: scale3d(1, 1, 1);
        }
    }

.tada {
    -webkit-animation-name: tada;
    animation-name: tada;
    }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@-webkit-keyframes wobble {
    from {
        transform: none;
        }

    15% {
        transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
        }

    30% {
        transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
        }

    45% {
        transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
        }

    60% {
        transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
        }

    75% {
        transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
        }

    to {
        transform: none;
        }
    }

@keyframes wobble {
    from {
        transform: none;
        }

    15% {
        transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
        }

    30% {
        transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
        }

    45% {
        transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
        }

    60% {
        transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
        }

    75% {
        transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
        }

    to {
        transform: none;
        }
    }

.wobble {
    -webkit-animation-name: wobble;
    animation-name: wobble;
    }

@-webkit-keyframes jello {
    from, 11.1%, to {
        transform: none;
        }

    22.2% {
        transform: skewX(-12.5deg) skewY(-12.5deg);
        }

    33.3% {
        transform: skewX(6.25deg) skewY(6.25deg);
        }

    44.4% {
        transform: skewX(-3.125deg) skewY(-3.125deg);
        }

    55.5% {
        transform: skewX(1.5625deg) skewY(1.5625deg);
        }

    66.6% {
        transform: skewX(-0.78125deg) skewY(-0.78125deg);
        }

    77.7% {
        transform: skewX(0.390625deg) skewY(0.390625deg);
        }

    88.8% {
        transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
        }
    }

@keyframes jello {
    from, 11.1%, to {
        transform: none;
        }

    22.2% {
        transform: skewX(-12.5deg) skewY(-12.5deg);
        }

    33.3% {
        transform: skewX(6.25deg) skewY(6.25deg);
        }

    44.4% {
        transform: skewX(-3.125deg) skewY(-3.125deg);
        }

    55.5% {
        transform: skewX(1.5625deg) skewY(1.5625deg);
        }

    66.6% {
        transform: skewX(-0.78125deg) skewY(-0.78125deg);
        }

    77.7% {
        transform: skewX(0.390625deg) skewY(0.390625deg);
        }

    88.8% {
        transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
        }
    }

.jello {
    -webkit-animation-name: jello;
    animation-name: jello;
    transform-origin: center;
    }

@-webkit-keyframes bounceIn {
    from, 20%, 40%, 60%, 80%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        }

    0% {
        opacity: 0;
        transform: scale3d(.3, .3, .3);
        }

    20% {
        transform: scale3d(1.1, 1.1, 1.1);
        }

    40% {
        transform: scale3d(.9, .9, .9);
        }

    60% {
        opacity: 1;
        transform: scale3d(1.03, 1.03, 1.03);
        }

    80% {
        transform: scale3d(.97, .97, .97);
        }

    to {
        opacity: 1;
        transform: scale3d(1, 1, 1);
        }
    }

@keyframes bounceIn {
    from, 20%, 40%, 60%, 80%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        }

    0% {
        opacity: 0;
        transform: scale3d(.3, .3, .3);
        }

    20% {
        transform: scale3d(1.1, 1.1, 1.1);
        }

    40% {
        transform: scale3d(.9, .9, .9);
        }

    60% {
        opacity: 1;
        transform: scale3d(1.03, 1.03, 1.03);
        }

    80% {
        transform: scale3d(.97, .97, .97);
        }

    to {
        opacity: 1;
        transform: scale3d(1, 1, 1);
        }
    }

.bounceIn {
    -webkit-animation-name: bounceIn;
    animation-name: bounceIn;
    }

@-webkit-keyframes bounceInDown {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        }

    0% {
        opacity: 0;
        transform: translate3d(0, -3000px, 0);
        }

    60% {
        opacity: 1;
        transform: translate3d(0, 25px, 0);
        }

    75% {
        transform: translate3d(0, -10px, 0);
        }

    90% {
        transform: translate3d(0, 5px, 0);
        }

    to {
        transform: none;
        }
    }

@keyframes bounceInDown {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        }

    0% {
        opacity: 0;
        transform: translate3d(0, -3000px, 0);
        }

    60% {
        opacity: 1;
        transform: translate3d(0, 25px, 0);
        }

    75% {
        transform: translate3d(0, -10px, 0);
        }

    90% {
        transform: translate3d(0, 5px, 0);
        }

    to {
        transform: none;
        }
    }

.bounceInDown {
    -webkit-animation-name: bounceInDown;
    animation-name: bounceInDown;
    }

@-webkit-keyframes bounceInLeft {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        }

    0% {
        opacity: 0;
        transform: translate3d(-3000px, 0, 0);
        }

    60% {
        opacity: 1;
        transform: translate3d(25px, 0, 0);
        }

    75% {
        transform: translate3d(-10px, 0, 0);
        }

    90% {
        transform: translate3d(5px, 0, 0);
        }

    to {
        transform: none;
        }
    }

@keyframes bounceInLeft {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        }

    0% {
        opacity: 0;
        transform: translate3d(-3000px, 0, 0);
        }

    60% {
        opacity: 1;
        transform: translate3d(25px, 0, 0);
        }

    75% {
        transform: translate3d(-10px, 0, 0);
        }

    90% {
        transform: translate3d(5px, 0, 0);
        }

    to {
        transform: none;
        }
    }

.bounceInLeft {
    -webkit-animation-name: bounceInLeft;
    animation-name: bounceInLeft;
    }

@-webkit-keyframes bounceInRight {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        }

    from {
        opacity: 0;
        transform: translate3d(3000px, 0, 0);
        }

    60% {
        opacity: 1;
        transform: translate3d(-25px, 0, 0);
        }

    75% {
        transform: translate3d(10px, 0, 0);
        }

    90% {
        transform: translate3d(-5px, 0, 0);
        }

    to {
        transform: none;
        }
    }

@keyframes bounceInRight {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        }

    from {
        opacity: 0;
        transform: translate3d(3000px, 0, 0);
        }

    60% {
        opacity: 1;
        transform: translate3d(-25px, 0, 0);
        }

    75% {
        transform: translate3d(10px, 0, 0);
        }

    90% {
        transform: translate3d(-5px, 0, 0);
        }

    to {
        transform: none;
        }
    }

.bounceInRight {
    -webkit-animation-name: bounceInRight;
    animation-name: bounceInRight;
    }

@-webkit-keyframes bounceInUp {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        }

    from {
        opacity: 0;
        transform: translate3d(0, 3000px, 0);
        }

    60% {
        opacity: 1;
        transform: translate3d(0, -20px, 0);
        }

    75% {
        transform: translate3d(0, 10px, 0);
        }

    90% {
        transform: translate3d(0, -5px, 0);
        }

    to {
        transform: translate3d(0, 0, 0);
        }
    }

@keyframes bounceInUp {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        }

    from {
        opacity: 0;
        transform: translate3d(0, 3000px, 0);
        }

    60% {
        opacity: 1;
        transform: translate3d(0, -20px, 0);
        }

    75% {
        transform: translate3d(0, 10px, 0);
        }

    90% {
        transform: translate3d(0, -5px, 0);
        }

    to {
        transform: translate3d(0, 0, 0);
        }
    }

.bounceInUp {
    -webkit-animation-name: bounceInUp;
    animation-name: bounceInUp;
    }

@-webkit-keyframes bounceOut {
    20% {
        transform: scale3d(.9, .9, .9);
        }

    50%, 55% {
        opacity: 1;
        transform: scale3d(1.1, 1.1, 1.1);
        }

    to {
        opacity: 0;
        transform: scale3d(.3, .3, .3);
        }
    }

@keyframes bounceOut {
    20% {
        transform: scale3d(.9, .9, .9);
        }

    50%, 55% {
        opacity: 1;
        transform: scale3d(1.1, 1.1, 1.1);
        }

    to {
        opacity: 0;
        transform: scale3d(.3, .3, .3);
        }
    }

.bounceOut {
    -webkit-animation-name: bounceOut;
    animation-name: bounceOut;
    }

@-webkit-keyframes bounceOutDown {
    20% {
        transform: translate3d(0, 10px, 0);
        }

    40%, 45% {
        opacity: 1;
        transform: translate3d(0, -20px, 0);
        }

    to {
        opacity: 0;
        transform: translate3d(0, 2000px, 0);
        }
    }

@keyframes bounceOutDown {
    20% {
        transform: translate3d(0, 10px, 0);
        }

    40%, 45% {
        opacity: 1;
        transform: translate3d(0, -20px, 0);
        }

    to {
        opacity: 0;
        transform: translate3d(0, 2000px, 0);
        }
    }

.bounceOutDown {
    -webkit-animation-name: bounceOutDown;
    animation-name: bounceOutDown;
    }

@-webkit-keyframes bounceOutLeft {
    20% {
        opacity: 1;
        transform: translate3d(20px, 0, 0);
        }

    to {
        opacity: 0;
        transform: translate3d(-2000px, 0, 0);
        }
    }

@keyframes bounceOutLeft {
    20% {
        opacity: 1;
        transform: translate3d(20px, 0, 0);
        }

    to {
        opacity: 0;
        transform: translate3d(-2000px, 0, 0);
        }
    }

.bounceOutLeft {
    -webkit-animation-name: bounceOutLeft;
    animation-name: bounceOutLeft;
    }

@-webkit-keyframes bounceOutRight {
    20% {
        opacity: 1;
        transform: translate3d(-20px, 0, 0);
        }

    to {
        opacity: 0;
        transform: translate3d(2000px, 0, 0);
        }
    }

@keyframes bounceOutRight {
    20% {
        opacity: 1;
        transform: translate3d(-20px, 0, 0);
        }

    to {
        opacity: 0;
        transform: translate3d(2000px, 0, 0);
        }
    }

.bounceOutRight {
    -webkit-animation-name: bounceOutRight;
    animation-name: bounceOutRight;
    }

@-webkit-keyframes bounceOutUp {
    20% {
        transform: translate3d(0, -10px, 0);
        }

    40%, 45% {
        opacity: 1;
        transform: translate3d(0, 20px, 0);
        }

    to {
        opacity: 0;
        transform: translate3d(0, -2000px, 0);
        }
    }

@keyframes bounceOutUp {
    20% {
        transform: translate3d(0, -10px, 0);
        }

    40%, 45% {
        opacity: 1;
        transform: translate3d(0, 20px, 0);
        }

    to {
        opacity: 0;
        transform: translate3d(0, -2000px, 0);
        }
    }

.bounceOutUp {
    -webkit-animation-name: bounceOutUp;
    animation-name: bounceOutUp;
    }

@-webkit-keyframes fadeIn {
    from {
        opacity: 0;
        }

    to {
        opacity: 1;
        }
    }

@keyframes fadeIn {
    from {
        opacity: 0;
        }

    to {
        opacity: 1;
        }
    }

.fadeIn {
    -webkit-animation-name: fadeIn;
    animation-name: fadeIn;
    }

@-webkit-keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translate3d(0, -100%, 0);
        }

    to {
        opacity: 1;
        transform: none;
        }
    }

@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translate3d(0, -100%, 0);
        }

    to {
        opacity: 1;
        transform: none;
        }
    }

.fadeInDown {
    -webkit-animation-name: fadeInDown;
    animation-name: fadeInDown;
    }

@-webkit-keyframes fadeInDownBig {
    from {
        opacity: 0;
        transform: translate3d(0, -2000px, 0);
        }

    to {
        opacity: 1;
        transform: none;
        }
    }

@keyframes fadeInDownBig {
    from {
        opacity: 0;
        transform: translate3d(0, -2000px, 0);
        }

    to {
        opacity: 1;
        transform: none;
        }
    }

.fadeInDownBig {
    -webkit-animation-name: fadeInDownBig;
    animation-name: fadeInDownBig;
    }

@-webkit-keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translate3d(-100%, 0, 0);
        }

    to {
        opacity: 1;
        transform: none;
        }
    }

@keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translate3d(-100%, 0, 0);
        }

    to {
        opacity: 1;
        transform: none;
        }
    }

.fadeInLeft {
    -webkit-animation-name: fadeInLeft;
    animation-name: fadeInLeft;
    }

@-webkit-keyframes fadeInLeftBig {
    from {
        opacity: 0;
        transform: translate3d(-2000px, 0, 0);
        }

    to {
        opacity: 1;
        transform: none;
        }
    }

@keyframes fadeInLeftBig {
    from {
        opacity: 0;
        transform: translate3d(-2000px, 0, 0);
        }

    to {
        opacity: 1;
        transform: none;
        }
    }

.fadeInLeftBig {
    -webkit-animation-name: fadeInLeftBig;
    animation-name: fadeInLeftBig;
    }

@-webkit-keyframes fadeInRight {
    from {
        opacity: 0;
        transform: translate3d(100%, 0, 0);
        }

    to {
        opacity: 1;
        transform: none;
        }
    }

@keyframes fadeInRight {
    from {
        opacity: 0;
        transform: translate3d(100%, 0, 0);
        }

    to {
        opacity: 1;
        transform: none;
        }
    }

.fadeInRight {
    -webkit-animation-name: fadeInRight;
    animation-name: fadeInRight;
    }

@-webkit-keyframes fadeInRightBig {
    from {
        opacity: 0;
        transform: translate3d(2000px, 0, 0);
        }

    to {
        opacity: 1;
        transform: none;
        }
    }

@keyframes fadeInRightBig {
    from {
        opacity: 0;
        transform: translate3d(2000px, 0, 0);
        }

    to {
        opacity: 1;
        transform: none;
        }
    }

.fadeInRightBig {
    -webkit-animation-name: fadeInRightBig;
    animation-name: fadeInRightBig;
    }

@-webkit-keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translate3d(0, 100%, 0);
        }

    to {
        opacity: 1;
        transform: none;
        }
    }

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translate3d(0, 100%, 0);
        }

    to {
        opacity: 1;
        transform: none;
        }
    }

.fadeInUp {
    -webkit-animation-name: fadeInUp;
    animation-name: fadeInUp;
    }

@-webkit-keyframes fadeInUpBig {
    from {
        opacity: 0;
        transform: translate3d(0, 2000px, 0);
        }

    to {
        opacity: 1;
        transform: none;
        }
    }

@keyframes fadeInUpBig {
    from {
        opacity: 0;
        transform: translate3d(0, 2000px, 0);
        }

    to {
        opacity: 1;
        transform: none;
        }
    }

.fadeInUpBig {
    -webkit-animation-name: fadeInUpBig;
    animation-name: fadeInUpBig;
    }

@-webkit-keyframes fadeOut {
    from {
        opacity: 1;
        }

    to {
        opacity: 0;
        }
    }

@keyframes fadeOut {
    from {
        opacity: 1;
        }

    to {
        opacity: 0;
        }
    }

.fadeOut {
    -webkit-animation-name: fadeOut;
    animation-name: fadeOut;
    }

@-webkit-keyframes fadeOutDown {
    from {
        opacity: 1;
        }

    to {
        opacity: 0;
        transform: translate3d(0, 100%, 0);
        }
    }

@keyframes fadeOutDown {
    from {
        opacity: 1;
        }

    to {
        opacity: 0;
        transform: translate3d(0, 100%, 0);
        }
    }

.fadeOutDown {
    -webkit-animation-name: fadeOutDown;
    animation-name: fadeOutDown;
    }

@-webkit-keyframes fadeOutDownBig {
    from {
        opacity: 1;
        }

    to {
        opacity: 0;
        transform: translate3d(0, 2000px, 0);
        }
    }

@keyframes fadeOutDownBig {
    from {
        opacity: 1;
        }

    to {
        opacity: 0;
        transform: translate3d(0, 2000px, 0);
        }
    }

.fadeOutDownBig {
    -webkit-animation-name: fadeOutDownBig;
    animation-name: fadeOutDownBig;
    }

@-webkit-keyframes fadeOutLeft {
    from {
        opacity: 1;
        }

    to {
        opacity: 0;
        transform: translate3d(-100%, 0, 0);
        }
    }

@keyframes fadeOutLeft {
    from {
        opacity: 1;
        }

    to {
        opacity: 0;
        transform: translate3d(-100%, 0, 0);
        }
    }

.fadeOutLeft {
    -webkit-animation-name: fadeOutLeft;
    animation-name: fadeOutLeft;
    }

@-webkit-keyframes fadeOutLeftBig {
    from {
        opacity: 1;
        }

    to {
        opacity: 0;
        transform: translate3d(-2000px, 0, 0);
        }
    }

@keyframes fadeOutLeftBig {
    from {
        opacity: 1;
        }

    to {
        opacity: 0;
        transform: translate3d(-2000px, 0, 0);
        }
    }

.fadeOutLeftBig {
    -webkit-animation-name: fadeOutLeftBig;
    animation-name: fadeOutLeftBig;
    }

@-webkit-keyframes fadeOutRight {
    from {
        opacity: 1;
        }

    to {
        opacity: 0;
        transform: translate3d(100%, 0, 0);
        }
    }

@keyframes fadeOutRight {
    from {
        opacity: 1;
        }

    to {
        opacity: 0;
        transform: translate3d(100%, 0, 0);
        }
    }

.fadeOutRight {
    -webkit-animation-name: fadeOutRight;
    animation-name: fadeOutRight;
    }

@-webkit-keyframes fadeOutRightBig {
    from {
        opacity: 1;
        }

    to {
        opacity: 0;
        transform: translate3d(2000px, 0, 0);
        }
    }

@keyframes fadeOutRightBig {
    from {
        opacity: 1;
        }

    to {
        opacity: 0;
        transform: translate3d(2000px, 0, 0);
        }
    }

.fadeOutRightBig {
    -webkit-animation-name: fadeOutRightBig;
    animation-name: fadeOutRightBig;
    }

@-webkit-keyframes fadeOutUp {
    from {
        opacity: 1;
        }

    to {
        opacity: 0;
        transform: translate3d(0, -100%, 0);
        }
    }

@keyframes fadeOutUp {
    from {
        opacity: 1;
        }

    to {
        opacity: 0;
        transform: translate3d(0, -100%, 0);
        }
    }

.fadeOutUp {
    -webkit-animation-name: fadeOutUp;
    animation-name: fadeOutUp;
    }

@-webkit-keyframes fadeOutUpBig {
    from {
        opacity: 1;
        }

    to {
        opacity: 0;
        transform: translate3d(0, -2000px, 0);
        }
    }

@keyframes fadeOutUpBig {
    from {
        opacity: 1;
        }

    to {
        opacity: 0;
        transform: translate3d(0, -2000px, 0);
        }
    }

.fadeOutUpBig {
    -webkit-animation-name: fadeOutUpBig;
    animation-name: fadeOutUpBig;
    }

@-webkit-keyframes flip {
    from {
        transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out;
        }

    40% {
        transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out;
        }

    50% {
        transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        }

    80% {
        transform: perspective(400px) scale3d(.95, .95, .95);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        }

    to {
        transform: perspective(400px);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        }
    }

@keyframes flip {
    from {
        transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out;
        }

    40% {
        transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out;
        }

    50% {
        transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        }

    80% {
        transform: perspective(400px) scale3d(.95, .95, .95);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        }

    to {
        transform: perspective(400px);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        }
    }

.animated.flip {
    -webkit-backface-visibility: visible;
    backface-visibility: visible;
    -webkit-animation-name: flip;
    animation-name: flip;
    }

@-webkit-keyframes flipInX {
    from {
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        opacity: 0;
        }

    40% {
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        }

    60% {
        transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
        opacity: 1;
        }

    80% {
        transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
        }

    to {
        transform: perspective(400px);
        }
    }

@keyframes flipInX {
    from {
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        opacity: 0;
        }

    40% {
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        }

    60% {
        transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
        opacity: 1;
        }

    80% {
        transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
        }

    to {
        transform: perspective(400px);
        }
    }

.flipInX {
    -webkit-backface-visibility: visible !important;
    backface-visibility: visible !important;
    -webkit-animation-name: flipInX;
    animation-name: flipInX;
    }

@-webkit-keyframes flipInY {
    from {
        transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        opacity: 0;
        }

    40% {
        transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        }

    60% {
        transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
        opacity: 1;
        }

    80% {
        transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
        }

    to {
        transform: perspective(400px);
        }
    }

@keyframes flipInY {
    from {
        transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        opacity: 0;
        }

    40% {
        transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        }

    60% {
        transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
        opacity: 1;
        }

    80% {
        transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
        }

    to {
        transform: perspective(400px);
        }
    }

.flipInY {
    -webkit-backface-visibility: visible !important;
    backface-visibility: visible !important;
    -webkit-animation-name: flipInY;
    animation-name: flipInY;
    }

@-webkit-keyframes flipOutX {
    from {
        transform: perspective(400px);
        }

    30% {
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        opacity: 1;
        }

    to {
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        opacity: 0;
        }
    }

@keyframes flipOutX {
    from {
        transform: perspective(400px);
        }

    30% {
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        opacity: 1;
        }

    to {
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        opacity: 0;
        }
    }

.flipOutX {
    -webkit-animation-name: flipOutX;
    animation-name: flipOutX;
    -webkit-backface-visibility: visible !important;
    backface-visibility: visible !important;
    }

@-webkit-keyframes flipOutY {
    from {
        transform: perspective(400px);
        }

    30% {
        transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
        opacity: 1;
        }

    to {
        transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        opacity: 0;
        }
    }

@keyframes flipOutY {
    from {
        transform: perspective(400px);
        }

    30% {
        transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
        opacity: 1;
        }

    to {
        transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        opacity: 0;
        }
    }

.flipOutY {
    -webkit-backface-visibility: visible !important;
    backface-visibility: visible !important;
    -webkit-animation-name: flipOutY;
    animation-name: flipOutY;
    }

@-webkit-keyframes lightSpeedIn {
    from {
        transform: translate3d(100%, 0, 0) skewX(-30deg);
        opacity: 0;
        }

    60% {
        transform: skewX(20deg);
        opacity: 1;
        }

    80% {
        transform: skewX(-5deg);
        opacity: 1;
        }

    to {
        transform: none;
        opacity: 1;
        }
    }

@keyframes lightSpeedIn {
    from {
        transform: translate3d(100%, 0, 0) skewX(-30deg);
        opacity: 0;
        }

    60% {
        transform: skewX(20deg);
        opacity: 1;
        }

    80% {
        transform: skewX(-5deg);
        opacity: 1;
        }

    to {
        transform: none;
        opacity: 1;
        }
    }

.lightSpeedIn {
    -webkit-animation-name: lightSpeedIn;
    animation-name: lightSpeedIn;
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
    }

@-webkit-keyframes lightSpeedOut {
    from {
        opacity: 1;
        }

    to {
        transform: translate3d(100%, 0, 0) skewX(30deg);
        opacity: 0;
        }
    }

@keyframes lightSpeedOut {
    from {
        opacity: 1;
        }

    to {
        transform: translate3d(100%, 0, 0) skewX(30deg);
        opacity: 0;
        }
    }

.lightSpeedOut {
    -webkit-animation-name: lightSpeedOut;
    animation-name: lightSpeedOut;
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
    }

@-webkit-keyframes rotateIn {
    from {
        transform-origin: center;
        transform: rotate3d(0, 0, 1, -200deg);
        opacity: 0;
        }

    to {
        transform-origin: center;
        transform: none;
        opacity: 1;
        }
    }

@keyframes rotateIn {
    from {
        transform-origin: center;
        transform: rotate3d(0, 0, 1, -200deg);
        opacity: 0;
        }

    to {
        transform-origin: center;
        transform: none;
        opacity: 1;
        }
    }

.rotateIn {
    -webkit-animation-name: rotateIn;
    animation-name: rotateIn;
    }

@-webkit-keyframes rotateInDownLeft {
    from {
        transform-origin: left bottom;
        transform: rotate3d(0, 0, 1, -45deg);
        opacity: 0;
        }

    to {
        transform-origin: left bottom;
        transform: none;
        opacity: 1;
        }
    }

@keyframes rotateInDownLeft {
    from {
        transform-origin: left bottom;
        transform: rotate3d(0, 0, 1, -45deg);
        opacity: 0;
        }

    to {
        transform-origin: left bottom;
        transform: none;
        opacity: 1;
        }
    }

.rotateInDownLeft {
    -webkit-animation-name: rotateInDownLeft;
    animation-name: rotateInDownLeft;
    }

@-webkit-keyframes rotateInDownRight {
    from {
        transform-origin: right bottom;
        transform: rotate3d(0, 0, 1, 45deg);
        opacity: 0;
        }

    to {
        transform-origin: right bottom;
        transform: none;
        opacity: 1;
        }
    }

@keyframes rotateInDownRight {
    from {
        transform-origin: right bottom;
        transform: rotate3d(0, 0, 1, 45deg);
        opacity: 0;
        }

    to {
        transform-origin: right bottom;
        transform: none;
        opacity: 1;
        }
    }

.rotateInDownRight {
    -webkit-animation-name: rotateInDownRight;
    animation-name: rotateInDownRight;
    }

@-webkit-keyframes rotateInUpLeft {
    from {
        transform-origin: left bottom;
        transform: rotate3d(0, 0, 1, 45deg);
        opacity: 0;
        }

    to {
        transform-origin: left bottom;
        transform: none;
        opacity: 1;
        }
    }

@keyframes rotateInUpLeft {
    from {
        transform-origin: left bottom;
        transform: rotate3d(0, 0, 1, 45deg);
        opacity: 0;
        }

    to {
        transform-origin: left bottom;
        transform: none;
        opacity: 1;
        }
    }

.rotateInUpLeft {
    -webkit-animation-name: rotateInUpLeft;
    animation-name: rotateInUpLeft;
    }

@-webkit-keyframes rotateInUpRight {
    from {
        transform-origin: right bottom;
        transform: rotate3d(0, 0, 1, -90deg);
        opacity: 0;
        }

    to {
        transform-origin: right bottom;
        transform: none;
        opacity: 1;
        }
    }

@keyframes rotateInUpRight {
    from {
        transform-origin: right bottom;
        transform: rotate3d(0, 0, 1, -90deg);
        opacity: 0;
        }

    to {
        transform-origin: right bottom;
        transform: none;
        opacity: 1;
        }
    }

.rotateInUpRight {
    -webkit-animation-name: rotateInUpRight;
    animation-name: rotateInUpRight;
    }

@-webkit-keyframes rotateOut {
    from {
        transform-origin: center;
        opacity: 1;
        }

    to {
        transform-origin: center;
        transform: rotate3d(0, 0, 1, 200deg);
        opacity: 0;
        }
    }

@keyframes rotateOut {
    from {
        transform-origin: center;
        opacity: 1;
        }

    to {
        transform-origin: center;
        transform: rotate3d(0, 0, 1, 200deg);
        opacity: 0;
        }
    }

.rotateOut {
    -webkit-animation-name: rotateOut;
    animation-name: rotateOut;
    }

@-webkit-keyframes rotateOutDownLeft {
    from {
        transform-origin: left bottom;
        opacity: 1;
        }

    to {
        transform-origin: left bottom;
        transform: rotate3d(0, 0, 1, 45deg);
        opacity: 0;
        }
    }

@keyframes rotateOutDownLeft {
    from {
        transform-origin: left bottom;
        opacity: 1;
        }

    to {
        transform-origin: left bottom;
        transform: rotate3d(0, 0, 1, 45deg);
        opacity: 0;
        }
    }

.rotateOutDownLeft {
    -webkit-animation-name: rotateOutDownLeft;
    animation-name: rotateOutDownLeft;
    }

@-webkit-keyframes rotateOutDownRight {
    from {
        transform-origin: right bottom;
        opacity: 1;
        }

    to {
        transform-origin: right bottom;
        transform: rotate3d(0, 0, 1, -45deg);
        opacity: 0;
        }
    }

@keyframes rotateOutDownRight {
    from {
        transform-origin: right bottom;
        opacity: 1;
        }

    to {
        transform-origin: right bottom;
        transform: rotate3d(0, 0, 1, -45deg);
        opacity: 0;
        }
    }

.rotateOutDownRight {
    -webkit-animation-name: rotateOutDownRight;
    animation-name: rotateOutDownRight;
    }

@-webkit-keyframes rotateOutUpLeft {
    from {
        transform-origin: left bottom;
        opacity: 1;
        }

    to {
        transform-origin: left bottom;
        transform: rotate3d(0, 0, 1, -45deg);
        opacity: 0;
        }
    }

@keyframes rotateOutUpLeft {
    from {
        transform-origin: left bottom;
        opacity: 1;
        }

    to {
        transform-origin: left bottom;
        transform: rotate3d(0, 0, 1, -45deg);
        opacity: 0;
        }
    }

.rotateOutUpLeft {
    -webkit-animation-name: rotateOutUpLeft;
    animation-name: rotateOutUpLeft;
    }

@-webkit-keyframes rotateOutUpRight {
    from {
        transform-origin: right bottom;
        opacity: 1;
        }

    to {
        transform-origin: right bottom;
        transform: rotate3d(0, 0, 1, 90deg);
        opacity: 0;
        }
    }

@keyframes rotateOutUpRight {
    from {
        transform-origin: right bottom;
        opacity: 1;
        }

    to {
        transform-origin: right bottom;
        transform: rotate3d(0, 0, 1, 90deg);
        opacity: 0;
        }
    }

.rotateOutUpRight {
    -webkit-animation-name: rotateOutUpRight;
    animation-name: rotateOutUpRight;
    }

@-webkit-keyframes hinge {
    0% {
        transform-origin: top left;
        -webkit-animation-timing-function: ease-in-out;
        animation-timing-function: ease-in-out;
        }

    20%, 60% {
        transform: rotate3d(0, 0, 1, 80deg);
        transform-origin: top left;
        -webkit-animation-timing-function: ease-in-out;
        animation-timing-function: ease-in-out;
        }

    40%, 80% {
        transform: rotate3d(0, 0, 1, 60deg);
        transform-origin: top left;
        -webkit-animation-timing-function: ease-in-out;
        animation-timing-function: ease-in-out;
        opacity: 1;
        }

    to {
        transform: translate3d(0, 700px, 0);
        opacity: 0;
        }
    }

@keyframes hinge {
    0% {
        transform-origin: top left;
        -webkit-animation-timing-function: ease-in-out;
        animation-timing-function: ease-in-out;
        }

    20%, 60% {
        transform: rotate3d(0, 0, 1, 80deg);
        transform-origin: top left;
        -webkit-animation-timing-function: ease-in-out;
        animation-timing-function: ease-in-out;
        }

    40%, 80% {
        transform: rotate3d(0, 0, 1, 60deg);
        transform-origin: top left;
        -webkit-animation-timing-function: ease-in-out;
        animation-timing-function: ease-in-out;
        opacity: 1;
        }

    to {
        transform: translate3d(0, 700px, 0);
        opacity: 0;
        }
    }

.hinge {
    -webkit-animation-name: hinge;
    animation-name: hinge;
    }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@-webkit-keyframes rollIn {
    from {
        opacity: 0;
        transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
        }

    to {
        opacity: 1;
        transform: none;
        }
    }

@keyframes rollIn {
    from {
        opacity: 0;
        transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
        }

    to {
        opacity: 1;
        transform: none;
        }
    }

.rollIn {
    -webkit-animation-name: rollIn;
    animation-name: rollIn;
    }

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */

@-webkit-keyframes rollOut {
    from {
        opacity: 1;
        }

    to {
        opacity: 0;
        transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
        }
    }

@keyframes rollOut {
    from {
        opacity: 1;
        }

    to {
        opacity: 0;
        transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
        }
    }

.rollOut {
    -webkit-animation-name: rollOut;
    animation-name: rollOut;
    }

@-webkit-keyframes zoomIn {
    from {
        opacity: 0;
        transform: scale3d(.3, .3, .3);
        }

    50% {
        opacity: 1;
        }
    }

@keyframes zoomIn {
    from {
        opacity: 0;
        transform: scale3d(.3, .3, .3);
        }

    50% {
        opacity: 1;
        }
    }

.zoomIn {
    -webkit-animation-name: zoomIn;
    animation-name: zoomIn;
    }

@-webkit-keyframes zoomInDown {
    from {
        opacity: 0;
        transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        }

    60% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        }
    }

@keyframes zoomInDown {
    from {
        opacity: 0;
        transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        }

    60% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        }
    }

.zoomInDown {
    -webkit-animation-name: zoomInDown;
    animation-name: zoomInDown;
    }

@-webkit-keyframes zoomInLeft {
    from {
        opacity: 0;
        transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        }

    60% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        }
    }

@keyframes zoomInLeft {
    from {
        opacity: 0;
        transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        }

    60% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        }
    }

.zoomInLeft {
    -webkit-animation-name: zoomInLeft;
    animation-name: zoomInLeft;
    }

@-webkit-keyframes zoomInRight {
    from {
        opacity: 0;
        transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        }

    60% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        }
    }

@keyframes zoomInRight {
    from {
        opacity: 0;
        transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        }

    60% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        }
    }

.zoomInRight {
    -webkit-animation-name: zoomInRight;
    animation-name: zoomInRight;
    }

@-webkit-keyframes zoomInUp {
    from {
        opacity: 0;
        transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        }

    60% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        }
    }

@keyframes zoomInUp {
    from {
        opacity: 0;
        transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        }

    60% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        }
    }

.zoomInUp {
    -webkit-animation-name: zoomInUp;
    animation-name: zoomInUp;
    }

@-webkit-keyframes zoomOut {
    from {
        opacity: 1;
        }

    50% {
        opacity: 0;
        transform: scale3d(.3, .3, .3);
        }

    to {
        opacity: 0;
        }
    }

@keyframes zoomOut {
    from {
        opacity: 1;
        }

    50% {
        opacity: 0;
        transform: scale3d(.3, .3, .3);
        }

    to {
        opacity: 0;
        }
    }

.zoomOut {
    -webkit-animation-name: zoomOut;
    animation-name: zoomOut;
    }

@-webkit-keyframes zoomOutDown {
    40% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        }

    to {
        opacity: 0;
        transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
        transform-origin: center bottom;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        }
    }

@keyframes zoomOutDown {
    40% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        }

    to {
        opacity: 0;
        transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0);
        transform-origin: center bottom;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        }
    }

.zoomOutDown {
    -webkit-animation-name: zoomOutDown;
    animation-name: zoomOutDown;
    }

@-webkit-keyframes zoomOutLeft {
    40% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
        }

    to {
        opacity: 0;
        transform: scale(.1) translate3d(-2000px, 0, 0);
        transform-origin: left center;
        }
    }

@keyframes zoomOutLeft {
    40% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0);
        }

    to {
        opacity: 0;
        transform: scale(.1) translate3d(-2000px, 0, 0);
        transform-origin: left center;
        }
    }

.zoomOutLeft {
    -webkit-animation-name: zoomOutLeft;
    animation-name: zoomOutLeft;
    }

@-webkit-keyframes zoomOutRight {
    40% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
        }

    to {
        opacity: 0;
        transform: scale(.1) translate3d(2000px, 0, 0);
        transform-origin: right center;
        }
    }

@keyframes zoomOutRight {
    40% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0);
        }

    to {
        opacity: 0;
        transform: scale(.1) translate3d(2000px, 0, 0);
        transform-origin: right center;
        }
    }

.zoomOutRight {
    -webkit-animation-name: zoomOutRight;
    animation-name: zoomOutRight;
    }

@-webkit-keyframes zoomOutUp {
    40% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        }

    to {
        opacity: 0;
        transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
        transform-origin: center bottom;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        }
    }

@keyframes zoomOutUp {
    40% {
        opacity: 1;
        transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
        }

    to {
        opacity: 0;
        transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0);
        transform-origin: center bottom;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
        }
    }

.zoomOutUp {
    -webkit-animation-name: zoomOutUp;
    animation-name: zoomOutUp;
    }

@-webkit-keyframes slideInDown {
    from {
        transform: translate3d(0, -100%, 0);
        visibility: visible;
        }

    to {
        transform: translate3d(0, 0, 0);
        }
    }

@keyframes slideInDown {
    from {
        transform: translate3d(0, -100%, 0);
        visibility: visible;
        }

    to {
        transform: translate3d(0, 0, 0);
        }
    }

.slideInDown {
    -webkit-animation-name: slideInDown;
    animation-name: slideInDown;
    }

@-webkit-keyframes slideInLeft {
    from {
        transform: translate3d(-100%, 0, 0);
        visibility: visible;
        }

    to {
        transform: translate3d(0, 0, 0);
        }
    }

@keyframes slideInLeft {
    from {
        transform: translate3d(-100%, 0, 0);
        visibility: visible;
        }

    to {
        transform: translate3d(0, 0, 0);
        }
    }

.slideInLeft {
    -webkit-animation-name: slideInLeft;
    animation-name: slideInLeft;
    }

@-webkit-keyframes slideInRight {
    from {
        transform: translate3d(100%, 0, 0);
        visibility: visible;
        }

    to {
        transform: translate3d(0, 0, 0);
        }
    }

@keyframes slideInRight {
    from {
        transform: translate3d(100%, 0, 0);
        visibility: visible;
        }

    to {
        transform: translate3d(0, 0, 0);
        }
    }

.slideInRight {
    -webkit-animation-name: slideInRight;
    animation-name: slideInRight;
    }

@-webkit-keyframes slideInUp {
    from {
        transform: translate3d(0, 100%, 0);
        visibility: visible;
        }

    to {
        transform: translate3d(0, 0, 0);
        }
    }

@keyframes slideInUp {
    from {
        transform: translate3d(0, 100%, 0);
        visibility: visible;
        }

    to {
        transform: translate3d(0, 0, 0);
        }
    }

.slideInUp {
    -webkit-animation-name: slideInUp;
    animation-name: slideInUp;
    }

@-webkit-keyframes slideOutDown {
    from {
        transform: translate3d(0, 0, 0);
        }

    to {
        visibility: hidden;
        transform: translate3d(0, 100%, 0);
        }
    }

@keyframes slideOutDown {
    from {
        transform: translate3d(0, 0, 0);
        }

    to {
        visibility: hidden;
        transform: translate3d(0, 100%, 0);
        }
    }

.slideOutDown {
    -webkit-animation-name: slideOutDown;
    animation-name: slideOutDown;
    }

@-webkit-keyframes slideOutLeft {
    from {
        transform: translate3d(0, 0, 0);
        }

    to {
        visibility: hidden;
        transform: translate3d(-100%, 0, 0);
        }
    }

@keyframes slideOutLeft {
    from {
        transform: translate3d(0, 0, 0);
        }

    to {
        visibility: hidden;
        transform: translate3d(-100%, 0, 0);
        }
    }

.slideOutLeft {
    -webkit-animation-name: slideOutLeft;
    animation-name: slideOutLeft;
    }

@-webkit-keyframes slideOutRight {
    from {
        transform: translate3d(0, 0, 0);
        }

    to {
        visibility: hidden;
        transform: translate3d(100%, 0, 0);
        }
    }

@keyframes slideOutRight {
    from {
        transform: translate3d(0, 0, 0);
        }

    to {
        visibility: hidden;
        transform: translate3d(100%, 0, 0);
        }
    }

.slideOutRight {
    -webkit-animation-name: slideOutRight;
    animation-name: slideOutRight;
    }

@-webkit-keyframes slideOutUp {
    from {
        transform: translate3d(0, 0, 0);
        }

    to {
        visibility: hidden;
        transform: translate3d(0, -100%, 0);
        }
    }

@keyframes slideOutUp {
    from {
        transform: translate3d(0, 0, 0);
        }

    to {
        visibility: hidden;
        transform: translate3d(0, -100%, 0);
        }
    }

.slideOutUp {
    -webkit-animation-name: slideOutUp;
    animation-name: slideOutUp;
    }
/*# sourceMappingURL=data:application/json;base64,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QUFFTDtJQUNJO1FBRUksbUNBQW1DO1FBQ25DLG9CQUFvQjtTQUNuQjs7SUFFTDtRQUVJLGdDQUFnQztTQUMvQjtLQUNKOztBQUVMO0lBQ0ksa0NBQWtDO0lBQ2xDLDBCQUEwQjtLQUN6Qjs7QUFFTDtJQUNJO1FBRUksZ0NBQWdDO1NBQy9COztJQUVMO1FBQ0ksbUJBQW1CO1FBRW5CLG1DQUFtQztTQUNsQztLQUNKOztBQUVMO0lBQ0k7UUFFSSxnQ0FBZ0M7U0FDL0I7O0lBRUw7UUFDSSxtQkFBbUI7UUFFbkIsbUNBQW1DO1NBQ2xDO0tBQ0o7O0FBRUw7SUFDSSxxQ0FBcUM7SUFDckMsNkJBQTZCO0tBQzVCOztBQUVMO0lBQ0k7UUFFSSxnQ0FBZ0M7U0FDL0I7O0lBRUw7UUFDSSxtQkFBbUI7UUFFbkIsb0NBQW9DO1NBQ25DO0tBQ0o7O0FBRUw7SUFDSTtRQUVJLGdDQUFnQztTQUMvQjs7SUFFTDtRQUNJLG1CQUFtQjtRQUVuQixvQ0FBb0M7U0FDbkM7S0FDSjs7QUFFTDtJQUNJLHFDQUFxQztJQUNyQyw2QkFBNkI7S0FDNUI7O0FBRUw7SUFDSTtRQUVJLGdDQUFnQztTQUMvQjs7SUFFTDtRQUNJLG1CQUFtQjtRQUVuQixtQ0FBbUM7U0FDbEM7S0FDSjs7QUFFTDtJQUNJO1FBRUksZ0NBQWdDO1NBQy9COztJQUVMO1FBQ0ksbUJBQW1CO1FBRW5CLG1DQUFtQztTQUNsQztLQUNKOztBQUVMO0lBQ0ksc0NBQXNDO0lBQ3RDLDhCQUE4QjtLQUM3Qjs7QUFFTDtJQUNJO1FBRUksZ0NBQWdDO1NBQy9COztJQUVMO1FBQ0ksbUJBQW1CO1FBRW5CLG9DQUFvQztTQUNuQztLQUNKOztBQUVMO0lBQ0k7UUFFSSxnQ0FBZ0M7U0FDL0I7O0lBRUw7UUFDSSxtQkFBbUI7UUFFbkIsb0NBQW9DO1NBQ25DO0tBQ0o7O0FBRUw7SUFDSSxtQ0FBbUM7SUFDbkMsMkJBQTJCO0tBQzFCIiwiZmlsZSI6ImFuaW1hdGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vKiFcbiAqIGFuaW1hdGUuY3NzIC1odHRwOi8vZGFuZWRlbi5tZS9hbmltYXRlXG4gKiBWZXJzaW9uIC0gMy41LjFcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSAtIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYgRGFuaWVsIEVkZW5cbiAqL1xuXG4uYW5pbWF0ZWQge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDFzO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbiAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xuICAgIH1cblxuLmFuaW1hdGVkLmluZmluaXRlIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xuICAgIH1cblxuLmFuaW1hdGVkLmhpbmdlIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcbiAgICB9XG5cbi5hbmltYXRlZC5mbGlwT3V0WCxcbi5hbmltYXRlZC5mbGlwT3V0WSxcbi5hbmltYXRlZC5ib3VuY2VJbixcbi5hbmltYXRlZC5ib3VuY2VPdXQge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAuNzVzO1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogLjc1cztcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2Uge1xuICAgIGZyb20sIDIwJSwgNTMlLCA4MCUsIHRvIHtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcbiAgICAgICAgfVxuXG4gICAgNDAlLCA0MyUge1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzBweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTMwcHgsIDApO1xuICAgICAgICB9XG5cbiAgICA3MCUge1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTVweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTE1cHgsIDApO1xuICAgICAgICB9XG5cbiAgICA5MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwtNHB4LDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsLTRweCwwKTtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyBib3VuY2Uge1xuICAgIGZyb20sIDIwJSwgNTMlLCA4MCUsIHRvIHtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKTtcbiAgICAgICAgfVxuXG4gICAgNDAlLCA0MyUge1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzBweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTMwcHgsIDApO1xuICAgICAgICB9XG5cbiAgICA3MCUge1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjc1NSwgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTVweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTE1cHgsIDApO1xuICAgICAgICB9XG5cbiAgICA5MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwtNHB4LDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsLTRweCwwKTtcbiAgICAgICAgfVxuICAgIH1cblxuLmJvdW5jZSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBib3VuY2U7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmxhc2gge1xuICAgIGZyb20sIDUwJSwgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAyNSUsIDc1JSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgZmxhc2gge1xuICAgIGZyb20sIDUwJSwgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAyNSUsIDc1JSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbi5mbGFzaCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmxhc2g7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGZsYXNoO1xuICAgIH1cblxuLyogb3JpZ2luYWxseSBhdXRob3JlZCBieSBOaWNrIFBldHRpdCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrcGV0dGl0L2dsaWRlICovXG5cbkAtd2Via2l0LWtleWZyYW1lcyBwdWxzZSB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgICAgIH1cblxuICAgIDUwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDUsIDEuMDUsIDEuMDUpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgMS4wNSwgMS4wNSk7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyBwdWxzZSB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgICAgIH1cblxuICAgIDUwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDUsIDEuMDUsIDEuMDUpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgMS4wNSwgMS4wNSk7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuLnB1bHNlIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBwdWxzZTtcbiAgICBhbmltYXRpb24tbmFtZTogcHVsc2U7XG4gICAgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcnViYmVyQmFuZCB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgICAgIH1cblxuICAgIDMwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMjUsIDAuNzUsIDEpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4yNSwgMC43NSwgMSk7XG4gICAgICAgIH1cblxuICAgIDQwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDAuNzUsIDEuMjUsIDEpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC43NSwgMS4yNSwgMSk7XG4gICAgICAgIH1cblxuICAgIDUwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMTUsIDAuODUsIDEpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xNSwgMC44NSwgMSk7XG4gICAgICAgIH1cblxuICAgIDY1JSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC45NSwgMS4wNSwgMSk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOTUsIDEuMDUsIDEpO1xuICAgICAgICB9XG5cbiAgICA3NSUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAuOTUsIDEpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgLjk1LCAxKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIHJ1YmJlckJhbmQge1xuICAgIGZyb20ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgICAgICB9XG5cbiAgICAzMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjI1LCAwLjc1LCAxKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMjUsIDAuNzUsIDEpO1xuICAgICAgICB9XG5cbiAgICA0MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgwLjc1LCAxLjI1LCAxKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKDAuNzUsIDEuMjUsIDEpO1xuICAgICAgICB9XG5cbiAgICA1MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjE1LCAwLjg1LCAxKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMTUsIDAuODUsIDEpO1xuICAgICAgICB9XG5cbiAgICA2NSUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguOTUsIDEuMDUsIDEpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjk1LCAxLjA1LCAxKTtcbiAgICAgICAgfVxuXG4gICAgNzUlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgLjk1LCAxKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDUsIC45NSwgMSk7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuLnJ1YmJlckJhbmQge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJ1YmJlckJhbmQ7XG4gICAgYW5pbWF0aW9uLW5hbWU6IHJ1YmJlckJhbmQ7XG4gICAgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2hha2Uge1xuICAgIGZyb20sIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICAxMCUsIDMwJSwgNTAlLCA3MCUsIDkwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICAyMCUsIDQwJSwgNjAlLCA4MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgc2hha2Uge1xuICAgIGZyb20sIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICAxMCUsIDMwJSwgNTAlLCA3MCUsIDkwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICAyMCUsIDQwJSwgNjAlLCA4MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbi5zaGFrZSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc2hha2U7XG4gICAgYW5pbWF0aW9uLW5hbWU6IHNoYWtlO1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGhlYWRTaGFrZSB7XG4gICAgMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgICB9XG5cbiAgICA2LjUlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTZweCkgcm90YXRlWSgtOWRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNnB4KSByb3RhdGVZKC05ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgMTguNSUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpIHJvdGF0ZVkoN2RlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg1cHgpIHJvdGF0ZVkoN2RlZyk7XG4gICAgICAgIH1cblxuICAgIDMxLjUlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTNweCkgcm90YXRlWSgtNWRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtM3B4KSByb3RhdGVZKC01ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgNDMuNSUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpIHJvdGF0ZVkoM2RlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpIHJvdGF0ZVkoM2RlZyk7XG4gICAgICAgIH1cblxuICAgIDUwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgaGVhZFNoYWtlIHtcbiAgICAwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICAgIH1cblxuICAgIDYuNSUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNnB4KSByb3RhdGVZKC05ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC02cHgpIHJvdGF0ZVkoLTlkZWcpO1xuICAgICAgICB9XG5cbiAgICAxOC41JSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCkgcm90YXRlWSg3ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCkgcm90YXRlWSg3ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgMzEuNSUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtM3B4KSByb3RhdGVZKC01ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zcHgpIHJvdGF0ZVkoLTVkZWcpO1xuICAgICAgICB9XG5cbiAgICA0My41JSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCkgcm90YXRlWSgzZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCkgcm90YXRlWSgzZGVnKTtcbiAgICAgICAgfVxuXG4gICAgNTAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgfVxuICAgIH1cblxuLmhlYWRTaGFrZSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBoZWFkU2hha2U7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGhlYWRTaGFrZTtcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzd2luZyB7XG4gICAgMjAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDE1ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAxNWRlZyk7XG4gICAgICAgIH1cblxuICAgIDQwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMTBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0xMGRlZyk7XG4gICAgICAgIH1cblxuICAgIDYwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA1ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA1ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgODAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNWRlZyk7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIHN3aW5nIHtcbiAgICAyMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMTVkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDE1ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgNDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0xMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTEwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgNjAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDVkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDVkZWcpO1xuICAgICAgICB9XG5cbiAgICA4MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTVkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbi5zd2luZyB7XG4gICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogc3dpbmc7XG4gICAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nO1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHRhZGEge1xuICAgIGZyb20ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgICAgICB9XG5cbiAgICAxMCUsIDIwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgICAgICAgfVxuXG4gICAgMzAlLCA1MCUsIDcwJSwgOTAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSkgcm90YXRlM2QoMCwgMCwgMSwgM2RlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKSByb3RhdGUzZCgwLCAwLCAxLCAzZGVnKTtcbiAgICAgICAgfVxuXG4gICAgNDAlLCA2MCUsIDgwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIHRhZGEge1xuICAgIGZyb20ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgICAgICB9XG5cbiAgICAxMCUsIDIwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgICAgICAgfVxuXG4gICAgMzAlLCA1MCUsIDcwJSwgOTAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSkgcm90YXRlM2QoMCwgMCwgMSwgM2RlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKSByb3RhdGUzZCgwLCAwLCAxLCAzZGVnKTtcbiAgICAgICAgfVxuXG4gICAgNDAlLCA2MCUsIDgwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4udGFkYSB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogdGFkYTtcbiAgICBhbmltYXRpb24tbmFtZTogdGFkYTtcbiAgICB9XG5cbi8qIG9yaWdpbmFsbHkgYXV0aG9yZWQgYnkgTmljayBQZXR0aXQgLSBodHRwczovL2dpdGh1Yi5jb20vbmlja3BldHRpdC9nbGlkZSAqL1xuXG5ALXdlYmtpdC1rZXlmcmFtZXMgd29iYmxlIHtcbiAgICBmcm9tIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgMTUlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjUlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtNWRlZyk7XG4gICAgICAgIH1cblxuICAgIDMwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDNkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgM2RlZyk7XG4gICAgICAgIH1cblxuICAgIDQ1JSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTUlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtM2RlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICAgICAgICB9XG5cbiAgICA2MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAyZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDJkZWcpO1xuICAgICAgICB9XG5cbiAgICA3NSUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMWRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMWRlZyk7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyB3b2JibGUge1xuICAgIGZyb20ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG5cbiAgICAxNSUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTVkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC01ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgMzAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgM2RlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAzZGVnKTtcbiAgICAgICAgfVxuXG4gICAgNDUlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0zZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTUlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtM2RlZyk7XG4gICAgICAgIH1cblxuICAgIDYwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDJkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMmRlZyk7XG4gICAgICAgIH1cblxuICAgIDc1JSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNSUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xZGVnKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4ud29iYmxlIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB3b2JibGU7XG4gICAgYW5pbWF0aW9uLW5hbWU6IHdvYmJsZTtcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBqZWxsbyB7XG4gICAgZnJvbSwgMTEuMSUsIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgMjIuMiUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTEyLjVkZWcpIHNrZXdZKC0xMi41ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiBza2V3WCgtMTIuNWRlZykgc2tld1koLTEyLjVkZWcpO1xuICAgICAgICB9XG5cbiAgICAzMy4zJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCg2LjI1ZGVnKSBza2V3WSg2LjI1ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiBza2V3WCg2LjI1ZGVnKSBza2V3WSg2LjI1ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgNDQuNCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTMuMTI1ZGVnKSBza2V3WSgtMy4xMjVkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKC0zLjEyNWRlZykgc2tld1koLTMuMTI1ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgNTUuNSUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goMS41NjI1ZGVnKSBza2V3WSgxLjU2MjVkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKDEuNTYyNWRlZykgc2tld1koMS41NjI1ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgNjYuNiUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTAuNzgxMjVkZWcpIHNrZXdZKC0wLjc4MTI1ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiBza2V3WCgtMC43ODEyNWRlZykgc2tld1koLTAuNzgxMjVkZWcpO1xuICAgICAgICB9XG5cbiAgICA3Ny43JSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgwLjM5MDYyNWRlZykgc2tld1koMC4zOTA2MjVkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKDAuMzkwNjI1ZGVnKSBza2V3WSgwLjM5MDYyNWRlZyk7XG4gICAgICAgIH1cblxuICAgIDg4LjglIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC0wLjE5NTMxMjVkZWcpIHNrZXdZKC0wLjE5NTMxMjVkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKC0wLjE5NTMxMjVkZWcpIHNrZXdZKC0wLjE5NTMxMjVkZWcpO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIGplbGxvIHtcbiAgICBmcm9tLCAxMS4xJSwgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG5cbiAgICAyMi4yJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtMTIuNWRlZykgc2tld1koLTEyLjVkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKC0xMi41ZGVnKSBza2V3WSgtMTIuNWRlZyk7XG4gICAgICAgIH1cblxuICAgIDMzLjMlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDYuMjVkZWcpIHNrZXdZKDYuMjVkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKDYuMjVkZWcpIHNrZXdZKDYuMjVkZWcpO1xuICAgICAgICB9XG5cbiAgICA0NC40JSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtMy4xMjVkZWcpIHNrZXdZKC0zLjEyNWRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogc2tld1goLTMuMTI1ZGVnKSBza2V3WSgtMy4xMjVkZWcpO1xuICAgICAgICB9XG5cbiAgICA1NS41JSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgxLjU2MjVkZWcpIHNrZXdZKDEuNTYyNWRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogc2tld1goMS41NjI1ZGVnKSBza2V3WSgxLjU2MjVkZWcpO1xuICAgICAgICB9XG5cbiAgICA2Ni42JSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBza2V3WCgtMC43ODEyNWRlZykgc2tld1koLTAuNzgxMjVkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKC0wLjc4MTI1ZGVnKSBza2V3WSgtMC43ODEyNWRlZyk7XG4gICAgICAgIH1cblxuICAgIDc3LjclIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKDAuMzkwNjI1ZGVnKSBza2V3WSgwLjM5MDYyNWRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogc2tld1goMC4zOTA2MjVkZWcpIHNrZXdZKDAuMzkwNjI1ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgODguOCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goLTAuMTk1MzEyNWRlZykgc2tld1koLTAuMTk1MzEyNWRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogc2tld1goLTAuMTk1MzEyNWRlZykgc2tld1koLTAuMTk1MzEyNWRlZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbi5qZWxsbyB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogamVsbG87XG4gICAgYW5pbWF0aW9uLW5hbWU6IGplbGxvO1xuICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VJbiB7XG4gICAgZnJvbSwgMjAlLCA0MCUsIDYwJSwgODAlLCB0byB7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICAgICAgfVxuXG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICAgICAgICB9XG5cbiAgICAyMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICAgICAgICB9XG5cbiAgICA0MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpO1xuICAgICAgICB9XG5cbiAgICA2MCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjAzLCAxLjAzLCAxLjAzKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDMsIDEuMDMsIDEuMDMpO1xuICAgICAgICB9XG5cbiAgICA4MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguOTcsIC45NywgLjk3KTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45NywgLjk3LCAuOTcpO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgYm91bmNlSW4ge1xuICAgIGZyb20sIDIwJSwgNDAlLCA2MCUsIDgwJSwgdG8ge1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgICAgIH1cblxuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgICAgICAgfVxuXG4gICAgMjAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgICAgICAgfVxuXG4gICAgNDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KTtcbiAgICAgICAgfVxuXG4gICAgNjAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4wMywgMS4wMywgMS4wMyk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjAzLCAxLjAzLCAxLjAzKTtcbiAgICAgICAgfVxuXG4gICAgODAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjk3LCAuOTcsIC45Nyk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOTcsIC45NywgLjk3KTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEsIDEsIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4uYm91bmNlSW4ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJbjtcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VJbkRvd24ge1xuICAgIGZyb20sIDYwJSwgNzUlLCA5MCUsIHRvIHtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICAgICAgICB9XG5cbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzAwMHB4LCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzAwMHB4LCAwKTtcbiAgICAgICAgfVxuXG4gICAgNjAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDI1cHgsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDI1cHgsIDApO1xuICAgICAgICB9XG5cbiAgICA3NSUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTtcbiAgICAgICAgfVxuXG4gICAgOTAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDVweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNXB4LCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUluRG93biB7XG4gICAgZnJvbSwgNjAlLCA3NSUsIDkwJSwgdG8ge1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgICAgIH1cblxuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMDAwcHgsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMDAwcHgsIDApO1xuICAgICAgICB9XG5cbiAgICA2MCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjVweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjVweCwgMCk7XG4gICAgICAgIH1cblxuICAgIDc1JSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICAgICAgICB9XG5cbiAgICA5MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNXB4LCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1cHgsIDApO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbi5ib3VuY2VJbkRvd24ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluRG93bjtcbiAgICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5Eb3duO1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZUluTGVmdCB7XG4gICAgZnJvbSwgNjAlLCA3NSUsIDkwJSwgdG8ge1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgICAgIH1cblxuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0zMDAwcHgsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0zMDAwcHgsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICA2MCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjVweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjVweCwgMCwgMCk7XG4gICAgICAgIH1cblxuICAgIDc1JSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICA5MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNXB4LCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1cHgsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgYm91bmNlSW5MZWZ0IHtcbiAgICBmcm9tLCA2MCUsIDc1JSwgOTAlLCB0byB7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICAgICAgfVxuXG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMwMDBweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMwMDBweCwgMCwgMCk7XG4gICAgICAgIH1cblxuICAgIDYwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyNXB4LCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyNXB4LCAwLCAwKTtcbiAgICAgICAgfVxuXG4gICAgNzUlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gICAgICAgIH1cblxuICAgIDkwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCg1cHgsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDVweCwgMCwgMCk7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuLmJvdW5jZUluTGVmdCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5MZWZ0O1xuICAgIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJbkxlZnQ7XG4gICAgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlSW5SaWdodCB7XG4gICAgZnJvbSwgNjAlLCA3NSUsIDkwJSwgdG8ge1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgICAgIH1cblxuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMzAwMHB4LCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMDAwcHgsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICA2MCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1cHgsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yNXB4LCAwLCAwKTtcbiAgICAgICAgfVxuXG4gICAgNzUlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICA5MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTVweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTVweCwgMCwgMCk7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyBib3VuY2VJblJpZ2h0IHtcbiAgICBmcm9tLCA2MCUsIDc1JSwgOTAlLCB0byB7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICAgICAgfVxuXG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMDAwcHgsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMwMDBweCwgMCwgMCk7XG4gICAgICAgIH1cblxuICAgIDYwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjVweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1cHgsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICA3NSUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gICAgICAgIH1cblxuICAgIDkwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNXB4LCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNXB4LCAwLCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4uYm91bmNlSW5SaWdodCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5SaWdodDtcbiAgICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5SaWdodDtcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VJblVwIHtcbiAgICBmcm9tLCA2MCUsIDc1JSwgOTAlLCB0byB7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgICAgICAgfVxuXG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzMDAwcHgsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDMwMDBweCwgMCk7XG4gICAgICAgIH1cblxuICAgIDYwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICAgICAgICB9XG5cbiAgICA3NSUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gICAgICAgIH1cblxuICAgIDkwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNXB4LCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNXB4LCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgYm91bmNlSW5VcCB7XG4gICAgZnJvbSwgNjAlLCA3NSUsIDkwJSwgdG8ge1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgICAgIH1cblxuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMzAwMHB4LCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzMDAwcHgsIDApO1xuICAgICAgICB9XG5cbiAgICA2MCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcbiAgICAgICAgfVxuXG4gICAgNzUlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwcHgsIDApO1xuICAgICAgICB9XG5cbiAgICA5MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTVweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTVweCwgMCk7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4uYm91bmNlSW5VcCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlSW5VcDtcbiAgICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5VcDtcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXQge1xuICAgIDIwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSk7XG4gICAgICAgIH1cblxuICAgIDUwJSwgNTUlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dCB7XG4gICAgMjAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOSwgLjksIC45KTtcbiAgICAgICAgfVxuXG4gICAgNTAlLCA1NSUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gICAgICAgIH1cbiAgICB9XG5cbi5ib3VuY2VPdXQge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dDtcbiAgICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0O1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dERvd24ge1xuICAgIDIwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgICAgICAgfVxuXG4gICAgNDAlLCA0NSUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dERvd24ge1xuICAgIDIwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKTtcbiAgICAgICAgfVxuXG4gICAgNDAlLCA0NSUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwcHgsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4uYm91bmNlT3V0RG93biB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogYm91bmNlT3V0RG93bjtcbiAgICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0RG93bjtcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXRMZWZ0IHtcbiAgICAyMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjBweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjBweCwgMCwgMCk7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dExlZnQge1xuICAgIDIwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMHB4LCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMHB4LCAwLCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbi5ib3VuY2VPdXRMZWZ0IHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRMZWZ0O1xuICAgIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRMZWZ0O1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZU91dFJpZ2h0IHtcbiAgICAyMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwcHgsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMHB4LCAwLCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dFJpZ2h0IHtcbiAgICAyMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwcHgsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMHB4LCAwLCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4uYm91bmNlT3V0UmlnaHQge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dFJpZ2h0O1xuICAgIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRSaWdodDtcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBib3VuY2VPdXRVcCB7XG4gICAgMjAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCk7XG4gICAgICAgIH1cblxuICAgIDQwJSwgNDUlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwcHgsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwcHgsIDApO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyBib3VuY2VPdXRVcCB7XG4gICAgMjAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTBweCwgMCk7XG4gICAgICAgIH1cblxuICAgIDQwJSwgNDUlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwcHgsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwcHgsIDApO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuLmJvdW5jZU91dFVwIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXRVcDtcbiAgICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0VXA7XG4gICAgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH1cblxuLmZhZGVJbiB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW47XG4gICAgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluRG93biB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgZmFkZUluRG93biB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbi5mYWRlSW5Eb3duIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duO1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbkRvd25CaWcge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyBmYWRlSW5Eb3duQmlnIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbi5mYWRlSW5Eb3duQmlnIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duQmlnO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duQmlnO1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJbkxlZnQge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbkxlZnQge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4uZmFkZUluTGVmdCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluTGVmdDtcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZUluTGVmdDtcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5MZWZ0QmlnIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgZmFkZUluTGVmdEJpZyB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4uZmFkZUluTGVmdEJpZyB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluTGVmdEJpZztcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZUluTGVmdEJpZztcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5SaWdodCB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblJpZ2h0IHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbi5mYWRlSW5SaWdodCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluUmlnaHQ7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0O1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJblJpZ2h0QmlnIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblJpZ2h0QmlnIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4uZmFkZUluUmlnaHRCaWcge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0QmlnO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5SaWdodEJpZztcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW5VcCB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblVwIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbi5mYWRlSW5VcCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZUluVXA7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblVwO1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVJblVwQmlnIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblVwQmlnIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4uZmFkZUluVXBCaWcge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVJblVwQmlnO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcEJpZztcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0IHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXQge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbi5mYWRlT3V0IHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0O1xuICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0O1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXREb3duIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgZmFkZU91dERvd24ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuLmZhZGVPdXREb3duIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0RG93bjtcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZU91dERvd247XG4gICAgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dERvd25CaWcge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgZmFkZU91dERvd25CaWcge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbi5mYWRlT3V0RG93bkJpZyB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dERvd25CaWc7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXREb3duQmlnO1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRMZWZ0IHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyBmYWRlT3V0TGVmdCB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbi5mYWRlT3V0TGVmdCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dExlZnQ7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRMZWZ0O1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRMZWZ0QmlnIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgZmFkZU91dExlZnRCaWcge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuLmZhZGVPdXRMZWZ0QmlnIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0TGVmdEJpZztcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZU91dExlZnRCaWc7XG4gICAgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFJpZ2h0IHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgZmFkZU91dFJpZ2h0IHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbi5mYWRlT3V0UmlnaHQge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodDtcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZU91dFJpZ2h0O1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRSaWdodEJpZyB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyBmYWRlT3V0UmlnaHRCaWcge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbi5mYWRlT3V0UmlnaHRCaWcge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodEJpZztcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZU91dFJpZ2h0QmlnO1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXRVcCB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgZmFkZU91dFVwIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuLmZhZGVPdXRVcCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmFkZU91dFVwO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXA7XG4gICAgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZU91dFVwQmlnIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgZmFkZU91dFVwQmlnIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbi5mYWRlT3V0VXBCaWcge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRVcEJpZztcbiAgICBhbmltYXRpb24tbmFtZTogZmFkZU91dFVwQmlnO1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXAge1xuICAgIGZyb20ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0zNjBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMzYwZGVnKTtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgICAgIH1cblxuICAgIDQwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlM2QoMCwgMCwgMTUwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xOTBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGUzZCgwLCAwLCAxNTBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE5MGRlZyk7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAgICAgICB9XG5cbiAgICA1MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZTNkKDAsIDAsIDE1MHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTcwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlM2QoMCwgMCwgMTUwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNzBkZWcpO1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgICAgIH1cblxuICAgIDgwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGUzZCguOTUsIC45NSwgLjk1KTtcbiAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGUzZCguOTUsIC45NSwgLjk1KTtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgZmxpcCB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTM2MGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0zNjBkZWcpO1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgICAgICAgfVxuXG4gICAgNDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGUzZCgwLCAwLCAxNTBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE5MGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZTNkKDAsIDAsIDE1MHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTkwZGVnKTtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gICAgICAgIH1cblxuICAgIDUwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgdHJhbnNsYXRlM2QoMCwgMCwgMTUwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0xNzBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGUzZCgwLCAwLCAxNTBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE3MGRlZyk7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICAgICAgfVxuXG4gICAgODAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKC45NSwgLjk1LCAuOTUpO1xuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKC45NSwgLjk1LCAuOTUpO1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICAgICAgfVxuICAgIH1cblxuLmFuaW1hdGVkLmZsaXAge1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsaXA7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGZsaXA7XG4gICAgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcEluWCB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCA5MGRlZyk7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuXG4gICAgNDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgICAgIH1cblxuICAgIDYwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgMTBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAxMGRlZyk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgIDgwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTVkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtNWRlZyk7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgZmxpcEluWCB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCA5MGRlZyk7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuXG4gICAgNDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgICAgIH1cblxuICAgIDYwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgMTBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAxMGRlZyk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgIDgwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTVkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtNWRlZyk7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgICAgIH1cbiAgICB9XG5cbi5mbGlwSW5YIHtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogZmxpcEluWDtcbiAgICBhbmltYXRpb24tbmFtZTogZmxpcEluWDtcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBmbGlwSW5ZIHtcbiAgICBmcm9tIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDkwZGVnKTtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICA0MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0yMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0yMGRlZyk7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICAgICAgfVxuXG4gICAgNjAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAxMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDEwZGVnKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgODAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtNWRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC01ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyBmbGlwSW5ZIHtcbiAgICBmcm9tIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDkwZGVnKTtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICA0MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0yMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0yMGRlZyk7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICAgICAgfVxuXG4gICAgNjAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAxMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDEwZGVnKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgODAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtNWRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC01ZGVnKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICAgICAgfVxuICAgIH1cblxuLmZsaXBJblkge1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBmbGlwSW5ZO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBmbGlwSW5ZO1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIGZsaXBPdXRYIHtcbiAgICBmcm9tIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgICAgIH1cblxuICAgIDMwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTIwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTIwZGVnKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIGZsaXBPdXRYIHtcbiAgICBmcm9tIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgICAgIH1cblxuICAgIDMwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTIwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgLTIwZGVnKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDkwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMSwgMCwgMCwgOTBkZWcpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4uZmxpcE91dFgge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsaXBPdXRYO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBmbGlwT3V0WDtcbiAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgZmxpcE91dFkge1xuICAgIGZyb20ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICAgICAgfVxuXG4gICAgMzAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTVkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTVkZWcpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgZmxpcE91dFkge1xuICAgIGZyb20ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KTtcbiAgICAgICAgfVxuXG4gICAgMzAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTVkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTVkZWcpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbi5mbGlwT3V0WSB7XG4gICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGZsaXBPdXRZO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBmbGlwT3V0WTtcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBsaWdodFNwZWVkSW4ge1xuICAgIGZyb20ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgc2tld1goLTMwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgtMzBkZWcpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICA2MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goMjBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKDIwZGVnKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgODAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC01ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiBza2V3WCgtNWRlZyk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyBsaWdodFNwZWVkSW4ge1xuICAgIGZyb20ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgc2tld1goLTMwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgtMzBkZWcpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICA2MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tld1goMjBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHNrZXdYKDIwZGVnKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgODAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNrZXdYKC01ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiBza2V3WCgtNWRlZyk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH1cblxuLmxpZ2h0U3BlZWRJbiB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogbGlnaHRTcGVlZEluO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkSW47XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBsaWdodFNwZWVkT3V0IHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgc2tld1goMzBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKDMwZGVnKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyBsaWdodFNwZWVkT3V0IHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgc2tld1goMzBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHNrZXdYKDMwZGVnKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuLmxpZ2h0U3BlZWRPdXQge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRPdXQ7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRPdXQ7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTIwMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTIwMGRlZyk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyByb3RhdGVJbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMjAwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMjAwZGVnKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4ucm90YXRlSW4ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluO1xuICAgIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbjtcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVJbkRvd25MZWZ0IHtcbiAgICBmcm9tIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgcm90YXRlSW5Eb3duTGVmdCB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4ucm90YXRlSW5Eb3duTGVmdCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duTGVmdDtcbiAgICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duTGVmdDtcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVJbkRvd25SaWdodCB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgcm90YXRlSW5Eb3duUmlnaHQge1xuICAgIGZyb20ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4ucm90YXRlSW5Eb3duUmlnaHQge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluRG93blJpZ2h0O1xuICAgIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbkRvd25SaWdodDtcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVJblVwTGVmdCB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyByb3RhdGVJblVwTGVmdCB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH1cblxuLnJvdGF0ZUluVXBMZWZ0IHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVJblVwTGVmdDtcbiAgICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5VcExlZnQ7XG4gICAgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlSW5VcFJpZ2h0IHtcbiAgICBmcm9tIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC05MGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTkwZGVnKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZUluVXBSaWdodCB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtOTBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC05MGRlZyk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuICAgIH1cblxuLnJvdGF0ZUluVXBSaWdodCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlSW5VcFJpZ2h0O1xuICAgIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJblVwUmlnaHQ7XG4gICAgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0IHtcbiAgICBmcm9tIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMjAwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAyMDBkZWcpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dCB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDIwMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMjAwZGVnKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuLnJvdGF0ZU91dCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlT3V0O1xuICAgIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXQ7XG4gICAgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm90YXRlT3V0RG93bkxlZnQge1xuICAgIGZyb20ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgcm90YXRlT3V0RG93bkxlZnQge1xuICAgIGZyb20ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbi5yb3RhdGVPdXREb3duTGVmdCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm90YXRlT3V0RG93bkxlZnQ7XG4gICAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dERvd25MZWZ0O1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dERvd25SaWdodCB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyByb3RhdGVPdXREb3duUmlnaHQge1xuICAgIGZyb20ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC00NWRlZyk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbi5yb3RhdGVPdXREb3duUmlnaHQge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dERvd25SaWdodDtcbiAgICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0RG93blJpZ2h0O1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZU91dFVwTGVmdCB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dFVwTGVmdCB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4ucm90YXRlT3V0VXBMZWZ0IHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXRVcExlZnQ7XG4gICAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwTGVmdDtcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyByb3RhdGVPdXRVcFJpZ2h0IHtcbiAgICBmcm9tIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgOTBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDkwZGVnKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyByb3RhdGVPdXRVcFJpZ2h0IHtcbiAgICBmcm9tIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgOTBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDkwZGVnKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuLnJvdGF0ZU91dFVwUmlnaHQge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwUmlnaHQ7XG4gICAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwUmlnaHQ7XG4gICAgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgaGluZ2Uge1xuICAgIDAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgICAgICB9XG5cbiAgICAyMCUsIDYwJSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA4MGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgODBkZWcpO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgICAgIH1cblxuICAgIDQwJSwgODAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDYwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA2MGRlZyk7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNzAwcHgsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDcwMHB4LCAwKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyBoaW5nZSB7XG4gICAgMCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgICAgIH1cblxuICAgIDIwJSwgNjAlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDgwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA4MGRlZyk7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICAgICAgfVxuXG4gICAgNDAlLCA4MCUge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNjBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDYwZGVnKTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0O1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA3MDBweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNzAwcHgsIDApO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4uaGluZ2Uge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IGhpbmdlO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBoaW5nZTtcbiAgICB9XG5cbi8qIG9yaWdpbmFsbHkgYXV0aG9yZWQgYnkgTmljayBQZXR0aXQgLSBodHRwczovL2dpdGh1Yi5jb20vbmlja3BldHRpdC9nbGlkZSAqL1xuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm9sbEluIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMTIwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTEyMGRlZyk7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyByb2xsSW4ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIC0xMjBkZWcpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMTIwZGVnKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4ucm9sbEluIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiByb2xsSW47XG4gICAgYW5pbWF0aW9uLW5hbWU6IHJvbGxJbjtcbiAgICB9XG5cbi8qIG9yaWdpbmFsbHkgYXV0aG9yZWQgYnkgTmljayBQZXR0aXQgLSBodHRwczovL2dpdGh1Yi5jb20vbmlja3BldHRpdC9nbGlkZSAqL1xuXG5ALXdlYmtpdC1rZXlmcmFtZXMgcm9sbE91dCB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDEyMGRlZyk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMTIwZGVnKTtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyByb2xsT3V0IHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMTIwZGVnKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAxMjBkZWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4ucm9sbE91dCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogcm9sbE91dDtcbiAgICBhbmltYXRpb24tbmFtZTogcm9sbE91dDtcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyB6b29tSW4ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICAgICAgICB9XG5cbiAgICA1MCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIHpvb21JbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gICAgICAgIH1cblxuICAgIDUwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cbiAgICB9XG5cbi56b29tSW4ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21JbjtcbiAgICBhbmltYXRpb24tbmFtZTogem9vbUluO1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21JbkRvd24ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAtMTAwMHB4LCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0xMDAwcHgsIDApO1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgICAgIH1cblxuICAgIDYwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIDYwcHgsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgem9vbUluRG93biB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0xMDAwcHgsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgLTEwMDBweCwgMCk7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICAgICAgfVxuXG4gICAgNjAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuLnpvb21JbkRvd24ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21JbkRvd247XG4gICAgYW5pbWF0aW9uLW5hbWU6IHpvb21JbkRvd247XG4gICAgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgem9vbUluTGVmdCB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKC0xMDAwcHgsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoLTEwMDBweCwgMCwgMCk7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICAgICAgfVxuXG4gICAgNjAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyB6b29tSW5MZWZ0IHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoLTEwMDBweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgtMTAwMHB4LCAwLCAwKTtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgICAgICB9XG5cbiAgICA2MCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4uem9vbUluTGVmdCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbUluTGVmdDtcbiAgICBhbmltYXRpb24tbmFtZTogem9vbUluTGVmdDtcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyB6b29tSW5SaWdodCB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDEwMDBweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgxMDAwcHgsIDAsIDApO1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgICAgIH1cblxuICAgIDYwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyB6b29tSW5SaWdodCB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDEwMDBweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgxMDAwcHgsIDAsIDApO1xuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gICAgICAgIH1cblxuICAgIDYwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKTtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuLnpvb21JblJpZ2h0IHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB6b29tSW5SaWdodDtcbiAgICBhbmltYXRpb24tbmFtZTogem9vbUluUmlnaHQ7XG4gICAgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgem9vbUluVXAge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAxMDAwcHgsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgMTAwMHB4LCAwKTtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgICAgICB9XG5cbiAgICA2MCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgem9vbUluVXAge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAxMDAwcHgsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgMTAwMHB4LCAwKTtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgICAgICB9XG5cbiAgICA2MCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbi56b29tSW5VcCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbUluVXA7XG4gICAgYW5pbWF0aW9uLW5hbWU6IHpvb21JblVwO1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21PdXQge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICA1MCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgem9vbU91dCB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgIDUwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMyk7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuLnpvb21PdXQge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21PdXQ7XG4gICAgYW5pbWF0aW9uLW5hbWU6IHpvb21PdXQ7XG4gICAgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgem9vbU91dERvd24ge1xuICAgIDQwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIC02MHB4LCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIC02MHB4LCAwKTtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbkBrZXlmcmFtZXMgem9vbU91dERvd24ge1xuICAgIDQwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIC02MHB4LCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIC02MHB4LCAwKTtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbi56b29tT3V0RG93biB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbU91dERvd247XG4gICAgYW5pbWF0aW9uLW5hbWU6IHpvb21PdXREb3duO1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21PdXRMZWZ0IHtcbiAgICA0MCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCg0MnB4LCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDQycHgsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSguMSkgdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoLjEpIHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyB6b29tT3V0TGVmdCB7XG4gICAgNDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoNDJweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCg0MnB4LCAwLCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLjEpIHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKC4xKSB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbi56b29tT3V0TGVmdCB7XG4gICAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogem9vbU91dExlZnQ7XG4gICAgYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRMZWZ0O1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21PdXRSaWdodCB7XG4gICAgNDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoLTQycHgsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoLTQycHgsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSguMSkgdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSguMSkgdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyB6b29tT3V0UmlnaHQge1xuICAgIDQwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKC00MnB4LCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKC00MnB4LCAwLCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLjEpIHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoLjEpIHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgY2VudGVyO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbi56b29tT3V0UmlnaHQge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRSaWdodDtcbiAgICBhbmltYXRpb24tbmFtZTogem9vbU91dFJpZ2h0O1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHpvb21PdXRVcCB7XG4gICAgNDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyB6b29tT3V0VXAge1xuICAgIDQwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIDYwcHgsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyMCwgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbi56b29tT3V0VXAge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRVcDtcbiAgICBhbmltYXRpb24tbmFtZTogem9vbU91dFVwO1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlSW5Eb3duIHtcbiAgICBmcm9tIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIHNsaWRlSW5Eb3duIHtcbiAgICBmcm9tIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4uc2xpZGVJbkRvd24ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5Eb3duO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluRG93bjtcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZUluTGVmdCB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyBzbGlkZUluTGVmdCB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuLnNsaWRlSW5MZWZ0IHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZUluTGVmdDtcbiAgICBhbmltYXRpb24tbmFtZTogc2xpZGVJbkxlZnQ7XG4gICAgfVxuXG5ALXdlYmtpdC1rZXlmcmFtZXMgc2xpZGVJblJpZ2h0IHtcbiAgICBmcm9tIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyBzbGlkZUluUmlnaHQge1xuICAgIGZyb20ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4uc2xpZGVJblJpZ2h0IHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZUluUmlnaHQ7XG4gICAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5SaWdodDtcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZUluVXAge1xuICAgIGZyb20ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIHNsaWRlSW5VcCB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbi5zbGlkZUluVXAge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5VcDtcbiAgICBhbmltYXRpb24tbmFtZTogc2xpZGVJblVwO1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlT3V0RG93biB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyBzbGlkZU91dERvd24ge1xuICAgIGZyb20ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbi5zbGlkZU91dERvd24ge1xuICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0RG93bjtcbiAgICBhbmltYXRpb24tbmFtZTogc2xpZGVPdXREb3duO1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlT3V0TGVmdCB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIHNsaWRlT3V0TGVmdCB7XG4gICAgZnJvbSB7XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgfVxuXG4gICAgdG8ge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4uc2xpZGVPdXRMZWZ0IHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dExlZnQ7XG4gICAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0TGVmdDtcbiAgICB9XG5cbkAtd2Via2l0LWtleWZyYW1lcyBzbGlkZU91dFJpZ2h0IHtcbiAgICBmcm9tIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG5Aa2V5ZnJhbWVzIHNsaWRlT3V0UmlnaHQge1xuICAgIGZyb20ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbi5zbGlkZU91dFJpZ2h0IHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFJpZ2h0O1xuICAgIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFJpZ2h0O1xuICAgIH1cblxuQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlT3V0VXAge1xuICAgIGZyb20ge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIH1cblxuICAgIHRvIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuQGtleWZyYW1lcyBzbGlkZU91dFVwIHtcbiAgICBmcm9tIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbi5zbGlkZU91dFVwIHtcbiAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFVwO1xuICAgIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFVwO1xuICAgIH1cbiJdfQ== */