/*

$breakpoint-classes: (small medium-small medium large xlarge);

$breakpoints: (
        small: 0px,
        medium-small: 440px,
        medium: 768px,
        large: 1024px,
        xlarge: 1200px,
        xxlarge: 1440px,
);

// Media Query Ranges
$xsmall-range: (0em, 27.5em); // 0px to 440px -- this is not a built-in Foundation range
$small-range: (0em, 48em); // 0px to 768px
$large-range: (48.063em, 90em); // 769px to 1440px

*/
/*
.block {
  @include serif(18, 25, 500, italic);

  @include breakpoint(large) {
    font-size: 25px;
    line-height: 35px;
  }
}
*/
/*
  @mixin font_smoothing

  Set font smoothing ON or OFF
*/
/*
  @mixin text-underline

  Inserts vendor prefixed box shadows

  Parameters:
  $off - color
  $on - color for hover
  $pos - vertical position
*/
/*
  @mixin hide_text

  Hides text in an element
*/
/*
  @mixin active

  Combines hover, focus and active styles
*/
@font-face {
    font-family: "Neue Display Random";
    src: url("../fonts/NeueDisplay-Random.eot");
    src: url("../fonts/NeueDisplay-Random.eot?#iefix") format("embedded-opentype"), url("../fonts/NeueDisplay-Random.woff") format("woff");
    font-weight: 400; }

@font-face {
    font-family: "Neue Regular";
    src: url("../fonts/Neue-Regular.eot");
    src: url("../fonts/Neue-Regular.eot?#iefix") format("embedded-opentype"), url("../fonts/Neue-Regular.woff") format("woff");
    font-weight: 400; }

@font-face {
    font-family: "Neue Regular";
    src: url("../fonts/Neue-RegularItalic.eot");
    src: url("../fonts/Neue-RegularItalic.eot?#iefix") format("embedded-opentype"), url("../fonts/Neue-RegularItalic.woff") format("woff");
    font-style: italic;
    font-weight: 400; }

@font-face {
    font-family: "Neue Regular";
    src: url("../fonts/Neue-Black.eot");
    src: url("../fonts/Neue-Black.eot?#iefix") format("embedded-opentype"), url("../fonts/Neue-Black.woff") format("woff");
    font-weight: 800; }

@font-face {
    font-family: "Neue Regular";
    src: url("../fonts/Neue-BlackItalic.eot");
    src: url("../fonts/Neue-BlackItalic.eot?#iefix") format("embedded-opentype"), url("../fonts/Neue-BlackItalic.woff") format("woff");
    font-style: italic;
    font-weight: 800; }

.icon--facebook {
    height: 18px;
    width: 18px; }

.icon--twitter {
    height: 18px;
    width: 18px; }

.icon--youtube {
    height: 18px;
    width: 18px; }

.icon--instagram {
    height: 18px;
    width: 18px; }

.algolia-autocomplete {
    width: 100%; }
@media screen and (min-width: 40em) {
    .algolia-autocomplete {
        display: none !important;
        width: calc(100% - 60px);
        left: 30px; } }
.is-active .algolia-autocomplete {
    display: inline-block !important; }

.algolia-autocomplete .aa-input,
.algolia-autocomplete .aa-hint {
    width: 100%; }

.algolia-autocomplete .aa-hint {
    color: #999; }

.algolia-autocomplete .aa-dropdown-menu {
    font-family: "Neue Regular";
    font-size: 13px;
    line-height: 20px;
    font-weight: normal;
    font-style: normal;
    letter-spacing: 0;
    background: #F2F2F2;
    border-bottom: 1px solid #D9D9D9;
    padding: 15px;
    width: 100%; }
.js-sans-loaded .algolia-autocomplete .aa-dropdown-menu {
    font-family: sans-serif; }
.m-contentFilters--dark .algolia-autocomplete .aa-dropdown-menu {
    background: #212121; }
@media screen and (min-width: 40em) {
    .algolia-autocomplete .aa-dropdown-menu {
        font-family: "Neue Regular";
        font-size: 13px;
        line-height: 23px;
        font-weight: normal;
        font-style: normal;
        letter-spacing: 0;
        padding: 29px 15px 26px;
        width: auto;
        left: -30px !important;
        right: -30px !important; }
    .js-sans-loaded .algolia-autocomplete .aa-dropdown-menu {
        font-family: sans-serif; } }
@media screen and (min-width: 64em) {
    .algolia-autocomplete .aa-dropdown-menu {
        font-family: "Neue Regular";
        font-size: 14px;
        line-height: 25px;
        font-weight: normal;
        font-style: normal;
        letter-spacing: 0;
        padding: 24px 30px 23px; }
    .js-sans-loaded .algolia-autocomplete .aa-dropdown-menu {
        font-family: sans-serif; } }

.algolia-autocomplete .aa-dropdown-menu .aa-suggestion {
    cursor: pointer;
    transition: color ease-in-out 180ms; }
.algolia-autocomplete .aa-dropdown-menu .aa-suggestion:not(:last-of-type) {
    margin: 0 0 10px; }

.algolia-autocomplete .aa-dropdown-menu .aa-suggestion.aa-cursor {
    color: #E42A1D; }

.algolia-autocomplete .aa-dropdown-menu .aa-suggestion em {
    font-weight: bold;
    font-style: normal; }

@media screen and (min-width: 40em) {
    .m-contentList--grid-view .ais-hits, .m-contentList--grid-view
    .ais-infinite-hits {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        margin: 0 -20px; } }

@media screen and (min-width: 40em) {
    .ais-hits--item,
    .ais-infinite-hits--item {
        -webkit-flex: 0 1 auto;
        -ms-flex: 0 1 auto;
        flex: 0 1 auto;
        padding: 0 20px;
        width: 50%; } }

@media screen and (min-width: 64em) {
    .ais-hits--item,
    .ais-infinite-hits--item {
        width: 33.33%; } }

.m-contentList--list-view .ais-infinite-hits--showmore {
    margin-top: 80px; }

.ais-infinite-hits--showmore button {
    font-family: "Neue Regular";
    font-size: 10px;
    line-height: 15px;
    font-weight: 800;
    font-style: normal;
    letter-spacing: 0.03rem;
    background: none;
    border: 2px solid #767676;
    color: #767676;
    display: block;
    line-height: 66px;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    transition: background ease-in-out 180ms, color ease-in-out 180ms;
    width: 100%;
    -webkit-appearance: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }
.js-sans-loaded .ais-infinite-hits--showmore button {
    font-family: sans-serif; }
.ais-infinite-hits--showmore button:disabled {
    display: none; }
@media screen and (min-width: 40em) {
    .ais-infinite-hits--showmore button {
        margin: 0 auto 14px;
        width: 360px; } }
@media screen and (min-width: 64em) {
    .ais-infinite-hits--showmore button {
        font-family: "Neue Regular";
        font-size: 13px;
        line-height: 20px;
        font-weight: 800;
        font-style: normal;
        letter-spacing: 0.03rem;
        height: 70px;
        line-height: 66px; }
    .js-sans-loaded .ais-infinite-hits--showmore button {
        font-family: sans-serif; }
    .ais-infinite-hits--showmore button:hover, .ais-infinite-hits--showmore button:focus, .ais-infinite-hits--showmore button:active {
        background: #767676;
        border: 2px solid #767676;
        color: #FFFFFF;
        cursor: pointer; } }

/*!
 * animate.css -http://daneden.me/animate
 * Version - 3.5.1
 * Licensed under the MIT license - http://opensource.org/licenses/MIT
 *
 * Copyright (c) 2016 Daniel Eden
 */
@media screen and (min-width: 64em) {
    .js [data-behavior="Animate"] {
        opacity: 0; }
    .js [data-behavior="Animate"].disabled {
        opacity: 1; } }

@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
    .js [data-behavior="Animate"] {
        opacity: 1; } }

@media screen and (min-width: 64em) {
    .touch [data-behavior="Animate"] {
        opacity: 1; } }

.layer-2 {
    position: relative;
    z-index: 2; }

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

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

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

.animated.delay {
    -webkit-animation-delay: 500ms;
    animation-delay: 500ms; }

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

@-webkit-keyframes bounce {
    from, 20%, 53%, 80%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); }
    40%, 43% {
        -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        -webkit-transform: translate3d(0, -30px, 0);
        transform: translate3d(0, -30px, 0); }
    70% {
        -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        -webkit-transform: translate3d(0, -15px, 0);
        transform: translate3d(0, -15px, 0); }
    90% {
        -webkit-transform: translate3d(0, -4px, 0);
        transform: translate3d(0, -4px, 0); } }

@keyframes bounce {
    from, 20%, 53%, 80%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); }
    40%, 43% {
        -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        -webkit-transform: translate3d(0, -30px, 0);
        transform: translate3d(0, -30px, 0); }
    70% {
        -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        -webkit-transform: translate3d(0, -15px, 0);
        transform: translate3d(0, -15px, 0); }
    90% {
        -webkit-transform: translate3d(0, -4px, 0);
        transform: translate3d(0, -4px, 0); } }

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

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

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

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

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes pulse {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1); }
    50% {
        -webkit-transform: scale3d(1.05, 1.05, 1.05);
        transform: scale3d(1.05, 1.05, 1.05); }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1); } }
@keyframes pulse {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1); }
    50% {
        -webkit-transform: scale3d(1.05, 1.05, 1.05);
        transform: scale3d(1.05, 1.05, 1.05); }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1); } }

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

@-webkit-keyframes rubberBand {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1); }
    30% {
        -webkit-transform: scale3d(1.25, 0.75, 1);
        transform: scale3d(1.25, 0.75, 1); }
    40% {
        -webkit-transform: scale3d(0.75, 1.25, 1);
        transform: scale3d(0.75, 1.25, 1); }
    50% {
        -webkit-transform: scale3d(1.15, 0.85, 1);
        transform: scale3d(1.15, 0.85, 1); }
    65% {
        -webkit-transform: scale3d(0.95, 1.05, 1);
        transform: scale3d(0.95, 1.05, 1); }
    75% {
        -webkit-transform: scale3d(1.05, 0.95, 1);
        transform: scale3d(1.05, 0.95, 1); }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1); } }

@keyframes rubberBand {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1); }
    30% {
        -webkit-transform: scale3d(1.25, 0.75, 1);
        transform: scale3d(1.25, 0.75, 1); }
    40% {
        -webkit-transform: scale3d(0.75, 1.25, 1);
        transform: scale3d(0.75, 1.25, 1); }
    50% {
        -webkit-transform: scale3d(1.15, 0.85, 1);
        transform: scale3d(1.15, 0.85, 1); }
    65% {
        -webkit-transform: scale3d(0.95, 1.05, 1);
        transform: scale3d(0.95, 1.05, 1); }
    75% {
        -webkit-transform: scale3d(1.05, 0.95, 1);
        transform: scale3d(1.05, 0.95, 1); }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1); } }

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

@-webkit-keyframes shake {
    from, to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); }
    10%, 30%, 50%, 70%, 90% {
        -webkit-transform: translate3d(-10px, 0, 0);
        transform: translate3d(-10px, 0, 0); }
    20%, 40%, 60%, 80% {
        -webkit-transform: translate3d(10px, 0, 0);
        transform: translate3d(10px, 0, 0); } }

@keyframes shake {
    from, to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); }
    10%, 30%, 50%, 70%, 90% {
        -webkit-transform: translate3d(-10px, 0, 0);
        transform: translate3d(-10px, 0, 0); }
    20%, 40%, 60%, 80% {
        -webkit-transform: translate3d(10px, 0, 0);
        transform: translate3d(10px, 0, 0); } }

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

@-webkit-keyframes headShake {
    0% {
        -webkit-transform: translateX(0);
        transform: translateX(0); }
    6.5% {
        -webkit-transform: translateX(-6px) rotateY(-9deg);
        transform: translateX(-6px) rotateY(-9deg); }
    18.5% {
        -webkit-transform: translateX(5px) rotateY(7deg);
        transform: translateX(5px) rotateY(7deg); }
    31.5% {
        -webkit-transform: translateX(-3px) rotateY(-5deg);
        transform: translateX(-3px) rotateY(-5deg); }
    43.5% {
        -webkit-transform: translateX(2px) rotateY(3deg);
        transform: translateX(2px) rotateY(3deg); }
    50% {
        -webkit-transform: translateX(0);
        transform: translateX(0); } }

@keyframes headShake {
    0% {
        -webkit-transform: translateX(0);
        transform: translateX(0); }
    6.5% {
        -webkit-transform: translateX(-6px) rotateY(-9deg);
        transform: translateX(-6px) rotateY(-9deg); }
    18.5% {
        -webkit-transform: translateX(5px) rotateY(7deg);
        transform: translateX(5px) rotateY(7deg); }
    31.5% {
        -webkit-transform: translateX(-3px) rotateY(-5deg);
        transform: translateX(-3px) rotateY(-5deg); }
    43.5% {
        -webkit-transform: translateX(2px) rotateY(3deg);
        transform: translateX(2px) rotateY(3deg); }
    50% {
        -webkit-transform: translateX(0);
        transform: translateX(0); } }

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

@-webkit-keyframes swing {
    20% {
        -webkit-transform: rotate3d(0, 0, 1, 15deg);
        transform: rotate3d(0, 0, 1, 15deg); }
    40% {
        -webkit-transform: rotate3d(0, 0, 1, -10deg);
        transform: rotate3d(0, 0, 1, -10deg); }
    60% {
        -webkit-transform: rotate3d(0, 0, 1, 5deg);
        transform: rotate3d(0, 0, 1, 5deg); }
    80% {
        -webkit-transform: rotate3d(0, 0, 1, -5deg);
        transform: rotate3d(0, 0, 1, -5deg); }
    to {
        -webkit-transform: rotate3d(0, 0, 1, 0deg);
        transform: rotate3d(0, 0, 1, 0deg); } }

@keyframes swing {
    20% {
        -webkit-transform: rotate3d(0, 0, 1, 15deg);
        transform: rotate3d(0, 0, 1, 15deg); }
    40% {
        -webkit-transform: rotate3d(0, 0, 1, -10deg);
        transform: rotate3d(0, 0, 1, -10deg); }
    60% {
        -webkit-transform: rotate3d(0, 0, 1, 5deg);
        transform: rotate3d(0, 0, 1, 5deg); }
    80% {
        -webkit-transform: rotate3d(0, 0, 1, -5deg);
        transform: rotate3d(0, 0, 1, -5deg); }
    to {
        -webkit-transform: rotate3d(0, 0, 1, 0deg);
        transform: rotate3d(0, 0, 1, 0deg); } }

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

@-webkit-keyframes tada {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1); }
    10%, 20% {
        -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
        transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); }
    30%, 50%, 70%, 90% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); }
    40%, 60%, 80% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1); } }

@keyframes tada {
    from {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1); }
    10%, 20% {
        -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
        transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); }
    30%, 50%, 70%, 90% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); }
    40%, 60%, 80% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
        transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); }
    to {
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1); } }

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

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes wobble {
    from {
        -webkit-transform: none;
        transform: none; }
    15% {
        -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
        transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); }
    30% {
        -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
        transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); }
    45% {
        -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
        transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); }
    60% {
        -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
        transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); }
    75% {
        -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
        transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); }
    to {
        -webkit-transform: none;
        transform: none; } }
@keyframes wobble {
    from {
        -webkit-transform: none;
        transform: none; }
    15% {
        -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
        transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); }
    30% {
        -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
        transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); }
    45% {
        -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
        transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); }
    60% {
        -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
        transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); }
    75% {
        -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
        transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); }
    to {
        -webkit-transform: none;
        transform: none; } }

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

@-webkit-keyframes jello {
    from, 11.1%, to {
        -webkit-transform: none;
        transform: none; }
    22.2% {
        -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
        transform: skewX(-12.5deg) skewY(-12.5deg); }
    33.3% {
        -webkit-transform: skewX(6.25deg) skewY(6.25deg);
        transform: skewX(6.25deg) skewY(6.25deg); }
    44.4% {
        -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
        transform: skewX(-3.125deg) skewY(-3.125deg); }
    55.5% {
        -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
        transform: skewX(1.5625deg) skewY(1.5625deg); }
    66.6% {
        -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
        transform: skewX(-0.78125deg) skewY(-0.78125deg); }
    77.7% {
        -webkit-transform: skewX(0.39062deg) skewY(0.39062deg);
        transform: skewX(0.39062deg) skewY(0.39062deg); }
    88.8% {
        -webkit-transform: skewX(-0.19531deg) skewY(-0.19531deg);
        transform: skewX(-0.19531deg) skewY(-0.19531deg); } }

@keyframes jello {
    from, 11.1%, to {
        -webkit-transform: none;
        transform: none; }
    22.2% {
        -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
        transform: skewX(-12.5deg) skewY(-12.5deg); }
    33.3% {
        -webkit-transform: skewX(6.25deg) skewY(6.25deg);
        transform: skewX(6.25deg) skewY(6.25deg); }
    44.4% {
        -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
        transform: skewX(-3.125deg) skewY(-3.125deg); }
    55.5% {
        -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
        transform: skewX(1.5625deg) skewY(1.5625deg); }
    66.6% {
        -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
        transform: skewX(-0.78125deg) skewY(-0.78125deg); }
    77.7% {
        -webkit-transform: skewX(0.39062deg) skewY(0.39062deg);
        transform: skewX(0.39062deg) skewY(0.39062deg); }
    88.8% {
        -webkit-transform: skewX(-0.19531deg) skewY(-0.19531deg);
        transform: skewX(-0.19531deg) skewY(-0.19531deg); } }

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

@-webkit-keyframes bounceIn {
    from, 20%, 40%, 60%, 80%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
    0% {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3); }
    20% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1);
        transform: scale3d(1.1, 1.1, 1.1); }
    40% {
        -webkit-transform: scale3d(0.9, 0.9, 0.9);
        transform: scale3d(0.9, 0.9, 0.9); }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(1.03, 1.03, 1.03);
        transform: scale3d(1.03, 1.03, 1.03); }
    80% {
        -webkit-transform: scale3d(0.97, 0.97, 0.97);
        transform: scale3d(0.97, 0.97, 0.97); }
    to {
        opacity: 1;
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1); } }

@keyframes bounceIn {
    from, 20%, 40%, 60%, 80%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
    0% {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3); }
    20% {
        -webkit-transform: scale3d(1.1, 1.1, 1.1);
        transform: scale3d(1.1, 1.1, 1.1); }
    40% {
        -webkit-transform: scale3d(0.9, 0.9, 0.9);
        transform: scale3d(0.9, 0.9, 0.9); }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(1.03, 1.03, 1.03);
        transform: scale3d(1.03, 1.03, 1.03); }
    80% {
        -webkit-transform: scale3d(0.97, 0.97, 0.97);
        transform: scale3d(0.97, 0.97, 0.97); }
    to {
        opacity: 1;
        -webkit-transform: scale3d(1, 1, 1);
        transform: scale3d(1, 1, 1); } }

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

@-webkit-keyframes bounceInDown {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
    0% {
        opacity: 0;
        -webkit-transform: translate3d(0, -3000px, 0);
        transform: translate3d(0, -3000px, 0); }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(0, 25px, 0);
        transform: translate3d(0, 25px, 0); }
    75% {
        -webkit-transform: translate3d(0, -10px, 0);
        transform: translate3d(0, -10px, 0); }
    90% {
        -webkit-transform: translate3d(0, 5px, 0);
        transform: translate3d(0, 5px, 0); }
    to {
        -webkit-transform: none;
        transform: none; } }

@keyframes bounceInDown {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
    0% {
        opacity: 0;
        -webkit-transform: translate3d(0, -3000px, 0);
        transform: translate3d(0, -3000px, 0); }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(0, 25px, 0);
        transform: translate3d(0, 25px, 0); }
    75% {
        -webkit-transform: translate3d(0, -10px, 0);
        transform: translate3d(0, -10px, 0); }
    90% {
        -webkit-transform: translate3d(0, 5px, 0);
        transform: translate3d(0, 5px, 0); }
    to {
        -webkit-transform: none;
        transform: none; } }

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

@-webkit-keyframes bounceInLeft {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
    0% {
        opacity: 0;
        -webkit-transform: translate3d(-3000px, 0, 0);
        transform: translate3d(-3000px, 0, 0); }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(25px, 0, 0);
        transform: translate3d(25px, 0, 0); }
    75% {
        -webkit-transform: translate3d(-10px, 0, 0);
        transform: translate3d(-10px, 0, 0); }
    90% {
        -webkit-transform: translate3d(5px, 0, 0);
        transform: translate3d(5px, 0, 0); }
    to {
        -webkit-transform: none;
        transform: none; } }

@keyframes bounceInLeft {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
    0% {
        opacity: 0;
        -webkit-transform: translate3d(-3000px, 0, 0);
        transform: translate3d(-3000px, 0, 0); }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(25px, 0, 0);
        transform: translate3d(25px, 0, 0); }
    75% {
        -webkit-transform: translate3d(-10px, 0, 0);
        transform: translate3d(-10px, 0, 0); }
    90% {
        -webkit-transform: translate3d(5px, 0, 0);
        transform: translate3d(5px, 0, 0); }
    to {
        -webkit-transform: none;
        transform: none; } }

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

@-webkit-keyframes bounceInRight {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
    from {
        opacity: 0;
        -webkit-transform: translate3d(3000px, 0, 0);
        transform: translate3d(3000px, 0, 0); }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(-25px, 0, 0);
        transform: translate3d(-25px, 0, 0); }
    75% {
        -webkit-transform: translate3d(10px, 0, 0);
        transform: translate3d(10px, 0, 0); }
    90% {
        -webkit-transform: translate3d(-5px, 0, 0);
        transform: translate3d(-5px, 0, 0); }
    to {
        -webkit-transform: none;
        transform: none; } }

@keyframes bounceInRight {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
    from {
        opacity: 0;
        -webkit-transform: translate3d(3000px, 0, 0);
        transform: translate3d(3000px, 0, 0); }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(-25px, 0, 0);
        transform: translate3d(-25px, 0, 0); }
    75% {
        -webkit-transform: translate3d(10px, 0, 0);
        transform: translate3d(10px, 0, 0); }
    90% {
        -webkit-transform: translate3d(-5px, 0, 0);
        transform: translate3d(-5px, 0, 0); }
    to {
        -webkit-transform: none;
        transform: none; } }

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

@-webkit-keyframes bounceInUp {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, 3000px, 0);
        transform: translate3d(0, 3000px, 0); }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(0, -20px, 0);
        transform: translate3d(0, -20px, 0); }
    75% {
        -webkit-transform: translate3d(0, 10px, 0);
        transform: translate3d(0, 10px, 0); }
    90% {
        -webkit-transform: translate3d(0, -5px, 0);
        transform: translate3d(0, -5px, 0); }
    to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); } }

@keyframes bounceInUp {
    from, 60%, 75%, 90%, to {
        -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
    from {
        opacity: 0;
        -webkit-transform: translate3d(0, 3000px, 0);
        transform: translate3d(0, 3000px, 0); }
    60% {
        opacity: 1;
        -webkit-transform: translate3d(0, -20px, 0);
        transform: translate3d(0, -20px, 0); }
    75% {
        -webkit-transform: translate3d(0, 10px, 0);
        transform: translate3d(0, 10px, 0); }
    90% {
        -webkit-transform: translate3d(0, -5px, 0);
        transform: translate3d(0, -5px, 0); }
    to {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); } }

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

@-webkit-keyframes bounceOut {
    20% {
        -webkit-transform: scale3d(0.9, 0.9, 0.9);
        transform: scale3d(0.9, 0.9, 0.9); }
    50%, 55% {
        opacity: 1;
        -webkit-transform: scale3d(1.1, 1.1, 1.1);
        transform: scale3d(1.1, 1.1, 1.1); }
    to {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3); } }

@keyframes bounceOut {
    20% {
        -webkit-transform: scale3d(0.9, 0.9, 0.9);
        transform: scale3d(0.9, 0.9, 0.9); }
    50%, 55% {
        opacity: 1;
        -webkit-transform: scale3d(1.1, 1.1, 1.1);
        transform: scale3d(1.1, 1.1, 1.1); }
    to {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3); } }

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

@-webkit-keyframes bounceOutDown {
    20% {
        -webkit-transform: translate3d(0, 10px, 0);
        transform: translate3d(0, 10px, 0); }
    40%, 45% {
        opacity: 1;
        -webkit-transform: translate3d(0, -20px, 0);
        transform: translate3d(0, -20px, 0); }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, 2000px, 0);
        transform: translate3d(0, 2000px, 0); } }

@keyframes bounceOutDown {
    20% {
        -webkit-transform: translate3d(0, 10px, 0);
        transform: translate3d(0, 10px, 0); }
    40%, 45% {
        opacity: 1;
        -webkit-transform: translate3d(0, -20px, 0);
        transform: translate3d(0, -20px, 0); }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, 2000px, 0);
        transform: translate3d(0, 2000px, 0); } }

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

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

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

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

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

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

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

@-webkit-keyframes bounceOutUp {
    20% {
        -webkit-transform: translate3d(0, -10px, 0);
        transform: translate3d(0, -10px, 0); }
    40%, 45% {
        opacity: 1;
        -webkit-transform: translate3d(0, 20px, 0);
        transform: translate3d(0, 20px, 0); }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, -2000px, 0);
        transform: translate3d(0, -2000px, 0); } }

@keyframes bounceOutUp {
    20% {
        -webkit-transform: translate3d(0, -10px, 0);
        transform: translate3d(0, -10px, 0); }
    40%, 45% {
        opacity: 1;
        -webkit-transform: translate3d(0, 20px, 0);
        transform: translate3d(0, 20px, 0); }
    to {
        opacity: 0;
        -webkit-transform: translate3d(0, -2000px, 0);
        transform: translate3d(0, -2000px, 0); } }

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

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

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

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

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

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

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

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

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

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

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

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

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

@-webkit-keyframes fadeInLeftSmall {
    from {
        opacity: 0;
        -webkit-transform: translate3d(-10%, 0, 0);
        transform: translate3d(-10%, 0, 0); }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none; } }

@keyframes fadeInLeftSmall {
    from {
        opacity: 0;
        -webkit-transform: translate3d(-10%, 0, 0);
        transform: translate3d(-10%, 0, 0); }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none; } }

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

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

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

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

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

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

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

@-webkit-keyframes fadeInRightSmall {
    from {
        opacity: 0;
        -webkit-transform: translate3d(25%, 0, 0);
        transform: translate3d(25%, 0, 0); }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none; } }

@keyframes fadeInRightSmall {
    from {
        opacity: 0;
        -webkit-transform: translate3d(25%, 0, 0);
        transform: translate3d(25%, 0, 0); }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none; } }

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

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

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

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

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

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

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

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

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

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

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

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

@-webkit-keyframes fadeInBlur {
    from {
        opacity: 0;
        -webkit-filter: blur(10px);
        filter: blur(10px); }
    to {
        opacity: 1;
        -webkit-filter: blur(0);
        filter: blur(0); } }

@keyframes fadeInBlur {
    from {
        opacity: 0;
        -webkit-filter: blur(10px);
        filter: blur(10px); }
    to {
        opacity: 1;
        -webkit-filter: blur(0);
        filter: blur(0); } }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@-webkit-keyframes flip {
    from {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out; }
    40% {
        -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
        transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out; }
    50% {
        -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
        transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in; }
    80% {
        -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
        transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in; }
    to {
        -webkit-transform: perspective(400px);
        transform: perspective(400px);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in; } }

@keyframes flip {
    from {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -360deg);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out; }
    40% {
        -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
        transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg);
        -webkit-animation-timing-function: ease-out;
        animation-timing-function: ease-out; }
    50% {
        -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
        transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in; }
    80% {
        -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
        transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in; }
    to {
        -webkit-transform: perspective(400px);
        transform: perspective(400px);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in; } }

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

@-webkit-keyframes flipInX {
    from {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        opacity: 0; }
    40% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in; }
    60% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
        opacity: 1; }
    80% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -5deg); }
    to {
        -webkit-transform: perspective(400px);
        transform: perspective(400px); } }

@keyframes flipInX {
    from {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        opacity: 0; }
    40% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in; }
    60% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
        opacity: 1; }
    80% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -5deg); }
    to {
        -webkit-transform: perspective(400px);
        transform: perspective(400px); } }

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

@-webkit-keyframes flipInY {
    from {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        opacity: 0; }
    40% {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in; }
    60% {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
        transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
        opacity: 1; }
    80% {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -5deg); }
    to {
        -webkit-transform: perspective(400px);
        transform: perspective(400px); } }

@keyframes flipInY {
    from {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in;
        opacity: 0; }
    40% {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
        -webkit-animation-timing-function: ease-in;
        animation-timing-function: ease-in; }
    60% {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
        transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
        opacity: 1; }
    80% {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -5deg); }
    to {
        -webkit-transform: perspective(400px);
        transform: perspective(400px); } }

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

@-webkit-keyframes flipOutX {
    from {
        -webkit-transform: perspective(400px);
        transform: perspective(400px); }
    30% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        opacity: 1; }
    to {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        opacity: 0; } }

@keyframes flipOutX {
    from {
        -webkit-transform: perspective(400px);
        transform: perspective(400px); }
    30% {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
        opacity: 1; }
    to {
        -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
        opacity: 0; } }

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

@-webkit-keyframes flipOutY {
    from {
        -webkit-transform: perspective(400px);
        transform: perspective(400px); }
    30% {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
        opacity: 1; }
    to {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        opacity: 0; } }

@keyframes flipOutY {
    from {
        -webkit-transform: perspective(400px);
        transform: perspective(400px); }
    30% {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
        transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
        opacity: 1; }
    to {
        -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
        opacity: 0; } }

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

@-webkit-keyframes lightSpeedIn {
    from {
        -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
        transform: translate3d(100%, 0, 0) skewX(-30deg);
        opacity: 0; }
    60% {
        -webkit-transform: skewX(20deg);
        transform: skewX(20deg);
        opacity: 1; }
    80% {
        -webkit-transform: skewX(-5deg);
        transform: skewX(-5deg);
        opacity: 1; }
    to {
        -webkit-transform: none;
        transform: none;
        opacity: 1; } }

@keyframes lightSpeedIn {
    from {
        -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
        transform: translate3d(100%, 0, 0) skewX(-30deg);
        opacity: 0; }
    60% {
        -webkit-transform: skewX(20deg);
        transform: skewX(20deg);
        opacity: 1; }
    80% {
        -webkit-transform: skewX(-5deg);
        transform: skewX(-5deg);
        opacity: 1; }
    to {
        -webkit-transform: none;
        transform: none;
        opacity: 1; } }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@-webkit-keyframes hinge {
    0% {
        -webkit-transform-origin: top left;
        transform-origin: top left;
        -webkit-animation-timing-function: ease-in-out;
        animation-timing-function: ease-in-out; }
    20%, 60% {
        -webkit-transform: rotate3d(0, 0, 1, 80deg);
        transform: rotate3d(0, 0, 1, 80deg);
        -webkit-transform-origin: top left;
        transform-origin: top left;
        -webkit-animation-timing-function: ease-in-out;
        animation-timing-function: ease-in-out; }
    40%, 80% {
        -webkit-transform: rotate3d(0, 0, 1, 60deg);
        transform: rotate3d(0, 0, 1, 60deg);
        -webkit-transform-origin: top left;
        transform-origin: top left;
        -webkit-animation-timing-function: ease-in-out;
        animation-timing-function: ease-in-out;
        opacity: 1; }
    to {
        -webkit-transform: translate3d(0, 700px, 0);
        transform: translate3d(0, 700px, 0);
        opacity: 0; } }

