button,
hr,
input {
    overflow: visible
}

audio,
canvas,
progress,
video {
    display: inline-block
}

progress,
sub,
sup {
    vertical-align: baseline
}

html {
    font-family: sans-serif;
    line-height: 1.15;
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%
}

body {
    margin: 0
}

menu,
article,
aside,
details,
footer,
header,
nav,
section {
    display: block
}

h1 {
    font-size: 2em;
    margin: .67em 0
}

figcaption,
figure,
main {
    display: block
}

figure {
    margin: 1em 40px
}

hr {
    box-sizing: content-box;
    height: 0
}

code,
kbd,
pre,
samp {
    font-family: monospace, monospace;
    font-size: 1em
}

a {
    background-color: transparent;
    -webkit-text-decoration-skip: objects
}

a:active,
a:hover {
    outline-width: 0
}

abbr[title] {
    border-bottom: none;
    text-decoration: underline;
    text-decoration: underline dotted
}

b,
strong {
    font-weight: bolder
}

dfn {
    font-style: italic
}

mark {
    background-color: #ff0;
    color: #000
}

small {
    font-size: 80%
}

sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative
}

sub {
    bottom: -.25em
}

sup {
    top: -.5em
}

audio:not([controls]) {
    display: none;
    height: 0
}

img {
    border-style: none
}

svg:not(:root) {
    overflow: hidden
}

button,
input,
optgroup,
select,
textarea {
    font-family: sans-serif;
    font-size: 100%;
    line-height: 1.15;
    margin: 0
}

button,
select {
    text-transform: none
}

[type=submit],
[type=reset],
button,
html [type=button] {
    -webkit-appearance: button
}

[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner,
button::-moz-focus-inner {
    border-style: none;
    padding: 0
}

[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring,
button:-moz-focusring {
    outline: ButtonText dotted 1px
}

fieldset {
    border: 1px solid silver;
    margin: 0 2px;
    padding: .35em .625em .75em
}

legend {
    box-sizing: border-box;
    color: inherit;
    display: table;
    max-width: 100%;
    padding: 0;
    white-space: normal
}

textarea {
    overflow: auto
}

[type=checkbox],
[type=radio] {
    box-sizing: border-box;
    padding: 0
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
    height: auto
}

[type=search] {
    -webkit-appearance: textfield;
    outline-offset: -2px
}

[type=search]::-webkit-search-cancel-button,
[type=search]::-webkit-search-decoration {
    -webkit-appearance: none
}

::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit
}

summary {
    display: list-item
}

[hidden],
template {
    display: none
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    font-family: "Josefin Sans", sans-serif;
    font-weight: normal;
    letter-spacing: 0.1em;
    line-height: 1.7;
    word-wrap: break-word
}

:root {
    font-size: 16px;
    -webkit-text-size-adjust: 100%
}

@media screen and (max-width: 767px) {
    :root {
        font-size: 14px
    }
}

img {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    max-width: 100%;
    display: block;
    vertical-align: bottom
}

a {
    text-decoration: none;
    display: block;
    transition: 0.7s ease;
    color: inherit
}

li {
    list-style-type: none
}

*:before,
*:after {
    width: 0;
    height: 0
}

section {
    padding-top: 30px;
    padding-bottom: 30px
}

input,
button,
textarea,
select {
    margin: 0;
    padding: 0;
    background: none;
    border: none;
    border-radius: 0;
    outline: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none
}

main {
    background-image: url(../img/common/bg.jpg);
    background-position: 0 0
}

header,
footer,
main {
    min-width: 970px
}

@media screen and (max-width: 767px) {

    header,
    footer,
    main {
        min-width: initial
    }
}

/*!
 * animate.css -http://daneden.me/animate
 * Version - 3.5.2
 * Licensed under the MIT license - http://opensource.org/licenses/MIT
 *
 * Copyright (c) 2017 Daniel Eden
 */
.animated {
    animation-duration: 1.5s;
    animation-fill-mode: both
}

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

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

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

@keyframes bounce {

    0%,
    20%,
    53%,
    80%,
    to {
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        transform: translateZ(0)
    }

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

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

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

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

@keyframes flash {

    0%,
    50%,
    to {
        opacity: 1
    }

    25%,
    75% {
        opacity: 0
    }
}

.flash {
    animation-name: flash
}

@keyframes pulse {
    0% {
        transform: scaleX(1)
    }

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

    to {
        transform: scaleX(1)
    }
}

.pulse {
    animation-name: pulse
}

@keyframes rubberBand {
    0% {
        transform: scaleX(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(0.95, 1.05, 1)
    }

    75% {
        transform: scale3d(1.05, 0.95, 1)
    }

    to {
        transform: scaleX(1)
    }
}

.rubberBand {
    animation-name: rubberBand
}

@keyframes shake {

    0%,
    to {
        transform: translateZ(0)
    }

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

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

.shake {
    animation-name: shake
}

@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 {
    animation-timing-function: ease-in-out;
    animation-name: headShake
}

@keyframes swing {
    20% {
        transform: rotate(15deg)
    }

    40% {
        transform: rotate(-10deg)
    }

    60% {
        transform: rotate(5deg)
    }

    80% {
        transform: rotate(-5deg)
    }

    to {
        transform: rotate(0deg)
    }
}

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

@keyframes tada {
    0% {
        transform: scaleX(1)
    }

    10%,
    20% {
        transform: scale3d(0.9, 0.9, 0.9) rotate(-3deg)
    }

    30%,
    50%,
    70%,
    90% {
        transform: scale3d(1.1, 1.1, 1.1) rotate(3deg)
    }

    40%,
    60%,
    80% {
        transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg)
    }

    to {
        transform: scaleX(1)
    }
}

.tada {
    animation-name: tada
}

@keyframes wobble {
    0% {
        transform: none
    }

    15% {
        transform: translate3d(-25%, 0, 0) rotate(-5deg)
    }

    30% {
        transform: translate3d(20%, 0, 0) rotate(3deg)
    }

    45% {
        transform: translate3d(-15%, 0, 0) rotate(-3deg)
    }

    60% {
        transform: translate3d(10%, 0, 0) rotate(2deg)
    }

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

    to {
        transform: none
    }
}

.wobble {
    animation-name: wobble
}

@keyframes jello {

    0%,
    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.39062deg) skewY(0.39062deg)
    }

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

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

@keyframes bounceIn {

    0%,
    20%,
    40%,
    60%,
    80%,
    to {
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    }

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

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

    40% {
        transform: scale3d(0.9, 0.9, 0.9)
    }

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

    80% {
        transform: scale3d(0.97, 0.97, 0.97)
    }

    to {
        opacity: 1;
        transform: scaleX(1)
    }
}

.bounceIn {
    animation-name: bounceIn
}

@keyframes bounceInDown {

    0%,
    60%,
    75%,
    90%,
    to {
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    }

    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 {
    animation-name: bounceInDown
}

@keyframes bounceInLeft {

    0%,
    60%,
    75%,
    90%,
    to {
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    }

    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 {
    animation-name: bounceInLeft
}

@keyframes bounceInRight {

    0%,
    60%,
    75%,
    90%,
    to {
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    }

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

.bounceInRight {
    animation-name: bounceInRight
}

@keyframes bounceInUp {

    0%,
    60%,
    75%,
    90%,
    to {
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1)
    }

    0% {
        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: translateZ(0)
    }
}

.bounceInUp {
    animation-name: bounceInUp
}

@keyframes bounceOut {
    20% {
        transform: scale3d(0.9, 0.9, 0.9)
    }

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

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

.bounceOut {
    animation-name: bounceOut
}

@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 {
    animation-name: bounceOutDown
}

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

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

.bounceOutLeft {
    animation-name: bounceOutLeft
}

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

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

.bounceOutRight {
    animation-name: bounceOutRight
}

@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 {
    animation-name: bounceOutUp
}

@keyframes fadeIn {
    0% {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

.fadeIn {
    animation-name: fadeIn
}

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

    to {
        opacity: 1;
        transform: none
    }
}

.fadeInDown {
    animation-name: fadeInDown
}

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

    to {
        opacity: 1;
        transform: none
    }
}

.fadeInDownBig {
    animation-name: fadeInDownBig
}

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

    to {
        opacity: 1;
        transform: none
    }
}

.fadeInLeft {
    animation-name: fadeInLeft
}

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

    to {
        opacity: 1;
        transform: none
    }
}

.fadeInLeftBig {
    animation-name: fadeInLeftBig
}

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

    to {
        opacity: 1;
        transform: none
    }
}

.fadeInRight {
    animation-name: fadeInRight
}

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

    to {
        opacity: 1;
        transform: none
    }
}

.fadeInRightBig {
    animation-name: fadeInRightBig
}

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

    to {
        opacity: 1;
        transform: none
    }
}

.fadeInUp {
    animation-name: fadeInUp
}

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

    to {
        opacity: 1;
        transform: none
    }
}

.fadeInUpBig {
    animation-name: fadeInUpBig
}

@keyframes fadeOut {
    0% {
        opacity: 1
    }

    to {
        opacity: 0
    }
}

.fadeOut {
    animation-name: fadeOut
}