@keyframes hinge {
    0% {
        -webkit-transform-origin: top left;
        transform-origin: top left;
        -webkit-animation-timing-function: ease-in-out;
        animation-timing-function: ease-in-out; }
    20%, 60% {
        -webkit-transform: rotate3d(0, 0, 1, 80deg);
        transform: rotate3d(0, 0, 1, 80deg);
        -webkit-transform-origin: top left;
        transform-origin: top left;
        -webkit-animation-timing-function: ease-in-out;
        animation-timing-function: ease-in-out; }
    40%, 80% {
        -webkit-transform: rotate3d(0, 0, 1, 60deg);
        transform: rotate3d(0, 0, 1, 60deg);
        -webkit-transform-origin: top left;
        transform-origin: top left;
        -webkit-animation-timing-function: ease-in-out;
        animation-timing-function: ease-in-out;
        opacity: 1; }
    to {
        -webkit-transform: translate3d(0, 700px, 0);
        transform: translate3d(0, 700px, 0);
        opacity: 0; } }

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

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes rollIn {
    from {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
        transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none; } }
@keyframes rollIn {
    from {
        opacity: 0;
        -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
        transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); }
    to {
        opacity: 1;
        -webkit-transform: none;
        transform: none; } }

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

/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
@-webkit-keyframes rollOut {
    from {
        opacity: 1; }
    to {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
        transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } }
@keyframes rollOut {
    from {
        opacity: 1; }
    to {
        opacity: 0;
        -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
        transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } }

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

@-webkit-keyframes zoomIn {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3); }
    50% {
        opacity: 1; } }

@keyframes zoomIn {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3); }
    50% {
        opacity: 1; } }

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

@-webkit-keyframes zoomInDown {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomInDown {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

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

@-webkit-keyframes zoomInLeft {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomInLeft {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

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

@-webkit-keyframes zoomInRight {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomInRight {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

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

@-webkit-keyframes zoomInUp {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomInUp {
    from {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
    60% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

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

@-webkit-keyframes zoomOut {
    from {
        opacity: 1; }
    50% {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3); }
    to {
        opacity: 0; } }

@keyframes zoomOut {
    from {
        opacity: 1; }
    50% {
        opacity: 0;
        -webkit-transform: scale3d(0.3, 0.3, 0.3);
        transform: scale3d(0.3, 0.3, 0.3); }
    to {
        opacity: 0; } }

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

@-webkit-keyframes zoomOutDown {
    40% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
    to {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
        -webkit-transform-origin: center bottom;
        transform-origin: center bottom;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomOutDown {
    40% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
    to {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
        -webkit-transform-origin: center bottom;
        transform-origin: center bottom;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

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

@-webkit-keyframes zoomOutLeft {
    40% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); }
    to {
        opacity: 0;
        -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
        transform: scale(0.1) translate3d(-2000px, 0, 0);
        -webkit-transform-origin: left center;
        transform-origin: left center; } }

@keyframes zoomOutLeft {
    40% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); }
    to {
        opacity: 0;
        -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
        transform: scale(0.1) translate3d(-2000px, 0, 0);
        -webkit-transform-origin: left center;
        transform-origin: left center; } }

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

@-webkit-keyframes zoomOutRight {
    40% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); }
    to {
        opacity: 0;
        -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
        transform: scale(0.1) translate3d(2000px, 0, 0);
        -webkit-transform-origin: right center;
        transform-origin: right center; } }

@keyframes zoomOutRight {
    40% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); }
    to {
        opacity: 0;
        -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
        transform: scale(0.1) translate3d(2000px, 0, 0);
        -webkit-transform-origin: right center;
        transform-origin: right center; } }

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

@-webkit-keyframes zoomOutUp {
    40% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
    to {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
        -webkit-transform-origin: center bottom;
        transform-origin: center bottom;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

@keyframes zoomOutUp {
    40% {
        opacity: 1;
        -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); }
    to {
        opacity: 0;
        -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
        -webkit-transform-origin: center bottom;
        transform-origin: center bottom;
        -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); } }

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

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

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

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

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

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

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

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

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

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

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

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

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

@-webkit-keyframes slideOutDown {
    from {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); }
    to {
        visibility: hidden;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0); } }

@keyframes slideOutDown {
    from {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); }
    to {
        visibility: hidden;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0); } }

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

@-webkit-keyframes slideOutLeft {
    from {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); }
    to {
        visibility: hidden;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0); } }

@keyframes slideOutLeft {
    from {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); }
    to {
        visibility: hidden;
        -webkit-transform: translate3d(-100%, 0, 0);
        transform: translate3d(-100%, 0, 0); } }

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

@-webkit-keyframes slideOutRight {
    from {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); }
    to {
        visibility: hidden;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0); } }

@keyframes slideOutRight {
    from {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); }
    to {
        visibility: hidden;
        -webkit-transform: translate3d(100%, 0, 0);
        transform: translate3d(100%, 0, 0); } }

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

@-webkit-keyframes slideOutUp {
    from {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); }
    to {
        visibility: hidden;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0); } }

@keyframes slideOutUp {
    from {
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); }
    to {
        visibility: hidden;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0); } }

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

@-webkit-keyframes fadeLoop {
    25% {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); }
    30% {
        opacity: 0;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0); }
    95% {
        opacity: 0;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0); }
    100% {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); } }

@keyframes fadeLoop {
    25% {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); }
    30% {
        opacity: 0;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0); }
    95% {
        opacity: 0;
        -webkit-transform: translate3d(0, -100%, 0);
        transform: translate3d(0, -100%, 0); }
    100% {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); } }

@-webkit-keyframes fadeLoopRev {
    25% {
        opacity: 0;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0); }
    30% {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); }
    95% {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); }
    100% {
        opacity: 0;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0); } }

@keyframes fadeLoopRev {
    25% {
        opacity: 0;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0); }
    30% {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); }
    95% {
        opacity: 1;
        -webkit-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0); }
    100% {
        opacity: 0;
        -webkit-transform: translate3d(0, 100%, 0);
        transform: translate3d(0, 100%, 0); } }

.g-apply {
    background: #FFFFFF;
    display: none;
    height: 100%;
    padding: 20px 10px 0 10px;
    width: 100%;
    z-index: 100;
    position: fixed;
    top: 0; }
@media screen and (min-width: 64em) {
    .g-apply {
        background: transparent;
        height: auto;
        max-width: 1260px;
        padding: 0 100px;
        -webkit-transform: translate3D(-50%, -50%, 0);
        -ms-transform: translate3D(-50%, -50%, 0);
        transform: translate3D(-50%, -50%, 0);
        top: 50%;
        left: 50%; } }

.g-apply__container {
    position: relative; }
@media screen and (min-width: 64em) {
    .g-apply__container {
        background: #FFFFFF;
        padding: 48px 0; } }

.g-apply__title {
    font-family: "Neue Regular";
    font-size: 25px;
    line-height: 25px;
    font-weight: normal;
    font-style: normal;
    letter-spacing: 0;
    color: #E42A1D;
    font-family: "Neue Display Random";
    margin: 0 0 3px 0;
    padding: 0 20px 0 0; }
.js-sans-loaded .g-apply__title {
    font-family: sans-serif; }
@media screen and (min-width: 64em) {
    .g-apply__title {
        font-family: "Neue Regular";
        font-size: 40px;
        line-height: 40px;
        font-weight: 400;
        font-style: normal;
        letter-spacing: -0.01rem;
        font-family: "Neue Display Random";
        padding: 0 60px 0 20px; }
    .js-sans-loaded .g-apply__title {
        font-family: sans-serif; } }

.g-apply__contentContainer {
    height: calc(100vh - 90px);
    overflow: hidden;
    overflow-y: scroll;
    padding: 0 0 80px; }
@media screen and (min-width: 64em) {
    .g-apply__contentContainer {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        height: auto;
        padding: 0; } }

.g-apply__type {
    font-family: "Neue Regular";
    font-size: 13px;
    line-height: 20px;
    font-weight: normal;
    font-style: normal;
    letter-spacing: 0; }
.js-sans-loaded .g-apply__type {
    font-family: sans-serif; }
@media screen and (min-width: 64em) {
    .g-apply__type {
        font-family: "Neue Regular";
        font-size: 13px;
        line-height: 23px;
        font-weight: normal;
        font-style: normal;
        letter-spacing: 0;
        -webkit-flex: 1 1 50%;
        -ms-flex: 1 1 50%;
        flex: 1 1 50%;
        padding: 0 20px 133px;
        position: relative; }
    .js-sans-loaded .g-apply__type {
        font-family: sans-serif; } }

.g-apply__subTitle {
    font-family: "Neue Regular";
    font-size: 16px;
    line-height: 25px;
    font-weight: normal;
    font-style: normal;
    letter-spacing: 0;
    color: #E42A1D;
    margin: 30px 0 13px; }
.js-sans-loaded .g-apply__subTitle {
    font-family: sans-serif; }

.g-apply__footer {
    margin: 28px 0 0; }
@media screen and (min-width: 64em) {
    .g-apply__footer {
        width: calc(100% - 40px);
        position: absolute;
        bottom: 0; } }
.g-apply__footer p {
    margin: 22px 0 0; }
.g-apply__footer a {
    border-bottom: 1px solid #191919;
    text-decoration: none; }
.g-apply__footer .a-btn {
    border-bottom: none;
    max-width: 360px; }

.g-apply__close {
    height: 32px;
    width: 32px;
    position: absolute;
    top: -7px;
    right: 0; }
@media screen and (min-width: 64em) {
    .g-apply__close {
        top: 23px;
        right: 25px; } }
.g-apply__close .icon {
    height: 32px;
    width: 32px; }

.g-breadcrumbs {
    font-family: "Neue Regular";
    font-size: 11px;
    line-height: 15px;
    font-weight: normal;
    font-style: normal;
    letter-spacing: 0;
    margin: 19px 0 0;
    width: 100%; }
.js-sans-loaded .g-breadcrumbs {
    font-family: sans-serif; }
@media screen and (min-width: 64em) {
    .g-breadcrumbs {
        font-family: "Neue Regular";
        font-size: 11px;
        line-height: 20px;
        font-weight: 400;
        font-style: normal;
        letter-spacing: 0.01rem;
        margin: 7px 0 0;
        position: absolute;
        z-index: 1; }
    .js-sans-loaded .g-breadcrumbs {
        font-family: sans-serif; } }

.g-breadcrumbs__list {
    margin: 0;
    padding: 0; }

.g-breadcrumbs__title {
    font: 0/0 a;
    text-shadow: none;
    color: transparent;
    overflow: hidden;
    text-indent: -100%; }

.g-breadcrumbs__listItem {
    color: #767676;
    display: inline-block;
    margin: 0;
    padding: 0;
    position: relative; }
.g-breadcrumbs__listItem:before {
    display: none; }
.g-breadcrumbs__listItem:not(:last-child) {
    padding-right: 10px; }
.g-breadcrumbs__listItem .icon {
    color: #191919;
    display: inline-block;
    height: 20px;
    text-align: center;
    width: 20px;
    position: absolute;
    right: -7px;
    top: 0px; }
.g-breadcrumbs__listItem a {
    border: none;
    color: #191919;
    display: inline-block;
    text-decoration: none;
    transition: color ease-in-out 180ms; }
.g-breadcrumbs__listItem a:hover, .g-breadcrumbs__listItem a:focus, .g-breadcrumbs__listItem a:active {
    border: none;
    color: #E42A1D; }

/* Global Header
------------------------- */
.g-header {
    background: #FFFFFF;
    border-bottom: 1px solid #D9D9D9;
    height: 60px;
    width: 100%;
    z-index: 100;
    position: fixed;
    top: 0; }
@media screen and (min-width: 40em) {
    .g-header {
        padding: 0 10px; } }
@media screen and (min-width: 64em) {
    .g-header {
        border-bottom: 1px solid transparent;
        height: 140px;
        padding: 0 30px;
        position: relative; } }
@media screen and (min-width: 72.5em) {
    .g-header {
        padding: 0 40px; } }
@media screen and (min-width: 90.625em) {
    .g-header {
        padding: 0 60px; } }

/* Site Logo
------------------------- */
.g-header__logo {
    display: inline-block;
    margin: 8px 0 0 5px; }
@media screen and (min-width: 64em) {
    .g-header__logo {
        margin: 11px 0 0 -17px;
        position: relative;
        z-index: 1; } }
.g-header__logo .icon--logo {
    display: none;
    height: 119px;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1);
    width: 177px;
    -webkit-backface-visibility: hidden; }
@media screen and (min-width: 64em) {
    .g-header__logo .icon--logo {
        display: block; } }
.g-header__logo .icon--logo-mobile {
    display: block;
    height: 47px;
    width: 210px; }
@media screen and (min-width: 64em) {
    .g-header__logo .icon--logo-mobile {
        display: none; } }
.g-header__logo .icon--logo-1l {
    display: none;
    height: 63px;
    width: 354px; }

/* Mobile Actions
------------------------- */
.g-header__actions {
    float: right;
    margin: 12px 12px 0 0; }
@media screen and (min-width: 64em) {
    .g-header__actions {
        display: none; } }

.g-header__actionsItem {
    display: inline-block;
    margin-left: 5px; }

.g-header__actionsLink {
    background: none;
    border: none;
    display: block;
    height: 35px;
    margin: 0;
    padding: 0;
    width: 35px; }
.g-header__actionsLink:hover, .g-header__actionsLink:focus, .g-header__actionsLink:active {
    cursor: pointer; }
.g-header__actionsLink .icon {
    height: 35px;
    width: 35px; }
.g-header__actionsLink .icon--close {
    display: none; }
.g-header__actionsLink.is-active .icon--menu {
    display: none; }
.g-header__actionsLink.is-active .icon--close {
    display: inline; }

.g-mask {
    position: fixed;
    z-index: 10;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    background-color: #FFFFFF;
    opacity: 0;
    transition: opacity 180ms;
    visibility: hidden; }
.g-mask::before {
    content: '';
    position: absolute;
    left: 50%;
    width: 100vw;
    height: 100%;
    margin-left: -50vw;
    background-color: inherit; }

.g-overlay {
    background-color: #FFFFFF;
    opacity: 0;
    transition: opacity .25s;
    z-index: 10;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 100%;
    right: 100%; }
@media screen and (min-width: 64em) {
    .g-overlay {
        background-color: rgba(25, 25, 25, 0.75);
        transition: none; } }
.g-overlay::before {
    content: '';
    position: absolute;
    left: 50%;
    width: 100vw;
    height: 100%;
    margin-left: -50vw;
    background-color: inherit; }

/* Global Footer
------------------------- */
.g-footer {
    font-family: "Neue Regular";
    font-size: 17px;
    line-height: 30px;
    font-weight: normal;
    font-style: normal;
    letter-spacing: 0;
    background: #050505;
    color: #FFFFFF;
    margin: 0 -10px;
    overflow: hidden;
    padding: 37px 20px 85px;
    position: relative;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }
.js-sans-loaded .g-footer {
    font-family: sans-serif; }
@media screen and (min-width: 40em) {
    .g-footer {
        margin: 0 -20px;
        padding: 37px 40px 85px; } }
@media screen and (min-width: 64em) {
    .g-footer {
        padding: 60px 45px; } }
@media screen and (min-width: 72.5em) {
    .g-footer {
        padding: 60px 60px; } }
@media screen and (min-width: 90.625em) {
    .g-footer {
        padding: 80px 80px 90px; } }

.g-footer__address .org {
    font-family: "Neue Regular";
    font-size: 13px;
    line-height: 20px;
    font-weight: normal;
    font-style: 800;
    letter-spacing: 0; }
.js-sans-loaded .g-footer__address .org {
    font-family: sans-serif; }
@media screen and (min-width: 64em) {
    .g-footer__address .org {
        font-family: "Neue Regular";
        font-size: 17px;
        line-height: 30px;
        font-weight: normal;
        font-style: normal;
        letter-spacing: 0; }
    .js-sans-loaded .g-footer__address .org {
        font-family: sans-serif; } }

.g-footer__address .adr,
.g-footer__address .tel {
    font-family: "Neue Regular";
    font-size: 13px;
    line-height: 20px;
    font-weight: normal;
    font-style: normal;
    letter-spacing: 0; }
.js-sans-loaded .g-footer__address .adr, .js-sans-loaded
.g-footer__address .tel {
    font-family: sans-serif; }
@media screen and (min-width: 64em) {
    .g-footer__address .adr,
    .g-footer__address .tel {
        font-family: "Neue Regular";
        font-size: 17px;
        line-height: 30px;
        font-weight: normal;
        font-style: normal;
        letter-spacing: 0; }
    .js-sans-loaded .g-footer__address .adr, .js-sans-loaded
    .g-footer__address .tel {
        font-family: sans-serif; } }

.g-footer__address a {
    border-bottom: 1px solid transparent;
    display: block;
    text-decoration: none;
    transition: border-bottom ease-in-out 180ms; }