@keyframes fadeOutDown {
    0% {
        opacity: 1
    }

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

.fadeOutDown {
    animation-name: fadeOutDown
}

@keyframes fadeOutDownBig {
    0% {
        opacity: 1
    }

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

.fadeOutDownBig {
    animation-name: fadeOutDownBig
}

@keyframes fadeOutLeft {
    0% {
        opacity: 1
    }

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

.fadeOutLeft {
    animation-name: fadeOutLeft
}

@keyframes fadeOutLeftBig {
    0% {
        opacity: 1
    }

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

.fadeOutLeftBig {
    animation-name: fadeOutLeftBig
}

@keyframes fadeOutRight {
    0% {
        opacity: 1
    }

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

.fadeOutRight {
    animation-name: fadeOutRight
}

@keyframes fadeOutRightBig {
    0% {
        opacity: 1
    }

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

.fadeOutRightBig {
    animation-name: fadeOutRightBig
}

@keyframes fadeOutUp {
    0% {
        opacity: 1
    }

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

.fadeOutUp {
    animation-name: fadeOutUp
}

@keyframes fadeOutUpBig {
    0% {
        opacity: 1
    }

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

.fadeOutUpBig {
    animation-name: fadeOutUpBig
}

@keyframes flip {
    0% {
        transform: perspective(400px) rotateY(-1turn);
        animation-timing-function: ease-out
    }

    40% {
        transform: perspective(400px) translateZ(150px) rotateY(-190deg);
        animation-timing-function: ease-out
    }

    50% {
        transform: perspective(400px) translateZ(150px) rotateY(-170deg);
        animation-timing-function: ease-in
    }

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

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

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

@keyframes flipInX {
    0% {
        transform: perspective(400px) rotateX(90deg);
        animation-timing-function: ease-in;
        opacity: 0
    }

    40% {
        transform: perspective(400px) rotateX(-20deg);
        animation-timing-function: ease-in
    }

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

    80% {
        transform: perspective(400px) rotateX(-5deg)
    }

    to {
        transform: perspective(400px)
    }
}

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

@keyframes flipInY {
    0% {
        transform: perspective(400px) rotateY(90deg);
        animation-timing-function: ease-in;
        opacity: 0
    }

    40% {
        transform: perspective(400px) rotateY(-20deg);
        animation-timing-function: ease-in
    }

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

    80% {
        transform: perspective(400px) rotateY(-5deg)
    }

    to {
        transform: perspective(400px)
    }
}

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

@keyframes flipOutX {
    0% {
        transform: perspective(400px)
    }

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

    to {
        transform: perspective(400px) rotateX(90deg);
        opacity: 0
    }
}

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

@keyframes flipOutY {
    0% {
        transform: perspective(400px)
    }

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

    to {
        transform: perspective(400px) rotateY(90deg);
        opacity: 0
    }
}

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

@keyframes lightSpeedIn {
    0% {
        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 {
    animation-name: lightSpeedIn;
    animation-timing-function: ease-out
}

@keyframes lightSpeedOut {
    0% {
        opacity: 1
    }

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

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

@keyframes rotateIn {
    0% {
        transform-origin: center;
        transform: rotate(-200deg);
        opacity: 0
    }

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

.rotateIn {
    animation-name: rotateIn
}

@keyframes rotateInDownLeft {
    0% {
        transform-origin: left bottom;
        transform: rotate(-45deg);
        opacity: 0
    }

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

.rotateInDownLeft {
    animation-name: rotateInDownLeft
}

@keyframes rotateInDownRight {
    0% {
        transform-origin: right bottom;
        transform: rotate(45deg);
        opacity: 0
    }

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

.rotateInDownRight {
    animation-name: rotateInDownRight
}

@keyframes rotateInUpLeft {
    0% {
        transform-origin: left bottom;
        transform: rotate(45deg);
        opacity: 0
    }

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

.rotateInUpLeft {
    animation-name: rotateInUpLeft
}

@keyframes rotateInUpRight {
    0% {
        transform-origin: right bottom;
        transform: rotate(-90deg);
        opacity: 0
    }

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

.rotateInUpRight {
    animation-name: rotateInUpRight
}

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

    to {
        transform-origin: center;
        transform: rotate(200deg);
        opacity: 0
    }
}

.rotateOut {
    animation-name: rotateOut
}

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

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

.rotateOutDownLeft {
    animation-name: rotateOutDownLeft
}

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

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

.rotateOutDownRight {
    animation-name: rotateOutDownRight
}

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

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

.rotateOutUpLeft {
    animation-name: rotateOutUpLeft
}

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

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

.rotateOutUpRight {
    animation-name: rotateOutUpRight
}

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

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

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

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

.hinge {
    animation-name: hinge
}

@keyframes jackInTheBox {
    0% {
        opacity: 0;
        transform: scale(0.1) rotate(30deg);
        transform-origin: center bottom
    }

    50% {
        transform: rotate(-10deg)
    }

    70% {
        transform: rotate(3deg)
    }

    to {
        opacity: 1;
        transform: scale(1)
    }
}

.jackInTheBox {
    animation-name: jackInTheBox
}

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

    to {
        opacity: 1;
        transform: none
    }
}

.rollIn {
    animation-name: rollIn
}

@keyframes rollOut {
    0% {
        opacity: 1
    }

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

.rollOut {
    animation-name: rollOut
}

@keyframes zoomIn {
    0% {
        opacity: 0;
        transform: scale3d(0.3, 0.3, 0.3)
    }

    50% {
        opacity: 1
    }
}

.zoomIn {
    animation-name: zoomIn
}

@keyframes zoomInDown {
    0% {
        opacity: 0;
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
    }

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

.zoomInDown {
    animation-name: zoomInDown
}

@keyframes zoomInLeft {
    0% {
        opacity: 0;
        transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
    }

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

.zoomInLeft {
    animation-name: zoomInLeft
}

@keyframes zoomInRight {
    0% {
        opacity: 0;
        transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
    }

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

.zoomInRight {
    animation-name: zoomInRight
}

@keyframes zoomInUp {
    0% {
        opacity: 0;
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
    }

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

.zoomInUp {
    animation-name: zoomInUp
}

@keyframes zoomOut {
    0% {
        opacity: 1
    }

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

    to {
        opacity: 0
    }
}

.zoomOut {
    animation-name: zoomOut
}

@keyframes zoomOutDown {
    40% {
        opacity: 1;
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
    }

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

.zoomOutDown {
    animation-name: zoomOutDown
}

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

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

.zoomOutLeft {
    animation-name: zoomOutLeft
}

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

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

.zoomOutRight {
    animation-name: zoomOutRight
}

@keyframes zoomOutUp {
    40% {
        opacity: 1;
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)
    }

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

.zoomOutUp {
    animation-name: zoomOutUp
}

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

    to {
        transform: translateZ(0)
    }
}

.slideInDown {
    animation-name: slideInDown
}

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

    to {
        transform: translateZ(0)
    }
}

.slideInLeft {
    animation-name: slideInLeft
}

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

    to {
        transform: translateZ(0)
    }
}

.slideInRight {
    animation-name: slideInRight
}

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

    to {
        transform: translateZ(0)
    }
}

.slideInUp {
    animation-name: slideInUp
}

@keyframes slideOutDown {
    0% {
        transform: translateZ(0)
    }

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

.slideOutDown {
    animation-name: slideOutDown
}

@keyframes slideOutLeft {
    0% {
        transform: translateZ(0)
    }

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

.slideOutLeft {
    animation-name: slideOutLeft
}

@keyframes slideOutRight {
    0% {
        transform: translateZ(0)
    }

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

.slideOutRight {
    animation-name: slideOutRight
}

@keyframes slideOutUp {
    0% {
        transform: translateZ(0)
    }

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

.slideOutUp {
    animation-name: slideOutUp
}

.cf:after {
    content: "";
    display: block;
    clear: both
}

.onPc {
    display: block !important
}

.onSp {
    display: none !important
}

@media screen and (max-width: 767px) {
    .onPc {
        display: none !important
    }

    .onSp {
        display: block !important
    }
}

.visible {
    visibility: visible !important;
    opacity: 1
}

.hidden {
    visibility: hidden !important;
    opacity: 0
}

.dN {
    display: none
}

.opc0 {
    opacity: 0
}

br.md {
    display: inline
}

br.sm {
    display: none
}

br.xs {
    display: none
}

@media screen and (max-width: 991px) {
    br.md {
        display: none
    }

    br.sm {
        display: inline
    }

    br.xs {
        display: none
    }
}

@media screen and (max-width: 767px) {
    br.md {
        display: none
    }

    br.sm {
        display: none
    }

    br.xs {
        display: inline
    }
}

header {
    position: relative
}

header .logo {
    position: absolute;
    width: 490px;
    height: 119px;
    z-index: 10;
    margin: auto;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0
}

.home header {
    background-color: #e3dfe0
}

.home header .logo {
    width: 630px;
    height: 153px
}

.home header .slider-on-item {
    position: absolute;
    width: 380px;
    bottom: 100px;
    left: 0
}

.home header .slider-on-item img {
    width: 100%
}

@media screen and (max-width: 767px) {
    header {
        position: relative
    }

    header .logo {
        display: none
    }

    header .keyv-item-sakura-1 {
        position: absolute;
        bottom: 85vw;
        left: 3vw;
        width: 20vw
    }

    header .keyv-item-sakura-2 {
        position: absolute;
        bottom: 20vw;
        right: 0;
        width: 50vw
    }
}

footer {
    background-color: #eee7e5
}

footer .footer-items {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-pack: justify;
    justify-content: space-between;
    padding: 2em 0
}

footer .footer-items img {
    width: 100%
}

footer .footer-items a {
    margin: 0 auto
}

footer .footer-items a:hover {
    opacity: .5
}

footer .footer-items__logo {
    text-align: center;
    width: 19%
}

footer .footer-items__privacy {
    color: #0c2b60
}

footer .footer-items__logo-group {
    text-align: center;
    width: 23%
}

footer .copyright {
    color: #fff;
    text-align: center;
    background-color: #0c2b60;
    padding: 0.5em 0
}

@media screen and (max-width: 767px) {
    footer .footer-items {
        -ms-flex-direction: column;
        flex-direction: column
    }

    footer .footer-items img {
        width: 100%
    }

    footer .footer-items a {
        margin: 0 auto
    }

    footer .footer-items a:hover {
        opacity: .5
    }

    footer .footer-items__logo {
        text-align: center;
        width: 55%
    }

    footer .footer-items__logo a {
        width: 70%
    }

    footer .footer-items__privacy {
        -ms-flex-order: 3;
        order: 3;
        margin-top: 20px
    }

    footer .footer-items__logo-group {
        margin-top: 20px;
        width: 60%
    }

    footer .footer-items__logo-group a {
        width: 80%
    }
}

.js--caret-active {
    transform: rotate(180deg)
}

.animate_slow {
    animation-duration: 3s
}

.animate_fast {
    animation-duration: 1s
}

.animation_delay {
    animation-delay: .5s
}

.animation_delay-2s {
    animation-delay: 2s
}

.animation_delay-1s {
    animation-delay: 1s
}

.animation_delay-1_5s {
    animation-delay: 1.5s
}

.animation_delay-1_7s {
    animation-delay: 1.7s
}

.animete_infinite {
    animation-iteration-count: infinite
}

.animate_alternate {
    animation-direction: alternate
}

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

    to {
        opacity: 1;
        transform: none
    }
}

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

    to {
        opacity: 1;
        transform: none
    }
}

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

    to {
        opacity: 1;
        transform: none
    }
}

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

    to {
        opacity: 1;
        transform: none
    }
}

@keyframes shake {

    0%,
    to {
        transform: translateZ(0)
    }

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

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

.container {
    width: 970px;
    margin: 0 auto;
    padding-left: 15px;
    padding-right: 15px
}

.container-inner {
    width: 740px;
    margin: 0 auto
}

.container-inner--small {
    width: 650px;
    margin: 0 auto
}

@media screen and (max-width: 767px) {
    .container {
        width: 100%
    }

    .container-inner {
        width: 100%
    }

    .container-inner--small {
        width: 100%
    }
}

.btn {
    display: inline-block;
    text-align: center;
    border-width: 1px;
    border-style: solid
}

.btn:hover {
    cursor: pointer
}

.btn-wrapper {
    margin-top: 50px;
    text-align: center
}

.btn-m {
    width: 200px;
    padding: 1em 0.7em 0.7em;
    font-size: calc(0.625rem * 1.6)
}

.btn-primary {
    color: #0c2b60;
    border-color: #0c2b60;
    background-color: #fff
}

.btn-primary:hover {
    color: #fff;
    background-color: #0c2b60
}

/* .home .slider {
    max-width: 1980px;
    min-width: 800px;
    margin: 0 auto
}

.home .slider .slick-slide {
    height: 600px;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat
}

@media screen and (max-width: 767px) {
    .home .slider {
        min-width: initial;
        height: calc(100vh - 50px);
        margin-top: 65px
    }

    .home .slider .slick-slide {
        height: calc(100vh - 50px)
    }
} */

.home .slider {
    max-width: 1980px;
    min-width: 800px;
    margin: 0 auto;
}

.home .slider .slick-slide {
    height: 500px;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

@media screen and (max-width: 767px) {
    .home .slider {
        min-width: initial;
        height: calc(100vh - 50px);
        margin-top: 65px;
    }

    .home .slider .slick-slide {
        height: calc(100vh - 50px);
    }
}

.g-nav {
    z-index: 10;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 55px;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    background-color: rgba(12, 43, 96, 0.7);
    min-width: 970px
}

.g-nav-list__wrap {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -ms-flex-align: center;
    align-items: center
}

.g-nav-list {
    padding: 0.5em 0
}

.g-nav-list a {
    font-size: calc(0.625rem * 1.4);
    color: #fff;
    line-height: 1.2;
    position: relative
}

.g-nav-list a:after {
    content: "";
    opacity: 0.8;
    height: 1px;
    background-color: #f19ec2;
    width: 0;
    position: absolute;
    bottom: -2px;
    left: -0.25rem;
    transition: 1s ease
}

.g-nav-list a:hover:after {
    width: calc(100% + 0.5rem)
}

.g-nav-list--external {
    padding-left: 10px;
    padding-right: 10px;
    background-color: #ffd0e4;
}

.g-nav-list--external a:after {
    content: none
}

.g-nav-list--external a:hover {
    color: #f19ec2
}

@media screen and (max-width: 767px) {
    .g-nav {
        z-index: 100;
        position: fixed;
        top: 0;
        left: 0;
        bottom: initial;
        height: 65px;
        background-color: rgba(255, 255, 255, 0.85);
        min-width: initial
    }

    .g-nav>.container {
        height: 65px
    }

    .g-nav-list__wrap {
        background-color: rgba(12, 43, 96, 0.8);
        -ms-flex-direction: column;
        flex-direction: column;
        position: absolute;
        width: 100%;
        top: 65px;
        left: 0;
        display: none
    }

    .g-nav-list {
        width: 100%;
        text-align: center;
        padding: 0
    }

    .g-nav-list a {
        padding: 1.2em 0;
        font-size: calc(0.625rem * 1.7)
    }

    .g-nav-list--external a:after {
        content: none
    }

    .g-nav-list--external a:hover {
        color: #f19ec2
    }
}

.nav-sp-items {
    display: none
}

@media screen and (max-width: 767px) {
    .nav-sp-items {
        display: -ms-flexbox;
        display: flex;
        -ms-flex-align: center;
        align-items: center;
        -ms-flex-pack: justify;
        justify-content: space-between;
        height: 65px
    }

    .nav-sp-items__reservation-text {
        font-size: calc(0.625rem * 1.3);
        letter-spacing: -0.05em
    }

    .nav-sp-items__logo {
        width: 170px
    }

    .nav-sp-items__nav-trigger {
        width: 40px;
        height: 40px
    }

    .nav-trigger-icon {
        height: 25px;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -ms-flex-align: center;
        align-items: center;
        width: 25px;
        margin: auto
    }

    .nav-trigger-icon span {
        display: block;
        width: 100%;
        height: 3px;
        background-color: #0c2b60;
        transition: 0.7s ease
    }

    .nav-trigger-text {
        font-size: calc(0.625rem * 1.3);
        height: 15px;
        text-align: center
    }
}

.g-nav.active .nav-trigger-icon span:nth-of-type(1) {
    transform: rotate(-45deg) translate(-25%, 190%)
}

.g-nav.active .nav-trigger-icon span:nth-of-type(2) {
    opacity: 0
}

.g-nav.active .nav-trigger-icon span:nth-of-type(3) {
    transform: rotate(45deg) translate(-25%, -180%)
}

.g-nav--fix {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%
}

.overlay {
    height: 100vh;
    width: 100vw;
    background-color: rgba(0, 0, 0, 0.5);
    position: fixed;
    top: 0;
    left: 0;
    display: none;
    z-index: 15
}

.overlay--active {
    display: block
}

.sticky-footer-item {
    display: none
}

@media screen and (max-width: 767px) {
    .sticky-footer-item {
        display: block;
        position: fixed;
        left: 0;
        bottom: 0;
        width: 100%;
        background-color: rgba(12, 43, 96, 0.7);
        color: #fff;
        z-index: 10;
        transition: 0.4s ease
    }

    .sticky-footer-item a {
        display: -ms-flexbox;
        display: flex;
        -ms-flex-align: center;
        align-items: center;
        -ms-flex-pack: justify;
        justify-content: space-between;
        height: 50px
    }

    .sticky-footer-item .sticky-footer-item__sub {
        display: -ms-flexbox;
        display: flex;
        -ms-flex-align: center;
        align-items: center;
        -ms-flex-pack: center;
        justify-content: center
    }

    .sticky-footer-item .sticky-footer-item__sub i {
        font-size: calc(0.625rem * 3.5)
    }

    .sticky-footer-item .sticky-footer-item__sub-text {
        padding-left: 4px
    }

    .sticky-footer-item .sticky-footer-item__main {
        font-size: calc(0.625rem * 2.8);
        letter-spacing: 0.1em
    }

    .sticky-footer-item--show {
        bottom: 0
    }

    .sticky-footer-item--hide {
        bottom: -50px
    }
}

.slider {
    max-width: 1980px;
    min-width: 800px;
    margin: 0 auto
}

.slider .slick-slide {
    height: 400px;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat
}

@media screen and (max-width: 767px) {
    .slider {
        min-width: initial;
        height: 0;
        margin-top: 65px
    }

    .slider .slick-slide {
        height: 0
    }
}

.archive .pagination {
    font-size: calc(0.625rem * 2);
    margin-top: 50px
}

.archive .pagination ul {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: center;
    justify-content: center
}

.archive .pagination li span,
.archive .pagination li a {
    padding: 0.3em 1em;
    display: inline-block
}

.archive .pagination li span {
    background-color: #f19ec2;
    color: #fff
}

.archive .pagination li a {
    background-color: #fff;
    color: #f19ec2
}

.archive .pagination li a:hover {
    background-color: #f19ec2;
    color: #fff
}

.archive .pagination li+li {
    margin-left: 0.5em
}

.section-title {
    text-align: center;
    color: #0c2b60;
    font-size: calc(0.625rem * 2.8);
    padding: 0 1rem;
    margin-bottom: 40px
}

.section-title__text {
    position: relative;
    padding: 0.5rem 4.7rem 0;
    display: inline-block
}

.section-title__text:before {
    content: "";
    width: 100%;
    height: 1px;
    background: linear-gradient(to right, #0c2b60 0%, #0c2b60 10%, rgba(255, 255, 255, 0) 10%, rgba(255, 255, 255, 0) 90%, #0c2b60 90%, #0c2b60 100%);
    position: absolute;
    margin: auto;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1
}

@media screen and (max-width: 767px) {
    .section-title__text {
        padding: 0.5rem 2rem 0
    }
}

.section-text {
    color: #0c2b60;
    font-size: calc(0.625rem * 1.8)
}

@media screen and (max-width: 767px) {
    .section-text {
        font-size: calc(0.625rem * 1.6)
    }
}

.home main {
    padding-bottom: 120px;
    overflow-x: hidden
}

@media screen and (max-width: 767px) {
    .home main {
        padding-bottom: 30px
    }
}

.about .section-title {
    margin-bottom: 0
}

.about .about-attention {
    display: block;
    font-weight: bold;
    font-size: calc(0.625rem * 2.5);
    margin-bottom: 20px
}

.about .section-text {
    text-align: center;
    line-height: 2.4
}

@media screen and (max-width: 767px) {
    .about .section-text {
        line-height: 2.4
    }
}

.beginner ul:not(:last-child) {
    margin-bottom: 30px
}

.beginner li {
    list-style-type: disc;
    list-style-position: inside;
    text-indent: -1.3em;
    padding-left: 1.5em;
    padding-bottom: 10px
}

.beginner .attention {
    font-weight: bold;
    padding-bottom: 0.7em;
    font-size: calc(0.625rem * 1.8)
}

.beginner .check-lists {
    background-color: #fff;
    padding: 10px;
    border: 1px solid
}

.beginner .check-lists li {
    list-style-type: "□"
}

.beginner .check-lists .check-item {
    text-decoration: underline;
    font-weight: bold
}

.menu-grid {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap
}

.menu-grid .hidden,
.menu-grid .visible {
    transition: 0.7s ease
}

.menu-grid .menu-grid-item {
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat
}

.menu-grid .menu-grid-main {
    margin-right: 20px
}

.menu-grid .menu-grid-item--xlarge {
    width: 570px;
    height: 555px
}

.menu-grid .menu-grid-other-1 {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-direction: column;
    flex-direction: column;
    -ms-flex-pack: justify
        /* justify-content: space-between */
}

.menu-grid .menu-grid-item--small {
    width: 350px;
    height: 268px
}

.menu-grid .menu-grid-sub {
    margin: 20px 0;
    width: 100%;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
    justify-content: space-between
}

.menu-grid .menu-grid-item--medium {
    width: 460px;
    height: 360px
}

.menu-grid .menu-grid-item--rectangle {
    width: 600px;
    height: 134px
}

.menu-grid .menu-grid-other-2 {
    width: 100%;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
    justify-content: space-between
}

.menu-grid .menu-grid-item.menu-grid-item--xsmall {
    width: 265px;
    height: 305px
}

.menu-grid .menu-grid-item.menu-grid-item--large {
    width: 655px;
    height: 305px
}

.menu-grid .menu-grid-item-contents {
    padding: 20px;
    height: 100%;
    color: #fff;
    transition: 0.7s ease
}

.menu-grid .menu-grid-item-contents-inner {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -ms-flex-direction: column;
    flex-direction: column;
    height: 100%;
    padding: 5px
}


.menu-grid .menu-grid-item-contents-inner2 {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
    /* justify-content: space-between; */
    -ms-flex-direction: column;
    flex-direction: column;
    height: 100%;
    padding: 5px
}

.menu-grid .menu-grid-item__title {
    transition: 1s ease;
    font-size: calc(0.625rem * 2.4)
}

.menu-grid .menu-grid-item__title2 {
    margin-bottom: 10px
}

.menu-grid .menu-grid-item__title span {
    display: inline-block;
    background-color: rgba(12, 43, 96, 0.5);
    padding: 5px 20px;
    transition: 0.7s ease
}

.menu-grid .menu-grid-item__title2 span {
    display: inline-block;
    background-color: rgba(12, 43, 96, 0.5);
    padding: 5px 20px;
    transition: 0.7s ease
}

.menu-grid .menu-grid-item__title .menu-grid-item__title--small {
    font-size: calc(0.625rem * 1.4);
    padding: 0;
    background-color: transparent
}

.menu-grid .menu-grid-item__text {
    font-size: calc(0.625rem * 1.45);
    letter-spacing: 0
}

.menu-grid .menu-grid-item__text2 {
    font-size: calc(0.625rem * 1.45);
    letter-spacing: 0;
    color: #0c2b60
}

.menu-grid .menu-grid-item__price .time {
    width: 2em;
    display: inline-block;
    text-align: right
}

.menu-grid .menu-grid-item__price .price {
    font-size: calc(0.625rem * 1.8);
    padding-left: 0.5em
}

.menu-grid .menu-grid-item--2 .menu-grid-item__title {
    /* transform: translate(13%, 350%) */
    transform: translate(2%, 146%)
}

.menu-grid .menu-grid-item--3 .menu-grid-item__title {
    /* transform: translate(24%, 350%) */
    transform: translate(2%, 146%)
}

.menu-grid .menu-grid-item--5 .menu-grid-item__title {
    /* transform: translate(44%, 540%) */
    transform: translate(36%, 540%)
}

.menu-grid .menu-grid-item--7 * {
    visibility: visible !important
}

.menu-grid .menu-grid-item--7 .menu-grid-item__text {
    padding-top: 10px
}

.menu-grid .menu-grid-item--7 .menu-grid-item__text,
.menu-grid .menu-grid-item--7 .menu-grid-item-attention-price-box {
    opacity: 1 !important;
    color: rgba(12, 43, 96, 0.3)
}

.menu-grid .menu-grid-item--7:hover .menu-grid-item__text,
.menu-grid .menu-grid-item--7:hover .menu-grid-item-attention-price-box {
    color: #fff
}

@media screen and (max-width: 767px) {

    .menu-grid .menu-grid-item--7 .menu-grid-item__text,
    .menu-grid .menu-grid-item--7 .menu-grid-item-attention-price-box {
        color: #fff
    }

    .menu-grid .menu-grid-item__title2 {
        padding: 0 10px
    }

    .menu-grid .menu-grid-item__text2 {
        font-size: calc(0.625rem * 1.45);
        letter-spacing: 0;
        color: #0c2b60;
        width: 100vw;
        padding: 0 10px 32px 10px
    }
}

.menu-grid .menu-grid--active .menu-grid-item-contents {
    background-color: rgba(12, 43, 96, 0.5)
}

.menu-grid .menu-grid--active .menu-grid-item__title {
    transform: translate(0)
}

.menu-grid .menu-grid--active .menu-grid-item__title span {
    display: inline-block;
    background-color: transparent;
    padding: 0
}

.menu-grid .menu-grid--active .menu-grid-item__title2 span {
    display: inline-block;
    background-color: transparent;
    padding: 0
}

.menu-grid .menu-grid-item-special-block {
    padding: 0 50px
}

.menu-grid .menu-grid-item-special-block__text {
    font-size: calc(0.625rem * 1.6);
    margin-bottom: 15px
}

.menu-grid .menu-grid-item-special-block-list {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
    justify-content: space-between
}

.menu-grid .menu-grid-item-special-block-list-item {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    align-items: center;
    width: 100%
}

.menu-grid .menu-grid-item-special-block-list-item img {
    width: 60%
}

.menu-grid .menu-grid-item-special-block-list-item__text {
    font-size: calc(0.625rem * 1.8);
    margin-left: -5px;
    width: calc(40% + 10px)
}

.menu-grid .menu-grid-item-special-block-list-item__text.item--moon {
    color: #0c2b60
}

.menu-grid .menu-grid-item-special-block-list-item__text.item--snow {
    color: #6aaac0
}

.menu-grid .menu-grid-item-special-block-list-item__text.item--flower {
    color: #a77599
}

.menu-grid .menu-grid-item-attention-price-box {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-pack: justify;
    justify-content: space-between
}

.menu-price .menu-attention {
    margin-top: 30px;
    font-size: calc(0.625rem * 1.8);
    text-align: right;
    color: #0c2b60
}

.menu-price .menu-attention span {
    display: inline-block
}

.menu-price .menu-link {
    text-align: right;
    color: #0c2b60;
    margin-top: 15px
}

.menu-price .menu-link a {
    display: inline-block;
    border-bottom: 1px solid #0c2b60;
    line-height: 1.2
}

.menu-price .menu-link a i {
    padding-right: 5px;
    transition: 0.7s ease
}

.menu-price .menu-link a:hover {
    opacity: .5
}

.menu-price .menu-link a:hover i {
    padding-right: 0
}

@media screen and (max-width: 767px) {
    .menu-grid-wrapper>.container {
        padding: 0
    }

    .menu-grid {
        -ms-flex-direction: column;
        flex-direction: column
    }

    .menu-grid .menu-grid-main {
        margin-right: 0
    }

    .menu-grid .menu-grid-item {
        position: relative;
        margin-top: 100px
    }

    .menu-grid .menu-grid-item--xlarge {
        width: 100%;
        height: 0;
        padding-top: 97.3684%;
        margin-top: 0
    }

    .menu-grid .menu-grid-item--xlarge .menu-grid-item-contents {
        top: 0;
        left: 0
    }

    .menu-grid .menu-grid-other-1 {
        -ms-flex-order: 3;
        order: 3;
        display: contents
    }

    .menu-grid-item.menu-grid-item--7 {
        margin-bottom: 32px
    }

    .menu-grid .menu-grid-item--small {
        width: 75%;
        padding-top: calc(76.5714% + 10%);
        height: 0
    }

    .menu-grid .menu-grid-item--small:nth-of-type(1) .menu-grid-item-contents {
        top: 50px;
        right: -22vw
    }

    .menu-grid .menu-grid-item--small:nth-of-type(2) {
        margin-left: calc(100% - 75%)
    }

    .menu-grid .menu-grid-item--small:nth-of-type(2) .menu-grid-item-contents {
        top: 50px;
        left: -22vw
    }

    .menu-grid .menu-grid-sub {
        -ms-flex-order: 2;
        order: 2;
        -ms-flex-direction: column;
        flex-direction: column;
        margin: 0
    }

    .menu-grid .menu-grid-item--medium {
        width: 85%;
        padding-top: calc(78.2608% + 0%);
        height: 0
    }

    .menu-grid .menu-grid-item--medium:nth-of-type(1) .menu-grid-item-contents {
        top: 50px;
        right: -12vw
    }

    .menu-grid .menu-grid-item--medium:nth-of-type(2) {
        margin-left: calc(100% - 85%)
    }

    .menu-grid .menu-grid-item--medium:nth-of-type(2) .menu-grid-item-contents {
        top: 50px;
        left: -12vw
    }


    .menu-grid .menu-grid-other-2 {
        -ms-flex-order: 4;
        order: 4;
        -ms-flex-direction: column;
        flex-direction: column
    }

    .menu-grid .menu-grid-item.menu-grid-item--xsmall {
        width: 65%;
        padding-top: calc(85.0943%);
        height: 0
    }

    .menu-grid .menu-grid-item.menu-grid-item--xsmall .menu-grid-item-contents {
        top: 50px;
        right: -32vw
    }

    .menu-grid .menu-grid-item.menu-grid-item--large {
        width: 100%;
        height: 0;
        padding-top: calc(46.5648% + 55%)
    }

    .menu-grid .menu-grid-item.menu-grid-item--large .menu-grid-item-contents {
        top: 0;
        left: 0
    }

    .menu-grid .menu-grid-item-contents {
        padding: 0;
        position: absolute;
        width: 100%
    }

    .menu-grid .menu-grid-item-contents-inner {
        background-color: rgba(12, 43, 96, 0.5)
    }

    .menu-grid .menu-grid-item__title {
        font-size: calc(0.625rem * 2.2);
        transform: translate(0) !important
    }

    .menu-grid .menu-grid-item__title span {
        color: #FFF;
        background-color: transparent;
        padding: 0
    }

    .menu-grid .menu-grid-item__title2 span {
        color: #FFF;
        /* background-color: transparent; */
        padding: 5px 20px
    }

    .menu-grid .menu-grid-item__text {
        font-size: calc(0.625rem * 1.4);
        letter-spacing: 0
    }

    .menu-grid .menu-grid-item__text2 {
        font-size: calc(0.625rem * 1.45);
        letter-spacing: 0;
        color: #0c2b60;
        max-width: 370px
    }

    .menu-grid .menu-grid-item-special-block {
        padding-right: 5px;
        padding-left: 10px
    }

    .menu-grid .menu-grid-item-special-block__text {
        font-size: calc(0.625rem * 1.6);
        margin-bottom: 15px
    }

    .menu-grid .menu-grid-item-special-block-list {
        display: -ms-flexbox;
        display: flex;
        -ms-flex-pack: justify;
        justify-content: space-between
    }

    .menu-grid .menu-grid-item-special-block-list-item {
        display: -ms-flexbox;
        display: flex;
        -ms-flex-align: center;
        align-items: center
    }

    .menu-grid .menu-grid-item-special-block-list-item img {
        width: 60%
    }

    .menu-grid .menu-grid-item-special-block-list-item__text {
        font-size: calc(0.625rem * 1.6);
        width: auto
    }

    .menu-grid .menu-grid-item-special-block-list-item__text.item--moon {
        color: #0c2b60
    }

    .menu-grid .menu-grid-item-special-block-list-item__text.item--snow {
        color: #6aaac0
    }

    .menu-grid .menu-grid-item-special-block-list-item__text.item--flower {
        color: #a77599
    }

    .menu-grid .menu-grid-item-attention-price-box {
        -ms-flex-direction: column;
        flex-direction: column
    }

    .menu-grid .menu-grid-item-attention-price-box .menu-grid-item__attention-box {
        width: 100%;
        padding-bottom: 20px
    }

    .menu-grid .menu-grid-item-attention-price-box .menu-grid-item__attention-box .attention {
        font-size: calc(0.625rem * 1.2)
    }

    .menu-grid .menu-grid-item-attention-price-box .menu-grid-item__price-box {
        width: 100%
    }

    .menu-price .menu-attention span {
        border-bottom: none;
        position: relative;
        padding-top: 100px
    }

    .menu-price .menu-link {
        text-align: right;
        color: #0c2b60;
        margin-top: 15px
    }

    .menu-price .menu-link a {
        display: inline-block;
        border-bottom: 1px solid #0c2b60;
        line-height: 1.2
    }

    .menu-price .menu-link a i {
        padding-right: 5px;
        transition: 0.7s ease
    }

    .menu-price .menu-link a:hover {
        opacity: .5
    }

    .menu-price .menu-link a:hover i {
        padding-right: 0
    }
}

.dear-patrons .section-title--dear-patrons span {
    display: inline-block;
    background-color: rgba(12, 43, 96, 0.5);
    padding: 5px 20px;
    color: #fff;
    padding: 3px 20px;
    font-size: calc(0.625rem * 2)
}

.dear-patrons .lead {
    padding-top: 20px;
    color: #0c2b60
}

@media screen and (max-width: 767px) {
    .dear-patrons .lead {
        text-align: left
    }
}

.dear-patrons .small-title {
    padding-top: 50px;
    color: #f19ec2;
    font-size: calc(0.625rem * 1.8)
}

@media screen and (max-width: 767px) {
    .dear-patrons .small-title {
        padding-top: 30px
    }
}

.dear-patrons .list__item {
    list-style-type: decimal;
    list-style-position: inside;
    color: #0c2b60;
    text-indent: -1em;
    padding-left: 1em;
    margin-top: 0.5em
}

.dear-patrons .message {
    text-align: right;
    padding-top: 30px;
    color: #0c2b60
}

.gift-voucher .gift-voucher-contents-box {
    height: 640px;
    position: relative;
    background-image: url("../img/home/gift-voucher-bg-2.png");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat
}

@media screen and (max-width: 767px) {
    .gift-voucher .gift-voucher-contents-box {
        background-image: none;
        background-color: #fff;
        height: auto
    }
}

.gift-voucher .gift-voucher-contents {
    padding: 75px 80px;
    height: 100%;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -ms-flex-align: center;
    align-items: center
}

@media screen and (max-width: 767px) {
    .gift-voucher .gift-voucher-contents {
        padding: 15px;
        -ms-flex-direction: column;
        flex-direction: column
    }
}

.gift-voucher .gift-voucher-contents__img .wrap {
    width: 280px;
    box-shadow: 0 0 20px #888
}

@media screen and (max-width: 767px) {
    .gift-voucher .gift-voucher-contents__img .wrap {
        width: 100%;
        box-shadow: 0 0 10px #888
    }
}

.gift-voucher .gift-voucher-contents__img .wrap+.wrap {
    margin-top: 35px
}

@media screen and (max-width: 767px) {
    .gift-voucher .gift-voucher-contents__img .wrap+.wrap {
        margin-top: 20px
    }
}

.gift-voucher .gift-voucher-contents__main {
    padding-left: 30px
}

@media screen and (max-width: 767px) {
    .gift-voucher .gift-voucher-contents__main {
        padding-left: 0;
        padding-top: 40px
    }
}

.gift-voucher .gift-voucher-contents__main .gift-voucher-contents__main-heading {
    display: block;
    color: #0c2b60;
    font-size: calc(0.625rem * 2)
}

.gift-voucher .gift-voucher-contents__main .list {
    color: #0c2b60;
    margin-top: 20px
}

.gift-voucher .gift-voucher-contents__main .list__item {
    list-style-type: disc;
    list-style-position: inside;
    text-indent: -1em;
    padding-left: 1em
}

.gift-voucher .gift-voucher-contents__main b {
    margin-top: 30px;
    display: inline-block;
    padding: 10px 40px;
    color: #fff;
    background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, #787c9c 25%, #787c9c 50%, #787c9c 75%, rgba(255, 255, 255, 0) 100%)
}

.member-card .member-card-contents-box {
    height: 605px;
    position: relative;
    background-image: url("../img/home/member-card-bg.png");
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat
}

@media screen and (max-width: 767px) {
    .member-card .member-card-contents-box {
        background-image: none;
        background-color: #fff;
        height: auto
    }
}

.member-card .member-card-contents {
    padding: 40px 70px;
    height: 100%
}

@media screen and (max-width: 767px) {
    .member-card .member-card-contents {
        padding: 15px
    }
}

.member-card .img-wrap {
    width: 35%;
    margin: 0 auto
}

@media screen and (max-width: 767px) {
    .member-card .img-wrap {
        width: 100%
    }
}

.member-card .member-card-contents-heading {
    color: #f19ec2;
    font-size: calc(0.625rem * 1.8);
    margin-top: 10px
}

@media screen and (max-width: 767px) {
    .member-card .member-card-contents-heading {
        margin-top: 30px
    }
}

.member-card .list__item {
    list-style-type: decimal;
    list-style-position: inside;
    text-indent: -1em;
    padding-left: 1em;
    color: #0c2b60
}

.news-box {
    text-align: center;
    margin: 20px 0
}

@media screen and (max-width: 500px) {

    .fb_iframe_widget,
    .fb_iframe_widget span,
    .fb_iframe_widget iframe[style] {
        width: 100% !important
    }
}

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

.shop .container-inner--small {
    width: 710px
}

.shop .shop-contents-main {
    color: #0c2b60
}

.shop .shop-contents__shop-title span {
    font-weight: bold;
    line-height: 1.2;
    display: inline-block;
    border-bottom: 1px solid #0c2b60
}

.shop .shop-contents__address {
    font-style: normal;
    margin-top: 20px
}

.shop .shop-contents__open-hour {
    margin-top: 20px
}

.shop .shop-contents__open-hour span {
    display: block
}

.shop .shop-contents__tel {
    margin-top: 20px;
    font-size: calc(0.625rem * 1.8);
    font-weight: bold
}

.shop .shop-contents-img {
    /* background-position: center; */
    background-size: cover;
    background-repeat: no-repeat;
    background-position: 0 -100px;
}

.shop .shop-contents-img img {
    visibility: hidden;
    width: 370px;
    height: 100%
}

.shop .shop-contents__attention {
    padding-top: 30px;
    font-size: calc(0.625rem * 1.3);
    font-weight: bold;
    color: #fd4646
}

.shop .shop-map {
    width: 100%;
    height: 400px;
    margin-top: 100px
}

@media screen and (max-width: 767px) {
    .shop .shop-contents-box {
        -ms-flex-direction: column-reverse;
        flex-direction: column-reverse;
    }

    .shop .shop-contents-box:first-child {
        margin-bottom: 5rem;
    }

    .shop .container-inner--small {
        width: 100%
    }

    .shop .shop-contents-main {
        /* margin-top: 20px */
        margin-top: -30px;
        z-index: 1;
    }

    .shop .shop-contents__shop-title span {
        font-size: calc(0.625rem * 2)
    }

    .shop .shop-contents__tel {
        font-size: calc(0.625rem * 2);
        display: inline-block;
        border-bottom: 1px solid #0c2b60
    }

    .shop .shop-contents-img img {
        height: 0;
        width: 100%;
        padding-top: 84%
    }

    .shop .shop-contents__attention {
        font-size: calc(0.625rem * 1.5);
        line-height: 1.7
    }
}

@media screen and (min-width: 768px) {
    .shop .shop-contents-box:first-child {
        margin-bottom: -5rem;
    }
}

.reservation {
    padding-top: 100px;
    padding-bottom: 100px;
}

.reservation .reservation-btn {
    text-align: center
}

.reservation.bottom {
    z-index: 1;
    position: relative;
}

@media screen and (max-width: 767px) {
    #reservation .bottom {
        margin-top: 0;
        padding-top: 0;
    }
}

.wpcf7 .contact-table {
    width: 100%
}

.wpcf7 th,
.wpcf7 td {
    padding: 15px 0
}

.wpcf7 th {
    width: 30%;
    padding-right: 5%;
    text-align: right
}

.wpcf7 td {
    width: 70%
}

.wpcf7 .require {
    color: red
}

.wpcf7 input[type=text],
.wpcf7 textarea {
    border: 2px solid #969696;
    width: 100%;
    padding: 10px 5px;
    background-color: #fff
}

.wpcf7 input[type=text]:focus,
.wpcf7 textarea:focus {
    background-color: #f3f3f3
}

.wpcf7 .agree-box {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-pack: center;
    justify-content: center
}

.wpcf7 .agree-label {
    display: inline-block;
    height: 20px;
    width: 20px;
    border: 1px solid #aaa;
    background-color: #fff
}

.wpcf7 .agree-text {
    padding-left: 15px;
    padding-top: 5px
}

.wpcf7 .agree-text a {
    display: inline-block;
    color: #f19ec2;
    text-decoration: underline
}

.wpcf7 .agree-text a:hover {
    opacity: .5
}

.wpcf7 .btn {
    transition: 0.7s ease
}

.wpcf7 .checkbox-icon {
    position: relative
}

.wpcf7 .checkbox-icon:before,
.wpcf7 .checkbox-icon:after {
    content: "";
    display: block;
    position: absolute;
    width: 3px;
    transition: 0.4s ease
}

.wpcf7 .checkbox-icon:before {
    height: 12px;
    transform: rotate(-45deg) translate(-3px, 5px)
}

.wpcf7 .checkbox-icon:after {
    height: 25px;
    transform: rotate(48deg) translate(6px, -13px)
}

.wpcf7 input[type=checkbox] {
    display: none
}

.wpcf7 input[type=checkbox]:checked+.checkbox-icon:before,
.wpcf7 input[type=checkbox]:checked+.checkbox-icon:after {
    background-color: #f19ec2
}

@media screen and (max-width: 767px) {

    .wpcf7 th,
    .wpcf7 td {
        display: block;
        width: 100%
    }

    .wpcf7 th {
        padding: 0;
        text-align: left
    }
}

.form-complete {
    text-align: center;
    font-size: calc(0.625rem * 2.6);
    color: #f19ec2
}

.post {
    color: #0c2b60
}

.post h2,
.post h3,
.post h4 {
    margin-bottom: 25px;
    padding: 0.2em 0.5em
}

.post h2 {
    background-color: #f19ec2
}

.post h3 {
    background-color: #f7cbde
}

.post h4 {
    background-color: #fbe1ec
}

.post p {
    margin-bottom: 10px
}

.post a {
    display: inline-block;
    text-decoration: underline;
    color: #f19ec2
}

.post img {
    height: auto
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvcmUvX25vcm1hbGl6ZS5zY3NzIiwiY29yZS9fYmFzZS5zY3NzIiwiY29yZS9fdmFyaWFibGVzLnNjc3MiLCJjb3JlL19hbmltYXRlLnNjc3MiLCJ1dGlsaXR5L191dGlsaXR5LnNjc3MiLCJsYXlvdXQvX2hlYWRlci5zY3NzIiwibGF5b3V0L19mb290ZXIuc2NzcyIsIm1vZHVsZXMvX2pzLnNjc3MiLCJtb2R1bGVzL19hbmltYXRlLWN1c3RvbS5zY3NzIiwibW9kdWxlcy9fY29udGFpbmVyLnNjc3MiLCJtb2R1bGVzL19idG4uc2NzcyIsIm1vZHVsZXMvX2hvbWUta2V5di5zY3NzIiwibW9kdWxlcy9fZ2xvYmFsLW5hdi5zY3NzIiwibW9kdWxlcy9fb3ZlcmxheS5zY3NzIiwibW9kdWxlcy9fc3RpY2t5LWZvb3Rlci1pdGVtLnNjc3MiLCJtb2R1bGVzL19sb3dlci1rZXl2LnNjc3MiLCJtb2R1bGVzL19wYWdpbmF0aW9uLnNjc3MiLCJtb2R1bGVzL190aXRsZS5zY3NzIiwiY29udGVudHMvX2hvbWUuc2NzcyIsImNvbnRlbnRzL19wb3N0LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCLGdCQUFnQixDQUFDLDRCQUE0QixvQkFBb0IsQ0FBQyxpQkFBaUIsdUJBQXVCLENBQUMsS0FBSyx1QkFBdUIsaUJBQWlCLDBCQUEwQiw2QkFBNkIsQ0FBQyxLQUFLLFFBQVEsQ0FBRSxxREFBcUQsYUFBYSxDQUFDLEdBQUcsY0FBYyxjQUFjLENBQUMsdUJBQXVCLGFBQWEsQ0FBQyxPQUFPLGVBQWUsQ0FBQyxHQUFHLHVCQUF1QixRQUFRLENBQUMsa0JBQWtCLGdDQUFnQyxhQUFhLENBQUMsRUFBRSw2QkFBNkIsb0NBQW9DLENBQUMsaUJBQWlCLGVBQWUsQ0FBQyxZQUFZLG1CQUFtQiwwQkFBMEIsZ0NBQWdDLENBQUMsU0FBUyxrQkFBa0IsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLEtBQUssc0JBQXNCLFVBQVUsQ0FBQyxNQUFNLGFBQWEsQ0FB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SSx3QkFBd0MsQ0FiNUMsUUFnQkksa0JBQW1CLENBaEJ2QixRQW1CSSxxQkFDQSwwQkFDQSxhakJWYyxDaUJYbEIsVUF3QkksV0FBWSxDQUNiIiwiZmlsZSI6InN0eWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbImJ1dHRvbixocixpbnB1dHtvdmVyZmxvdzp2aXNpYmxlfWF1ZGlvLGNhbnZhcyxwcm9ncmVzcyx2aWRlb3tkaXNwbGF5OmlubGluZS1ibG9ja31wcm9ncmVzcyxzdWIsc3Vwe3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfWh0bWx7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtsaW5lLWhlaWdodDoxLjE1Oy1tcy10ZXh0LXNpemUtYWRqdXN0OjEwMCU7LXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OjEwMCV9Ym9keXttYXJnaW46MH0gbWVudSxhcnRpY2xlLGFzaWRlLGRldGFpbHMsZm9vdGVyLGhlYWRlcixuYXYsc2VjdGlvbntkaXNwbGF5OmJsb2NrfWgxe2ZvbnQtc2l6ZToyZW07bWFyZ2luOi42N2VtIDB9ZmlnY2FwdGlvbixmaWd1cmUsbWFpbntkaXNwbGF5OmJsb2NrfWZpZ3VyZXttYXJnaW46MWVtIDQwcHh9aHJ7Ym94LXNpemluZzpjb250ZW50LWJveDtoZWlnaHQ6MH1jb2RlLGtiZCxwcmUsc2FtcHtmb250LWZhbWlseTptb25vc3BhY2UsbW9ub3NwYWNlO2ZvbnQtc2l6ZToxZW19YXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6b2JqZWN0c31hOmFjdGl2ZSxhOmhvdmVye291dGxpbmUtd2lkdGg6MH1hYmJyW3RpdGxlXXtib3JkZXItYm90dG9tOm5vbmU7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIGRvdHRlZH1iLHN0cm9uZ3tmb250LXdlaWdodDpib2xkZXJ9ZGZue2ZvbnQtc3R5bGU6aXRhbGljfW1hcmt7YmFja2dyb3VuZC1jb2xvcjojZmYwO2NvbG9yOiMwMDB9c21hbGx7Zm9udC1zaXplOjgwJX1zdWIsc3Vwe2ZvbnQtc2l6ZTo3NSU7bGluZS1oZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZX1zdWJ7Ym90dG9tOi0uMjVlbX1zdXB7dG9wOi0uNWVtfWF1ZGlvOm5vdChbY29udHJvbHNdKXtkaXNwbGF5Om5vbmU7aGVpZ2h0OjB9aW1ne2JvcmRlci1zdHlsZTpub25lfXN2Zzpub3QoOnJvb3Qpe292ZXJmbG93OmhpZGRlbn1idXR0b24saW5wdXQsb3B0Z3JvdXAsc2VsZWN0LHRleHRhcmVhe2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7Zm9udC1zaXplOjEwMCU7bGluZS1oZWlnaHQ6MS4xNTttYXJnaW46MH1idXR0b24saW5wdXR7fWJ1dHRvbixzZWxlY3R7dGV4dC10cmFuc2Zvcm06bm9uZX1bdHlwZT1zdWJtaXRdLCBbdHlwZT1yZXNldF0sYnV0dG9uLGh0bWwgW3R5cGU9YnV0dG9uXXstd2Via2l0LWFwcGVhcmFuY2U6YnV0dG9ufVt0eXBlPWJ1dHRvbl06Oi1tb3otZm9jdXMtaW5uZXIsW3R5cGU9cmVzZXRdOjotbW96LWZvY3VzLWlubmVyLFt0eXBlPXN1Ym1pdF06Oi1tb3otZm9jdXMtaW5uZXIsYnV0dG9uOjotbW96LWZvY3VzLWlubmVye2JvcmRlci1zdHlsZTpub25lO3BhZGRpbmc6MH1bdHlwZT1idXR0b25dOi1tb3otZm9jdXNyaW5nLFt0eXBlPXJlc2V0XTotbW96LWZvY3VzcmluZyxbdHlwZT1zdWJtaXRdOi1tb3otZm9jdXNyaW5nLGJ1dHRvbjotbW96LWZvY3VzcmluZ3tvdXRsaW5lOkJ1dHRvblRleHQgZG90dGVkIDFweH1maWVsZHNldHtib3JkZXI6MXB4IHNvbGlkIHNpbHZlcjttYXJnaW46MCAycHg7cGFkZGluZzouMzVlbSAuNjI1ZW0gLjc1ZW19bGVnZW5ke2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjppbmhlcml0O2Rpc3BsYXk6dGFibGU7bWF4LXdpZHRoOjEwMCU7cGFkZGluZzowO3doaXRlLXNwYWNlOm5vcm1hbH1wcm9ncmVzc3t9dGV4dGFyZWF7b3ZlcmZsb3c6YXV0b31bdHlwZT1jaGVja2JveF0sW3R5cGU9cmFkaW9de2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjB9W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixbdHlwZT1udW1iZXJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9ue2hlaWdodDphdXRvfVt0eXBlPXNlYXJjaF17LXdlYmtpdC1hcHBlYXJhbmNlOnRleHRmaWVsZDtvdXRsaW5lLW9mZnNldDotMnB4fVt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sW3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX06Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uey13ZWJraXQtYXBwZWFyYW5jZTpidXR0b247Zm9udDppbmhlcml0fXN1bW1hcnl7ZGlzcGxheTpsaXN0LWl0ZW19W2hpZGRlbl0sdGVtcGxhdGV7ZGlzcGxheTpub25lfS8qIyBzb3VyY2VNYXBwaW5nVVJMPW5vcm1hbGl6ZS5taW4uY3NzLm1hcCAqLyIsIip7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1mYW1pbHk6ICRtYWluRm9udDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuICBsaW5lLWhlaWdodDogMS43O1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cbjpyb290e1xuICBmb250LXNpemU6ICRiYXNlRm9udFNpemU7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbn1cblxuQGluY2x1ZGUgeHN7XG4gIDpyb290e1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgfVxufVxuXG5pbWd7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbn1cblxuYXtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBkaXNwbGF5OiBibG9jaztcbiAgdHJhbnNpdGlvbjogJHRpbWVEZWZhdWx0O1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxubGl7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbn1cblxuKjpiZWZvcmUsKjphZnRlcntcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbn1cblxuc2VjdGlvbntcbiAgcGFkZGluZy10b3A6IDMwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAzMHB4O1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBmb3JtIHJlc2V0XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5pbnB1dCwgYnV0dG9uLCB0ZXh0YXJlYSwgc2VsZWN0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIG91dGxpbmU6IG5vbmU7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBtYWlu44K/44Kw44Gr6IOM5pmv55S75YOP6YGp55SoXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5tYWlue1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1nL2NvbW1vbi9iZy5qcGcpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIOacgOiho+ijheW5heOCkuaMh+WumuOBl+OAgeaoquOCueOCr+ODreODvOODq+eZuueUn1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuaGVhZGVyLGZvb3RlcixtYWlue1xuICBtaW4td2lkdGg6IDk3MHB4O1xufVxuXG5AaW5jbHVkZSB4c3tcbiAgaGVhZGVyLGZvb3RlcixtYWlue1xuICAgIG1pbi13aWR0aDogaW5pdGlhbDtcbiAgfVxufSIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIGZvbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiRtYWluRm9udCA6ICdKb3NlZmluIFNhbnMnLCBzYW5zLXNlcmlmO1xuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIGNvbG9yXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyByZWNpcGVcbiRtYWluQ29sb3I6ICMwYzJiNjA7XG4kc3ViQ29sb3I6ICNmMTllYzI7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIGZvbnRzaXplXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4kYmFzZUZvbnRTaXplOiAxNnB4O1xuLy8gMC4wNjI1ID0gMS8xNlxuLy8gMC42MjUgPSAxMC8xNlxuXG4kZnoxMDogY2FsYygwLjYyNXJlbSAqIDEpO1xuJGZ6MTE6IGNhbGMoMC42MjVyZW0gKiAxLjEpO1xuJGZ6MTI6IGNhbGMoMC42MjVyZW0gKiAxLjIpO1xuJGZ6MTM6IGNhbGMoMC42MjVyZW0gKiAxLjMpO1xuJGZ6MTQ6IGNhbGMoMC42MjVyZW0gKiAxLjQpO1xuJGZ6MTRfNTogY2FsYygwLjYyNXJlbSAqIDEuNDUpO1xuJGZ6MTU6IGNhbGMoMC42MjVyZW0gKiAxLjUpO1xuJGZ6MTY6IGNhbGMoMC42MjVyZW0gKiAxLjYpO1xuJGZ6MTc6IGNhbGMoMC42MjVyZW0gKiAxLjcpO1xuJGZ6MTg6IGNhbGMoMC42MjVyZW0gKiAxLjgpO1xuJGZ6MTk6IGNhbGMoMC42MjVyZW0gKiAxLjkpO1xuJGZ6MjA6IGNhbGMoMC42MjVyZW0gKiAyKTtcbiRmejIxOiBjYWxjKDAuNjI1cmVtICogMi4xKTtcbiRmejIyOiBjYWxjKDAuNjI1cmVtICogMi4yKTtcbiRmejIzOiBjYWxjKDAuNjI1cmVtICogMi4zKTtcbiRmejI0OiBjYWxjKDAuNjI1cmVtICogMi40KTtcbiRmejI1OiBjYWxjKDAuNjI1cmVtICogMi41KTtcbiRmejI2OiBjYWxjKDAuNjI1cmVtICogMi42KTtcbiRmejI3OiBjYWxjKDAuNjI1cmVtICogMi43KTtcbiRmejI4OiBjYWxjKDAuNjI1cmVtICogMi44KTtcbiRmejI5OiBjYWxjKDAuNjI1cmVtICogMi45KTtcbiRmejMwOiBjYWxjKDAuNjI1cmVtICogMyk7XG4kZnozMTogY2FsYygwLjYyNXJlbSAqIDMuMSk7XG4kZnozMjogY2FsYygwLjYyNXJlbSAqIDMuMik7XG4kZnozMzogY2FsYygwLjYyNXJlbSAqIDMuMyk7XG4kZnozNDogY2FsYygwLjYyNXJlbSAqIDMuNCk7XG4kZnozNTogY2FsYygwLjYyNXJlbSAqIDMuNSk7XG4kZnozNjogY2FsYygwLjYyNXJlbSAqIDMuNik7XG4kZnozNzogY2FsYygwLjYyNXJlbSAqIDMuNyk7XG4kZnozODogY2FsYygwLjYyNXJlbSAqIDMuOCk7XG4kZnozOTogY2FsYygwLjYyNXJlbSAqIDMuOSk7XG4kZno0MDogY2FsYygwLjYyNXJlbSAqIDQpO1xuJGZ6NDE6IGNhbGMoMC42MjVyZW0gKiA0LjEpO1xuJGZ6NDI6IGNhbGMoMC42MjVyZW0gKiA0LjIpO1xuJGZ6NDM6IGNhbGMoMC42MjVyZW0gKiA0LjMpO1xuJGZ6NDQ6IGNhbGMoMC42MjVyZW0gKiA0LjQpO1xuJGZ6NDU6IGNhbGMoMC42MjVyZW0gKiA0LjUpO1xuJGZ6NDY6IGNhbGMoMC42MjVyZW0gKiA0LjYpO1xuJGZ6NDc6IGNhbGMoMC42MjVyZW0gKiA0LjcpO1xuJGZ6NDg6IGNhbGMoMC42MjVyZW0gKiA0LjgpO1xuJGZ6NDk6IGNhbGMoMC42MjVyZW0gKiA0LjkpO1xuJGZ6NTA6IGNhbGMoMC42MjVyZW0gKiA1KTtcbiRmejUxOiBjYWxjKDAuNjI1cmVtICogNS4xKTtcbiRmejUyOiBjYWxjKDAuNjI1cmVtICogNS4yKTtcbiRmejUzOiBjYWxjKDAuNjI1cmVtICogNS4zKTtcbiRmejU0OiBjYWxjKDAuNjI1cmVtICogNS40KTtcbiRmejU1OiBjYWxjKDAuNjI1cmVtICogNS41KTtcbiRmejU2OiBjYWxjKDAuNjI1cmVtICogNS42KTtcbiRmejU3OiBjYWxjKDAuNjI1cmVtICogNS43KTtcbiRmejU4OiBjYWxjKDAuNjI1cmVtICogNS44KTtcbiRmejU5OiBjYWxjKDAuNjI1cmVtICogNS45KTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gdHJhbnNpdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuJHRpbWVEZWZhdWx0OiAuN3MgZWFzZTtcbiR0aW1lRmFzdDogLjRzIGVhc2U7XG4kdGltZVNsb3c6IDFzIGVhc2U7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIG9wYWNpdHlcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiRvcGM6IC41O1xuXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIGJyZWFrcG9pbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiRleHRyYVNtYWxsQnJlYWs6IDc2N3B4O1xuJHNtYWxsQnJlYWs6IDk5MXB4O1xuQG1peGluIHhzKCkge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkZXh0cmFTbWFsbEJyZWFrKSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIHNtKCkge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkc21hbGxCcmVhaykge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENoYXJhY3RlcmlzdGljXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vKiFcbiAqIGFuaW1hdGUuY3NzIC1odHRwOi8vZGFuZWRlbi5tZS9hbmltYXRlXG4gKiBWZXJzaW9uIC0gMy41LjJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSAtIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVRcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTcgRGFuaWVsIEVkZW5cbiAqL1xuXG4uYW5pbWF0ZWQge1xuICBhbmltYXRpb24tZHVyYXRpb246IDEuNXM7XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGhcbn1cblxuLmFuaW1hdGVkLmluZmluaXRlIHtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGVcbn1cblxuLmFuaW1hdGVkLmhpbmdlIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyc1xufVxuXG4uYW5pbWF0ZWQuYm91bmNlSW4sXG4uYW5pbWF0ZWQuYm91bmNlT3V0LFxuLmFuaW1hdGVkLmZsaXBPdXRYLFxuLmFuaW1hdGVkLmZsaXBPdXRZIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAuNzVzXG59XG5cbkBrZXlmcmFtZXMgYm91bmNlIHtcbiAgMCUsXG4gIDIwJSxcbiAgNTMlLFxuICA4MCUsXG4gIHRvIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjIxNSwgLjYxLCAuMzU1LCAxKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMClcbiAgfVxuICA0MCUsXG4gIDQzJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC43NTUsIC4wNSwgLjg1NSwgLjA2KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMHB4LCAwKVxuICB9XG4gIDcwJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC43NTUsIC4wNSwgLjg1NSwgLjA2KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xNXB4LCAwKVxuICB9XG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNHB4LCAwKVxuICB9XG59XG5cbi5ib3VuY2Uge1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tXG59XG5cbkBrZXlmcmFtZXMgZmxhc2gge1xuICAwJSxcbiAgNTAlLFxuICB0byB7XG4gICAgb3BhY2l0eTogMVxuICB9XG4gIDI1JSxcbiAgNzUlIHtcbiAgICBvcGFjaXR5OiAwXG4gIH1cbn1cblxuLmZsYXNoIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsYXNoXG59XG5cbkBrZXlmcmFtZXMgcHVsc2Uge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSlcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAxLjA1LCAxLjA1KVxuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKVxuICB9XG59XG5cbi5wdWxzZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBwdWxzZVxufVxuXG5Aa2V5ZnJhbWVzIHJ1YmJlckJhbmQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSlcbiAgfVxuICAzMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjI1LCAuNzUsIDEpXG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjc1LCAxLjI1LCAxKVxuICB9XG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMTUsIC44NSwgMSlcbiAgfVxuICA2NSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguOTUsIDEuMDUsIDEpXG4gIH1cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4wNSwgLjk1LCAxKVxuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKVxuICB9XG59XG5cbi5ydWJiZXJCYW5kIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJ1YmJlckJhbmRcbn1cblxuQGtleWZyYW1lcyBzaGFrZSB7XG4gIDAlLFxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApXG4gIH1cbiAgMTAlLFxuICAzMCUsXG4gIDUwJSxcbiAgNzAlLFxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApXG4gIH1cbiAgMjAlLFxuICA0MCUsXG4gIDYwJSxcbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApXG4gIH1cbn1cblxuLnNoYWtlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNoYWtlXG59XG5cbkBrZXlmcmFtZXMgaGVhZFNoYWtlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKVxuICB9XG4gIDYuNSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNnB4KSByb3RhdGVZKC05ZGVnKVxuICB9XG4gIDE4LjUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNXB4KSByb3RhdGVZKDdkZWcpXG4gIH1cbiAgMzEuNSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtM3B4KSByb3RhdGVZKC01ZGVnKVxuICB9XG4gIDQzLjUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KSByb3RhdGVZKDNkZWcpXG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMClcbiAgfVxufVxuXG4uaGVhZFNoYWtlIHtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBoZWFkU2hha2Vcbn1cblxuQGtleWZyYW1lcyBzd2luZyB7XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMTVkZWcpXG4gIH1cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTBkZWcpXG4gIH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg1ZGVnKVxuICB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTVkZWcpXG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpXG4gIH1cbn1cblxuLnN3aW5nIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlcjtcbiAgYW5pbWF0aW9uLW5hbWU6IHN3aW5nXG59XG5cbkBrZXlmcmFtZXMgdGFkYSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKVxuICB9XG4gIDEwJSxcbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSkgcm90YXRlKC0zZGVnKVxuICB9XG4gIDMwJSxcbiAgNTAlLFxuICA3MCUsXG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpIHJvdGF0ZSgzZGVnKVxuICB9XG4gIDQwJSxcbiAgNjAlLFxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKSByb3RhdGUoLTNkZWcpXG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogc2NhbGVYKDEpXG4gIH1cbn1cblxuLnRhZGEge1xuICBhbmltYXRpb24tbmFtZTogdGFkYVxufVxuXG5Aa2V5ZnJhbWVzIHdvYmJsZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IG5vbmVcbiAgfVxuICAxNSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1JSwgMCwgMCkgcm90YXRlKC01ZGVnKVxuICB9XG4gIDMwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMCUsIDAsIDApIHJvdGF0ZSgzZGVnKVxuICB9XG4gIDQ1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTUlLCAwLCAwKSByb3RhdGUoLTNkZWcpXG4gIH1cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwJSwgMCwgMCkgcm90YXRlKDJkZWcpXG4gIH1cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01JSwgMCwgMCkgcm90YXRlKC0xZGVnKVxuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IG5vbmVcbiAgfVxufVxuXG4ud29iYmxlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHdvYmJsZVxufVxuXG5Aa2V5ZnJhbWVzIGplbGxvIHtcbiAgMCUsXG4gIDExLjElLFxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBub25lXG4gIH1cbiAgMjIuMiUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLTEyLjVkZWcpIHNrZXdZKC0xMi41ZGVnKVxuICB9XG4gIDMzLjMlIHtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKDYuMjVkZWcpIHNrZXdZKDYuMjVkZWcpXG4gIH1cbiAgNDQuNCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLTMuMTI1ZGVnKSBza2V3WSgtMy4xMjVkZWcpXG4gIH1cbiAgNTUuNSUge1xuICAgIHRyYW5zZm9ybTogc2tld1goMS41NjI1ZGVnKSBza2V3WSgxLjU2MjVkZWcpXG4gIH1cbiAgNjYuNiUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLS43ODEyNWRlZykgc2tld1koLS43ODEyNWRlZylcbiAgfVxuICA3Ny43JSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCguMzkwNjI1ZGVnKSBza2V3WSguMzkwNjI1ZGVnKVxuICB9XG4gIDg4LjglIHtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKC0uMTk1MzEyNWRlZykgc2tld1koLS4xOTUzMTI1ZGVnKVxuICB9XG59XG5cbi5qZWxsbyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBqZWxsbztcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyXG59XG5cbkBrZXlmcmFtZXMgYm91bmNlSW4ge1xuICAwJSxcbiAgMjAlLFxuICA0MCUsXG4gIDYwJSxcbiAgODAlLFxuICB0byB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4yMTUsIC42MSwgLjM1NSwgMSlcbiAgfVxuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMylcbiAgfVxuICAyMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjEsIDEuMSwgMS4xKVxuICB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpXG4gIH1cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjAzLCAxLjAzLCAxLjAzKVxuICB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45NywgLjk3LCAuOTcpXG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZVgoMSlcbiAgfVxufVxuXG4uYm91bmNlSW4ge1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5cbn1cblxuQGtleWZyYW1lcyBib3VuY2VJbkRvd24ge1xuICAwJSxcbiAgNjAlLFxuICA3NSUsXG4gIDkwJSxcbiAgdG8ge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMjE1LCAuNjEsIC4zNTUsIDEpXG4gIH1cbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzAwMHB4LCAwKVxuICB9XG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDI1cHgsIDApXG4gIH1cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKVxuICB9XG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1cHgsIDApXG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogbm9uZVxuICB9XG59XG5cbi5ib3VuY2VJbkRvd24ge1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlSW5Eb3duXG59XG5cbkBrZXlmcmFtZXMgYm91bmNlSW5MZWZ0IHtcbiAgMCUsXG4gIDYwJSxcbiAgNzUlLFxuICA5MCUsXG4gIHRvIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjIxNSwgLjYxLCAuMzU1LCAxKVxuICB9XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMwMDBweCwgMCwgMClcbiAgfVxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyNXB4LCAwLCAwKVxuICB9XG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMClcbiAgfVxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNXB4LCAwLCAwKVxuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IG5vbmVcbiAgfVxufVxuXG4uYm91bmNlSW5MZWZ0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluTGVmdFxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUluUmlnaHQge1xuICAwJSxcbiAgNjAlLFxuICA3NSUsXG4gIDkwJSxcbiAgdG8ge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMjE1LCAuNjEsIC4zNTUsIDEpXG4gIH1cbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMDAwcHgsIDAsIDApXG4gIH1cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1cHgsIDAsIDApXG4gIH1cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApXG4gIH1cbiAgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01cHgsIDAsIDApXG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogbm9uZVxuICB9XG59XG5cbi5ib3VuY2VJblJpZ2h0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluUmlnaHRcbn1cblxuQGtleWZyYW1lcyBib3VuY2VJblVwIHtcbiAgMCUsXG4gIDYwJSxcbiAgNzUlLFxuICA5MCUsXG4gIHRvIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjIxNSwgLjYxLCAuMzU1LCAxKVxuICB9XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMzAwMHB4LCAwKVxuICB9XG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKVxuICB9XG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMHB4LCAwKVxuICB9XG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNXB4LCAwKVxuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMClcbiAgfVxufVxuXG4uYm91bmNlSW5VcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJblVwXG59XG5cbkBrZXlmcmFtZXMgYm91bmNlT3V0IHtcbiAgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSlcbiAgfVxuICA1MCUsXG4gIDU1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSlcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjMsIC4zLCAuMylcbiAgfVxufVxuXG4uYm91bmNlT3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dFxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dERvd24ge1xuICAyMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMClcbiAgfVxuICA0MCUsXG4gIDQ1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKVxuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKVxuICB9XG59XG5cbi5ib3VuY2VPdXREb3duIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dERvd25cbn1cblxuQGtleWZyYW1lcyBib3VuY2VPdXRMZWZ0IHtcbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjBweCwgMCwgMClcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApXG4gIH1cbn1cblxuLmJvdW5jZU91dExlZnQge1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0TGVmdFxufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dFJpZ2h0IHtcbiAgMjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwcHgsIDAsIDApXG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApXG4gIH1cbn1cblxuLmJvdW5jZU91dFJpZ2h0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dFJpZ2h0XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlT3V0VXAge1xuICAyMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApXG4gIH1cbiAgNDAlLFxuICA0NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMHB4LCAwKVxuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMClcbiAgfVxufVxuXG4uYm91bmNlT3V0VXAge1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0VXBcbn1cblxuQGtleWZyYW1lcyBmYWRlSW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMFxuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxXG4gIH1cbn1cblxuLmZhZGVJbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5Eb3duIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMClcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IG5vbmVcbiAgfVxufVxuXG4uZmFkZUluRG93biB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duXG59XG5cbkBrZXlmcmFtZXMgZmFkZUluRG93bkJpZyB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMClcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IG5vbmVcbiAgfVxufVxuXG4uZmFkZUluRG93bkJpZyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duQmlnXG59XG5cbkBrZXlmcmFtZXMgZmFkZUluTGVmdCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApXG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lXG4gIH1cbn1cblxuLmZhZGVJbkxlZnQge1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluTGVmdFxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbkxlZnRCaWcge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApXG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lXG4gIH1cbn1cblxuLmZhZGVJbkxlZnRCaWcge1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluTGVmdEJpZ1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblJpZ2h0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKVxuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZVxuICB9XG59XG5cbi5mYWRlSW5SaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5SaWdodFxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblJpZ2h0QmlnIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApXG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lXG4gIH1cbn1cblxuLmZhZGVJblJpZ2h0QmlnIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0QmlnXG59XG5cbkBrZXlmcmFtZXMgZmFkZUluVXAge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApXG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lXG4gIH1cbn1cblxuLmZhZGVJblVwIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblVwXG59XG5cbkBrZXlmcmFtZXMgZmFkZUluVXBCaWcge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMClcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IG5vbmVcbiAgfVxufVxuXG4uZmFkZUluVXBCaWcge1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluVXBCaWdcbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDFcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMFxuICB9XG59XG5cbi5mYWRlT3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRcbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0RG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxXG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKVxuICB9XG59XG5cbi5mYWRlT3V0RG93biB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0RG93blxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXREb3duQmlnIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDFcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMClcbiAgfVxufVxuXG4uZmFkZU91dERvd25CaWcge1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dERvd25CaWdcbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0TGVmdCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxXG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMClcbiAgfVxufVxuXG4uZmFkZU91dExlZnQge1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dExlZnRcbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0TGVmdEJpZyB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxXG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKVxuICB9XG59XG5cbi5mYWRlT3V0TGVmdEJpZyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0TGVmdEJpZ1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXRSaWdodCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxXG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKVxuICB9XG59XG5cbi5mYWRlT3V0UmlnaHQge1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dFJpZ2h0XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dFJpZ2h0QmlnIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDFcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMClcbiAgfVxufVxuXG4uZmFkZU91dFJpZ2h0QmlnIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodEJpZ1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXRVcCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxXG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMClcbiAgfVxufVxuXG4uZmFkZU91dFVwIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRVcFxufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXRVcEJpZyB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxXG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjAwMHB4LCAwKVxuICB9XG59XG5cbi5mYWRlT3V0VXBCaWcge1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dFVwQmlnXG59XG5cbkBrZXlmcmFtZXMgZmxpcCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC0xdHVybik7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXRcbiAgfVxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZVooMTUwcHgpIHJvdGF0ZVkoLTE5MGRlZyk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXRcbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZVooMTUwcHgpIHJvdGF0ZVkoLTE3MGRlZyk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pblxuICB9XG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgc2NhbGUzZCguOTUsIC45NSwgLjk1KTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluXG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW5cbiAgfVxufVxuXG4uYW5pbWF0ZWQuZmxpcCB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXBcbn1cblxuQGtleWZyYW1lcyBmbGlwSW5YIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoOTBkZWcpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgb3BhY2l0eTogMFxuICB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtMjBkZWcpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW5cbiAgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoMTBkZWcpO1xuICAgIG9wYWNpdHk6IDFcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTVkZWcpXG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpXG4gIH1cbn1cblxuLmZsaXBJblgge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUhaW1wb3J0YW50O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlIWltcG9ydGFudDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXBJblhcbn1cblxuQGtleWZyYW1lcyBmbGlwSW5ZIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoOTBkZWcpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gICAgb3BhY2l0eTogMFxuICB9XG4gIDQwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtMjBkZWcpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW5cbiAgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoMTBkZWcpO1xuICAgIG9wYWNpdHk6IDFcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTVkZWcpXG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpXG4gIH1cbn1cblxuLmZsaXBJblkge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUhaW1wb3J0YW50O1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlIWltcG9ydGFudDtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsaXBJbllcbn1cblxuQGtleWZyYW1lcyBmbGlwT3V0WCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KVxuICB9XG4gIDMwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtMjBkZWcpO1xuICAgIG9wYWNpdHk6IDFcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCg5MGRlZyk7XG4gICAgb3BhY2l0eTogMFxuICB9XG59XG5cbi5mbGlwT3V0WCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwT3V0WDtcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlIWltcG9ydGFudDtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSFpbXBvcnRhbnRcbn1cblxuQGtleWZyYW1lcyBmbGlwT3V0WSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KVxuICB9XG4gIDMwJSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtMTVkZWcpO1xuICAgIG9wYWNpdHk6IDFcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSg5MGRlZyk7XG4gICAgb3BhY2l0eTogMFxuICB9XG59XG5cbi5mbGlwT3V0WSB7XG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSFpbXBvcnRhbnQ7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUhaW1wb3J0YW50O1xuICBhbmltYXRpb24tbmFtZTogZmxpcE91dFlcbn1cblxuQGtleWZyYW1lcyBsaWdodFNwZWVkSW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgtMzBkZWcpO1xuICAgIG9wYWNpdHk6IDBcbiAgfVxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goMjBkZWcpO1xuICAgIG9wYWNpdHk6IDFcbiAgfVxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLTVkZWcpO1xuICAgIG9wYWNpdHk6IDFcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDFcbiAgfVxufVxuXG4ubGlnaHRTcGVlZEluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRJbjtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXRcbn1cblxuQGtleWZyYW1lcyBsaWdodFNwZWVkT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDFcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgzMGRlZyk7XG4gICAgb3BhY2l0eTogMFxuICB9XG59XG5cbi5saWdodFNwZWVkT3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGxpZ2h0U3BlZWRPdXQ7XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW5cbn1cblxuQGtleWZyYW1lcyByb3RhdGVJbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoLTIwMGRlZyk7XG4gICAgb3BhY2l0eTogMFxuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDFcbiAgfVxufVxuXG4ucm90YXRlSW4ge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5cbn1cblxuQGtleWZyYW1lcyByb3RhdGVJbkRvd25MZWZ0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgb3BhY2l0eTogMFxuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgb3BhY2l0eTogMVxuICB9XG59XG5cbi5yb3RhdGVJbkRvd25MZWZ0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluRG93bkxlZnRcbn1cblxuQGtleWZyYW1lcyByb3RhdGVJbkRvd25SaWdodCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgIG9wYWNpdHk6IDBcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxXG4gIH1cbn1cblxuLnJvdGF0ZUluRG93blJpZ2h0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluRG93blJpZ2h0XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlSW5VcExlZnQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgIG9wYWNpdHk6IDBcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDFcbiAgfVxufVxuXG4ucm90YXRlSW5VcExlZnQge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5VcExlZnRcbn1cblxuQGtleWZyYW1lcyByb3RhdGVJblVwUmlnaHQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG4gICAgb3BhY2l0eTogMFxuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDFcbiAgfVxufVxuXG4ucm90YXRlSW5VcFJpZ2h0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZUluVXBSaWdodFxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgb3BhY2l0eTogMVxuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMjAwZGVnKTtcbiAgICBvcGFjaXR5OiAwXG4gIH1cbn1cblxuLnJvdGF0ZU91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXRcbn1cblxuQGtleWZyYW1lcyByb3RhdGVPdXREb3duTGVmdCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxXG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwXG4gIH1cbn1cblxuLnJvdGF0ZU91dERvd25MZWZ0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dERvd25MZWZ0XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlT3V0RG93blJpZ2h0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxXG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgIG9wYWNpdHk6IDBcbiAgfVxufVxuXG4ucm90YXRlT3V0RG93blJpZ2h0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dERvd25SaWdodFxufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dFVwTGVmdCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxXG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgb3BhY2l0eTogMFxuICB9XG59XG5cbi5yb3RhdGVPdXRVcExlZnQge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0VXBMZWZ0XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlT3V0VXBSaWdodCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgb3BhY2l0eTogMVxuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgIG9wYWNpdHk6IDBcbiAgfVxufVxuXG4ucm90YXRlT3V0VXBSaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXRVcFJpZ2h0XG59XG5cbkBrZXlmcmFtZXMgaGluZ2Uge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXRcbiAgfVxuICAyMCUsXG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoODBkZWcpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0XG4gIH1cbiAgNDAlLFxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDYwZGVnKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgICBvcGFjaXR5OiAxXG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgNzAwcHgsIDApO1xuICAgIG9wYWNpdHk6IDBcbiAgfVxufVxuXG4uaGluZ2Uge1xuICBhbmltYXRpb24tbmFtZTogaGluZ2Vcbn1cblxuQGtleWZyYW1lcyBqYWNrSW5UaGVCb3gge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC4xKSByb3RhdGUoMzBkZWcpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b21cbiAgfVxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMGRlZylcbiAgfVxuICA3MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDNkZWcpXG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKVxuICB9XG59XG5cbi5qYWNrSW5UaGVCb3gge1xuICBhbmltYXRpb24tbmFtZTogamFja0luVGhlQm94XG59XG5cbkBrZXlmcmFtZXMgcm9sbEluIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCkgcm90YXRlKC0xMjBkZWcpXG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lXG4gIH1cbn1cblxuLnJvbGxJbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb2xsSW5cbn1cblxuQGtleWZyYW1lcyByb2xsT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDFcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHJvdGF0ZSgxMjBkZWcpXG4gIH1cbn1cblxuLnJvbGxPdXQge1xuICBhbmltYXRpb24tbmFtZTogcm9sbE91dFxufVxuXG5Aa2V5ZnJhbWVzIHpvb21JbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKVxuICB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMVxuICB9XG59XG5cbi56b29tSW4ge1xuICBhbmltYXRpb24tbmFtZTogem9vbUluXG59XG5cbkBrZXlmcmFtZXMgem9vbUluRG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMSwgLjEsIC4xKSB0cmFuc2xhdGUzZCgwLCAtMTAwMHB4LCAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjU1LCAuMDU1LCAuNjc1LCAuMTkpXG4gIH1cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjE3NSwgLjg4NSwgLjMyLCAxKVxuICB9XG59XG5cbi56b29tSW5Eb3duIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21JbkRvd25cbn1cblxuQGtleWZyYW1lcyB6b29tSW5MZWZ0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKC0xMDAwcHgsIDAsIDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguNTUsIC4wNTUsIC42NzUsIC4xOSlcbiAgfVxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMTc1LCAuODg1LCAuMzIsIDEpXG4gIH1cbn1cblxuLnpvb21JbkxlZnQge1xuICBhbmltYXRpb24tbmFtZTogem9vbUluTGVmdFxufVxuXG5Aa2V5ZnJhbWVzIHpvb21JblJpZ2h0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDEwMDBweCwgMCwgMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC41NSwgLjA1NSwgLjY3NSwgLjE5KVxuICB9XG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllciguMTc1LCAuODg1LCAuMzIsIDEpXG4gIH1cbn1cblxuLnpvb21JblJpZ2h0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21JblJpZ2h0XG59XG5cbkBrZXlmcmFtZXMgem9vbUluVXAge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgMTAwMHB4LCAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjU1LCAuMDU1LCAuNjc1LCAuMTkpXG4gIH1cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCAtNjBweCwgMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4xNzUsIC44ODUsIC4zMiwgMSlcbiAgfVxufVxuXG4uem9vbUluVXAge1xuICBhbmltYXRpb24tbmFtZTogem9vbUluVXBcbn1cblxuQGtleWZyYW1lcyB6b29tT3V0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDFcbiAgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpXG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDBcbiAgfVxufVxuXG4uem9vbU91dCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tT3V0XG59XG5cbkBrZXlmcmFtZXMgem9vbU91dERvd24ge1xuICA0MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDAsIC02MHB4LCAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjU1LCAuMDU1LCAuNjc1LCAuMTkpXG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDIwMDBweCwgMCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjE3NSwgLjg4NSwgLjMyLCAxKVxuICB9XG59XG5cbi56b29tT3V0RG93biB7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tT3V0RG93blxufVxuXG5Aa2V5ZnJhbWVzIHpvb21PdXRMZWZ0IHtcbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCg0MnB4LCAwLCAwKVxuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoLjEpIHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyXG4gIH1cbn1cblxuLnpvb21PdXRMZWZ0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRMZWZ0XG59XG5cbkBrZXlmcmFtZXMgem9vbU91dFJpZ2h0IHtcbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgtNDJweCwgMCwgMClcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKC4xKSB0cmFuc2xhdGUzZCgyMDAwcHgsIDAsIDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGNlbnRlclxuICB9XG59XG5cbi56b29tT3V0UmlnaHQge1xuICBhbmltYXRpb24tbmFtZTogem9vbU91dFJpZ2h0XG59XG5cbkBrZXlmcmFtZXMgem9vbU91dFVwIHtcbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoLjU1LCAuMDU1LCAuNjc1LCAuMTkpXG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKC4xNzUsIC44ODUsIC4zMiwgMSlcbiAgfVxufVxuXG4uem9vbU91dFVwIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRVcFxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlSW5Eb3duIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGVcbiAgfVxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApXG4gIH1cbn1cblxuLnNsaWRlSW5Eb3duIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5Eb3duXG59XG5cbkBrZXlmcmFtZXMgc2xpZGVJbkxlZnQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZVxuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMClcbiAgfVxufVxuXG4uc2xpZGVJbkxlZnQge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVJbkxlZnRcbn1cblxuQGtleWZyYW1lcyBzbGlkZUluUmlnaHQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlXG4gIH1cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKVxuICB9XG59XG5cbi5zbGlkZUluUmlnaHQge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVJblJpZ2h0XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVJblVwIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMCk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZVxuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMClcbiAgfVxufVxuXG4uc2xpZGVJblVwIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlSW5VcFxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlT3V0RG93biB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMClcbiAgfVxuICB0byB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTAwJSwgMClcbiAgfVxufVxuXG4uc2xpZGVPdXREb3duIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0RG93blxufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlT3V0TGVmdCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMClcbiAgfVxuICB0byB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApXG4gIH1cbn1cblxuLnNsaWRlT3V0TGVmdCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dExlZnRcbn1cblxuQGtleWZyYW1lcyBzbGlkZU91dFJpZ2h0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKVxuICB9XG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKVxuICB9XG59XG5cbi5zbGlkZU91dFJpZ2h0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0UmlnaHRcbn1cblxuQGtleWZyYW1lcyBzbGlkZU91dFVwIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWigwKVxuICB9XG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMClcbiAgfVxufVxuXG4uc2xpZGVPdXRVcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFVwXG59IiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gY2xlYXJmaXhcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5jZjphZnRlcntcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNsZWFyOiBib3RoO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBjaGFuZ2UgdmlzaWJsZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLm9uUGN7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG59XG4ub25TcHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG5AaW5jbHVkZSB4c3tcbiAgLm9uUGN7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG4gIC5vblNwe1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLnZpc2libGV7XG4gIHZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbiAgb3BhY2l0eTogMTtcbn1cblxuLmhpZGRlbntcbiAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIG9wYWNpdHk6IDA7XG59XG5cbi5kTntcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gb3BhY2l0eVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLm9wYzB7XG4gIG9wYWNpdHk6IDA7XG59XG5cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gYnJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmJyLm1ke1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG5ici5zbXtcbiAgZGlzcGxheTogbm9uZTtcbn1cbmJyLnhze1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5AaW5jbHVkZSBzbXtcbiAgYnIubWR7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICBici5zbXtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gIH1cbiAgYnIueHN7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5AaW5jbHVkZSB4c3tcbiAgYnIubWR7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICBici5zbXtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIGJyLnhze1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgfVxufSIsImhlYWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgLmxvZ28ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogNDkwcHg7XG4gICAgaGVpZ2h0OiAxMTlweDtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICB9XG59XG5cbi5ob21le1xuICBoZWFkZXJ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UzZGZlMDtcbiAgICAubG9nb3tcbiAgICAgIHdpZHRoOiA2MzBweDtcbiAgICAgIGhlaWdodDogMTUzcHg7XG4gICAgfVxuICAgIC5zbGlkZXItb24taXRlbXtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAzODBweDtcbiAgICAgIGJvdHRvbTogMTAwcHg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgaW1ne1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgeHMge1xuICBoZWFkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAubG9nbyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICAvLyDjg4jjg4Pjg5fjga7jgb9cbiAgICAua2V5di1pdGVtLXNha3VyYS0xe1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiA4NXZ3O1xuICAgICAgbGVmdDogM3Z3O1xuICAgICAgd2lkdGg6IDIwdnc7XG4gICAgfVxuICAgIC5rZXl2LWl0ZW0tc2FrdXJhLTJ7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDIwdnc7XG4gICAgICByaWdodDogMDtcbiAgICAgIHdpZHRoOiA1MHZ3O1xuICAgIH1cbiAgfVxufSIsImZvb3RlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU3ZTU7XG4gIC5mb290ZXItaXRlbXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgcGFkZGluZzogMmVtIDA7XG4gICAgaW1ne1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIGF7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICY6aG92ZXJ7XG4gICAgICAgIG9wYWNpdHk6ICRvcGM7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5mb290ZXItaXRlbXNfX2xvZ297XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHdpZHRoOiAxOSU7XG4gIH1cbiAgLmZvb3Rlci1pdGVtc19fcHJpdmFjeXtcbiAgICBjb2xvcjogJG1haW5Db2xvcjtcbiAgfVxuICAuZm9vdGVyLWl0ZW1zX19sb2dvLWdyb3Vwe1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB3aWR0aDogMjMlO1xuICB9XG4gIC5jb3B5cmlnaHQge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbkNvbG9yO1xuICAgIHBhZGRpbmc6IDAuNWVtIDA7XG4gIH1cbn1cblxuQGluY2x1ZGUgeHN7XG4gIGZvb3RlciB7XG4gICAgLmZvb3Rlci1pdGVtcyB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgaW1ne1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cbiAgICAgIGF7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAmOmhvdmVye1xuICAgICAgICAgIG9wYWNpdHk6ICRvcGM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLmZvb3Rlci1pdGVtc19fbG9nb3tcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHdpZHRoOiA1NSU7XG4gICAgICBhe1xuICAgICAgICB3aWR0aDogNzAlO1xuICAgICAgfVxuICAgIH1cbiAgICAuZm9vdGVyLWl0ZW1zX19wcml2YWN5e1xuICAgICAgb3JkZXI6IDM7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIH1cbiAgICAuZm9vdGVyLWl0ZW1zX19sb2dvLWdyb3Vwe1xuICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICAgIHdpZHRoOiA2MCU7XG4gICAgICBhe1xuICAgICAgICB3aWR0aDogODAlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSIsIi5qcy0tY2FyZXQtYWN0aXZle1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xufSIsIi8vc2FtcGxlXG4vLyAuYW5pbWF0ZV9kZWxheXtcbiAgLy8156eS44GL44GR44Gm44Ki44OL44Oh44O844K344On44Oz44GZ44KLXG4gIC8vIGFuaW1hdGlvbi1kdXJhdGlvbjogNXM7XG4gIC8vNOenkuW+heOBo+OBpuOBi+OCieOCouODi+ODoeODvOOCt+ODp+ODs+OBmeOCi1xuICAvLyBhbmltYXRpb24tZGVsYXk6IDRzO1xuICAvLzXlm57nubDjgorov5TjgZlcbiAgLy8gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogNTtcbiAgLy/nhKHpmZDjgavnubDjgorov5TjgZlcbiAgLy8gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG4vLyB9XG5cbi5hbmltYXRlX3Nsb3d7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogM3M7XG59XG5cbi5hbmltYXRlX2Zhc3R7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XG59XG5cbi5hbmltYXRpb25fZGVsYXl7XG4gIGFuaW1hdGlvbi1kZWxheTogLjVzO1xufVxuXG4uYW5pbWF0aW9uX2RlbGF5LTJze1xuICBhbmltYXRpb24tZGVsYXk6IDJzO1xufVxuXG4uYW5pbWF0aW9uX2RlbGF5LTFze1xuICBhbmltYXRpb24tZGVsYXk6IDFzO1xufVxuXG4uYW5pbWF0aW9uX2RlbGF5LTFfNXN7XG4gIGFuaW1hdGlvbi1kZWxheTogMS41cztcbn1cblxuLmFuaW1hdGlvbl9kZWxheS0xXzdze1xuICBhbmltYXRpb24tZGVsYXk6IDEuN3M7XG59XG5cbi5hbmltZXRlX2luZmluaXRle1xuICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcbn1cblxuLmFuaW1hdGVfYWx0ZXJuYXRle1xuICBhbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGU7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIGFuaW1hdGUuY3NzIOOCq+OCueOCv+ODnuOCpOOCuueUqFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuQGtleWZyYW1lcyBmYWRlSW5VcCB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTUlLCAwKVxuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZVxuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluRG93biB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApXG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lXG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlSW5MZWZ0IHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAlLCAwLCAwKVxuICB9XG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZVxuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluUmlnaHQge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwJSwgMCwgMClcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IG5vbmVcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNoYWtlIHtcbiAgMCUsXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMClcbiAgfVxuICAxMCUsXG4gIDMwJSxcbiAgNTAlLFxuICA3MCUsXG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtM3B4LCAwLCAwKVxuICB9XG4gIDIwJSxcbiAgNDAlLFxuICA2MCUsXG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzcHgsIDAsIDApXG4gIH1cbn0iLCIuY29udGFpbmVye1xuICB3aWR0aDogOTcwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XG59XG5cbi5jb250YWluZXItaW5uZXJ7XG4gIHdpZHRoOiA3NDBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5jb250YWluZXItaW5uZXItLXNtYWxse1xuICB3aWR0aDogNjUwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG5AaW5jbHVkZSB4c3tcbiAgLmNvbnRhaW5lcntcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuICAuY29udGFpbmVyLWlubmVye1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5jb250YWluZXItaW5uZXItLXNtYWxse1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59IiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gYnRuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4uYnRue1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICY6aG92ZXJ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIGJ0biB3cmFwcGVyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi5idG4td3JhcHBlcntcbiAgbWFyZ2luLXRvcDogNTBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBidG4gc2l6ZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLmJ0bi1te1xuICB3aWR0aDogMjAwcHg7XG4gIHBhZGRpbmc6IDFlbSAwLjdlbSAwLjdlbTtcbiAgZm9udC1zaXplOiAkZnoxNjtcbn1cblxuQGluY2x1ZGUgeHN7XG4gIC5idG4tbXtcbiAgICAvLyB3aWR0aDogMTYwcHg7XG4gIH1cbn1cblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBidG4gY2F0ZWdvcnlcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5idG4tcHJpbWFyeXtcbiAgY29sb3I6ICRtYWluQ29sb3I7XG4gIGJvcmRlci1jb2xvcjogJG1haW5Db2xvcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgJjpob3ZlcntcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbkNvbG9yO1xuICB9XG59IiwiLmhvbWV7XG4uc2xpZGVyIHtcbiAgbWF4LXdpZHRoOiAxOTgwcHg7XG4gIG1pbi13aWR0aDogODAwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICAuc2xpY2stc2xpZGV7XG4gICAgaGVpZ2h0OiA2MDBweDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICB9XG59XG5cbkBpbmNsdWRlIHhze1xuICAuc2xpZGVyIHtcbiAgICBtaW4td2lkdGg6IGluaXRpYWw7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNTBweCk7XG4gICAgbWFyZ2luLXRvcDogNjVweDtcbiAgICAuc2xpY2stc2xpZGV7XG4gICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA1MHB4KTtcbiAgICB9XG4gIH1cbn1cbn0iLCIuZy1uYXYge1xuICB6LWluZGV4OiAxMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDU1cHg7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJG1haW5Db2xvciwgMC4zKTtcbiAgbWluLXdpZHRoOiA5NzBweDtcbn1cbi5nLW5hdi1saXN0X193cmFwIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLmctbmF2LWxpc3Qge1xuICBwYWRkaW5nOiAxLjJlbSAwO1xuICBhe1xuICAgIGZvbnQtc2l6ZTogJGZ6MTQ7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgJjphZnRlcntcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzdWJDb2xvcjtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAtMnB4O1xuICAgICAgbGVmdDogLTAuMjVyZW07XG4gICAgICB0cmFuc2l0aW9uOiAkdGltZVNsb3c7XG4gICAgfVxuICAgICY6aG92ZXJ7XG4gICAgICAmOmFmdGVye1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMC41cmVtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbi5nLW5hdi1saXN0LS1leHRlcm5hbHtcbiAgYXtcbiAgICAmOmFmdGVye1xuICAgICAgY29udGVudDogbm9uZTtcbiAgICB9XG4gICAgJjpob3ZlcntcbiAgICAgIGNvbG9yOiAkc3ViQ29sb3I7XG4gICAgfVxuICB9XG59XG5cbkBpbmNsdWRlIHhze1xuICAuZy1uYXYge1xuICAgIHotaW5kZXg6IDEwMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiBpbml0aWFsO1xuICAgIGhlaWdodDogNjVweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuODUpO1xuICAgIG1pbi13aWR0aDogaW5pdGlhbDtcbiAgICA+IC5jb250YWluZXJ7XG4gICAgICBoZWlnaHQ6IDY1cHg7XG4gICAgfVxuICB9XG4gIC5nLW5hdi1saXN0X193cmFwIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkbWFpbkNvbG9yLDAuMik7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdG9wOiA2NXB4O1xuICAgIGxlZnQ6IDA7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAuZy1uYXYtbGlzdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYXtcbiAgICAgIHBhZGRpbmc6IDEuMmVtIDA7XG4gICAgICBmb250LXNpemU6ICRmejE3O1xuICAgIH1cbiAgfVxuICAuZy1uYXYtbGlzdC0tZXh0ZXJuYWx7XG4gICAgYXtcbiAgICAgICY6YWZ0ZXJ7XG4gICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICB9XG4gICAgICAmOmhvdmVye1xuICAgICAgICBjb2xvcjogJHN1YkNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBzcOOBruOBv+OBruimgee0oFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLm5hdi1zcC1pdGVtc3tcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuQGluY2x1ZGUgeHN7XG4gIC5uYXYtc3AtaXRlbXN7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgaGVpZ2h0OiA2NXB4O1xuICB9XG4gIC5uYXYtc3AtaXRlbXNfX3Jlc2VydmF0aW9uLXRleHR7XG4gICAgZm9udC1zaXplOiAkZnoxMztcbiAgICBsZXR0ZXItc3BhY2luZzogLTAuMDVlbTtcbiAgfVxuICAubmF2LXNwLWl0ZW1zX19sb2dve1xuICAgIHdpZHRoOiAxNzBweDtcbiAgfVxuICAubmF2LXNwLWl0ZW1zX19uYXYtdHJpZ2dlcntcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gIH1cbiAgLm5hdi10cmlnZ2VyLWljb257XG4gICAgaGVpZ2h0OiAyNXB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDI1cHg7XG4gICAgbWFyZ2luOiBhdXRvO1xuICAgIHNwYW57XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWFpbkNvbG9yO1xuICAgICAgdHJhbnNpdGlvbjogJHRpbWVEZWZhdWx0O1xuICAgIH1cbiAgfVxuICAubmF2LXRyaWdnZXItdGV4dHtcbiAgICBmb250LXNpemU6ICRmejEzO1xuICAgIGhlaWdodDogMTVweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gc3Djg4/jg7Pjg5Djg7zjgqzjg7zjg5zjgr/jg7PmirzjgZfjgZ/lvozjga7jgrnjgr/jgqTjg6tcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5nLW5hdntcbiAgJi5hY3RpdmV7XG4gICAgLm5hdi10cmlnZ2VyLWljb257XG4gICAgICBzcGFuOm50aC1vZi10eXBlKDEpe1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZSgtMjUlLCAxOTAlKTtcbiAgICAgIH1cbiAgICAgIHNwYW46bnRoLW9mLXR5cGUoMil7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB9XG4gICAgICBzcGFuOm50aC1vZi10eXBlKDMpe1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlKC0yNSUsIC0xODAlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBmaXjjgq/jg6njgrlcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5nLW5hdi0tZml4e1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG59IiwiLm92ZXJsYXl7XG4gIGhlaWdodDogMTAwdmg7XG4gIHdpZHRoOiAxMDB2dztcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogMTU7XG59XG5cbi5vdmVybGF5LS1hY3RpdmV7XG4gIGRpc3BsYXk6IGJsb2NrO1xufSIsIi5zdGlja3ktZm9vdGVyLWl0ZW0ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG5AaW5jbHVkZSB4c3tcbiAgLnN0aWNreS1mb290ZXItaXRlbSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRtYWluQ29sb3IsIDAuMyk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgei1pbmRleDogMTA7XG4gICAgdHJhbnNpdGlvbjogJHRpbWVGYXN0O1xuICAgIGF7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIGhlaWdodDogNTBweDtcbiAgICB9XG4gICAgLnN0aWNreS1mb290ZXItaXRlbV9fc3Vie1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGl7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZ6MzU7XG4gICAgICB9XG4gICAgfVxuICAgIC5zdGlja3ktZm9vdGVyLWl0ZW1fX3N1Yi10ZXh0e1xuICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gICAgfVxuXG4gICAgLnN0aWNreS1mb290ZXItaXRlbV9fbWFpbntcbiAgICAgIGZvbnQtc2l6ZTogJGZ6Mjg7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMC4xZW07XG4gICAgfVxuICB9XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8g44K544Kv44Ot44O844Or44Gr44KI44KL5YuV44GNXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLnN0aWNreS1mb290ZXItaXRlbS0tc2hvd3tcbiAgICBib3R0b206IDA7XG4gIH1cbiAgLnN0aWNreS1mb290ZXItaXRlbS0taGlkZXtcbiAgICBib3R0b206IC01MHB4O1xuICB9XG59IiwiICAuc2xpZGVyIHtcbiAgICBtYXgtd2lkdGg6IDE5ODBweDtcbiAgICBtaW4td2lkdGg6IDgwMHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIC5zbGljay1zbGlkZXtcbiAgICAgIGhlaWdodDogNDAwcHg7XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICB9XG4gIH1cbiAgXG4gIEBpbmNsdWRlIHhze1xuICAgIC5zbGlkZXIge1xuICAgICAgbWluLXdpZHRoOiBpbml0aWFsO1xuICAgICAgLy8gaGVpZ2h0OiBjYWxjKDUwdmggLSA1MHB4KTtcbiAgICAgIGhlaWdodDogMDtcbiAgICAgIG1hcmdpbi10b3A6IDY1cHg7XG4gICAgICAuc2xpY2stc2xpZGV7XG4gICAgICAgIC8vIGhlaWdodDogY2FsYyg1MHZoIC0gNTBweCk7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH0iLCIuYXJjaGl2ZXtcbi5wYWdpbmF0aW9ue1xuICBmb250LXNpemU6ICRmejIwO1xuICBtYXJnaW4tdG9wOiA1MHB4O1xuICB1bHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG4gIGxpe1xuICAgIHNwYW4sYXtcbiAgICAgIHBhZGRpbmc6IDAuM2VtIDFlbTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG4gICAgc3BhbntcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzdWJDb2xvcjtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgICBhe1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIGNvbG9yOiAkc3ViQ29sb3I7XG4gICAgICAmOmhvdmVye1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3ViQ29sb3I7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBsaSArIGxpe1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbiAgfVxufVxufSIsIi5zZWN0aW9uLXRpdGxle1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAkbWFpbkNvbG9yO1xuICBmb250LXNpemU6ICRmejI4O1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG59XG4uc2VjdGlvbi10aXRsZV9fdGV4dHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvLyDmrKfmlofjg5Xjgqnjg7Pjg4jjga/jg5njg7zjgrnjg6njgqTjg7PjgYzkuIrjgavjgYLjgovjga7jgafoqr/mlbTnlKjkvZnnmb1cbiAgcGFkZGluZzogMC41cmVtIDQuN3JlbSAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICY6YmVmb3Jle1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAkbWFpbkNvbG9yIDAlLCRtYWluQ29sb3IgMTAlLHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAlLHJnYmEoMjU1LDI1NSwyNTUsMCkgOTAlLCRtYWluQ29sb3IgOTAlLCRtYWluQ29sb3IgMTAwJSk7IFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBtYXJnaW46IGF1dG87XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDE7XG4gIH1cbn1cblxuQGluY2x1ZGUgeHN7XG4gIC5zZWN0aW9uLXRpdGxlX190ZXh0e1xuICAgIHBhZGRpbmc6IDAuNXJlbSAycmVtIDA7XG4gIH1cbn1cblxuLnNlY3Rpb24tdGV4dHtcbiAgY29sb3I6ICRtYWluQ29sb3I7XG4gIGZvbnQtc2l6ZTogJGZ6MTg7XG59XG5cbkBpbmNsdWRlIHhze1xuICAuc2VjdGlvbi10ZXh0e1xuICAgIGZvbnQtc2l6ZTogJGZ6MTY7XG4gIH1cbn0iLCIuaG9tZSB7XG4gIG1haW4ge1xuICAgIHBhZGRpbmctYm90dG9tOiAxMjBweDsgLy8gbWVudeOBruOCv+OCpOODiOODq+OBjOaoqumVt+OBquOBruOBp+S9meeZveOBjOWHuuOCi+OBruOCkumYsuOBkFxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgfVxuICBAaW5jbHVkZSB4cyB7XG4gICAgbWFpbiB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMzBweDtcbiAgICB9XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gYWJvdXRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi5hYm91dCB7XG4gIC5zZWN0aW9uLXRpdGxlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG4gIC5hYm91dC1hdHRlbnRpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGZvbnQtc2l6ZTogJGZ6MjU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgfVxuICAuc2VjdGlvbi10ZXh0IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDIuNDtcbiAgfVxufVxuXG5AaW5jbHVkZSB4cyB7XG4gIC5hYm91dCB7XG4gICAgLnNlY3Rpb24tdGV4dCB7XG4gICAgICBsaW5lLWhlaWdodDogMi40O1xuICAgIH1cbiAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBiZWdpbm5lclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLmJlZ2lubmVyIHtcbiAgdWw6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgfVxuICBsaSB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBkaXNjO1xuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbiAgICB0ZXh0LWluZGVudDogLTEuM2VtO1xuICAgIHBhZGRpbmctbGVmdDogMS41ZW07XG4gICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4gIH1cbiAgLmF0dGVudGlvbiB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgcGFkZGluZy1ib3R0b206IDAuN2VtO1xuICAgIGZvbnQtc2l6ZTogJGZ6MTg7XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTWVudSAmIFByaWNlXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4ubWVudS1ncmlkIHtcbiAgLmhpZGRlbixcbiAgLnZpc2libGUge1xuICAgIHRyYW5zaXRpb246ICR0aW1lRGVmYXVsdDtcbiAgfVxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIC5tZW51LWdyaWQtaXRlbSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgfSAvLyDkuIrmrrXlt6ZcbiAgLm1lbnUtZ3JpZC1tYWluIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIH1cbiAgLm1lbnUtZ3JpZC1pdGVtLS14bGFyZ2Uge1xuICAgIHdpZHRoOiA1NzBweDtcbiAgICBoZWlnaHQ6IDU1NXB4O1xuICB9IC8vIOS4iuauteWPs1xuICAubWVudS1ncmlkLW90aGVyLTEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbiAgLm1lbnUtZ3JpZC1pdGVtLS1zbWFsbCB7XG4gICAgd2lkdGg6IDM1MHB4O1xuICAgIGhlaWdodDogMjY4cHg7XG4gIH0gLy8g5Lit5q61XG4gIC5tZW51LWdyaWQtc3ViIHtcbiAgICBtYXJnaW46IDIwcHggMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgfVxuICAubWVudS1ncmlkLWl0ZW0tLW1lZGl1bSB7XG4gICAgd2lkdGg6IDQ2MHB4O1xuICAgIGhlaWdodDogMzYwcHg7XG4gIH0gLy8g5LiL5q61XG4gIC5tZW51LWdyaWQtb3RoZXItMiB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbiAgLm1lbnUtZ3JpZC1pdGVtLm1lbnUtZ3JpZC1pdGVtLS14c21hbGwge1xuICAgIHdpZHRoOiAyNjVweDtcbiAgICBoZWlnaHQ6IDMwNXB4O1xuICB9XG4gIC5tZW51LWdyaWQtaXRlbS5tZW51LWdyaWQtaXRlbS0tbGFyZ2Uge1xuICAgIHdpZHRoOiA2NTVweDtcbiAgICBoZWlnaHQ6IDMwNXB4O1xuICB9IC8vIGNvbnRlbnRzLWJveFxuICAubWVudS1ncmlkLWl0ZW0tY29udGVudHMge1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHRyYW5zaXRpb246ICR0aW1lRGVmYXVsdDtcbiAgfVxuICAubWVudS1ncmlkLWl0ZW0tY29udGVudHMtaW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmc6IDVweDtcbiAgfVxuICAubWVudS1ncmlkLWl0ZW1fX3RpdGxlIHtcbiAgICB0cmFuc2l0aW9uOiAkdGltZVNsb3c7XG4gICAgZm9udC1zaXplOiAkZnoyNDtcbiAgICBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50aXplKCRtYWluQ29sb3IsIDAuNSk7XG4gICAgICBwYWRkaW5nOiA1cHggMjBweDtcbiAgICAgIHRyYW5zaXRpb246ICR0aW1lRGVmYXVsdDtcbiAgICB9XG4gICAgLm1lbnUtZ3JpZC1pdGVtX190aXRsZS0tc21hbGwge1xuICAgICAgZm9udC1zaXplOiAkZnoxNDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbiAgLm1lbnUtZ3JpZC1pdGVtX190ZXh0IHtcbiAgICBmb250LXNpemU6ICRmejE0XzU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIH1cbiAgLm1lbnUtZ3JpZC1pdGVtX19wcmljZS1ib3gge31cbiAgLm1lbnUtZ3JpZC1pdGVtX19wcmljZSB7XG4gICAgLnRpbWUge1xuICAgICAgd2lkdGg6IDJlbTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIH1cbiAgICAucHJpY2Uge1xuICAgICAgZm9udC1zaXplOiAkZnoxODtcbiAgICAgIHBhZGRpbmctbGVmdDogMC41ZW07XG4gICAgfVxuICB9IC8vIOWQhOOCouOCpOODhuODoOWAi+WIpeaMh+WumlxuICAubWVudS1ncmlkLWl0ZW0tLTEgLm1lbnUtZ3JpZC1pdGVtX190aXRsZSB7fVxuICAubWVudS1ncmlkLWl0ZW0tLTIgLm1lbnUtZ3JpZC1pdGVtX190aXRsZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMTMlLCAzNTAlKVxuICB9XG4gIC5tZW51LWdyaWQtaXRlbS0tMyAubWVudS1ncmlkLWl0ZW1fX3RpdGxlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgyNCUsIDM1MCUpXG4gIH1cbiAgLm1lbnUtZ3JpZC1pdGVtLS00IC5tZW51LWdyaWQtaXRlbV9fdGl0bGUge31cbiAgLm1lbnUtZ3JpZC1pdGVtLS01IC5tZW51LWdyaWQtaXRlbV9fdGl0bGUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDQ0JSwgNTQwJSlcbiAgfVxuICAubWVudS1ncmlkLWl0ZW0tLTYgLm1lbnUtZ3JpZC1pdGVtX190aXRsZSB7fVxuICAubWVudS1ncmlkLWl0ZW0tLTcgLm1lbnUtZ3JpZC1pdGVtX190aXRsZSB7fVxuICAubWVudS1ncmlkLWl0ZW0tLTcge1xuICAgICoge1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAubWVudS1ncmlkLWl0ZW1fX3RleHQge1xuICAgICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgfVxuICAgIC5tZW51LWdyaWQtaXRlbV9fdGV4dCxcbiAgICAubWVudS1ncmlkLWl0ZW0tYXR0ZW50aW9uLXByaWNlLWJveCB7XG4gICAgICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnRpemUoJG1haW5Db2xvciwgMC43KTtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICAubWVudS1ncmlkLWl0ZW1fX3RleHQsXG4gICAgICAubWVudS1ncmlkLWl0ZW0tYXR0ZW50aW9uLXByaWNlLWJveCB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAaW5jbHVkZSB4cyB7XG4gICAgLm1lbnUtZ3JpZC1pdGVtLS03IHtcbiAgICAgIC5tZW51LWdyaWQtaXRlbV9fdGV4dCxcbiAgICAgIC5tZW51LWdyaWQtaXRlbS1hdHRlbnRpb24tcHJpY2UtYm94IHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB9XG4gICAgfVxuICB9IC8vIOODm+ODkOODvOaZglxuICAubWVudS1ncmlkLS1hY3RpdmUge1xuICAgIC5tZW51LWdyaWQtaXRlbS1jb250ZW50cyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkbWFpbkNvbG9yLCAwLjUpO1xuICAgIH1cbiAgICAubWVudS1ncmlkLWl0ZW1fX3RpdGxlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDApO1xuICAgICAgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG4gICAgfVxuICB9IC8vIGFyb21hIHN3ZWRpc2hcbiAgLm1lbnUtZ3JpZC1pdGVtLXNwZWNpYWwtYmxvY2sge1xuICAgIHBhZGRpbmc6IDAgNTBweDtcbiAgfVxuICAubWVudS1ncmlkLWl0ZW0tc3BlY2lhbC1ibG9ja19fdGV4dCB7XG4gICAgZm9udC1zaXplOiAkZnoxNjtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICB9XG4gIC5tZW51LWdyaWQtaXRlbS1zcGVjaWFsLWJsb2NrLWxpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB9XG4gIC5tZW51LWdyaWQtaXRlbS1zcGVjaWFsLWJsb2NrLWxpc3QtaXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGltZyB7XG4gICAgICB3aWR0aDogNjAlO1xuICAgIH1cbiAgfVxuICAubWVudS1ncmlkLWl0ZW0tc3BlY2lhbC1ibG9jay1saXN0LWl0ZW1fX3RleHQge1xuICAgIGZvbnQtc2l6ZTogJGZ6MTg7XG4gICAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gICAgd2lkdGg6IGNhbGMoNDAlICsgMTBweCk7XG4gICAgJi5pdGVtLS1tb29uIHtcbiAgICAgIGNvbG9yOiAjMGMyYjYwO1xuICAgIH1cbiAgICAmLml0ZW0tLXNub3cge1xuICAgICAgY29sb3I6ICM2YWFhYzA7XG4gICAgfVxuICAgICYuaXRlbS0tZmxvd2VyIHtcbiAgICAgIGNvbG9yOiAjYTc3NTk5O1xuICAgIH1cbiAgfVxuICAubWVudS1ncmlkLWl0ZW0tYXR0ZW50aW9uLXByaWNlLWJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAubWVudS1ncmlkLWl0ZW1fX2F0dGVudGlvbi1ib3gge1xuICAgICAgLmF0dGVudGlvbiB7fVxuICAgIH1cbiAgfVxufVxuXG4ubWVudS1wcmljZSB7XG4gIC5tZW51LWF0dGVudGlvbiB7XG4gICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICBmb250LXNpemU6ICRmejE4O1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGNvbG9yOiAkbWFpbkNvbG9yO1xuICAgIHNwYW4ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cbiAgfVxuICAubWVudS1saW5rIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBjb2xvcjogJG1haW5Db2xvcjtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xuICAgIGEge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRtYWluQ29sb3I7XG4gICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgaSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDVweDtcbiAgICAgICAgdHJhbnNpdGlvbjogJHRpbWVEZWZhdWx0O1xuICAgICAgfVxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6ICRvcGM7XG4gICAgICAgIGkge1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgeHMge1xuICAubWVudS1ncmlkLXdyYXBwZXIge1xuICAgID4uY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG4gIC5tZW51LWdyaWQge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IC8vIOS4iuauteW3plxuICAgIC5tZW51LWdyaWQtbWFpbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxuICAgIC5tZW51LWdyaWQtaXRlbSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBtYXJnaW4tdG9wOiAxMDBweDtcbiAgICB9XG4gICAgLm1lbnUtZ3JpZC1pdGVtLS14bGFyZ2Uge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBwYWRkaW5nLXRvcDogOTcuMzY4NCU7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgLm1lbnUtZ3JpZC1pdGVtLWNvbnRlbnRzIHtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgfVxuICAgIH0gLy8g5LiK5q615Y+zXG4gICAgLm1lbnUtZ3JpZC1vdGhlci0xIHtcbiAgICAgIG9yZGVyOiAzO1xuICAgIH1cbiAgICAubWVudS1ncmlkLWl0ZW0tLXNtYWxsIHtcbiAgICAgIHdpZHRoOiA3NSU7XG4gICAgICBwYWRkaW5nLXRvcDogY2FsYyg3Ni41NzE0JSArIDEwJSk7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICAmOm50aC1vZi10eXBlKDEpIHtcbiAgICAgICAgLm1lbnUtZ3JpZC1pdGVtLWNvbnRlbnRzIHtcbiAgICAgICAgICB0b3A6IDUwcHg7XG4gICAgICAgICAgcmlnaHQ6IC0yMnZ3O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmOm50aC1vZi10eXBlKDIpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoMTAwJSAtIDc1JSk7XG4gICAgICAgIC5tZW51LWdyaWQtaXRlbS1jb250ZW50cyB7XG4gICAgICAgICAgdG9wOiA1MHB4O1xuICAgICAgICAgIGxlZnQ6IC0yMnZ3O1xuICAgICAgICAgIDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gLy8g5Lit5q61XG4gICAgLm1lbnUtZ3JpZC1zdWIge1xuICAgICAgb3JkZXI6IDI7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgICAubWVudS1ncmlkLWl0ZW0tLW1lZGl1bSB7XG4gICAgICB3aWR0aDogODUlO1xuICAgICAgcGFkZGluZy10b3A6IGNhbGMoNzguMjYwOCUgKyAwJSk7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICAmOm50aC1vZi10eXBlKDEpIHtcbiAgICAgICAgLm1lbnUtZ3JpZC1pdGVtLWNvbnRlbnRzIHtcbiAgICAgICAgICB0b3A6IDUwcHg7XG4gICAgICAgICAgcmlnaHQ6IC0xMnZ3O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAmOm50aC1vZi10eXBlKDIpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoMTAwJSAtIDg1JSk7XG4gICAgICAgIC5tZW51LWdyaWQtaXRlbS1jb250ZW50cyB7XG4gICAgICAgICAgdG9wOiA1MHB4O1xuICAgICAgICAgIGxlZnQ6IC0xMnZ3O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSAvLyDkuIvmrrVcbiAgICAubWVudS1ncmlkLW90aGVyLTIge1xuICAgICAgb3JkZXI6IDQ7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgICAubWVudS1ncmlkLWl0ZW0ubWVudS1ncmlkLWl0ZW0tLXhzbWFsbCB7XG4gICAgICB3aWR0aDogNjUlO1xuICAgICAgcGFkZGluZy10b3A6IGNhbGMoODUuMDk0MyUpO1xuICAgICAgaGVpZ2h0OiAwO1xuICAgICAgLm1lbnUtZ3JpZC1pdGVtLWNvbnRlbnRzIHtcbiAgICAgICAgdG9wOiA1MHB4O1xuICAgICAgICByaWdodDogLTMydnc7XG4gICAgICB9XG4gICAgfVxuICAgIC5tZW51LWdyaWQtaXRlbS5tZW51LWdyaWQtaXRlbS0tbGFyZ2Uge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBwYWRkaW5nLXRvcDogY2FsYyg0Ni41NjQ4JSArIDU1JSk7XG4gICAgICAubWVudS1ncmlkLWl0ZW0tY29udGVudHMge1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICB9XG4gICAgfSAvLyBjb250ZW50cy1ib3hcbiAgICAubWVudS1ncmlkLWl0ZW0tY29udGVudHMge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICAubWVudS1ncmlkLWl0ZW0tY29udGVudHMtaW5uZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJG1haW5Db2xvciwgMC41KTtcbiAgICB9XG4gICAgLm1lbnUtZ3JpZC1pdGVtX190aXRsZSB7XG4gICAgICBmb250LXNpemU6ICRmejIyO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCkgIWltcG9ydGFudDtcbiAgICAgIHNwYW4ge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB9XG4gICAgfVxuICAgIC5tZW51LWdyaWQtaXRlbV9fdGV4dCB7XG4gICAgICBmb250LXNpemU6ICRmejE0O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgfSAvLyBhcm9tYSBzd2VkaXNoXG4gICAgLm1lbnUtZ3JpZC1pdGVtLXNwZWNpYWwtYmxvY2sge1xuICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIH1cbiAgICAubWVudS1ncmlkLWl0ZW0tc3BlY2lhbC1ibG9ja19fdGV4dCB7XG4gICAgICBmb250LXNpemU6ICRmejE2O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICB9XG4gICAgLm1lbnUtZ3JpZC1pdGVtLXNwZWNpYWwtYmxvY2stbGlzdCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cbiAgICAubWVudS1ncmlkLWl0ZW0tc3BlY2lhbC1ibG9jay1saXN0LWl0ZW0ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBpbWcge1xuICAgICAgICB3aWR0aDogNjAlO1xuICAgICAgfVxuICAgIH1cbiAgICAubWVudS1ncmlkLWl0ZW0tc3BlY2lhbC1ibG9jay1saXN0LWl0ZW1fX3RleHQge1xuICAgICAgZm9udC1zaXplOiAkZnoxNjtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgJi5pdGVtLS1tb29uIHtcbiAgICAgICAgY29sb3I6ICMwYzJiNjA7XG4gICAgICB9XG4gICAgICAmLml0ZW0tLXNub3cge1xuICAgICAgICBjb2xvcjogIzZhYWFjMDtcbiAgICAgIH1cbiAgICAgICYuaXRlbS0tZmxvd2VyIHtcbiAgICAgICAgY29sb3I6ICNhNzc1OTk7XG4gICAgICB9XG4gICAgfVxuICAgIC5tZW51LWdyaWQtaXRlbS1hdHRlbnRpb24tcHJpY2UtYm94IHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAubWVudS1ncmlkLWl0ZW1fX2F0dGVudGlvbi1ib3gge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7XG4gICAgICAgIC5hdHRlbnRpb24ge1xuICAgICAgICAgIGZvbnQtc2l6ZTogJGZ6MTI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC5tZW51LWdyaWQtaXRlbV9fcHJpY2UtYm94IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5tZW51LXByaWNlIHtcbiAgICAubWVudS1hdHRlbnRpb24ge1xuICAgICAgc3BhbiB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICAgIC5tZW51LWxpbmsge1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICBjb2xvcjogJG1haW5Db2xvcjtcbiAgICAgIG1hcmdpbi10b3A6IDE1cHg7XG4gICAgICBhIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJG1haW5Db2xvcjtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgaSB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogNXB4O1xuICAgICAgICAgIHRyYW5zaXRpb246ICR0aW1lRGVmYXVsdDtcbiAgICAgICAgfVxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBvcGFjaXR5OiAkb3BjO1xuICAgICAgICAgIGkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gZGVhci1wYXRyb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4uZGVhci1wYXRyb25zIHtcblxuICAuc2VjdGlvbi10aXRsZS0tZGVhci1wYXRyb25zIHtcbiAgICBzcGFue1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEyLDQzLDk2LDAuNSk7XG4gICAgcGFkZGluZzogNXB4IDIwcHg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogM3B4IDIwcHg7XG4gICAgZm9udC1zaXplOiAkZnoyMDtcbiAgICB9XG4gIH1cbiAgLmxlYWR7XG4gICAgcGFkZGluZy10b3A6IDIwcHg7XG4gICAgY29sb3I6ICRtYWluQ29sb3I7XG5cbiAgICBAaW5jbHVkZSB4cyB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgfVxuXG4gIC5zbWFsbC10aXRsZXtcbiAgICBwYWRkaW5nLXRvcDogNTBweDtcbiAgICBjb2xvcjogJHN1YkNvbG9yO1xuICAgIGZvbnQtc2l6ZTogJGZ6MTg7XG5cbiAgICBAaW5jbHVkZSB4cyB7XG4gICAgICBwYWRkaW5nLXRvcDogMzBweDtcbiAgICB9XG4gIH1cbiAgLmxpc3RfX2l0ZW0ge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDtcbiAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG4gICAgY29sb3I6ICRtYWluQ29sb3I7XG4gICAgdGV4dC1pbmRlbnQ6IC0xZW07XG4gICAgcGFkZGluZy1sZWZ0OiAxZW07XG4gICAgbWFyZ2luLXRvcDogMC41ZW07XG4gIH1cbiAgLm1lc3NhZ2Uge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIHBhZGRpbmctdG9wOiAzMHB4O1xuICAgIGNvbG9yOiAkbWFpbkNvbG9yO1xuICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIGdpZnQgdm91Y2hlclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLmdpZnQtdm91Y2hlciB7XG5cbiAgLmdpZnQtdm91Y2hlci1jb250ZW50cy1ib3h7XG4gICAgaGVpZ2h0OiA2NDBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvaG9tZS9naWZ0LXZvdWNoZXItYmctMi5wbmcnKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cbiAgICBAaW5jbHVkZSB4cyB7XG4gICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgIGhlaWdodDogYXV0bztcbiAgICB9XG4gIH1cbiAgLmdpZnQtdm91Y2hlci1jb250ZW50cyB7XG4gICAgcGFkZGluZzogNzVweCA4MHB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgeHMge1xuICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgfVxuICAuZ2lmdC12b3VjaGVyLWNvbnRlbnRzX19pbWcge1xuICAgIC53cmFwe1xuICAgICAgd2lkdGg6IDI4MHB4O1xuICAgICAgYm94LXNoYWRvdzogMCAwIDIwcHggIzg4ODtcblxuICAgICAgQGluY2x1ZGUgeHMge1xuICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4ICM4ODg7XG4gICAgICB9XG4gICAgfVxuICAgIC53cmFwICsgLndyYXAge1xuICAgICAgbWFyZ2luLXRvcDogMzVweDtcblxuICAgICAgQGluY2x1ZGUgeHMge1xuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuZ2lmdC12b3VjaGVyLWNvbnRlbnRzX19tYWluIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XG5cbiAgICBAaW5jbHVkZSB4cyB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXRvcDogNDBweDtcbiAgICB9XG4gICAgLmdpZnQtdm91Y2hlci1jb250ZW50c19fbWFpbi1oZWFkaW5nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgY29sb3I6ICRtYWluQ29sb3I7XG4gICAgICBmb250LXNpemU6ICRmejIwO1xuICAgIH1cblxuICAgIC5saXN0e1xuICAgICAgY29sb3I6ICRtYWluQ29sb3I7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIH1cbiAgICAubGlzdF9faXRlbXtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGlzYztcbiAgICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbiAgICAgIHRleHQtaW5kZW50OiAtMWVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAxZW07XG4gICAgfVxuICAgIGJ7XG4gICAgICBtYXJnaW4tdG9wOiAzMHB4O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogMTBweCA0MHB4O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LDI1NSwyNTUsMCkgMCUsICM3ODdjOWMgMjUlLCAjNzg3YzljIDUwJSwgIzc4N2M5YyA3NSUsIHJnYmEoMjU1LDI1NSwyNTUsMCkgMTAwJSk7XG4gICAgfVxuICB9XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIHNlY3Rpb25fbmFtZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLm1lbWJlci1jYXJkIHtcblxuICAubWVtYmVyLWNhcmQtY29udGVudHMtYm94e1xuICAgIGhlaWdodDogNjA1cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1nL2hvbWUvbWVtYmVyLWNhcmQtYmcucG5nJyk7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXG4gICAgQGluY2x1ZGUgeHMge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgIH1cbiAgfVxuICAubWVtYmVyLWNhcmQtY29udGVudHMge1xuICAgIHBhZGRpbmc6IDQwcHggNzBweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSB4cyB7XG4gICAgICBwYWRkaW5nOiAxNXB4O1xuICAgICB9XG4gIH1cbiAgLmltZy13cmFwIHtcbiAgICB3aWR0aDogMzUlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgQGluY2x1ZGUgeHMge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG4gIC5tZW1iZXItY2FyZC1jb250ZW50cy1oZWFkaW5ne1xuICAgIGNvbG9yOiAkc3ViQ29sb3I7XG4gICAgZm9udC1zaXplOiAkZnoxODtcbiAgICBtYXJnaW4tdG9wOiA1MHB4O1xuXG4gICAgQGluY2x1ZGUgeHMge1xuICAgICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICB9XG4gIH1cblxuICAubGlzdCB7fVxuICAubGlzdF9faXRlbSB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xuICAgIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbiAgICB0ZXh0LWluZGVudDogLTFlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDFlbTtcbiAgICBjb2xvcjogJG1haW5Db2xvcjtcbiAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBuZXdzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4ubmV3cy1ib3gge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMjBweCAwO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MDBweCkge1xuICAuZmJfaWZyYW1lX3dpZGdldCxcbiAgLmZiX2lmcmFtZV93aWRnZXQgc3BhbixcbiAgLmZiX2lmcmFtZV93aWRnZXQgaWZyYW1lW3N0eWxlXSB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBzaG9wXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4uc2hvcCB7XG4gIC5zaG9wLWNvbnRlbnRzLWJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbiAgLmNvbnRhaW5lci1pbm5lci0tc21hbGwge1xuICAgIHdpZHRoOiA3MTBweDtcbiAgfVxuICAuc2hvcC1jb250ZW50cy1tYWluIHtcbiAgICBjb2xvcjogJG1haW5Db2xvcjtcbiAgfVxuICAuc2hvcC1jb250ZW50c19fc2hvcC10aXRsZSB7XG4gICAgc3BhbiB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJG1haW5Db2xvcjtcbiAgICB9XG4gIH1cbiAgLnNob3AtY29udGVudHNfX2FkZHJlc3Mge1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICB9XG4gIC5zaG9wLWNvbnRlbnRzX19vcGVuLWhvdXIge1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgc3BhbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cbiAgLnNob3AtY29udGVudHNfX3RlbCB7XG4gICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICBmb250LXNpemU6ICRmejE4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG4gIC5zaG9wLWNvbnRlbnRzLWltZyB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBpbWcge1xuICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgd2lkdGg6IDM3MHB4O1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgfVxuICAuc2hvcC1jb250ZW50c19fYXR0ZW50aW9uIHtcbiAgICBwYWRkaW5nLXRvcDogMzBweDtcbiAgICBmb250LXNpemU6ICRmejEzO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiAjZmQ0NjQ2O1xuICB9XG4gIC5zaG9wLW1hcCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0MDBweDtcbiAgICBtYXJnaW4tdG9wOiAxMDBweDtcbiAgfVxufVxuXG5AaW5jbHVkZSB4cyB7XG4gIC5zaG9wIHtcbiAgICAuc2hvcC1jb250ZW50cy1ib3gge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgIH1cbiAgICAuY29udGFpbmVyLWlubmVyLS1zbWFsbCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgLnNob3AtY29udGVudHMtbWFpbiB7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICAgIH1cbiAgICAuc2hvcC1jb250ZW50c19fc2hvcC10aXRsZSB7XG4gICAgICBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAkZnoyMDtcbiAgICAgIH1cbiAgICB9XG4gICAgLnNob3AtY29udGVudHNfX3RlbCB7XG4gICAgICBmb250LXNpemU6ICRmejIwO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRtYWluQ29sb3I7XG4gICAgfVxuICAgIC5zaG9wLWNvbnRlbnRzLWltZyB7XG4gICAgICBpbWcge1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXRvcDogODQlO1xuICAgICAgfVxuICAgIH1cbiAgICAuc2hvcC1jb250ZW50c19fYXR0ZW50aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogJGZ6MTU7XG4gICAgICBsaW5lLWhlaWdodDogMS43O1xuICAgIH1cbiAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyByZXNlcnZhdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLnJlc2VydmF0aW9uIHtcbiAgcGFkZGluZy10b3A6IDEwMHB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTAwcHg7XG4gIC5yZXNlcnZhdGlvbi1idG4ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBjb250YWN0XG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4ud3BjZjcge1xuICAuY29udGFjdC10YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgdGgsXG4gIHRkIHtcbiAgICBwYWRkaW5nOiAxNXB4IDA7XG4gIH1cbiAgdGgge1xuICAgIHdpZHRoOiAzMCU7XG4gICAgcGFkZGluZy1yaWdodDogNSU7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbiAgdGQge1xuICAgIHdpZHRoOiA3MCU7XG4gIH1cbiAgLnJlcXVpcmUge1xuICAgIGNvbG9yOiByZWQ7XG4gIH1cbiAgaW5wdXRbdHlwZT10ZXh0XSxcbiAgdGV4dGFyZWEge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICM5Njk2OTY7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTBweCA1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigyNDMsIDI0MywgMjQzKTtcbiAgICB9XG4gIH1cbiAgLmFncmVlLWJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB9XG4gIC5hZ3JlZS1sYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMjBweDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYWFhO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIH1cbiAgLmFncmVlLXRleHQge1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICBwYWRkaW5nLXRvcDogNXB4O1xuICAgIGEge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgY29sb3I6ICRzdWJDb2xvcjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgJjpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6ICRvcGM7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5idG4ge1xuICAgIHRyYW5zaXRpb246ICR0aW1lRGVmYXVsdDtcbiAgfSAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIGNoZWNrYm9444Gu44K544K/44Kk44Or55SoXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLmNoZWNrYm94LWljb24ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAzcHg7XG4gICAgICB0cmFuc2l0aW9uOiAkdGltZUZhc3Q7XG4gICAgfVxuICAgICY6YmVmb3JlIHtcbiAgICAgIGhlaWdodDogMTJweDtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlKC0zcHgsIDVweCk7XG4gICAgfVxuICAgICY6YWZ0ZXIge1xuICAgICAgaGVpZ2h0OiAyNXB4O1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDhkZWcpIHRyYW5zbGF0ZSg2cHgsIC0xM3B4KTtcbiAgICB9XG4gIH1cbiAgaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgJjpjaGVja2VkKy5jaGVja2JveC1pY29uIHtcbiAgICAgICY6YmVmb3JlLFxuICAgICAgJjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzdWJDb2xvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQGluY2x1ZGUgeHMge1xuICAud3BjZjcge1xuICAgIHRoLFxuICAgIHRkIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIHRoIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgfVxufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBmb3JtIOmAgeS/oeWujOS6huaWh+iogFxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLmZvcm0tY29tcGxldGUge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogJGZ6MjY7XG4gIGNvbG9yOiAkc3ViQ29sb3I7XG59IiwiLnBvc3R7XG4gIGNvbG9yOiAkbWFpbkNvbG9yO1xuICBoMixoMyxoNHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICAgIHBhZGRpbmc6IDAuMmVtIDAuNWVtO1xuICB9XG4gIGgye1xuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJHN1YkNvbG9yLCAwKTtcbiAgfVxuICBoM3tcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRzdWJDb2xvciwgMTApO1xuICB9XG4gIGg0e1xuICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJHN1YkNvbG9yLCAxNSk7XG4gIH1cbiAgcHtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG4gIGF7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIGNvbG9yOiAkc3ViQ29sb3I7XG4gIH1cbiAgaW1ne1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG59Il19 */