@media screen and (min-width: 64em) {
    .g-footer__address a {
        display: inline-block; }
    .g-footer__address a:hover, .g-footer__address a:focus, .g-footer__address a:active {
        border-bottom: 1px solid #FFFFFF; } }

.g-footer__title {
    font-family: "Neue Regular";
    font-size: 10px;
    line-height: 15px;
    font-weight: 800;
    font-style: normal;
    letter-spacing: 0.05rem;
    color: #E42A1D;
    margin: 7px 0 10px;
    text-transform: uppercase; }
.js-sans-loaded .g-footer__title {
    font-family: sans-serif; }
@media screen and (min-width: 64em) {
    .g-footer__title {
        font-family: "Neue Regular";
        font-size: 13px;
        line-height: 20px;
        font-weight: 800;
        font-style: normal;
        letter-spacing: 0.03rem;
        margin: 7px 0 3px; }
    .js-sans-loaded .g-footer__title {
        font-family: sans-serif; } }

.g-footer__list {
    font-family: "Neue Regular";
    font-size: 10px;
    line-height: 15px;
    font-weight: normal;
    font-style: normal;
    letter-spacing: 0;
    margin: 0 0 35px; }
.js-sans-loaded .g-footer__list {
    font-family: sans-serif; }
@media screen and (min-width: 64em) {
    .g-footer__list {
        font-family: "Neue Regular";
        font-size: 14px;
        line-height: 30px;
        font-weight: normal;
        font-style: normal;
        letter-spacing: 0;
        margin: 0; }
    .js-sans-loaded .g-footer__list {
        font-family: sans-serif; } }
.g-footer__list li {
    margin: 0 0 11px; }
@media screen and (min-width: 64em) {
    .g-footer__list li {
        margin: 0; } }
.g-footer__list a {
    border-bottom: 1px solid transparent;
    padding-bottom: 1px;
    text-decoration: none;
    transition: border-bottom ease-in-out 180ms, color ease-in-out 180ms; }
@media screen and (min-width: 64em) {
    .g-footer__list a:hover, .g-footer__list a:focus, .g-footer__list a:active {
        border-bottom: 1px solid #FFFFFF; } }

.g-footer__additional {
    font-family: "Neue Regular";
    font-size: 10px;
    line-height: 15px;
    font-weight: normal;
    font-style: normal;
    letter-spacing: 0;
    margin: 0 0 30px;
    color: #A7A9AC;
    padding: 0 10px;
    width: 100%;
    position: absolute;
    bottom: 14px;
    left: 20px; }
.js-sans-loaded .g-footer__additional {
    font-family: sans-serif; }
@media screen and (min-width: 40em) {
    .g-footer__additional {
        padding: 0 30px; } }
@media screen and (min-width: 64em) {
    .g-footer__additional {
        font-family: "Neue Regular";
        font-size: 14px;
        line-height: 30px;
        font-weight: normal;
        font-style: normal;
        letter-spacing: 0;
        margin: 30px 0 0;
        padding: 0;
        position: static; }
    .js-sans-loaded .g-footer__additional {
        font-family: sans-serif; } }
.g-footer__additional p {
    margin: 0 0 11px; }
@media screen and (min-width: 64em) {
    .g-footer__additional p {
        margin: 0; } }
.g-footer__additional li {
    display: inline; }
.g-footer__additional li:not(:last-of-type) {
    border-right: 1px solid #A7A9AC;
    margin-right: 12px;
    padding-right: 15px; }
.g-footer__additional a {
    border-bottom: 1px solid transparent;
    padding-bottom: 1px;
    text-decoration: none;
    transition: border-bottom ease-in-out 180ms; }
@media screen and (min-width: 64em) {
    .g-footer__additional a:hover, .g-footer__additional a:focus, .g-footer__additional a:active {
        border-bottom: 1px solid #A7A9AC; } }

.g-footer__socialLinks {
    border-bottom: 1px solid #333333;
    border-top: 1px solid #333333;
    height: 64px;
    margin: 27px 0 32px;
    padding: 18px 0 0 0;
    text-align: center; }
@media screen and (min-width: 64em) {
    .g-footer__socialLinks {
        border: none;
        height: auto;
        margin: 30px 0 40px;
        padding: 0;
        text-align: left; } }
.g-footer__socialLinks li {
    display: inline-block; }
.g-footer__socialLinks li:not(:first-child) {
    margin-left: 23px; }
.g-footer__socialLinks a {
    color: #FFFFFF;
    display: block;
    line-height: 1; }
@media screen and (min-width: 64em) {
    .g-footer__socialLinks a:hover .icon, .g-footer__socialLinks a:focus .icon, .g-footer__socialLinks a:active .icon {
        fill: #E42A1D; } }
.g-footer__socialLinks .icon {
    fill: #FFFFFF;
    height: 25px;
    width: 25px;
    transition: fill ease-in-out 180ms; }

.g-footer__additionalLinks {
    font-family: "Neue Regular";
    font-size: 13px;
    line-height: 20px;
    font-weight: normal;
    font-style: normal;
    letter-spacing: 0; }
.js-sans-loaded .g-footer__additionalLinks {
    font-family: sans-serif; }
.g-footer__additionalLinks:before {
    background: #FFFFFF;
    content: '';
    display: block;
    height: 1px;
    margin: 7px 0 12px;
    width: 15px; }
@media screen and (min-width: 64em) {
    .g-footer__additionalLinks:before {
        margin: 14px 0 15px; } }
@media screen and (min-width: 64em) {
    .g-footer__additionalLinks {
        font-family: "Neue Regular";
        font-size: 17px;
        line-height: 30px;
        font-weight: normal;
        font-style: normal;
        letter-spacing: 0; }
    .js-sans-loaded .g-footer__additionalLinks {
        font-family: sans-serif; } }
.g-footer__additionalLinks a {
    border-bottom: 1px solid transparent;
    display: block;
    text-decoration: none;
    transition: border-bottom ease-in-out 180ms; }
@media screen and (min-width: 64em) {
    .g-footer__additionalLinks a {
        display: inline-block; }
    .g-footer__additionalLinks a:hover, .g-footer__additionalLinks a:focus, .g-footer__additionalLinks a:active {
        border-bottom: 1px solid #FFFFFF; } }

.g-search {
    background: #FFFFFF;
    border-bottom: 1px solid #D9D9D9;
    height: 60px;
    -webkit-transform: translate3d(0, -100%, 0);
    transform: translate3d(0, -100%, 0);
    transition: -webkit-transform ease-in-out 180ms;
    transition: transform ease-in-out 180ms;
    transition: transform ease-in-out 180ms, -webkit-transform ease-in-out 180ms;
    width: 100%;
    z-index: 100;
    position: fixed;
    top: 0; }
@media screen and (min-width: 40em) {
    .g-search {
        padding: 0 10px; } }
@media screen and (min-width: 64em) {
    .g-search {
        border: none;
        display: block;
        opacity: 0;
        overflow-y: scroll;
        padding: 220px 30px 80px;
        height: 100%;
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
        transition: opacity ease-in-out 180ms;
        visibility: hidden; } }
@media screen and (min-width: 72.5em) {
    .g-search {
        padding-left: 40px;
        padding-right: 40px; } }
@media screen and (min-width: 90.625em) {
    .g-search {
        padding-left: 60px;
        padding-right: 60px; } }
.g-search .row {
    position: relative; }

.g-search__form {
    padding: 11px 40px 0;
    position: relative; }
@media screen and (min-width: 64em) {
    .g-search__form {
        padding: 0; } }

.g-search__formInput {
    font-family: "Neue Regular";
    font-size: 17px;
    line-height: 17px;
    font-weight: normal;
    font-style: normal;
    letter-spacing: 0;
    background: #FFFFFF;
    border: none;
    color: #E42A1D;
    border-radius: none;
    height: 32px;
    line-height: 32px;
    padding: 3px 5px 0;
    -webkit-appearance: none;
    width: 100%; }
.js-sans-loaded .g-search__formInput {
    font-family: sans-serif; }
.g-search__formInput:focus {
    outline: none; }
.g-search__formInput::-ms-clear {
    display: none; }
.g-search__formInput::-webkit-input-placeholder {
    color: #D9D9D9; }
.g-search__formInput::-moz-placeholder {
    color: #D9D9D9; }
.g-search__formInput:-ms-input-placeholder {
    color: #D9D9D9; }
.g-search__formInput:-moz-placeholder {
    color: #D9D9D9; }
@media screen and (min-width: 64em) {
    .g-search__formInput {
        font-family: "Neue Regular";
        font-size: 75px;
        line-height: 85px;
        font-weight: 400;
        font-style: normal;
        letter-spacing: -0.03rem;
        font-family: "Neue Display Random";
        height: 80px;
        padding: 0 40px 0 0; }
    .js-sans-loaded .g-search__formInput {
        font-family: sans-serif; } }

.g-search__formSubmit {
    background: none;
    border: none;
    margin: 0;
    padding: 0;
    position: absolute;
    top: 12px;
    left: 3px;
    -webkit-appearance: none; }
@media screen and (min-width: 64em) {
    .g-search__formSubmit {
        margin-top: -10px;
        left: auto;
        right: -5px;
        top: 50%; } }
.g-search__formSubmit .icon {
    height: 35px;
    width: 35px; }
.g-search__formSubmit:hover, .g-search__formSubmit:focus, .g-search__formSubmit:active {
    cursor: pointer; }

.g-search__close {
    position: absolute;
    right: 12px;
    top: 12px; }
@media screen and (min-width: 64em) {
    .g-search__close {
        top: -145px;
        right: 16px; }
    .s-header-fixed .g-search__close {
        top: -191px; } }
@media screen and (min-width: 72.5em) {
    .g-search__close {
        right: 22px; } }
.g-search__close .icon {
    height: 35px;
    width: 35px; }

.g-search__results {
    display: none; }
@media screen and (min-width: 64em) {
    .g-search__results {
        border-bottom: 4px solid #000000;
        border-top: 4px solid #000000;
        display: block;
        max-height: 0;
        min-height: 12px;
        overflow: hidden;
        transition: max-height ease-in-out 540ms; } }

@media screen and (min-width: 64em) {
    .s-search-autocomplete-active .g-search__results {
        max-height: 5000px;
        overflow: scroll; } }

main {
    font-family: "Neue Regular";
    font-size: 17px;
    line-height: 30px;
    font-weight: normal;
    font-style: normal;
    letter-spacing: 0;
    padding: 60px 10px 0; }
.js-sans-loaded main {
    font-family: sans-serif; }
@media screen and (min-width: 40em) {
    main {
        padding: 60px 20px 0; } }
@media screen and (min-width: 64em) {
    main {
        padding: 0 30px; } }
@media screen and (min-width: 72.5em) {
    main {
        padding: 0 40px; } }
@media screen and (min-width: 90.625em) {
    main {
        padding: 0 60px; } }

ul {
    margin-left: 0;
    padding-left: 0; }

a {
    color: inherit; }

.js-hide {
    display: none; }

.js-show {
    display: block; }

.page-title {
    font-family: "Neue Regular";
    font-size: 50px;
    line-height: 50px;
    font-weight: 400;
    font-style: normal;
    letter-spacing: -0.01rem;
    font-family: "Neue Display Random"; }
.js-sans-loaded .page-title {
    font-family: sans-serif; }
@media screen and (min-width: 64em) {
    .page-title {
        font-family: "Neue Regular";
        font-size: 110px;
        line-height: 120px;
        font-weight: 400;
        font-style: normal;
        letter-spacing: -0.03rem;
        font-family: "Neue Display Random"; }
    .js-sans-loaded .page-title {
        font-family: sans-serif; } }

.h2 {
    font-family: "Neue Regular";
    font-size: 25px;
    line-height: 25px;
    font-weight: normal;
    font-style: normal;
    letter-spacing: 0;
    color: #E42A1D;
    font-family: "Neue Display Random";
    margin: 60px 0 15px;
    word-wrap: break-word; }
.js-sans-loaded .h2 {
    font-family: sans-serif; }
@media screen and (min-width: 64em) {
    .h2 {
        font-family: "Neue Regular";
        font-size: 50px;
        line-height: 50px;
        font-weight: 400;
        font-style: normal;
        letter-spacing: -0.01rem;
        font-family: "Neue Display Random"; }
    .js-sans-loaded .h2 {
        font-family: sans-serif; } }

.h3 {
    font-family: "Neue Regular";
    font-size: 22px;
    line-height: 35px;
    font-weight: normal;
    font-style: normal;
    letter-spacing: 0;
    color: #191919; }
.js-sans-loaded .h3 {
    font-family: sans-serif; }

.visually-hidden {
    height: 1px;
    left: -10000px;
    overflow: hidden;
    position: absolute;
    top: auto;
    width: 1px; }

.a-btn {
    font-family: "Neue Regular";
    font-size: 10px;
    line-height: 15px;
    font-weight: 800;
    font-style: normal;
    letter-spacing: 0.05rem;
    display: inline-block;
    transition: background ease-in-out 180ms, color ease-in-out 180ms; }
.js-sans-loaded .a-btn {
    font-family: sans-serif; }
@media screen and (min-width: 64em) {
    .a-btn {
        font-family: "Neue Regular";
        font-size: 13px;
        line-height: 20px;
        font-weight: 800;
        font-style: normal;
        letter-spacing: 0.03rem; }
    .js-sans-loaded .a-btn {
        font-family: sans-serif; } }
.a-btn .icon {
    fill: #191919;
    position: relative;
    top: 3px; }
.a-btn .icon--external-link {
    height: 20px;
    margin: 0 0 0 10px;
    width: 20px;
    position: relative;
    top: 5px; }

.a-btn--block {
    display: block;
    padding: 22px 10px 18px;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase; }
@media screen and (min-width: 64em) {
    .a-btn--block {
        padding: 27px 10px 23px; } }

.a-btn--highlight {
    background: #E42A1D;
    color: #FFFFFF;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }
@media screen and (min-width: 64em) {
    .a-btn--highlight:hover, .a-btn--highlight:focus, .a-btn--highlight:active {
        background: #A22017; } }
.a-btn--highlight .icon {
    fill: #FFFFFF; }

.a-btn--icon {
    padding-top: 14px; }
@media screen and (min-width: 64em) {
    .a-btn--icon {
        padding-top: 20px; } }

.a-btn--grey {
    border: 2px solid #767676; }
@media screen and (min-width: 64em) {
    .a-btn--grey:hover, .a-btn--grey:focus, .a-btn--grey:active {
        background: #767676;
        border: 2px solid #767676;
        color: #FFFFFF;
        cursor: pointer; } }

/* Figure
------------------------- */
.a-img {
    margin: 50px 0 55px; }

.a-img--inline {
    margin-top: 0; }

.a-img--minimal {
    margin: 0; }

.a-img__image + .a-img__caption,
.a-img__image + .row {
    margin-top: 20px; }

.a-img__image--block {
    display: block;
    width: 100%; }

.a-img__caption {
    font-family: "Neue Regular";
    font-size: 13px;
    line-height: 20px;
    font-weight: normal;
    font-style: normal;
    letter-spacing: 0;
    color: #767676;
    margin-bottom: -10px; }
.js-sans-loaded .a-img__caption {
    font-family: sans-serif; }
@media screen and (min-width: 64em) {
    .a-img__caption {
        font-family: "Neue Regular";
        font-size: 14px;
        line-height: 25px;
        font-weight: normal;
        font-style: normal;
        letter-spacing: 0; }
    .js-sans-loaded .a-img__caption {
        font-family: sans-serif; } }
.m-hero .a-img__caption {
    margin: 19px 10px -9px; }
@media screen and (min-width: 40em) {
    .m-hero .a-img__caption {
        margin: 19px 20px -9px; } }
@media screen and (min-width: 64em) {
    .m-hero .a-img__caption {
        margin: 19px 30px -9px; } }
@media screen and (min-width: 72.5em) {
    .m-hero .a-img__caption {
        margin: 19px 60px -9px; } }

.a-searchResult {
    border: none;
    color: #767676;
    display: block;
    padding: 25px 0 31px;
    text-decoration: none;
    transition: color ease-in-out 180ms; }
.g-search__results .a-searchResult {
    font-family: "Neue Regular";
    font-size: 16px;
    line-height: 25px;
    font-weight: 800;
    font-style: normal;
    letter-spacing: 0;
    color: #000000;
    padding: 30px 0; }
.js-sans-loaded .g-search__results .a-searchResult {
    font-family: sans-serif; }
@media screen and (min-width: 64em) {
    .g-search__results .a-searchResult {
        font-family: "Neue Regular";
        font-size: 17px;
        line-height: 30px;
        font-weight: 800;
        font-style: normal;
        letter-spacing: 0; }
    .js-sans-loaded .g-search__results .a-searchResult {
        font-family: sans-serif; } }
@media screen and (min-width: 64em) {
    .a-searchResult:hover, .a-searchResult:focus, .a-searchResult:active {
        border: none;
        color: #E42A1D; }
    .a-searchResult:hover .a-searchResult__title, .a-searchResult:focus .a-searchResult__title, .a-searchResult:active .a-searchResult__title {
        color: #E42A1D; } }

.a-searchResult__article {
    font-family: "Neue Regular";
    font-size: 16px;
    line-height: 25px;
    font-weight: normal;
    font-style: normal;
    letter-spacing: 0;
    transition: color ease-in-out 180ms; }
.js-sans-loaded .a-searchResult__article {
    font-family: sans-serif; }
@media screen and (min-width: 64em) {
    .a-searchResult__article {
        font-family: "Neue Regular";
        font-size: 17px;
        line-height: 30px;
        font-weight: normal;
        font-style: normal;
        letter-spacing: 0; }
    .js-sans-loaded .a-searchResult__article {
        font-family: sans-serif; } }
.a-searchResult__article p {
    margin: 0; }
.a-searchResult__article strong {
    font-weight: 800; }

.a-searchResult__title {
    font-family: "Neue Regular";
    font-size: 22px;
    line-height: 35px;
    font-weight: 800;
    font-style: normal;
    letter-spacing: 0;
    color: #000000;
    margin: 0 0 3px;
    transition: color ease-in-out 180ms; }
.js-sans-loaded .a-searchResult__title {
    font-family: sans-serif; }

.a-searchResult__footer {
    font-family: "Neue Regular";
    font-size: 13px;
    line-height: 20px;
    font-weight: normal;
    font-style: normal;
    letter-spacing: 0;
    margin-top: 9px; }
.js-sans-loaded .a-searchResult__footer {
    font-family: sans-serif; }
@media screen and (min-width: 64em) {
    .a-searchResult__footer {
        font-family: "Neue Regular";
        font-size: 14px;
        line-height: 25px;
        font-weight: normal;
        font-style: normal;
        letter-spacing: 0; }
    .js-sans-loaded .a-searchResult__footer {
        font-family: sans-serif; } }

.a-vcard .org {
    font-weight: 800; }

/* Navigation List
------------------------- */
.m-navList {
    font-family: "Neue Regular";
    font-size: 16px;
    line-height: 25px;
    font-weight: 800;
    font-style: normal;
    letter-spacing: 0; }
.js-sans-loaded .m-navList {
    font-family: sans-serif; }
@media screen and (min-width: 30em) {
    .m-navList {
        font-family: "Neue Regular";
        font-size: 18px;
        line-height: 35px;
        font-weight: 800;
        font-style: normal;
        letter-spacing: 0; }
    .js-sans-loaded .m-navList {
        font-family: sans-serif; } }
@media screen and (min-width: 40em) {
    .m-navList {
        font-family: "Neue Regular";
        font-size: 22px;
        line-height: 35px;
        font-weight: 800;
        font-style: normal;
        letter-spacing: 0; }
    .js-sans-loaded .m-navList {
        font-family: sans-serif; } }
@media screen and (min-width: 64em) {
    .m-navList {
        font-family: "Neue Regular";
        font-size: 15px;
        line-height: 35px;
        font-weight: 800;
        font-style: normal;
        letter-spacing: 0; }
    .js-sans-loaded .m-navList {
        font-family: sans-serif; } }
@media screen and (min-width: 72.5em) {
    .m-navList {
        font-family: "Neue Regular";
        font-size: 17px;
        line-height: 45px;
        font-weight: 800;
        font-style: normal;
        letter-spacing: 0; }
    .js-sans-loaded .m-navList {
        font-family: sans-serif; } }
@media screen and (min-width: 90.625em) {
    .m-navList {
        font-family: "Neue Regular";
        font-size: 18px;
        line-height: 45px;
        font-weight: 800;
        font-style: normal;
        letter-spacing: 0; }
    .js-sans-loaded .m-navList {
        font-family: sans-serif; } }

@media screen and (min-width: 64em) {
    .m-navList--primary {
        letter-spacing: -4px; }
    .m-navList--primary .m-navList__item {
        letter-spacing: 0; } }

@media screen and (min-width: 64em) {
    .m-navList--secondary,
    .m-navList--tertiary {
        font-family: "Neue Regular";
        font-size: 10px;
        line-height: 26px;
        font-weight: 800;
        font-style: normal;
        letter-spacing: 0.05rem;
        color: #767676;
        display: inline-block;
        text-transform: uppercase;
        vertical-align: baseline; }
    .js-sans-loaded .m-navList--secondary, .js-sans-loaded
    .m-navList--tertiary {
        font-family: sans-serif; }
    .m-navList--secondary a,
    .m-navList--tertiary a {
        color: inherit; } }

.m-navList--secondary {
    font-family: "Neue Regular";
    font-size: 13px;
    line-height: 25px;
    font-weight: 400;
    font-style: normal;
    letter-spacing: 0; }
.js-sans-loaded .m-navList--secondary {
    font-family: sans-serif; }
@media screen and (min-width: 30em) {
    .m-navList--secondary {
        font-family: "Neue Regular";
        font-size: 15px;
        line-height: 25px;
        font-weight: normal;
        font-style: normal;
        letter-spacing: 0; }
    .js-sans-loaded .m-navList--secondary {
        font-family: sans-serif; } }
@media screen and (min-width: 64em) {
    .m-navList--secondary {
        font-family: "Neue Regular";
        font-size: 10px;
        line-height: 26px;
        font-weight: 800;
        font-style: normal;
        letter-spacing: 0.05rem;
        padding-right: 25px; }
    .js-sans-loaded .m-navList--secondary {
        font-family: sans-serif; }
    .m-navList--secondary .m-navList__item {
        padding: 0 10px; }
    .m-navList--secondary > :last-child {
        position: relative; }
    .m-navList--secondary > :last-child:after {
        background: #D9D9D9;
        content: '';
        display: block;
        height: 26px;
        position: absolute;
        right: -15px;
        top: -8px;
        width: 1px; }
    .m-navList--secondary .m-navList__link {
        border-bottom: 1px solid transparent;
        transition: border-bottom ease-in-out 180ms; }
    .m-navList--secondary .m-navList__link.is-active {
        border-bottom: 1px solid #767676;
        color: #767676; }
    .m-navList--secondary .m-navList__link:hover, .m-navList--secondary .m-navList__link:focus, .m-navList--secondary .m-navList__link:active {
        border-bottom: 1px solid #767676;
        color: #767676; } }

@media screen and (max-width: 63.9375em) {
    .m-navList--tertiary {
        font-family: "Neue Regular";
        font-size: 13px;
        line-height: 44px;
        font-weight: normal;
        font-style: normal;
        letter-spacing: 0;
        background: #E42A1D;
        display: none;
        padding: 0 17.5%;
        width: 100%;
        z-index: 100;
        transition: left ease-in-out 180ms;
        position: fixed;
        bottom: 0; }
    .js-sans-loaded .m-navList--tertiary {
        font-family: sans-serif; }
    .m-navList--tertiary .m-navList__item {
        -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
        flex: 1 1 auto; }
    .m-navList--tertiary .m-navList__link {
        font-family: "Neue Regular";
        font-size: 13px;
        line-height: 45px;
        font-weight: normal;
        font-style: normal;
        letter-spacing: 0;
        border: none;
        color: #FFFFFF;
        padding: 0;
        text-align: center;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale; }
    .js-sans-loaded .m-navList--tertiary .m-navList__link {
        font-family: sans-serif; } }

@media screen and (min-width: 64em) {
    .m-navList--tertiary .m-navList__item {
        padding: 0 10px; }
    .m-navList--tertiary .m-navList__link {
        border-bottom: 1px solid transparent;
        transition: border-bottom ease-in-out 180ms; }
    .m-navList--tertiary .m-navList__link.is-active {
        border-bottom: 1px solid #767676;
        color: #767676; }
    .m-navList--tertiary .m-navList__link:hover, .m-navList--tertiary .m-navList__link:focus, .m-navList--tertiary .m-navList__link:active {
        border-bottom: 1px solid #767676;
        color: #767676; } }

.m-navList--tertiary .m-navList__item:last-of-type a {
    border-bottom: 1px solid transparent;
    transition: border-bottom ease-in-out 180ms; }
@media screen and (min-width: 64em) {
    .m-navList--tertiary .m-navList__item:last-of-type a {
        color: #E42A1D; } }
.m-navList--tertiary .m-navList__item:last-of-type a.is-active {
    border-bottom: 1px solid transparent;
    color: #E42A1D; }
.m-navList--tertiary .m-navList__item:last-of-type a:hover, .m-navList--tertiary .m-navList__item:last-of-type a:focus, .m-navList--tertiary .m-navList__item:last-of-type a:active {
    border-bottom: 1px solid #767676; }

@media screen and (min-width: 64em) {
    .m-navList--tertiary-mobile {
        display: none; } }

/* Content Wrapper
------------------------- */
.m-navList__wrapper {
    max-height: 0;
    overflow: hidden;
    transition: max-height ease-in-out 360ms; }
@media screen and (min-width: 64em) {
    .m-navList__wrapper {
        background-color: #212121;
        display: block;
        max-height: none;
        padding: 0 45px;
        opacity: 0;
        width: 100%;
        transition: visibility linear 180ms, opacity linear 180ms;
        transition-delay: 200ms;
        visibility: hidden;
        position: absolute;
        top: 140px;
        left: 0; } }
@media screen and (min-width: 72.5em) {
    .m-navList__wrapper {
        padding: 0 60px; } }
@media screen and (min-width: 90.625em) {
    .m-navList__wrapper {
        padding: 0 80px; } }

/* Content Container
------------------------- */
@media screen and (max-width: 63.9375em) {
    .m-navList__container .columns {
        padding: 0; } }

@media screen and (max-width: 72.4375em) {
    .m-navList__container {
        overflow: hidden; }
    .m-navList__container .row {
        margin: 0; }
    .m-navList__container .columns {
        padding: 0; } }

@media screen and (min-width: 64em) {
    .m-navList__container {
        margin: 0 auto;
        max-width: 1580px;
        padding: 30px 0 40px; } }

@media screen and (min-width: 64em) {
    .m-navList__container--flex {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-align-items: top;
        -ms-flex-align: top;
        align-items: top; } }

.m-navList__container--slim {
    padding: 0; }

/* Secondary / Tertiary Menu Level
------------------------- */
.m-navList__menu {
    font-family: "Neue Regular";
    font-size: 16px;
    line-height: 25px;
    font-weight: 400;
    font-style: normal;
    letter-spacing: 0;
    background-color: #F2F2F2;
    text-align: left; }
.js-sans-loaded .m-navList__menu {
    font-family: sans-serif; }
@media screen and (min-width: 30em) {
    .m-navList__menu {
        font-family: "Neue Regular";
        font-size: 18px;
        line-height: 25px;
        font-weight: 400;
        font-style: normal;
        letter-spacing: 0; }
    .js-sans-loaded .m-navList__menu {
        font-family: sans-serif; } }
@media screen and (min-width: 64em) {
    .m-navList__menu {
        font-family: "Neue Regular";
        font-size: 15px;
        line-height: 25px;
        font-weight: 800;
        font-style: normal;
        letter-spacing: 0;
        background: none;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale; }
    .js-sans-loaded .m-navList__menu {
        font-family: sans-serif; } }
@media screen and (min-width: 72.5em) {
    .m-navList__menu {
        font-family: "Neue Regular";
        font-size: 17px;
        line-height: 25px;
        font-weight: 800;
        font-style: normal;
        letter-spacing: 0; }
    .js-sans-loaded .m-navList__menu {
        font-family: sans-serif; } }
@media screen and (min-width: 90.625em) {
    .m-navList__menu {
        font-family: "Neue Regular";
        font-size: 18px;
        line-height: 25px;
        font-weight: 800;
        font-style: normal;
        letter-spacing: 0; }
    .js-sans-loaded .m-navList__menu {
        font-family: sans-serif; } }
@media screen and (min-width: 64em) {
    .m-navList__menu li {
        overflow: hidden;
        -webkit-column-break-inside: avoid;
        break-inside: avoid; } }

@media screen and (min-width: 64em) {
    .m-navList__menu--split {
        -webkit-columns: 2;
        columns: 2;
        padding-right: 60px;
        -moz-columns: 2; } }

.m-navList__menu--tertiary {
    font-family: "Neue Regular";
    font-size: 17px;
    line-height: 45px;
    font-weight: 400;
    font-style: normal;
    letter-spacing: 0;
    max-height: 0;
    overflow: hidden;
    transition: max-height ease-in-out 360ms; }
.js-sans-loaded .m-navList__menu--tertiary {
    font-family: sans-serif; }
@media screen and (min-width: 64em) {
    .m-navList__menu--tertiary {
        display: none; } }

/* Additional Dropdown Content
------------------------- */
.m-navList__additional {
    display: none; }
@media screen and (min-width: 64em) {
    .m-navList__additional {
        font-family: "Neue Regular";
        font-size: 13px;
        line-height: 23px;
        font-weight: normal;
        font-style: normal;
        letter-spacing: 0;
        color: #FFFFFF;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        text-align: left; }
    .js-sans-loaded .m-navList__additional {
        font-family: sans-serif; } }
@media screen and (min-width: 72.5em) {
    .m-navList__additional {
        font-family: "Neue Regular";
        font-size: 14px;
        line-height: 25px;
        font-weight: normal;
        font-style: normal;
        letter-spacing: 0; }
    .js-sans-loaded .m-navList__additional {
        font-family: sans-serif; } }
@media screen and (min-width: 90.625em) {
    .m-navList__additional {
        font-family: "Neue Regular";
        font-size: 15px;
        line-height: 25px;
        font-weight: normal;
        font-style: normal;
        letter-spacing: 0; }
    .js-sans-loaded .m-navList__additional {
        font-family: sans-serif; } }

.m-navList__additionalCTA {
    font-family: "Neue Regular";
    font-size: 8px;
    line-height: 10px;
    font-weight: 800;
    font-style: normal;
    letter-spacing: 0.05rem;
    border-bottom: 1px solid transparent;
    color: #E42A1D;
    display: inline-block;
    text-decoration: none;
    text-transform: uppercase;
    transition: border-bottom ease-in-out 180ms;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }
.js-sans-loaded .m-navList__additionalCTA {
    font-family: sans-serif; }
@media screen and (min-width: 64em) {
    .m-navList__additionalCTA {
        font-family: "Neue Regular";
        font-size: 10px;
        line-height: 15px;
        font-weight: 800;
        font-style: normal;
        letter-spacing: 0.05rem; }
    .js-sans-loaded .m-navList__additionalCTA {
        font-family: sans-serif; }
    .m-navList__additionalCTA:hover, .m-navList__additionalCTA:focus, .m-navList__additionalCTA:active {
        border-bottom: 1px solid #E42A1D; } }

.m-navList__additionalTitle {
    font-family: "Neue Regular";
    font-size: 8px;
    line-height: 10px;
    font-weight: 800;
    font-style: normal;
    letter-spacing: 0.05rem;
    color: #FFFFFF;
    margin: 1px 0 5px;
    text-transform: uppercase;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }
.js-sans-loaded .m-navList__additionalTitle {
    font-family: sans-serif; }
@media screen and (min-width: 64em) {
    .m-navList__additionalTitle {
        font-family: "Neue Regular";
        font-size: 10px;
        line-height: 15px;
        font-weight: 800;
        font-style: normal;
        letter-spacing: 0.05rem; }
    .js-sans-loaded .m-navList__additionalTitle {
        font-family: sans-serif; } }

.m-navList_additionalList {
    margin-left: -8px;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }
.m-navList_additionalList .icon {
    display: inline-block;
    fill: #B2B2B2;
    float: left;
    height: 12px;
    margin: 4px 5px 0 6px;
    width: 12px;
    transition: fill ease-in-out 180ms; }
.m-navList_additionalList a {
    font-family: "Neue Regular";
    font-size: 13px;
    line-height: 25px;
    font-weight: normal;
    font-style: normal;
    letter-spacing: 0;
    color: #B2B2B2;
    display: inline-block;
    padding-left: 24px;
    position: relative;
    text-decoration: none;
    transition: color ease-in-out 180ms; }
.js-sans-loaded .m-navList_additionalList a {
    font-family: sans-serif; }
.m-navList_additionalList a:before, .m-navList_additionalList a:after {
    background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3Csvg version='1.1' id='background' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' width='18px' height='18px' viewBox='0 0 18 18' style='enable-background:new 0 0 18 18;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23B2B2B2;} %3C/style%3E%3Cg%3E%3Cpolygon class='st0' points='8,15.4 7.3,14.6 13.4,8.5 7.3,2.4 8,1.6 14.8,8.5 '/%3E%3C/g%3E%3C/svg%3E");
    background-size: contain;
    content: '';
    display: inline-block;
    height: 15px;
    width: 19px;
    position: absolute;
    top: 3px;
    left: 3px; }
.m-navList_additionalList a:after {
    background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3Csvg version='1.1' id='background' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' width='18px' height='18px' viewBox='0 0 18 18' style='enable-background:new 0 0 18 18;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23E42A1D;} %3C/style%3E%3Cg%3E%3Cpolygon class='st0' points='8,15.4 7.3,14.6 13.4,8.5 7.3,2.4 8,1.6 14.8,8.5 '/%3E%3C/g%3E%3C/svg%3E");
    opacity: 0;
    transition: opacity ease-in-out 180ms;
    position: absolute;
    top: 3px;
    left: 3px; }
@media screen and (min-width: 64em) {
    .m-navList_additionalList a:hover, .m-navList_additionalList a:focus, .m-navList_additionalList a:active {
        color: #E42A1D; }
    .m-navList_additionalList a:hover:after, .m-navList_additionalList a:focus:after, .m-navList_additionalList a:active:after {
        opacity: 1; } }

/* Dropdown Image
------------------------- */
.m-navList__image {
    -webkit-flex: 1 1 200px;
    -ms-flex: 1 1 200px;
    flex: 1 1 200px;
    margin-top: 5px;
    max-width: 460px; }
.m-navList__image img {
    display: block;
    width: 100%; }

/* Dropdown Blurb
------------------------- */
.m-navList__info {
    -webkit-flex: 1 1 300px;
    -ms-flex: 1 1 300px;
    flex: 1 1 300px;
    margin-top: 4px;
    padding-left: 40px; }

/* Dropdown Footer
------------------------- */
.m-navList__footer {
    display: none; }
@media screen and (min-width: 64em) {
    .m-navList__footer {
        font-family: "Neue Regular";
        font-size: 10px;
        line-height: 15px;
        font-weight: 800;
        font-style: normal;
        letter-spacing: 0.05rem;
        background: #050505;
        color: #FFFFFF;
        display: block;
        height: 50px;
        position: relative;
        text-align: left;
        text-transform: uppercase;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale; }
    .js-sans-loaded .m-navList__footer {
        font-family: sans-serif; }
    .m-navList__footer:after, .m-navList__footer:before {
        background: #050505;
        content: '';
        display: block;
        height: 50px;
        width: 45px;
        position: absolute;
        top: 0;
        left: -45px; } }
@media screen and (min-width: 64em) and (min-width: 72.5em) {
    .m-navList__footer:after, .m-navList__footer:before {
        left: -60px;
        width: 60px; } }
@media screen and (min-width: 64em) and (min-width: 90.625em) {
    .m-navList__footer:after, .m-navList__footer:before {
        left: -80px;
        width: 80px; } }
@media screen and (min-width: 64em) {
    .m-navList__footer:after {
        left: auto;
        right: -45px; } }
@media screen and (min-width: 64em) and (min-width: 72.5em) {
    .m-navList__footer:after {
        right: -60px; } }
@media screen and (min-width: 64em) and (min-width: 90.625em) {
    .m-navList__footer:after {
        right: -80px; } }
.m-navList__footer p {
    display: inline-block;
    line-height: 48px; }

.m-navList__footerList {
    display: inline-block;
    line-height: 48px; }
@media screen and (min-width: 64em) {
    .m-navList__footerList {
        padding-top: 2px; } }
.m-navList__footerList li {
    display: inline-block;
    margin-left: 20px; }
.m-navList__footerList a {
    color: #B2B2B2;
    text-decoration: none;
    transition: color ease-in-out 180ms; }
@media screen and (min-width: 64em) {
    .m-navList__footerList a {
        padding: 0 1px 0 0; }
    .m-navList__footerList a:hover, .m-navList__footerList a:focus, .m-navList__footerList a:active {
        color: #E42A1D; } }

.m-navList__footerList--additional {
    float: right; }
.m-navList__footerList--additional a {
    color: #FFFFFF; }

/* Navigation List Item
------------------------- */
@media screen and (min-width: 64em) {
    .m-navList__item {
        display: inline-block; } }
@media screen and (min-width: 64em) and (min-width: 64em) {
    .m-navList--primary .m-navList__item:hover > a, .m-navList--primary .m-navList__item:focus > a, .m-navList--primary .m-navList__item:active > a {
        color: #E42A1D; } }

@media screen and (min-width: 64em) {
    .m-navList__item--home {
        display: none; } }

@media screen and (min-width: 64em) {
    .m-navList__item--has-menu.is-current > a {
        color: #E42A1D; }
    .m-navList__item--has-menu.is-active > a {
        color: #E42A1D; }
    .m-navList__item--has-menu.is-active > a:after {
        opacity: 1; }
    .m-navList__item--has-menu.is-active .m-navList__wrapper {
        left: 0;
        opacity: 1;
        transition: visibility linear 180ms, opacity linear 180ms;
        visibility: visible; }
    .m-navList__item--has-menu > a {
        position: relative; }
    .m-navList__item--has-menu > a:after {
        border-left: 10px solid transparent;
        border-right: 10px solid transparent;
        border-bottom: 10px solid #212121;
        content: '';
        display: block;
        height: 0;
        margin-left: -10px;
        opacity: 0;
        position: absolute;
        bottom: 0;
        left: 50%;
        width: 0;
        z-index: 1;
        transition: opacity linear 180ms;
        transition-delay: 50ms; } }

@media screen and (min-width: 64em) and (min-width: 64em) {
    .no-js .m-navList__item--has-menu:hover > a:after, .no-js .m-navList__item--has-menu:focus > a:after, .no-js .m-navList__item--has-menu:active > a:after {
        opacity: 1; }
    .no-js .m-navList__item--has-menu:hover .m-navList__wrapper, .no-js .m-navList__item--has-menu:focus .m-navList__wrapper, .no-js .m-navList__item--has-menu:active .m-navList__wrapper {
        left: 0;
        opacity: 1; } }

.m-navList__item.m-navList__item--search {
    display: none; }
@media screen and (min-width: 64em) {
    .m-navList__item.m-navList__item--search {
        display: inline-block; } }
@media screen and (min-width: 64em) {
    .m-navList__item.m-navList__item--search a:hover .icon, .m-navList__item.m-navList__item--search a:focus .icon, .m-navList__item.m-navList__item--search a:active .icon {
        fill: #E42A1D; } }
.m-navList__item.m-navList__item--search .icon {
    display: block;
    height: 35px;
    position: relative;
    right: 0;
    top: 10px;
    width: 35px;
    -webkit-transform: none;
    -ms-transform: none;
    transform: none;
    transition: fill ease-in-out 180ms; }
@media screen and (min-width: 64em) {
    .m-navList__item.m-navList__item--search .icon {
        display: inline-block; } }

.m-navList__item--apply {
    color: #E42A1D; }

/* Navigation List Link
------------------------- */
.m-navList__link {
    color: #191919;
    display: block;
    padding: 11px 40px 7px 19px;
    text-decoration: none; }
@media screen and (min-width: 30em) {
    .m-navList__link {
        padding: 18px 40px 11px 19px; } }
@media screen and (min-width: 40em) {
    .m-navList__link {
        padding: 18px 50px 11px 30px; } }
@media screen and (min-width: 64em) {
    .m-navList__link {
        padding: 0 10px;
        transition: color linear 180ms;
        transition-delay: 75ms; }
    .m-navList__link:hover, .m-navList__link:focus, .m-navList__link:active {
        color: #E42A1D;
        transition-delay: 150ms; } }
@media screen and (min-width: 72.5em) {
    .m-navList__link {
        padding: 0 13px; } }
@media screen and (min-width: 90.625em) {
    .m-navList__link {
        padding: 0 15px; } }
@media screen and (max-width: 63.9375em) {
    .m-navList__link {
        border-top: 1px solid #D9D9D9; } }
@media screen and (min-width: 30em) {
    .m-navList--secondary .m-navList__link {
        padding: 23px 40px 16px 19px; } }
@media screen and (min-width: 40em) {
    .m-navList--secondary .m-navList__link {
        padding: 23px 40px 16px 30px; } }
@media screen and (min-width: 64em) {
    .m-navList--secondary .m-navList__link {
        line-height: 15px;
        padding: 0; } }
@media screen and (min-width: 30em) {
    .m-navList--tertiary .m-navList__link {
        font-family: "Neue Regular";
        font-size: 15px;
        line-height: 25px;
        font-weight: 400;
        font-style: normal;
        letter-spacing: 0;
        line-height: 64px; }
    .js-sans-loaded .m-navList--tertiary .m-navList__link {
        font-family: sans-serif; } }
@media screen and (min-width: 64em) {
    .m-navList--tertiary .m-navList__link {
        font-family: "Neue Regular";
        font-size: 10px;
        line-height: 15px;
        font-weight: 800;
        font-style: normal;
        letter-spacing: 0;
        line-height: 15px;
        padding: 0; }
    .js-sans-loaded .m-navList--tertiary .m-navList__link {
        font-family: sans-serif; } }
.m-navList__item--search .m-navList__link {
    padding: 0; }
@media screen and (min-width: 64em) {
    .m-navList > li:last-child .m-navList__link {
        padding-right: 0; } }

.m-navList__link--primary.is-active {
    color: #E42A1D; }
.m-navList__link--primary.is-active + .m-navList__wrapper {
    max-height: 1000px; }

.m-navList__link--primary.is-current {
    color: #E42A1D; }

@media screen and (min-width: 64em) {
    .m-navList__link--primary {
        line-height: 89px; } }

.m-navList__link--secondary {
    color: #191919; }
@media screen and (min-width: 30em) {
    .m-navList__link--secondary {
        padding: 23px 40px 16px 19px; } }
@media screen and (min-width: 40em) {
    .m-navList__link--secondary {
        padding: 23px 40px 16px 30px; } }
.m-navList__link--secondary.is-active {
    color: #E42A1D; }
.m-navList__link--secondary.is-active + .m-navList__menu--tertiary {
    max-height: 500px; }
.m-navList__link--secondary.is-current {
    color: #E42A1D; }
@media screen and (min-width: 64em) {
    .m-navList__link--secondary {
        color: #FFFFFF;
        padding: 0; } }

.m-navList__link--primary,
.m-navList__link--secondary {
    position: relative; }
.m-navList__link--primary .icon,
.m-navList__link--secondary .icon {
    display: inline-block;
    height: 14px;
    width: 14px;
    position: absolute;
    top: 50%;
    right: 18px;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%); }
@media screen and (min-width: 40em) {
    .m-navList__link--primary .icon,
    .m-navList__link--secondary .icon {
        right: 28px; } }
@media screen and (min-width: 64em) {
    .m-navList__link--primary .icon,
    .m-navList__link--secondary .icon {
        display: none; } }
.m-navList__link--primary.is-active .icon,
.m-navList__link--secondary.is-active .icon {
    -webkit-transform: translateY(-50%) rotate(180deg);
    -ms-transform: translateY(-50%) rotate(180deg);
    transform: translateY(-50%) rotate(180deg); }

@media screen and (min-width: 64em) {
    .m-navList__link--secondary {
        margin: 0 0 10px 0;
        padding-right: 10px;
        position: static; } }

.m-navList__link--tertiary {
    font-family: "Neue Regular";
    font-size: 13px;
    line-height: 20px;
    font-weight: 400;
    font-style: normal;
    letter-spacing: 0;
    padding: 14px 20px 9px 45px; }
.js-sans-loaded .m-navList__link--tertiary {
    font-family: sans-serif; }
@media screen and (min-width: 30em) {
    .m-navList__link--tertiary {
        font-family: "Neue Regular";
        font-size: 15px;
        line-height: 25px;
        font-weight: 400;
        font-style: normal;
        letter-spacing: 0;
        padding: 22px 20px 17px 50px; }
    .js-sans-loaded .m-navList__link--tertiary {
        font-family: sans-serif; } }
.m-navList__link--tertiary.is-current {
    color: #E42A1D; }

.m-searchResultsList {
    margin: 0;
    padding: 0; }

.m-searchResultsList__item {
    margin: 0;
    padding: 0 0 65px; }
.m-searchResultsList__item:before {
    display: none; }
@media screen and (min-width: 40em) {
    .m-searchResultsList__item {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex; }
    .m-searchResultsList__item:not(:last-of-type) {
        border-bottom: 1px solid #D9D9D9; } }

.m-searchResultsList__itemTitle {
    font-family: "Neue Regular";
    font-size: 10px;
    line-height: 15px;
    font-weight: 800;
    font-style: normal;
    letter-spacing: 0.03rem;
    color: #191919;
    margin: 0;
    padding: 30px 0 0;
    text-transform: uppercase; }
.js-sans-loaded .m-searchResultsList__itemTitle {
    font-family: sans-serif; }
@media screen and (min-width: 40em) {
    .m-searchResultsList__itemTitle {
        -webkit-flex: 1 0 auto;
        -ms-flex: 1 0 auto;
        flex: 1 0 auto;
        max-width: 160px;
        padding: 36px 0 0;
        width: 160px; } }
@media screen and (min-width: 64em) {
    .m-searchResultsList__itemTitle {
        font-family: "Neue Regular";
        font-size: 13px;
        line-height: 20px;
        font-weight: 800;
        font-style: normal;
        letter-spacing: 0.03rem;
        max-width: 240px;
        width: 240px; }
    .js-sans-loaded .m-searchResultsList__itemTitle {
        font-family: sans-serif; } }
.g-search .m-searchResultsList__itemTitle {
    padding: 37px 0 0; }

.m-searchResultsList__category {
    margin: 0;
    padding: 0;
    width: 100%; }

.m-searchResultsList__categoryItem {
    margin: 0;
    padding: 0; }
.m-searchResultsList__categoryItem:before {
    display: none; }
.m-searchResultsList__categoryItem:not(:last-child) {
    border-bottom: 1px solid #D9D9D9; }

.m-searchResultsList__cta {
    font-family: "Neue Regular";
    font-size: 8px;
    line-height: 10px;
    font-weight: 800;
    font-style: normal;
    letter-spacing: 0.05rem;
    border-bottom: 1px solid transparent;
    color: #E42A1D;
    display: inline-block;
    margin-top: 19px;
    text-decoration: none;
    text-transform: uppercase;
    transition: border-bottom ease-in-out 180ms; }
.js-sans-loaded .m-searchResultsList__cta {
    font-family: sans-serif; }
@media screen and (min-width: 64em) {
    .m-searchResultsList__cta {
        font-family: "Neue Regular";
        font-size: 10px;
        line-height: 15px;
        font-weight: 800;
        font-style: normal;
        letter-spacing: 0.05rem; }
    .js-sans-loaded .m-searchResultsList__cta {
        font-family: sans-serif; } }
.m-searchResultsList__cta:hover, .m-searchResultsList__cta:focus, .m-searchResultsList__cta:active {
    border-bottom: 1px solid #E42A1D; }

.m-searchResultsList__loadMore {
    font-family: "Neue Regular";
    font-size: 10px;
    line-height: 15px;
    font-weight: 800;
    font-style: normal;
    letter-spacing: 0.03rem;
    border: 2px solid #D9D9D9;
    color: #767676;
    display: block;
    line-height: 66px;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    transition: border ease-in-out 180ms, background ease-in-out 180ms, color ease-in-out 180ms;
    width: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }
.js-sans-loaded .m-searchResultsList__loadMore {
    font-family: sans-serif; }
@media screen and (min-width: 40em) {
    .m-searchResultsList__loadMore {
        margin: 40px auto 0;
        width: 260px; } }
@media screen and (min-width: 64em) {
    .m-searchResultsList__loadMore {
        font-family: "Neue Regular";
        font-size: 13px;
        line-height: 20px;
        font-weight: 800;
        font-style: normal;
        letter-spacing: 0.03rem;
        line-height: 66px;
        margin: 50px auto 45px; }
    .js-sans-loaded .m-searchResultsList__loadMore {
        font-family: sans-serif; }
    .m-searchResultsList__loadMore:hover, .m-searchResultsList__loadMore:focus, .m-searchResultsList__loadMore:active {
        background: #767676;
        border: 2px solid #767676;
        color: #FFFFFF;
        cursor: pointer; } }

/* Navigation
------------------------- */
.o-nav {
    background: #FFFFFF;
    overflow-y: scroll;
    width: 100%;
    opacity: 0;
    visibility: hidden;
    position: fixed;
    top: 59px;
    left: 0;
    bottom: 0; }
@media screen and (min-width: 64em) {
    .o-nav {
        background: none;
        height: 140px;
        opacity: 1;
        padding: 51px 0 0;
        position: static;
        overflow: visible;
        text-align: right;
        -webkit-transform: none;
        -ms-transform: none;
        transform: none;
        transition: none;
        visibility: visible; } }

/* navigation Title
------------------------- */
.o-nav__title {
    font: 0/0 a;
    text-shadow: none;
    color: transparent;
    overflow: hidden;
    text-indent: -100%; }

/* Secondary Navigation
------------------------- */
@media screen and (min-width: 64em) {
    .o-nav__secondary {
        line-height: 1;
        width: 100%;
        position: absolute;
        left: 0;
        top: 13px; } }

@media screen and (min-width: 72.5em) {
    .o-nav__secondary {
        padding-right: 0; } }

/* Navigation Container
------------------------- */
.o-nav__container {
    margin: 0 auto;
    max-width: 1740px; }
@media screen and (min-width: 64em) {
    .o-nav__container {
        padding: 0 45px; } }
@media screen and (min-width: 72.5em) {
    .o-nav__container {
        padding: 0 60px; } }
@media screen and (min-width: 90.625em) {
    .o-nav__container {
        padding: 0 80px; } }

@media screen and (min-width: 64em) {
    .s-autocomplete-active .o-liveContent:after {
        display: block; } }

.s-header-fixed .g-header {
    border-bottom: 1px solid #D9D9D9; }
@media screen and (min-width: 64em) {
    .s-header-fixed .g-header {
        height: 95px;
        position: fixed; }
    .s-header-fixed .g-header + main {
        padding-top: 140px; } }

.s-header-fixed .g-header__logo {
    margin: 8px 0 0 5px; }
@media screen and (min-width: 64em) {
    .s-header-fixed .g-header__logo {
        margin: 27px 0 0 -14px; } }
@media screen and (min-width: 72.5em) {
    .s-header-fixed .g-header__logo {
        margin: 27px 0 0 -13px; } }
@media screen and (min-width: 80em) {
    .s-header-fixed .g-header__logo {
        margin: 17px 0 0 -16px; } }
.s-header-fixed .g-header__logo .icon--logo {
    display: none; }
@media screen and (min-width: 64em) {
    .s-header-fixed .g-header__logo .icon--logo {
        display: none; } }
.s-header-fixed .g-header__logo .icon--logo-mobile {
    display: block; }
@media screen and (min-width: 80em) {
    .s-header-fixed .g-header__logo .icon--logo-mobile {
        display: none; } }
.s-header-fixed .g-header__logo .icon--logo-1l {
    display: none; }
@media screen and (min-width: 80em) {
    .s-header-fixed .g-header__logo .icon--logo-1l {
        display: block; } }

@media screen and (min-width: 64em) {
    .s-header-fixed .o-nav {
        height: 95px;
        padding-top: 0; } }

.s-header-fixed .o-nav__secondary {
    display: none; }

.s-header-fixed .m-navList__wrapper {
    top: 95px; }

.s-header-fixed .m-navList__item--has-menu .m-navList__link--primary:after {
    bottom: 4px; }

@media screen and (min-width: 64em) {
    .s-header-fixed .m-navList__link--primary {
        line-height: 99px; } }

.s-menu-open .o-nav {
    opacity: 1;
    padding: 0 0 46px;
    visibility: visible;
    -webkit-overflow-scrolling: touch; }

.s-menu-open .o-nav__secondary {
    display: block; }

.s-menu-open .m-navList--tertiary-mobile {
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    left: 0; }

.s-menu-open .g-mask {
    opacity: 1;
    visibility: visible; }

.s-menu-open, .s-menu-open body {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    overflow: hidden;
    overflow-y: hidden;
    -webkit-transform: translate3D(0, 0, 0);
    -ms-transform: translate3D(0, 0, 0);
    transform: translate3D(0, 0, 0); }

.s-overlay-active {
    height: 100%;
    overflow: hidden; }
.s-overlay-active body {
    height: 100%;
    overflow: hidden; }
.s-overlay-active .g-overlay {
    height: 100%;
    opacity: 1;
    width: 100%;
    z-index: 100; }
.s-overlay-active .g-apply {
    display: block; }

@media screen and (min-width: 64em) {
    .s-search-active {
        overflow-y: hidden; } }

@media screen and (min-width: 64em) {
    .s-search-active body {
        overflow-y: hidden; } }

@media screen and (min-width: 64em) {
    .s-search-active .g-mask {
        opacity: 1;
        visibility: visible;
        z-index: 100; } }

.s-search-active .g-search {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0); }
@media screen and (min-width: 64em) {
    .s-search-active .g-search {
        display: block;
        opacity: 1;
        visibility: visible; } }

.svg-sprite {
    position: absolute;
    z-index: -1;
    left: -1px;
    top: -1px;
    width: 1px;
    height: 1px;
    overflow: hidden; }

a {
    color: #e82e21; }

.g-header .m-navList__info p, .g-header .m-navList__info a {
    font-feature-settings: 'kern';
    -webkit-font-kerning: normal;
    font-kerning: normal;
    text-rendering: optimizeLegibility;
    font-variant-ligatures: common-ligatures;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    text-size-adjust: 100%; }

.g-header .m-navList__info p:not([class]) {
    font-family: "Neue Regular";
    font-size: 14px;
    line-height: 25px;
    font-weight: normal;
    font-style: normal;
    letter-spacing: 0;
    margin-bottom: 0; }
.js-sans-loaded .g-header .m-navList__info p:not([class]) {
    font-family: sans-serif; }

.g-header .m-navList__info > a {
    font-family: "Neue Regular";
    font-size: 10px;
    line-height: 15px;
    font-weight: normal;
    font-style: normal;
    letter-spacing: 0;
    font-weight: 800; }
.js-sans-loaded .g-header .m-navList__info > a {
    font-family: sans-serif; }

header {
    margin-bottom: 20px; }

.g-header > .row > .large-15 {
    width: 100%; }
.g-header > .row > .large-15 .row {
    position: relative; }

@media screen and (min-width: 64em) {
    .o-nav__secondary {
        padding-right: 0;
        right: 0; }
    .o-nav__container {
        padding: 0; } }

@media screen and (min-width: 72.5em) {
    .m-navList__link {
        padding: 10px; }
    .m-navList__link--secondary {
        padding: 0 10px 0 0; } }

@media screen and (max-width: 1023px) {
    #page_info {
        margin-top: 70px; } }

@media screen and (min-width: 1024px) {
    .g-footer {
        margin-top: 20px; } }

.g-footer a {
    color: #fff; }
.g-footer a:hover {
    color: #fff; }

.g-footer__additional p {
    font-size: 14px;
    line-height: 30px; }

.g-footer__additional a {
    color: #A7A9AC; }

@media screen and (max-width: 1023px) {
    .xsmall-7 {
        width: 46.66667%; }
    .xsmall-8 {
        width: 53.33333%; } }

.g-search__formInput:focus {
    border: none; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl92YXJpYWJsZS1vdmVycmlkZXMtZm9yLW5hdi5zY3NzIiwiLi4vc3JjL2Fzc2V0cy9zY3NzL3NldHVwL21peGlucy9fdHlwb2dyYXBoeS5zY3NzIiwiLi4vc3JjL2Fzc2V0cy9zY3NzL3NldHVwL190eXBvZ3JhcGh5LnNjc3MiLCIuLi9zcmMvYXNzZXRzL3Njc3Mvc2V0dXAvX2ljb25zLnNjc3MiLCIuLi9zcmMvYXNzZXRzL3Njc3MvbGlicy9hbGdvbGlhLnNjc3MiLCIuLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy91dGlsL19icmVha3BvaW50LnNjc3MiLCIuLi9zcmMvYXNzZXRzL3Njc3Mvc2V0dXAvX2NvbG9ycy5zY3NzIiwiLi4vc3JjL2Fzc2V0cy9zY3NzL2xpYnMvYW5pbWF0ZS5zY3NzIiwiLi4vc3JjL2Fzc2V0cy9zY3NzL19nbG9iYWxzL19nLWFwcGx5LnNjc3MiLCIuLi9zcmMvYXNzZXRzL3Njc3MvX2dsb2JhbHMvX2ctYnJlYWRjcnVtYnMuc2NzcyIsIi4uL3NyYy9hc3NldHMvc2Nzcy9fZ2xvYmFscy9fZy1oZWFkZXIuc2NzcyIsIi4uL3NyYy9hc3NldHMvc2Nzcy9fZ2xvYmFscy9fZy1tYXNrLnNjc3MiLCIuLi9zcmMvYXNzZXRzL3Njc3MvX2dsb2JhbHMvX2ctb3ZlcmxheS5zY3NzIiwiLi4vc3JjL2Fzc2V0cy9zY3NzL19nbG9iYWxzL19nLWZvb3Rlci5zY3NzIiwiLi4vc3JjL2Fzc2V0cy9zY3NzL19nbG9iYWxzL19nLXNlYXJjaC5zY3NzIiwiLi4vc3JjL2Fzc2V0cy9zY3NzL19hdG9tcy9fZ2VuZXJhbC1zdHlsZXMuc2NzcyIsIi4uL3NyYy9hc3NldHMvc2Nzcy9fYXRvbXMvX2EtYnRuLnNjc3MiLCIuLi9zcmMvYXNzZXRzL3Njc3MvX2F0b21zL19hLWltZy5zY3NzIiwiLi4vc3JjL2Fzc2V0cy9zY3NzL19hdG9tcy9fYS1zZWFyY2hSZXN1bHQuc2NzcyIsIi4uL3NyYy9hc3NldHMvc2Nzcy9fYXRvbXMvX2EtdmNhcmQuc2NzcyIsIi4uL3NyYy9hc3NldHMvc2Nzcy9fbW9sZWN1bGVzL19tLW5hdkxpc3Quc2NzcyIsIi4uL3NyYy9hc3NldHMvc2Nzcy9fbW9sZWN1bGVzL19tLXNlYXJjaFJlc3VsdHNMaXN0LnNjc3MiLCIuLi9zcmMvYXNzZXRzL3Njc3MvX29yZ2FuaXNtcy9fby1uYXYuc2NzcyIsIi4uL3NyYy9hc3NldHMvc2Nzcy9zdGF0ZS9fcy1hdXRvY29tcGxldGUtYWN0aXZlLnNjc3MiLCIuLi9zcmMvYXNzZXRzL3Njc3Mvc3RhdGUvX3MtaGVhZGVyLWZpeGVkLnNjc3MiLCIuLi9zcmMvYXNzZXRzL3Njc3Mvc3RhdGUvX3MtbWVudS1vcGVuLnNjc3MiLCIuLi9zcmMvYXNzZXRzL3Njc3Mvc3RhdGUvX3Mtb3ZlcmxheS1hY3RpdmUuc2NzcyIsIi4uL3NyYy9hc3NldHMvc2Nzcy9zdGF0ZS9fcy1zZWFyY2gtYWN0aXZlLnNjc3MiLCJfYWRkZW5kYS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFrQkU7QUN0QkY7Ozs7Ozs7OztFQVNFO0FBNkJGOzs7O0VBSUU7QUFZRjs7Ozs7Ozs7O0VBU0U7QUFvQkY7Ozs7RUFJRTtBQVdGOzs7O0VBSUU7QUNyR0Y7RUFDRSxtQ0FBbUM7RUFDbkMsNENBQVE7RUFDUix1SUFDbUQ7RUFDbkQsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0UsNEJBQTRCO0VBQzVCLHNDQUFRO0VBQ1IsMkhBQzZDO0VBQzdDLGlCQUFpQixFQUFBOztBQUduQjtFQUNFLDRCQUE0QjtFQUM1Qiw0Q0FBUTtFQUNSLHVJQUNtRDtFQUNuRCxtQkFBbUI7RUFDbkIsaUJBQWlCLEVBQUE7O0FBR25CO0VBQ0UsNEJBQTRCO0VBQzVCLG9DQUFRO0VBQ1IsdUhBQzJDO0VBQzNDLGlCQUFpQixFQUFBOztBQUduQjtFQUNFLDRCQUE0QjtFQUM1QiwwQ0FBUTtFQUNSLG1JQUNpRDtFQUNqRCxtQkFBbUI7RUFDbkIsaUJBQWlCLEVBQUE7O0FDOUNuQjtFQUND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TUUsNEIyQjFCeUI7RTNCa0J6QixnQkFBcUI7RUFDckIsa0JBQXlCO0VBQ3pCLG9CQUs4RDtFQUo5RCxtQkFJNkU7RUFIN0Usa0JBR2dHO0UyQlU5RixpQkFBaUIsRUFDbEI7RTNCUEQ7SUFDRSx3QjJCN0IyQixFM0I4QjVCOztBMkJRSDtFQUNFLG9CQUFvQixFQUNyQjs7QUFDRDtFQUNFLFlBQVksRUFJYjtFQUxEO0lBR0ksbUJBQW1CLEVBQ3BCOztBQUVIO0VBQ0U7SUFDRSxpQkFBaUI7SUFDakIsU0FBUyxFQUNWO0VBQ0Q7SUFDRSxXQUFXLEVBQ1osRUFBQTs7QUFFSDtFQUNFO0lBQ0UsY0FBYyxFQUNmO0VBQ0Q7SUFDRSxvQkFBb0IsRUFDckIsRUFBQTs7QUFHSDtFQUNFO0lBQ0UsaUJBQWlCLEVBQ2xCLEVBQUE7O0FBRUg7RUFDRTtJQUNFLGlCQUFpQixFQUNsQixFQUFBOztBQUVIO0VBRUksWUFBWSxFQUliO0VBTkg7SUFJTSxZQUFZLEVBQ2I7O0FBR0w7RUFFSSxnQkFBZ0I7RUFDaEIsa0JBQWtCLEVBQ25COztBQUpIO0VBTUksZXRCN0VxQixFc0I4RXRCOztBQUVIO0VBQ0U7SUFDRSxpQkFBaUIsRUFDbEI7RUFDRDtJQUNFLGlCQUFpQixFQUNsQixFQUFBOztBQUdIO0VBQ0UsYUFBYSxFQUNkIiwiZmlsZSI6Im5hdi5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIkYnJlYWtwb2ludHM6IChcbiAgICAgICAgeHNtYWxsOiAwLFxuICAgICAgICBzbWFsbDogNDgwcHgsXG4gICAgICAgIG1lZGl1bTogNjQwcHgsXG4gICAgICAgIGxhcmdlOiAxMDI0cHgsXG4gICAgICAgIHhsYXJnZTogMTE2MHB4LFxuICAgICAgICB4eGxhcmdlOiAxNDUwcHhcbik7XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoeHNtYWxsIHNtYWxsIG1lZGl1bSBsYXJnZSB4bGFyZ2UgeHhsYXJnZSk7XG5cbi8qXG5cbiRicmVha3BvaW50LWNsYXNzZXM6IChzbWFsbCBtZWRpdW0tc21hbGwgbWVkaXVtIGxhcmdlIHhsYXJnZSk7XG5cbiRicmVha3BvaW50czogKFxuICAgICAgICBzbWFsbDogMHB4LFxuICAgICAgICBtZWRpdW0tc21hbGw6IDQ0MHB4LFxuICAgICAgICBtZWRpdW06IDc2OHB4LFxuICAgICAgICBsYXJnZTogMTAyNHB4LFxuICAgICAgICB4bGFyZ2U6IDEyMDBweCxcbiAgICAgICAgeHhsYXJnZTogMTQ0MHB4LFxuKTtcblxuLy8gTWVkaWEgUXVlcnkgUmFuZ2VzXG4keHNtYWxsLXJhbmdlOiAoMGVtLCAyNy41ZW0pOyAvLyAwcHggdG8gNDQwcHggLS0gdGhpcyBpcyBub3QgYSBidWlsdC1pbiBGb3VuZGF0aW9uIHJhbmdlXG4kc21hbGwtcmFuZ2U6ICgwZW0sIDQ4ZW0pOyAvLyAwcHggdG8gNzY4cHhcbiRsYXJnZS1yYW5nZTogKDQ4LjA2M2VtLCA5MGVtKTsgLy8gNzY5cHggdG8gMTQ0MHB4XG5cbiovIiwiLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xuLy8gRm9udCBzZXR1cCBtaXhpbnNcbi8vXG4vLyBVc2UgdGhlIHNlcmlmL3NhbnMtc2VyaWYgbWl4aW5zIGRpcmVjdGx5IGluIHRoZSBTQ1NTIGRvIGFueSByZXNwb25zaXZlIG92ZXJ3cml0ZXNcbi8vIHdpdGggd2l0aGluIHRoZSBicmVha3BvaW50IG1peGluIGUuZy5cblxuLypcbi5ibG9jayB7XG4gIEBpbmNsdWRlIHNlcmlmKDE4LCAyNSwgNTAwLCBpdGFsaWMpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICBmb250LXNpemU6IDI1cHg7XG4gICAgbGluZS1oZWlnaHQ6IDM1cHg7XG4gIH1cbn1cbiovXG5cbkBtaXhpbiBmb250LXN0eWxlKCRmb250LXNpemU6MTcsICRsaW5lLWhlaWdodDozMCwgJHdlaWdodDo0MDAsICRzdHlsZTpub3JtYWwsICRsZXR0ZXItc3BhY2luZzowKSB7XG4gIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZSAqIDFweDtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodCAqIDFweDtcbiAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG4gIGZvbnQtc3R5bGU6ICRzdHlsZTtcbiAgbGV0dGVyLXNwYWNpbmc6ICRsZXR0ZXItc3BhY2luZztcbn1cblxuQG1peGluIHNhbnMtc2VyaWYoJGZvbnQtc2l6ZToxNywgJGxpbmUtaGVpZ2h0OjMwLCAkd2VpZ2h0Om5vcm1hbCwgJHN0eWxlOm5vcm1hbCwgJGxldHRlci1zcGFjaW5nOjApIHtcbiAgZm9udC1mYW1pbHk6ICRzYW5zLXNlcmlmO1xuICBAaW5jbHVkZSBmb250LXN0eWxlKCRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJHdlaWdodCwgJHN0eWxlLCAkbGV0dGVyLXNwYWNpbmcpO1xuXG4gIC5qcy1zYW5zLWxvYWRlZCAmIHtcbiAgICBmb250LWZhbWlseTogJHNhbnMtc2VyaWYtLWxvYWRlZDtcbiAgfVxufVxuXG5AbWl4aW4gc2VyaWYoJGZvbnQtc2l6ZToxOSwgJGxpbmUtaGVpZ2h0OjMwLCAkd2VpZ2h0Om5vcm1hbCwgJHN0eWxlOm5vcm1hbCkge1xuICBmb250LWZhbWlseTogJHNlcmlmO1xuICBAaW5jbHVkZSBmb250LXN0eWxlKCRmb250LXNpemUsICRsaW5lLWhlaWdodCwgJHdlaWdodCwgJHN0eWxlKTtcblxuICAuanMtc2VyaWYtbG9hZGVkICYge1xuICAgIGZvbnQtZmFtaWx5OiAkc2VyaWYtLWxvYWRlZDtcbiAgfVxufVxuXG5cbi8qXG4gIEBtaXhpbiBmb250X3Ntb290aGluZ1xuXG4gIFNldCBmb250IHNtb290aGluZyBPTiBvciBPRkZcbiovXG5AbWl4aW4gZm9udC1zbW9vdGhpbmcoJHZhbHVlOiBvbikge1xuICBAaWYgJHZhbHVlID09IG9uIHtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICB9IEBlbHNlIHtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBzdWJwaXhlbC1hbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogYXV0bztcbiAgfVxufVxuXG5cbi8qXG4gIEBtaXhpbiB0ZXh0LXVuZGVybGluZVxuXG4gIEluc2VydHMgdmVuZG9yIHByZWZpeGVkIGJveCBzaGFkb3dzXG5cbiAgUGFyYW1ldGVyczpcbiAgJG9mZiAtIGNvbG9yXG4gICRvbiAtIGNvbG9yIGZvciBob3ZlclxuICAkcG9zIC0gdmVydGljYWwgcG9zaXRpb25cbiovXG5AbWl4aW4gdGV4dC11bmRlcmxpbmUoJHBvczogMTQsJG9mZjogJGNvbG9yX193aGl0ZSwkb246ICRjb2xvcl9faGlnaGxpZ2h0KSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgYmFja2dyb3VuZDoge1xuICAgIGltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKCRvZmYsIDApIDUwJSwgcmdiYSgkb2ZmLCAxKSA1MCUpO1xuICAgIHJlcGVhdDogcmVwZWF0LXg7XG4gICAgc2l6ZTogMnB4IDJweDtcbiAgICBwb3NpdGlvbjogMCAkcG9zKjFweDtcbiAgfVxuICAvLyB0byBkcmF3IHRoZSBsaW5lcyBiZWxvdyB0aGUgcmVndWxhciBoZWlnaHQgb2YgdGhlIGJveC4uLlxuICAvL3BhZGRpbmctYm90dG9tOiAzcHg7XG4gIC8vbWFyZ2luLWJvdHRvbTogLTNweDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKCRvbiwgMCkgNTAlLCByZ2JhKCRvbiwgMSkgNTAlKTtcbiAgfVxufVxuXG5cbi8qXG4gIEBtaXhpbiBoaWRlX3RleHRcblxuICBIaWRlcyB0ZXh0IGluIGFuIGVsZW1lbnRcbiovXG5cbkBtaXhpbiBoaWRlLXRleHQoKSB7XG4gIGZvbnQ6IDAvMCBhO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWluZGVudDogLTEwMCU7XG59XG5cblxuLypcbiAgQG1peGluIGFjdGl2ZVxuXG4gIENvbWJpbmVzIGhvdmVyLCBmb2N1cyBhbmQgYWN0aXZlIHN0eWxlc1xuKi9cbkBtaXhpbiBob3Zlci1mb2N1cyB7XG5cbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXG4vLyBMb2FkIGZvbnRzXG4vL1xuLy8gVXNlIGJlbG93IEBmb250LWZhY2UgZGVjbGFyYXRpb24gdGVtcGxhdGUgdG8gbG9hZCBmb250c1xuLy8gQ29weS9wYXN0ZSBmb3IgZWFjaCBmb250IHRvIGJlIGxvYWRlZFxuXG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJOZXVlIERpc3BsYXkgUmFuZG9tXCI7XG4gIHNyYzogdXJsKCcuLi9mb250cy9OZXVlRGlzcGxheS1SYW5kb20uZW90Jyk7XG4gIHNyYzogdXJsKCcuLi9mb250cy9OZXVlRGlzcGxheS1SYW5kb20uZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICB1cmwoJy4uL2ZvbnRzL05ldWVEaXNwbGF5LVJhbmRvbS53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJOZXVlIFJlZ3VsYXJcIjtcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL05ldWUtUmVndWxhci5lb3QnKTtcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL05ldWUtUmVndWxhci5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLFxuICAgICAgIHVybCgnLi4vZm9udHMvTmV1ZS1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIk5ldWUgUmVndWxhclwiO1xuICBzcmM6IHVybCgnLi4vZm9udHMvTmV1ZS1SZWd1bGFySXRhbGljLmVvdCcpO1xuICBzcmM6IHVybCgnLi4vZm9udHMvTmV1ZS1SZWd1bGFySXRhbGljLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgdXJsKCcuLi9mb250cy9OZXVlLVJlZ3VsYXJJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJOZXVlIFJlZ3VsYXJcIjtcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL05ldWUtQmxhY2suZW90Jyk7XG4gIHNyYzogdXJsKCcuLi9mb250cy9OZXVlLUJsYWNrLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICAgdXJsKCcuLi9mb250cy9OZXVlLUJsYWNrLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgZm9udC13ZWlnaHQ6IDgwMDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiBcIk5ldWUgUmVndWxhclwiO1xuICBzcmM6IHVybCgnLi4vZm9udHMvTmV1ZS1CbGFja0l0YWxpYy5lb3QnKTtcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL05ldWUtQmxhY2tJdGFsaWMuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICB1cmwoJy4uL2ZvbnRzL05ldWUtQmxhY2tJdGFsaWMud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGZvbnQtd2VpZ2h0OiA4MDA7XG59XG5cbi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcbi8vIFNpdGUgZm9udCBzdGFjayB2YXJpYWJsZXNcbi8vXG4vLyB1bmNvbW1lbnQgYW5kIGNvbXBsZXRlIHN0YWNrIHdpdGggcHJvamVjdCBmb250c1xuLy8geHh4eHgtLWxvYWRlZCB2YXJpYWJsZXMgbmVlZCBhIGZvbnQgbG9hZGVyIHRvIGJlIGFjdGl2YXRlZCAoc2VlIHNldHVwL21peGlucy90eXBvZ3JhcGh5IGZvciBDU1MgcnVsZSkgOlxuLy8gaHR0cHM6Ly9jb2RlLmFyZWExNy5jb20vbWlrZS9hMTctanMtaGVscGVycy93aWtpcy9BMTctSGVscGVycy1mb250T2JzZXJ2ZXJzXG5cbiRzYW5zLXNlcmlmOiBcIk5ldWUgUmVndWxhclwiO1xuJHNhbnMtc2VyaWYtLWxvYWRlZDogc2Fucy1zZXJpZjtcblxuJHNlcmlmOiBzZXJpZjtcbiRzZXJpZi0tbG9hZGVkOiBzZXJpZjtcbiIsIi5pY29uLS1mYWNlYm9vayB7XG5cdGhlaWdodDogMThweDtcblx0d2lkdGg6IDE4cHg7XG59XG5cbi5pY29uLS10d2l0dGVyIHtcblx0aGVpZ2h0OiAxOHB4O1xuXHR3aWR0aDogMThweDtcbn1cblxuLmljb24tLXlvdXR1YmUge1xuXHRoZWlnaHQ6IDE4cHg7XG5cdHdpZHRoOiAxOHB4O1xufVxuXG4uaWNvbi0taW5zdGFncmFtIHtcblx0aGVpZ2h0OiAxOHB4O1xuXHR3aWR0aDogMThweDtcbn0iLCIuYWxnb2xpYS1hdXRvY29tcGxldGUge1xuICB3aWR0aDogMTAwJTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gNjBweCk7XG5cbiAgICBsZWZ0OiAzMHB4O1xuICB9XG5cbiAgLmlzLWFjdGl2ZSAmIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgfVxufVxuXG4uYWxnb2xpYS1hdXRvY29tcGxldGUgLmFhLWlucHV0LCBcbi5hbGdvbGlhLWF1dG9jb21wbGV0ZSAuYWEtaGludCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4uYWxnb2xpYS1hdXRvY29tcGxldGUgLmFhLWhpbnQge1xuICBjb2xvcjogIzk5OTtcbn1cblxuLmFsZ29saWEtYXV0b2NvbXBsZXRlIC5hYS1kcm9wZG93bi1tZW51IHtcbiAgQGluY2x1ZGUgc2Fucy1zZXJpZigxMywgMjApO1xuICBiYWNrZ3JvdW5kOiAkY29sb3JfX2ZpbHRlckxpc3RCYWNrZ3JvdW5kO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yX19zZXBhcmF0b3I7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIHdpZHRoOiAxMDAlO1xuICBcbiAgLm0tY29udGVudEZpbHRlcnMtLWRhcmsgJiB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yX19maWx0ZXJMaXN0QmFja2dyb3VuZC0tZGFyaztcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgQGluY2x1ZGUgc2Fucy1zZXJpZigxMywgMjMpO1xuICAgIHBhZGRpbmc6IDI5cHggMTVweCAyNnB4O1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIFxuICAgIGxlZnQ6IC0zMHB4ICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IC0zMHB4ICFpbXBvcnRhbnQ7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgQGluY2x1ZGUgc2Fucy1zZXJpZigxNCwgMjUpO1xuICAgIHBhZGRpbmc6IDI0cHggMzBweCAyM3B4O1xuXG4gIH1cbn1cblxuLmFsZ29saWEtYXV0b2NvbXBsZXRlIC5hYS1kcm9wZG93bi1tZW51IC5hYS1zdWdnZXN0aW9uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0cmFuc2l0aW9uOiBjb2xvciBlYXNlLWluLW91dCAxODBtcztcblxuICAmOm5vdCg6bGFzdC1vZi10eXBlKSB7XG4gICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgfVxufVxuXG4uYWxnb2xpYS1hdXRvY29tcGxldGUgLmFhLWRyb3Bkb3duLW1lbnUgLmFhLXN1Z2dlc3Rpb24uYWEtY3Vyc29yIHtcbiAgY29sb3I6ICRjb2xvcl9faGlnaGxpZ2h0O1xufVxuXG4uYWxnb2xpYS1hdXRvY29tcGxldGUgLmFhLWRyb3Bkb3duLW1lbnUgLmFhLXN1Z2dlc3Rpb24gZW0ge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4vLyBHcmlkIExheW91dFxuLmFpcy1oaXRzLFxuLmFpcy1pbmZpbml0ZS1oaXRzIHtcbiAgLm0tY29udGVudExpc3QtLWdyaWQtdmlldyAmIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIG1hcmdpbjogMCAtMjBweDtcbiAgICB9XG4gIH1cbn1cblxuLmFpcy1oaXRzLS1pdGVtLFxuLmFpcy1pbmZpbml0ZS1oaXRzLS1pdGVtIHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICB3aWR0aDogMzMuMzMlXG4gIH1cbn1cblxuLmFpcy1pbmZpbml0ZS1oaXRzLS1zaG93bW9yZSB7XG5cbiAgLm0tY29udGVudExpc3QtLWxpc3QtdmlldyAmIHtcbiAgICBtYXJnaW4tdG9wOiA4MHB4O1xuICB9XG4gIFxuICBidXR0b24ge1xuICAgIEBpbmNsdWRlIHNhbnMtc2VyaWYoMTAsIDE1LCA4MDAsIG5vcm1hbCwgMC4wM3JlbSk7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAkY29sb3JfX2J0bi0tZ3JleTtcbiAgICBjb2xvcjogJGNvbG9yX19idG4tLWdyZXk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDY2cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgZWFzZS1pbi1vdXQgMTgwbXMsIGNvbG9yIGVhc2UtaW4tb3V0IDE4MG1zO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuXG4gICAgJjpkaXNhYmxlZCB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgbWFyZ2luOiAwIGF1dG8gMTRweDtcbiAgICAgIHdpZHRoOiAzNjBweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICBAaW5jbHVkZSBzYW5zLXNlcmlmKDEzLCAyMCwgODAwLCBub3JtYWwsIDAuMDNyZW0pO1xuICAgICAgaGVpZ2h0OiA3MHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDY2cHg7XG5cbiAgICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX19idG4tLWdyZXk7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvcl9fYnRuLS1ncmV5O1xuICAgICAgICBjb2xvcjogJGNvbG9yX19jdGE7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlcyBieSBaVVJCXG4vLyBmb3VuZGF0aW9uLnp1cmIuY29tXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBicmVha3BvaW50c1xuLy8vL1xuXG4vLy8gQSBsaXN0IG9mIG5hbWVkIGJyZWFrcG9pbnRzLiBZb3UgY2FuIHVzZSB0aGVzZSB3aXRoIHRoZSBgYnJlYWtwb2ludCgpYCBtaXhpbiB0byBxdWlja2x5IGNyZWF0ZSBtZWRpYSBxdWVyaWVzLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzOiAoXG4gIHNtYWxsOiAwLFxuICBtZWRpdW06IDY0MHB4LFxuICBsYXJnZTogMTAyNHB4LFxuICB4bGFyZ2U6IDEyMDBweCxcbiAgeHhsYXJnZTogMTQ0MHB4LFxuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsYXJnZXN0IG5hbWVkIGJyZWFrcG9pbnQgaW4gd2hpY2ggdG8gaW5jbHVkZSBwcmludCBhcyBhIG1lZGlhIHR5cGVcbi8vLyBAdHlwZSBLZXl3b3JkXG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2UgIWRlZmF1bHQ7XG5cbiQtemYtemVyby1icmVha3BvaW50OiBzbWFsbCAhZGVmYXVsdDtcblxuJC16Zi1icmVha3BvaW50cy1rZXlzOiBtYXAtdG8tbGlzdCgkYnJlYWtwb2ludHMsICdrZXlzJyk7XG5cbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcbiAgQGVycm9yICdZb3VyIHNtYWxsZXN0IGJyZWFrcG9pbnQgKGRlZmluZWQgaW4gJGJyZWFrcG9pbnRzKSBtdXN0IGJlIHNldCB0byBcIjBcIi4nO1xufVxuQGVsc2Uge1xuICAkLXpmLXplcm8tYnJlYWtwb2ludDogbnRoKG1hcC1rZXlzKCRicmVha3BvaW50cyksIDEpO1xufVxuXG4vLy8gQWxsIG9mIHRoZSBuYW1lcyBpbiB0aGlzIGxpc3Qgd2lsbCBiZSBvdXRwdXQgYXMgY2xhc3NlcyBpbiB5b3VyIENTUywgbGlrZSBgLnNtYWxsLTEyYCwgYC5tZWRpdW0tNmAsIGFuZCBzbyBvbi4gRWFjaCB2YWx1ZSBpbiB0aGlzIGxpc3QgbXVzdCBhbHNvIGJlIGluIHRoZSBgJGJyZWFrcG9pbnRzYCBtYXAuXG4vLy8gQHR5cGUgTGlzdFxuJGJyZWFrcG9pbnQtY2xhc3NlczogKHNtYWxsIG1lZGl1bSBsYXJnZSkgIWRlZmF1bHQ7XG5cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBzdHJpbmcgbWF0Y2hpbmcgdGhlIGlucHV0IHZhbHVlLiBSZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHNlZSB3aGF0IHRoZSBwb3NzaWJsZSBpbnB1dHMgYXJlLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbCBbc21hbGxdIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQoJHZhbDogJC16Zi16ZXJvLWJyZWFrcG9pbnQpIHtcbiAgLy8gU2l6ZSBvciBrZXl3b3JkXG4gICRicDogbnRoKCR2YWwsIDEpO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1heDogMDtcbiAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgJGRpcjogaWYobGVuZ3RoKCR2YWwpID4gMSwgbnRoKCR2YWwsIDIpLCB1cCk7XG4gIC8vIEV2ZW50dWFsIG91dHB1dFxuICAkc3RyOiAnJztcbiAgLy8gSXMgaXQgYSBuYW1lZCBtZWRpYSBxdWVyeT9cbiAgJG5hbWVkOiBmYWxzZTtcblxuICAvLyBPcmllbnRhdGlvbiBtZWRpYSBxdWVyaWVzIGhhdmUgYSB1bmlxdWUgc3ludGF4XG4gIEBpZiAkYnAgPT0gJ2xhbmRzY2FwZScgb3IgJGJwID09ICdwb3J0cmFpdCcge1xuICAgIEByZXR1cm4gJyhvcmllbnRhdGlvbjogI3skYnB9KSc7XG4gIH1cbiAgQGVsc2UgaWYgJGJwID09ICdyZXRpbmEnIHtcbiAgICBAcmV0dXJuICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJztcbiAgfVxuXG4gIC8vIFRyeSB0byBwdWxsIGEgbmFtZWQgYnJlYWtwb2ludCBvdXQgb2YgdGhlICRicmVha3BvaW50cyBtYXBcbiAgQGlmIHR5cGUtb2YoJGJwKSA9PSAnc3RyaW5nJyB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJGJwKSB7XG4gICAgICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgICAgICAkYnAtbWF4OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgfVxuXG4gICAgICAkYnA6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkYnApO1xuICAgICAgJG5hbWVkOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyICRicmVha3BvaW50cyBzZXR0aW5nLic7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udmVydCBhbnkgcGl4ZWwsIHJlbSwgb3IgdW5pdGxlc3MgdmFsdWUgdG8gZW1cbiAgJGJwOiAtemYtYnAtdG8tZW0oJGJwKTtcbiAgQGlmICRicC1tYXgge1xuICAgICRicC1tYXg6IC16Zi1icC10by1lbSgkYnAtbWF4KSAtICgxLzE2KTtcbiAgfVxuXG4gIC8vIENvbmRpdGlvbnMgdG8gc2tpcCBtZWRpYSBxdWVyeSBjcmVhdGlvblxuICAvLyAtIEl0J3MgYSBuYW1lZCBicmVha3BvaW50IHRoYXQgcmVzb2x2ZWQgdG8gXCIwIGRvd25cIiBvciBcIjAgdXBcIlxuICAvLyAtIEl0J3MgYSBudW1lcmljIGJyZWFrcG9pbnQgdGhhdCByZXNvbHZlZCB0byBcIjAgXCIgKyBhbnl0aGluZ1xuICBAaWYgJGJwID4gMGVtIG9yICRkaXIgPT0gJ29ubHknIG9yICRkaXIgPT0gJ2Rvd24nIHtcbiAgICAvLyBgb25seWAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKSBhbmQgKG1heC13aWR0aDogbilgXG4gICAgQGlmICRkaXIgPT0gJ29ubHknIHtcbiAgICAgIC8vIE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBcIm9ubHlcIiByYW5nZVxuICAgICAgQGlmICRuYW1lZCA9PSB0cnVlIHtcbiAgICAgICAgLy8gT25seSB1c2UgXCJtaW4td2lkdGhcIiBpZiB0aGUgZmxvb3IgaXMgZ3JlYXRlciB0aGFuIDBcbiAgICAgICAgQGlmICRicCA+IDBlbSB7XG4gICAgICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcblxuICAgICAgICAgIC8vIE9ubHkgYWRkIFwiYW5kXCIgdG8gdGhlIG1lZGlhIHF1ZXJ5IGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgICAgQGlmICRicC1tYXggIT0gbnVsbCB7XG4gICAgICAgICAgICAkc3RyOiAkc3RyICsgJyBhbmQgJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBPbmx5IHVzZSBcIm1heC13aWR0aFwiIGlmIHRoZXJlJ3MgYSBjZWlsaW5nXG4gICAgICAgIEBpZiAkYnAtbWF4ICE9IG51bGwge1xuICAgICAgICAgICRzdHI6ICRzdHIgKyAnKG1heC13aWR0aDogI3skYnAtbWF4fSknO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEB3YXJuICdicmVha3BvaW50KCk6IE9ubHkgbmFtZWQgbWVkaWEgcXVlcmllcyBjYW4gaGF2ZSBhbiBgb25seWAgcmFuZ2UuJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBgZG93bmAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWF4LXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkZGlyID09ICdkb3duJyB7XG4gICAgICAkbWF4OiBpZigkbmFtZWQsICRicC1tYXgsICRicCk7XG5cbiAgICAgIC8vIFNraXAgbWVkaWEgcXVlcnkgY3JlYXRpb24gaWYgaW5wdXQgdmFsdWUgaXMgZXhhY3RseSBcIjAgZG93blwiLFxuICAgICAgLy8gdW5sZXNzIHRoZSBmdW5jdGlvbiB3YXMgY2FsbGVkIGFzIFwic21hbGwgZG93blwiLCBpbiB3aGljaCBjYXNlIGl0J3MganVzdCBcInNtYWxsIG9ubHlcIlxuICAgICAgQGlmICRuYW1lZCBvciAkYnAgPiAwZW0ge1xuICAgICAgICBAaWYgJG1heCAhPSBudWxsIHtcbiAgICAgICAgICAkc3RyOiAkc3RyICsgJyhtYXgtd2lkdGg6ICN7JG1heH0pJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGB1cGAgcmFuZ2VzIHVzZSB0aGUgZm9ybWF0IGAobWluLXdpZHRoOiBuKWBcbiAgICBAZWxzZSBpZiAkYnAgPiAwZW0ge1xuICAgICAgJHN0cjogJHN0ciArICcobWluLXdpZHRoOiAjeyRicH0pJztcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgbWFwLCBhbmQgdXNlIGEgbWVkaWEgcXVlcnkgdGhlcmUuXG4vLy8gIC0gSWYgYSBwaXhlbCB2YWx1ZSBpcyBwYXNzZWQsIGl0IHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGVtIHZhbHVlIHVzaW5nIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgYXMgdGhlIGJhc2UuXG4vLy8gIC0gSWYgYSByZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdW5pdCB3aWxsIGJlIGNoYW5nZWQgdG8gZW0uXG4vLy8gIC0gSWYgYW4gZW0gdmFsdWUgaXMgcGFzc2VkLCB0aGUgdmFsdWUgd2lsbCBiZSB1c2VkIGFzLWlzLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lLCBvciBweCwgcmVtLCBvciBlbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWUpIHtcbiAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuICAkYnA6IGluZGV4KCQtemYtYnJlYWtwb2ludHMta2V5cywgJHZhbHVlKTtcbiAgJHBicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkcHJpbnQtYnJlYWtwb2ludCk7XG5cbiAgLy8gSWYgJHN0ciBpcyBzdGlsbCBhbiBlbXB0eSBzdHJpbmcsIG5vIG1lZGlhIHF1ZXJ5IGlzIG5lZWRlZFxuICBAaWYgJHN0ciA9PSAnJyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBPdGhlcndpc2UsIHdyYXAgdGhlIGNvbnRlbnQgaW4gYSBtZWRpYSBxdWVyeVxuICBAZWxzZSB7XG4gICAgLy8gRm9yIG5hbWVkIGJyZWFrcG9pbnRzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAkcHJpbnQtYnJlYWtwb2ludCwgYWRkIHByaW50IHRvIHRoZSBtZWRpYSB0eXBlc1xuICAgIEBpZiAkYnAgIT0gbnVsbCBhbmQgJGJwIDw9ICRwYnAge1xuICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIENvbnZlcnMgdGhlIGJyZWFrcG9pbnRzIG1hcCB0byBhIFVSTC1lbmNvZGVkIHN0cmluZywgbGlrZSB0aGlzOiBga2V5MT12YWx1ZTEma2V5Mj12YWx1ZTJgLiBUaGUgdmFsdWUgaXMgdGhlbiBkcm9wcGVkIGludG8gdGhlIENTUyBmb3IgYSBzcGVjaWFsIGA8bWV0YT5gIHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0LiBUaGlzIGlzIGhvdyB3ZSB0cmFuc2ZlciB2YWx1ZXMgZnJvbSBTYXNzIHRvIEphdmFTY3JpcHQsIHNvIHRoZXkgY2FuIGJlIGRlZmluZWQgaW4gb25lIHBsYWNlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gY29udmVydC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1hcCdzIGNvbnRlbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC1zZXJpYWxpemUoJG1hcCkge1xuICAkc3RyOiAnJztcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICRzdHI6ICRzdHIgKyAka2V5ICsgJz0nICsgLXpmLWJwLXRvLWVtKCR2YWx1ZSkgKyAnJic7XG4gIH1cbiAgJHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IGtleSBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBhZnRlciBgJGtleWAsIGlmIGAka2V5YCB3YXMgZm91bmQuIElmIGAka2V5YCB3YXMgbm90IGZvdW5kLCBvciBgJGtleWAgd2FzIHRoZSBsYXN0IHZhbHVlIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dCgkbWFwLCAka2V5KSB7XG5cbiAgLy8gU3RvcmUgdGhlIGtleXMgb2YgdGhlIG1hcCBhcyBhIGxpc3RcbiAgJHZhbHVlczogbWFwLWtleXMoJG1hcCk7XG5cbiAgJGk6IDA7XG5cbiAgLy8gSWYgdGhlIEtleSBFeGlzdHMsIEdldCB0aGUgaW5kZXggb2YgdGhlIGtleSB3aXRoaW4gdGhlIG1hcCBhbmQgYWRkIDEgdG8gaXQgZm9yIHRoZSBuZXh0IGJyZWFrcG9pbnQgaW4gdGhlIG1hcFxuICBAaWYgKG1hcC1oYXMta2V5KCRtYXAsICRrZXkpKSB7XG4gICAgJGk6IGluZGV4KCR2YWx1ZXMsICRrZXkpICsgMTtcbiAgfVxuXG4gIC8vIElmIHRoZSBrZXkgZG9lc24ndCBleGlzdCwgb3IgaXQncyB0aGUgbGFzdCBrZXkgaW4gdGhlIG1hcCwgcmV0dXJuIG51bGxcbiAgQGlmICgkaSA+IGxlbmd0aCgkbWFwKSBvciAkaSA9PSAwKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsIG50aCgkdmFsdWVzLCAkaSkpO1xuICB9XG5cbn1cblxuLy8vIEdldCBhIHZhbHVlIGZvciBhIGJyZWFrcG9pbnQgZnJvbSBhIHJlc3BvbnNpdmUgY29uZmlnIG1hcCBvciBzaW5nbGUgdmFsdWUuXG4vLy8gLSBJZiB0aGUgY29uZmlnIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXQgcmVnYXJkbGVzcyBvZiBgJHZhbHVlYC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGhhcyB0aGUga2V5IGAkdmFsdWVgLCB0aGUgZXhhY3QgYnJlYWtwb2ludCB2YWx1ZSBpcyByZXR1cm5lZC5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBtYXAgYW5kIGRvZXMgKm5vdCogaGF2ZSB0aGUgYnJlYWtwb2ludCwgdGhlIHZhbHVlIG1hdGNoaW5nIHRoZSBuZXh0IGxvd2VzdCBicmVha3BvaW50IGluIHRoZSBjb25maWcgbWFwIGlzIHJldHVybmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TWFwfSAkbWFwIC0gUmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICR2YWx1ZSAtIEJyZWFrcG9pbnQgbmFtZSB0byB1c2UuXG4vLy9cbi8vLyBAcmV0dXJuIHtNaXhlZH0gVGhlIGNvcnJlc3BvbmRpbmcgYnJlYWtwb2ludCB2YWx1ZS5cbkBmdW5jdGlvbiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkdmFsdWUpIHtcbiAgLy8gSWYgdGhlIGdpdmVuIG1hcCBpcyBhIHNpbmdsZSB2YWx1ZSwgcmV0dXJuIGl0XG4gIEBpZiB0eXBlLW9mKCRtYXApID09ICdudW1iZXInIHtcbiAgICBAcmV0dXJuICRtYXA7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgYnJlYWtwb2ludCBuYW1lIGV4aXN0cyBnbG9iYWxseVxuICBAaWYgbm90IG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHNtYWxsKSB7XG4gICRzbWFsbC11cDogc2NyZWVuO1xuICAkc21hbGwtb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoc21hbGwgb25seSl9Jyk7XG59XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIG1lZGl1bSkge1xuICAkbWVkaXVtLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0pfScpO1xuICAkbWVkaXVtLW9ubHk6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KG1lZGl1bSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgbGFyZ2UpIHtcbiAgJGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSl9Jyk7XG4gICRsYXJnZS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChsYXJnZSBvbmx5KX0nKTtcbn1cblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCB4eGxhcmdlKSB7XG4gICR4eGxhcmdlLXVwOiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludCh4eGxhcmdlKX0nKTtcbn1cbiIsIi8vIE1haW4gQ29sb3IgTGlzdCAtIHRyeSBub3QgdG8gdXNlXG4kY29sb3JfX3JlZDogI0U0MkExRDtcbiRjb2xvcl9fcmVkLS1kYXJrOiAjQTIyMDE3O1xuXG4vLyBDb2xvcnMgLSBHcmF5c2NhbGVcbiRjb2xvcl9fYmxhY2s6ICMwMDAwMDA7XG4kY29sb3JfX2JsYWNrLS05ODogIzA1MDUwNTtcbiRjb2xvcl9fYmxhY2stLTkwOiAjMTkxOTE5O1xuJGNvbG9yX19ibGFjay0tODc6ICMyMTIxMjE7XG4kY29sb3JfX2JsYWNrLS04MDogIzMzMzMzMztcbiRjb2xvcl9fYmxhY2stLTczOiAjNDQ0NDQ0O1xuXG4kY29sb3JfX2dyZXktLTY1OiAjNTg1ODU4O1xuJGNvbG9yX19ncmV5LS01NTogI0E3QTlBQztcbiRjb2xvcl9fZ3JleS0tNDY6ICM3Njc2NzY7XG4kY29sb3JfX2dyZXktLTQwOiAjQTdBOUFDO1xuJGNvbG9yX19ncmV5LS0zMDogI0IyQjJCMjtcbiRjb2xvcl9fZ3JleS0tMTU6ICNEOUQ5RDk7XG4kY29sb3JfX2dyZXktLTEzOiAjRjFGMkYyO1xuJGNvbG9yX19ncmV5LS0xMDogI0U1RTVFNTtcbiRjb2xvcl9fZ3JleS0tNTogI0YyRjJGMjtcblxuJGNvbG9yX193aGl0ZTogI0ZGRkZGRjtcblxuLy8gR2xvYmFsXG4kY29sb3JfX2JhY2tncm91bmQ6ICRjb2xvcl9fd2hpdGU7XG4kY29sb3JfX2JhY2tncm91bmQtLWRhcms6ICRjb2xvcl9fYmxhY2stLTkwO1xuJGNvbG9yX190ZXh0OiAkY29sb3JfX2JsYWNrLS05MDtcbiRjb2xvcl9fdGV4dC0tZGFyazogJGNvbG9yX193aGl0ZTtcbiRjb2xvcl9fZXJyb3I6ICRjb2xvcl9fcmVkO1xuJGNvbG9yX19zZXBhcmF0b3I6ICRjb2xvcl9fZ3JleS0tMTU7XG4kY29sb3JfX2hpZ2hsaWdodDogJGNvbG9yX19yZWQ7XG4kY29sb3JfX2hpZ2hsaWdodC0tZGFyazogJGNvbG9yX19yZWQtLWRhcms7XG4kY29sb3JfX3RleHQtaG92ZXI6ICRjb2xvcl9fZ3JleS0tNjU7XG5cbi8vIE5hdmlnYXRpb25cbiRjb2xvcl9fbmF2OiAkY29sb3JfX2JsYWNrLS05MDtcbiRjb2xvcl9fc2Vjb25kYXJ5TmF2OiAkY29sb3JfX2dyZXktLTQ2O1xuJGNvbG9yX19uYXZTcGxpdHRlcjogJGNvbG9yX19ncmV5LS0xNTtcbiRjb2xvcl9fbWVudTogJGNvbG9yX19ibGFjay0tODc7XG4kY29sb3JfX25hdlJlbGF0ZWQ6ICRjb2xvcl9fZ3JleS0tMzA7XG4kY29sb3JfX25hdkFkZGl0aW9uYWxMaW5rczogJGNvbG9yX19ncmV5LS0zMDtcbiRjb2xvcl9fbmF2LS1oaWdobGlnaHQ6ICRjb2xvcl9fcmVkO1xuJGNvbG9yX19uYXYtLWhvdmVyOiAkY29sb3JfX3JlZDtcbiRjb2xvcl9fbmF2LS1ob3Zlci1kYXJrOiAkY29sb3JfX3JlZC0tZGFyaztcbiRjb2xvcl9fdGVydGlhcnlOYXYtYmFja2dyb3VuZDogJGNvbG9yX19ibGFjay0tOTg7XG4kY29sb3JfX2Zvb3Rlck5hdi1iYWNrZ3JvdW5kOiAkY29sb3JfX2JsYWNrLS05ODtcbiRjb2xvcl9fdGVydGlhcnlOYXYtbGluazogJGNvbG9yX19ncmV5LS0zMDtcbiRjb2xvcl9fbW9iaWxlTWVudUJhY2tncm91bmQ6ICRjb2xvcl9fZ3JleS0tNTtcblxuLy8gUGFnZSBOYXZcbiRjb2xvcl9fcGFnZUhlYWRlckJhY2tnb3J1bmQtLWZpbHRlcnM6ICRjb2xvcl9fZ3JleS0tMTM7XG4kY29sb3JfX3BhZ2VIZWFkZXJJdGVtLS1maWx0ZXJzOiAkY29sb3JfX2dyZXktLTU1O1xuXG4vLyBGb290ZXJcbiRjb2xvcl9fZm9vdGVyQmFja2dyb3VuZDogJGNvbG9yX19ibGFjay0tOTg7XG4kY29sb3JfX2Zvb3RlclNvY2lhbEJhY2tncm91bmQ6ICRjb2xvcl9fYmxhY2stLTg3O1xuJGNvbG9yX19mb290ZXJHcmV5OiAkY29sb3JfX2dyZXktLTU1O1xuJGNvbG9yX19mb290ZXJTb2NpYWxTZXBhcmF0b3I6ICRjb2xvcl9fYmxhY2stLTgwO1xuXG4vLyBDVEFcbiRjb2xvcl9fY3RhOiAkY29sb3JfX3doaXRlO1xuJGNvbG9yX19jdGEtLWFsdDogJGNvbG9yX19yZWQtLWRhcms7XG4kY29sb3JfX2N0YUJhY2tncm91bmQ6ICRjb2xvcl9fZ3JleS0tMTM7XG5cbi8vIEZpZ2NhcHRpb25cbiRjb2xvcl9fZmlnY2FwdGlvbjogJGNvbG9yX19ncmV5LS00NjtcblxuLy8gQmxvY2sgTGlua1xuJGNvbG9yX19tZXRhOiAkY29sb3JfX2dyZXktLTQ2O1xuXG4vLyBEcmF3ZXJcbiRjb2xvcl9fdG9nZ2xlSWNvbjogJGNvbG9yX19ncmV5LS0xNTtcbiRjb2xvcl9fdG9nZ2xlSWNvbkhvdmVyOiAkY29sb3JfX2dyZXktLTY1O1xuXG4vLyBBWkxpc3RcbiRjb2xvcl9fYXpMaXN0VGl0bGU6ICRjb2xvcl9fdGV4dDtcbiRjb2xvcl9fYXpMaXN0SXRlbTogJGNvbG9yX19ncmV5LS00NjtcblxuLy8gVXBkYXRlXG4kY29sb3JfX25hdi0tdGVydGlhcnk6ICRjb2xvcl9fZ3JleS0tMzA7XG5cbi8vIFNpZGViYXIgTW9kdWxlc1xuJGNvbG9yX19ib3JkZXJUb3A6ICRjb2xvcl9fYmxhY2stLTgwO1xuJGNvbG9yX19zaWRlYmFyVGV4dDogJGNvbG9yX190ZXh0O1xuJGNvbG9yX19zaWRlYmFyTmF2aWdhdGlvbkJhY2tncm91bmQ6ICRjb2xvcl9fZ3JleS0tNTtcbiRjb2xvcl9fc2lkZWJhck5hdmlnYXRpb25TZXBhcmF0b3I6ICRjb2xvcl9fZ3JleS0tMzA7XG5cbi8vIEJyZWFkY3J1bWJzXG4kY29sb3JfX2JyZWFkY3J1bWJzSXRlbTogJGNvbG9yX19ncmV5LS00NjtcbiRjb2xvcl9fYnJlYWRjcnVtYnNMaW5rOiAkY29sb3JfX3RleHQ7XG5cbi8vIFF1b3RlXG4kY29sb3JfX3F1b3RlU2VwYXJhdG9yOiAkY29sb3JfX2JsYWNrLS05MDtcblxuLy8gQ29udGVudCBQYW5lbHNcbiRjb2xvcl9fY29udGVudFBhbmVsc0JhY2tncm91bmQ6ICRjb2xvcl9fZ3JleS0tMTA7XG4kY29sb3JfX2NvbnRlbnRQYW5lbEJhY2tncm91bmQ6ICRjb2xvcl9fd2hpdGU7XG5cbi8vIFRhYmxlIFxuJGNvbG9yX190YWJsZUFsdGVybmF0ZUJhY2tncm91bmQ6ICRjb2xvcl9fZ3JleS0tNTtcbiRjb2xvcl9fdGFibGVGb290ZXI6ICRjb2xvcl9fZ3JleS0tNDY7XG5cbi8vIFZpZGVvIENhcm91c2VsXG4kY29sb3JfX3ZpZGVvQ2Fyb3VzZWxCYWNrZ3JvdW5kOiAkY29sb3JfX2JsYWNrLS04NztcbiRjb2xvcl9fdmlkZW9DYXJvdXNlbFNlcGFyYXRvcjogJGNvbG9yX19ibGFjay0tODA7XG5cbi8vIFNlYXJjaFxuJGNvbG9yX19zZWFyY2hQbGFjZWhvbGRlcjogJGNvbG9yX19ncmV5LS0xNTtcbiRjb2xvcl9fc2VhcmNoUmVzdWx0c1NlcGFyYXRvcjogJGNvbG9yX19ncmV5LS0xNTtcbiRjb2xvcl9fc2VhcmNoRmlsdGVyTGluazogJGNvbG9yX19ncmV5LS00NjtcbiRjb2xvcl9fc2VhcmNoUmVzdWx0U3VtbWFyeTogJGNvbG9yX19ncmV5LS00NjtcbiRjb2xvcl9fc2VhcmNoUmVzdWx0TW9yZTogJGNvbG9yX19ncmV5LS00NjtcbiRjb2xvcl9fc2VhcmNoUmVzdWx0TW9yZUJvcmRlcjogJGNvbG9yX19ncmV5LS0xNTtcblxuLy8gTWFwXG4kY29sb3JfX21hcEZpbHRlcnNCYWNrZ3JvdW5kOiAkY29sb3JfX2JsYWNrLS04NztcbiRjb2xvcl9fbWFwRmlsdGVyOiAkY29sb3JfX2dyZXktLTQwO1xuJGNvbG9yX19tYXBMb2NhdGlvbk51bWJlcjogJGNvbG9yX19ncmV5LS02NTtcbiRjb2xvcl9fbWFwSW5mb1dpbmRvd0Zvb3RlcjogJGNvbG9yX19ncmV5LS0zMDtcbiRjb2xvcl9fbWFwSW5mb1dpbmRvd0Zvb3RlckJhY2tncm91bmQ6ICRjb2xvcl9fYmxhY2stLTg3O1xuXG4vLyBUaW1lbGluZVxuJGNvbG9yX190aW1lbGluZUNvbnRlbnRCYWNrZ3JvdW5kOiAkY29sb3JfX2JsYWNrLS04NztcbiRjb2xvcl9fdGltZWxpbmVJY29uLS1hY3RpdmU6ICRjb2xvcl9fdGV4dDtcblxuLy8gRnVsbCBXaWR0aCBDYXJvdXNlbFxuJGNvbG9yX19mdWxsV2lkdGhDYXJvdXNlbDogJGNvbG9yX19ibGFjay0tOTg7XG4kY29sb3JfX2RpYWdvbmFsQ2Fyb3VzZWw6ICRjb2xvcl9fYmxhY2stLTk4O1xuXG4vLyBTb2NpYWxcbiRjb2xvcl9fc29jaWFsSXRlbUJhY2tncm91bmQ6ICRjb2xvcl9fZ3JleS0tNTtcbiRjb2xvcl9fc29jaWFsaXRlbUljb25zOiAkY29sb3JfX2dyZXktLTMwO1xuJGNvbG9yX19zb2NpYWxDVEE6ICRjb2xvcl9fZ3JleS0tNDY7XG4kY29sb3JfX3NvY2lhbENUQUJvcmRlcjogJGNvbG9yX19ncmV5LS0xNTtcblxuLy8gTGFuZGluZ1xuJGNvbG9yX19sYW5kaW5nQmFja2dyb3VuZC0taGlnaGxpZ2h0OiAkY29sb3JfX2hpZ2hsaWdodDtcbiRjb2xvcl9fbGFuZGluZ0JhY2tncm91bmQtLWRhcms6ICRjb2xvcl9fYmxhY2stLTk4O1xuJGNvbG9yX19sYW5kaW5nVGV4dC0tZGFyazogJGNvbG9yX19ibGFjay0tOTg7XG5cbi8vIEZhZGUgQ2Fyb3VzZWxcbiRjb2xvcl9fZmFkZUNhcm91c2VsQXJyb3c6ICRjb2xvcl9fZ3JleS0tMzA7XG5cbi8vIEZpbHRlcnNcbiRjb2xvcl9fZmlsdGVyTGlzdEJhY2tncm91bmQ6ICRjb2xvcl9fZ3JleS0tNTtcbiRjb2xvcl9fZmlsdGVyTGlzdEJhY2tncm91bmQtLWRhcms6ICRjb2xvcl9fYmxhY2stLTg3O1xuJGNvbG9yX19maWx0ZXJTZWFyY2hJY29uOiAkY29sb3JfX2dyZXktLTU1O1xuJGNvbG9yX19maWx0ZXJTZXBhcmF0b3ItLWRhcms6ICRjb2xvcl9fYmxhY2stLTczO1xuJGNvbG9yX19maWx0ZXJDbGVhcjogJGNvbG9yX19ncmV5LS0zMDtcbiRjb2xvcl9fZmlsdGVyQm9yZGVyOiAkY29sb3JfX2JsYWNrLS04MDtcblxuLy8gU3RhdHNcbiRjb2xvcl9fc3RhdHNTZXBhcmF0b3I6ICRjb2xvcl9fZ3JleS0tMTU7XG4kY29sb3JfX3N0YXRzU2VwYXJhdG9yLS1saWdodDogJGNvbG9yX19ibGFjay0tODA7XG4kY29sb3JfX3N0YXRzU2VwYXJhdG9yLS1kYXJrOiAjQzgyQTFGO1xuJGNvbG9yX19zdGF0c1NlcGFyYXRvci0tYmxhY2s6ICRjb2xvcl9fYmxhY2stLTgwO1xuJGNvbG9yX19zdGF0c1NlcGFyYXRvci0taGlnaGxpZ2h0OiAkY29sb3JfX2JsYWNrLS05MDtcblxuLy8gQ29sbGVnZSBMaXN0XG4kY29sb3JfX2NvbGxlZ2VMaXN0Tm90QWN0aXZlOiAkY29sb3JfX2dyZXktLTQwO1xuXG4vLyBDYWxlbmRhclxuJGNvbG9yX19jYWxlbmRhckJhY2tncm91bmQ6ICRjb2xvcl9fZ3JleS0tNTtcbiRjb2xvcl9fY2FsZW5kYXJFdmVudEJhY2tncm91bmQ6ICRjb2xvcl9fZ3JleS0tMTA7XG4kY29sb3JfX2NhbGVuZGFyRXZlbnRCYWNrZ3JvdW5kLS1ob3ZlcjogJGNvbG9yX19ncmV5LS0xNTtcblxuLy8gUGF0aHdheXNcbiRjb2xvcl9fcGF0aHdheXNDVEE6ICRjb2xvcl9fZ3JleS0tMTU7XG4kY29sb3JfX3BhdGh3YXlzQmFja2dyb3VuZDogJGNvbG9yX19ibGFjay0tODc7XG4kY29sb3JfX3BhdGh3YXlzSWNvbkJvcmRlcjogJGNvbG9yX19ibGFjay0tODA7XG5cbi8vIEJ1dHRvbnNcbiRjb2xvcl9fYnRuLS1ncmV5OiAkY29sb3JfX2dyZXktLTQ2OyIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLyohXG4gKiBhbmltYXRlLmNzcyAtaHR0cDovL2RhbmVkZW4ubWUvYW5pbWF0ZVxuICogVmVyc2lvbiAtIDMuNS4xXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgLSBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE2IERhbmllbCBFZGVuXG4gKi9cblxuW2RhdGEtYmVoYXZpb3I9XCJBbmltYXRlXCJdIHtcbiAgLmpzICYge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgIG9wYWNpdHk6IDA7XG5cbiAgICAgICYuZGlzYWJsZWQge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSBhbGwgYW5kICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSksICgtbXMtaGlnaC1jb250cmFzdDogYWN0aXZlKSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIC50b3VjaCAmIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxufVxuXG4ubGF5ZXItMiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMjtcbn1cblxuLmFuaW1hdGVkIHtcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcbn1cblxuLmFuaW1hdGVkLmluZmluaXRlIHtcbiAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XG59XG5cbi5hbmltYXRlZC5oaW5nZSB7XG4gIGFuaW1hdGlvbi1kdXJhdGlvbjogMnM7XG59XG5cbi5hbmltYXRlZC5kZWxheSB7XG4gIGFuaW1hdGlvbi1kZWxheTogNTAwbXM7XG59XG5cbi5hbmltYXRlZC5mbGlwT3V0WCxcbi5hbmltYXRlZC5mbGlwT3V0WSxcbi5hbmltYXRlZC5ib3VuY2VJbixcbi5hbmltYXRlZC5ib3VuY2VPdXQge1xuICBhbmltYXRpb24tZHVyYXRpb246IC43NXM7XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlIHtcbiAgZnJvbSwgMjAlLCA1MyUsIDgwJSwgdG8ge1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIxNSwgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLDAsMCk7XG4gIH1cblxuICA0MCUsIDQzJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzU1LCAwLjA1MCwgMC44NTUsIDAuMDYwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0zMHB4LCAwKTtcbiAgfVxuXG4gIDcwJSB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNzU1LCAwLjA1MCwgMC44NTUsIDAuMDYwKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xNXB4LCAwKTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLC00cHgsMCk7XG4gIH1cbn1cblxuLmJvdW5jZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2U7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG59XG5cbkBrZXlmcmFtZXMgZmxhc2gge1xuICBmcm9tLCA1MCUsIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgMjUlLCA3NSUge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmZsYXNoIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZsYXNoO1xufVxuXG4vKiBvcmlnaW5hbGx5IGF1dGhvcmVkIGJ5IE5pY2sgUGV0dGl0IC0gaHR0cHM6Ly9naXRodWIuY29tL25pY2twZXR0aXQvZ2xpZGUgKi9cblxuQGtleWZyYW1lcyBwdWxzZSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDUsIDEuMDUsIDEuMDUpO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxufVxuXG4ucHVsc2Uge1xuICBhbmltYXRpb24tbmFtZTogcHVsc2U7XG59XG5cbkBrZXlmcmFtZXMgcnViYmVyQmFuZCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxuXG4gIDMwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMjUsIDAuNzUsIDEpO1xuICB9XG5cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMC43NSwgMS4yNSwgMSk7XG4gIH1cblxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjE1LCAwLjg1LCAxKTtcbiAgfVxuXG4gIDY1JSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45NSwgMS4wNSwgMSk7XG4gIH1cblxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLjA1LCAuOTUsIDEpO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxufVxuXG4ucnViYmVyQmFuZCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBydWJiZXJCYW5kO1xufVxuXG5Aa2V5ZnJhbWVzIHNoYWtlIHtcbiAgZnJvbSwgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAxMCUsIDMwJSwgNTAlLCA3MCUsIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gIH1cblxuICAyMCUsIDQwJSwgNjAlLCA4MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gIH1cbn1cblxuLnNoYWtlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNoYWtlO1xufVxuXG5Aa2V5ZnJhbWVzIGhlYWRTaGFrZSB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gIH1cblxuICA2LjUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTZweCkgcm90YXRlWSgtOWRlZyk7XG4gIH1cblxuICAxOC41JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDVweCkgcm90YXRlWSg3ZGVnKTtcbiAgfVxuXG4gIDMxLjUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTNweCkgcm90YXRlWSgtNWRlZyk7XG4gIH1cblxuICA0My41JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCkgcm90YXRlWSgzZGVnKTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICB9XG59XG5cbi5oZWFkU2hha2Uge1xuICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbiAgYW5pbWF0aW9uLW5hbWU6IGhlYWRTaGFrZTtcbn1cblxuQGtleWZyYW1lcyBzd2luZyB7XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAxNWRlZyk7XG4gIH1cblxuICA0MCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTEwZGVnKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA1ZGVnKTtcbiAgfVxuXG4gIDgwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNWRlZyk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAwZGVnKTtcbiAgfVxufVxuXG4uc3dpbmcge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyO1xuICBhbmltYXRpb24tbmFtZTogc3dpbmc7XG59XG5cbkBrZXlmcmFtZXMgdGFkYSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxuXG4gIDEwJSwgMjAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICB9XG5cbiAgMzAlLCA1MCUsIDcwJSwgOTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSkgcm90YXRlM2QoMCwgMCwgMSwgM2RlZyk7XG4gIH1cblxuICA0MCUsIDYwJSwgODAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMS4xLCAxLjEsIDEuMSkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCgxLCAxLCAxKTtcbiAgfVxufVxuXG4udGFkYSB7XG4gIGFuaW1hdGlvbi1uYW1lOiB0YWRhO1xufVxuXG4vKiBvcmlnaW5hbGx5IGF1dGhvcmVkIGJ5IE5pY2sgUGV0dGl0IC0gaHR0cHM6Ly9naXRodWIuY29tL25pY2twZXR0aXQvZ2xpZGUgKi9cblxuQGtleWZyYW1lcyB3b2JibGUge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAxNSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTI1JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTVkZWcpO1xuICB9XG5cbiAgMzAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgM2RlZyk7XG4gIH1cblxuICA0NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTE1JSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgLTNkZWcpO1xuICB9XG5cbiAgNjAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwJSwgMCwgMCkgcm90YXRlM2QoMCwgMCwgMSwgMmRlZyk7XG4gIH1cblxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMWRlZyk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi53b2JibGUge1xuICBhbmltYXRpb24tbmFtZTogd29iYmxlO1xufVxuXG5Aa2V5ZnJhbWVzIGplbGxvIHtcbiAgZnJvbSwgMTEuMSUsIHRvIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAyMi4yJSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgtMTIuNWRlZykgc2tld1koLTEyLjVkZWcpO1xuICB9XG5cbiAgMzMuMyUge1xuICAgIHRyYW5zZm9ybTogc2tld1goNi4yNWRlZykgc2tld1koNi4yNWRlZyk7XG4gIH1cblxuICA0NC40JSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgtMy4xMjVkZWcpIHNrZXdZKC0zLjEyNWRlZyk7XG4gIH1cblxuICA1NS41JSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgxLjU2MjVkZWcpIHNrZXdZKDEuNTYyNWRlZyk7XG4gIH1cblxuICA2Ni42JSB7XG4gICAgdHJhbnNmb3JtOiBza2V3WCgtMC43ODEyNWRlZykgc2tld1koLTAuNzgxMjVkZWcpO1xuICB9XG5cbiAgNzcuNyUge1xuICAgIHRyYW5zZm9ybTogc2tld1goMC4zOTA2MjVkZWcpIHNrZXdZKDAuMzkwNjI1ZGVnKTtcbiAgfVxuXG4gIDg4LjglIHtcbiAgICB0cmFuc2Zvcm06IHNrZXdYKC0wLjE5NTMxMjVkZWcpIHNrZXdZKC0wLjE5NTMxMjVkZWcpO1xuICB9XG59XG5cbi5qZWxsbyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBqZWxsbztcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUluIHtcbiAgZnJvbSwgMjAlLCA0MCUsIDYwJSwgODAlLCB0byB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgfVxuXG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICB9XG5cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjksIC45LCAuOSk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMDMsIDEuMDMsIDEuMDMpO1xuICB9XG5cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjk3LCAuOTcsIC45Nyk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoMSwgMSwgMSk7XG4gIH1cbn1cblxuLmJvdW5jZUluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluO1xufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZUluRG93biB7XG4gIGZyb20sIDYwJSwgNzUlLCA5MCUsIHRvIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICB9XG5cbiAgMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMzAwMHB4LCAwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDI1cHgsIDApO1xuICB9XG5cbiAgNzUlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMHB4LCAwKTtcbiAgfVxuXG4gIDkwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCA1cHgsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uYm91bmNlSW5Eb3duIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluRG93bjtcbn1cblxuQGtleWZyYW1lcyBib3VuY2VJbkxlZnQge1xuICBmcm9tLCA2MCUsIDc1JSwgOTAlLCB0byB7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiAgfVxuXG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTMwMDBweCwgMCwgMCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyNXB4LCAwLCAwKTtcbiAgfVxuXG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoNXB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmJvdW5jZUluTGVmdCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJbkxlZnQ7XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlSW5SaWdodCB7XG4gIGZyb20sIDYwJSwgNzUlLCA5MCUsIHRvIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICB9XG5cbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDMwMDBweCwgMCwgMCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjVweCwgMCwgMCk7XG4gIH1cblxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTBweCwgMCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTVweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5ib3VuY2VJblJpZ2h0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZUluUmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlSW5VcCB7XG4gIGZyb20sIDYwJSwgNzUlLCA5MCUsIHRvIHtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuICB9XG5cbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDMwMDBweCwgMCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjBweCwgMCk7XG4gIH1cblxuICA3NSUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gIH1cblxuICA5MCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTVweCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG4uYm91bmNlSW5VcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VJblVwO1xufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dCB7XG4gIDIwJSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45LCAuOSwgLjkpO1xuICB9XG5cbiAgNTAlLCA1NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKDEuMSwgMS4xLCAxLjEpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICB9XG59XG5cbi5ib3VuY2VPdXQge1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0O1xufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dERvd24ge1xuICAyMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTBweCwgMCk7XG4gIH1cblxuICA0MCUsIDQ1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yMHB4LCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgfVxufVxuXG4uYm91bmNlT3V0RG93biB7XG4gIGFuaW1hdGlvbi1uYW1lOiBib3VuY2VPdXREb3duO1xufVxuXG5Aa2V5ZnJhbWVzIGJvdW5jZU91dExlZnQge1xuICAyMCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyMHB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gIH1cbn1cblxuLmJvdW5jZU91dExlZnQge1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0TGVmdDtcbn1cblxuQGtleWZyYW1lcyBib3VuY2VPdXRSaWdodCB7XG4gIDIwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMHB4LCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuXG4uYm91bmNlT3V0UmlnaHQge1xuICBhbmltYXRpb24tbmFtZTogYm91bmNlT3V0UmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgYm91bmNlT3V0VXAge1xuICAyMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwcHgsIDApO1xuICB9XG5cbiAgNDAlLCA0NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMHB4LCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gIH1cbn1cblxuLmJvdW5jZU91dFVwIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGJvdW5jZU91dFVwO1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4uZmFkZUluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbjtcbn1cblxuQGtleWZyYW1lcyBmYWRlSW5Eb3duIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uZmFkZUluRG93biB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duO1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbkRvd25CaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJbkRvd25CaWcge1xuICBhbmltYXRpb24tbmFtZTogZmFkZUluRG93bkJpZztcbn1cblxuQGtleWZyYW1lcyBmYWRlSW5MZWZ0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uZmFkZUluTGVmdCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5MZWZ0O1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJbkxlZnRTbWFsbCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAlLCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uZmFkZUluTGVmdFNtYWxsIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnRTbWFsbDtcbn1cblxuQGtleWZyYW1lcyBmYWRlSW5MZWZ0QmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0yMDAwcHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5MZWZ0QmlnIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkxlZnRCaWc7XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluUmlnaHQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJblJpZ2h0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0O1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblJpZ2h0U21hbGwge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjUlLCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4uZmFkZUluUmlnaHRTbWFsbCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5SaWdodFNtYWxsO1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblJpZ2h0QmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMDBweCwgMCwgMCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gIH1cbn1cblxuLmZhZGVJblJpZ2h0QmlnIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJblJpZ2h0QmlnO1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGVJblVwIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5VcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcDtcbn1cblxuQGtleWZyYW1lcyBmYWRlSW5VcEJpZyB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG5cbi5mYWRlSW5VcEJpZyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5VcEJpZztcbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgZmFkZUluQmx1ciB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgZmlsdGVyOiBibHVyKDEwcHgpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgZmlsdGVyOiBibHVyKDApO1xuICB9XG59XG5cbi5mYWRlSW5CbHVyIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkJsdXI7XG59XG5cbi5mYWRlT3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXQ7XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dERvd24ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dERvd24ge1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dERvd247XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dERvd25CaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAyMDAwcHgsIDApO1xuICB9XG59XG5cbi5mYWRlT3V0RG93bkJpZyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0RG93bkJpZztcbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0TGVmdCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dExlZnQge1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dExlZnQ7XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dExlZnRCaWcge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dExlZnRCaWcge1xuICBhbmltYXRpb24tbmFtZTogZmFkZU91dExlZnRCaWc7XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCk7XG4gIH1cbn1cblxuLmZhZGVPdXRSaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0UmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dFJpZ2h0QmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgfVxufVxuXG4uZmFkZU91dFJpZ2h0QmlnIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVPdXRSaWdodEJpZztcbn1cblxuQGtleWZyYW1lcyBmYWRlT3V0VXAge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gIH1cbn1cblxuLmZhZGVPdXRVcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXA7XG59XG5cbkBrZXlmcmFtZXMgZmFkZU91dFVwQmlnIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTIwMDBweCwgMCk7XG4gIH1cbn1cblxuLmZhZGVPdXRVcEJpZyB7XG4gIGFuaW1hdGlvbi1uYW1lOiBmYWRlT3V0VXBCaWc7XG59XG5cbkBrZXlmcmFtZXMgZmxpcCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIC0zNjBkZWcpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xuICB9XG5cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSB0cmFuc2xhdGUzZCgwLCAwLCAxNTBweCkgcm90YXRlM2QoMCwgMSwgMCwgLTE5MGRlZyk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XG4gIH1cblxuICA1MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHRyYW5zbGF0ZTNkKDAsIDAsIDE1MHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTcwZGVnKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluO1xuICB9XG5cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSBzY2FsZTNkKC45NSwgLjk1LCAuOTUpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgfVxufVxuXG4uYW5pbWF0ZWQuZmxpcCB7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGU7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwO1xufVxuXG5Aa2V5ZnJhbWVzIGZsaXBJblgge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCA5MGRlZyk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtMjBkZWcpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIDEwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCAtNWRlZyk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gIH1cbn1cblxuLmZsaXBJblgge1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwSW5YO1xufVxuXG5Aa2V5ZnJhbWVzIGZsaXBJblkge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCA5MGRlZyk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgNDAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMjBkZWcpO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW47XG4gIH1cblxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDAsIDEsIDAsIDEwZGVnKTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgODAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtNWRlZyk7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gIH1cbn1cblxuLmZsaXBJblkge1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiB2aXNpYmxlICFpbXBvcnRhbnQ7XG4gIGFuaW1hdGlvbi1uYW1lOiBmbGlwSW5ZO1xufVxuXG5Aa2V5ZnJhbWVzIGZsaXBPdXRYIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCk7XG4gIH1cblxuICAzMCUge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKDEsIDAsIDAsIC0yMGRlZyk7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgxLCAwLCAwLCA5MGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4uZmxpcE91dFgge1xuICBhbmltYXRpb24tbmFtZTogZmxpcE91dFg7XG4gIGJhY2tmYWNlLXZpc2liaWxpdHk6IHZpc2libGUgIWltcG9ydGFudDtcbn1cblxuQGtleWZyYW1lcyBmbGlwT3V0WSB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogcGVyc3BlY3RpdmUoNDAwcHgpO1xuICB9XG5cbiAgMzAlIHtcbiAgICB0cmFuc2Zvcm06IHBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCgwLCAxLCAwLCAtMTVkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMSwgMCwgOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmZsaXBPdXRZIHtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogdmlzaWJsZSAhaW1wb3J0YW50O1xuICBhbmltYXRpb24tbmFtZTogZmxpcE91dFk7XG59XG5cbkBrZXlmcmFtZXMgbGlnaHRTcGVlZEluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKSBza2V3WCgtMzBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICA2MCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goMjBkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA4MCUge1xuICAgIHRyYW5zZm9ybTogc2tld1goLTVkZWcpO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLmxpZ2h0U3BlZWRJbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiBsaWdodFNwZWVkSW47XG4gIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xufVxuXG5Aa2V5ZnJhbWVzIGxpZ2h0U3BlZWRPdXQge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTAwJSwgMCwgMCkgc2tld1goMzBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLmxpZ2h0U3BlZWRPdXQge1xuICBhbmltYXRpb24tbmFtZTogbGlnaHRTcGVlZE91dDtcbiAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjtcbn1cblxuQGtleWZyYW1lcyByb3RhdGVJbiB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0yMDBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5yb3RhdGVJbiB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJbjtcbn1cblxuQGtleWZyYW1lcyByb3RhdGVJbkRvd25MZWZ0IHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuLnJvdGF0ZUluRG93bkxlZnQge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duTGVmdDtcbn1cblxuQGtleWZyYW1lcyByb3RhdGVJbkRvd25SaWdodCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4ucm90YXRlSW5Eb3duUmlnaHQge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5Eb3duUmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlSW5VcExlZnQge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5yb3RhdGVJblVwTGVmdCB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVJblVwTGVmdDtcbn1cblxuQGtleWZyYW1lcyByb3RhdGVJblVwUmlnaHQge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtOTBkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG59XG5cbi5yb3RhdGVJblVwUmlnaHQge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlSW5VcFJpZ2h0O1xufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDIwMGRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4ucm90YXRlT3V0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dDtcbn1cblxuQGtleWZyYW1lcyByb3RhdGVPdXREb3duTGVmdCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxufVxuXG4ucm90YXRlT3V0RG93bkxlZnQge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0RG93bkxlZnQ7XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlT3V0RG93blJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQgYm90dG9tO1xuICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgLTQ1ZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5yb3RhdGVPdXREb3duUmlnaHQge1xuICBhbmltYXRpb24tbmFtZTogcm90YXRlT3V0RG93blJpZ2h0O1xufVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZU91dFVwTGVmdCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tO1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b207XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtNDVkZWcpO1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLnJvdGF0ZU91dFVwTGVmdCB7XG4gIGFuaW1hdGlvbi1uYW1lOiByb3RhdGVPdXRVcExlZnQ7XG59XG5cbkBrZXlmcmFtZXMgcm90YXRlT3V0VXBSaWdodCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0IGJvdHRvbTtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDkwZGVnKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5yb3RhdGVPdXRVcFJpZ2h0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvdGF0ZU91dFVwUmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgaGluZ2Uge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIH1cblxuICAyMCUsIDYwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA4MGRlZyk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gIH1cblxuICA0MCUsIDgwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA2MGRlZyk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDcwMHB4LCAwKTtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5oaW5nZSB7XG4gIGFuaW1hdGlvbi1uYW1lOiBoaW5nZTtcbn1cblxuLyogb3JpZ2luYWxseSBhdXRob3JlZCBieSBOaWNrIFBldHRpdCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrcGV0dGl0L2dsaWRlICovXG5cbkBrZXlmcmFtZXMgcm9sbEluIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKSByb3RhdGUzZCgwLCAwLCAxLCAtMTIwZGVnKTtcbiAgfVxuXG4gIHRvIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxufVxuXG4ucm9sbEluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHJvbGxJbjtcbn1cblxuLyogb3JpZ2luYWxseSBhdXRob3JlZCBieSBOaWNrIFBldHRpdCAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrcGV0dGl0L2dsaWRlICovXG5cbkBrZXlmcmFtZXMgcm9sbE91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwMCUsIDAsIDApIHJvdGF0ZTNkKDAsIDAsIDEsIDEyMGRlZyk7XG4gIH1cbn1cblxuLnJvbGxPdXQge1xuICBhbmltYXRpb24tbmFtZTogcm9sbE91dDtcbn1cblxuQGtleWZyYW1lcyB6b29tSW4ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguMywgLjMsIC4zKTtcbiAgfVxuXG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxufVxuXG4uem9vbUluIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21Jbjtcbn1cblxuQGtleWZyYW1lcyB6b29tSW5Eb3duIHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgLTEwMDBweCwgMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgNjBweCwgMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbi56b29tSW5Eb3duIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21JbkRvd247XG59XG5cbkBrZXlmcmFtZXMgem9vbUluTGVmdCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKC0xMDAwcHgsIDAsIDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gIH1cblxuICA2MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDEwcHgsIDAsIDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG4uem9vbUluTGVmdCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tSW5MZWZ0O1xufVxuXG5Aa2V5ZnJhbWVzIHpvb21JblJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMTAwMHB4LCAwLCAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgNjAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbi56b29tSW5SaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tSW5SaWdodDtcbn1cblxuQGtleWZyYW1lcyB6b29tSW5VcCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIDEwMDBweCwgMCk7XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNTUwLCAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiAgfVxuXG4gIDYwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG4uem9vbUluVXAge1xuICBhbmltYXRpb24tbmFtZTogem9vbUluVXA7XG59XG5cbkBrZXlmcmFtZXMgem9vbU91dCB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cblxuICA1MCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4zLCAuMywgLjMpO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbn1cblxuLnpvb21PdXQge1xuICBhbmltYXRpb24tbmFtZTogem9vbU91dDtcbn1cblxuQGtleWZyYW1lcyB6b29tT3V0RG93biB7XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoMCwgLTYwcHgsIDApO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4gIH1cblxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjEsIC4xLCAuMSkgdHJhbnNsYXRlM2QoMCwgMjAwMHB4LCAwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjE3NSwgMC44ODUsIDAuMzIwLCAxKTtcbiAgfVxufVxuXG4uem9vbU91dERvd24ge1xuICBhbmltYXRpb24tbmFtZTogem9vbU91dERvd247XG59XG5cbkBrZXlmcmFtZXMgem9vbU91dExlZnQge1xuICA0MCUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC40NzUsIC40NzUsIC40NzUpIHRyYW5zbGF0ZTNkKDQycHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSguMSkgdHJhbnNsYXRlM2QoLTIwMDBweCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG4gIH1cbn1cblxuLnpvb21PdXRMZWZ0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHpvb21PdXRMZWZ0O1xufVxuXG5Aa2V5ZnJhbWVzIHpvb21PdXRSaWdodCB7XG4gIDQwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlM2QoLjQ3NSwgLjQ3NSwgLjQ3NSkgdHJhbnNsYXRlM2QoLTQycHgsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSguMSkgdHJhbnNsYXRlM2QoMjAwMHB4LCAwLCAwKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7XG4gIH1cbn1cblxuLnpvb21PdXRSaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiB6b29tT3V0UmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgem9vbU91dFVwIHtcbiAgNDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUzZCguNDc1LCAuNDc1LCAuNDc1KSB0cmFuc2xhdGUzZCgwLCA2MHB4LCAwKTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC41NTAsIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuICB9XG5cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZTNkKC4xLCAuMSwgLjEpIHRyYW5zbGF0ZTNkKDAsIC0yMDAwcHgsIDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBib3R0b207XG4gICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMjAsIDEpO1xuICB9XG59XG5cbi56b29tT3V0VXAge1xuICBhbmltYXRpb24tbmFtZTogem9vbU91dFVwO1xufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlSW5Eb3duIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG59XG5cbi5zbGlkZUluRG93biB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluRG93bjtcbn1cblxuQGtleWZyYW1lcyBzbGlkZUluTGVmdCB7XG4gIGZyb20ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIH1cblxuICB0byB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVJbkxlZnQge1xuICBhbmltYXRpb24tbmFtZTogc2xpZGVJbkxlZnQ7XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVJblJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLnNsaWRlSW5SaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluUmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVJblVwIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICB9XG5cbiAgdG8ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuLnNsaWRlSW5VcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZUluVXA7XG59XG5cbkBrZXlmcmFtZXMgc2xpZGVPdXREb3duIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVPdXREb3duIHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0RG93bjtcbn1cblxuQGtleWZyYW1lcyBzbGlkZU91dExlZnQge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVPdXRMZWZ0IHtcbiAgYW5pbWF0aW9uLW5hbWU6IHNsaWRlT3V0TGVmdDtcbn1cblxuQGtleWZyYW1lcyBzbGlkZU91dFJpZ2h0IHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIHRvIHtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDAlLCAwLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVPdXRSaWdodCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFJpZ2h0O1xufVxuXG5Aa2V5ZnJhbWVzIHNsaWRlT3V0VXAge1xuICBmcm9tIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICB9XG5cbiAgdG8ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgfVxufVxuXG4uc2xpZGVPdXRVcCB7XG4gIGFuaW1hdGlvbi1uYW1lOiBzbGlkZU91dFVwO1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGVMb29wIHtcbiAgMjUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICAzMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gIH1cblxuICA5NSUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gIH1cblxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBmYWRlTG9vcFJldiB7XG4gIDI1JSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDEwMCUsIDApO1xuICB9XG5cbiAgMzAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gIH1cblxuICA5NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgfVxuXG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAxMDAlLCAwKTtcbiAgfVxufVxuIiwiLmctYXBwbHkge1xuICBiYWNrZ3JvdW5kOiAkY29sb3JfX2JhY2tncm91bmQ7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogMjBweCAxMHB4IDAgMTBweDsgXG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAxMDA7XG4gIFxuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1heC13aWR0aDogMTI2MHB4O1xuICAgIHBhZGRpbmc6IDAgMTAwcHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzRCgtNTAlLCAtNTAlLCAwKTtcblxuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgfVxufVxuXG4uZy1hcHBseV9fY29udGFpbmVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3JfX2JhY2tncm91bmQ7XG4gICAgcGFkZGluZzogNDhweCAwO1xuICB9XG59XG5cbi5nLWFwcGx5X190aXRsZSB7XG4gIEBpbmNsdWRlIHNhbnMtc2VyaWYoMjUsIDI1KTtcbiAgY29sb3I6ICRjb2xvcl9faGlnaGxpZ2h0O1xuICBmb250LWZhbWlseTogXCJOZXVlIERpc3BsYXkgUmFuZG9tXCI7XG4gIG1hcmdpbjogMCAwIDNweCAwO1xuICBwYWRkaW5nOiAwIDIwcHggMCAwO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICBAaW5jbHVkZSBzYW5zLXNlcmlmKDQwLCA0MCwgNDAwLCBub3JtYWwsIC0wLjAxcmVtKTtcbiAgICBmb250LWZhbWlseTogXCJOZXVlIERpc3BsYXkgUmFuZG9tXCI7XG4gICAgcGFkZGluZzogMCA2MHB4IDAgMjBweDtcbiAgfVxuICBcbiAgLy8gQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcbiAgLy8gICBAaW5jbHVkZSBzYW5zLXNlcmlmKDUwLCA1MCwgNDAwLCBub3JtYWwsIC0wLjAxcmVtKTtcbiAgLy8gICBmb250LWZhbWlseTogXCJOZXVlIERpc3BsYXkgUmFuZG9tXCI7XG4gIC8vIH1cblxuICAvLyBAaW5jbHVkZSBicmVha3BvaW50KHh4bGFyZ2UgdXApIHtcbiAgLy8gICBAaW5jbHVkZSBzYW5zLXNlcmlmKDYwLCA2MCwgODAwLCBub3JtYWwsIC0wLjAxcmVtKTtcbiAgLy8gICBmb250LWZhbWlseTogXCJOZXVlIERpc3BsYXkgUmFuZG9tXCI7XG4gIC8vIH1cbn1cblxuLmctYXBwbHlfX2NvbnRlbnRDb250YWluZXIge1xuICBoZWlnaHQ6IGNhbGMoMTAwdmggLSA5MHB4KTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBwYWRkaW5nOiAwIDAgODBweDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4uZy1hcHBseV9fdHlwZSB7XG4gIEBpbmNsdWRlIHNhbnMtc2VyaWYoMTMsIDIwKTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgQGluY2x1ZGUgc2Fucy1zZXJpZigxMywgMjMpO1xuICAgIGZsZXg6IDEgMSA1MCU7XG4gICAgcGFkZGluZzogMCAyMHB4IDEzM3B4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxufVxuXG4uZy1hcHBseV9fc3ViVGl0bGUge1xuICBAaW5jbHVkZSBzYW5zLXNlcmlmKDE2LCAyNSk7XG4gIGNvbG9yOiAkY29sb3JfX2hpZ2hsaWdodDtcbiAgbWFyZ2luOiAzMHB4IDAgMTNweDtcbn1cblxuLmctYXBwbHlfX2Zvb3RlciB7XG4gIG1hcmdpbjogMjhweCAwIDA7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA0MHB4KTtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDA7XG4gIH1cblxuICBwIHtcbiAgICBtYXJnaW46IDIycHggMCAwO1xuICB9XG5cbiAgYSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9fdGV4dDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxuICAuYS1idG4ge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgbWF4LXdpZHRoOiAzNjBweDtcbiAgfVxufVxuXG4uZy1hcHBseV9fY2xvc2Uge1xuICBoZWlnaHQ6IDMycHg7XG4gIHdpZHRoOiAzMnB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG5cbiAgdG9wOiAtN3B4O1xuICByaWdodDogMDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgdG9wOiAyM3B4O1xuICAgIHJpZ2h0OiAyNXB4O1xuICB9XG5cbiAgLmljb24ge1xuICAgIGhlaWdodDogMzJweDtcbiAgICB3aWR0aDogMzJweDtcbiAgfVxufSIsIi5nLWJyZWFkY3J1bWJzIHtcblx0QGluY2x1ZGUgc2Fucy1zZXJpZigxMSwgMTUpO1xuXHRtYXJnaW46IDE5cHggMCAwO1xuXHR3aWR0aDogMTAwJTtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG5cdFx0QGluY2x1ZGUgc2Fucy1zZXJpZigxMSwgMjAsIDQwMCwgbm9ybWFsLCAwLjAxcmVtKTtcblx0XHRtYXJnaW46IDdweCAwIDA7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHotaW5kZXg6IDE7XG5cdH1cbn1cblxuLmctYnJlYWRjcnVtYnNfX2xpc3Qge1xuXHRtYXJnaW46IDA7XG5cdHBhZGRpbmc6IDA7XG59XG5cbi5nLWJyZWFkY3J1bWJzX190aXRsZSB7XG5cdEBpbmNsdWRlIGhpZGVfdGV4dCgpO1xufVxuXG4uZy1icmVhZGNydW1ic19fbGlzdEl0ZW0ge1xuXHRjb2xvcjogJGNvbG9yX19icmVhZGNydW1ic0l0ZW07XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0JjpiZWZvcmUge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cblxuXHQmOm5vdCg6bGFzdC1jaGlsZCkge1xuXHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XG5cdH1cblxuXHQuaWNvbiB7XG5cdFx0Y29sb3I6ICRjb2xvcl9fYnJlYWRjcnVtYnNMaW5rO1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRoZWlnaHQ6IDIwcHg7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHdpZHRoOiAyMHB4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRyaWdodDogLTdweDtcblx0XHR0b3A6IDBweDtcblx0fVxuXG5cdGEge1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRjb2xvcjogJGNvbG9yX19icmVhZGNydW1ic0xpbms7XG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0XHR0cmFuc2l0aW9uOiBjb2xvciBlYXNlLWluLW91dCAxODBtcztcblxuXHRcdEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcblx0XHRcdGJvcmRlcjogbm9uZTtcblx0XHRcdGNvbG9yOiAkY29sb3JfX2hpZ2hsaWdodDtcblx0XHR9XG5cdH1cbn0iLCIvKiBHbG9iYWwgSGVhZGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5nLWhlYWRlciB7XG4gIGJhY2tncm91bmQ6ICRjb2xvcl9fYmFja2dyb3VuZDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9fbmF2U3BsaXR0ZXI7XG4gIGhlaWdodDogNjBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDEwMDtcbiAgXG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBoZWlnaHQ6IDE0MHB4O1xuICAgIHBhZGRpbmc6IDAgMzBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlIHVwKSB7XG4gICAgcGFkZGluZzogMCA0MHB4O1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh4eGxhcmdlIHVwKSB7XG4gICAgcGFkZGluZzogMCA2MHB4O1xuICB9XG59XG5cblxuLyogU2l0ZSBMb2dvXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5nLWhlYWRlcl9fbG9nbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luOiA4cHggMCAwIDVweDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgbWFyZ2luOiAxMXB4IDAgMCAtMTdweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgfVxuXG4gIC5pY29uLS1sb2dvIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGhlaWdodDogMTE5cHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgd2lkdGg6IDE3N3B4O1xuICAgIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgLmljb24tLWxvZ28tbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDQ3cHg7XG4gICAgd2lkdGg6IDIxMHB4O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAuaWNvbi0tbG9nby0xbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBoZWlnaHQ6IDYzcHg7XG4gICAgd2lkdGg6IDM1NHB4O1xuICB9XG59XG5cblxuLyogTW9iaWxlIEFjdGlvbnNcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmctaGVhZGVyX19hY3Rpb25zIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBtYXJnaW46IDEycHggMTJweCAwIDA7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmctaGVhZGVyX19hY3Rpb25zSXRlbSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLmctaGVhZGVyX19hY3Rpb25zTGluayB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogMzVweDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMzVweDtcblxuICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgLmljb24ge1xuICAgIGhlaWdodDogMzVweDtcbiAgICB3aWR0aDogMzVweDtcbiAgfVxuXG4gIC5pY29uLS1jbG9zZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICYuaXMtYWN0aXZlIHtcbiAgICAuaWNvbi0tbWVudSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5pY29uLS1jbG9zZSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgfVxuICB9XG59XG4iLCIuZy1tYXNrIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiAxMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMDtcbiAgYm90dG9tOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfX2JhY2tncm91bmQ7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMTgwbXM7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgLy8gdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAtNTB2dztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICB9XG59XG4iLCIuZy1vdmVybGF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX19iYWNrZ3JvdW5kO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4yNXM7XG4gIHotaW5kZXg6IDEwO1xuXG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBib3R0b206IDEwMCU7XG4gIHJpZ2h0OiAxMDAlO1xuICBcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGNvbG9yX19iYWNrZ3JvdW5kLS1kYXJrLCAwLjc1KTtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWFyZ2luLWxlZnQ6IC01MHZ3O1xuICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gIH1cbn1cbiIsIi8qIEdsb2JhbCBGb290ZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmctZm9vdGVyIHtcblx0QGluY2x1ZGUgc2Fucy1zZXJpZigxNywgMzApO1xuXHRiYWNrZ3JvdW5kOiAkY29sb3JfX2Zvb3RlckJhY2tncm91bmQ7XG5cdGNvbG9yOiAkY29sb3JfX3RleHQtLWRhcms7XG5cdG1hcmdpbjogMCAtMTBweDtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0cGFkZGluZzogMzdweCAyMHB4IDg1cHg7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cdFxuXHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuXHRcdG1hcmdpbjogMCAtMjBweDtcblx0XHRwYWRkaW5nOiAzN3B4IDQwcHggODVweDtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblx0XHRwYWRkaW5nOiA2MHB4IDQ1cHg7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkge1xuXHRcdHBhZGRpbmc6IDYwcHggNjBweDtcblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSB1cCkge1xuXHRcdHBhZGRpbmc6IDgwcHggODBweCA5MHB4O1xuXHR9XG59XG5cbi5nLWZvb3Rlcl9fYWRkcmVzcyB7XG5cdC5vcmcge1xuXHRcdEBpbmNsdWRlIHNhbnMtc2VyaWYoMTMsIDIwLCBub3JtYWwsIDgwMCk7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG5cdFx0XHRAaW5jbHVkZSBzYW5zLXNlcmlmKDE3LCAzMCk7XG5cdFx0fVxuXHR9XG5cblx0LmFkcixcblx0LnRlbCB7XG5cdFx0QGluY2x1ZGUgc2Fucy1zZXJpZigxMywgMjApO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuXHRcdFx0QGluY2x1ZGUgc2Fucy1zZXJpZigxNywgMzApO1xuXHRcdH1cblx0fVxuXG5cdGEge1xuXHRcdGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cdFx0dHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbSBlYXNlLWluLW91dCAxODBtcztcblx0XHRcblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFxuXHRcdFx0QGluY2x1ZGUgaG92ZXItZm9jdXMge1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yX190ZXh0LS1kYXJrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uZy1mb290ZXJfX3RpdGxlIHtcblx0QGluY2x1ZGUgc2Fucy1zZXJpZigxMCwgMTUsIDgwMCwgbm9ybWFsLCAwLjA1cmVtKTtcblx0Y29sb3I6ICRjb2xvcl9faGlnaGxpZ2h0O1xuXHRtYXJnaW46IDdweCAwIDEwcHg7XG5cdHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cblx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuXHRcdEBpbmNsdWRlIHNhbnMtc2VyaWYoMTMsIDIwLCA4MDAsIG5vcm1hbCwgMC4wM3JlbSk7XG5cdFx0bWFyZ2luOiA3cHggMCAzcHg7XG5cdH1cbn1cblxuLmctZm9vdGVyX19saXN0IHtcblx0QGluY2x1ZGUgc2Fucy1zZXJpZigxMCwgMTUpO1xuXHRtYXJnaW46IDAgMCAzNXB4O1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblx0XHRAaW5jbHVkZSBzYW5zLXNlcmlmKDE0LCAzMCk7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG5cblx0bGkge1xuXHRcdG1hcmdpbjogMCAwIDExcHg7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0fVxuXHR9XG5cblx0YSB7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdHBhZGRpbmctYm90dG9tOiAxcHg7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdHRyYW5zaXRpb246IGJvcmRlci1ib3R0b20gZWFzZS1pbi1vdXQgMTgwbXMsIGNvbG9yIGVhc2UtaW4tb3V0IDE4MG1zO1xuXHRcdFxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblx0XHRcdEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9fdGV4dC0tZGFyaztcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLmctZm9vdGVyX19hZGRpdGlvbmFsIHtcblx0QGluY2x1ZGUgc2Fucy1zZXJpZigxMCwgMTUpO1xuXHRtYXJnaW46IDAgMCAzMHB4O1xuXHRjb2xvcjogJGNvbG9yX19mb290ZXJHcmV5O1xuXHRwYWRkaW5nOiAwIDEwcHg7XG5cdHdpZHRoOiAxMDAlO1xuXG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0Ym90dG9tOiAxNHB4O1xuXHRsZWZ0OiAyMHB4O1xuXHRcblx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcblx0XHRwYWRkaW5nOiAwIDMwcHg7XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG5cdFx0QGluY2x1ZGUgc2Fucy1zZXJpZigxNCwgMzApO1xuXHRcdG1hcmdpbjogMzBweCAwIDA7XG5cdFx0cGFkZGluZzogMDtcblx0XHRwb3NpdGlvbjogc3RhdGljO1xuXHR9XG5cblx0cCB7XG5cdFx0bWFyZ2luOiAwIDAgMTFweDtcblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cdH1cblxuXHR1bCB7XG5cblx0fVxuXG5cdGxpIHtcblx0XHRkaXNwbGF5OiBpbmxpbmU7XG5cblx0XHQmOm5vdCg6bGFzdC1vZi10eXBlKSB7XG5cdFx0XHRib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkY29sb3JfX2Zvb3RlckdyZXk7XG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEycHg7XG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiAxNXB4O1xuXHRcdH1cblx0fVxuXHRcblx0YSB7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuXHRcdHBhZGRpbmctYm90dG9tOiAxcHg7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdHRyYW5zaXRpb246IGJvcmRlci1ib3R0b20gZWFzZS1pbi1vdXQgMTgwbXM7XG5cdFx0XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuXHRcdFx0QGluY2x1ZGUgaG92ZXItZm9jdXMge1xuXHRcdFx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yX19mb290ZXJHcmV5O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4uZy1mb290ZXJfX3NvY2lhbExpbmtzIHtcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9fZm9vdGVyU29jaWFsU2VwYXJhdG9yO1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yX19mb290ZXJTb2NpYWxTZXBhcmF0b3I7XG5cdGhlaWdodDogNjRweDtcblx0bWFyZ2luOiAyN3B4IDAgMzJweDtcblx0cGFkZGluZzogMThweCAwIDAgMDtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblx0XHRib3JkZXI6IG5vbmU7XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdG1hcmdpbjogMzBweCAwIDQwcHg7XG5cdFx0cGFkZGluZzogMDtcblx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR9XG5cblx0bGkge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcblx0XHQmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAyM3B4O1xuXHRcdH1cblx0fVxuXG5cdGEge1xuXHRcdGNvbG9yOiAkY29sb3JfX3RleHQtLWRhcms7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0bGluZS1oZWlnaHQ6IDE7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG5cdFx0XHRAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG5cdFx0XHRcdC5pY29uIHtcblx0XHRcdFx0XHRmaWxsOiAkY29sb3JfX2hpZ2hsaWdodDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5pY29uIHtcblx0XHRmaWxsOiAkY29sb3JfX3RleHQtLWRhcms7XG5cdFx0aGVpZ2h0OiAyNXB4O1xuXHRcdHdpZHRoOiAyNXB4O1xuXHRcdHRyYW5zaXRpb246IGZpbGwgZWFzZS1pbi1vdXQgMTgwbXM7XG5cdH1cbn1cblxuLmctZm9vdGVyX19hZGRpdGlvbmFsTGlua3Mge1xuXHRAaW5jbHVkZSBzYW5zLXNlcmlmKDEzLCAyMCk7XG5cblx0JjpiZWZvcmUge1xuXHRcdGJhY2tncm91bmQ6ICRjb2xvcl9fdGV4dC0tZGFyaztcblx0XHRjb250ZW50OiAnJztcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRoZWlnaHQ6IDFweDtcblx0XHRtYXJnaW46IDdweCAwIDEycHg7XG5cdFx0d2lkdGg6IDE1cHg7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG5cdFx0XHRtYXJnaW46IDE0cHggMCAxNXB4O1xuXHRcdH1cblx0fVxuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblx0XHRAaW5jbHVkZSBzYW5zLXNlcmlmKDE3LCAzMCk7XG5cdH1cblxuXHRhIHtcblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdHRyYW5zaXRpb246IGJvcmRlci1ib3R0b20gZWFzZS1pbi1vdXQgMTgwbXM7XG5cdFx0XG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcblx0XHRcdEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcblx0XHRcdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9fdGV4dC0tZGFyaztcblx0XHRcdH1cblx0XHR9XG5cdH1cbn0iLCIuZy1zZWFyY2gge1xuICBiYWNrZ3JvdW5kOiAkY29sb3JfX2JhY2tncm91bmQ7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3JfX25hdlNwbGl0dGVyO1xuICBoZWlnaHQ6IDYwcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gZWFzZS1pbi1vdXQgMTgwbXM7XG4gIHdpZHRoOiAxMDAlO1xuICB6LWluZGV4OiAxMDA7XG4gIFxuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMDtcbiAgXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBvcGFjaXR5OiAwO1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICBwYWRkaW5nOiAyMjBweCAzMHB4IDgwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IGVhc2UtaW4tb3V0IDE4MG1zO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlIHVwKSB7XG4gICAgcGFkZGluZy1sZWZ0OiA0MHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDQwcHg7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHh4bGFyZ2UgdXApIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDYwcHg7XG4gICAgcGFkZGluZy1yaWdodDogNjBweDtcbiAgfVxuXG4gIC5yb3cge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxufVxuXG4uZy1zZWFyY2hfX2Zvcm0ge1xuICBwYWRkaW5nOiAxMXB4IDQwcHggMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG59XG5cbi5nLXNlYXJjaF9fZm9ybUlucHV0IHtcbiAgQGluY2x1ZGUgc2Fucy1zZXJpZigxNywgMTcpO1xuICBiYWNrZ3JvdW5kOiAkY29sb3JfX2JhY2tncm91bmQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6ICRjb2xvcl9faGlnaGxpZ2h0O1xuICBib3JkZXItcmFkaXVzOiBub25lO1xuICBoZWlnaHQ6IDMycHg7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICBwYWRkaW5nOiAzcHggNXB4IDA7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gICY6Oi1tcy1jbGVhciB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICRjb2xvcl9fc2VhcmNoUGxhY2Vob2xkZXI7XG4gIH1cbiAgXG4gICY6Oi1tb3otcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAkY29sb3JfX3NlYXJjaFBsYWNlaG9sZGVyO1xuICB9XG5cbiAgJjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAkY29sb3JfX3NlYXJjaFBsYWNlaG9sZGVyO1xuICB9XG5cbiAgJjotbW96LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJGNvbG9yX19zZWFyY2hQbGFjZWhvbGRlcjtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICBAaW5jbHVkZSBzYW5zLXNlcmlmKDc1LCA4NSwgNDAwLCBub3JtYWwsIC0wLjAzcmVtKTtcbiAgICBmb250LWZhbWlseTogXCJOZXVlIERpc3BsYXkgUmFuZG9tXCI7XG4gICAgaGVpZ2h0OiA4MHB4O1xuICAgIHBhZGRpbmc6IDAgNDBweCAwIDA7XG4gIH1cbn1cblxuLmctc2VhcmNoX19mb3JtU3VibWl0IHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMnB4O1xuICBsZWZ0OiAzcHg7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgbWFyZ2luLXRvcDogLTEwcHg7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogLTVweDtcbiAgICB0b3A6IDUwJTtcbiAgfVxuXG4gIC5pY29uIHtcbiAgICBoZWlnaHQ6IDM1cHg7XG4gICAgd2lkdGg6IDM1cHg7XG4gIH1cblxuICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi5nLXNlYXJjaF9fY2xvc2Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxMnB4O1xuICB0b3A6IDEycHg7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIHRvcDogLTE0NXB4O1xuICAgIHJpZ2h0OiAxNnB4O1xuXG4gICAgLnMtaGVhZGVyLWZpeGVkICYge1xuICAgICAgdG9wOiAtMTkxcHg7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcbiAgICByaWdodDogMjJweDtcbiAgfVxuXG4gIC5pY29uIHtcbiAgICBoZWlnaHQ6IDM1cHg7XG4gICAgd2lkdGg6IDM1cHg7XG4gIH1cbn1cblxuLmctc2VhcmNoX19yZXN1bHRzIHtcbiAgZGlzcGxheTogbm9uZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgYm9yZGVyLWJvdHRvbTogNHB4IHNvbGlkICRjb2xvcl9fYmxhY2s7XG4gICAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICRjb2xvcl9fYmxhY2s7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWF4LWhlaWdodDogMDtcbiAgICBtaW4taGVpZ2h0OiAxMnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCBlYXNlLWluLW91dCA1NDBtcztcbiAgfVxuXG4gIC5tLXNlYXJjaFJlc3VsdHNMaXN0IHtcblxuICB9XG59XG5cbi5zLXNlYXJjaC1hdXRvY29tcGxldGUtYWN0aXZlIHtcbiAgLmctc2VhcmNoX19yZXN1bHRzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICBtYXgtaGVpZ2h0OiA1MDAwcHg7XG4gICAgICBvdmVyZmxvdzogc2Nyb2xsO1xuICAgIH1cbiAgfVxufSIsIm1haW4ge1xuXHRAaW5jbHVkZSBzYW5zLXNlcmlmKDE3LCAzMCk7XG5cdHBhZGRpbmc6IDYwcHggMTBweCAwO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgcGFkZGluZzogNjBweCAyMHB4IDA7XG4gIH1cblx0XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblx0XHRwYWRkaW5nOiAwIDMwcHg7XG5cdH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkge1xuICAgIHBhZGRpbmc6IDAgNDBweDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSB1cCkge1xuICAgIHBhZGRpbmc6IDAgNjBweDtcbiAgfVxufVxuXG51bCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG59XG5cbmEge1xuICBjb2xvcjogaW5oZXJpdDtcbn1cblxuLmpzLWhpZGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uanMtc2hvdyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ucGFnZS10aXRsZSxcbiVwYWdlLXRpdGxlIHtcblx0QGluY2x1ZGUgc2Fucy1zZXJpZig1MCwgNTAsIDQwMCwgbm9ybWFsLCAtMC4wMXJlbSk7XG5cdGZvbnQtZmFtaWx5OiBcIk5ldWUgRGlzcGxheSBSYW5kb21cIjtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgQGluY2x1ZGUgc2Fucy1zZXJpZigxMTAsIDEyMCwgNDAwLCBub3JtYWwsIC0wLjAzcmVtKTtcbiAgICBmb250LWZhbWlseTogXCJOZXVlIERpc3BsYXkgUmFuZG9tXCI7XG4gIH1cbn1cblxuLmgyLFxuJWgyIHtcblx0QGluY2x1ZGUgc2Fucy1zZXJpZigyNSwgMjUpO1xuXHRjb2xvcjogJGNvbG9yX19oaWdobGlnaHQ7XG5cdGZvbnQtZmFtaWx5OiBcIk5ldWUgRGlzcGxheSBSYW5kb21cIjtcblx0bWFyZ2luOiA2MHB4IDAgMTVweDtcblx0d29yZC13cmFwOiBicmVhay13b3JkO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICBAaW5jbHVkZSBzYW5zLXNlcmlmKDUwLCA1MCwgNDAwLCBub3JtYWwsIC0wLjAxcmVtKTtcbiAgICBmb250LWZhbWlseTogXCJOZXVlIERpc3BsYXkgUmFuZG9tXCI7XG4gIH1cbn1cblxuLmgzLFxuJWgzIHtcblx0QGluY2x1ZGUgc2Fucy1zZXJpZigyMiwgMzUpO1xuXHRjb2xvcjogJGNvbG9yX19ibGFjay0tOTA7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIFxuICB9XG59XG5cbi52aXN1YWxseS1oaWRkZW4geyBcbiAgaGVpZ2h0OiAxcHg7XG4gIGxlZnQ6IC0xMDAwMHB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgdG9wOiBhdXRvO1xuICB3aWR0aDogMXB4O1xufSIsIi5hLWJ0biB7XG4gIEBpbmNsdWRlIHNhbnMtc2VyaWYoMTAsIDE1LCA4MDAsIG5vcm1hbCwgMC4wNXJlbSk7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCBlYXNlLWluLW91dCAxODBtcywgY29sb3IgZWFzZS1pbi1vdXQgMTgwbXM7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIEBpbmNsdWRlIHNhbnMtc2VyaWYoMTMsIDIwLCA4MDAsIG5vcm1hbCwgMC4wM3JlbSk7XG4gIH1cblxuICAuaWNvbiB7XG4gICAgZmlsbDogJGNvbG9yX190ZXh0O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDNweDtcbiAgfVxuXG4gIC5pY29uLS1leHRlcm5hbC1saW5rIHtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgbWFyZ2luOiAwIDAgMCAxMHB4O1xuICAgIHdpZHRoOiAyMHB4O1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogNXB4O1xuICB9XG59XG5cbi5hLWJ0bi0tYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMjJweCAxMHB4IDE4cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICBwYWRkaW5nOiAyN3B4IDEwcHggMjNweDtcbiAgfVxufVxuXG4uYS1idG4tLWhpZ2hsaWdodCB7XG4gIGJhY2tncm91bmQ6ICRjb2xvcl9faGlnaGxpZ2h0O1xuICBjb2xvcjogJGNvbG9yX190ZXh0LS1kYXJrO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yX19oaWdobGlnaHQtLWRhcms7XG4gICAgfVxuICB9XG5cbiAgLmljb24ge1xuICAgIGZpbGw6ICRjb2xvcl9fdGV4dC0tZGFyaztcbiAgfVxufVxuXG4uYS1idG4tLWljb24ge1xuICBwYWRkaW5nLXRvcDogMTRweDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgcGFkZGluZy10b3A6IDIwcHg7XG4gIH1cbn1cblxuLmEtYnRuLS1ncmV5IHtcbiAgYm9yZGVyOiAycHggc29saWQgJGNvbG9yX19idG4tLWdyZXk7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9fYnRuLS1ncmV5O1xuICAgICAgYm9yZGVyOiAycHggc29saWQgJGNvbG9yX19idG4tLWdyZXk7XG4gICAgICBjb2xvcjogJGNvbG9yX19jdGE7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICB9XG59IiwiLyogRmlndXJlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5hLWltZyB7XG5cdG1hcmdpbjogNTBweCAwIDU1cHg7XG59XG5cbi5hLWltZy0taW5saW5lIHtcblx0bWFyZ2luLXRvcDogMDtcbn1cblxuLmEtaW1nLS1taW5pbWFsIHtcblx0bWFyZ2luOiAwO1xufVxuXG4vLyBJbWFnZVxuLmEtaW1nX19pbWFnZSwge1xuXHQrIC5hLWltZ19fY2FwdGlvbixcblx0KyAucm93IHtcblx0XHRtYXJnaW4tdG9wOiAyMHB4O1xuXHR9XG59XG5cbi5hLWltZ19faW1hZ2UtLWJsb2NrIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4vLyBGaWdjYXB0aW9uXG4uYS1pbWdfX2NhcHRpb24ge1xuXHRAaW5jbHVkZSBzYW5zLXNlcmlmKDEzLCAyMCk7XG5cdGNvbG9yOiAkY29sb3JfX2ZpZ2NhcHRpb247XG5cdG1hcmdpbi1ib3R0b206IC0xMHB4O1xuXG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcblx0ICBAaW5jbHVkZSBzYW5zLXNlcmlmKDE0LCAyNSk7XG5cdH1cblxuXHQubS1oZXJvICYge1xuXHRcdG1hcmdpbjogMTlweCAxMHB4IC05cHg7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuXHRcdFx0bWFyZ2luOiAxOXB4IDIwcHggLTlweDtcblx0XHR9XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG5cdFx0XHRtYXJnaW46IDE5cHggMzBweCAtOXB4O1xuXHRcdH1cblxuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlIHVwKSB7XG5cdFx0XHRtYXJnaW46IDE5cHggNjBweCAtOXB4O1xuXHRcdH1cblx0fVxufVxuIiwiLmEtc2VhcmNoUmVzdWx0IHtcbiAgYm9yZGVyOiBub25lO1xuICBjb2xvcjogJGNvbG9yX19zZWFyY2hSZXN1bHRTdW1tYXJ5O1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMjVweCAwIDMxcHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogY29sb3IgZWFzZS1pbi1vdXQgMTgwbXM7XG5cbiAgLmctc2VhcmNoX19yZXN1bHRzICYge1xuICAgIEBpbmNsdWRlIHNhbnMtc2VyaWYoMTYsIDI1LCA4MDApO1xuICAgIGNvbG9yOiAkY29sb3JfX2JsYWNrO1xuICAgIHBhZGRpbmc6IDMwcHggMDtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgIEBpbmNsdWRlIHNhbnMtc2VyaWYoMTcsIDMwLCA4MDApO1xuICAgIH1cbiAgfVxuICBcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGNvbG9yOiAkY29sb3JfX2hpZ2hsaWdodDtcblxuICAgICAgLmEtc2VhcmNoUmVzdWx0X190aXRsZSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfX2hpZ2hsaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLmEtc2VhcmNoUmVzdWx0X19hcnRpY2xlIHtcbiAgQGluY2x1ZGUgc2Fucy1zZXJpZigxNiwgMjUpO1xuICB0cmFuc2l0aW9uOiBjb2xvciBlYXNlLWluLW91dCAxODBtcztcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgQGluY2x1ZGUgc2Fucy1zZXJpZigxNywgMzApO1xuICB9XG4gIFxuICBwIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gIH1cbn1cblxuLmEtc2VhcmNoUmVzdWx0X190aXRsZSB7XG4gIEBpbmNsdWRlIHNhbnMtc2VyaWYoMjIsIDM1LCA4MDApO1xuICBjb2xvcjogJGNvbG9yX19ibGFjaztcbiAgbWFyZ2luOiAwIDAgM3B4O1xuICB0cmFuc2l0aW9uOiBjb2xvciBlYXNlLWluLW91dCAxODBtcztcbn1cblxuLmEtc2VhcmNoUmVzdWx0X19mb290ZXIge1xuICBAaW5jbHVkZSBzYW5zLXNlcmlmKDEzLCAyMCk7XG4gIG1hcmdpbi10b3A6IDlweDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgQGluY2x1ZGUgc2Fucy1zZXJpZigxNCwgMjUpO1xuICB9XG59IiwiLmEtdmNhcmQge1xuXHQub3JnIHtcblx0XHRmb250LXdlaWdodDogODAwO1xuXHR9XG59XG5cbi5hLXZjYXJkX190ZWxlcGhvbmUge1xuXG59IiwiLyogTmF2aWdhdGlvbiBMaXN0XG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5tLW5hdkxpc3Qge1xuICBAaW5jbHVkZSBzYW5zLXNlcmlmKDE2LCAyNSwgODAwKTtcbiAgXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgdXApIHtcbiAgICBAaW5jbHVkZSBzYW5zLXNlcmlmKDE4LCAzNSwgODAwKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIHVwKSB7XG4gICAgQGluY2x1ZGUgc2Fucy1zZXJpZigyMiwgMzUsIDgwMCk7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgQGluY2x1ZGUgc2Fucy1zZXJpZigxNSwgMzUsIDgwMCk7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkge1xuICAgIEBpbmNsdWRlIHNhbnMtc2VyaWYoMTcsIDQ1LCA4MDApO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh4eGxhcmdlIHVwKSB7XG4gICAgQGluY2x1ZGUgc2Fucy1zZXJpZigxOCwgNDUsIDgwMCk7XG4gIH1cbn1cblxuLm0tbmF2TGlzdC0tcHJpbWFyeSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICBsZXR0ZXItc3BhY2luZzogLTRweDtcblxuICAgIC5tLW5hdkxpc3RfX2l0ZW0ge1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgfVxuICB9XG59XG5cbi5tLW5hdkxpc3QtLXNlY29uZGFyeSxcbi5tLW5hdkxpc3QtLXRlcnRpYXJ5IHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIEBpbmNsdWRlIHNhbnMtc2VyaWYoMTAsIDI2LCA4MDAsIG5vcm1hbCwgMC4wNXJlbSk7XG4gICAgY29sb3I6ICRjb2xvcl9fc2Vjb25kYXJ5TmF2O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcblxuICAgIGEge1xuICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59XG5cbi5tLW5hdkxpc3QtLXNlY29uZGFyeSB7XG4gIEBpbmNsdWRlIHNhbnMtc2VyaWYoMTMsIDI1LCA0MDApO1xuICBcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCB1cCkge1xuICAgIEBpbmNsdWRlIHNhbnMtc2VyaWYoMTUsIDI1KTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICBAaW5jbHVkZSBzYW5zLXNlcmlmKDEwLCAyNiwgODAwLCBub3JtYWwsIDAuMDVyZW0pO1xuICAgIHBhZGRpbmctcmlnaHQ6IDI1cHg7XG4gICAgXG4gICAgLm0tbmF2TGlzdF9faXRlbSB7XG4gICAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgfVxuXG4gICAgPiA6bGFzdC1jaGlsZCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfX25hdlNwbGl0dGVyO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMjZweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLTE1cHg7XG4gICAgICAgIHRvcDogLThweDtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubS1uYXZMaXN0X19saW5rIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIHRyYW5zaXRpb246IGJvcmRlci1ib3R0b20gZWFzZS1pbi1vdXQgMTgwbXM7XG5cbiAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9fc2Vjb25kYXJ5TmF2O1xuICAgICAgICBjb2xvcjogJGNvbG9yX19zZWNvbmRhcnlOYXY7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9fc2Vjb25kYXJ5TmF2O1xuICAgICAgICBjb2xvcjogJGNvbG9yX19zZWNvbmRhcnlOYXY7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5tLW5hdkxpc3QtLXRlcnRpYXJ5IHtcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gZG93bikge1xuICAgIEBpbmNsdWRlIHNhbnMtc2VyaWYoMTMsIDQ0KTtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3JfX2hpZ2hsaWdodDtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBhZGRpbmc6IDAgMTcuNSU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMTAwO1xuICAgIHRyYW5zaXRpb246IGxlZnQgZWFzZS1pbi1vdXQgMTgwbXM7XG5cbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm90dG9tOiAwO1xuXG4gICAgLm0tbmF2TGlzdF9faXRlbSB7XG4gICAgICBmbGV4OiAxIDEgYXV0bztcbiAgICB9XG5cbiAgICAubS1uYXZMaXN0X19saW5rIHtcbiAgICAgIEBpbmNsdWRlIHNhbnMtc2VyaWYoMTMsIDQ1KTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGNvbG9yOiAkY29sb3JfX3RleHQtLWRhcms7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAubS1uYXZMaXN0X19pdGVtIHtcbiAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICB9XG5cbiAgICAubS1uYXZMaXN0X19saW5rIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIHRyYW5zaXRpb246IGJvcmRlci1ib3R0b20gZWFzZS1pbi1vdXQgMTgwbXM7XG5cbiAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9fc2Vjb25kYXJ5TmF2O1xuICAgICAgICBjb2xvcjogJGNvbG9yX19zZWNvbmRhcnlOYXY7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9fc2Vjb25kYXJ5TmF2O1xuICAgICAgICBjb2xvcjogJGNvbG9yX19zZWNvbmRhcnlOYXY7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm0tbmF2TGlzdF9faXRlbSB7XG4gICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgYSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbSBlYXNlLWluLW91dCAxODBtcztcblxuICAgICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgICAgY29sb3I6ICRjb2xvcl9fbmF2LS1oaWdobGlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICAgIGNvbG9yOiAkY29sb3JfX25hdi0taGlnaGxpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3JfX3NlY29uZGFyeU5hdjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ubS1uYXZMaXN0LS10ZXJ0aWFyeS1tb2JpbGUge1xuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vKiBDb250ZW50IFdyYXBwZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLm0tbmF2TGlzdF9fd3JhcHBlciB7XG4gIG1heC1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IG1heC1oZWlnaHQgZWFzZS1pbi1vdXQgMzYwbXM7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9fbWVudTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXgtaGVpZ2h0OiBub25lO1xuICAgIHBhZGRpbmc6IDAgNDVweDtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgbGluZWFyIDE4MG1zLCBvcGFjaXR5IGxpbmVhciAxODBtcztcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAyMDBtcztcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG5cbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxNDBweDtcbiAgICBsZWZ0OiAwO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcbiAgICBwYWRkaW5nOiAwIDYwcHg7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHh4bGFyZ2UgdXApIHtcbiAgICBwYWRkaW5nOiAwIDgwcHg7XG4gIH1cbn1cblxuXG5cbi8qIENvbnRlbnQgQ29udGFpbmVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5tLW5hdkxpc3RfX2NvbnRhaW5lciB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICAuY29sdW1ucyB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgZG93bikge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAucm93IHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAuY29sdW1ucyB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6IDE1ODBweDtcbiAgICBwYWRkaW5nOiAzMHB4IDAgNDBweDtcbiAgfVxufVxuXG4ubS1uYXZMaXN0X19jb250YWluZXItLWZsZXgge1xuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogdG9wO1xuICB9XG59XG5cbi5tLW5hdkxpc3RfX2NvbnRhaW5lci0tc2xpbSB7XG4gIHBhZGRpbmc6IDA7XG59XG5cblxuXG4vKiBTZWNvbmRhcnkgLyBUZXJ0aWFyeSBNZW51IExldmVsXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5tLW5hdkxpc3RfX21lbnUge1xuICBAaW5jbHVkZSBzYW5zLXNlcmlmKDE2LCAyNSwgNDAwKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX19tb2JpbGVNZW51QmFja2dyb3VuZDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KHNtYWxsIHVwKSB7XG4gICAgQGluY2x1ZGUgc2Fucy1zZXJpZigxOCwgMjUsIDQwMCk7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgQGluY2x1ZGUgc2Fucy1zZXJpZigxNSwgMjUsIDgwMCk7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcbiAgICBAaW5jbHVkZSBzYW5zLXNlcmlmKDE3LCAyNSwgODAwKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSB1cCkge1xuICAgIEBpbmNsdWRlIHNhbnMtc2VyaWYoMTgsIDI1LCA4MDApO1xuICB9XG5cbiAgbGkge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAtd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG4gIH1cbn1cblxuLm0tbmF2TGlzdF9fbWVudS0tc3BsaXQge1xuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgY29sdW1uczogMjtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4O1xuXG4gICAgLW1vei1jb2x1bW5zOiAyO1xuICB9XG59XG5cbi5tLW5hdkxpc3RfX21lbnUtLXRlcnRpYXJ5IHtcbiAgQGluY2x1ZGUgc2Fucy1zZXJpZigxNywgNDUsIDQwMCk7XG4gIG1heC1oZWlnaHQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IG1heC1oZWlnaHQgZWFzZS1pbi1vdXQgMzYwbXM7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuXG5cbi8qIEFkZGl0aW9uYWwgRHJvcGRvd24gQ29udGVudFxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4ubS1uYXZMaXN0X19hZGRpdGlvbmFsIHtcbiAgZGlzcGxheTogbm9uZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgQGluY2x1ZGUgc2Fucy1zZXJpZigxMywgMjMpO1xuICAgIGNvbG9yOiAkY29sb3JfX3RleHQtLWRhcms7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcbiAgICBAaW5jbHVkZSBzYW5zLXNlcmlmKDE0LCAyNSk7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KHh4bGFyZ2UgdXApIHtcbiAgICBAaW5jbHVkZSBzYW5zLXNlcmlmKDE1LCAyNSk7XG4gIH1cbn1cblxuLm0tbmF2TGlzdF9fYWRkaXRpb25hbENUQSB7XG4gIEBpbmNsdWRlIHNhbnMtc2VyaWYoOCwgMTAsIDgwMCwgbm9ybWFsLCAwLjA1cmVtKTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBjb2xvcjogJGNvbG9yX19oaWdobGlnaHQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0cmFuc2l0aW9uOiBib3JkZXItYm90dG9tIGVhc2UtaW4tb3V0IDE4MG1zO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgQGluY2x1ZGUgc2Fucy1zZXJpZigxMCwgMTUsIDgwMCwgbm9ybWFsLCAwLjA1cmVtKTtcbiAgICBcbiAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yX19oaWdobGlnaHQ7XG4gICAgfVxuICB9XG5cbn1cblxuLm0tbmF2TGlzdF9fYWRkaXRpb25hbFRpdGxlIHtcbiAgQGluY2x1ZGUgc2Fucy1zZXJpZig4LCAxMCwgODAwLCBub3JtYWwsIDAuMDVyZW0pO1xuICBjb2xvcjogJGNvbG9yX190ZXh0LS1kYXJrO1xuICBtYXJnaW46IDFweCAwIDVweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIEBpbmNsdWRlIHNhbnMtc2VyaWYoMTAsIDE1LCA4MDAsIG5vcm1hbCwgMC4wNXJlbSk7XG4gIH1cbn1cblxuLm0tbmF2TGlzdF9hZGRpdGlvbmFsTGlzdCB7XG4gIG1hcmdpbi1sZWZ0OiAtOHB4O1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgXG4gIC5pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZmlsbDogJGNvbG9yX19uYXZBZGRpdGlvbmFsTGlua3M7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgaGVpZ2h0OiAxMnB4O1xuICAgIG1hcmdpbjogNHB4IDVweCAwIDZweDtcbiAgICB3aWR0aDogMTJweDtcbiAgICB0cmFuc2l0aW9uOiBmaWxsIGVhc2UtaW4tb3V0IDE4MG1zO1xuICB9XG5cbiAgYSB7XG4gICAgQGluY2x1ZGUgc2Fucy1zZXJpZigxMywgMjUpO1xuICAgIGNvbG9yOiAkY29sb3JfX25hdkFkZGl0aW9uYWxMaW5rcztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZy1sZWZ0OiAyNHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgZWFzZS1pbi1vdXQgMTgwbXM7XG5cbiAgICAmOmJlZm9yZSwgXG4gICAgJjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQz94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0ndXRmLTgnPyUzRSUzQ3N2ZyB2ZXJzaW9uPScxLjEnIGlkPSdiYWNrZ3JvdW5kJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB4PScwcHgnIHk9JzBweCcgd2lkdGg9JzE4cHgnIGhlaWdodD0nMThweCcgdmlld0JveD0nMCAwIDE4IDE4JyBzdHlsZT0nZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxOCAxODsnIHhtbDpzcGFjZT0ncHJlc2VydmUnJTNFJTNDc3R5bGUgdHlwZT0ndGV4dC9jc3MnJTNFIC5zdDB7ZmlsbDolMjNCMkIyQjI7fSAlM0Mvc3R5bGUlM0UlM0NnJTNFJTNDcG9seWdvbiBjbGFzcz0nc3QwJyBwb2ludHM9JzgsMTUuNCA3LjMsMTQuNiAxMy40LDguNSA3LjMsMi40IDgsMS42IDE0LjgsOC41ICcvJTNFJTNDL2clM0UlM0Mvc3ZnJTNFXCIpO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICB3aWR0aDogMTlweDtcblxuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAzcHg7XG4gICAgICBsZWZ0OiAzcHg7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQz94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0ndXRmLTgnPyUzRSUzQ3N2ZyB2ZXJzaW9uPScxLjEnIGlkPSdiYWNrZ3JvdW5kJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB4PScwcHgnIHk9JzBweCcgd2lkdGg9JzE4cHgnIGhlaWdodD0nMThweCcgdmlld0JveD0nMCAwIDE4IDE4JyBzdHlsZT0nZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxOCAxODsnIHhtbDpzcGFjZT0ncHJlc2VydmUnJTNFJTNDc3R5bGUgdHlwZT0ndGV4dC9jc3MnJTNFIC5zdDB7ZmlsbDolMjNFNDJBMUQ7fSAlM0Mvc3R5bGUlM0UlM0NnJTNFJTNDcG9seWdvbiBjbGFzcz0nc3QwJyBwb2ludHM9JzgsMTUuNCA3LjMsMTQuNiAxMy40LDguNSA3LjMsMi40IDgsMS42IDE0LjgsOC41ICcvJTNFJTNDL2clM0UlM0Mvc3ZnJTNFXCIpO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgZWFzZS1pbi1vdXQgMTgwbXM7XG5cbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogM3B4O1xuICAgICAgbGVmdDogM3B4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcl9fbmF2LS1ob3ZlcjtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLyogRHJvcGRvd24gSW1hZ2Vcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLm0tbmF2TGlzdF9faW1hZ2Uge1xuICBmbGV4OiAxIDEgMjAwcHg7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgbWF4LXdpZHRoOiA0NjBweDtcblxuICAvLyBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gIC8vICAgZGlzcGxheTogbm9uZTtcbiAgLy8gfVxuXG4gIC8vIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlIHVwKSB7XG4gIC8vICAgZGlzcGxheTogYmxvY2s7XG4gIC8vIH1cblxuICBpbWcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cblxuLyogRHJvcGRvd24gQmx1cmJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLm0tbmF2TGlzdF9faW5mbyB7XG4gIGZsZXg6IDEgMSAzMDBweDtcbiAgbWFyZ2luLXRvcDogNHB4O1xuICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG59XG5cblxuLyogRHJvcGRvd24gRm9vdGVyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5tLW5hdkxpc3RfX2Zvb3RlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIEBpbmNsdWRlIHNhbnMtc2VyaWYoMTAsIDE1LCA4MDAsIG5vcm1hbCwgMC4wNXJlbSk7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yX19mb290ZXJOYXYtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJGNvbG9yX190ZXh0LS1kYXJrO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogNTBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG5cbiAgICAmOmFmdGVyLFxuICAgICY6YmVmb3JlIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9fZm9vdGVyTmF2LWJhY2tncm91bmQ7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiA1MHB4O1xuICAgICAgd2lkdGg6IDQ1cHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBsZWZ0OiAtNDVweDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcbiAgICAgICAgbGVmdDogLTYwcHg7XG4gICAgICAgIHdpZHRoOiA2MHB4O1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHh4bGFyZ2UgdXApIHtcbiAgICAgICAgbGVmdDogLTgwcHg7XG4gICAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHJpZ2h0OiAtNDVweDtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcbiAgICAgICAgcmlnaHQ6IC02MHB4O1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHh4bGFyZ2UgdXApIHtcbiAgICAgICAgcmlnaHQ6IC04MHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogNDhweDtcbiAgfVxufVxuXG4ubS1uYXZMaXN0X19mb290ZXJMaXN0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBsaW5lLWhlaWdodDogNDhweDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgcGFkZGluZy10b3A6IDJweDtcbiAgfVxuXG4gIGxpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gIH1cblxuICBhIHtcbiAgICBjb2xvcjogJGNvbG9yX19uYXZSZWxhdGVkO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciBlYXNlLWluLW91dCAxODBtcztcbiAgICBcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICBwYWRkaW5nOiAwIDFweCAwIDA7XG5cbiAgICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcl9fbmF2LS1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLm0tbmF2TGlzdF9fZm9vdGVyTGlzdC0tYWRkaXRpb25hbCB7XG4gIGZsb2F0OiByaWdodDtcblxuICBhIHtcbiAgICBjb2xvcjogJGNvbG9yX190ZXh0LS1kYXJrO1xuICB9XG59XG5cblxuLyogTmF2aWdhdGlvbiBMaXN0IEl0ZW1cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLm0tbmF2TGlzdF9faXRlbSB7XG4gIFxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIFxuICAgIC5tLW5hdkxpc3QtLXByaW1hcnkgJiB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9fbmF2LS1ob3ZlcjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLm0tbmF2TGlzdF9faXRlbS0taG9tZSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5tLW5hdkxpc3RfX2l0ZW0tLWhhcy1tZW51IHtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgJi5pcy1jdXJyZW50IHtcbiAgICAgID4gYSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfX25hdi0taG92ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5pcy1hY3RpdmUge1xuICAgICAgPiBhIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcl9fbmF2LS1ob3ZlcjtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5tLW5hdkxpc3RfX3dyYXBwZXIge1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IGxpbmVhciAxODBtcywgb3BhY2l0eSBsaW5lYXIgMTgwbXM7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgPiBhIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgJjphZnRlciB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmlnaHQ6IDEwcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDEwcHggc29saWQgJGNvbG9yX19tZW51O1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGhlaWdodDogMDsgXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgd2lkdGg6IDA7IFxuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IGxpbmVhciAxODBtcztcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogNTBtcztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubm8tanMgJiB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgICAgICA+IGEge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLm0tbmF2TGlzdF9fd3JhcHBlciB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLm0tbmF2TGlzdF9faXRlbS5tLW5hdkxpc3RfX2l0ZW0tLXNlYXJjaCB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuICBcbiAgYSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgQGluY2x1ZGUgaG92ZXItZm9jdXMge1xuICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgZmlsbDogJGNvbG9yX19oaWdobGlnaHQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuaWNvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAzNXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICByaWdodDogMDtcbiAgICB0b3A6IDEwcHg7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zaXRpb246IGZpbGwgZWFzZS1pbi1vdXQgMTgwbXM7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxuICB9XG59XG5cbi5tLW5hdkxpc3RfX2l0ZW0tLWFwcGx5IHtcbiAgY29sb3I6ICRjb2xvcl9fbmF2LS1oaWdobGlnaHQ7XG59XG5cblxuLyogTmF2aWdhdGlvbiBMaXN0IExpbmtcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLm0tbmF2TGlzdF9fbGluayB7XG4gIGNvbG9yOiAkY29sb3JfX25hdjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDExcHggNDBweCA3cHggMTlweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBcbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCB1cCkge1xuICAgIHBhZGRpbmc6IDE4cHggNDBweCAxMXB4IDE5cHg7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgIHBhZGRpbmc6IDE4cHggNTBweCAxMXB4IDMwcHg7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICAgIHRyYW5zaXRpb246IGNvbG9yIGxpbmVhciAxODBtcztcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiA3NW1zOyAgICBcbiAgICBcbiAgICBAaW5jbHVkZSBob3Zlci1mb2N1cyB7XG4gICAgICBjb2xvcjogJGNvbG9yX19uYXYtLWhvdmVyO1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMTUwbXM7XG4gICAgfVxuICB9XG4gIFxuICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkge1xuICAgIHBhZGRpbmc6IDAgMTNweDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoeHhsYXJnZSB1cCkge1xuICAgIHBhZGRpbmc6IDAgMTVweDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtIGRvd24pIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yX19zZXBhcmF0b3I7XG4gIH1cblxuICAubS1uYXZMaXN0LS1zZWNvbmRhcnkgJiB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCB1cCkge1xuICAgICAgcGFkZGluZzogMjNweCA0MHB4IDE2cHggMTlweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgICAgcGFkZGluZzogMjNweCA0MHB4IDE2cHggMzBweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICBsaW5lLWhlaWdodDogMTVweDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgLm0tbmF2TGlzdC0tdGVydGlhcnkgJiB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCB1cCkge1xuICAgICAgQGluY2x1ZGUgc2Fucy1zZXJpZigxNSwgMjUsIDQwMCk7XG4gICAgICBsaW5lLWhlaWdodDogNjRweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICBAaW5jbHVkZSBzYW5zLXNlcmlmKDEwLCAxNSwgODAwKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxNXB4O1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cblxuICAubS1uYXZMaXN0X19pdGVtLS1zZWFyY2ggJiB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC5tLW5hdkxpc3QgPiBsaTpsYXN0LWNoaWxkICYge1xuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuICB9XG59XG5cbi5tLW5hdkxpc3RfX2xpbmstLXByaW1hcnkge1xuICAmLmlzLWFjdGl2ZSB7XG4gICAgY29sb3I6ICRjb2xvcl9fbmF2LS1ob3ZlcjtcblxuICAgICYgKyAubS1uYXZMaXN0X193cmFwcGVyIHtcbiAgICAgIG1heC1oZWlnaHQ6IDEwMDBweDtcbiAgICB9XG4gIH1cblxuICAmLmlzLWN1cnJlbnQge1xuICAgIGNvbG9yOiAkY29sb3JfX25hdi0taG92ZXI7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgbGluZS1oZWlnaHQ6IDg5cHg7XG4gIH1cbn1cblxuLm0tbmF2TGlzdF9fbGluay0tc2Vjb25kYXJ5IHtcbiAgY29sb3I6ICRjb2xvcl9fbmF2O1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoc21hbGwgdXApIHtcbiAgICBwYWRkaW5nOiAyM3B4IDQwcHggMTZweCAxOXB4O1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICBwYWRkaW5nOiAyM3B4IDQwcHggMTZweCAzMHB4O1xuICB9XG5cbiAgJi5pcy1hY3RpdmUge1xuICAgIGNvbG9yOiAkY29sb3JfX25hdi0taG92ZXI7XG5cbiAgICAmICsgLm0tbmF2TGlzdF9fbWVudS0tdGVydGlhcnkge1xuICAgICAgbWF4LWhlaWdodDogNTAwcHg7XG4gICAgfVxuICB9XG5cbiAgJi5pcy1jdXJyZW50IHtcbiAgICBjb2xvcjogJGNvbG9yX19uYXYtLWhvdmVyO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIGNvbG9yOiAkY29sb3JfX3RleHQtLWRhcms7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuXG4ubS1uYXZMaXN0X19saW5rLS1wcmltYXJ5LFxuLm0tbmF2TGlzdF9fbGluay0tc2Vjb25kYXJ5IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIC5pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogMThweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICAgIHJpZ2h0OiAyOHB4O1xuICAgIH1cbiAgICBcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gICYuaXMtYWN0aXZlIHtcbiAgICAuaWNvbiB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDE4MGRlZyk7XG4gICAgfVxuICB9XG59XG5cbi5tLW5hdkxpc3RfX2xpbmstLXNlY29uZGFyeSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICBtYXJnaW46IDAgMCAxMHB4IDA7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICB9IFxufVxuXG4ubS1uYXZMaXN0X19saW5rLS10ZXJ0aWFyeSB7XG4gIEBpbmNsdWRlIHNhbnMtc2VyaWYoMTMsIDIwLCA0MDApO1xuICBwYWRkaW5nOiAxNHB4IDIwcHggOXB4IDQ1cHg7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChzbWFsbCB1cCkge1xuICAgIEBpbmNsdWRlIHNhbnMtc2VyaWYoMTUsIDI1LCA0MDApO1xuICAgIHBhZGRpbmc6IDIycHggMjBweCAxN3B4IDUwcHg7XG4gIH1cblxuICAmLmlzLWN1cnJlbnQge1xuICAgIGNvbG9yOiAkY29sb3JfX25hdi0taG92ZXI7XG4gIH1cbn1cblxuLy8gLm0tbmF2TGlzdCA+IGxpOm50aC1jaGlsZCg0KSB7XG4vLyAgIC5tLW5hdkxpc3RfX3dyYXBwZXIge1xuLy8gICAgIGxlZnQ6IDA7XG4vLyAgICAgb3BhY2l0eTogMTtcbi8vICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuLy8gICB9XG4vLyB9XG5cbi8vIC5tLW5hdkxpc3QtLXByaW1hcnkgPiAubS1uYXZMaXN0X19pdGVtOm50aC1jaGlsZCg0KSA+IGEge1xuLy8gICBjb2xvcjogJGNvbG9yX19oaWdobGlnaHQ7XG4vLyB9XG5cbi8vIC5tLW5hdkxpc3QtLXByaW1hcnkgPiAubS1uYXZMaXN0X19pdGVtOm50aC1jaGlsZCg0KSAubS1uYXZMaXN0X19tZW51LS1zZWNvbmRhcnkgPiBsaTpmaXJzdC1jaGlsZCA+IGEge1xuLy8gICBjb2xvcjogJGNvbG9yX19oaWdobGlnaHQ7XG4vLyB9IiwiLm0tc2VhcmNoUmVzdWx0c0xpc3Qge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi5tLXNlYXJjaFJlc3VsdHNMaXN0X19pdGVtIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDAgNjVweDtcbiAgXG4gICY6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0gdXApIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgJjpub3QoOmxhc3Qtb2YtdHlwZSkge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9fc2VhcmNoUmVzdWx0c1NlcGFyYXRvcjtcbiAgICB9XG4gIH1cbn1cblxuLm0tc2VhcmNoUmVzdWx0c0xpc3RfX2l0ZW1UaXRsZSB7XG4gIEBpbmNsdWRlIHNhbnMtc2VyaWYoMTAsIDE1LCA4MDAsIG5vcm1hbCwgMC4wM3JlbSk7XG4gIGNvbG9yOiAkY29sb3JfX3RleHQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMzBweCAwIDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIFxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgIG1heC13aWR0aDogMTYwcHg7XG4gICAgcGFkZGluZzogMzZweCAwIDA7XG4gICAgd2lkdGg6IDE2MHB4O1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIEBpbmNsdWRlIHNhbnMtc2VyaWYoMTMsIDIwLCA4MDAsIG5vcm1hbCwgMC4wM3JlbSk7XG4gICAgbWF4LXdpZHRoOiAyNDBweDtcbiAgICB3aWR0aDogMjQwcHg7XG4gIH1cblxuICAuZy1zZWFyY2ggJiB7XG4gICAgcGFkZGluZzogMzdweCAwIDA7XG4gIH1cbn1cblxuLm0tc2VhcmNoUmVzdWx0c0xpc3RfX2NhdGVnb3J5IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMTAwJTtcbn1cblxuLm0tc2VhcmNoUmVzdWx0c0xpc3RfX2NhdGVnb3J5SXRlbSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcblxuICAmOmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICBcbiAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yX19zZWFyY2hSZXN1bHRzU2VwYXJhdG9yO1xuICB9XG59XG5cbi5tLXNlYXJjaFJlc3VsdHNMaXN0X19jdGEge1xuICBAaW5jbHVkZSBzYW5zLXNlcmlmKDgsIDEwLCA4MDAsIG5vcm1hbCwgMC4wNXJlbSk7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgY29sb3I6ICRjb2xvcl9faGlnaGxpZ2h0O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi10b3A6IDE5cHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWJvdHRvbSBlYXNlLWluLW91dCAxODBtcztcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgQGluY2x1ZGUgc2Fucy1zZXJpZigxMCwgMTUsIDgwMCwgbm9ybWFsLCAwLjA1cmVtKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yX19oaWdobGlnaHQ7XG4gIH1cbn1cblxuLm0tc2VhcmNoUmVzdWx0c0xpc3RfX2xvYWRNb3JlIHtcbiAgQGluY2x1ZGUgc2Fucy1zZXJpZigxMCwgMTUsIDgwMCwgbm9ybWFsLCAwLjAzcmVtKTtcbiAgYm9yZGVyOiAycHggc29saWQgJGNvbG9yX19zZWFyY2hSZXN1bHRNb3JlQm9yZGVyO1xuICBjb2xvcjogJGNvbG9yX19zZWFyY2hSZXN1bHRNb3JlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbGluZS1oZWlnaHQ6IDY2cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB0cmFuc2l0aW9uOiBib3JkZXIgZWFzZS1pbi1vdXQgMTgwbXMsIGJhY2tncm91bmQgZWFzZS1pbi1vdXQgMTgwbXMsIGNvbG9yIGVhc2UtaW4tb3V0IDE4MG1zO1xuICB3aWR0aDogMTAwJTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIFxuICBAaW5jbHVkZSBicmVha3BvaW50KG1lZGl1bSB1cCkge1xuICAgIG1hcmdpbjogNDBweCBhdXRvIDA7XG4gICAgd2lkdGg6IDI2MHB4O1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIEBpbmNsdWRlIHNhbnMtc2VyaWYoMTMsIDIwLCA4MDAsIG5vcm1hbCwgMC4wM3JlbSk7XG4gICAgbGluZS1oZWlnaHQ6IDY2cHg7XG4gICAgbWFyZ2luOiA1MHB4IGF1dG8gNDVweDtcblxuICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9fc2VhcmNoUmVzdWx0TW9yZTtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvcl9fc2VhcmNoUmVzdWx0TW9yZTtcbiAgICAgIGNvbG9yOiAkY29sb3JfX2N0YTtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG4gIH1cbn0iLCIvKiBOYXZpZ2F0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5vLW5hdiB7XG4gIGJhY2tncm91bmQ6ICRjb2xvcl9fYmFja2dyb3VuZDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICB3aWR0aDogMTAwJTtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuXG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA1OXB4O1xuICBsZWZ0OiAwO1xuICBib3R0b206IDA7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgaGVpZ2h0OiAxNDBweDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBhZGRpbmc6IDUxcHggMCAwO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuXG5cbi8qIG5hdmlnYXRpb24gVGl0bGVcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLm8tbmF2X190aXRsZSB7XG4gIEBpbmNsdWRlIGhpZGVfdGV4dCgpO1xufVxuXG5cbi8qIFNlY29uZGFyeSBOYXZpZ2F0aW9uXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi5vLW5hdl9fc2Vjb25kYXJ5IHtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAxM3B4O1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UgdXApIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG59XG5cblxuLyogTmF2aWdhdGlvbiBDb250YWluZXJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLm8tbmF2X19jb250YWluZXIge1xuICBtYXJnaW46IDAgYXV0bztcbiAgbWF4LXdpZHRoOiAxNzQwcHg7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgIHBhZGRpbmc6IDAgNDVweDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlIHVwKSB7XG4gICAgcGFkZGluZzogMCA2MHB4O1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCh4eGxhcmdlIHVwKSB7XG4gICAgcGFkZGluZzogMCA4MHB4O1xuICB9XG59IiwiLnMtYXV0b2NvbXBsZXRlLWFjdGl2ZSB7XG4gIC5vLWxpdmVDb250ZW50IHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UgdXApIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiLnMtaGVhZGVyLWZpeGVkIHtcblxuICAuZy1oZWFkZXIge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3JfX25hdlNwbGl0dGVyO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgaGVpZ2h0OiA5NXB4O1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuXG4gICAgICArIG1haW4ge1xuICAgICAgICBwYWRkaW5nLXRvcDogMTQwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmctaGVhZGVyX19sb2dvIHtcbiAgICBtYXJnaW46IDhweCAwIDAgNXB4O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgbWFyZ2luOiAyN3B4IDAgMCAtMTRweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSB1cCkge1xuICAgICAgbWFyZ2luOiAyN3B4IDAgMCAtMTNweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KDEyODBweCkge1xuICAgICAgbWFyZ2luOiAxN3B4IDAgMCAtMTZweDtcbiAgICB9XG5cbiAgICAuaWNvbi0tbG9nbyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmljb24tLWxvZ28tbW9iaWxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KDEyODBweCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5pY29uLS1sb2dvLTFsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoMTI4MHB4KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5vLW5hdiB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgaGVpZ2h0OiA5NXB4O1xuICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgLm8tbmF2X19zZWNvbmRhcnkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAubS1uYXZMaXN0X193cmFwcGVyIHtcbiAgICB0b3A6IDk1cHg7XG4gIH1cblxuICAubS1uYXZMaXN0X19pdGVtLS1oYXMtbWVudSB7XG4gICAgLm0tbmF2TGlzdF9fbGluay0tcHJpbWFyeSB7XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgYm90dG9tOiA0cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLm0tbmF2TGlzdF9fbGluay0tcHJpbWFyeSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgbGluZS1oZWlnaHQ6IDk5cHg7XG4gICAgfVxuICB9XG59IiwiLnMtbWVudS1vcGVuIHtcbiAgLm8tbmF2IHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHBhZGRpbmc6IDAgMCA0NnB4O1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICB9XG4gIFxuICAuby1uYXZfX3NlY29uZGFyeSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAubS1uYXZMaXN0LS10ZXJ0aWFyeS1tb2JpbGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbGVmdDogMDtcbiAgfVxuXG4gIC5nLW1hc2sge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxufVxuXG4ucy1tZW51LW9wZW4sIC5zLW1lbnUtb3BlbiBib2R5IHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzRCgwLCAwLCAwKTtcbn0iLCIucy1vdmVybGF5LWFjdGl2ZSB7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICBib2R5IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIC5nLW92ZXJsYXkge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgfVxuXG4gIC5nLWFwcGx5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufSIsIi5zLXNlYXJjaC1hY3RpdmUge1xuICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgLy8gaGVpZ2h0OiAxMDAlO1xuICAgIC8vIG92ZXJmbG93OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICB9XG5cbiAgYm9keSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYXJnZSB1cCkge1xuICAgICAgLy8gaGVpZ2h0OiAxMDAlO1xuICAgICAgLy8gb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICB9XG4gIH1cblxuICAuZy1tYXNrIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIHotaW5kZXg6IDEwMDtcbiAgICB9XG4gIH1cblxuICAuZy1zZWFyY2gge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlIHVwKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbiAgfVxufSIsIiRzYW5zLXNlcmlmOiBcIk5ldWUgUmVndWxhclwiO1xuJHNhbnMtc2VyaWYtLWxvYWRlZDogc2Fucy1zZXJpZjtcblxuJHNlcmlmOiBzZXJpZjtcbiRzZXJpZi0tbG9hZGVkOiBzZXJpZjtcblxuLnN2Zy1zcHJpdGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IC0xO1xuICBsZWZ0OiAtMXB4O1xuICB0b3A6IC0xcHg7XG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG5hIHtcbiAgY29sb3I6ICNlODJlMjE7XG59XG5cbi5nLWhlYWRlciAubS1uYXZMaXN0X19pbmZvIHtcbiAgcCwgYSB7XG4gICAgZm9udC1mZWF0dXJlLXNldHRpbmdzOiAna2Vybic7XG4gICAgZm9udC1rZXJuaW5nOiBub3JtYWw7XG4gICAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTtcbiAgICBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBjb21tb24tbGlnYXR1cmVzO1xuICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgICB0ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICB9XG4gIHA6bm90KFtjbGFzc10pIHtcbiAgICBAaW5jbHVkZSBzYW5zLXNlcmlmKDE0LCAyNSk7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgfVxuICA+IGEge1xuICAgIEBpbmNsdWRlIHNhbnMtc2VyaWYoMTAsIDE1KTtcbiAgICBmb250LXdlaWdodDogODAwO1xuICB9XG59XG5cbmhlYWRlciB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG4uZy1oZWFkZXIgPiAucm93ID4gLmxhcmdlLTE1IHtcbiAgd2lkdGg6IDEwMCU7XG4gIC5yb3cge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAuby1uYXZfX3NlY29uZGFyeSB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICByaWdodDogMDtcbiAgfVxuICAuby1uYXZfX2NvbnRhaW5lciB7XG4gICAgcGFkZGluZzogMDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzIuNWVtKSB7XG4gIC5tLW5hdkxpc3RfX2xpbmsge1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gIH1cbiAgLm0tbmF2TGlzdF9fbGluay0tc2Vjb25kYXJ5IHtcbiAgICBwYWRkaW5nOiAwIDEwcHggMCAwO1xuICB9XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAjcGFnZV9pbmZvIHtcbiAgICBtYXJnaW4tdG9wOiA3MHB4O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmctZm9vdGVyIHtcbiAgICBtYXJnaW4tdG9wOiAyMHB4O1xuICB9XG59XG4uZy1mb290ZXIge1xuICBhIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgIH1cbiAgfVxufVxuLmctZm9vdGVyX19hZGRpdGlvbmFsIHtcbiAgcCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICB9XG4gIGEge1xuICAgIGNvbG9yOiAkY29sb3JfX2Zvb3RlckdyZXk7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDEwMjNweCkge1xuICAueHNtYWxsLTcge1xuICAgIHdpZHRoOiA0Ni42NjY2NyU7XG4gIH1cbiAgLnhzbWFsbC04IHtcbiAgICB3aWR0aDogNTMuMzMzMzMlO1xuICB9XG59XG5cbi5nLXNlYXJjaF9fZm9ybUlucHV0OmZvY3VzIHtcbiAgYm9yZGVyOiBub25lO1xufSJdfQ== */
